File snapper.spec of Package snapper

#
# spec file for package snapper
#
# Copyright (c) 2016 SUSE LINUX Products 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:           snapper
Version:        0.3.3
Release:        0
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Source:         snapper-%{version}.tar.bz2
Prefix:         /usr
BuildRequires:  boost-devel
BuildRequires:  e2fsprogs-devel
BuildRequires:  gcc-c++
BuildRequires:  libacl-devel
BuildRequires:  libtool
BuildRequires:  libxml2-devel
%if 0%{?suse_version} > 1230
BuildRequires:  libbtrfs-devel
%endif
%if 0%{?suse_version} > 1310
BuildRequires:  libmount-devel >= 2.24
%endif
BuildRequires:  pkg-config
%if ! 0%{?mandriva_version}
BuildRequires:  dbus-1-devel
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  libxslt
%else
BuildRequires:  docbook-dtd45-xml
BuildRequires:  docbook-xsl
BuildRequires:  libdbus-1-devel
BuildRequires:  xsltproc
%endif
%if (0%{?suse_version} && 0%{?suse_version} >= 1210)
BuildRequires:  libzypp(plugin:commit)
%endif
BuildRequires:  pam-devel
Requires:       diffutils
Requires:       libsnapper3 = %version
%if 0%{?suse_version}
Recommends:     cron logrotate snapper-zypp-plugin
Supplements:    btrfsprogs
%endif
Summary:        Tool for filesystem snapshot management
License:        GPL-2.0
Group:          System/Packages
Url:            http://snapper.io/

%description
This package contains snapper, a tool for filesystem snapshot management.

Authors:
--------
    Arvin Schnell <aschnell@suse.com>

%prep
%setup -n snapper-%{version}

%build
export CFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
export CXXFLAGS="$RPM_OPT_FLAGS -DNDEBUG"

aclocal
libtoolize --force --automake --copy
autoheader
automake --add-missing --copy
autoconf

./configure --libdir=%{_libdir} --prefix=%{prefix} --mandir=%{_mandir}		\
	--docdir=%{prefix}/share/doc/packages/snapper				\
%if 0%{?suse_version} <= 1310
	--disable-rollback							\
%endif
	--disable-silent-rules --disable-ext4
make %{?jobs:-j%jobs}

%install
make install DESTDIR="$RPM_BUILD_ROOT"
rm $RPM_BUILD_ROOT/%{_lib}/security/pam_snapper.la

%if 0%{?suse_version}
install -D -m 644 data/sysconfig.snapper $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.snapper
%else
install -D -m 644 data/sysconfig.snapper $RPM_BUILD_ROOT/etc/sysconfig/snapper
%endif

%{find_lang} snapper

%check
make check

%clean
rm -rf "$RPM_BUILD_ROOT"

%files -f snapper.lang
%defattr(-,root,root)
%{prefix}/bin/snapper
%{prefix}/sbin/snapperd
%{prefix}/sbin/mksubvolume
%{prefix}/lib/snapper
%doc %{_mandir}/*/snapper.8*
%doc %{_mandir}/*/snapperd.8*
%doc %{_mandir}/*/snapper-configs.5*
%doc %{_mandir}/*/mksubvolume.8*
%config(noreplace) %{_sysconfdir}/logrotate.d/snapper
/etc/cron.hourly/suse.de-snapper
/etc/cron.daily/suse.de-snapper
/usr/lib/systemd/system/snapper-*.*
%config /etc/dbus-1/system.d/org.opensuse.Snapper.conf
%{prefix}/share/dbus-1/system-services/org.opensuse.Snapper.service

%package -n libsnapper3
Summary:        Library for filesystem snapshot management
Group:          System/Libraries
Requires:       util-linux
%if 0%{?suse_version}
PreReq:         %fillup_prereq
%endif
# expands to Obsoletes: libsnapper1 libsnapper2 libsnapper3...
Obsoletes:      %(echo `seq -s " " -f "libsnapper%.f" $((3 - 1))`)

%description -n libsnapper3
This package contains libsnapper, a library for filesystem snapshot management.

Authors:
--------
    Arvin Schnell <aschnell@suse.com>

%files -n libsnapper3
%defattr(-,root,root)
%{_libdir}/libsnapper.so.*
%dir %{_sysconfdir}/snapper
%dir %{_sysconfdir}/snapper/configs
%dir %{_sysconfdir}/snapper/config-templates
%config(noreplace) %{_sysconfdir}/snapper/config-templates/default
%dir %{_sysconfdir}/snapper/filters
%config(noreplace) %{_sysconfdir}/snapper/filters/*.txt
%doc %dir %{prefix}/share/doc/packages/snapper
%doc %{prefix}/share/doc/packages/snapper/AUTHORS
%doc %{prefix}/share/doc/packages/snapper/COPYING
%if 0%{?suse_version}
/var/adm/fillup-templates/sysconfig.snapper
%else
%config(noreplace) %{_sysconfdir}/sysconfig/snapper
%endif

%post -n libsnapper3
/sbin/ldconfig
%if 0%{?suse_version}
%{fillup_only -n snapper}
%endif

%postun -n libsnapper3
/sbin/ldconfig

%package -n libsnapper-devel
Requires:       boost-devel
Requires:       gcc-c++
Requires:       libacl-devel
Requires:       libsnapper3 = %version
Requires:       libstdc++-devel
Requires:       libxml2-devel
%if 0%{?suse_version} > 1230
Requires:       libbtrfs-devel
%endif
%if 0%{?suse_version} > 1310
Requires:       libmount-devel >= 2.24
%endif
Summary:        Header files and documentation for libsnapper
Group:          Development/Languages/C and C++

%description -n libsnapper-devel
This package contains header files and documentation for developing with
libsnapper.

Authors:
--------
    Arvin Schnell <aschnell@suse.com>

%files -n libsnapper-devel
%defattr(-,root,root)
%{_libdir}/libsnapper.la
%{_libdir}/libsnapper.so
%{prefix}/include/snapper

%package -n snapper-zypp-plugin
BuildArch:      noarch
Requires:       dbus-1-python
Requires:       python-xml
Requires:       snapper = %version
Requires:       zypp-plugin-python
Requires:       libzypp(plugin:commit) = 1
Summary:        A zypp commit plugin for calling snapper
Group:          System/Packages

%description -n snapper-zypp-plugin
This package contains a plugin for zypp that makes filesystem snapshots with
snapper during commits.

Authors:
--------
    Arvin Schnell <aschnell@suse.com>

%files -n snapper-zypp-plugin
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/snapper/zypp-plugin.conf
%if 0%{?suse_version} < 1210
%dir /usr/lib/zypp
%dir /usr/lib/zypp/plugins
%dir /usr/lib/zypp/plugins/commit
%endif
/usr/lib/zypp/plugins/commit/snapper.py*
%doc %{_mandir}/*/snapper-zypp-plugin.8*
%doc %{_mandir}/*/snapper-zypp-plugin.conf.5*

%package -n pam_snapper
Requires:       pam
Requires:       snapper = %version
Summary:        PAM module for calling snapper
Group:          System/Packages

%description -n pam_snapper
A PAM module for calling snapper during user login and logout.

Authors:
--------
    Matthias G. Eckermann <mge@suse.com>

%files -n pam_snapper
%defattr(-,root,root)
/%{_lib}/security/pam_snapper.so
%dir /usr/lib/pam_snapper
/usr/lib/pam_snapper/*.sh
%doc %{_mandir}/*/pam_snapper.8*

%changelog
openSUSE Build Service is sponsored by