Update to 3.1.1

This commit is contained in:
Jonathan Steffan 2011-01-01 18:00:55 -07:00
parent 990c091ff4
commit 20fea3463c
7 changed files with 321 additions and 138 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
glusterfs-2.0.9.tar.gz glusterfs-2.0.9.tar.gz
glusterfs-3.0.5.tar.gz glusterfs-3.0.5.tar.gz
/glusterfs-3.0.7.tar.gz /glusterfs-3.0.7.tar.gz
/glusterfs-3.1.1.tar.gz

106
glusterd.init Normal file
View File

@ -0,0 +1,106 @@
#!/bin/sh
#
# glusterd Startup script for the glusterfs server
#
# chkconfig: - 20 80
# description: Clustered file-system server
### BEGIN INIT INFO
# Provides: glusterd
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: glusterfs server
# Description: Clustered file-system server
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/sbin/glusterd"
prog="glusterd"
# Set defaults, then source config for eventual overrides
GLUSTERFSD_NOFILE="65536"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
[ -x $exec ] || exit 5
[ -f $GLUSTERFSD_CONFIG ] || exit 6
ulimit -n $GLUSTERFSD_NOFILE
echo -n $"Starting $prog: "
daemon $exec${GLUSTERFSD_CONFIG+" -f $GLUSTERFSD_CONFIG"}${GLUSTERFSD_LOGFILE+" -l $GLUSTERFSD_LOGFILE"}${GLUSTERFSD_LOGLEVEL+" -L $GLUSTERFSD_LOGLEVEL"} -p /var/run/glusterd.pid
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
restart
}
force_reload() {
restart
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status &>/dev/null
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?

6
glusterd.logrotate Normal file
View File

@ -0,0 +1,6 @@
/var/log/glusterd/glusterd.log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/glusterd.pid 2>/dev/null` 2>/dev/null || true
endscript
}

8
glusterd.sysconfig Normal file
View File

@ -0,0 +1,8 @@
# Change the glusterd service defaults here.
# See "glusterd --help" outpout for defaults and possible values.
#GLUSTERFSD_CONFIG="/etc/gluster/glusterd.vol"
#GLUSTERFSD_LOGFILE="/var/log/gluster/gluster.log"
#GLUSTERFSD_LOGLEVEL="NORMAL"
#GLUSTERFSD_NOFILE="65536"

View File

@ -1,6 +1,6 @@
/var/log/glusterfs/glusterfs.log { /var/log/glusterfs/glusterfs.log {
missingok missingok
postrotate postrotate
/usr/bin/killall -HUP glusterfs 2>/dev/null || true /usr/bin/killall -HUP gluster 2>/dev/null || true
endscript endscript
} }

View File

@ -1,94 +1,100 @@
#define pre rc8 %global major_minor 3.1
## NOTE: Lots of files in various subdirectories have the same name (such as
## "LICENSE") so this short macro allows us to distinguish them by using their
## directory names (from the source tree) as prefixes for the files.
## Usage: add_to_doc_files subdirname files
%define add_to_doc_files() \
%{__mkdir_p} %{buildroot}%{_docdir}/%{name}-%{version}/%1 ||: ; \
%{__cp} -p %2 %{buildroot}%{_docdir}/%{name}-%{version}/%1
# Possible rpmbuild options
%{?_without_ibverbs:%define _without_ibverbs --disable-ibverbs}
%{?_without_client:%define _without_client --disable-fuse-client}
%{?_without_python:%define _without_python --disable-python}
Summary: GlusterFS - Cluster File System
Name: glusterfs Name: glusterfs
Version: 3.0.7 Version: %{major_minor}.1
Release: 1%{?pre:.%{pre}}%{?dist} Release: 2%{?dist}
License: GPLv3+ Summary: Clustered file-system
Group: System Environment/Base Group: System Environment/Base
License: AGPLv3
URL: http://www.gluster.org/ URL: http://www.gluster.org/
Source0: http://ftp.gluster.com/pub/gluster/glusterfs/3.0/%{version}/glusterfs-%{version}%{?pre}.tar.gz Source0: http://download.gluster.com/pub/gluster/glusterfs/%{major_minor}/%{version}/glusterfs-%{version}.tar.gz
Source1: glusterfsd.init Source1: glusterd.init
Source2: glusterfsd.sysconfig Source2: glusterd.sysconfig
Source3: umount.glusterfs Source3: umount.glusterfs
Source4: glusterfs.logrotate Source4: glusterfs-fuse.logrotate
Source5: glusterfsd.logrotate Source5: glusterd.logrotate
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Legacy server
Source11: glusterfsd.init
Source12: glusterfsd.sysconfig
Source15: glusterfsd.logrotate
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc
BuildRequires: make
BuildRequires: ncurses-devel, readline-devel
Requires(post): /sbin/chkconfig Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service, /sbin/chkconfig Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service Requires(postun): /sbin/service
%{!?_without_ibverbs:BuildRequires: libibverbs-devel}
%{!?_without_client:BuildRequires: fuse-devel} Obsoletes: %{name}-libs <= 2.0.0
%{!?_without_python:BuildRequires: python-devel >= 2.4} Obsoletes: %{name}-common < 3.1.0
BuildRequires: flex, bison, byacc Provides: %{name}-libs = %{version}-%{release}
Provides: %{name}-common = %{version}-%{release}
%description %description
GlusterFS is a clustered file-system capable of scaling to several GlusterFS is a clustered file-system capable of scaling to several
peta-bytes. It aggregates various storage bricks over Infiniband RDMA petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable. is in user space and easily manageable.
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.
%package common %package rdma
Summary: GlusterFS common files for both the client and the server Summary: Support for ib-verbs
Group: System Environment/Libraries
Obsoletes: glusterfs-libs < 2.0.0
Provides: glusterfs-libs >= %{version}-%{release}
%description common
GlusterFS is a clustered file-system capable of scaling to several
peta-bytes. 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 userspace and easily manageable.
This package includes the glusterfs binary, libglusterfs and glusterfs
translator modules common to both GlusterFS server and client framework.
%package client
Summary: GlusterFS Client
Group: Applications/File Group: Applications/File
Requires: fuse BuildRequires: libibverbs-devel
Requires: %{name}-common = %{version}-%{release}
%description client Requires: %{name} = %{version}-%{release}
%description rdma
GlusterFS is a clustered file-system capable of scaling to several GlusterFS is a clustered file-system capable of scaling to several
peta-bytes. It aggregates various storage bricks over Infiniband RDMA petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable. is in user space and easily manageable.
This package provides the FUSE based GlusterFS client. This package provides support to ib-verbs library.
%package fuse
Summary: Fuse client
Group: Applications/File
BuildRequires: fuse-devel
Requires: %{name} = %{version}-%{release}
Obsoletes: %{name}-client < 3.1.0
Provides: %{name}-client = %{version}-%{release}
%description fuse
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 support to FUSE based clients.
%package server %package server
Summary: GlusterFS Server Summary: Clustered file-system server
Group: System Environment/Daemons Group: System Environment/Daemons
Requires: %{name}-common = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description server %description server
GlusterFS is a clustered file-system capable of scaling to several GlusterFS is a clustered file-system capable of scaling to several
peta-bytes. It aggregates various storage bricks over Infiniband RDMA petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept terms of features and extensibility. It borrows a powerful concept
@ -97,14 +103,30 @@ is in userspace and easily manageable.
This package provides the glusterfs server daemon. This package provides the glusterfs server daemon.
%package vim
Summary: Vim syntax file
Group: Applications/Text
Requires: vim-common
%description vim
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.
Vim syntax file for GlusterFS.
%package devel %package devel
Summary: GlusterFS Development Libraries Summary: Development Libraries
Group: Development/Libraries Group: Development/Libraries
Requires: %{name}-common = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description devel %description devel
GlusterFS is a clustered file-system capable of scaling to several GlusterFS is a clustered file-system capable of scaling to several
peta-bytes. It aggregates various storage bricks over Infiniband RDMA petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept terms of features and extensibility. It borrows a powerful concept
@ -113,37 +135,36 @@ is in userspace and easily manageable.
This package provides the development libraries. This package provides the development libraries.
%prep %prep
%setup -q -n %{name}-%{version}%{?pre} %setup -q
# Remove file, it gets re-generated by bison (was causing koji build failures)
rm -f libglusterfs/src/y.tab.c
# Don't get executable sources in the debuginfo package (as of 2.0.0rc7)
chmod -x libglusterfsclient/src/*.{c,h}
%build %build
# Temp disable stack-protector until upstream fixes code %configure
CFLAGS=`echo "%optflags"|sed 's/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=1/'`
%configure %{?_without_ibverbs} %{?_without_client} %{?_without_python}
# Remove rpath # Remove rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
# Parallel builds not supported
%{__make} %{?_smp_mflags} %{__make}
%install %install
%{__rm} -rf %{buildroot} examples
%{__make} install DESTDIR=%{buildroot} %{__make} install DESTDIR=%{buildroot}
%{__mkdir_p} %{buildroot}/var/log/glusterfs
# We'll use our init.d
%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/glusterd
# Install include directory
%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd
%{__install} -p -m 0644 libglusterfs/src/*.h \ %{__install} -p -m 0644 libglusterfs/src/*.h \
%{buildroot}%{_includedir}/glusterfs/ %{buildroot}%{_includedir}/glusterfs/
# Remove unwanted files from all of the shared libraries # Remove unwanted files from all the shared libraries
find %{buildroot}%{_libdir}/glusterfs -name '*.a' -o -name '*.la' | xargs rm -f find %{buildroot}%{_libdir} -name '*.a' -delete
find %{buildroot}%{_libdir} -name '*.la' -delete
# Remove installed docs, we include them ourselves as %%doc # Remove installed docs, we include them ourselves as %%doc
%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ %{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/
@ -153,97 +174,139 @@ for file in %{buildroot}%{_sysconfdir}/glusterfs/*.sample; do
%{__mv} ${file} `dirname ${file}`/`basename ${file} .sample` %{__mv} ${file} `dirname ${file}`/`basename ${file} .sample`
done done
# Create working directory
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd
# Update configuration file to /var/lib working directory
sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \
%{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol
# Clean up the examples we want to include as %%doc # Clean up the examples we want to include as %%doc
%{__cp} -a doc/examples examples %{__cp} -a doc/examples examples
%{__rm} -f examples/Makefile* %{__rm} -f examples/Makefile*
# Install init script and sysconfig file # Install init script and sysconfig file
%{__install} -D -p -m 0755 %{SOURCE1} \ %{__install} -D -p -m 0755 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/init.d/glusterfsd %{buildroot}%{_initddir}/glusterd
%{__install} -D -p -m 0644 %{SOURCE2} \ %{__install} -D -p -m 0644 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
# Legacy init script and sysconfig file
%{__install} -D -p -m 0755 %{SOURCE11} \
%{buildroot}%{_initddir}/glusterfsd
%{__install} -D -p -m 0644 %{SOURCE12} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
%if 0%{!?_without_client:1}
# Install wrapper umount script # Install wrapper umount script
%{__install} -D -p -m 0755 %{SOURCE3} \ %{__install} -D -p -m 0755 %{SOURCE3} \
%{buildroot}/sbin/umount.glusterfs %{buildroot}/sbin/umount.glusterfs
# Client logrotate entry # Client logrotate entry
%{__install} -D -p -m 0644 %{SOURCE4} \ %{__install} -D -p -m 0644 %{SOURCE4} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse
%endif
# Server logrotate entry # Server logrotate entry
%{__install} -D -p -m 0644 %{SOURCE5} \ %{__install} -D -p -m 0644 %{SOURCE5} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterd
# Legacy server logrotate entry
%{__install} -D -p -m 0644 %{SOURCE15} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd
# Install extra documentation # Install vim syntax plugin
%add_to_doc_files benchmarking extras/benchmarking/{*.c,README,*.sh} %{__install} -D -p -m 644 extras/glusterfs.vim \
%{buildroot}%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
%files
%defattr(-,root,root,-)
%doc ChangeLog COPYING INSTALL README THANKS
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
%{_datadir}/glusterfs
%{_bindir}/glusterfs-volgen
%{_libdir}/glusterfs
%{_libdir}/*.so.*
%{_sbindir}/glusterfs*
%{_bindir}/glusterfs-defrag
%{_sbindir}/gluster
%{_sbindir}/glusterd
%{_mandir}/man8/*glusterfs.8*
%{_mandir}/man8/*gluster.8*
%{_mandir}/man8/*glusterd.8*
%{_mandir}/man8/*glusterfs-volgen.8*
%dir %{_localstatedir}/log/glusterfs
%exclude %{_libdir}/glusterfs/%{version}/rpc-transport/rdma*
%exclude %{_libdir}/glusterfs/%{version}/xlator/mount/fuse*
%clean %files rdma
%{__rm} -rf %{buildroot} %defattr(-,root,root,-)
%{_libdir}/glusterfs/%{version}/rpc-transport/rdma*
%files fuse
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse
%{_libdir}/glusterfs/%{version}/xlator/mount/fuse*
%{_mandir}/man8/mount.glusterfs.8*
/sbin/mount.glusterfs
/sbin/umount.glusterfs
%post common -p /sbin/ldconfig %files server
%doc examples/ doc/glusterfs*.vol.sample
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
%config(noreplace) %{_sysconfdir}/glusterfs
# Legacy configs
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
%{_sharedstatedir}/glusterd
%{_initddir}/glusterd
# Legacy init
%{_initddir}/glusterfsd
%postun common -p /sbin/ldconfig %files vim
%defattr(-,root,root,-)
%doc COPYING
%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
%files devel
%{_includedir}/glusterfs
%exclude %{_includedir}/glusterfs/y.tab.h
%{_libdir}/*.so
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post server %post server
/sbin/chkconfig --add glusterd
# Legacy server
/sbin/chkconfig --add glusterfsd /sbin/chkconfig --add glusterfsd
%preun server %preun server
if [ $1 -eq 0 ]; then
/sbin/service glusterd stop &>/dev/null || :
/sbin/chkconfig --del glusterd
fi
if [ $1 -ge 1 ]; then
/sbin/service glusterd condrestart &>/dev/null || :
fi
# Legacy server
if [ $1 -eq 0 ]; then if [ $1 -eq 0 ]; then
/sbin/service glusterfsd stop &>/dev/null || : /sbin/service glusterfsd stop &>/dev/null || :
/sbin/chkconfig --del glusterfsd /sbin/chkconfig --del glusterfsd
fi fi
%postun server
if [ $1 -ge 1 ]; then if [ $1 -ge 1 ]; then
/sbin/service glusterfsd condrestart &>/dev/null || : /sbin/service glusterfsd condrestart &>/dev/null || :
fi fi
%files common
%doc AUTHORS ChangeLog COPYING NEWS README extras/{glusterfs-mode.el,glusterfs.vim}
%{_docdir}/%{name}-%{version}/benchmarking
%{_libdir}/glusterfs/
%{_libdir}/*.so.*
%{_sbindir}/glusterfs
%{_sbindir}/glusterfsd
%{_mandir}/man8/glusterfs.8*
%dir %{_sysconfdir}/glusterfs/
%dir /var/log/glusterfs/
%if 0%{!?_without_client:1}
%files client
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs
/sbin/mount.glusterfs
/sbin/umount.glusterfs
%{_mandir}/man8/mount.glusterfs.8*
%endif
%files server
%doc examples/ doc/glusterfs*.vol.sample
%config(noreplace) %{_sysconfdir}/glusterfs/*.vol
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
%{_sysconfdir}/init.d/glusterfsd
%files devel
%{_includedir}/glusterfs/
%{_includedir}/libglusterfsclient.h
%{_datadir}/glusterfs/*
%{_bindir}/glusterfs-volgen
%exclude %{_libdir}/*.a
%exclude %{_libdir}/*.la
%{_libdir}/*.so
%changelog %changelog
* Sat Jan 1 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.1-2
- Update to support readline
- Update to not parallel build
* Mon Dec 27 2010 Silas Sewell <silas@sewell.ch> - 3.1.1-1
- Update to 3.1.1
- Change package names to mirror upstream
* Mon Dec 20 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.0.7-1 * Mon Dec 20 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.0.7-1
- Update to 3.0.7 - Update to 3.0.7
@ -388,4 +451,3 @@ fi
* Sun Jul 15 2007 Matt Paine <matt@mattsoftware.com> - 1.3.pre6 * Sun Jul 15 2007 Matt Paine <matt@mattsoftware.com> - 1.3.pre6
- Initial spec file - Initial spec file

View File

@ -1 +1 @@
5b6093d99ce0b15dfae8a3a7606dd0a5 glusterfs-3.0.7.tar.gz 4584710adee36920c97a658b25a1446d glusterfs-3.1.1.tar.gz