%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %global with_console %{?_without_console: 0} %{?!_without_console: 1} ## define alphatag 20080221git Summary: Tools for managing the Ocfs2 cluster file system Name: ocfs2-tools Version: 1.6.3 Release: 1%{?alphatag:.%{alphatag}}%{?dist} License: GPLv2 Group: System Environment/Base Source0: http://oss.oracle.com/projects/ocfs2-tools/dist/files/source/v1.6/%{name}-%{version}.tar.gz Patch0: minor_build_fixes.diff Patch1: o2cb_pcmk.diff Patch2: no_stonithd.diff URL: http://oss.oracle.com/projects/ocfs2-tools/ Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires: bash, coreutils, net-tools, modutils Requires: e2fsprogs, chkconfig, glib2 >= 2.2.3 Requires: redhat-lsb Provides: ocfs2-tools-pcmk = %{version} Obsoletes: ocfs2-tools-pcmk < 1.6.3-1 BuildRequires: libuuid-devel, libcom_err-devel, libblkid-devel BuildRequires: glib2-devel >= 2.2.3, compat-readline5-devel BuildRequires: pygtk2 >= 1.99.16, python-devel >= 2.5, desktop-file-utils BuildRequires: corosynclib-devel, openaislib-devel, clusterlib-devel BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %description Programs to manage the Ocfs2 cluster file system, including mkfs.ocfs2, tunefs.ocfs2 and fsck.ocfs2. Ocfs2 is a general purpose extent based shared disk cluster file system. It supports 64 bit inode numbers, and has automatically extending metadata groups which may also make it attractive for non-clustered use. Ocfs2 leverages some well tested kernel technologies, such as JBD - the same journaling subsystem in use by ext3. %if %{with_console} %package -n ocfs2console Summary: GUI frontend for Ocfs2 management Group: System Environment/Kernel Requires: e2fsprogs, glib2 >= 2.2.3, vte >= 0.11.10, pygtk2 >= 1.99.16 Requires: python >= 2.5, %{name} = %{version}-%{release} %description -n ocfs2console Ocfs2console can make it easier to manage an Ocfs2 cluster by providing a gui front-end to common tasks, including initial cluster setup. In addition to cluster setup, Ocfs2console can format and mount Ocfs2 volumes. %endif %package devel Summary: Headers and static archives for ocfs2-tools Group: Development/Libraries Requires: e2fsprogs-devel, glib2-devel >= 2.2.3, pkgconfig Requires: %{name} = %{version}-%{release} Provides: %{name}-static = %{version}-%{release} %description devel ocfs2-tools-devel contains the libraries and header files needed to develop Ocfs2 filesystem-specific programs. %package cman Summary: Tools for managing the Ocfs2 cluster file system (cman component) Group: System Environment/Base Requires: cman >= 3.0.0-1 Requires: %{name} = %{version}-%{release} %description cman ocfs2-tools-cman contains the daemon required to use Ocfs2 with cman cluster manager %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %build export CPPFLAGS="-I%{_includedir}/readline5" LDFLAGS="-L%{_libdir}/readline5" %{configure} \ %if ! %{with_console} --enable-ocfs2console=no \ %endif --enable-dynamic-fsck=yes # parallel build currently fails, so no %{_smp_mflags} CFLAGS="$(echo '%{optflags}')" make %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} mkdir -p %{buildroot}/%{_initrddir} cp -f vendor/common/o2cb.init %{buildroot}/%{_initrddir}/o2cb cp -f vendor/common/ocfs2.init %{buildroot}/%{_initrddir}/ocfs2 mkdir -p %{buildroot}/etc/sysconfig cp -f vendor/common/o2cb.sysconfig %{buildroot}/etc/sysconfig/o2cb mkdir -p %{buildroot}/etc/udev/rules.d cp -f vendor/common/51-ocfs2.rules \ %{buildroot}/etc/udev/rules.d/51-ocfs2.rules mkdir -p %{buildroot}/usr/lib/ocf/resource.d/ocfs2 cp -f vendor/common/o2cb.ocf \ %{buildroot}/usr/lib/ocf/resource.d/ocfs2/o2cb chmod 0755 %{buildroot}/usr/lib/ocf/resource.d/ocfs2/o2cb rm -f %{buildroot}/sbin/ocfs2_controld.pcmk chmod 644 $RPM_BUILD_ROOT/%{_libdir}/*.a %if %{with_console} %{__python} -c "import compileall; compileall.compile_dir('%{buildroot}/%{python_sitearch}/ocfs2interface', ddir='%{python_sitearch}/ocfs2interface')" # rpm autostripper needs to see these as executable chmod 755 %{buildroot}/%{python_sitearch}/ocfs2interface/*.so %endif %clean rm -rf %{buildroot} %post /sbin/chkconfig --add o2cb /sbin/chkconfig --add ocfs2 %preun if [ $1 = 0 ]; then # execute this only if we are NOT doing an upgrade /sbin/service ocfs2 stop >/dev/null 2>&1 || : /sbin/service o2cb stop >/dev/null 2>&1 || : /sbin/chkconfig --del ocfs2 /sbin/chkconfig --del o2cb fi %files %defattr(-,root,root,-) %doc README.O2CB COPYING CREDITS MAINTAINERS %doc documentation/users_guide.txt /sbin/fsck.ocfs2 /sbin/mkfs.ocfs2 /sbin/mounted.ocfs2 /sbin/tunefs.ocfs2 /sbin/debugfs.ocfs2 /sbin/o2cb_ctl /sbin/mount.ocfs2 /sbin/ocfs2_hb_ctl /sbin/o2image %{_initrddir}/o2cb %{_initrddir}/ocfs2 %config(noreplace) /etc/udev/rules.d/51-ocfs2.rules %config(noreplace) /etc/sysconfig/o2cb %{_mandir}/man7/o2cb.7.gz %{_mandir}/man8/debugfs.ocfs2.8.gz %{_mandir}/man8/fsck.ocfs2.8.gz %{_mandir}/man8/fsck.ocfs2.checks.8.gz %{_mandir}/man8/mkfs.ocfs2.8.gz %{_mandir}/man8/tunefs.ocfs2.8.gz %{_mandir}/man8/mount.ocfs2.8.gz %{_mandir}/man8/mounted.ocfs2.8.gz %{_mandir}/man8/o2cb_ctl.8.gz %{_mandir}/man8/ocfs2_hb_ctl.8.gz %{_mandir}/man8/o2image.8.gz %dir %{_prefix}/lib/ocf/resource.d/ocfs2 %{_prefix}/lib/ocf/resource.d/ocfs2/o2cb %if %{with_console} %files -n ocfs2console %defattr(-,root,root,-) %dir %{python_sitearch}/ocfs2interface %{python_sitearch}/ocfs2interface/* %{_sbindir}/ocfs2console %{_mandir}/man8/ocfs2console.8.gz %endif %files devel %defattr(-,root,root,-) %{_libdir}/*.a %{_libdir}/pkgconfig/*.pc %dir %{_includedir}/ocfs2-kernel %dir %{_includedir}/o2cb %dir %{_includedir}/o2dlm %dir %{_includedir}/ocfs2 %{_includedir}/ocfs2-kernel/* %{_includedir}/o2cb/* %{_includedir}/o2dlm/* %{_includedir}/ocfs2/* %files cman %defattr(-,root,root,-) /sbin/ocfs2_controld.cman %changelog * Fri Dec 3 2010 Fabio M. Di Nitto - 1.6.3-1 - new upstream release - drop ocfs2-tools-gcc45.patch (now upstream) - clean up comment sections in spec file - drop ocfs2-tools-pcmk package/build. -pcmk variants of other packages are gone - ship o2cb pcmk ras from main package - clear BuildRequires - fix linking with readline5 (rhbz: #511308) - update BuildRoot and usage of RPM_BUILD_ROOT * Mon Aug 2 2010 Toshio Kuratomi - 1.4.3-8 - make the patch use a character string instead of a sequence of characters string. gcc didn't complain but it seems like a better idea. * Mon Aug 2 2010 Toshio Kuratomi - 1.4.3-7 - Patch for gcc45 compilation failures * Wed Jul 21 2010 David Malcolm - 1.4.3-6 - Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild * Mon Feb 15 2010 Fabio M. Di Nitto - 1.4.3-5 - Update to use crmcommon and drop linking with stonithd * Sun Feb 14 2010 Caolán McNamara - 1.4.3-4 - Resolves: rhbz#564744 fix FTBFS * Fri Oct 9 2009 Fabio M. Di Nitto - 1.4.3-3 - Explicitly BuildRequires: corosynclib-devel * Wed Sep 30 2009 Fabio M. Di Nitto - 1.4.3-2 - Fix -pcmk Requires. * Wed Sep 30 2009 Fabio M. Di Nitto - 1.4.3-1 - New upstream release. * Mon Sep 21 2009 Fabio M. Di Nitto - 1.4.2-5 - Fix pcmk resource agent. * Tue Sep 15 2009 Fabio M. Di Nitto - 1.4.2-4 - Add pcmk resource agent. * Thu Sep 3 2009 Fabio M. Di Nitto - 1.4.2-3 - Fix pcmk and cman Requires. * Wed Sep 2 2009 Fabio M. Di Nitto - 1.4.2-2 - Fix udev rule packaging * Mon Aug 31 2009 Fabio M. Di Nitto - 1.4.2-1 - New upstream release - Undefine alpha tag - Add patch to fix 2 minor build glitches - Add Requires: redhat-lsb for init scripts - Update BuildRequires to enable all features - Add ocfs2-tools-{cman,pcmk} packages with respective control daemons - Install udev rule - Update file lists * Sat Jul 25 2009 Fedora Release Engineering - 1.3.9-11.20080221git - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Wed Feb 25 2009 Fedora Release Engineering - 1.3.9-10.20080221git - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Sat Nov 29 2008 Ignacio Vazquez-Abrams - 1.3.9-9.20080221git - Rebuild for Python 2.6 * Thu Jun 19 2008 Fabio M. Di Nitto - 1.3.9-8.20080221git - Make alpha tag optional - Use package names rather than files for Requires - Clean up changelog in spec file - Respect fedora build default CFLAGS * Fri Apr 18 2008 Mark Fasheh - 1.3.9-7.20080221git - Use 'Fedora' as vendor for desktop-file-install * Thu Feb 21 2008 Mark Fasheh - 1.3.9-6.20080221git - Move to git revision 22fb58d0318a2946479833bb5e2fd58864499c78 * Mon Feb 4 2008 Mark Fasheh - 1.3.9-5.20080131git - Incorporate feedback via bugzilla during review process. * Thu Jan 31 2008 Mark Fasheh - 1.3.9-4.20080131git - Initial Fedora spec, heavily modified from ocfs2-tools distribution. Thanks to Eric Sandeen for helping with this.