ocfs2-tools/ocfs2-tools.spec

274 lines
8.7 KiB
RPMSpec

%{!?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 <fdinitto@redhat.com> - 1.4.3-3
- Explicitly BuildRequires: corosynclib-devel
* Wed Sep 30 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.3-2
- Fix -pcmk Requires.
* Wed Sep 30 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.3-1
- New upstream release.
* Mon Sep 21 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.2-5
- Fix pcmk resource agent.
* Tue Sep 15 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.2-4
- Add pcmk resource agent.
* Thu Sep 3 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.2-3
- Fix pcmk and cman Requires.
* Wed Sep 2 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.4.2-2
- Fix udev rule packaging
* Mon Aug 31 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 1.3.9-11.20080221git
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.9-10.20080221git
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 1.3.9-9.20080221git
- Rebuild for Python 2.6
* Thu Jun 19 2008 Fabio M. Di Nitto <fdinitto@redhat.com> - 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 <mark@fasheh.com> - 1.3.9-7.20080221git
- Use 'Fedora' as vendor for desktop-file-install
* Thu Feb 21 2008 Mark Fasheh <mark@fasheh.com> - 1.3.9-6.20080221git
- Move to git revision 22fb58d0318a2946479833bb5e2fd58864499c78
* Mon Feb 4 2008 Mark Fasheh <mark@fasheh.com> - 1.3.9-5.20080131git
- Incorporate feedback via bugzilla during review process.
* Thu Jan 31 2008 Mark Fasheh <mark@fasheh.com> - 1.3.9-4.20080131git
- Initial Fedora spec, heavily modified from ocfs2-tools distribution. Thanks
to Eric Sandeen for helping with this.