# # spec file for package glusterfs # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: glusterfs Version: 3.8.15 Release: 0 Summary: Aggregating distributed file system License: GPL-2.0 OR LGPL-3.0+ Group: System/Filesystems Url: http://www.gluster.org/ #Git-Clone: git://github.com/gluster/glusterfs #Git-Clone: git://github.com/fvzwieten/lsgvt Source: http://download.gluster.org/pub/gluster/glusterfs/3.8/%{version}/%{name}-%{version}.tar.gz Patch1: glusterfs-date.diff BuildRequires: acl-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: libaio-devel BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: python BuildRequires: readline-devel BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(fuse) >= 2.6.5 BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(liburcu) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(uuid) %{?systemd_requires} %description 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. %package -n libgfapi0 Summary: GlusterFS API library Group: System/Libraries %description -n libgfapi0 GlusterFS is a clustered file-system capable of scaling to several petabytes. %package -n libgfchangelog0 Summary: GlusterFS volume changelog translator library Group: System/Libraries %description -n libgfchangelog0 GlusterFS is a clustered file-system capable of scaling to several petabytes. The goal of this volume translator is to capture changes performed on a GlusterFS volume. The translator needs to be loaded on the server (bricks) and captures changes in a plain text file inside a configured directory path (controlled by the "changelog-dir" directive). %package -n libgfrpc0 Summary: GlusterFS Remote Procedure Call library Group: System/Libraries %description -n libgfrpc0 GlusterFS is a clustered file-system capable of scaling to several petabytes. %package -n libgfxdr0 Summary: GlusterFS's External Data Representation library Group: System/Libraries %description -n libgfxdr0 GlusterFS is a clustered file-system capable of scaling to several petabytes. %package -n libglusterfs0 Summary: GlusterFS's core library Group: System/Libraries %description -n libglusterfs0 GlusterFS is a clustered file-system capable of scaling to several petabytes. %package -n libgfdb0 Summary: GlusterFS's database library Group: System/Libraries %description -n libgfdb0 GlusterFS is a clustered file-system capable of scaling to several petabytes. %package -n python-gluster Summary: GlusterFS python library Group: System/Filesystems %description -n python-gluster GlusterFS is a clustered file-system capable of scaling to several petabytes. %package ganesha Summary: NFS-Ganesha configuration Group: System/Libraries %description ganesha GlusterFS is a clustered file-system capable of scaling to several petabytes. %package devel Summary: Development files for glusterfs Group: Development/Libraries/C and C++ Requires: %{name} = %{version} Requires: libgfapi0 = %{version} Requires: libgfchangelog0 = %{version} Requires: libgfrpc0 = %{version} Requires: libgfxdr0 = %{version} Requires: libglusterfs0 = %{version} %description devel GlusterFS is a clustered file-system capable of scaling to several petabytes. This package provides development files such as headers and library links. %prep %setup -q %patch1 -p1 %build ./autogen.sh %configure \ --disable-static \ --disable-silent-rules make %{?_smp_mflags} %install %make_install docdir="%{_docdir}/%{name}" find %{buildroot} -type f -name "*.la" -delete -print mkdir -p "%{buildroot}%{_localstatedir}/log"/{glusterd,glusterfs,glusterfsd}; # The things seemingly forgotten by make install. # - Manually populate devel dirs mkdir -p "%{buildroot}%{_includedir}/%{name}"; install -pm0644 libglusterfs/src/*.h "%{buildroot}%{_includedir}/%{name}/"; # - hekafs wants this: mkdir -p "%{buildroot}%{_includedir}/%{name}"/{rpc,server}; install -pm0644 rpc/rpc-lib/src/*.h rpc/xdr/src/*.h \ "%{buildroot}%{_includedir}/%{name}/rpc/"; install -pm0644 xlators/protocol/server/src/*.h \ "%{buildroot}%{_includedir}/%{name}/server/"; # - init script; there is no SuSE-release in the build env mkdir -p "%{buildroot}%{_initddir}"; install -pm0755 extras/init.d/glusterd-SuSE "%{buildroot}%{_initddir}/glusterd"; # - wrapper umount script? # - logrotate entry mkdir -p "%{buildroot}%{_localstatedir}/log/%{name}"; # - vim syntax # - state mkdir -p "%{buildroot}%{_localstatedir}/lib/glusterd"; perl -i -pe \ 's{^(\s*option working-directory )\S+}{$1 %{_localstatedir}/lib/glusterd}g' \ "%{buildroot}%{_sysconfdir}/%{name}/glusterd.vol"; # Clean, but must NOT remove .la from dirs not searched by # default, thus maxdepth. find %{buildroot} -type f -name "*.la" -delete -print # W: wrong-file-end-of-line-encoding perl -i -pe 's{\x0d\x0a}{\x0a}gs' %{_docdir}/%{name}/glusterfs-mode.el; mkdir -p "%{buildroot}%{_unitdir}"; rm -Rf "%{buildroot}%{_initddir}" ln -s service "%{buildroot}%{_sbindir}/rcglusterd" chmod u-s "%{buildroot}%{_bindir}/fusermount-glusterfs" %fdupes %{buildroot}/%{_prefix} %pre %service_add_pre glusterd.service %post %service_add_post glusterd.service %preun %service_del_preun glusterd.service %postun %service_del_postun glusterd.service %post -n libgfapi0 -p /sbin/ldconfig %postun -n libgfapi0 -p /sbin/ldconfig %post -n libgfchangelog0 -p /sbin/ldconfig %postun -n libgfchangelog0 -p /sbin/ldconfig %post -n libgfrpc0 -p /sbin/ldconfig %postun -n libgfrpc0 -p /sbin/ldconfig %post -n libgfxdr0 -p /sbin/ldconfig %postun -n libgfxdr0 -p /sbin/ldconfig %post -n libglusterfs0 -p /sbin/ldconfig %postun -n libglusterfs0 -p /sbin/ldconfig %post -n libgfdb0 -p /sbin/ldconfig %postun -n libgfdb0 -p /sbin/ldconfig %files %doc COPYING-GPLV2 COPYING-LGPLV3 ChangeLog NEWS README.md %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/glusterd.vol %config(noreplace) %{_sysconfdir}/%{name}/glusterfs-logrotate %config %{_sysconfdir}/%{name}/gluster-rsyslog*.conf %config %{_sysconfdir}/%{name}/*.example %config %{_sysconfdir}/%{name}/*-logrotate %{_bindir}/fusermount-glusterfs %{_bindir}/glusterfind /sbin/mount.%{name} %{_libexecdir}/%{name}/ %{_libdir}/%{name}/ %{_sbindir}/gluster* %{_sbindir}/glfsheal %{_sbindir}/rcglusterd %{_sbindir}/gcron.py %{_sbindir}/gfind_missing_files %{_sbindir}/snap_scheduler.py %{_datadir}/glusterfs/ %{_mandir}/man*/* %{_docdir}/%{name} %{_localstatedir}/lib/glusterd %{_localstatedir}/log/%{name} %{_unitdir}/glusterd.service %{_libexecdir}/ocf %files -n libgfapi0 %{_libdir}/libgfapi.so.0* %files -n libgfchangelog0 %{_libdir}/libgfchangelog.so.0* %files -n libgfrpc0 %{_libdir}/libgfrpc.so.0* %files -n libgfxdr0 %{_libdir}/libgfxdr.so.0* %files -n libglusterfs0 %{_libdir}/libglusterfs.so.0* %files -n libgfdb0 %{_libdir}/libgfdb.so.0* %files ganesha %dir %{_sysconfdir}/ganesha %dir %{_libexecdir}/ganesha %{_sysconfdir}/ganesha/ganesha-ha.conf.sample %{_libexecdir}/ganesha/copy-export-ganesha.sh %{_libexecdir}/ganesha/create-export-ganesha.sh %{_libexecdir}/ganesha/dbus-send.sh %{_libexecdir}/ganesha/ganesha-ha.sh %{_libexecdir}/ganesha/generate-epoch.py %files -n python-gluster %dir %{python_sitelib}/gluster %dir %{python_sitelib}/gluster/glupy %{python_sitelib}/gluster/__init__.* %{python_sitelib}/gluster/glupy/__init__.* %files devel %{_includedir}/%{name} %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %changelog