%define name cluster %define module_name gnbd %define major 3 %define version 3.0.17 %define release %mkrel 2 %define cmanlibname %mklibname cman %major %define cmanlibnamedevel %mklibname -d cman %define dlmlibname %mklibname dlm %major %define dlmlibnamedevel %mklibname -d dlm %define ccslibname %mklibname ccs %major %define ccslibnamedevel %mklibname -d ccs %define fencelibname %mklibname fence %major %define fencelibnamedevel %mklibname -d fence %define fencelibnamestatic %mklibname -d -s fence %define logthreadlibname %mklibname logthread %major %define logthreadlibnamedevel %mklibname -d logthread %define logthreadlibnamestatic %mklibname -d -s logthread %define _requires_exceptions perl\(VMware::VmPerl %global build_gnbd 0 Name: %name Version: %{version} Release: %{release} Summary: Redhat suite for clustered filesystems License: GPL Source: https://fedorahosted.org/releases/c/l/cluster/cluster-%{version}.tar.gz Source1: gfs-2.6.18-2.6.23.patch # Remove apc_snmp, as its compilation is broken Patch: cluster-2.03.07-fix-cman-init.patch Patch1: cluster-2.03.07-kernel-2.6.25.patch Patch2: cluster-2.03.11-gfs-should-start-clvmd.patch Url: http://sources.redhat.com/cluster/wiki Group: System/Kernel and hardware Buildroot: %{_tmppath}/%{name}-%{version}-root Buildrequires: libxml2-devel BuildRequires: openais-devel >= 1.1.0 BuildRequires: slang-devel BuildRequires: ncurses-devel BuildRequires: libvirt-devel # For fence_xvm BuildRequires: nss-devel # For ldap configuration support BuildRequires: openldap-devel # For perl binding BuildRequires: perl-devel #Requires: %{libname} Requires: gfs-utils cman rgmanager %description Redhat suite for clustered filesystems %package -n %{cmanlibname} Summary: Shared Librairies for Cluster Manager Group: Development/Other %description -n %{cmanlibname} Shared Librairies for Cluster Manager %package -n %{cmanlibnamedevel} Summary: Cluster Manager header files and static libraries Group: Development/Other Requires: %{cmanlibname} = %{version} Provides: cman-devel = %{version} %description -n %{cmanlibnamedevel} This package contains header files and static libraries. %package -n %{dlmlibname} Summary: Shared Librairies for the Distributed Lock Manager Group: Development/Other %description -n %{dlmlibname} Shared Librairies for cluster %package -n %{ccslibname} Summary: Shared Librairies for Cluster Configuration Service Group: Development/Other %description -n %{ccslibname} Shared Librairies for Cluster Configuration Service %package -n %{ccslibnamedevel} Summary: Development libraries for Cluster Configuration Service Group: Development/Other Requires: %{ccslibname} = %{version} Provides: ccs-devel = %{version} %description -n %{ccslibnamedevel} Development libraries for Cluster Configuration Service %package -n perl-Cluster-CCS Summary: Perl bindings for Cluster Configuration Service Group: Development/Perl %description -n perl-Cluster-CCS Perl bindings for Cluster Configuration Service %package -n %{fencelibname} Summary: Shared Librairies for cluster fencing Group: Development/Other %description -n %{fencelibname} Shared Librairies for cluster fencing %package -n %{fencelibnamedevel} Summary: Development libraries for cluster fencing Group: Development/Other Requires: %{fencelibname} = %{version} Provides: fence-devel = %{version} %description -n %{fencelibnamedevel} Development libraries for cluster fencing %package -n %{fencelibnamestatic} Summary: Static Development libraries for cluster fencing Group: Development/Other Requires: %{fencelibnamedevel} = %{version} %description -n %{fencelibnamestatic} Static Development libraries for cluster fencing %package -n %{logthreadlibname} Summary: Shared Librairies for cluster fencing Group: Development/Other %description -n %{logthreadlibname} Shared Librairies for cluster fencing %package -n %{logthreadlibnamedevel} Summary: Development libraries for cluster fencing Group: Development/Other Requires: %{logthreadlibname} = %{version} Provides: logthread-devel = %{version} %description -n %{logthreadlibnamedevel} Development libraries for cluster fencing %package -n %{logthreadlibnamestatic} Summary: Static Development libraries for cluster fencing Group: Development/Other Requires: %{logthreadlibnamedevel} = %{version} %description -n %{logthreadlibnamestatic} Static Development libraries for cluster fencing %package devel Summary: Cluster Manager header files and static libraries Group: Development/Other Requires: dlm-devel = %{version} cman-devel = %{version} Requires: logthread-devel = %{version} fence-devel = %{version} Requires: ccs-devel = %{version} %description devel Cluster Manager header files and static libraries %package -n %{dlmlibnamedevel} Summary: Distributed Lock Manager header files and static libraries Group: Development/Other Requires: %{dlmlibname} = %{version} Provides: dlm-devel = %{version} %description -n %{dlmlibnamedevel} This package contains header files and static libraries. %if %build_gnbd %package -n dkms-%{module_name} Summary: Redhat's cluster suite kernel modules Group: System/Kernel and hardware Requires(pre): dkms Requires(post): dkms %description -n dkms-%{module_name} The dynamic kernel modules %endif %package -n dkms-gfs Summary: Global File System Kernel Driver Group: System/Kernel and hardware Requires(pre): dkms Requires(post): dkms %description -n dkms-gfs The dynamic kernel module package for Global File System This package is only required for kernels older than 2.6.24 (newer kernels ship with a gfs driver) %package -n cman Group: System/Kernel and hardware Summary: Cluster Manager Requires: openais >= 1.1.0 libxml2-utils fence-agents Requires(pre): rpm-helper Requires(post): rpm-helper # Try and ensure we upgrade packages that depend on cman Conflicts: gfs-utils < %{version}, gfs2-utils < %{version}, Conflicts: rgmanager < %{version}, gnbd < %{version} %description -n cman Cluster Manager %package -n rgmanager Group: System/Kernel and hardware Summary: Resource Group Manager Requires(pre): rpm-helper Requires(post): rpm-helper Requires: fence-agents resource-agents %description -n rgmanager Resource Group Manager %if 0 %package -n gfs-utils Group: System/Kernel and hardware Summary: Global Filesystem Utilities Requires: gfs2-utils Requires(pre): rpm-helper Requires(post): rpm-helper %description -n gfs-utils Global Filesystem Utilities %endif %package -n gfs2-utils Group: System/Kernel and hardware Summary: Global Filesystem Utilities Requires: kmod(gfs2) Requires(pre): rpm-helper Requires(post): rpm-helper %description -n gfs2-utils Global Filesystem Utilities %if %build_gnbd %package -n gnbd Group: System/Kernel and hardware Summary: Global Network Block Device utilities Requires: kmod(gnbd) %description -n gnbd Global Network Block Device utilities %endif %prep %setup -q -n %{name}-%{version} #patch -p1 -b .orig %patch2 -p1 -b .shouldstartclvmd %if %mdkversion <= 200810 %patch1 -p1 -b .kernel2625 %endif cp Makefile Makefile.make %build ./configure \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --prefix=%{_prefix} \ --sbindir=%{_sbindir} \ --incdir=%{_includedir} \ --without_kernel_modules \ --disable_kernel_check \ --nssincdir=%{_includedir}/nss \ --nsprincdir=%{_includedir}/nspr4 \ --without_fence_agents \ --without_resource_agents #--kernel_src=/usr/src/linux \ #Fixing some weird harcoded path perl -pi -e 's|-DPLUGINDIR=\\\"\$\{plugindir\}\\\"|-DPLUGINDIR=\\"%{_libdir}/magma\\"|g' magma/lib/Makefile perl -pi -e 's|-DPLUGINDIR=\\\"\$\{plugindir\}\\\"|-DPLUGINDIR=\\"%{_libdir}/magma\\"|g' magma/tests/Makefile make %install rm -rf %{buildroot} mkdir -p %{buildroot}/%{_mandir} mkdir -p %{buildroot}/%{_datadir}/%{name}-%{version} mkdir -p %{buildroot}/%{_libdir} mkdir -p %{buildroot}/%{_includedir} mkdir -p %{buildroot}/%{_initrddir} mkdir -p %{buildroot}/%{_initrddir} mkdir -p %{buildroot}/etc/cluster #BEGIN OF DKMS PART %if %build_gnbd mkdir -p %{buildroot}/usr/src/%{module_name}-%{version}-%{release} #cp -a gnbd-kernel/src/* %{buildroot}/usr/src/%{module_name}-%{version}-%{release} cat > %{buildroot}/usr/src/%{module_name}-%{version}-%{release}/dkms.conf <<EOF PACKAGE_VERSION="%{version}-%{release}" # Items below here should not have to change with each driver version PACKAGE_NAME="%{module_name}" MAKE[0]="make -C \${kernel_source_dir} M=\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build KERNELRELEASE=\${kernelver} USING_KBUILD=yes modules" CLEAN="make -C \${kernel_source_dir} M=\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build KERNELRELEASE=\${kernelver} USING_KBUILD=yes clean" BUILT_MODULE_NAME[0]="gnbd" BUILT_MODULE_LOCATION[0]="" DEST_MODULE_NAME[0]="gnbd" DEST_MODULE_LOCATION[0]="/kernel/drivers/block/gnbd/" REMAKE_INITRD="no" AUTOINSTALL=yes POST_INSTALL="post-install" POST_REMOVE="post-remove" EOF %endif # GFS driver mkdir -p %{buildroot}/usr/src/gfs-%{version}-%{release}/patches cp -a gfs-kernel/src/* %{buildroot}/usr/src/gfs-%{version}-%{release} install -m644 %{SOURCE1} %{buildroot}/usr/src/gfs-%{version}-%{release}/patches cat > %{buildroot}/usr/src/gfs-%{version}-%{release}/dkms.conf <<EOF PACKAGE_VERSION="%{version}-%{release}" # Items below here should not have to change with each driver version PACKAGE_NAME="gfs" MAKE[0]="make -C \${kernel_source_dir} M=\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build/gfs KERNELRELEASE=\${kernelver} USING_KBUILD=yes modules" CLEAN="make -C \${kernel_source_dir} M=\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build/gfs KERNELRELEASE=\${kernelver} USING_KBUILD=yes clean" PATCH[0]=gfs-2.6.18-2.6.23.patch PATCH_MATCH[0]="^2.6.(1[8-9]|2[0-3])" BUILT_MODULE_NAME[0]="gfs" BUILT_MODULE_LOCATION[0]="gfs" DEST_MODULE_NAME[0]="gfs" DEST_MODULE_LOCATION[0]="/kernel/drivers/block/gfs/" BUILD_EXCLUSIVE_KERNEL="^2.6.(1[0-9]|2[0-3])" REMAKE_INITRD="no" AUTOINSTALL=yes POST_INSTALL="post-install" POST_REMOVE="post-remove" EOF # END OF DKMS STUFF #BEGIN OF MAIN RPM perl -pi -e 's/BUILDDIR =.*/BUILDDIR =\$\{RPM_BUILD_ROOT\}/' Makefile %makeinstall_std mkdir -p %{buildroot}/%{_initrddir} mv %{buildroot}/%{_sysconfdir}/init.d/* %{buildroot}/%{_initrddir} mv %{buildroot}/usr/libexec/* %{buildroot}/%{_libdir} %clean rm -rf $RPM_BUILD_ROOT %if %build_gnbd %post -n dkms-%{module_name} dkms add -m %{module_name} -v %{version}-%{release} --rpm_safe_upgrade dkms build -m %{module_name} -v %{version}-%{release} --rpm_safe_upgrade dkms install -m %{module_name} -v %{version}-%{release} --rpm_safe_upgrade %preun -n dkms-%{module_name} dkms remove -m %{module_name} -v %{version}-%{release} --rpm_safe_upgrade --all ||: %endif %post -n dkms-gfs dkms add -m gfs -v %{version}-%{release} --rpm_safe_upgrade dkms build -m gfs -v %{version}-%{release} --rpm_safe_upgrade dkms install -m gfs -v %{version}-%{release} --rpm_safe_upgrade %preun -n dkms-gfs dkms remove -m gfs -v %{version}-%{release} --rpm_safe_upgrade --all ||: %post -n rgmanager %_post_service rgmanager %preun -n rgmanager %_preun_service rgmanager %post -n cman %_post_service cman %_post_service qdiskd %_post_service scsi_reserve %preun -n cman %_preun_service cman %_preun_service qdiskd %_preun_service scsi_reserve %if 0 %post -n gfs-utils %_post_service gfs %preun -n gfs-utils %_preun_service gfs %endif %post -n gfs2-utils %_post_service gfs %preun -n gfs2-utils %_preun_service gfs2 %if %mdkversion < 200900 %post -n %{dlmlibname} -p /sbin/ldconfig %post -n %{cmanlibname} -p /sbin/ldconfig %post -n %{ccslibname} -p /sbin/ldconfig %postun -n %{dlmlibname} -p /sbin/ldconfig %postun -n %{cmanlibname} -p /sbin/ldconfig %postun -n %{ccslibname} -p /sbin/ldconfig %endif %if %build_gnbd %files -n dkms-%{module_name} %defattr(-,root,root) %_usrsrc/%{module_name}-%{version}-%{release} %endif %files -n dkms-gfs %defattr(-,root,root) %_usrsrc/gfs-%{version}-%{release} %files -n %{cmanlibnamedevel} %defattr(-,root,root) %{_libdir}/*cman*.a %{_libdir}/*cman.so %{_includedir}/libcman.h %{_libdir}/pkgconfig/libcman.pc %files -n %{dlmlibnamedevel} %defattr(-,root,root) %{_libdir}/*dlm*.a %{_libdir}/*dlm*.so %{_mandir}/man3/*dlm*.3.* %{_includedir}/libdlm*.h %{_libdir}/pkgconfig/libdlm*.pc %files -n %{cmanlibname} %defattr(-,root,root) %{_libdir}/*cman.so.%{major}* %files -n %{dlmlibname} %defattr(-,root,root) %{_libdir}/*dlm*.so.%{major}* %files -n %{ccslibname} %defattr(-,root,root) %{_libdir}/*ccs*.so.* %files -n %{ccslibnamedevel} %defattr(-,root,root) %{_libdir}/*ccs*.so %{_includedir}/ccs.h %{_libdir}/libccs.a %{_libdir}/pkgconfig/libccs.pc %files -n perl-Cluster-CCS %defattr(-,root,root) %{perl_vendorarch}/auto/Cluster/CCS %{perl_vendorarch}/Cluster/CCS.pm %{_mandir}/man3/Cluster::CCS.3pm.* %files -n %{fencelibname} %defattr(-,root,root) %{_libdir}/*fence*.so.* %files -n %{fencelibnamedevel} %defattr(-,root,root) %{_includedir}/*fence*.h %{_libdir}/*fence*.so %{_libdir}/pkgconfig/libfence*.pc %files -n %{fencelibnamestatic} %defattr(-,root,root) %{_libdir}/*fence*.a %files -n %{logthreadlibname} %defattr(-,root,root) %{_libdir}/*logthread*.so.* %files -n %{logthreadlibnamedevel} %defattr(-,root,root) %{_includedir}/*logthread*.h %{_libdir}/*logthread*.so %{_libdir}/pkgconfig/liblogthread*.pc %files -n %{logthreadlibnamestatic} %defattr(-,root,root) %{_libdir}/*logthread*.a %files devel %defattr(-,root,root) %{_datadir}/doc/%name %files -n rgmanager %defattr(-,root,root) %{_initrddir}/rgmanager %{_sbindir}/clu* %{_sbindir}/rgmanager %{_sbindir}/rg_test %{_datadir}/cluster %{_mandir}/man8/clu*.8.* %{_mandir}/man8/rgmanager.8.* %files -n cman %defattr(-,root,root) %{_initrddir}/cman #{_initrddir}/qdiskd #{_initrddir}/scsi_reserve %{_sbindir}/cman* %{_sbindir}/fence* %{_sbindir}/dlm* %{_sbindir}/ccs* %{_sbindir}/group* %{_sbindir}/*qdisk* %{_sbindir}/gfs_control* %{_sbindir}/confdb2ldif %dir /etc/cluster %config(noreplace) %{_sysconfdir}/logrotate.d/cluster %dir /var/log/cluster #attr(0755,root,root) %{_datadir}/fence #{_datadir}/snmp/mibs/*.mib %{_libdir}/lcrso/service_cman.lcrso %{_libdir}/lcrso/config_*.lcrso %config /etc/udev/rules.d/51-dlm.rules %{_mandir}/man8/cman*.8.* %{_mandir}/man5/cman.5.* %{_mandir}/man5/cluster.conf.5.* %{_mandir}/man5/qdisk.5.* %{_mandir}/man8/fence*.8.* %{_mandir}/man8/dlm*.8.* %{_mandir}/man8/ccs*.8.* %{_mandir}/man8/*group*.8.* %{_mandir}/man8/*qdisk*.8.* %{_mandir}/man8/confdb2ldif.8.* %{_mandir}/man8/gfs_control*.8.* %doc doc/usage.txt %doc config/plugins/ldap/99cluster.ldif %if 0 %files -n gfs-utils %defattr(-,root,root) /sbin/*.gfs %{_sbindir}/gfs_* %exclude %{_sbindir}/gfs_controld %{_initrddir}/gfs %{_mandir}/man8/gfs_*.8.* %{_mandir}/man8/*gfs.8.* %endif %files -n gfs2-utils %defattr(-,root,root) /sbin/*.gfs2 %{_sbindir}/gfs2_* %{_initrddir}/gfs2 %{_mandir}/man8/*gfs2*.8.* %if %build_gnbd %files -n gnbd %defattr(-,root,root) #{_sbindir}/gnbd_* #{_mandir}/man8/gnbd*.8.* %endif %changelog * Tue May 03 2011 Oden Eriksson <oeriksson@mandriva.com> 3.0.17-2mdv2011.0 + Revision: 663384 - mass rebuild * Wed Oct 13 2010 Buchan Milne <bgmilne@mandriva.org> 3.0.17-1mdv2011.0 + Revision: 585374 - update to new version 3.0.17 * Tue Sep 07 2010 Buchan Milne <bgmilne@mandriva.org> 3.0.16-1mdv2011.0 + Revision: 576571 - update to new version 3.0.16 - Add rgmanager man page to files list * Sun Aug 01 2010 Funda Wang <fwang@mandriva.org> 3.0.11-3mdv2011.0 + Revision: 564231 - rebuild for perl 5.12.1 + Jérôme Quelin <jquelin@mandriva.org> - rebuild * Tue May 04 2010 Buchan Milne <bgmilne@mandriva.org> 3.0.11-1mdv2010.1 + Revision: 541951 - Fix URL - New version 3.0.11 - Drop gfs1 bits * Mon Jan 04 2010 Buchan Milne <bgmilne@mandriva.org> 3.0.6-1mdv2010.1 + Revision: 486142 - update to new version 3.0.6 * Wed Dec 02 2009 Buchan Milne <bgmilne@mandriva.org> 3.0.5-1mdv2010.1 + Revision: 472548 - New version 3.0.5 * Fri Nov 20 2009 Buchan Milne <bgmilne@mandriva.org> 3.0.4-1mdv2010.1 + Revision: 467603 - update to new version 3.0.4 * Mon Oct 05 2009 Buchan Milne <bgmilne@mandriva.org> 3.0.3-1mdv2010.0 + Revision: 453853 - Buildrequire perl-devel for perl binding - Buildrequire openldap-devel - New version 3.0.3 - buildrequire openais-devel 1.1.0 - add more requires to cluster-devel - rgmanager should require resource-agents and fence-agents - New version 3.0.2 - disable gnbd for now - split more libs out - split agents out (as done upstream) * Sun Aug 09 2009 Oden Eriksson <oeriksson@mandriva.com> 2.03.11-3mdv2010.0 + Revision: 413256 - rebuild * Tue Apr 07 2009 Buchan Milne <bgmilne@mandriva.org> 2.03.11-2mdv2009.1 + Revision: 364890 - Fix one more path in cman init script - Make gfs init scripts should-start clvmd * Wed Apr 01 2009 Buchan Milne <bgmilne@mandriva.org> 2.03.11-1mdv2009.1 + Revision: 363145 - New version 2.03.11 * Mon Sep 29 2008 Buchan Milne <bgmilne@mandriva.org> 2.03.07-2mdv2009.0 + Revision: 289564 - Fix build on 2008.1 - Add dkms-gfs package with suitable patches to build gfs driver on Xen * Wed Sep 24 2008 Buchan Milne <bgmilne@mandriva.org> 2.03.07-1mdv2009.0 + Revision: 287787 - Fix some paths in the cman init script - Add a cluster-devel package for the ccs.h files and requiring dlm-devel and cman-devel - New version 2.03.07 - Rework package + Thierry Vignaud <tv@mandriva.org> - rebuild - kill re-definition of %%buildroot on Pixel's request + Pixel <pixel@mandriva.com> - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers - normalize call to ldconfig in %%post/%%postun + Olivier Blin <oblin@mandriva.com> - restore BuildRoot * Fri Jun 22 2007 Thierry Vignaud <tv@mandriva.org> 1.03.00-2mdv2008.0 + Revision: 42954 - fix more groups * Wed Dec 13 2006 Götz Waschk <waschk@mandriva.org> 1.03.00-2mdv2007.0 + Revision: 96346 - remove useless sources and binaries from the dkms package - fix deps of dkms package + Andreas Hasenack <andreas@mandriva.com> - updated to version 1.03.00 - added lccs patch so it won't take the libccs.so library from the installed system - added requires for libxml2-devel to the dkms package because it's needed at runtime to build the module (!) + ehabkost <ehabkost> - Import cluster * Thu Aug 17 2006 Eduardo Habkost <ehabkost@mandriva.com> 1.02.99-cvs20060816-1mdk - Updating to CVS STABLE version as of 2006-08-16 - Removing apc_snmp, as its compilation is broken * Thu Oct 27 2005 Erwan Velu <erwan@seanodes.com> 1.01.00-3mdk - Ooups, fixing wrong requires * Thu Oct 27 2005 Erwan Velu <erwan@seanodes.com> 1.01.00-2mdk - Fixing libs - A clean libification is not really possible, ccsd is using the libmagma.so :( * Fri Oct 21 2005 Erwan Velu <erwan@seanodes.com> 1.01.00-1mdk - Initial Release