212 lines
6.2 KiB
RPMSpec
212 lines
6.2 KiB
RPMSpec
|
# vim: set sw=4 ts=4 et nu:
|
||
|
#
|
||
|
# spec file for package etckeeper
|
||
|
#
|
||
|
# Copyright (c) 2024 SUSE LLC
|
||
|
# Copyright (c) 2014 Mitsutoshi NAKANO <bkbin005@rinku.zaq.ne.jp>
|
||
|
# Copyright (c) 2013 Pascal Bleser <pascal.bleser@opensuse.org>
|
||
|
#
|
||
|
# 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 https://bugs.opensuse.org/
|
||
|
#
|
||
|
|
||
|
|
||
|
# this would pull python2
|
||
|
%bcond_with bzr
|
||
|
%bcond_without systemd
|
||
|
|
||
|
%if %{with bzr}
|
||
|
%define python_versioned python
|
||
|
%define python_args PYTHON_INSTALL_OPTS="--prefix=%{_prefix} --install-purelib=%{python_sitearch}"
|
||
|
%else
|
||
|
%define python_versioned python3
|
||
|
%define python_args %{nil}
|
||
|
%endif
|
||
|
|
||
|
%define make_args systemddir=%{_unitdir} PYTHON=%{python_versioned} %{python_args}
|
||
|
|
||
|
Name: etckeeper
|
||
|
Version: 1.18.21
|
||
|
Release: 0
|
||
|
Summary: Store /etc under Version Control
|
||
|
License: GPL-2.0-or-later
|
||
|
Group: System/Management
|
||
|
Source: https://git.joeyh.name/index.cgi/etckeeper.git/snapshot/%{name}-%{version}.tar.gz
|
||
|
# PATCH-FIX-UPSTREAM etckeeper-avoid-packagelist.patch gh#joeyh/etckeeper#17 bkbin005@rinku.zaq.ne.jp -- add AVOID_PACKAGELIST
|
||
|
Patch0: etckeeper-avoid-packagelist.patch
|
||
|
Patch1: etckeeper-set-package-manager.patch
|
||
|
URL: http://etckeeper.branchable.com/
|
||
|
%if ! %{with bzr}
|
||
|
BuildArch: noarch
|
||
|
%endif
|
||
|
BuildRequires: %{python_versioned}-devel
|
||
|
%if 0%{suse_version} >= 1500
|
||
|
BuildRequires: bash-completion-devel
|
||
|
%else
|
||
|
BuildRequires: bash-completion
|
||
|
%endif
|
||
|
BuildRequires: make
|
||
|
# for the path ownership
|
||
|
BuildRequires: %{python_versioned}-zypp-plugin
|
||
|
BuildRequires: libzypp
|
||
|
BuildRequires: systemd-rpm-macros
|
||
|
%if %{with bzr}
|
||
|
BuildRequires: bzr
|
||
|
%endif
|
||
|
|
||
|
Recommends: %{name}-zypp-plugin = %{version}-%{release}
|
||
|
Recommends: git-core
|
||
|
%if %{with bzr}
|
||
|
Recommends: %{name}-bzr = %{version}-%{release}
|
||
|
%endif
|
||
|
%if %{with systemd}
|
||
|
%{?systemd_requires}
|
||
|
Obsoletes: %{name}-cron = %{version}-%{release}
|
||
|
%else
|
||
|
Recommends: %{name}-cron = %{version}-%{release}
|
||
|
%endif
|
||
|
|
||
|
%description
|
||
|
The etckeeper program is a tool to let /etc be stored in a git,
|
||
|
mercurial, bzr or darcs repository. It hooks into yum to automatically
|
||
|
commit changes made to /etc during package upgrades. It tracks file
|
||
|
metadata that version control systems do not normally support, but that
|
||
|
is important for /etc, such as the permissions of /etc/shadow. It is
|
||
|
quite modular and configurable, while also being simple to use if you
|
||
|
understand the basics of working with version control.
|
||
|
|
||
|
%package cron
|
||
|
Summary: The etckeeper cron function
|
||
|
Group: System/Management
|
||
|
%if ! %{with bzr}
|
||
|
BuildArch: noarch
|
||
|
%endif
|
||
|
Requires: etckeeper = %{version}-%{release}
|
||
|
Provides: etckeeper:%{_sysconfdir}/cron.daily/etckeeper
|
||
|
Requires: cron
|
||
|
|
||
|
%description cron
|
||
|
The etckeeper-cron calls etckeeper from cron.
|
||
|
|
||
|
%package zypp-plugin
|
||
|
Summary: The etckeeper integration function with ZYpp
|
||
|
Group: System/Management
|
||
|
%if ! %{with bzr}
|
||
|
BuildArch: noarch
|
||
|
%endif
|
||
|
Requires: %{python_versioned}-zypp-plugin
|
||
|
Requires: etckeeper = %{version}-%{release}
|
||
|
Obsoletes: etckeeper-pkgmanager-collabo < %{version}-%{release}
|
||
|
Provides: etckeeper-pkgmanager-collabo = %{version}-%{release}
|
||
|
Provides: etckeeper:%{_prefix}/lib/zypp/plugins/commit/zypper-etckeeper.py
|
||
|
|
||
|
%description zypp-plugin
|
||
|
The etckeeper-zypp-plugin calls etckeeper from ZYpp.
|
||
|
|
||
|
%package bzr
|
||
|
Summary: The etckeeper integration function with bzr
|
||
|
Group: System/Management
|
||
|
Requires: %{python_versioned}-base
|
||
|
Requires: etckeeper = %{version}-%{release}
|
||
|
|
||
|
%description bzr
|
||
|
The etckeeper integration function with bzr
|
||
|
|
||
|
%package bash-completion
|
||
|
Summary: The bash completion for etckeeper
|
||
|
Group: System/Shells
|
||
|
Requires: bash-completion
|
||
|
Requires: etckeeper = %{version}-%{release}
|
||
|
Supplements: (%{name} and bash-completion)
|
||
|
|
||
|
%description bash-completion
|
||
|
Bash command line completion support for %{name}.
|
||
|
|
||
|
%package zsh-completion
|
||
|
Summary: The zsh completion for etckeeper
|
||
|
Group: System/Shells
|
||
|
Requires: etckeeper = %{version}-%{release}
|
||
|
|
||
|
%description zsh-completion
|
||
|
zsh command line completion support for %{name}.
|
||
|
|
||
|
%prep
|
||
|
%autosetup -p1
|
||
|
|
||
|
%build
|
||
|
find -type f -name ".gitignore" -delete
|
||
|
rm -f ./doc/todo/.mdwn
|
||
|
rm README.md
|
||
|
cp -a doc/README.mdwn README.md
|
||
|
perl -p -i -e 's|%{_bindir}/python|%{_bindir}/%{python_versioned}|g' zypper-etckeeper.py
|
||
|
make %{?_smp_mflags} %{make_args}
|
||
|
|
||
|
%install
|
||
|
%make_install %{make_args}
|
||
|
%if ! %{with systemd}
|
||
|
install -D debian/cron.daily "%{buildroot}/etc/cron.daily/%{name}"
|
||
|
%endif
|
||
|
|
||
|
mkdir %{buildroot}%{_sbindir}
|
||
|
ln -s ../bin/%{name} %{buildroot}%{_sbindir}/%{name}
|
||
|
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rc%{name}
|
||
|
|
||
|
%pre
|
||
|
%service_add_pre etckeeper.timer etckeeper.service
|
||
|
|
||
|
%preun
|
||
|
%service_del_preun etckeeper.timer etckeeper.service
|
||
|
|
||
|
%post
|
||
|
%service_add_post etckeeper.timer etckeeper.service
|
||
|
|
||
|
%postun
|
||
|
%service_del_postun etckeeper.timer etckeeper.service
|
||
|
|
||
|
%files
|
||
|
%doc README.md
|
||
|
%license GPL
|
||
|
%{_unitdir}/etckeeper.timer
|
||
|
%{_unitdir}/etckeeper.service
|
||
|
%{_bindir}/etckeeper
|
||
|
%{_sbindir}/etckeeper
|
||
|
%{_sbindir}/rcetckeeper
|
||
|
%dir %{_sysconfdir}/etckeeper
|
||
|
%dir %{_sysconfdir}/etckeeper/*.d
|
||
|
%{_sysconfdir}/etckeeper/daily
|
||
|
%config(noreplace) %{_sysconfdir}/etckeeper/etckeeper.conf
|
||
|
%config %{_sysconfdir}/etckeeper/*.d/*
|
||
|
%{_mandir}/man8/etckeeper.8*
|
||
|
|
||
|
%if ! %{with systemd}
|
||
|
%files cron
|
||
|
%config(noreplace) %{_sysconfdir}/cron.daily/etckeeper
|
||
|
%endif
|
||
|
|
||
|
%files bash-completion
|
||
|
%{_datadir}/bash-completion/completions/etckeeper
|
||
|
|
||
|
%files zsh-completion
|
||
|
%{_datadir}/zsh
|
||
|
%{_datadir}/zsh/vendor-completions
|
||
|
%{_datadir}/zsh/vendor-completions/_etckeeper
|
||
|
|
||
|
%files zypp-plugin
|
||
|
%{_prefix}/lib/zypp/plugins/commit/zypper-etckeeper.py
|
||
|
|
||
|
%if %{with bzr}
|
||
|
%files bzr
|
||
|
%{python_sitearch}/bzrlib/plugins/%{name}/
|
||
|
%{python_sitearch}/bzr_%{name}-*.egg-info
|
||
|
%endif
|
||
|
|
||
|
%changelog
|