build: make GLUSTERD_WORKDIR rely on localstatedir
authorHarshavardhana <harsha@harshavardhana.net>
Mon, 30 Jun 2014 01:56:44 +0000 (18:56 -0700)
committerHarshavardhana <harsha@harshavardhana.net>
Thu, 7 Aug 2014 08:17:29 +0000 (01:17 -0700)
- Break-way from '/var/lib/glusterd' hard-coded previously,
  instead rely on 'configure' value from 'localstatedir'
- Provide 's/lib/db' as default working directory for gluster
  management daemon for BSD and Darwin based installations
- loff_t is really off_t on Darwin
- fix-off the warnings generated by clang on FreeBSD/Darwin
- Now 'tests/*' use GLUSTERD_WORKDIR a common variable for all
  platforms.
- Define proper environment for running tests, define correct PATH
  and LD_LIBRARY_PATH when running tests, so that the desired version
  of glusterfs is used, regardless where it is installed.
  (Thanks to manu@netbsd.org for this additional work)

Change-Id: I2339a0d9275de5939ccad3e52b535598064a35e7
BUG: 1111774
Signed-off-by: Harshavardhana <harsha@harshavardhana.net>
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/8246
Tested-by: Gluster Build System <jenkins@build.gluster.com>
71 files changed:
.gitignore
build-aux/xdrgen
cli/src/Makefile.am
cli/src/cli-cmd-parser.c
cli/src/cli-cmd-volume.c
cli/src/cli-rpc-ops.c
configure.ac
contrib/argp-standalone/configure.ac
contrib/fuse-lib/mount.c
contrib/libexecinfo/execinfo_compat.h
contrib/qemu/include/sysemu/os-posix.h
contrib/qemu/util/oslib-posix.c
extras/Makefile.am
extras/geo-rep/Makefile.am
extras/glusterd.vol.in [moved from extras/glusterd.vol with 85% similarity]
extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh
extras/hook-scripts/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
extras/hook-scripts/reset/post/S31ganesha-reset.sh
extras/hook-scripts/set/post/S30samba-set.sh
extras/hook-scripts/set/post/S31ganesha-set.sh
extras/hook-scripts/start/post/S30samba-start.sh
extras/init.d/glusterd-FreeBSD.in
extras/systemd/glusterd.service.in
geo-replication/src/Makefile.am
geo-replication/src/peer_add_secret_pub.in
geo-replication/src/peer_gsec_create.in
geo-replication/src/set_geo_rep_pem_keys.sh
geo-replication/syncdaemon/configinterface.py.in [moved from geo-replication/syncdaemon/configinterface.py with 97% similarity]
glusterfsd/src/Makefile.am
libglusterfs/src/call-stub.h
libglusterfs/src/glusterfs.h
libglusterfs/src/syncop.h
rpc/rpc-lib/src/rpcsvc.c
rpc/rpc-lib/src/rpcsvc.h
rpc/xdr/src/xdr-nfs3.c
run-tests.sh
tests/README.md
tests/basic/mount-options.disabled
tests/bugs/bug-1119582.t
tests/bugs/bug-765380.t
tests/bugs/bug-797171.t
tests/bugs/bug-811493.t
tests/bugs/bug-856455.t
tests/bugs/bug-858215.t
tests/bugs/bug-860663.t
tests/bugs/bug-861542.t
tests/bugs/bug-862967.t
tests/bugs/bug-867253.t
tests/bugs/bug-874498.t
tests/bugs/bug-877992.t
tests/bugs/bug-880898.t
tests/bugs/bug-893378.t
tests/bugs/bug-902610.t
tests/bugs/bug-904065.t
tests/bugs/bug-916549.t
tests/bugs/bug-955588.t
tests/bugs/bug-958790.t
tests/env.rc.in [new file with mode: 0644]
tests/include.rc
tests/volume.rc
xlators/debug/io-stats/src/io-stats.c
xlators/encryption/crypt/src/crypt.h
xlators/features/changelog/lib/src/Makefile.am
xlators/features/changelog/src/changelog-helpers.c
xlators/mgmt/glusterd/src/Makefile.am
xlators/mgmt/glusterd/src/glusterd-hooks.c
xlators/mgmt/glusterd/src/glusterd.c
xlators/mgmt/glusterd/src/glusterd.h
xlators/mount/fuse/utils/mount.glusterfs.in
xlators/nfs/server/src/Makefile.am
xlators/nfs/server/src/nfs.c

index 2a986c13ff51a7ba7071037795bc1ed72e41c203..fad3fb794ee764dba38d580dc9d7a9f08d954b15 100644 (file)
@@ -8,6 +8,7 @@ install-sh
 ltmain.sh
 Makefile.in
 missing
+test-driver
 *compile
 *.gcda
 *.gcno
@@ -29,9 +30,14 @@ log
 *.vol
 
 # Generated files
+tests/env.rc
+dht_layout_unittest
+mem_pool_unittest
+tests/utils/arequal-checksum
 api/examples/__init__.py
 api/examples/__init__.py?
 api/examples/setup.py
+xlators/features/glupy/src/__init__.py
 contrib/argp-standalone/libargp.a
 contrib/uuid/uuid_types.h
 extras/init.d/glusterd-Debian
@@ -44,6 +50,8 @@ extras/ocf/glusterd
 extras/ocf/volume
 extras/who-wrote-glusterfs/gitdm
 extras/geo-rep/gsync-sync-gfid
+geo-replication/src/set_geo_rep_pem_keys.sh
+geo-replication/syncdaemon/configinterface.py
 glusterfs-api.pc
 glusterfs.spec
 glusterfsd/src/glusterfsd
index c2a7a781d58ef35507987c2c6c6c17d63b758fbe..0cefc9b4890debfddc69ea51efdcae3068a9c0b9 100755 (executable)
@@ -27,6 +27,9 @@ append_licence_header ()
 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
 #pragma GCC diagnostic ignored "-Wunused-variable"
 #endif
+#else
+#pragma clang diagnostic ignored "-Wunused-variable"
+#pragma clang diagnostic ignored "-Wunused-value"
 #endif
 #endif
 #endif
index 923600fbde2a70008ef8c29275f8a2f0c29d72b9..434122b2a7835e3169b903605974b045ba675196 100644 (file)
@@ -4,10 +4,10 @@ gluster_SOURCES = cli.c registry.c input.c cli-cmd.c cli-rl.c \
         cli-cmd-volume.c cli-cmd-peer.c cli-rpc-ops.c cli-cmd-parser.c\
         cli-cmd-system.c cli-cmd-misc.c cli-xml-output.c cli-quotad-client.c cli-cmd-snapshot.c
 
-gluster_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(GF_LDADD)\
+gluster_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(GF_LDADD) \
                $(RLLIBS) $(top_builddir)/rpc/xdr/src/libgfxdr.la \
                $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
-               $(GF_GLUSTERFS_LIBS) $(XML_LIBS)
+               $(XML_LIBS)
 
 gluster_LDFLAGS = $(GF_LDFLAGS)
 noinst_HEADERS = cli.h cli-mem-types.h cli-cmd.h cli-quotad-client.h
index a0b873d23584a9cd2872e617924c7446212a637e..4811293dbb8cdf11b781ba6648705eff65a5fa5f 100644 (file)
@@ -999,7 +999,6 @@ cli_is_key_spl (char *key)
         return (strcmp (key, "group") == 0);
 }
 
-#define GLUSTERD_DEFAULT_WORKDIR "/var/lib/glusterd"
 static int
 cli_add_key_group (dict_t *dict, char *key, char *value, char **op_errstr)
 {
@@ -1090,7 +1089,6 @@ out:
 
         return ret;
 }
