From 43f3a1f0204b20faea0d01939e913d0653acdd2b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 6 Nov 2013 14:10:39 -0500 Subject: [PATCH] various fixes for the next build. see %change --- glusterfs.spec | 188 ++++++++++++++++++++++++++++--------------------- 1 file changed, 109 insertions(+), 79 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e50aeb0..501fcf2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -93,7 +93,7 @@ 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 ; +%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 @@ -109,7 +109,7 @@ 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 ; +%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 @@ -130,10 +130,11 @@ BuildRequires: systemtap-sdt-devel BuildRequires: lvm2-devel %endif -Obsoletes: hekafs <= 0.7 +Obsoletes: hekafs Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Obsoletes: %{name}-ufo Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -145,7 +146,7 @@ Provides: %{name}-core = %{version}-%{release} %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.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -153,6 +154,8 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -380,63 +383,76 @@ This package provides the api include files. # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +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} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{?rhel} && 0%{?rhel} > 5 ) -%{__mkdir_p} %{buildroot}%{python_sitelib}/gluster +mkdir -p %{buildroot}%{python_sitelib}/gluster touch %{buildroot}%{python_sitelib}/gluster/__init__.py %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +mkdir -p %{buildroot}%{_pkgdocdir}.tmp/ +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}.tmp/ +%else +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}/ +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -445,12 +461,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +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' \ @@ -463,62 +479,62 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post /sbin/ldconfig @@ -527,7 +543,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid /sbin/ldconfig %files -%defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* @@ -570,7 +585,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -582,7 +596,6 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication @@ -590,7 +603,6 @@ fi %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -606,8 +618,6 @@ fi %endif %files server -%defattr(-,root,root,-) -%doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif @@ -630,11 +640,18 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%ghost %attr(0644,-,-) %{_pkgdocdir}/clear_xattrs.sh +%{_pkgdocdir}.tmp/clear_xattrs.sh +%else +%{_pkgdocdir}/clear_xattrs.sh +%endif %ghost %attr(0644,-,-) %config(noreplace) %{_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 -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -683,13 +700,11 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -706,13 +721,20 @@ fi %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd @@ -764,6 +786,14 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building