%{!?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: 8%{?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} 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 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 * 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.