ocfs2-tools/ocfs2-tools.spec
2008-06-19 05:53:45 +00:00

199 lines
5.9 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.3.9
Release: 7.%{?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
Source: %{name}-%{version}.tar.gz
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
BuildRequires: e2fsprogs-devel, glib2-devel >= 2.2.3
BuildRequires: pygtk2 >= 1.99.16, python-devel >= 2.5
BuildRequires: ncurses-devel, readline-devel, desktop-file-utils
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.
%prep
%setup -q
%build
%configure \
%if ! %{with_console}
--enable-ocfs2console=no \
%endif
--enable-dynamic-fsck=yes
# parallel build currently fails, so no %{_smp_mflags}
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
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
mkdir -p $RPM_BUILD_ROOT%{_datadir}/ocfs2console/
cp -f vendor/common/ocfs2console.png $RPM_BUILD_ROOT%{_datadir}/ocfs2console/
desktop-file-install --vendor="fedora" \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications/ \
vendor/common/ocfs2console.desktop
%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/ocfs2cdsl
/sbin/ocfs2_hb_ctl
%{_initrddir}/o2cb
%{_initrddir}/ocfs2
%config(noreplace) /etc/sysconfig/o2cb
%{_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/ocfs2cdsl.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
%{_datadir}/applications/fedora-ocfs2console.desktop
%dir %{_datadir}/ocfs2console/
%{_datadir}/ocfs2console/*
%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/*
%changelog
* Fri Apr 18 2008 Mark Fasheh <mark@fasheh.com> - 1.3.9-7.20080221git.fc8
- Use 'Fedora' as vendor for desktop-file-install
* Thu Feb 21 2008 Mark Fasheh <mark@fasheh.com> - 1.3.9-6.20080221git.fc8
- 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.