Description of problem: Compiling Gluster master on MacOS X 10.7 fails at present, due to use of "AT_SYMLINK_NOFOLLOW" const with fstatat(). Neither fstatat() nor AT_SYMLINK_NOFOLLOW are present in OSX. Version-Release number of selected component (if applicable): git upstream master head, as of Sun 10th March 2013 How reproducible: Every time. Steps to Reproduce: 1. git clone the upstream repo 2. ./autogen.sh; ./configure --disable-fuse-client; make Actual results: $ make <lengthly compilation log snipped> glusterd.c: In function 'check_prepare_mountbroker_root': glusterd.c:732: warning: implicit declaration of function 'openat' glusterd.c:767: warning: implicit declaration of function 'mkdirat' glusterd.c:771: warning: implicit declaration of function 'fstatat' glusterd.c:771: error: 'AT_SYMLINK_NOFOLLOW' undeclared (first use in this function) glusterd.c:771: error: (Each undeclared identifier is reported only once glusterd.c:771: error: for each function it appears in.) make[5]: *** [glusterd_la-glusterd.lo] Error 1 make[4]: *** [all-recursive] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Expected results: Compiling to succeed. Additional info:
This might be interesting. Someone has made an implementation of these functions for OSX for another project: https://github.com/anatol/tup/blob/master/src/compat/macosx.h They're GPL-2 licensed, but the author may be willing to let us re-use them anyway if we ask. Someone (more skilled than me) should check his implementation is good first though. :)
It seems there are a few *at() functions used in glusterd.c, that aren't portable to other OS's. Gnulib provides a version of them that should work, though we'd need to chat with Eric Blake (Red Hat) and Jim Meyering (ex-Red Hat) to see if something could be worked out for the licensing. (unsure)
Port being finished at - https://forge.gluster.org/~schafdog/glusterfs-core/osx-glusterfs Currently working components - GlusterFS server (brick export) - GlusterD management - Gluster CLI - GlusterFS FUSE (OSXFUSE, unsure about stability just yet) - GlusterNFS server without NLM Rest are not working/tested
Do you feel it's a good time for us to ask the Community to test it? eg broadcast on Twitter, blog, mailing list, etc
*** This bug has been marked as a duplicate of bug 1089172 ***