ocfs2-tools/ocfs2-tools.spec
Goldwyn Rodrigues ba2ae35d8f Accepting request 330115 from home:ZRen:branches:network:ha-clustering:Factory
Add systemd support for o2cb and ocfs2 service. 

1. I've tested changes on opensuse13.2 and sle12 sp1. It works well. 
2. Backforward compatible.
3. It will be added into sle12 once it become mature in opensuse.

OBS-URL: https://build.opensuse.org/request/show/330115
OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/ocfs2-tools?expand=0&rev=84
2015-09-22 12:30:33 +00:00

302 lines
8.8 KiB
RPMSpec

#
# spec file for package ocfs2-tools
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: ocfs2-tools
Version: 1.8.4
Release: 0
Summary: Oracle Cluster File System 2 Core Tools
License: GPL-2.0+
Group: System/Filesystems
Url: https://ocfs2.wiki.kernel.org/
Source: ocfs2-tools-%{version}.tar.gz
Source1: o2cb.ocf
Source2: reflink.tar.bz2
Patch103: debug-ocfs2_hb_ctl.patch
Patch105: bug-470741-debug_start_failures.patch
Patch106: ocfs2-devel.diff
Patch107: reflink-no-syscall.patch
Patch201: bug-543119-o2dlm.patch
Patch202: fix-configure-check-libs.patch
Patch204: dont-use-var-lock-subsys.patch
Patch205: ocfs2-tools-kernel33.patch
Patch206: ocfs2-tools-resource.patch
Patch301: 0001-libo2dlm-Close-file-description-after-use.patch
Patch302: 0002-debugfs.ocfs2-Fix-a-bug-in-process_open_args.patch
Patch401: 0003-o2cb-add-build-scripts-for-rhel7.patch
Patch402: 0004-add-systemd-support.patch
Patch403: 0005-do-not-write-sysconfig-if-status-not-changed.patch
Patch404: 0006-o2cb-mount-debugfs-when-load-config.patch
Patch405: 0007-vendor-Add-vendor-files-for-sles12.patch
Patch406: 0008-ocfs2-tools-add-systemd-support-fix.patch
BuildRequires: autoconf
BuildRequires: e2fsprogs-devel
BuildRequires: libaio-devel
BuildRequires: libbz2-devel
BuildRequires: libcorosync-devel
BuildRequires: libdlm-devel
BuildRequires: libxslt-devel
BuildRequires: libz1
BuildRequires: python-devel
BuildRequires: python-gtk-devel
BuildRequires: readline-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libxml-2.0)
Requires(pre): %fillup_prereq
Requires(pre): %insserv_prereq
Requires: /sbin/chkconfig
Requires: e2fsprogs
Requires: glib2 >= 2.2.3
Requires: modutils
Requires: net-tools
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} < 1320
Recommends: ocfs2-kmp
%endif
%if 0%{?suse_version} >= 1315
%define systemd_enabled 1
%else
%define systemd_enabled 0
%endif
%description
OCFS2 is the Oracle Cluster File System.
This package contains the core user-space tools needed for creating and
managing the file system.
%package -n ocfs2console
Summary: Oracle Cluster Filesystem 2 GUI tools
Group: System/Filesystems
Requires: e2fsprogs
Requires: glib2 >= 2.2.3
Requires: ocfs2-tools = %{version}
Requires: ocfs2-tools = %{version}
Requires: python-gtk >= 1.99.16
Requires: vte >= 0.11.10
Provides: ocfs2-support = %{version}
Obsoletes: ocfs2-support < %{version}
%description -n ocfs2console
OCFS2 is the Oracle Cluster Filesystem.
This package contains additional tools and a GUI (python-gtk).
%package devel
Summary: Oracle Cluster File System 2 Development files
Group: Development/Libraries/C and C++
Requires: libcom_err
Requires: libcom_err-devel
Requires: ocfs2-tools = %{version}
%description devel
OCFS2 is the Oracle Cluster File System.
This package contains the header files for developing low-level
OCFS2-aware applications.
%package devel-static
Summary: Oracle Cluster File System 2 static libraries
Group: Development/Libraries/C and C++
Requires: libcom_err
Requires: libcom_err-devel
Requires: ocfs2-tools = %{version}
%description devel-static
OCFS2 is the Oracle Cluster File System.
This package contains the static libraries for developing low-level
OCFS2-aware applications.
%package o2cb
Summary: Oracle Cluster File System 2 tools for the native o2cb stack
Group: System/Filesystems
Requires: ocfs2-tools = %{version}
%description o2cb
OCFS is the Oracle Cluster File System.
This package contains the tools to manage the native o2cb stack for the
OCFS2 filesystem.
%prep
%setup -q -a 2
%patch103 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p0
%patch201 -p1
%patch202 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch301 -p1
%patch302 -p1
%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch404 -p1
%patch405 -p1
%patch406 -p1
%build
export PROJECT="ocfs2-tools"
autoreconf -fi -I /usr/share/aclocal
%configure --disable-debug --enable-ocfs2console=yes --enable-dynamic-fsck=yes --enable-dynamic-ctl=yes
make OPTS="%{optflags}"
cd reflink
cp ../config.guess ../config.sub coreutils-6.9/build-aux/
%configure
make reflink
cd ..
%install
mkdir -p %{buildroot}/sbin
mkdir -p %{buildroot}%{_prefix}/bin
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d/
mkdir -p %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2
cp -f vendor/common/51-ocfs2.rules %{buildroot}%{_sysconfdir}/udev/rules.d
cp -f $RPM_SOURCE_DIR/o2cb.ocf %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb
chmod a+x %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb
cp -f vendor/common/o2cb.sysconfig %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.o2cb
%if %{systemd_enabled}
mkdir -p %{buildroot}/usr/lib/systemd/system
cp -f vendor/common/o2cb.service %{buildroot}/usr/lib/systemd/system/
cp -f vendor/common/ocfs2.service %{buildroot}/usr/lib/systemd/system/
cp -f vendor/common/o2cb.init %{buildroot}/sbin
cp -f vendor/common/ocfs2.init %{buildroot}/sbin
%else
mkdir -p %{buildroot}%{_sysconfdir}/init.d
cp -f vendor/common/o2cb.init %{buildroot}%{_sysconfdir}/init.d/o2cb
cp -f vendor/common/ocfs2.init %{buildroot}%{_sysconfdir}/init.d/ocfs2
ln -sf ..%{_sysconfdir}/init.d/o2cb %{buildroot}/sbin/rco2cb
ln -sf ..%{_sysconfdir}/init.d/ocfs2 %{buildroot}/sbin/rcocfs2
%endif
make DESTDIR="%{buildroot}" install
cd reflink
make DESTDIR="%{buildroot}" install
cd ..
mv %{buildroot}/{,/usr}/sbin/o2image
mv %{buildroot}/{,/usr}/sbin/debugfs.ocfs2
#mv %{buildroot}/{,/usr}/sbin/ocfs2_controld.pcmk
chmod a-x %{buildroot}/%{_libdir}/libo2cb.a
chmod a-x %{buildroot}/%{_libdir}/libo2dlm.a
chmod a-x %{buildroot}/%{_libdir}/libocfs2.a
python -c "import compileall; compileall.compile_dir('%{buildroot}/%{py_sitedir}/ocfs2interface', ddir='%{py_sitedir}/ocfs2interface')"
%preun o2cb
%stop_on_removal ocfs2
%stop_on_removal o2cb
%postun o2cb
%{insserv_cleanup}
%restart_on_update ocfs2
%restart_on_update o2cb
%files
%defattr(-,root,root)
%doc COPYING CREDITS MAINTAINERS
%doc documentation/users_guide.txt
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/rules.d
/sbin/fsck.ocfs2
/sbin/mkfs.ocfs2
/sbin/mounted.ocfs2
/sbin/tunefs.ocfs2
/sbin/mount.ocfs2
/sbin/ocfs2_hb_ctl
/sbin/o2cluster
%{_sbindir}/o2image
%{_sbindir}/debugfs.ocfs2
%{_sbindir}/o2hbmonitor
%{_bindir}/reflink
%{_bindir}/o2info
%config %{_sysconfdir}/udev/rules.d/51-ocfs2.rules
%{_mandir}/man8/debugfs.ocfs2.8*
%{_mandir}/man8/fsck.ocfs2.8*
%{_mandir}/man8/fsck.ocfs2.checks.8*
%{_mandir}/man8/mkfs.ocfs2.8*
%{_mandir}/man8/tunefs.ocfs2.8*
%{_mandir}/man8/mounted.ocfs2.8*
%{_mandir}/man8/ocfs2_hb_ctl.8*
%{_mandir}/man8/mount.ocfs2.8*
%{_mandir}/man8/o2image.8.gz
%{_mandir}/man8/o2cluster.8.gz
%{_mandir}/man8/o2hbmonitor.8.gz
%{_mandir}/man5/o2cb.sysconfig.5.gz
%{_mandir}/man5/ocfs2.cluster.conf.5.gz
%{_mandir}/man7/ocfs2.7.gz
%{_mandir}/man1/o2info.1.gz
%dir %{_prefix}/lib/ocf
%dir %{_prefix}/lib/ocf/resource.d
%dir %{_prefix}/lib/ocf/resource.d/ocfs2
%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb
%files -n ocfs2console
%defattr(-,root,root)
%{_sbindir}/ocfs2console
%{py_sitedir}/ocfs2interface
%{_mandir}/man8/ocfs2console.8*
%files o2cb
%defattr(-,root,root)
%doc README.O2CB
/sbin/o2cb_ctl
/sbin/o2cb
%if %{systemd_enabled}
/sbin/o2cb.init
/sbin/ocfs2.init
/usr/lib/systemd/system/o2cb.service
/usr/lib/systemd/system/ocfs2.service
%else
/sbin/rco2cb
/sbin/rcocfs2
%{_sysconfdir}/init.d/o2cb
%{_sysconfdir}/init.d/ocfs2
%endif
%{_mandir}/man8/o2cb_ctl.8*
%{_localstatedir}/adm/fillup-templates/sysconfig.o2cb
%{_mandir}/man7/o2cb.7.gz
%{_mandir}/man8/o2cb.8.gz
%files devel
%defattr(-,root,root)
%{_includedir}/o2cb
%{_includedir}/o2dlm
%{_includedir}/ocfs2
%{_includedir}/ocfs2-kernel
%{_libdir}/pkgconfig/o2cb.pc
%{_libdir}/pkgconfig/o2dlm.pc
%{_libdir}/pkgconfig/ocfs2.pc
%files devel-static
%defattr(-,root,root)
%{_libdir}/libo2cb.a
%{_libdir}/libo2dlm.a
%{_libdir}/libocfs2.a
%changelog