-#undef GLUSTERD_DEFAULT_WORKDIR
 
 int32_t
 cli_cmd_volume_set_parse (const char **words, int wordcount, dict_t **options,
index 43e696d56c5009fdfd14a55c1ad56d96a1ba7242..c743b8bc9f07783a225bafcfcee6a2839d08bee0 100644 (file)
@@ -1222,7 +1222,8 @@ _limits_set_on_volume (char *volname) {
         /* TODO: fix hardcoding; Need to perform an RPC call to glusterd
          * to fetch working directory
          */
-        sprintf (quota_conf_file, "/var/lib/glusterd/vols/%s/quota.conf",
+        sprintf (quota_conf_file, "%s/vols/%s/quota.conf",
+                 GLUSTERD_DEFAULT_WORKDIR,
                  volname);
         fd = open (quota_conf_file, O_RDONLY);
         if (fd == -1)
@@ -1350,7 +1351,8 @@ cli_cmd_quota_handle_list_all (const char **words, dict_t *options)
 
         //TODO: fix hardcoding; Need to perform an RPC call to glusterd
         //to fetch working directory
-        sprintf (quota_conf_file, "/var/lib/glusterd/vols/%s/quota.conf",
+        sprintf (quota_conf_file, "%s/vols/%s/quota.conf",
+                 GLUSTERD_DEFAULT_WORKDIR,
                  volname);
         fd = open (quota_conf_file, O_RDONLY);
         if (fd == -1) {
index 187fcc1bee4b32b8a78dea9a791d06280dfcc5c9..ac66b1a566254556e6dd906115a6b1bd947ad62a 100644 (file)
@@ -1742,7 +1742,7 @@ gf_cli_set_volume_cbk (struct rpc_req *req, struct iovec *iov,
         dict_t               *dict = NULL;
         char                 *help_str = NULL;
         char                 msg[1024] = {0,};
-        char                 *debug_xlator = _gf_false;
+        char                 *debug_xlator = NULL;
         char                 tmp_str[512] = {0,};
 
         if (-1 == req->rpc_status) {
index 69c3934c4a2f55a633d4325f5ab5dd12439d5f24..35d5bb0f37265baecf43435e34ab4015e278197c 100644 (file)
@@ -7,13 +7,14 @@ dnl  later), or the GNU General Public License, version 2 (GPLv2), in all
 dnl  cases as published by the Free Software Foundation.
 
 AC_INIT([glusterfs],
-       [m4_esyscmd([build-aux/pkg-version --version])],
-       [gluster-users@gluster.org],,[https://github.com/gluster/glusterfs.git])
+        [m4_esyscmd([build-aux/pkg-version --version])],
+        [gluster-users@gluster.org],,[https://github.com/gluster/glusterfs.git])
 
 AC_SUBST([PACKAGE_RELEASE],
          [m4_esyscmd([build-aux/pkg-version --release])])
 
 AM_INIT_AUTOMAKE
+
 # Removes warnings when using automake 1.14 around (...but option 'subdir-objects' is disabled )
 #but libglusterfs fails to build with contrib (Then are not set up that way?)
 #AM_INIT_AUTOMAKE([subdir-objects])
@@ -39,6 +40,7 @@ AC_CONFIG_FILES([Makefile
                 libglusterfs/src/Makefile
                 geo-replication/src/peer_gsec_create
                 geo-replication/src/peer_add_secret_pub
+                geo-replication/syncdaemon/configinterface.py
                 glusterfsd/Makefile
                 glusterfsd/src/Makefile
                 rpc/Makefile
@@ -52,8 +54,8 @@ AC_CONFIG_FILES([Makefile
                 rpc/xdr/Makefile
                 rpc/xdr/src/Makefile
                 xlators/Makefile
-               xlators/meta/Makefile
-               xlators/meta/src/Makefile
+                xlators/meta/Makefile
+                xlators/meta/src/Makefile
                 xlators/mount/Makefile
                 xlators/mount/fuse/Makefile
                 xlators/mount/fuse/src/Makefile
@@ -169,6 +171,7 @@ AC_CONFIG_FILES([Makefile
                 cli/src/Makefile
                 doc/Makefile
                 extras/Makefile
+                extras/glusterd.vol
                 extras/init.d/Makefile
                 extras/init.d/glusterd.plist
                 extras/init.d/glusterd-Debian
@@ -687,7 +690,14 @@ if test "x${have_backtrace}" = "xyes"; then
 fi
 AC_SUBST(HAVE_BACKTRACE)
 
-AC_CHECK_LIB([m], [ceil], , AC_MSG_ERROR([glibc math package missing - required]))
+if test "x${have_backtrace}" != "xyes"; then
+AC_TRY_COMPILE([#include <math.h>], [double x=0.0; x=ceil(0.0);],
+   [have_math_h=yes],
+   AC_MSG_ERROR([need math library for libexecinfo]))
+if test "x${have_math_h}" = "xyes"; then
+   LIBS="$LIBS -lm"
+fi
+fi
 
 dnl glusterfs prints memory usage to stderr by sending it SIGUSR1
 AC_CHECK_FUNC([malloc_stats], [have_malloc_stats=yes])
@@ -846,21 +856,31 @@ if test "x$ac_cv_header_execinfo_h" = "xno"; then
    fi
 fi
 
+### Dirty hacky stuff to make LOCALSTATEDIR work
+if test "x$prefix" = xNONE; then
+   test $localstatedir = '${prefix}/var' && localstatedir=$ac_default_prefix/var
+   localstatedir=/var
+   LOCALSTATEDIR=$(eval echo ${localstatedir})
+else
+   LOCALSTATEDIR=$(eval echo ${localstatedir})
+fi
+
 case $host_os in
      linux*)
         GF_HOST_OS="GF_LINUX_HOST_OS"
-        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS}"
+        GF_CFLAGS="${GF_COMPILER_FLAGS} ${ARGP_STANDALONE_CPPFLAGS}"
         GF_LDADD="${ARGP_STANDALONE_LDADD}"
         GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(bindir)\\\""
+        GLUSTERD_WORKDIR="${LOCALSTATEDIR}/lib/glusterd"
         ;;
      solaris*)
         GF_HOST_OS="GF_SOLARIS_HOST_OS"
         GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -m64"
         GF_LDFLAGS=""
         GF_LDADD="${ARGP_STANDALONE_LDADD}"
-        GF_GLUSTERFS_LIBS="-lnsl -lresolv -lsocket"
         BUILD_FUSE_CLIENT=no
         FUSE_CLIENT_SUBDIR=""
+        GLUSTERD_WORKDIR="${LOCALSTATEDIR}/lib/glusterd"
         ;;
      *netbsd*)
         GF_HOST_OS="GF_BSD_HOST_OS"
@@ -870,39 +890,33 @@ case $host_os in
         GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(sbindir)\\\""
         GF_LDADD="${ARGP_STANDALONE_LDADD}"
         if test "x$ac_cv_header_execinfo_h" = "xyes"; then
-           GF_GLUSTERFS_LIBS="-lexecinfo"
+           GF_LDFLAGS="-lexecinfo"
         fi
         GF_FUSE_LDADD="-lperfuse"
         BUILD_FUSE_CLIENT=yes
         LEXLIB=""
         BUILD_FUSERMOUNT=no
         FUSERMOUNT_SUBDIR=""
+        GLUSTERD_WORKDIR="${LOCALSTATEDIR}/db/glusterd"
         ;;
      *freebsd*)
         GF_HOST_OS="GF_BSD_HOST_OS"
-        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0"
+        GF_CFLAGS="${GF_COMPILER_FLAGS} ${ARGP_STANDALONE_CPPFLAGS} -O0"
         GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME"
         GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME"
         GF_CFLAGS="${GF_CFLAGS} -D_LIBGEN_H_"
         GF_CFLAGS="${GF_CFLAGS} -DO_DSYNC=0"
         GF_CFLAGS="${GF_CFLAGS} -Dxdr_quad_t=xdr_longlong_t"
         GF_CFLAGS="${GF_CFLAGS} -Dxdr_u_quad_t=xdr_u_longlong_t"
-        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}"
         GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(sbindir)\\\""
-        GF_FUSE_LIBS="${GF_FUSE_LIBS} /usr/lib/libutil.so"
-        GF_FUSE_LDADD="-lutil"
-        GF_CFLAGS=" -I/usr/local/include ${GF_CFLAGS}"
-        CFLAGS=" -std=gnu89 ${CFLAGS}"
-        GF_CFLAGS=" -std=gnu89 ${GF_CFLAGS}"
-        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}"
-        GF_LDADD="${ARGP_STANDALONE_LDADD} /usr/local/lib/libpython2.7.so /usr/local/lib/libintl.so"
-        LDFLAGS="${LDFLAGS} -L/usr/local/lib"
+        GF_LDADD="${ARGP_STANDALONE_LDADD}"
         if test "x$ac_cv_header_execinfo_h" = "xyes"; then
-           GF_GLUSTERFS_LIBS="-lexecinfo"
+           GF_LDFLAGS="-lexecinfo"
         fi
+        BUILD_FUSE_CLIENT=yes
         BUILD_FUSERMOUNT=no
-        BUILD_QEMU_BLOCK=no
         FUSERMOUNT_SUBDIR=""
+        GLUSTERD_WORKDIR="${LOCALSTATEDIR}/db/glusterd"
         ;;
      darwin*)
         GF_HOST_OS="GF_DARWIN_HOST_OS"
@@ -918,6 +932,7 @@ case $host_os in
         BUILD_FUSERMOUNT="no"
         BUILD_QEMU_BLOCK="no"
         FUSERMOUNT_SUBDIR=""
+        GLUSTERD_WORKDIR="${LOCALSTATEDIR}/db/glusterd"
         ;;
 esac
 
@@ -1066,7 +1081,6 @@ dnl Required if cmockery2 headers are not in standar paths
 GF_CFLAGS="${GF_CFLAGS} ${UNITTEST_CPPFLAGS}"
 
 AC_SUBST(GF_HOST_OS)
-AC_SUBST([GF_GLUSTERFS_LIBS])
 AC_SUBST(GF_CFLAGS)
 AC_SUBST(GF_LDFLAGS)
 AC_SUBST(GF_LDADD)
@@ -1089,7 +1103,8 @@ AM_CONDITIONAL([GF_LINUX_HOST_OS], test "${GF_HOST_OS}" = "GF_LINUX_HOST_OS")
 AM_CONDITIONAL([GF_DARWIN_HOST_OS], test "${GF_HOST_OS}" = "GF_DARWIN_HOST_OS")
 AM_CONDITIONAL([GF_BSD_HOST_OS], test "${GF_HOST_OS}" = "GF_BSD_HOST_OS")
 
-AM_CONDITIONAL([GF_INSTALL_VAR_LIB_GLUSTERD], test ! -d ${localstatedir}/lib/glusterd && test -d ${sysconfdir}/glusterd )
+AC_SUBST(GLUSTERD_WORKDIR)
+AM_CONDITIONAL([GF_INSTALL_GLUSTERD_WORKDIR], test ! -d ${GLUSTERD_WORKDIR} && test -d ${sysconfdir}/glusterd )
 
 dnl pkg-config versioning
 GFAPI_VERSION="7.0.0"
@@ -1109,6 +1124,9 @@ AC_SUBST(LIBGLUSTERFS_LT_VERSION)
 AC_SUBST(LIBGFCHANGELOG_LT_VERSION)
 AC_SUBST(GFAPI_LT_VERSION)
 
+dnl this change necessary for run-tests.sh
+AC_CONFIG_FILES([tests/env.rc],[ln -s ${ac_abs_builddir}/env.rc ${ac_abs_srcdir}/env.rc 2>/dev/null])
+
 AC_OUTPUT
 
 echo
index 98bedc6f39f5286ad117ecd90c7718b889b0ff14..c0867eb5b35e09502b05aaa3da045de289f0ac14 100644 (file)
@@ -100,6 +100,6 @@ fi
 CPPFLAGS="$CPPFLAGS -I$srcdir"
 
 dnl Added for C99 standards
-CFLAGS="$CFLAGS -std=gnu89"
+CFLAGS="$CFLAGS -std=gnu89 -static"
 
 AC_OUTPUT(Makefile)
index a7fd94de46460949c05f710bdde009a3c739db92..1edde86014a7d724e22708aef075ea40c7e23004 100644 (file)
@@ -246,14 +246,16 @@ fuse_mount_sys (const char *mountpoint, char *fsname,
 #ifdef __FreeBSD__
         struct iovec *iov = NULL;
         int iovlen = 0;
+        char fdstr[15];
+        sprintf (fdstr, "%d", fd);
+
         build_iovec (&iov, &iovlen, "fstype", "fusefs", -1);
         build_iovec (&iov, &iovlen, "subtype", "glusterfs", -1);
-        build_iovec (&iov, &iovlen, "fspath", mountpoint, -1);
+        build_iovec (&iov, &iovlen, "fspath", __DECONST(void *, mountpoint),
+                     -1);
         build_iovec (&iov, &iovlen, "from", "/dev/fuse", -1);
         build_iovec (&iov, &iovlen, "volname", source, -1);
-        build_iovec_argf (&iov, &iovlen, "fd", "%d", fd);
-        build_iovec_argf (&iov, &iovlen, "user_id", "%d", getuid());
-        build_iovec_argf (&iov, &iovlen, "group_id", "%d", getgid());
+        build_iovec (&iov, &iovlen, "fd", fdstr, -1);
         ret = nmount (iov, iovlen, mountflags);
 #else
         ret = mount (source, mountpoint, fstype, mountflags,
index 85f185dd5f7d9d9d173bdd9dc77f38eacdb855e4..ae84cfb1f35a807c92fe878d16950862cafa8437 100644 (file)
@@ -39,9 +39,9 @@
 extern "C" {
 #endif
 
-int     backtrace(void **, int);
-char  **backtrace_symbols(void *const *, int);
-void    backtrace_symbols_fd(void *const *, int, int);
+extern int   backtrace(void **, int);
+extern char  **backtrace_symbols(void *const *, int);
+extern void  backtrace_symbols_fd(void *const *, int, int);
 
 #ifdef __cplusplus
 }
index 25d0b2a73f69a8f80f150d9f6c0bbbb491c932f5..ed8cbaff6a32667fa9bc421d3504dfc6c1324d0e 100644 (file)
@@ -36,7 +36,7 @@ int os_mlock(void);
 typedef struct timeval qemu_timeval;
 #define qemu_gettimeofday(tp) gettimeofday(tp, NULL)
 
-#ifndef CONFIG_UTIMENSAT
+#if !defined(CONFIG_UTIMENSAT) || defined(__FreeBSD__)
 #ifndef UTIME_NOW
 # define UTIME_NOW     ((1l << 30) - 1l)
 #endif
index 5dceea5f58192e66ed309d7ba5d4ba99a39aefd9..77cb9b72d1dbfba8c128c05a76c6f4e7fbf5be3f 100644 (file)
@@ -50,6 +50,7 @@ extern int daemon(int, int);
 #include <glib/gprintf.h>
 
 #include "config-host.h"
+#include "qemu-common.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
 #include "qemu/sockets.h"
index 9395c9c1b65bb421ecee19eff97143feef8fd21c..74b6d17c16b69cac2f5c279b4bbc71f0a27375ee 100644 (file)
@@ -21,6 +21,6 @@ EXTRA_DIST = $(conf_DATA) specgen.scm MacOSX/Portfile glusterfs-mode.el        \
         command-completion/Makefile command-completion/README
 
 install-data-local:
-       $(mkdir_p) $(DESTDIR)$(localstatedir)/lib/glusterd/groups
+       $(mkdir_p) $(DESTDIR)$(GLUSTERD_WORKDIR)/groups
        $(INSTALL_DATA) $(top_srcdir)/extras/group-virt.example \
-               $(DESTDIR)$(localstatedir)/lib/glusterd/groups/virt
+               $(DESTDIR)$(GLUSTERD_WORKDIR)/groups/virt
index 0cd6b1b7a02f7b65f0a4158acc8c9a5eda851ba6..6d3d10b88a084ae82d6792af35fdde25e90ed784 100644 (file)
@@ -5,7 +5,7 @@ scripts_DATA =  gsync-upgrade.sh generate-gfid-file.sh get-gfid.sh \
 scripts_PROGRAMS = gsync-sync-gfid
 gsync_sync_gfid_CFLAGS = $(GF_CFLAGS) -Wall -I$(top_srcdir)/libglusterfs/src
 gsync_sync_gfid_LDFLAGS = $(GF_LDFLAGS)
-gsync_sync_gfid_LDADD = $(GF_LIBS) $(top_builddir)/libglusterfs/src/libglusterfs.la $(GF_GLUSTERFS_LIBS)
+gsync_sync_gfid_LDADD = $(GF_LIBS) $(top_builddir)/libglusterfs/src/libglusterfs.la
 gsync_sync_gfid_SOURCES = gsync-sync-gfid.c
 
 EXTRA_DIST = gsync-sync-gfid.c gsync-upgrade.sh generate-gfid-file.sh \
similarity index 85%
rename from extras/glusterd.vol
rename to extras/glusterd.vol.in
index fe2e3e2c772e7be41685b44d6d5e7db39f5d875a..690dbe718237732d69a93e5934c6d36c072b8cc7 100644 (file)
@@ -1,6 +1,6 @@
 volume management
     type mgmt/glusterd
-    option working-directory /var/lib/glusterd
+    option working-directory @GLUSTERD_WORKDIR@
     option transport-type socket,rdma
     option transport.socket.keepalive-time 10
     option transport.socket.keepalive-interval 2
index 1866f6abd7edae24388319d025416dc51785d136..d18367fc9dfa2c6f5d79d8ecd927646731f2eeb5 100755 (executable)
@@ -18,7 +18,7 @@ PROGNAME="Quota-xattr-heal-add-brick"
 VOL_NAME=
 VERSION=
 VOLUME_OP=
-GLUSTERD_WORKING_DIR=
+GLUSTERD_WORKDIR=
 ENABLED_NAME="S28Quota-root-xattr-heal.sh"
 
 
@@ -45,33 +45,33 @@ eval set -- "$ARGS"
 
 while true;
 do
-        case $1 in
+    case $1 in
         --volname)
-                 shift
-                 VOL_NAME=$1
-                 ;;
+            shift
+            VOL_NAME=$1
+            ;;
         --version)
-                 shift
-                 VERSION=$1
-                 ;;
-         --gd-workdir)
-                 shift
-                 GLUSTERD_WORKING_DIR=$1
-                 ;;
-         --volume-op)
-                 shift
-                 VOLUME_OP=$1
-                 ;;
+            shift
+            VERSION=$1
+            ;;
+        --gd-workdir)
+            shift
+            GLUSTERD_WORKDIR=$1
+            ;;
+        --volume-op)
+            shift
+            VOLUME_OP=$1
+            ;;
         *)
-                 shift
-                 break
-                 ;;
-        esac
-        shift
+            shift
+            break
+            ;;
+    esac
+    shift
 done
 ##----------------------------------------
 
-ENABLED_STATE="$GLUSTERD_WORKING_DIR/hooks/$VERSION/$VOLUME_OP/post/$ENABLED_NAME"
+ENABLED_STATE="$GLUSTERD_WORKDIR/hooks/$VERSION/$VOLUME_OP/post/$ENABLED_NAME"
 
 
 FLAG=`gluster volume quota $VOL_NAME list / 2>&1 | grep \
index 0801386549abf2e92b1c88facede70898ab308a9..348f34ec3dbba229e69b42eebe07ee0083c2da6e 100755 (executable)
@@ -23,7 +23,7 @@
 OPTSPEC="volname:,version:,gd-workdir:,volume-op:"
 PROGNAME="Quota-xattr-heal-add-brick-pre"
 VOL_NAME=
-GLUSTERD_WORKING_DIR=
+GLUSTERD_WORKDIR=
 VOLUME_OP=
 VERSION=
 ENABLED_NAME="S28Quota-root-xattr-heal.sh"
@@ -42,35 +42,35 @@ eval set -- "$ARGS"
 
 while true;
 do
-        case $1 in
+    case $1 in
         --volname)
-                 shift
-                 VOL_NAME=$1
-                 ;;
+            shift
+            VOL_NAME=$1
+            ;;
         --gd-workdir)
-                 shift
-                 GLUSTERD_WORKING_DIR=$1
-                 ;;
+            shift
+            GLUSTERD_WORKDIR=$1
+            ;;
         --volume-op)
-                 shift
-                 VOLUME_OP=$1
-                 ;;
+            shift
+            VOLUME_OP=$1
+            ;;
         --version)
-                 shift
-                 VERSION=$1
-                 ;;
+            shift
+            VERSION=$1
+            ;;
         *)
-                 shift
-                 break
-                 ;;
-        esac
-        shift
+            shift
+            break
+            ;;
+    esac
+    shift
 done
 ##----------------------------------------
 
-DISABLED_STATE="$GLUSTERD_WORKING_DIR/hooks/$VERSION/add-brick/post/$DISABLED_NAME"
-ENABLED_STATE_START="$GLUSTERD_WORKING_DIR/hooks/$VERSION/start/post/$ENABLED_NAME"
-ENABLED_STATE_ADD_BRICK="$GLUSTERD_WORKING_DIR/hooks/$VERSION/add-brick/post/$ENABLED_NAME";
+DISABLED_STATE="$GLUSTERD_WORKDIR/hooks/$VERSION/add-brick/post/$DISABLED_NAME"
+ENABLED_STATE_START="$GLUSTERD_WORKDIR/hooks/$VERSION/start/post/$ENABLED_NAME"
+ENABLED_STATE_ADD_BRICK="$GLUSTERD_WORKDIR/hooks/$VERSION/add-brick/post/$ENABLED_NAME";
 
 ## Why to proceed if the required script itself is not present?
 ls $DISABLED_STATE;
@@ -80,7 +80,7 @@ then
 fi
 
 ## Is quota enabled?
-FLAG=`cat $GLUSTERD_WORKING_DIR/vols/$VOL_NAME/info | grep "^features.quota=" \
+FLAG=`cat $GLUSTERD_WORKDIR/vols/$VOL_NAME/info | grep "^features.quota=" \
       | awk -F'=' '{print $NF}'`;
 if [ "$FLAG" != "on" ]
 then
@@ -88,7 +88,7 @@ then
 fi
 
 ## Is volume started?
-FLAG=`cat $GLUSTERD_WORKING_DIR/vols/$VOL_NAME/info | grep "^status=" \
+FLAG=`cat $GLUSTERD_WORKDIR/vols/$VOL_NAME/info | grep "^status=" \
       | awk -F'=' '{print $NF}'`;
 if [ "$FLAG" != "1" ]
 then
index a683af5c0c02e28c6ec6dfd585dcabd2c7e85114..c0be3f3841d3af876dc79e3d2a520cf1240fef24 100755 (executable)
@@ -1,27 +1,35 @@
 #/bin/bash
 PROGNAME="Sganesha-reset"
-OPTSPEC="volname:"
+OPTSPEC="volname:,gd-workdir:"
 VOL=
+GLUSTERD_WORKDIR=
 
 function parse_args () {
         ARGS=$(getopt -l $OPTSPEC  -o "o" -name $PROGNAME $@)
         eval set -- "$ARGS"
-        case $1 in
-            --volname)
-               shift
-               VOL=$1
-                ;;
-        esac
+        while true; do
+            case $1 in
+                --volname)
+                    shift
+                    VOL=$1
+                    ;;
+                --gd-workdir)
+                    shift
+                    GLUSTERD_WORKDIR=$1
+                    ;;
+            esac
+            shift
+        done
 }
 
 function is_volume_started () {
         volname=$1
-        echo "$(grep status /var/lib/glusterd/vols/"$volname"/info |\
+        echo "$(grep status $GLUSTERD_WORKDIR/vols/"$volname"/info |\
                 cut -d"=" -f2)"
 }
 
 parse_args $@
-if ps aux | grep -q "[g]anesha.nfsd"
+if ps auxwww | grep -q "[g]anesha.nfsd"
         then
         kill -s TERM `cat /var/run/ganesha.pid`
         sleep 10
@@ -33,6 +41,3 @@ if ps aux | grep -q "[g]anesha.nfsd"
                 gluster volume start $VOL force
         fi
 fi
-
-
-
index 3ff368207c424b60d60d218dd637f7f81d7b61c7..9153dcd0bb2237bf9cf80b13db600006c6440e4e 100755 (executable)
 
 
 PROGNAME="Ssamba-set"
-OPTSPEC="volname:"
+OPTSPEC="volname:,gd-workdir:"
 VOL=
 CONFIGFILE=
 LOGFILEBASE=
 PIDDIR=
+GLUSTERD_WORKDIR=
 
 enable_smb=""
 
@@ -32,29 +33,32 @@ function parse_args () {
 
         while true; do
             case $1 in
-            --volname)
-                shift
-                VOL=$1
-                ;;
-            *)
-                shift
-                for pair in $@; do
+                --volname)
+                    shift
+                    VOL=$1
+                    ;;
+                --gd-workdir)
+                    shift
+                    GLUSTERD_WORKDIR=$1
+                    ;;
+                *)
+                    shift
+                    for pair in $@; do
                         read key value < <(echo "$pair" | tr "=" " ")
                         case "$key" in
                             "user.cifs")
-                                    enable_smb=$value
-                                    ;;
+                                enable_smb=$value
+                                ;;
                             "user.smb")
-                                    enable_smb=$value
-                                    ;;
+                                enable_smb=$value
+                                ;;
                             *)
-                                    ;;
+                                ;;
                         esac
-                done
-
-                shift
-                break
-                ;;
+                    done
+                    shift
+                    break
+                    ;;
             esac
             shift
         done
@@ -102,7 +106,7 @@ function del_samba_share () {
 
 function is_volume_started () {
         volname=$1
-        echo "$(grep status /var/lib/glusterd/vols/"$volname"/info |\
+        echo "$(grep status $GLUSTERD_WORKDIR/vols/"$volname"/info |\
                 cut -d"=" -f2)"
 }
 
index 972f82c57302e665ece78ae91cb56364a80442be..b09a3942a8ef4b9407d12acf73cb024e870b0089 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 PROGNAME="Sganesha-set"
-OPTSPEC="volname:"
+OPTSPEC="volname:,gd-workdir:"
 VOL=
 declare -i EXPORT_ID
 GANESHA_DIR="/var/lib/glusterfs-ganesha"
@@ -11,7 +11,7 @@ gnfs="enabled"
 enable_ganesha=""
 host_name="none"
 LOC=""
-
+GLUSTERD_WORKDIR=
 
 
 function parse_args ()
@@ -21,29 +21,32 @@ function parse_args ()
 
         while true; do
             case $1 in
-            --volname)
-                shift
-                VOL=$1
-                ;;
-            *)
-                shift
-                for pair in $@; do
+                --volname)
+                    shift
+                    VOL=$1
+                    ;;
+                --gd-workdir)
+                    shift
+                    GLUSTERD_WORKDIR=$1
+                    ;;
+                *)
+                    shift
+                    for pair in $@; do
                         read key value < <(echo "$pair" | tr "=" " ")
                         case "$key" in
-                          "nfs-ganesha.enable")
-                                    enable_ganesha=$value
-                                    ;;
-                          "nfs-ganesha.host")
-                                    host_name=$value
-                                    ;;
+                            "nfs-ganesha.enable")
+                                enable_ganesha=$value
+                                ;;
+                            "nfs-ganesha.host")
+                                host_name=$value
+                                ;;
                             *)
-                                    ;;
+                                ;;
                         esac
-                done
-
-                shift
-                break
-                ;;
+                    done
+                    shift
+                    break
+                    ;;
             esac
             shift
         done
@@ -52,7 +55,7 @@ function parse_args ()
 
 function check_if_host_set()
 {
-        if ! cat /var/lib/glusterd/vols/$VOL/info | grep -q "nfs-ganesha.host"
+        if ! cat $GLUSTERD_WORKDIR/vols/$VOL/info | grep -q "nfs-ganesha.host"
                 then
                 exit 1
         fi
@@ -71,7 +74,7 @@ function check_nfsd_loc()
 
 function check_gluster_nfs()
 {
-        if cat /var/lib/glusterd/vols/$VOL/info | grep -q "nfs.disable=ON"
+        if cat $GLUSTERD_WORKDIR/vols/$VOL/info | grep -q "nfs.disable=ON"
                  then
                  gnfs="disabled"
         fi
@@ -279,5 +282,3 @@ function stop_ganesha()
                 fi
 
         fi
-
-
index 34fde0ef8c0aa3431e2eba2cc84901cf923e1b95..43dc8e108da6a16acb4235041f33c3b68b3a5c9e 100755 (executable)
 #volume.
 
 PROGNAME="Ssamba-start"
-OPTSPEC="volname:"
+OPTSPEC="volname:,gd-workdir:"
 VOL=
 CONFIGFILE=
 LOGFILEBASE=
 PIDDIR=
+GLUSTERD_WORKDIR=
 
 function parse_args () {
         ARGS=$(getopt -l $OPTSPEC  -name $PROGNAME $@)
         eval set -- "$ARGS"
 
         while true; do
-        case $1 in
-        --volname)
-         shift
-         VOL=$1
-         ;;
-        *)
-         shift
-         break
-         ;;
-        esac
-        shift
+            case $1 in
+                --volname)
+                    shift
+                    VOL=$1
+                    ;;
+                --gd-workdir)
+                    shift
+                    GLUSTERD_WORKDIR=$1
+                    ;;
+                *)
+                    shift
+                    break
+                    ;;
+            esac
+            shift
         done
 }
 
@@ -85,9 +90,9 @@ function get_smb () {
         volname=$1
         uservalue=
 
-        usercifsvalue=$(grep user.cifs /var/lib/glusterd/vols/"$volname"/info |\
+        usercifsvalue=$(grep user.cifs $GLUSTERD_WORKDIR/vols/"$volname"/info |\
                         cut -d"=" -f2)
-        usersmbvalue=$(grep user.smb /var/lib/glusterd/vols/"$volname"/info |\
+        usersmbvalue=$(grep user.smb $GLUSTERD_WORKDIR/vols/"$volname"/info |\
                        cut -d"=" -f2)
 
         if [[ $usercifsvalue = "disable" || $usersmbvalue = "disable" ]]; then
index 5eed6360a890f45b46583db7fca8ac71b2efe185..21c3da726242ecfebe639701090fa204ccef8b42 100644 (file)
@@ -16,7 +16,7 @@ start_precmd="glusterd_prestart"
 
 glusterd_prestart()
 {
-    mkdir -p /var/lib/glusterd /var/log/glusterfs
+    mkdir -p @GLUSTERD_WORKDIR@ /var/log/glusterfs
     return 0
 }
 
index fc8d8c9a235e31e59921635d402c041e476599fe..a5d260d86e7653e49a466478821f56005285b2a6 100644 (file)
@@ -5,9 +5,9 @@ Before=network-online.target
 
 [Service]
 Type=forking
-PIDFile=/run/glusterd.pid
+PIDFile=@localstatedir@/run/glusterd.pid
 LimitNOFILE=65536
-ExecStart=@prefix@/sbin/glusterd -p /run/glusterd.pid
+ExecStart=@prefix@/sbin/glusterd -p @localstatedir@/run/glusterd.pid
 KillMode=process
 
 [Install]
index 20b5b6bde6b7719f16b9696a74b1146834bbcaee..68b18c66e882b3bce8b199586354417e808080b3 100644 (file)
@@ -1,4 +1,3 @@
-
 gsyncddir = $(libexecdir)/glusterfs
 
 gsyncd_SCRIPTS = gverify.sh peer_add_secret_pub peer_gsec_create set_geo_rep_pem_keys.sh
@@ -11,8 +10,7 @@ gsyncd_PROGRAMS = gsyncd
 
 gsyncd_SOURCES = gsyncd.c procdiggy.c
 
-gsyncd_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
-       $(GF_GLUSTERFS_LIBS)
+gsyncd_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
 
 gsyncd_LDFLAGS = $(GF_LDFLAGS)
 
index 122e577b44642b0f2b364ea00351a50db0fb76bd..97011f204d28e695063f94a9757042b8a766f25b 100644 (file)
@@ -30,4 +30,4 @@ if [ ! -d $home_dir/.ssh/authorized_keys ]; then
     chown $user: $home_dir/.ssh/authorized_keys;
 fi
 
-cat "$GLUSTERD_WORKING_DIR"/geo-replication/common_secret.pem.pub >> $home_dir/.ssh/authorized_keys;
+cat "$GLUSTERD_WORKDIR"/geo-replication/common_secret.pem.pub >> $home_dir/.ssh/authorized_keys;
index a39fdbfb5f707fb4abc747b6f0ae1a74b515d8d3..9cadce5645345499700916e965bff4e341dc7fbd 100755 (executable)
@@ -3,16 +3,16 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 
-if [ ! -f "$GLUSTERD_WORKING_DIR"/geo-replication/secret.pem.pub ]; then
-    \rm -rf "$GLUSTERD_WORKING_DIR"/geo-replication/secret.pem*
-    ssh-keygen -N '' -f "$GLUSTERD_WORKING_DIR"/geo-replication/secret.pem > /dev/null
+if [ ! -f "$GLUSTERD_WORKDIR"/geo-replication/secret.pem.pub ]; then
+    \rm -rf "$GLUSTERD_WORKDIR"/geo-replication/secret.pem*
+    ssh-keygen -N '' -f "$GLUSTERD_WORKDIR"/geo-replication/secret.pem > /dev/null
 fi
 
-if [ ! -f "$GLUSTERD_WORKING_DIR"/geo-replication/tar_ssh.pem.pub ]; then
-    \rm -rf "$GLUSTERD_WORKING_DIR"/geo-replication/tar_ssh.pem*
-    ssh-keygen -N '' -f "$GLUSTERD_WORKING_DIR"/geo-replication/tar_ssh.pem > /dev/null
+if [ ! -f "$GLUSTERD_WORKDIR"/geo-replication/tar_ssh.pem.pub ]; then
+    \rm -rf "$GLUSTERD_WORKDIR"/geo-replication/tar_ssh.pem*
+    ssh-keygen -N '' -f "$GLUSTERD_WORKDIR"/geo-replication/tar_ssh.pem > /dev/null
 fi
 
-output1=`echo command=\"${exec_prefix}/libexec/glusterfs/gsyncd\" " "``cat "$GLUSTERD_WORKING_DIR"/geo-replication/secret.pem.pub`
-output2=`echo command=\"tar \$\{SSH_ORIGINAL_COMMAND#* \}\" " "``cat "$GLUSTERD_WORKING_DIR"/geo-replication/tar_ssh.pem.pub`
+output1=`echo command=\"${exec_prefix}/libexec/glusterfs/gsyncd\" " "``cat "$GLUSTERD_WORKDIR"/geo-replication/secret.pem.pub`
+output2=`echo command=\"tar \$\{SSH_ORIGINAL_COMMAND#* \}\" " "``cat "$GLUSTERD_WORKDIR"/geo-replication/tar_ssh.pem.pub`
 echo -e "$output1\n$output2"
index 7a7bcad25c2ef5f1087d21aeadccf2add94f9ee0..7b825693fadeb49593074c46448077d2b4980e94 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # Script to copy the pem keys from the user's home directory
-# to $GLUSTERD_WORKING_DIR/geo-replication/ and then copy
+# to $GLUSTERD_WORKDIR/geo-replication and then copy
 # the keys to other nodes in the cluster and add them to the
 # respective authorized keys. The script takes as argument the
 # user name and assumes that the user will be present in all
@@ -28,7 +28,7 @@ function main()
     fi
 
     if [ -f $home_dir/common_secret.pem.pub ]; then
-        cp $home_dir/common_secret.pem.pub /var/lib/glusterd/geo-replication/
+        cp $home_dir/common_secret.pem.pub ${GLUSTERD_WORKDIR}/geo-replication/
         gluster system:: copy file /geo-replication/common_secret.pem.pub
         gluster system:: execute add_secret_pub $user
     else
similarity index 97%
rename from geo-replication/syncdaemon/configinterface.py
rename to geo-replication/syncdaemon/configinterface.py.in
index a94e07f0d4b4e2f3c2471af0eb9f540c06205efd..acb51486a105bdf295b971976362d39b7b2f4ecb 100644 (file)
@@ -36,7 +36,7 @@ CONFIGS = (
     ("peersrx . .",
      "georep_session_working_dir",
      "",
-     "/var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_"
+     "@GLUSTERD_WORKDIR@/geo-replication/${mastervol}_${remotehost}_"
      "${slavevol}/"),
     ("peersrx .",
      "gluster_params",
@@ -46,7 +46,7 @@ CONFIGS = (
      "ssh_command_tar",
      "",
      "ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no "
-     "-i /var/lib/glusterd/geo-replication/tar_ssh.pem"),
+     "-i @GLUSTERD_WORKDIR@/geo-replication/tar_ssh.pem"),
     ("peersrx . .",
      "changelog_log_file",
      "",
@@ -54,11 +54,7 @@ CONFIGS = (
      "/${eSlave}${local_id}-changes.log"),
     ("peersrx . .",
      "working_dir",
-     "/var/run/gluster/${mastervol}/${eSlave}",
-     "${iprefix}/lib/misc/glusterfsd/${mastervol}/${eSlave}"),
-    ("peersrx . .",
-     "working_dir",
-     "/usr/local/var/run/gluster/${mastervol}/${eSlave}",
+     "@localstatedir@/run/gluster/${mastervol}/${eSlave}",
      "${iprefix}/lib/misc/glusterfsd/${mastervol}/${eSlave}"),
 )
 
index e66d8ed3199bee1805e04e149c10e96f352c7cdb..a2f05b64f65844fc8f8ad25c55a8a45b40f73431 100644 (file)
@@ -3,8 +3,8 @@ sbin_PROGRAMS = glusterfsd
 glusterfsd_SOURCES = glusterfsd.c glusterfsd-mgmt.c
 glusterfsd_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
        $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
-       $(top_builddir)/rpc/xdr/src/libgfxdr.la \
-       $(GF_LDADD) $(GF_GLUSTERFS_LIBS)
+       $(top_builddir)/rpc/xdr/src/libgfxdr.la ${GF_LDADD}
+
 glusterfsd_LDFLAGS = $(GF_LDFLAGS)
 noinst_HEADERS = glusterfsd.h glusterfsd-mem-types.h glusterfsd-messages.h
 
index 0f6c108ee64dd1829d9e363efae1df09e71e9e1a..eba1413a1e6eb98950aab7cf893b5c29fc21472f 100644 (file)
@@ -170,10 +170,10 @@ typedef struct {
                struct statvfs statvfs;
                dict_t *xattr;
                struct gf_flock lock;
-               gf_dirent_t entries;
                uint32_t weak_checksum;
                uint8_t *strong_checksum;
                dict_t *xdata;
+                gf_dirent_t entries;
        } args_cbk;
 } call_stub_t;
 
index eb3d8963cab2f85def004689dfed8a24cac9af2f..d9de5b1505c249dc8fc9da7cd30ac7bacee9e3a9 100644 (file)
 
 #define DEFAULT_VAR_RUN_DIRECTORY        DATADIR "/run/gluster"
 #define DEFAULT_GLUSTERFSD_MISC_DIRETORY DATADIR "/lib/misc/glusterfsd"
+#ifdef GF_LINUX_HOST_OS
+#define GLUSTERD_DEFAULT_WORKDIR DATADIR "/lib/glusterd"
+#else
+#define GLUSTERD_DEFAULT_WORKDIR DATADIR "/db/glusterd"
+#endif
 #define GF_REPLICATE_TRASH_DIR           ".landfill"
 
 /* GlusterFS's maximum supported Auxiliary GIDs */
@@ -577,9 +582,8 @@ struct gf_flock {
  * reduce functionality, both for users and for testing (which can now be
  * done using secure connections for all tests without change elsewhere).
  *
- * Nonetheless, TBD: define in terms of build-time PREFIX
  */
-#define SECURE_ACCESS_FILE      "/var/lib/glusterd/secure-access"
+#define SECURE_ACCESS_FILE     GLUSTERD_DEFAULT_WORKDIR "/secure-access"
 
 int glusterfs_graph_prepare (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx);
 int glusterfs_graph_destroy (glusterfs_graph_t *graph);
index 1a52af7833a908aa59f6c1e5b025d2ccf587d51d..e3a07649340a2e949ac4dad433ad7a7ae56a34a6 100644 (file)
@@ -134,7 +134,6 @@ struct syncargs {
         struct iatt         iatt1;
         struct iatt         iatt2;
         dict_t             *xattr;
-        gf_dirent_t        entries;
         struct statvfs     statvfs_buf;
         struct iovec       *vector;
         int                 count;
@@ -156,6 +155,7 @@ struct syncargs {
         pthread_mutex_t     mutex;
         pthread_cond_t      cond;
        int                 done;
+        gf_dirent_t        entries;
 };
 
 struct syncopctx {
index a10f182647fb0232b665bfaf1d4b76e429b70913..1238a6a1c1ed3ceddad712a9de5b2c90fe865231 100644 (file)
@@ -107,7 +107,7 @@ out:
 
 rpcsvc_vector_sizer
 rpcsvc_get_program_vector_sizer (rpcsvc_t *svc, uint32_t prognum,
-                                 uint32_t progver, uint32_t procnum)
+                                 uint32_t progver, int procnum)
 {
         rpcsvc_program_t        *program = NULL;
         char                    found    = 0;
index 5a991d4993f7d1f1902837271ebae47986ae7551..911fc958cc0e601ac439018eb57cfade6b6d87ee 100644 (file)
@@ -604,5 +604,5 @@ int
 rpcsvc_auth_array (rpcsvc_t *svc, char *volname, int *autharr, int arrlen);
 rpcsvc_vector_sizer
 rpcsvc_get_program_vector_sizer (rpcsvc_t *svc, uint32_t prognum,
-                                 uint32_t progver, uint32_t procnum);
+                                 uint32_t progver, int procnum);
 #endif
index 2be83924ac6cb03c97c39f7f4a9bf9b7421cf4f4..0e145fc995433c8f0c1e0a60566532eb5586e981 100644 (file)
@@ -8,6 +8,20 @@
   cases as published by the Free Software Foundation.
 */
 
+#if defined(__GNUC__)
+#if __GNUC__ >= 4
+#if !defined(__clang__)
+#if !defined(__NetBSD__)
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#endif
+#else
+#pragma clang diagnostic ignored "-Wunused-variable"
+#pragma clang diagnostic ignored "-Wunused-value"
+#endif
+#endif
+#endif
+
 #include "xdr-nfs3.h"
 #include "mem-pool.h"
 #include "xdr-common.h"
index 9b71aea9516b07a1e1042e99b48fb287897475cd..12d902fbc882c05a7becc9708cd62c05d4c34030 100755 (executable)
@@ -165,7 +165,7 @@ function run_tests()
                 echo "Running tests in file $t"
                 prove -f --timer $t
             fi
-           TMP_RES=$?
+            TMP_RES=$?
             if [ ${TMP_RES} -ne 0 ] ; then
                 RES=${TMP_RES}
                 FAILED="$FAILED $t"
index 84138fffb4562c8f0ba9b565c77c9420d7c9caaf..50e1a9d5005d9045d74f1b058d4e590151221a9e 100644 (file)
@@ -34,4 +34,4 @@ Regression tests framework for GlusterFS
   `gluster-devel@gluster.org`.
 
 ## Reminder
-- BE WARNED THAT THE TEST CASES DELETE /var/lib/glusterd/* !!!
+- BE WARNED THAT THE TEST CASES DELETE ``GLUSTERD_WORKDIR`` * !!!
index 67f893ca48828e87995a6c83b9acd920d82ad5a8..2373e4461cedd0c6dd221fc899e392c39c612bfb 100644 (file)
@@ -24,7 +24,7 @@ EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
 TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --entry-timeout=0
 EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
 
-TEST glusterfs --volfile=/var/lib/glusterd/vols/$V0/${V0}-fuse.vol $M0
+TEST glusterfs --volfile=$GLUSTERD_WORKDIR/vols/$V0/${V0}-fuse.vol $M0
 EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
 
 TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 --log-file=/tmp/a.txt --log-level=DEBUG $M0
index 9251927e31405bf5f9ce52ee21f3e781e6d1d036..cc388bde60597da150b4e7e86727c652c871d0d2 100644 (file)
@@ -17,7 +17,7 @@ TEST $CLI volume set $V0 features.uss disable;
 
 TEST killall glusterd;
 
-rm -f /var/lib/glusterd/vols/$V0/snapd.info
+rm -f $GLUSTERD_WORKDIR/vols/$V0/snapd.info
 
 TEST glusterd
 
index a9784b93d0c1e83c0c798f07df15d25efe180a67..65bc6597eeabe56bdbde1b5e024edcad4f87377f 100644 (file)
@@ -31,7 +31,7 @@ TEST $CLI volume set $V0 node-uuid-pathinfo on
 # do not expext hostname as part of the pathinfo string
 EXPECT 0 count_hostname_or_uuid_from_pathinfo $H0
 
-uuid=`grep UUID /var/lib/glusterd/glusterd.info | cut -f2 -d=`
+uuid=`grep UUID $GLUSTERD_WORKDIR/glusterd.info | cut -f2 -d=`
 
 # ... but expect the uuid $REPLICA times
 EXPECT $REPLICA count_hostname_or_uuid_from_pathinfo $uuid
index f160e418c2bff19c7851760a511809a709e926ec..d29c4bd7a2a8a6dbbfbf0a62f8bf083810b402f5 100755 (executable)
@@ -21,8 +21,8 @@ $M0;
 touch $M0/{1..22};
 rm -f $M0/*;
 
-pid_file=$(ls /var/lib/glusterd/vols/$V0/run);
-brick_pid=$(cat /var/lib/glusterd/vols/$V0/run/$pid_file);
+pid_file=$(ls $GLUSTERD_WORKDIR/vols/$V0/run);
+brick_pid=$(cat $GLUSTERD_WORKDIR/vols/$V0/run/$pid_file);
 
 mkdir $statedumpdir/statedump_tmp/;
 echo "path=$statedumpdir/statedump_tmp" > $statedumpdir/glusterdump.options;
index 13e99af579800aff7a484fd676a63790e686e76f..966995945cbbac5f2e344324b8a18d27dfc257c8 100755 (executable)
@@ -8,10 +8,10 @@ TEST glusterd
 TEST pidof glusterd
 TEST $CLI system uuid reset;
 
-uuid1=$(grep UUID /var/lib/glusterd/glusterd.info | cut -f 2 -d "=");
+uuid1=$(grep UUID $GLUSTERD_WORKDIR/glusterd.info | cut -f 2 -d "=");
 
 TEST $CLI system uuid reset;
-uuid2=$(grep UUID /var/lib/glusterd/glusterd.info | cut -f 2 -d "=");
+uuid2=$(grep UUID $GLUSTERD_WORKDIR/glusterd.info | cut -f 2 -d "=");
 
 TEST [ $uuid1 != $uuid2 ]
 
index becb202225ffcec1f9a15dddd6db494186ed8fa4..3e314aa5bb3229d17c1e8711c2d601b5fd0ec57e 100644 (file)
@@ -35,7 +35,7 @@ EXPECT $BRICK_COUNT query_pathinfo $M0/f00d;
 # Kill a brick process and then query for pathinfo
 # for directories pathinfo should list backend patch from available (up) subvolumes
 
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
 
 EXPECT `expr $BRICK_COUNT - 1` query_pathinfo $M0/f00d;
 
index eafb4a9621dd5cf138e3da9df69cc62420350c19..8f11b7f3921fbd8202e471fa09f9789541b1d97e 100755 (executable)
@@ -39,8 +39,8 @@ TEST touch $M0/newfile;
 TEST stat $M0/newfile;
 TEST rm $M0/newfile;
 
-nfs_pid=$(cat /var/lib/glusterd/nfs/run/nfs.pid);
-glustershd_pid=$(cat /var/lib/glusterd/glustershd/run/glustershd.pid);
+nfs_pid=$(cat $GLUSTERD_WORKDIR/nfs/run/nfs.pid);
+glustershd_pid=$(cat $GLUSTERD_WORKDIR/glustershd/run/glustershd.pid);
 
 pids=$(pidof glusterfs);
 for i in $pids
index dd3fcc6793b391ec6fdde91467460c6b1b53cde6..a4b3d71fb78f276a6364dff17aa4f2aad75c2391 100644 (file)
@@ -31,7 +31,7 @@ TEST touch $M0/files{1..10000};
 ORIG_FILE_COUNT=`ls -l $M0 | wc -l`;
 
 # Kill a brick process
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
 
 TEST $CLI volume rebalance $V0 fix-layout start
 
index 5fd08f12d0267161b4230c1692ac438559c0dcf3..f4fd4e52a584a1742e3d4f230fd40ccfd7483804 100755 (executable)
@@ -40,7 +40,7 @@ TEST $CLI --xml volume status $V0;
 TEST $CLI --xml volume status $V0 detail;
 
 # Kill the brick process. After this, port number for the killed (in this case brick) process must be "N/A".
-kill `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-brick0.pid`
+kill `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-brick0.pid`
 
 EXPECT "N/A" port_field $V0 '0'; # volume status
 EXPECT "N/A" port_field $V0 '1'; # volume status detail
index 00fa884408a285286c1cb13f2364d1e7a387bfaa..bd500b1da9d2fa08cbd067cd6a735166e23dbfc2 100644 (file)
@@ -36,7 +36,7 @@ chown 1:1 $M0/dir;
 
 # Kill a brick process
 
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
 # change dir ownership
 NEW_UID=36;
 NEW_GID=36;
index 560ff11a28e48fa342d428ad4f7b6227dd7213a1..6b0332959e9d1b8bfebc0d12a2e71a1d3bc61bb2 100644 (file)
@@ -35,7 +35,7 @@ TEST mount -o vers=3,nolock,noac -t nfs $H0:/$V0 $M0;
 touch $M0/files{1..1000};
 
 # Kill a brick process
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}0.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}0.pid`;
 
 echo 3 >/proc/sys/vm/drop_caches;
 
@@ -46,7 +46,7 @@ NEW_FILE_COUNT=`echo $?`;
 TEST $CLI volume start $V0 force
 
 # Kill a brick process
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}1.pid`;
 
 echo 3 >/proc/sys/vm/drop_caches;
 
index 9337e6dc68042d10e3e28bc8824e7c68d50aec0d..843698d2a6112f3bb7da7916f4fc82ba4691b05d 100644 (file)
@@ -14,7 +14,7 @@ TEST $CLI volume start $V0;
 
 TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0;
 B0_hiphenated=`echo $B0 | tr '/' '-'`
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0$B0_hiphenated-brick1.pid` ;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0$B0_hiphenated-brick1.pid` ;
 
 echo "GLUSTER FILE SYSTEM" > $M0/FILE1
 echo "GLUSTER FILE SYSTEM" > $M0/FILE2
index 932ecc77b86cb32e0be8c8efad6ec285ac259e59..979cbfd3fdc1929e292ea6461f12dc385e8c26e5 100755 (executable)
@@ -23,21 +23,21 @@ function hooks_prep ()
 {
     local event=$1
     touch /tmp/pre.out /tmp/post.out
-    touch /var/lib/glusterd/hooks/1/"$event"/pre/Spre.sh
-    touch /var/lib/glusterd/hooks/1/"$event"/post/Spost.sh
+    touch $GLUSTERD_WORKDIR/hooks/1/"$event"/pre/Spre.sh
+    touch $GLUSTERD_WORKDIR/hooks/1/"$event"/post/Spost.sh
 
-    printf "#! /bin/bash\necho "$event"Pre > /tmp/pre.out\n" > /var/lib/glusterd/hooks/1/"$event"/pre/Spre.sh
-    printf "#! /bin/bash\necho "$event"Post > /tmp/post.out\n" > /var/lib/glusterd/hooks/1/"$event"/post/Spost.sh
-    chmod a+x /var/lib/glusterd/hooks/1/"$event"/pre/Spre.sh
-    chmod a+x /var/lib/glusterd/hooks/1/"$event"/post/Spost.sh
+    printf "#! /bin/bash\necho "$event"Pre > /tmp/pre.out\n" > $GLUSTERD_WORKDIR/hooks/1/"$event"/pre/Spre.sh
+    printf "#! /bin/bash\necho "$event"Post > /tmp/post.out\n" > $GLUSTERD_WORKDIR/hooks/1/"$event"/post/Spost.sh
+    chmod a+x $GLUSTERD_WORKDIR/hooks/1/"$event"/pre/Spre.sh
+    chmod a+x $GLUSTERD_WORKDIR/hooks/1/"$event"/post/Spost.sh
 }
 
 function hooks_cleanup ()
 {
     local event=$1
     rm /tmp/pre.out /tmp/post.out
-    rm /var/lib/glusterd/hooks/1/"$event"/pre/Spre.sh
-    rm /var/lib/glusterd/hooks/1/"$event"/post/Spost.sh
+    rm $GLUSTERD_WORKDIR/hooks/1/"$event"/pre/Spre.sh
+    rm $GLUSTERD_WORKDIR/hooks/1/"$event"/post/Spost.sh
 }
 
 ## Verify volume is created and its hooks script ran
index a069d4a8ac166542248253c45536e634c2a53fbc..8ba35ec1a59911fa0e0d86a5dedbe95f26e246ef 100644 (file)
@@ -9,7 +9,7 @@ TEST $CLI volume create $V0 replica 2 $H0:$B0/brick1 $H0:$B0/brick2
 TEST $CLI volume start $V0
 pkill glusterfs
 uuid=""
-for line in $(cat /var/lib/glusterd/glusterd.info)
+for line in $(cat $GLUSTERD_WORKDIR/glusterd.info)
 do
        if [[ $line == UUID* ]]
        then
index fd8b9a7cebabd3fb11158c13f06ba5925f0d852e..46aec53cfd3ca4104664bad545859b0c3e4e72db 100755 (executable)
@@ -59,7 +59,7 @@ then
         get_cached_brick
         CACHED=$?
         # Kill a brick process
-        kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}$CACHED.pid`;
+        kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}$CACHED.pid`;
 fi
 
 ## trigger a lookup
index 3f26fdde970a07a7755ee356c84f83641caa2965..9b824b1b558b440a5ad73c8c7b44a41ba76d3cd1 100755 (executable)
@@ -54,8 +54,8 @@ TEST glusterfs -s $H0 --volfile-id $V0 $M0 --entry-timeout=0 --attribute-timeout
 TEST ls -l $M0
 
 ## kill 2 bricks to bring down available subvol < spread count
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}2.pid`;
-kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}3.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}2.pid`;
+kill -9 `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-${V0}3.pid`;
 
 mkdir $M0/dir1 2>/dev/null
 
index 01880246ef2558af0575dff6ae545ff64c80c789..0b39adb5c685ce8f54baa9b1a3bde227e7cf3469 100755 (executable)
@@ -38,7 +38,7 @@ EXPECT 'Started' volinfo_field $V0 'Status'
 EXPECT_WITHIN $NFS_EXPORT_TIMEOUT 1 is_nfs_export_available
 
 # before mounting the rmtab should be empty
-EXPECT '0' count_lines /var/lib/glusterd/nfs/rmtab
+EXPECT '0' count_lines $GLUSTERD_WORKDIR/nfs/rmtab
 
 TEST mount_nfs $H0:/$V0 $N0 nolock
 # the output would looks similar to:
@@ -46,19 +46,19 @@ TEST mount_nfs $H0:/$V0 $N0 nolock
 #   hostname-0=172.31.122.104
 #   mountpoint-0=/ufo
 #
-EXPECT '2' count_lines /var/lib/glusterd/nfs/rmtab
+EXPECT '2' count_lines $GLUSTERD_WORKDIR/nfs/rmtab
 
 # duplicate mounts should not be recorded (client could have crashed)
 TEST mount_nfs $H0:/$V0 $N1 nolock
-EXPECT '2' count_lines /var/lib/glusterd/nfs/rmtab
+EXPECT '2' count_lines $GLUSTERD_WORKDIR/nfs/rmtab
 
 # removing a mount should (even if there are two) should remove the entry
 EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N1
-EXPECT '0' count_lines /var/lib/glusterd/nfs/rmtab
+EXPECT '0' count_lines $GLUSTERD_WORKDIR/nfs/rmtab
 
 # unmounting the other mount should work flawlessly
 EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0
-EXPECT '0' count_lines /var/lib/glusterd/nfs/rmtab
+EXPECT '0' count_lines $GLUSTERD_WORKDIR/nfs/rmtab
 
 TEST glusterfs --entry-timeout=0 --attribute-timeout=0 --volfile-server=$H0 --volfile-id=$V0 $M0
 
index d6a45b8270fb32b7bf452147bff758d93cc84318..344c6abaaf1c09f94e7aa6ffba416752b81341c0 100755 (executable)
@@ -8,8 +8,8 @@ TEST glusterd;
 TEST $CLI volume create $V0 $H0:$B0/${V0}1;
 TEST $CLI volume start $V0;
 
-pid_file=$(ls /var/lib/glusterd/vols/$V0/run);
-brick_pid=$(cat /var/lib/glusterd/vols/$V0/run/$pid_file);
+pid_file=$(ls $GLUSTERD_WORKDIR/vols/$V0/run);
+brick_pid=$(cat $GLUSTERD_WORKDIR/vols/$V0/run/$pid_file);
 
 
 kill -SIGKILL $brick_pid;
index 3f03611673d73407da7c47853b90e67008b41430..182035c6132da661c8af1cd856cf14b346a54360 100755 (executable)
@@ -18,7 +18,7 @@ function get_brick_host_uuid()
 
 TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1}
 
-uuid=`grep UUID /var/lib/glusterd/glusterd.info | cut -f2 -d=`
+uuid=`grep UUID $GLUSTERD_WORKDIR/glusterd.info | cut -f2 -d=`
 EXPECT $uuid get_brick_host_uuid $V0
 
 TEST $CLI volume delete $V0;
index 6cc799c25edd2bd6137ec983cfe69492ebdf5056..fc5f63a0c28a5efc674750dce38650cfcd072e26 100644 (file)
@@ -9,9 +9,9 @@ TEST glusterd;
 TEST pidof glusterd;
 TEST $CLI volume info;
 
-touch /var/lib/glusterd/groups/test
-echo "read-ahead=off" > /var/lib/glusterd/groups/test
-echo "open-behind=off" >> /var/lib/glusterd/groups/test
+touch $GLUSTERD_WORKDIR/groups/test
+echo "read-ahead=off" > $GLUSTERD_WORKDIR/groups/test
+echo "open-behind=off" >> $GLUSTERD_WORKDIR/groups/test
 
 TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2};
 TEST $CLI volume set $V0 group test
diff --git a/tests/env.rc.in b/tests/env.rc.in
new file mode 100644 (file)
index 0000000..000a80f
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+
+PATH=@sbindir@:$PATH
+export PATH
+
+LD_LIBRARY_PATH=@libdir@:$LD_LIBRARY_PATH
+export LD_LIBRARY_PATH
+
+GLUSTERD_WORKDIR=@GLUSTERD_WORKDIR@
+export GLUSTERD_WORKDIR
\ No newline at end of file
index 8919d0a663c92da2c865a8f5c6ad05dbf5bdb5e7..72c005882005a934366d63f9ad5b79c0b98c1f97 100644 (file)
@@ -7,7 +7,20 @@ V0=${V0:=patchy};             # volume name to use in tests
 V1=${V1:=patchy1};            # volume name to use in tests
 B0=${B0:=/d/backends};        # top level of brick directories
 CC=cc
-case `uname -s` in
+OSTYPE=$(uname -s)
+
+if [ ! -f ${PWD}/tests/env.rc ]; then
+   echo "Aborting."
+   echo
+   echo "env.rc not found"
+   echo
+   echo "Please correct the problem and try again."
+   echo
+   exit 1
+fi
+. ${PWD}/tests/env.rc
+
+case $OSTYPE in
 Linux)
   H0=${H0:=`hostname --fqdn`}; # hostname
   ;;
@@ -15,6 +28,7 @@ Linux)
   H0=${H0:=`hostname`}; # hostname
   ;;
 esac
+
 DEBUG=${DEBUG:=0}             # turn on debugging?
 
 PROCESS_UP_TIMEOUT=20
@@ -293,8 +307,9 @@ function cleanup()
                ;;
        esac
 
-
-       rm -rf /var/lib/glusterd/* $B0/* /etc/glusterd/*;
+        if [ -n "${GLUSTERD_WORKDIR}" ] ; then
+            rm -rf $GLUSTERD_WORKDIR/* $B0/* /etc/glusterd/*;
+        fi
 
        umount -l $M0 2>/dev/null || true;
        umount -l $M1 2>/dev/null || true;
@@ -454,10 +469,9 @@ alias EXPECT_KEYWORD='_EXPECT_KEYWORD $LINENO'
 alias TEST_IN_LOOP='_TEST_IN_LOOP $LINENO'
 shopt -s expand_aliases
 
-ostype=$(uname -s)
-if [ x"$ostype" = x"Linux" ]; then
+if [ x"$OSTYPE" = x"Linux" ]; then
        alias dd="dd status=none"
-elif [ x"$ostype" = x"NetBSD" ]; then
+elif [ x"$OSTYPE" = x"NetBSD" ]; then
        alias dd="dd msgfmt=quiet"
 fi
 # MacOS doesn't seem to support either option.  Doing nothing at all is
index 4e798dfc026843ceb3c3398d45ad150e70c3dd3f..0f47f7e6741d27b9ab5a703abbe9f4aca5fca92a 100644 (file)
@@ -53,7 +53,7 @@ function get_nfs_pid ()
 
 function read_nfs_pidfile ()
 {
-        echo `cat /var/lib/glusterd/nfs/run/nfs.pid`
+        echo `cat $GLUSTERD_WORKDIR/nfs/run/nfs.pid`
 }
 
 function cleanup_statedump {
@@ -163,7 +163,7 @@ function get_brick_pid {
         local host=$2
         local brick=$3
         local brick_hiphenated=$(echo $brick | tr '/' '-')
-        echo `cat /var/lib/glusterd/vols/$vol/run/${host}${brick_hiphenated}.pid`
+        echo `cat $GLUSTERD_WORKDIR/vols/$vol/run/${host}${brick_hiphenated}.pid`
 }
 
 function kill_brick {
index 8cc4bf13bf170394c39b84803c3c1bb1cc86b7fd..988182acb634801204e27d4cc2564911549ba4dd 100644 (file)
@@ -724,13 +724,13 @@ io_stats_dump_global_to_logfp (xlator_t *this, struct ios_global_stats *stats,
                 ios_log (this, logfp, "\nTIMESTAMP \t\t\t THROUGHPUT(KBPS)"
                          "\tFILE NAME");
                 list_head = &conf->thru_list[IOS_STATS_THRU_READ];
-                ios_dump_throughput_stats(list_head, this, logfp, IOS_STATS_THRU_READ);
+                ios_dump_throughput_stats(list_head, this, logfp, IOS_STATS_TYPE_READ);
 
                 ios_log (this, logfp, "\n======Write Throughput File Stats======");
                 ios_log (this, logfp, "\nTIMESTAMP \t\t\t THROUGHPUT(KBPS)"
                          "\tFILE NAME");
                 list_head = &conf->thru_list[IOS_STATS_THRU_WRITE];
-                ios_dump_throughput_stats (list_head, this, logfp, IOS_STATS_THRU_WRITE);
+                ios_dump_throughput_stats (list_head, this, logfp, IOS_STATS_TYPE_WRITE);
         }
         return 0;
 }
index b7aefc3d2c5ae4c3866878e9ebadc2c639f8cacf..4a87f016089489eb910eb0c075cb096999599ff1 100644 (file)
 #define MASTER_VOL_KEY_SIZE (32)
 #define NMTD_VOL_KEY_SIZE (16)
 
-#if defined(GF_BSD_HOST_OS)
+#if !defined(GF_LINUX_HOST_OS)
 typedef off_t loff_t;
 #endif
 
-#if defined(GF_DARWIN_HOST_OS)
-typedef uint64_t loff_t;
-#endif
-
 struct crypt_key {
        uint32_t len;
        const char *label;
index 28d5a70aab212195e8e2d9d19997d90d4657617f..1ae919bfb38100972e914b5fff99675f782496af 100644 (file)
@@ -6,8 +6,7 @@ libgfchangelog_la_CPPFLAGS = $(GF_CPPFLAGS) -D__USE_FILE_OFFSET64 -fpic \
                                -I$(top_srcdir)/xlators/features/changelog/src \
                                -DDATADIR=\"$(localstatedir)\"
 
-libgfchangelog_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
-                       $(GF_GLUSTERFS_LIBS)
+libgfchangelog_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
 
 libgfchangelog_la_LDFLAGS = $(GF_LDFLAGS) -version-info $(LIBGFCHANGELOG_LT_VERSION)
 
index ba3367b339ab3c1e8f6664f3e7fce33c89850c85..07c6096dce5c29ddeb8f7665fe8c76276c150a3f 100644 (file)
@@ -25,7 +25,7 @@
 #include "changelog-encoders.h"
 #include <pthread.h>
 
-inline void
+static inline void
 __mask_cancellation (xlator_t *this)
 {
         int ret = 0;
@@ -36,7 +36,7 @@ __mask_cancellation (xlator_t *this)
                         "failed to disable thread cancellation");
 }
 
-inline void
+static inline void
 __unmask_cancellation (xlator_t *this)
 {
         int ret = 0;
index d8a1e257c4e04cb734d44e5079128c00da568fd4..913a2a70729d3bfd3cb097d2df1c9b687eaed225 100644 (file)
@@ -41,10 +41,9 @@ AM_LDFLAGS = -L$(xlatordir)
 CLEANFILES =
 
 install-data-hook:
-
-if GF_INSTALL_VAR_LIB_GLUSTERD
-       $(mkdir_p) $(localstatedir)/lib/
-       (stat $(sysconfdir)/glusterd && \
-           mv $(sysconfdir)/glusterd $(localstatedir)/lib/) || true;
-       (ln -sf $(localstatedir)/lib/glusterd $(sysconfdir)/glusterd) || true;
+if GF_INSTALL_GLUSTERD_WORKDIR
+       $(mkdir_p) $(DESTDIR)$(GLUSTERD_WORKDIR)
+       (stat $(DESTDIR)$(sysconfdir)/glusterd && \
+           mv $(DESTDIR)$(sysconfdir)/glusterd $(DESTDIR)$(GLUSTERD_WORKDIR)) || true;
+       (ln -sf $(DESTDIR)$(GLUSTERD_WORKDIR) $(sysconfdir)/glusterd) || true;
 endif
index 2d402b0dd5694a617476cd0508544f021c495638..f36764e48325dd5e9ff92235c8c3653378652260 100644 (file)
@@ -260,6 +260,7 @@ glusterd_hooks_add_op_args (runner_t *runner, glusterd_op_t op,
 
                 case GD_OP_SET_VOLUME:
                         ret = glusterd_hooks_set_volume_args (op_ctx, runner);
+                        glusterd_hooks_add_working_dir (runner, priv);
                         break;
 
                 case GD_OP_GSYNC_CREATE:
index c5fa245dbd848b71d6996e71cdffd4199874965a..b59353566a7386aed5bf6ecb97dfc5b737fc9bf8 100644 (file)
@@ -1199,7 +1199,7 @@ init (xlator_t *this)
                 first_time = 1;
         }
 
-        setenv ("GLUSTERD_WORKING_DIR", workdir, 1);
+        setenv ("GLUSTERD_WORKDIR", workdir, 1);
         gf_log (this->name, GF_LOG_INFO, "Using %s as working directory",
                 workdir);
 
index f7b4f012e03f869d2c57d189ebbc7c75a50de2f8..f1139ad027d0ed9956d329badca9e14a5a9c0b2f 100644 (file)
@@ -464,7 +464,6 @@ enum glusterd_vol_comp_status_ {
         GLUSTERD_VOL_COMP_RJT,
 };
 
-#define GLUSTERD_DEFAULT_WORKDIR "/var/lib/glusterd"
 #define GLUSTERD_DEFAULT_PORT    GF_DEFAULT_BASE_PORT
 #define GLUSTERD_INFO_FILE      "glusterd.info"
 #define GLUSTERD_VOLUME_QUOTA_CONFIG "quota.conf"
index 55d0c51de18d07ce6f80c8b64477f1815b30df36..cace3c247eb585d3cbdf1c55cce2d9e5bc8a7407 100755 (executable)
@@ -338,9 +338,9 @@ check_recursive_mount ()
     fi
 
     # check if the mount point is a brick's parent directory
-    GLUSTERD_WORKDIR="/var/lib/glusterd";
+    GLUSTERD_WORKDIR="@GLUSTERD_WORKDIR@";
 
-    ls -L "$GLUSTERD_WORKDIR"/vols/*/bricks/* > /dev/null 2>&1;
+    ls -L "${GLUSTERD_WORKDIR}"/vols/*/bricks/* > /dev/null 2>&1;
     if [ $? -ne 0 ]; then
         return;
     fi
index 62fbf6535ca63aed0a642b5f2946c32a896ed924..32d93812b50560bce72da3e5f83a99c83e72d185 100644 (file)
@@ -15,7 +15,7 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) \
        -DLIBDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/auth\" \
        -I$(top_srcdir)/libglusterfs/src \
        -I$(nfsrpclibdir) -I$(CONTRIBDIR)/rbtree \
-       -I$(top_srcdir)/rpc/xdr/src/
+       -I$(top_srcdir)/rpc/xdr/src/ -DDATADIR=\"$(localstatedir)\"
 
 AM_CFLAGS = -Wall $(GF_CFLAGS)
 
index 422b7fa6c129da65e5f3621c2d92c111b51c2b45..794b7171efcfadda8ac88b3d1b68fc69ded5a28d 100644 (file)
@@ -43,9 +43,7 @@
 #define OPT_SERVER_RPC_STATD_PIDFILE     "nfs.rpc-statd-pidfile"
 #define OPT_SERVER_RPC_STATD_NOTIFY_PIDFILE "nfs.rpc-statd-notify-pidfile"
 
-/* TODO: DATADIR should be based on configure's $(localstatedir) */
-#define DATADIR                         "/var/lib/glusterd"
-#define NFS_DATADIR                     DATADIR "/nfs"
+#define NFS_DATADIR                     GLUSTERD_DEFAULT_WORKDIR "/nfs"
 
 /* Forward declaration */
 int nfs_add_initer (struct list_head *list, nfs_version_initer_t init);
@@ -1853,7 +1851,7 @@ struct volume_options options[] = {
         },
         { .key = {"nfs.mount-rmtab"},
           .type = GF_OPTION_TYPE_PATH,
-          .default_value = DATADIR "/rmtab",
+          .default_value = NFS_DATADIR "/rmtab",
           .description = "Set the location of the cache file that is used to "
                          "list all the NFS-clients that have connected "
                          "through the MOUNT protocol. If this is on shared "