etckeeper/etckeeper.spec
Ondřej Súkup d579fb58bb Accepting request 769864 from home:polslinux:branches:utilities
- Update to 1.18.14:
  * pacman 5.2 deprecated File hooks, use Path.
    Thanks, Christian Hesse
  * Fix vcs subcommand setup for zsh completion.
    Thanks, James Rowe.
  * Added zsh completion.
    Thanks, James Rowe
  * commit: Recent changes added code that does not work on all POSIX shells.
    Fixed by Thorsten Glaser.
  * Fix bug in hostname determination in the previous release.
    Thanks, Christian Hesse
  * Support platforms without a hostname command, fall back to 
    reading /etc/hostname.
    Thanks, Chris Morgan
  * commit: Support -mmessage, without a space, since eg git commit
    can be used that way.
    Thanks, martin f. krafft
  * commit: When multiple parameters are given, use them all as the commit
    message, instead of the old behavior of only using the first parameter and
    throwing the rest away.
    Thanks, martin f. krafft
  * Avoid post-install failing when ps is from busybox or another
    version not supporting procps-specific options.
  * Use ps --no-headers rather than problimatic -h option.
  * When run during a package installation, include in the commit
    message the command line that caused etckeeper to run.
    Thanks, Laszlo Gombos

OBS-URL: https://build.opensuse.org/request/show/769864
OBS-URL: https://build.opensuse.org/package/show/utilities/etckeeper?expand=0&rev=23
2020-02-06 13:14:13 +00:00

215 lines
6.3 KiB
RPMSpec

# vim: set sw=4 ts=4 et nu:
#
# spec file for package etckeeper
#
# Copyright (c) 2020 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.14
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: git-core
Recommends: %{name}-bash-completion = %{version}-%{release}
Recommends: %{name}-zypp-plugin = %{version}-%{release}
%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}
%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}
Requires: zsh-completion
%description zsh-completion
zsh command line completion support for %{name}.
%prep
%setup -q
%patch0 -p1
%patch1 -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