%define major 0 %define libname %mklibname glusterfs %{major} %define develname %mklibname -d glusterfs # (cg) Temporary hack to make it build %define _disable_ld_no_undefined 1 Summary: GlusterFS network/cluster filesystem Name: glusterfs %define subrel 3 Version: 3.4.1 Release: %mkrel 1 License: GPLv3+ Group: Networking/Other URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://download.gluster.org/pub/gluster/glusterfs/3.4/%{version}/%{name}-%{version}.tar.gz Source1: glusterfsd.service Source2: glusterfsd.sysconfig Source3: glusterfsd.logrotate Source4: glusterfs.logrotate Source5: %{name}-tmpfiles.conf ##Patch from OpenSuse to fix CVE-2014-3619, bug #15473 Patch0: multifrag.diff Patch1: CVE.patch BuildRequires: autoconf BuildRequires: bison BuildRequires: flex BuildRequires: gcc BuildRequires: make BuildRequires: fuse-devel >= 2.6.0 BuildRequires: libibverbs-devel BuildRequires: pkgconfig(libxml-2.0) >= 2.6.19 BuildRequires: readline-devel BuildRequires: libtool BuildRequires: openssl-devel %description 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 system 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. Please visit http://www.gluster.org/docs/index.php/GlusterFS for more info. %package -n %{libname} Summary: GlusterFS network/cluster filesystem library Group: System/Libraries Provides: glusterfs-libs, libglusterfs %description -n %{libname} 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 system 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. Please visit http://www.gluster.org/docs/index.php/GlusterFS for more info. This package includes the libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. %package -n %{develname} Summary: Static library and header files for the GlusterFS library Group: Development/C Provides: %{name}-devel = %{version} Requires: %{libname} = %{version} %description -n %{develname} 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 system 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. Please visit http://www.gluster.org/docs/index.php/GlusterFS for more info. This package contains the static GlusterFS library and its header files. %package common Summary: The common files needed by GlusterFS for client and server Group: Networking/Other Requires: fuse >= 2.6.0 Requires: libglusterfs %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 system 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. Please visit http://www.gluster.org/docs/index.php/GlusterFS for more info. This package includes the glusterfs binaries and documentation. These are needed by both glusterfs client and server. %package client Summary: GlusterFS client Group: Networking/Other Requires: %{name}-common = %{version} Requires(post): rpm-helper %description client 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 system 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 is the client needed to mount a GlusterFS fs. %package server Summary: GlusterFS server Group: Networking/Other Requires: %{name}-common = %{version} Requires: %{name}-client = %{version} Requires(post): systemd >= %{systemd_required_version} Requires(post): rpm-helper Requires(preun): rpm-helper Requires(post): sed %description server 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 system 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 is the server. %package geo-replication Summary: GlusterFS Geo-replication Group: Networking/Other Requires: %{name}-common = %{version} Requires: %{name}-client = %{version} %description geo-replication 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 system 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 provides support to geo-replication. %prep %setup -q %{name}-%{version} %patch0 -p1 %patch1 -p1 -b .CVE cp %{SOURCE1} glusterfsd.init cp %{SOURCE2} glusterfsd.sysconfig cp %{SOURCE3} glusterfsd.logrotate cp %{SOURCE4} glusterfs.logrotate %build %configure2_5x --disable-static # Remove rpath 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 %make %install %makeinstall_std # (cg) No need to put the mount command in / mv %{buildroot}/sbin/* %{buildroot}%{_sbindir} %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__mkdir_p} %{buildroot}/var/log/glusterfs %{__install} -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Remove unwanted files from all the shared libraries find %{buildroot} -name '*.la' | xargs rm -f %{__install} -D -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}d.service install -d %{buildroot}%{_sysconfdir}/sysconfig install -d %{buildroot}%{_sysconfdir}/logrotate.d ### we use journal, let's remove outdated rsyslog files rm -f %{buildroot}extras/gluster-rsyslog-7.2.conf rm -f %{buildroot}extras/gluster-rsyslog-7.2.conf install -m0644 glusterfsd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd install -m0644 glusterfsd.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd install -m0644 glusterfs.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs install -D -p -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{name}.conf touch %{buildroot}/var/log/glusterfs/glusterfs.log touch %{buildroot}/var/log/glusterfs/glusterfsd.log %post client %create_ghostfile /var/log/glusterfs/glusterfs.log root root 0644 %post server %create_ghostfile /var/log/glusterfs/glusterfsd.log root root 0644 %_tmpfilescreate %{name} %_post_service glusterfsd %_post_service glusterd if [ -e /etc/glusterfs/glusterfs-server.vol ]; then echo "Updating /etc/sysconfig/glusterfsd to point to old /etc/glusterfs/glusterfs-server.vol file" sed -i 's|GLUSTERFSD_CONFIG_FILE="/etc/glusterfs/glusterfsd.vol"|GLUSTERFSD_CONFIG_FILE="/etc/glusterfs/glusterfs-server.vol"|g' /etc/sysconfig/glusterfsd # mv -n /etc/glusterfs/glusterfs-server.vol /etc/glusterfs/glusterfsd.vol fi %preun server %_preun_service glusterfsd %_preun_service glusterd %files -n %{libname} # %doc README AUTHORS NEWS %{_libdir}/*.so.%{major}* %{_libdir}/glusterfs %files -n %{develname} %{_includedir}/glusterfs %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %files common # %doc AUTHORS ChangeLog COPYING INSTALL NEWS README # %doc installed_docs/* %docdir %{_docdir}/glusterfs %doc %{_docdir}/glusterfs/* %{_sysconfdir}/glusterfs/* %{_mandir}/man8/gluster* %dir /var/log/glusterfs %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %{_sbindir}/gluster %{_sbindir}/glusterd %files client %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/glusterfs %{_sbindir}/mount.glusterfs %{_bindir}/fusermount-glusterfs %attr(0644,root,root) %ghost %config(noreplace) /var/log/glusterfs/glusterfs.log %{_mandir}/man8/mount.glusterfs.8* %files server %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/sysconfig/glusterfsd %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/glusterfsd %attr(0644,root,root) %ghost %config(noreplace) /var/log/glusterfs/glusterfsd.log %{_unitdir}/%{name}d.service %attr(0644,-,-)%{_unitdir}/glusterd.service %{_prefix}/lib/ocf/resource.d/glusterfs %{_tmpfilesdir}/%{name}.conf %files geo-replication %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %changelog * Thu Aug 20 2015 spuhler <spuhler> 3.4.1-1.3.mga4 + Revision: 866900 - added CVE patch - fixed permission glusterd.service ( removed the execution bit) - added glusterd.service * it is needed in addidtion to glusterfsd.service - bumped subrel to 2 - added multifrag patch from OpenSuSE * fixes bug #15473 CVE-2014-3619 - cleaned up glusterfsd.service vs. glusterfsd.init file * fixes bug #14049 * Sat Nov 30 2013 thatsamguy <thatsamguy> 3.4.1-1.mga4 + Revision: 554136 - update version to 3.4.1 * Sat Oct 19 2013 umeabot <umeabot> 3.4.0-2.mga4 + Revision: 533551 - Mageia 4 Mass Rebuild * Sun Sep 01 2013 fwang <fwang> 3.4.0-1.mga4 + Revision: 473850 - update file list - drop unneeded dir - new version 3.4.0 * Sun Mar 24 2013 colin <colin> 3.3.1-2.mga3 + Revision: 404859 - Add systemd requires and general post/pre fixes (mga#9302) * Thu Jan 17 2013 colin <colin> 3.3.1-1.mga3 + Revision: 388939 - Add openssl-devel BR - New version: 3.3.1 - Rediff workingdir patch - Drop patches no longer apply (shouldn't be needed now) - Add geo-replication sub-package - Don't ship mount command in / (use /usr) - Fix file lists (man page dropped) - Switch to tmpfiles for /run dir + umeabot <umeabot> - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild + fwang <fwang> - br readline - br xml - new version 3.2.6 * Mon Aug 01 2011 fwang <fwang> 3.2.2-1.mga2 + Revision: 131097 - new version 3.2.2 * Sun Apr 10 2011 ennael <ennael> 3.0.0-2.mga1 + Revision: 82867 - clean spec file - imported package glusterfs * Mon Dec 06 2010 Funda Wang <fwang@mandriva.org> 3.0.0-2mdv2011.0 + Revision: 611833 - update file list + Oden Eriksson <oeriksson@mandriva.com> - rebuild * Sat Jan 30 2010 Funda Wang <fwang@mandriva.org> 3.0.0-1mdv2010.1 + Revision: 498597 - db storage not there any more - New version 3.0.0 * Sun Sep 20 2009 Michael Scherer <misc@mandriva.org> 2.0.6-1mdv2010.0 + Revision: 444885 - try to compile without -j, as this may help for weird errors + Funda Wang <fwang@mandriva.org> - use configure2_5x + Glen Ogilvie <nelg@mandriva.org> - This is a large upgrade, from 1.3.12 to 2.0.6. This includes updated configuration samples and init script. New features: * Distribute (DHT) translator * Replicate atomic write support * High Availability (HA) translator * Non-blocking I/O * Binary Protocol * NUFA translator * APIs via 'libglusterfsclient' library * Apache/Lighttpd embeddable 'mod_glusterfs' * Booster * Multiple OS support * OS X - Server and Client works. * Solaris 10 and above - Server part works file, Client part will be ported in future when FUSE is provided by Solaris. * FreeBSD 7.0 and above - Server and Client works. * Log message improvements * Stripe over tmpfs * Filter translator * Quota translator Full list of upgrade features at: http://www.gluster.com/community/documentation/index.php/Whats_New_v2.0 * Fri Sep 04 2009 Thierry Vignaud <tv@mandriva.org> 1.3.12-4mdv2010.0 + Revision: 429217 - rebuild * Tue Sep 16 2008 Oden Eriksson <oeriksson@mandriva.com> 1.3.12-3mdv2009.0 + Revision: 285247 - fix deps - rework the initscript and config * Tue Sep 16 2008 Oden Eriksson <oeriksson@mandriva.com> 1.3.12-2mdv2009.0 + Revision: 285163 - fix typo - added fixes requested by Jos?\195?\169 Antonio Becerra Permuy * Fri Sep 12 2008 Oden Eriksson <oeriksson@mandriva.com> 1.3.12-1mdv2009.0 + Revision: 284140 - 1.3.12 + Thierry Vignaud <tv@mandriva.org> - rebuild - kill re-definition of %%buildroot on Pixel's request + Olivier Blin <oblin@mandriva.com> - restore BuildRoot * Mon Apr 23 2007 Nicolas Vigier <nvigier@mandriva.com> 1.2.3-1mdv2008.0 + Revision: 17508 - Import glusterfs * Mon Apr 23 2007 Nicolas Vigier <nvigier@mandriva.com> - first version