diff options
| -rw-r--r-- | configure.ac | 312 | ||||
| -rw-r--r-- | extras/LinuxRPM/Makefile.am | 9 | ||||
| -rw-r--r-- | extras/Makefile.am | 4 | ||||
| -rw-r--r-- | extras/init.d/Makefile.am | 15 | ||||
| -rw-r--r-- | extras/systemd/Makefile.am | 11 | ||||
| -rw-r--r-- | extras/systemd/glusterd.service.in | 12 | ||||
| -rw-r--r-- | glusterfs.spec.in | 211 | 
7 files changed, 325 insertions, 249 deletions
diff --git a/configure.ac b/configure.ac index 2a47d17a479..9db3bf9354e 100644 --- a/configure.ac +++ b/configure.ac @@ -27,10 +27,10 @@ fi  AC_CONFIG_HEADERS([config.h])  AC_CONFIG_FILES([Makefile -		libglusterfs/Makefile -		libglusterfs/src/Makefile -		glusterfsd/Makefile -		glusterfsd/src/Makefile +                libglusterfs/Makefile +                libglusterfs/src/Makefile +                glusterfsd/Makefile +                glusterfsd/src/Makefile                  rpc/Makefile                  rpc/rpc-lib/Makefile                  rpc/rpc-lib/src/Makefile @@ -41,87 +41,87 @@ AC_CONFIG_FILES([Makefile                  rpc/rpc-transport/rdma/src/Makefile                  rpc/xdr/Makefile                  rpc/xdr/src/Makefile -		xlators/Makefile -		xlators/mount/Makefile -		xlators/mount/fuse/Makefile -		xlators/mount/fuse/src/Makefile -		xlators/mount/fuse/utils/mount.glusterfs -		xlators/mount/fuse/utils/mount_glusterfs -		xlators/mount/fuse/utils/Makefile -		xlators/storage/Makefile -		xlators/storage/posix/Makefile -		xlators/storage/posix/src/Makefile -		xlators/storage/bd_map/Makefile -		xlators/storage/bd_map/src/Makefile -		xlators/cluster/Makefile -		xlators/cluster/afr/Makefile -		xlators/cluster/afr/src/Makefile -		xlators/cluster/stripe/Makefile -		xlators/cluster/stripe/src/Makefile -		xlators/cluster/dht/Makefile -		xlators/cluster/dht/src/Makefile -		xlators/performance/Makefile -		xlators/performance/write-behind/Makefile -		xlators/performance/write-behind/src/Makefile -		xlators/performance/read-ahead/Makefile -		xlators/performance/read-ahead/src/Makefile -		xlators/performance/io-threads/Makefile -		xlators/performance/io-threads/src/Makefile -		xlators/performance/io-cache/Makefile -		xlators/performance/io-cache/src/Makefile -		xlators/performance/symlink-cache/Makefile -		xlators/performance/symlink-cache/src/Makefile -		xlators/performance/quick-read/Makefile -		xlators/performance/quick-read/src/Makefile -		xlators/performance/open-behind/Makefile -		xlators/performance/open-behind/src/Makefile +                xlators/Makefile +                xlators/mount/Makefile +                xlators/mount/fuse/Makefile +                xlators/mount/fuse/src/Makefile +                xlators/mount/fuse/utils/mount.glusterfs +                xlators/mount/fuse/utils/mount_glusterfs +                xlators/mount/fuse/utils/Makefile +                xlators/storage/Makefile +                xlators/storage/posix/Makefile +                xlators/storage/posix/src/Makefile +                xlators/storage/bd_map/Makefile +                xlators/storage/bd_map/src/Makefile +                xlators/cluster/Makefile +                xlators/cluster/afr/Makefile +                xlators/cluster/afr/src/Makefile +                xlators/cluster/stripe/Makefile +                xlators/cluster/stripe/src/Makefile +                xlators/cluster/dht/Makefile +                xlators/cluster/dht/src/Makefile +                xlators/performance/Makefile +                xlators/performance/write-behind/Makefile +                xlators/performance/write-behind/src/Makefile +                xlators/performance/read-ahead/Makefile +                xlators/performance/read-ahead/src/Makefile +                xlators/performance/io-threads/Makefile +                xlators/performance/io-threads/src/Makefile +                xlators/performance/io-cache/Makefile +                xlators/performance/io-cache/src/Makefile +                xlators/performance/symlink-cache/Makefile +                xlators/performance/symlink-cache/src/Makefile +                xlators/performance/quick-read/Makefile +                xlators/performance/quick-read/src/Makefile +                xlators/performance/open-behind/Makefile +                xlators/performance/open-behind/src/Makefile                  xlators/performance/md-cache/Makefile                  xlators/performance/md-cache/src/Makefile -		xlators/debug/Makefile -		xlators/debug/trace/Makefile -		xlators/debug/trace/src/Makefile -		xlators/debug/error-gen/Makefile -		xlators/debug/error-gen/src/Makefile -		xlators/debug/io-stats/Makefile -		xlators/debug/io-stats/src/Makefile -		xlators/protocol/Makefile -		xlators/protocol/auth/Makefile -		xlators/protocol/auth/addr/Makefile -		xlators/protocol/auth/addr/src/Makefile -		xlators/protocol/auth/login/Makefile -		xlators/protocol/auth/login/src/Makefile -		xlators/protocol/client/Makefile -		xlators/protocol/client/src/Makefile -		xlators/protocol/server/Makefile -		xlators/protocol/server/src/Makefile -		xlators/features/Makefile -		xlators/features/glupy/Makefile -		xlators/features/glupy/src/Makefile -		xlators/features/locks/Makefile -		xlators/features/locks/src/Makefile -		xlators/features/quota/Makefile -		xlators/features/quota/src/Makefile +                xlators/debug/Makefile +                xlators/debug/trace/Makefile +                xlators/debug/trace/src/Makefile +                xlators/debug/error-gen/Makefile +                xlators/debug/error-gen/src/Makefile +                xlators/debug/io-stats/Makefile +                xlators/debug/io-stats/src/Makefile +                xlators/protocol/Makefile +                xlators/protocol/auth/Makefile +                xlators/protocol/auth/addr/Makefile +                xlators/protocol/auth/addr/src/Makefile +                xlators/protocol/auth/login/Makefile +                xlators/protocol/auth/login/src/Makefile +                xlators/protocol/client/Makefile +                xlators/protocol/client/src/Makefile +                xlators/protocol/server/Makefile +                xlators/protocol/server/src/Makefile +                xlators/features/Makefile +                xlators/features/glupy/Makefile +                xlators/features/glupy/src/Makefile +                xlators/features/locks/Makefile +                xlators/features/locks/src/Makefile +                xlators/features/quota/Makefile +                xlators/features/quota/src/Makefile                  xlators/features/marker/Makefile                  xlators/features/marker/src/Makefile                  xlators/features/marker/utils/Makefile                  xlators/features/marker/utils/src/Makefile                  xlators/features/marker/utils/syncdaemon/Makefile -		xlators/features/read-only/Makefile -		xlators/features/read-only/src/Makefile -		xlators/features/mac-compat/Makefile -		xlators/features/mac-compat/src/Makefile -		xlators/features/quiesce/Makefile -		xlators/features/quiesce/src/Makefile +                xlators/features/read-only/Makefile +                xlators/features/read-only/src/Makefile +                xlators/features/mac-compat/Makefile +                xlators/features/mac-compat/src/Makefile +                xlators/features/quiesce/Makefile +                xlators/features/quiesce/src/Makefile                  xlators/features/index/Makefile                  xlators/features/index/src/Makefile -		xlators/features/protect/Makefile -		xlators/features/protect/src/Makefile +                xlators/features/protect/Makefile +                xlators/features/protect/src/Makefile                  xlators/playground/Makefile -		xlators/playground/template/Makefile -		xlators/playground/template/src/Makefile -		xlators/encryption/Makefile -		xlators/encryption/rot-13/Makefile -		xlators/encryption/rot-13/src/Makefile +                xlators/playground/template/Makefile +                xlators/playground/template/src/Makefile +                xlators/encryption/Makefile +                xlators/encryption/rot-13/Makefile +                xlators/encryption/rot-13/src/Makefile                  xlators/system/Makefile                  xlators/system/posix-acl/Makefile                  xlators/system/posix-acl/src/Makefile @@ -133,25 +133,27 @@ AC_CONFIG_FILES([Makefile                  xlators/mgmt/glusterd/src/Makefile                  cli/Makefile                  cli/src/Makefile -		doc/Makefile -		extras/Makefile -		extras/init.d/Makefile -		extras/init.d/glusterd.plist +                doc/Makefile +                extras/Makefile +                extras/init.d/Makefile +                extras/init.d/glusterd.plist                  extras/init.d/glusterd-Debian                  extras/init.d/glusterd-Redhat                  extras/init.d/glusterd-SuSE -		extras/benchmarking/Makefile +                extras/systemd/Makefile +                extras/systemd/glusterd.service +                extras/benchmarking/Makefile                  extras/hook-scripts/Makefile -		extras/ocf/Makefile -		extras/ocf/glusterd -		extras/ocf/volume -		extras/LinuxRPM/Makefile -		contrib/fuse-util/Makefile -		contrib/uuid/uuid_types.h -		glusterfs-api.pc -		api/Makefile -		api/src/Makefile -		glusterfs.spec]) +                extras/ocf/Makefile +                extras/ocf/glusterd +                extras/ocf/volume +                extras/LinuxRPM/Makefile +                contrib/fuse-util/Makefile +                contrib/uuid/uuid_types.h +                glusterfs-api.pc +                api/Makefile +                api/src/Makefile +                glusterfs.spec])  AC_CANONICAL_HOST @@ -171,6 +173,12 @@ AC_ARG_WITH(mountutildir,              [mountutildir='/sbin'])  AC_SUBST(mountutildir) +AC_ARG_WITH(systemddir, +            [  --with-systemddir=DIR systemd service files in DIR @<:@/usr/lib/systemd/system@:>@], +            [systemddir=$withval], +            [systemddir='/usr/lib/systemd/system']) +AC_SUBST(systemddir) +  AC_ARG_WITH(initdir,              [  --with-initdir=DIR init.d scripts in DIR @<:@/etc/init.d@:>@],              [initdir=$withval], @@ -268,8 +276,8 @@ fi  # FUSE section  AC_ARG_ENABLE([fuse-client], -	      AC_HELP_STRING([--disable-fuse-client], -			     [Do not build the fuse client. NOTE: you cannot mount glusterfs without the client])) +              AC_HELP_STRING([--disable-fuse-client], +                             [Do not build the fuse client. NOTE: you cannot mount glusterfs without the client]))  BUILD_FUSE_CLIENT=no  if test "x$enable_fuse_client" != "xno"; then @@ -308,8 +316,8 @@ AC_SUBST(FUSE_CLIENT_SUBDIR)  # FUSERMOUNT section  AC_ARG_ENABLE([fusermount], -	      AC_HELP_STRING([--disable-fusermount], -			     [Use system's fusermount])) +              AC_HELP_STRING([--disable-fusermount], +                             [Use system's fusermount]))  BUILD_FUSERMOUNT="yes"  if test "x$enable_fusermount" = "xno"; then @@ -325,28 +333,28 @@ AC_SUBST(FUSERMOUNT_SUBDIR)  # EPOLL section  AC_ARG_ENABLE([epoll], -	      AC_HELP_STRING([--disable-epoll], -			     [Use poll instead of epoll.])) +              AC_HELP_STRING([--disable-epoll], +                             [Use poll instead of epoll.]))  BUILD_EPOLL=no  if test "x$enable_epoll" != "xno"; then     AC_CHECK_HEADERS([sys/epoll.h],                      [BUILD_EPOLL=yes], -		    [BUILD_EPOLL=no]) +                    [BUILD_EPOLL=no])  fi  # end EPOLL section  # IBVERBS section  AC_ARG_ENABLE([ibverbs], -	      AC_HELP_STRING([--disable-ibverbs], -			     [Do not build the ibverbs transport])) +              AC_HELP_STRING([--disable-ibverbs], +                             [Do not build the ibverbs transport]))  if test "x$enable_ibverbs" != "xno"; then    AC_CHECK_LIB([ibverbs],                 [ibv_get_device_list], -	       [HAVE_LIBIBVERBS="yes"], -	       [HAVE_LIBIBVERBS="no"]) +               [HAVE_LIBIBVERBS="yes"], +               [HAVE_LIBIBVERBS="no"])    AC_CHECK_LIB([rdmacm], [rdma_create_id], [HAVE_RDMACM="yes"], [HAVE_RDMACM="no"])   fi @@ -378,8 +386,8 @@ AC_SUBST(RDMA_SUBDIR)  # SYNCDAEMON section  AC_ARG_ENABLE([georeplication], -	      AC_HELP_STRING([--disable-georeplication], -			     [Do not install georeplication components])) +              AC_HELP_STRING([--disable-georeplication], +                             [Do not install georeplication components]))  BUILD_SYNCDAEMON=no  case $host_os in @@ -391,7 +399,7 @@ case $host_os in         ;;       *)  #disabling geo replication for non-linux platforms -	enable_georeplication=no +        enable_georeplication=no          ;;  esac  SYNCDAEMON_COMPILE=0 @@ -485,9 +493,9 @@ AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec])  dnl FreeBSD, NetBSD  AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec])  case $host_os in -	*netbsd*) -	CFLAGS=-D_INCOMPLETE_XOPEN_C063 -	;; +        *netbsd*) +        CFLAGS=-D_INCOMPLETE_XOPEN_C063 +        ;;  esac  AC_CHECK_FUNC([linkat], [have_linkat=yes])  if test "x${have_linkat}" = "xyes"; then @@ -567,59 +575,59 @@ fi  case $host_os in       linux*) -     dnl	GF_LINUX_HOST_OS=1 +     dnl        GF_LINUX_HOST_OS=1          GF_HOST_OS="GF_LINUX_HOST_OS" -	GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0" -	GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" -	GF_LDADD="${ARGP_STANDALONE_LDADD}" -	GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(bindir)\\\"" -	;; +        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0" +        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" +        GF_LDADD="${ARGP_STANDALONE_LDADD}" +        GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(bindir)\\\"" +        ;;       solaris*)          GF_HOST_OS="GF_SOLARIS_HOST_OS" -	GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -O0 -m64" -	GF_LDFLAGS="" -	GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" -	GF_LDADD="${ARGP_STANDALONE_LDADD}" -	GF_GLUSTERFS_LIBS="-lnsl -lresolv -lsocket" +        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -O0 -m64" +        GF_LDFLAGS="" +        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" +        GF_LDADD="${ARGP_STANDALONE_LDADD}" +        GF_GLUSTERFS_LIBS="-lnsl -lresolv -lsocket"          BUILD_FUSE_CLIENT=no          FUSE_CLIENT_SUBDIR="" -	;; +        ;;       *netbsd*) -	GF_HOST_OS="GF_BSD_HOST_OS" -	GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D_INCOMPLETE_XOPEN_C063" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" -	GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" -	GF_LDADD="${ARGP_STANDALONE_LDADD}" -	if test "x$ac_cv_header_execinfo_h" = "xyes"; then -	   GF_GLUSTERFS_LIBS="-lexecinfo" -	fi -	GF_FUSE_LDADD="-lperfuse" -	BUILD_FUSE_CLIENT=yes -	LEXLIB="" -	;; +        GF_HOST_OS="GF_BSD_HOST_OS" +        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D_INCOMPLETE_XOPEN_C063" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" +        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" +        GF_LDADD="${ARGP_STANDALONE_LDADD}" +        if test "x$ac_cv_header_execinfo_h" = "xyes"; then +           GF_GLUSTERFS_LIBS="-lexecinfo" +        fi +        GF_FUSE_LDADD="-lperfuse" +        BUILD_FUSE_CLIENT=yes +        LEXLIB="" +        ;;       *bsd*)          GF_HOST_OS="GF_BSD_HOST_OS" -	GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" -	GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" -	GF_LDADD="${ARGP_STANDALONE_LDADD}" -	if test "x$ac_cv_header_execinfo_h" = "xyes"; then -	   GF_GLUSTERFS_LIBS="-lexecinfo" -	fi -	BUILD_FUSE_CLIENT=no -	;; +        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" +        GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" +        GF_LDADD="${ARGP_STANDALONE_LDADD}" +        if test "x$ac_cv_header_execinfo_h" = "xyes"; then +           GF_GLUSTERFS_LIBS="-lexecinfo" +        fi +        BUILD_FUSE_CLIENT=no +        ;;       darwin*)          GF_HOST_OS="GF_DARWIN_HOST_OS" -	LIBTOOL=glibtool -	GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D__DARWIN_64_BIT_INO_T -bundle -undefined suppress -flat_namespace -D_XOPEN_SOURCE -O0" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" -	GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" -	GF_GLUSTERFS_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D__DARWIN_64_BIT_INO_T -undefined suppress -flat_namespace -O0" -	GF_LDADD="${ARGP_STANDALONE_LDADD}" -	GF_FUSE_CFLAGS="-I\$(CONTRIBDIR)/macfuse" -	;; +        LIBTOOL=glibtool +        GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D__DARWIN_64_BIT_INO_T -bundle -undefined suppress -flat_namespace -D_XOPEN_SOURCE -O0" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_BASENAME" +        GF_CFLAGS="${GF_CFLAGS} -DTHREAD_UNSAFE_DIRNAME" +        GF_GLUSTERFS_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -D__DARWIN_64_BIT_INO_T -undefined suppress -flat_namespace -O0" +        GF_LDADD="${ARGP_STANDALONE_LDADD}" +        GF_FUSE_CFLAGS="-I\$(CONTRIBDIR)/macfuse" +        ;;  esac  # enable debug section @@ -666,8 +674,8 @@ if echo $PYTHON_VERSION | grep ^2; then  fi  AC_CHECK_HEADERS([python$PYTHON_VERSION/Python.h],[have_Python_h=yes],[])  AC_ARG_ENABLE([glupy], -	      AS_HELP_STRING([--enable-glupy], -			     [build glupy])) +              AS_HELP_STRING([--enable-glupy], +                             [build glupy]))  case x$enable_glupy in     xyes)        if test "x$have_python2" = "xyes" -a "x$have_Python_h" = "xyes"; then diff --git a/extras/LinuxRPM/Makefile.am b/extras/LinuxRPM/Makefile.am index 09d2f9e4201..1dafa982bd6 100644 --- a/extras/LinuxRPM/Makefile.am +++ b/extras/LinuxRPM/Makefile.am @@ -1,6 +1,5 @@ -GFS_TAR = ../../glusterfs-*git.tar.gz -GFS_SPEC = ../../glusterfs.spec +GFS_TAR = ../../glusterfs-$(VERSION).tar.gz  .PHONY: all @@ -12,9 +11,9 @@ all:  glusterrpms: prep srcrpm rpms  	-rm -rf rpmbuild -prep:: -	if [ ! -e $(GFS_TAR) -a ! -e $(GFS_SPEC) ]; then \ -		$(MAKE) -c ../.. dist; \ +prep: +	if [ ! -e $(GFS_TAR) ]; then \ +		$(MAKE) -C ../.. dist; \  	fi  	-mkdir -p rpmbuild/SPECS  	-mkdir -p rpmbuild/RPMS diff --git a/extras/Makefile.am b/extras/Makefile.am index 7b55ef2ee7e..63ad7101655 100644 --- a/extras/Makefile.am +++ b/extras/Makefile.am @@ -2,7 +2,7 @@  EditorModedir = $(docdir)  EditorMode_DATA = glusterfs-mode.el glusterfs.vim -SUBDIRS = init.d benchmarking hook-scripts $(OCF_SUBDIR) LinuxRPM +SUBDIRS = init.d systemd benchmarking hook-scripts $(OCF_SUBDIR) LinuxRPM  confdir = $(sysconfdir)/glusterfs  conf_DATA = glusterfs-logrotate @@ -10,5 +10,5 @@ conf_DATA = glusterfs-logrotate  EXTRA_DIST = specgen.scm MacOSX/Portfile glusterfs-mode.el glusterfs.vim  \  	migrate-unify-to-distribute.sh backend-xattr-sanitize.sh          \  	backend-cleanup.sh disk_usage_sync.sh quota-remove-xattr.sh       \ -	quota-metadata-cleanup.sh glusterfs-logrotate clear_xattrs.sh	\ +	quota-metadata-cleanup.sh glusterfs-logrotate clear_xattrs.sh     \  	group-virt.example glusterd-sysconfig diff --git a/extras/init.d/Makefile.am b/extras/init.d/Makefile.am index 7c26a0e8e2b..38898fddd2e 100644 --- a/extras/init.d/Makefile.am +++ b/extras/init.d/Makefile.am @@ -3,17 +3,20 @@ EXTRA_DIST = glusterd-Debian glusterd-Redhat glusterd-SuSE glusterd.plist rhel5-  CLEANFILES =  -initdir = @initdir@ -launchddir = @launchddir@ +INIT_DIR = @initdir@ +SYSTEMD_DIR = @systemddir@ +LAUNCHD_DIR = @launchddir@  $(GF_DISTRIBUTION):  -	$(mkdir_p) $(DESTDIR)$(initdir)	 -	$(INSTALL_PROGRAM) glusterd-$(GF_DISTRIBUTION) $(DESTDIR)$(initdir)/glusterd +	@if [ ! -d $(SYSTEMD_DIR) ]; then \ +		$(mkdir_p) $(DESTDIR)$(INIT_DIR); \ +		$(INSTALL_PROGRAM) glusterd-$(GF_DISTRIBUTION) $(DESTDIR)$(INIT_DIR)/glusterd; \ +	fi  install-exec-local: $(GF_DISTRIBUTION)  install-data-local:   if GF_DARWIN_HOST_OS -	$(mkdir_p) $(DESTDIR)$(launchddir) -	$(INSTALL_PROGRAM) glusterd.plist $(DESTDIR)$(launchddir)/com.gluster.glusterd.plist +	$(mkdir_p) $(DESTDIR)$(LAUNCHD_DIR) +	$(INSTALL_PROGRAM) glusterd.plist $(DESTDIR)$(LAUNCHD_DIR)/com.gluster.glusterd.plist  endif diff --git a/extras/systemd/Makefile.am b/extras/systemd/Makefile.am new file mode 100644 index 00000000000..3fc656b8262 --- /dev/null +++ b/extras/systemd/Makefile.am @@ -0,0 +1,11 @@ + +CLEANFILES = + +SYSTEMD_DIR = @systemddir@ + +install-exec-local: +	@if [ -d $(SYSTEMD_DIR) ]; then \ +		$(mkdir_p) $(DESTDIR)$(SYSTEMD_DIR); \ +		$(INSTALL_PROGRAM) glusterd.service $(DESTDIR)$(SYSTEMD_DIR)/; \ +	fi + diff --git a/extras/systemd/glusterd.service.in b/extras/systemd/glusterd.service.in new file mode 100644 index 00000000000..0b24aea3bec --- /dev/null +++ b/extras/systemd/glusterd.service.in @@ -0,0 +1,12 @@ +[Unit] +Description=GlusterFS an clustered file-system server +After=network.target rpcbind.service + +[Service] +Type=forking +PIDFile=/run/glusterd.pid +LimitNOFILE=65536 +ExecStart=/usr/sbin/glusterd -p /run/glusterd.pid + +[Install] +WantedBy=multi-user.target diff --git a/glusterfs.spec.in b/glusterfs.spec.in index ffd8071b53d..a33951dbd95 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -1,6 +1,11 @@ +%global _hardened_build 1 +  %global _for_fedora_koji_builds 0 +# uncomment and add '%' to use the prereltag for pre-releases +# global prereltag beta2 +  # if you wish to compile an rpm without rdma support, compile like this...  # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma  %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -31,45 +36,40 @@  %endif  Summary:          Cluster File System -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  Name:             glusterfs -Version:          3.3.1 -Release:          10%{?dist} +Version:          3.4.0 +Release:          0.5%{?prereltag:.%{prereltag}}%{?dist} +Vendor:           Fedora Project  %else  Name:             @PACKAGE_NAME@  Version:          @PACKAGE_VERSION@  Release:          1%{?dist} +Vendor:           glusterfs.org  %endif -License:          GPLv3+ and (GPLv2 or LGPLv3+) +License:          GPLv2 or LGPLv3+  Group:            System Environment/Base -%if 0%{_for_fedora_koji_builds} -Vendor:           Red Hat -%endif -URL:              http://www.gluster.org//docs/index.php/GlusterFS -%if 0%{_for_fedora_koji_builds} -Source0:          http://bits.gluster.com/pub/gluster/glusterfs/src/glusterfs-%{version}.tar.gz -%else -Source0:          @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz -%endif +URL:              http://www.gluster.org/docs/index.php/GlusterFS +%if ( 0%{_for_fedora_koji_builds} ) +Source0:          http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{PACKAGE_VERSION}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz  Source1:          glusterd.sysconfig  Source2:          glusterfsd.sysconfig  Source3:          umount.glusterfs  Source4:          glusterfs-fuse.logrotate  Source5:          glusterd.logrotate  Source6:          glusterfsd.logrotate +Source7:          rhel5-load-fuse-modules +Source11:         glusterfsd.service +Source13:         glusterfsd.init  Patch0:           %{name}-3.2.5.configure.ac.patch  Patch1:           %{name}-3.3.0.libglusterfs.Makefile.patch +%else +Source0:          @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz +%endif  BuildRoot:        %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Source10:         glusterd.service -Source11:         glusterfsd.service -Source12:         glusterd.init -Source13:         glusterfsd.init - -%if 0%{?_with_systemd:1} -%global glusterd_service %{S:%{SOURCE10}} -%global glusterfsd_service %{S:%{SOURCE11}} +%if ( 0%{?_with_systemd:1} )  BuildRequires:    systemd-units  Requires(post):   systemd-units  Requires(preun):  systemd-units @@ -78,15 +78,10 @@ Requires(postun): systemd-units  %define _init_disable() /bin/systemctl disable %1.service ;  %define _init_restart() /bin/systemctl try-restart %1.service ;  %define _init_stop()    /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ;  # can't seem to make a generic macro that works  %define _init_glusterd   %{_unitdir}/glusterd.service  %define _init_glusterfsd %{_unitdir}/glusterfsd.service  %else -%if 0%{_for_fedora_koji_builds} -%global glusterd_service %{S:%{SOURCE12}} -%global glusterfsd_service %{S:%{SOURCE13}} -%endif  Requires(post):   /sbin/chkconfig  Requires(preun):  /sbin/service  Requires(preun):  /sbin/chkconfig @@ -95,7 +90,6 @@ Requires(postun): /sbin/service  %define _init_disable() /sbin/chkconfig --del %1 ;  %define _init_restart() /sbin/service %1 condrestart &>/dev/null ;  %define _init_stop()    /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ;  # can't seem to make a generic macro that works  %define _init_glusterd   %{_sysconfdir}/init.d/glusterd  %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -106,9 +100,12 @@ BuildRequires:    gcc make automake libtool  BuildRequires:    ncurses-devel readline-devel  BuildRequires:    libxml2-devel openssl-devel  BuildRequires:    libaio-devel -#BuildRequires:    systemtap-sdt-devel lvm2-devel # glusterfs-3.4.x +BuildRequires:    systemtap-sdt-devel  BuildRequires:    python-devel  BuildRequires:    python-ctypes +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +BuildRequires:    lvm2-devel +%endif  Obsoletes:        hekafs <= 0.7  Obsoletes:        %{name}-libs <= 2.0.0 @@ -120,11 +117,9 @@ Provides:         %{name}-core = %{version}-%{release}  # We do not want to generate useless provides and requires for xlator .so files  # Filter all generated: -# - .so requires that do not start with 'lib' -# - all provides from xlators and private libraries not in the ldconfig path  #  # TODO: RHEL5 does not have a convenient solution -%if 0%{?rhel} == 6 +%if ( 0%{?rhel} == 6 )      # filter_setup exists in RHEL6 only      %filter_provides_in %{_libdir}/glusterfs/%{version}/      %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' @@ -148,7 +143,7 @@ This package includes the glusterfs binary, the glusterfsd daemon and the  gluster command line, libglusterfs and glusterfs translator modules common to  both GlusterFS server and client framework. -%if 0%{!?_without_rdma:1} +%if ( 0%{!?_without_rdma:1} )  %package rdma  Summary:          GlusterFS rdma support for ib-verbs  Group:            Applications/File @@ -168,7 +163,7 @@ is in user space and easily manageable.  This package provides support to ib-verbs library.  %endif -%if 0%{!?_without_georeplication:1} +%if ( 0%{!?_without_georeplication:1} )  %package geo-replication  Summary:          GlusterFS Geo-replication  Group:            Applications/File @@ -214,7 +209,11 @@ License:          GPLv3+  Group:            System Environment/Daemons  Requires:         %{name} = %{version}-%{release}  Requires:         %{name}-fuse = %{version}-%{release} +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )  Requires:         rpcbind +%else +Requires:         portmap +%endif  %description server  GlusterFS is a clustered file-system capable of scaling to several @@ -227,15 +226,33 @@ is in user space and easily manageable.  This package provides the glusterfs server daemon. -%if 0%{!?_without_ocf:1} +%package api +Summary:          Clustered file-system api library +License:          GPLv2 or LGPLv3+ +Group:            System Environment/Daemons +Requires:         %{name} = %{version}-%{release} + +%description api +GlusterFS is a clustered file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility.  It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the glusterfs libgfapi library + +%if ( 0%{!?_without_ocf:1} )  %package resource-agents  Summary:          OCF Resource Agents for GlusterFS  License:          GPLv3+ -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) +# EL5 does not support noarch sub-packages  BuildArch:        noarch  %endif  # this Group handling comes from the Fedora resource-agents package -%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} +%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} )  Group:            System Environment/Base  %else  Group:            Productivity/Clustering/HA @@ -276,8 +293,30 @@ is in user space and easily manageable.  This package provides the development libraries. + +%package api-devel +Summary:          Development Libraries +License:          GPLv2 or LGPLv3+ +Group:            Development/Libraries +Requires:         %{name} = %{version}-%{release} + +%description api-devel +GlusterFS is a clustered file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility.  It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the api include files. +  %prep -%setup -q -n %{name}-%{version} +%setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%endif  %build  ./autogen.sh @@ -289,7 +328,6 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool  %{__make} %{?_smp_mflags} -  %install  %{__rm} -rf %{buildroot}  %{__make} install DESTDIR=%{buildroot} @@ -308,7 +346,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool  %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server  %{__install} -p -m 0644 xlators/protocol/server/src/*.h \      %{buildroot}%{_includedir}/glusterfs/server/ -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  %{__install} -D -p -m 0644 %{SOURCE1} \      %{buildroot}%{_sysconfdir}/sysconfig/glusterd  %{__install} -D -p -m 0644 %{SOURCE2} \ @@ -317,15 +355,13 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool  %{__install} -D -p -m 0644 extras/glusterd-sysconfig \      %{buildroot}%{_sysconfdir}/sysconfig/glusterd  %endif -# We'll use our init.d -%if 0%{?_with_systemd:1} -%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/glusterd -%endif -%if 0%{?rhel} && 0%{?rhel} <= 5 -%{__install} -D -p -m 0755 extras/init.d/rhel5-load-fuse.modules \ +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{__install} -D -p -m 0755 %{SOURCE7} \      %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules  %endif +%endif  %{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd  %{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs @@ -336,8 +372,9 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool  find %{buildroot}%{_libdir} -name '*.a' -delete  find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, we include them ourselves as %%doc +# Remove installed docs, they're included by %%doc  %{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +%{__bzip2} ChangeLog  # Remove benchmarking and other unpackaged files  %{__rm} -rf %{buildroot}/benchmarking @@ -351,13 +388,7 @@ find %{buildroot}%{_libdir} -name '*.la' -delete  sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \      %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol -# Install systemd .service files. `make install` will install the init files -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) -%_init_install %{glusterd_service} glusterd -%_init_install %{glusterfsd_service} glusterfsd -%endif - -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  # Install wrapper umount script  %{__install} -D -p -m 0755 %{SOURCE3} \      %{buildroot}/sbin/umount.glusterfs @@ -376,7 +407,7 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha      %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs  %endif -%if 0%{!?_without_georeplication:1} +%if ( 0%{!?_without_georeplication:1} )  # geo-rep ghosts  %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication  touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf @@ -416,8 +447,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/options  touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol  touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -# Remove tests -%{__rm} -rf %{buildroot}/%{python_sitelib}/test  %clean  %{__rm} -rf %{buildroot} @@ -429,9 +458,10 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid  %files  %defattr(-,root,root,-) -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%doc ChangeLog.bz2 COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS  %config(noreplace) %{_sysconfdir}/logrotate.d/*  %config(noreplace) %{_sysconfdir}/sysconfig/* +%exclude %{_libdir}/libgfapi.*  %{_libdir}/glusterfs  %{_libdir}/*.so.*  %{_sbindir}/glusterfs* @@ -440,24 +470,24 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid  %dir %{_localstatedir}/log/glusterfs  %dir %{_localstatedir}/run/gluster  %dir %{_sharedstatedir}/glusterd -%if 0%{!?_without_rdma:1} -%exclude %{_libdir}/glusterfs/%{version}/rpc-transport/rdma* +%if ( 0%{!?_without_rdma:1} ) +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*  %endif -%exclude %{_libdir}/glusterfs/%{version}/xlator/mount/fuse* -%exclude %{_libdir}/glusterfs/%{version}/xlator/storage* -%exclude %{_libdir}/glusterfs/%{version}/xlator/features/posix* -%exclude %{_libdir}/glusterfs/%{version}/xlator/protocol/server* -%exclude %{_libdir}/glusterfs/%{version}/xlator/mgmt* -%exclude %{_libdir}/glusterfs/%{version}/xlator/nfs* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%if 0%{!?_without_rdma:1} +%if ( 0%{!?_without_rdma:1} )  %files rdma  %defattr(-,root,root,-) -%{_libdir}/glusterfs/%{version}/rpc-transport/rdma* +%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*  %endif -%if 0%{!?_without_georeplication:1} +%if ( 0%{!?_without_georeplication:1} )  %post geo-replication  #restart glusterd.  if [ $1 -ge 1 ]; then @@ -474,47 +504,49 @@ fi  %files fuse  %defattr(-,root,root,-) -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse  %endif -%{_libdir}/glusterfs/%{version}/xlator/mount/fuse* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse*  /sbin/mount.glusterfs -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  /sbin/umount.glusterfs  %endif -%if 0%{!?_without_fusermount:1} +%if ( 0%{!?_without_fusermount:1} )  %{_bindir}/fusermount-glusterfs  %endif -%if 0%{?rhel} && 0%{?rhel} <= 5 +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 )  %{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules  %endif +%endif  %files server  %defattr(-,root,root,-)  %doc extras/clear_xattrs.sh -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd  %endif  %config(noreplace) %{_sysconfdir}/sysconfig/glusterd  %config(noreplace) %{_sysconfdir}/glusterfs  # Legacy configs -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} )  %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd  %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd  %endif  # init files  %_init_glusterd -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{_for_fedora_koji_builds} && 0%{?_with_systemd:1} )  %_init_glusterfsd  %endif  # binaries  %{_sbindir}/gluster  %{_sbindir}/glusterd -%{_libdir}/glusterfs/%{version}/xlator/storage* -%{_libdir}/glusterfs/%{version}/xlator/features/posix* -%{_libdir}/glusterfs/%{version}/xlator/protocol/server* -%{_libdir}/glusterfs/%{version}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}/xlator/nfs* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs*  %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/glusterd.info  %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options  # This is really ugly, but I have no idea how to mark these directories in an @@ -552,7 +584,11 @@ fi  %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run  %ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if 0%{!?_without_ocf:1} +%files api +%exclude %{_libdir}/*.so +%{_libdir}/libgfapi.* + +%if ( 0%{!?_without_ocf:1} )  %files resource-agents  %defattr(-,root,root)  # /usr/lib is the standard for OCF, also on x86_64 @@ -562,10 +598,15 @@ fi  %files devel  %defattr(-,root,root,-)  %{_includedir}/glusterfs -%{_libdir}/pkgconfig/glusterfs-api.pc  %exclude %{_includedir}/glusterfs/y.tab.h +%exclude %{_includedir}/glusterfs/api +%exclude %{_libdir}/libgfapi.so  %{_libdir}/*.so +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/libgfapi.so +%{_includedir}/glusterfs/api/*  %post server  # Legacy server @@ -630,8 +671,10 @@ if [ $1 -ge 1 ]; then      %_init_restart glusterd  fi -  %changelog +* Fri Jun 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec, remove G4S/UFO and Swift +  * Mon Mar 4 2013 Niels de Vos <ndevos@redhat.com>  - Package /var/run/gluster so that statedumps can be created  | 
