%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %define 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.4.3 Release: 3%{?alphatag:.%{alphatag}}%{?dist} License: GPLv2 Group: System Environment/Base # The source for this package was pulled from upstream's git repo and manually # turned into a release tarball. Use the following commands to generate the # tarball: # git clone git://oss.oracle.com/git/ocfs2-tools.git ocfs2-tools-1.3.9 # cd ocfs2-tools-1.3.9 # git checkout -b 20080221git 22fb58d0318a2946479833bb5e2fd58864499c78 # ./autogen.sh # cd .. # tar -czvf ocfs2-tools-1.3.9.tar.gz ocfs2-tools-1.3.9 Source0: %{name}-%{version}.tar.gz Patch0: minor_build_fixes.diff Patch1: o2cb_pcmk.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 BuildRequires: e2fsprogs-devel, glib2-devel >= 2.2.3 BuildRequires: libblkid-devel, bzip2-devel BuildRequires: pygtk2 >= 1.99.16, python-devel >= 2.5 BuildRequires: ncurses-devel, readline-devel BuildRequires: corosynclib-devel, openaislib-devel, clusterlib-devel BuildRequires: cluster-glue-libs-devel, pacemaker-libs-devel BuildRequires: libxml2-devel BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %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 %package pcmk Summary: Tools for managing the Ocfs2 cluster file system (pacemaker component) Group: System Environment/Base Requires: pacemaker >= 1.0.5-1 Requires: %{name} = %{version}-%{release} Requires: dlm-pcmk %description pcmk ocfs2-tools-pcmk contains the daemon required to use Ocfs2 with pacemaker cluster manager %prep %setup -q %patch0 -p1 %patch1 -p1 %build %{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 "$RPM_BUILD_ROOT" mkdir -p $RPM_BUILD_ROOT/%{_initrddir} cp -f vendor/common/o2cb.init $RPM_BUILD_ROOT/%{_initrddir}/o2cb cp -f vendor/common/ocfs2.init $RPM_BUILD_ROOT/%{_initrddir}/ocfs2 mkdir -p $RPM_BUILD_ROOT/etc/sysconfig cp -f vendor/common/o2cb.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/o2cb mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d cp -f vendor/common/51-ocfs2.rules \ $RPM_BUILD_ROOT/etc/udev/rules.d/51-ocfs2.rules mkdir -p $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/ocfs2 cp -f vendor/common/o2cb.ocf \ $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/ocfs2/o2cb chmod 0755 $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/ocfs2/o2cb make DESTDIR="$RPM_BUILD_ROOT" install chmod 644 $RPM_BUILD_ROOT/%{_libdir}/*.a %if %{with_console} %{__python} -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT/%{python_sitearch}/ocfs2interface', ddir='%{python_sitearch}/ocfs2interface')" # rpm autostripper needs to see these as executable chmod 755 $RPM_BUILD_ROOT/%{python_sitearch}/ocfs2interface/*.so %endif %clean rm -rf "$RPM_BUILD_ROOT" %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 %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 %files pcmk %defattr(-,root,root,-) /sbin/ocfs2_controld.pcmk %dir /usr/lib/ocf/resource.d/ocfs2 /usr/lib/ocf/resource.d/ocfs2 %changelog * 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.