gluster-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gluster-devel] NetBSD support, FUSE


From: Emmanuel Dreyfus
Subject: [Gluster-devel] NetBSD support, FUSE
Date: Fri, 23 Jul 2010 13:59:22 +0200
User-agent: MacSOUP/2.7 (unregistered for 1280 days)

Hello

I gave a try to glusterfs on NetBSD. That produced a few patches (see below),
and the server seems fine. The client is another story, though.

NetBSD has a library-level FUSE API, but not a kernel-level API. The library
remaps FUSE to NetBSD's native FUSE equivalent (PUFFS).

After a tour in the code, it seems glusterfs just open /dev/fuse and work on
that, so it will not work. Anyone can confirm there is no support for
library-level FUSE?

The patches:

1) The == operator exists only in bash. POSIX compliance require = instead:
--- xlators/mount/fuse/utils/mount_glusterfs.in.orig 
+++ xlators/mount/fuse/utils/mount_glusterfs.in
@@ -166,9 +166,9 @@
     }
 
     # TODO: use getopt. This is very much darwin specific
     volfile_loc="$1";
-    while [ "$volfile_loc" == "-o" ] ; do
+    while [ "$volfile_loc" = "-o" ] ; do
        shift ;
        shift ;
        volfile_loc="$1";
     done



2) NetBSD does not have AI_ADDRCONFIG
--- libglusterfs/src/common-utils.c.orig
+++ libglusterfs/src/common-utils.c
@@ -45,8 +45,12 @@
 #include "revision.h"
 #include "glusterfs.h"
 #include "stack.h"
 
+#ifndef AI_ADDRCONFIG
+#define AI_ADDRCONFIG 0
+#endif /* AI_ADDRCONFIG */
+
 typedef int32_t (*rw_op_t)(int32_t fd, char *buf, int32_t size);
 typedef int32_t (*rwv_op_t)(int32_t fd, const struct iovec *buf, int32_t size);
 static glusterfs_ctx_t *gf_global_ctx;

--- transport/socket/src/name.c.orig
+++ transport/socket/src/name.c
 #ifndef AF_INET_SDP
 #define AF_INET_SDP 27
 #endif
 
+#ifndef AI_ADDRCONFIG
+#define AI_ADDRCONFIG 0
+#endif /* AI_ADDRCONFIG */
+
 static int gf_name_addr_enotspec_log;
 
 #include "transport.h"
 #include "socket.h"



3) I don't recall exactly why, but theses twp were required to build
 --- xlators/protocol/server/src/server-resolve.c.orig
+++ xlators/protocol/server/src/server-resolve.c 
@@ -23,9 +23,9 @@
 #endif
 
 #include "server-protocol.h"
 #include "server-helpers.h"
-
+#include "compat-errno.h"
 
 int
 server_resolve_all (call_frame_t *frame);
 int
--- transport/socket/src/socket.c.orig
+++ transport/socket/src/socket.c
@@ -258,9 +258,9 @@
 
         if (keepalive_intvl == GF_USE_DEFAULT_KEEPALIVE)
                 goto done;
 
-#ifndef GF_LINUX_HOST_OS
+#if !defined(GF_LINUX_HOST_OS) && !defined(__NetBSD__)
         ret = setsockopt (fd, IPPROTO_TCP, TCP_KEEPALIVE, &keepalive_intvl,
                           sizeof (keepalive_intvl));
         if (ret == -1)
                 goto err;

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]