diff --git a/README.fedora b/README.fedora index 04c7011..217d39f 100644 --- a/README.fedora +++ b/README.fedora @@ -4,8 +4,9 @@ aspects, and how it all works. For the impatient: Run etckeeper init - etckeeper vcs status - etckeeper vcs commit -m 'msg' + cd /etc + git status + git commit -m 'msg' to get etckeeper started. @@ -13,9 +14,9 @@ Once you do that, the cronjob is in place and it'll do daily autocommits for you. To disable it, set AVOID_DAILY_AUTOCOMMITS=1 in /etc/etckeeper/etckeeper.conf. -There's a yum plugin enabled that autocommits before and after each -yum transaction. A dnf plugin is also included, in the subpackage -etckeeper-dnf. - -The yum plugin can be disabled in +There's also a yum plugin enabled that autocommits before and after +each yum transaction. It can be disabled in /etc/yum/pluginconf.d/etckeeper.conf. + +If you ever want to deinstall etckeeper via yum, disable the plugin +like this: "yum --disableplugin=etckeeper remove etckeeper". diff --git a/cron.daily b/cron.daily deleted file mode 100644 index eb74401..0000000 --- a/cron.daily +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -set -e -if [ -e /etc/etckeeper/daily ] && [ -e /etc/etckeeper/etckeeper.conf ]; then - . /etc/etckeeper/etckeeper.conf - if [ "$AVOID_DAILY_AUTOCOMMITS" != "1" ]; then - /etc/etckeeper/daily - fi -fi diff --git a/etckeeper-1.18.18-fix-hg-warnings.patch b/etckeeper-1.18.18-fix-hg-warnings.patch deleted file mode 100644 index 7a74e70..0000000 --- a/etckeeper-1.18.18-fix-hg-warnings.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/pre-commit.d/20warn-problem-files b/pre-commit.d/20warn-problem-files -index 43320e4..7899268 100755 ---- a/pre-commit.d/20warn-problem-files -+++ b/pre-commit.d/20warn-problem-files -@@ -1,19 +1,20 @@ - #!/bin/sh - set -e - --exclude_internal () { -- grep -E -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/' --} -+# (Note that when using this, the find expression must end with -+# -print or -exec, else the excluded directories will actually be -+# printed!) -+NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o' - - if [ "$VCS" = bzr ] || [ "$VCS" = darcs ]; then -- special=$(find . ! -type d ! -type f ! -type l | exclude_internal) || true -- hardlinks=$(find . -type f ! -links 1 | exclude_internal ) || true -+ special=$(find $NOVCS ! -type d ! -type f ! -type l -print) || true -+ hardlinks=$(find $NOVCS -type f ! -links 1 -print) || true - elif [ "$VCS" = hg ]; then -- special=$(find . ! -type d ! -type f ! -type l | exclude_internal) || true -- hardlinks=$(find . -type f ! -links 1 -exec hg status {} \; | exclude_internal ) || true -+ special=$(find $NOVCS ! -type d ! -type f ! -type l -print) || true -+ hardlinks=$(find $NOVCS -type f ! -links 1 -exec hg status {} \; -print) || true - elif [ "$VCS" = git ]; then -- special=$(find . ! -type d ! -type f ! -type l -exec git ls-files --exclude-standard --cached --others {} + | exclude_internal) || true -- hardlinks=$(find . -type f ! -links 1 -exec git ls-files --exclude-standard --cached --others {} + | exclude_internal) || true -+ special=$(find $NOVCS ! -type d ! -type f ! -type l -exec git ls-files --exclude-standard --cached --others {} + -print) || true -+ hardlinks=$(find $NOVCS -type f ! -links 1 -exec git ls-files --exclude-standard --cached --others {} + -print) || true - else - special="" - fi diff --git a/etckeeper-1.18.18-fix-output-for-ansible.patch b/etckeeper-1.18.18-fix-output-for-ansible.patch deleted file mode 100644 index b36af3c..0000000 --- a/etckeeper-1.18.18-fix-output-for-ansible.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/etckeeper-dnf/etckeeper.py b/etckeeper-dnf/etckeeper.py -index e8a1a51..7c3210b 100644 ---- a/etckeeper-dnf/etckeeper.py -+++ b/etckeeper-dnf/etckeeper.py -@@ -7,30 +7,34 @@ - # Distutils code below was copied from etckeeper-bzr distributed with v1.15 - # - --from dnfpluginscore import logger -- --import os -+import logging -+import subprocess - import dnf - -+logger = logging.getLogger('dnf.plugin') -+ - - class Etckeeper(dnf.Plugin): - - name = 'etckeeper' - -- def _out(self, msg): -- logger.debug('Etckeeper plugin: %s', msg) -+ def _run_command(self, command): -+ logger.debug('Etckeeper plugin: %s', command) -+ try: -+ with open("/dev/null", "wb") as devnull: -+ ret = subprocess.call(("etckeeper", command), -+ stdout=devnull, stderr=devnull, -+ close_fds=True) -+ if ret != 0: -+ raise dnf.exceptions.Error('"etckeeper %s" returned: %d' % (command, ret)) -+ except OSError as err: -+ logger.warning('Failed to run "etckeeper %s": %s' % (command, err)) - - def resolved(self): -- self._out('pre transaction commit') -- command = '%s %s' % ('etckeeper', " pre-install") -- ret = os.system(command) -- if ret != 0: -- raise dnf.exceptions.Error('etckeeper returned %d' % (ret >> 8)) -+ self._run_command("pre-install") - - def transaction(self): -- self._out('post transaction commit') -- command = '%s %s > /dev/null' % ('etckeeper', "post-install") -- os.system(command) -+ self._run_command("post-install") - - if __name__ == "__main__": - from distutils.core import setup diff --git a/etckeeper-1.18.21-bz2203408.patch b/etckeeper-1.18.21-bz2203408.patch deleted file mode 100644 index 537192b..0000000 --- a/etckeeper-1.18.21-bz2203408.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/post-install.d/50vcs-commit 2023-12-05 10:45:18.967497833 +0100 -+++ b/post-install.d/50vcs-commit 2023-12-05 10:46:00.848138455 +0100 -@@ -6,7 +6,7 @@ - # Parent process is etckeeper - # (Only procps ps is currently supported, others will fail, - # so this may end up empty.) --ETCKEEPER_PID=$( ps --no-headers -o ppid "${PPID}" 2>/dev/null | sed 's/^ *//' ) -+ETCKEEPER_PID=$( ps --no-headers -o ppid "$$" 2>/dev/null | sed 's/^ *//' ) - - # Find the parent of etckeeper and get the command line of the process - if ! [ -z "${ETCKEEPER_PID}" ]; then diff --git a/etckeeper-1.18.7-fix-rpm-ignores.patch b/etckeeper-1.18.7-fix-rpm-ignores.patch deleted file mode 100644 index 1cb5fed..0000000 --- a/etckeeper-1.18.7-fix-rpm-ignores.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up etckeeper-1.18.7/update-ignore.d/01update-ignore.orig etckeeper-1.18.7/update-ignore.d/01update-ignore ---- etckeeper-1.18.7/update-ignore.d/01update-ignore.orig 2017-08-13 12:31:57.360734395 +0200 -+++ etckeeper-1.18.7/update-ignore.d/01update-ignore 2017-08-13 12:32:45.246242478 +0200 -@@ -91,7 +91,9 @@ writefile () { - nl - elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "rpm" ]; then - comment "new and old versions of conffiles, stored by apt/rpm" -- ignore "*.rpm*" -+ ignore "*.rpmnew" -+ ignore "*.rpmorig" -+ ignore "*.rpmsave" - nl - elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "pacman-g2" -o "$LOWLEVEL_PACKAGE_MANAGER" = "pacman" -o "$LOWLEVEL_PACKAGE_MANAGER" = "pacmatic" ]; then - comment "new and old versions of conffiles, stored by pacman" diff --git a/etckeeper-add-breezy-python3-plugin.patch b/etckeeper-add-breezy-python3-plugin.patch deleted file mode 100644 index d234bef..0000000 --- a/etckeeper-add-breezy-python3-plugin.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b5919d7919dda614c3c3c76ba126f45e205494bd Mon Sep 17 00:00:00 2001 -From: Dimitri John Ledkov -Date: Mon, 29 Apr 2019 14:11:09 +0100 -Subject: [PATCH 1/3] Add breezy python3 plugin - ---- - Makefile | 3 +++ - debian/changelog | 6 ++++++ - debian/control | 6 +++--- - etckeeper-brz/__init__.py | 34 ++++++++++++++++++++++++++++++++++ - 4 files changed, 46 insertions(+), 3 deletions(-) - create mode 100644 etckeeper-brz/__init__.py - -Index: etckeeper-1.18.10/etckeeper-brz/__init__.py -=================================================================== ---- /dev/null -+++ etckeeper-1.18.10/etckeeper-brz/__init__.py -@@ -0,0 +1,34 @@ -+# -+# Breezy plugin that runs etckeeper pre-commit when necessary -+ -+"""Runs etckeeper pre-commit when necessary.""" -+ -+from breezy.errors import BzrError -+import os -+ -+def etckeeper_startcommit_hook(tree): -+ abspath = getattr(tree, "abspath", None) -+ if abspath is None or not os.path.exists(abspath(".etckeeper")): -+ # Only run the commit hook when this is an etckeeper branch -+ return -+ import subprocess -+ ret = subprocess.call(["etckeeper", "pre-commit", abspath(".")]) -+ if ret != 0: -+ raise BzrError("etckeeper pre-commit failed") -+ -+try: -+ from breezy.hooks import install_lazy_named_hook -+except ImportError: -+ from breezy.mutabletree import MutableTree -+ MutableTree.hooks.install_named_hook('start_commit', -+ etckeeper_startcommit_hook, 'etckeeper') -+else: -+ install_lazy_named_hook( -+ "breezy.mutabletree", "MutableTree.hooks", -+ 'start_commit', etckeeper_startcommit_hook, 'etckeeper') -+ -+if __name__ == "__main__": -+ from distutils.core import setup -+ setup(name="brz-etckeeper", -+ packages=["breezy.plugins.etckeeper"], -+ package_dir={"breezy.plugins.etckeeper":"etckeeper-brz"}) diff --git a/etckeeper-makefile-remove-python-plugins.patch b/etckeeper-makefile-remove-python-plugins.patch index 7ed0de8..9c81f01 100644 --- a/etckeeper-makefile-remove-python-plugins.patch +++ b/etckeeper-makefile-remove-python-plugins.patch @@ -1,13 +1,11 @@ -diff -up etckeeper-1.18.7/Makefile.orig etckeeper-1.18.7/Makefile ---- etckeeper-1.18.7/Makefile.orig 2017-06-08 18:59:32.000000000 +0200 -+++ etckeeper-1.18.7/Makefile 2017-06-12 22:58:50.802133039 +0200 -@@ -15,13 +15,10 @@ CP=cp -R +diff -up etckeeper-1.18/Makefile.orig etckeeper-1.18/Makefile +--- etckeeper-1.18/Makefile.orig 2015-03-20 16:53:23.681037197 +0100 ++++ etckeeper-1.18/Makefile 2015-03-20 16:56:28.697621078 +0100 +@@ -13,11 +13,8 @@ CP=cp -R INSTALL=install INSTALL_EXE=${INSTALL} INSTALL_DATA=${INSTALL} -m 0644 -PYTHON=python - FAKEROOT := $(shell command -v fakeroot 2> /dev/null) - TESTDIR := $(shell mktemp -u -d) build: etckeeper.spec etckeeper.version - -$(PYTHON) ./etckeeper-bzr/__init__.py build || echo "** bzr support not built" @@ -15,7 +13,7 @@ diff -up etckeeper-1.18.7/Makefile.orig etckeeper-1.18.7/Makefile install: etckeeper.version mkdir -p $(DESTDIR)$(etcdir)/etckeeper/ $(DESTDIR)$(vardir)/cache/etckeeper/ -@@ -58,14 +55,10 @@ ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),yum) +@@ -45,14 +42,10 @@ ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),yum) mkdir -p $(DESTDIR)$(etcdir)/yum/pluginconf.d $(INSTALL_DATA) yum-etckeeper.conf $(DESTDIR)$(etcdir)/yum/pluginconf.d/etckeeper.conf endif diff --git a/etckeeper.actions b/etckeeper.actions deleted file mode 100644 index f654e21..0000000 --- a/etckeeper.actions +++ /dev/null @@ -1,4 +0,0 @@ -# to be placed in /etc/dnf/libdnf5-plugins/actions.d -# requires dnf5 5.2.11.0 or later -pre_base_setup:::raise_error=1:/usr/bin/sh -c /usr/bin/etckeeper\ pre-install\ \|\ /usr/bin/sed\ -e\ 's/^/log.INFO=/' -post_transaction::::/usr/bin/sh -c /usr/bin/etckeeper\ post-install\ \|\ /usr/bin/sed\ -e\ 's/^/log.INFO=/' diff --git a/etckeeper.spec b/etckeeper.spec index 7893c0c..eaa221a 100644 --- a/etckeeper.spec +++ b/etckeeper.spec @@ -1,51 +1,53 @@ +%if 0%{?rhel} && 0%{?rhel} <= 6 +%{!?__python2: %global __python2 /usr/bin/python2} +%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%endif + %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} +%if 0%{?fedora} || 0%{?rhel} > 5 +%global with_bzr 1 +%endif + %if 0%{?fedora} -%global with_brz 1 -%global with_dnf5 1 +%global with_dnf 1 +%global dnf_is_mandatory 1 +%global dnf_uses_python3 1 +%endif + +%if 0%{?rhel} >= 7 +%global with_dnf 1 +%endif + +%if 0%{?fedora} || 0%{?rhel} >= 7 +%global with_systemd 1 %endif Name: etckeeper -Version: 1.18.22 -Release: 6%{?dist} +Version: 1.18.5 +Release: 1%{?dist} Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs) -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -URL: https://etckeeper.branchable.com/ -Source0: https://git.joeyh.name/index.cgi/etckeeper.git/snapshot/%{name}-%{version}.tar.gz +Group: Applications/System +License: GPLv2+ +URL: http://etckeeper.branchable.com/ +Source0: https://github.com/joeyh/etckeeper/archive/%{version}/%{name}-%{version}.tar.gz Source1: README.fedora -Source2: cron.daily -Source3: etckeeper.actions -# build plugins separately Patch0: etckeeper-makefile-remove-python-plugins.patch -# see rhbz#1460461 -Patch1: etckeeper-1.18.7-fix-rpm-ignores.patch -# see rhbz#1480843 -Patch2: etckeeper-1.18.18-fix-hg-warnings.patch -# From https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1826855 -Patch3: etckeeper-add-breezy-python3-plugin.patch -# see rhbz#1762693 and https://github.com/ansible/ansible/issues/54949 -# see also rhbz#1917461 -Patch4: etckeeper-1.18.18-fix-output-for-ansible.patch -# see rhbz#2203408 and pr#7 -Patch5: etckeeper-1.18.21-bz2203408.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch -BuildRequires: make -BuildRequires: %{_bindir}/markdown_py -Requires: git-core -Requires: perl-interpreter +BuildRequires: python-markdown +Requires: git >= 1.5.4 +Requires: perl Requires: crontabs -Requires: findutils -Requires: hostname -Requires: which +%if 0%{?dnf_is_mandatory} Requires: %{name}-dnf = %{version}-%{release} -%if 0%{?with_dnf5} -Requires: %{name}-dnf5 = %{version}-%{release} -%endif # with_dnf5 +%endif # dnf_is_mandatory +%if 0%{?with_systemd} BuildRequires: systemd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd +%endif # with_systemd %description The etckeeper program is a tool to let /etc be stored in a git, @@ -58,55 +60,53 @@ understand the basics of working with version control. The default backend is git, if want to use a another backend please install the appropriate tool (mercurial, darcs or bzr). -%{?with_brz: To use breezy as bzr backend, please also install the %{name}-brz package.} +To use bzr as backend, please also install the %{name}-bzr package. To start using the package please read %{_pkgdocdir}/README. -%if 0%{?with_brz} -%package brz -Summary: Support for bzr with etckeeper (via breezy) -BuildRequires: python3-devel -BuildRequires: brz +%if 0%{?with_bzr} +%package bzr +Summary: Support for bzr with etckeeper +Group: Applications/System +BuildRequires: python2-devel +BuildRequires: bzr Requires: %{name} = %{version}-%{release} -Requires: brz +Requires: bzr -%description brz -This package provides a brz (breezy) backend for etckeeper, if you want to use -etckeeper with (bzr) bazaar repositories, install this package. -%endif # with_brz +%description bzr +This package provides a bzr backend for etckeeper, if you want to use +etckeeper with bzr backend, install this package. +%endif # with_bzr +%if 0%{?with_dnf} %package dnf Summary: DNF plugin for etckeeper support +Group: Applications/System +%if 0%{?dnf_uses_python3} BuildRequires: python3-devel -BuildRequires: python3-dnf -Requires: python3-dnf +%else +BuildRequires: python2-devel +%endif # dnf_uses_python3 +BuildRequires: dnf BuildRequires: dnf-plugins-core Requires: %{name} = %{version}-%{release} +Requires: dnf Requires: dnf-plugins-core %description dnf This package provides a DNF plugin for etckeeper. If you want to use etckeeper with DNF, install this package. - - -%if 0%{?with_dnf5} -%package dnf5 -Summary: DNF5 plugin for etckeeper support -Requires: %{name} = %{version}-%{release} -Requires: libdnf5-plugin-actions >= 5.2.11.0 -Requires: sed - -%description dnf5 -This package provides a DNF5 plugin for etckeeper. If you want to use -etckeeper with DNF5, install this package. -%endif # with_dnf5 +%endif # with_dnf %prep -%autosetup -p1 -sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=dnf|' \ +%setup -q +%patch0 -p1 +# we set yum here, so the yum plugin gets built, and change that to +# dnf later, if needed +sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=yum|' \ -e 's|LOWLEVEL_PACKAGE_MANAGER=.*|LOWLEVEL_PACKAGE_MANAGER=rpm|' \ -i etckeeper.conf sed -e 's|^prefix=.*|prefix=%{_prefix}|' \ @@ -116,327 +116,173 @@ sed -e 's|^prefix=.*|prefix=%{_prefix}|' \ -e 's|^vardir=.*|vardir=%{_localstatedir}|' \ -e 's|^INSTALL=.*|INSTALL=install -p|' \ -e 's|^CP=.*|CP=cp -pR|' \ - -e 's|^systemddir=.*|systemddir=%{_unitdir}|' \ -i Makefile +%if 0%{?with_systemd} +sed -e 's|^systemddir=.*|systemddir=%{_unitdir}|' \ + -i Makefile +%endif # move each plugin in its own subdirectory, so each has its own build/ # directory -mkdir brz-plugin -mv etckeeper-brz brz-plugin -ln -snf etckeeper-brz/__init__.py brz-plugin/setup.py - -mkdir dnf-plugin -mv etckeeper-dnf dnf-plugin -ln -snf etckeeper-dnf/etckeeper.py dnf-plugin/setup.py - +mkdir bzr-plugin ; mv etckeeper-bzr bzr-plugin +mkdir dnf-plugin ; mv etckeeper-dnf dnf-plugin cp -av %{SOURCE1} . -%generate_buildrequires -%if 0%{?with_brz} -cd brz-plugin -%pyproject_buildrequires -cd .. -%endif # with_brz - -cd dnf-plugin -%pyproject_buildrequires -cd .. - - %build -%make_build +make %{?_smp_mflags} -%if 0%{?with_brz} -cd brz-plugin -%pyproject_wheel -cd .. -%endif # with_brz +%if 0%{?with_bzr} +pushd bzr-plugin +%{__python2} etckeeper-bzr/__init__.py build +popd +%endif -cd dnf-plugin -%pyproject_wheel -cd .. +%if 0%{?with_dnf} +pushd dnf-plugin +%if 0%{?dnf_uses_python3} +%{__python3} etckeeper-dnf/etckeeper.py build +%else +%{__python2} etckeeper-dnf/etckeeper.py build +%endif +popd +%endif +%if 0%{?fedora} || 0%{?rhel} >= 7 +# the binary in python-markdown has been renamed markdown_py -f README.html README.md +%else +markdown -f README.html README.md +%endif %install -%make_install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} -%if 0%{?with_brz} -cd brz-plugin -%pyproject_install -cd .. -%endif # with_brz +%if 0%{?with_bzr} +pushd bzr-plugin +%{__python2} etckeeper-bzr/__init__.py install -O1 --skip-build --root %{buildroot} +popd +%endif -cd dnf-plugin -%pyproject_install -cd .. +%if 0%{?with_dnf} +pushd dnf-plugin +%if 0%{?dnf_uses_python3} +%{__python3} etckeeper-dnf/etckeeper.py install -O1 --skip-build --root %{buildroot} +%else +%{__python2} etckeeper-dnf/etckeeper.py install -O1 --skip-build --root %{buildroot} +%endif +popd -install -D -p %{SOURCE2} %{buildroot}%{_sysconfdir}/cron.daily/%{name} +%if 0%{?dnf_is_mandatory} +sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=dnf|' \ + -i %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf +%endif +%endif + +install -D -p debian/cron.daily %{buildroot}%{_sysconfdir}/cron.daily/%{name} install -d %{buildroot}%{_localstatedir}/cache/%{name} -%if 0%{?with_dnf5} -install -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/dnf/libdnf5-plugins/actions.d/%{name}.actions -%endif # with_dnf5 +# on RHEL < 7, move the completion file back to /etc/bash_completion.d +%if !(0%{?fedora} || 0%{?rhel} >= 7) +install -d %{buildroot}%{_sysconfdir}/bash_completion.d +mv %{buildroot}%{_datadir}/bash-completion/completions/%{name} \ + %{buildroot}%{_sysconfdir}/bash_completion.d/%{name} +%endif + +# remove unit files if not used (note: /lib/systemd/system is the +# original, hardcoded location from the etckeeper Makefile) +%if !0%{?with_systemd} +rm %{buildroot}/lib/systemd/system/%{name}.service +rm %{buildroot}/lib/systemd/system/%{name}.timer +%endif + + +%clean +rm -rf %{buildroot} %post if [ $1 -gt 1 ] ; then %{_bindir}/%{name} update-ignore fi +%if 0%{?with_systemd} %systemd_post %{name}.service %systemd_post %{name}.timer +%endif # with_systemd %preun +%if 0%{?with_systemd} %systemd_preun %{name}.service %systemd_preun %{name}.timer +%endif # with_systemd %postun +%if 0%{?with_systemd} %systemd_postun %{name}.service %systemd_postun %{name}.timer +%endif # with_systemd %files %doc README.html README.fedora +%if 0%{?_licensedir:1} %license GPL +%else +%doc GPL +%endif # licensedir %{_bindir}/%{name} %{_mandir}/man8/%{name}.8* %dir %{_sysconfdir}/%{name} %{_sysconfdir}/%{name}/*.d %{_sysconfdir}/%{name}/daily %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf -%config(noreplace) %{_sysconfdir}/cron.daily/%{name} +%{_sysconfdir}/cron.daily/%{name} +%if 0%{?fedora} || 0%{?rhel} >= 7 %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/%{name} -%dir %{_datadir}/zsh -%dir %{_datadir}/zsh/vendor-completions -%{_datadir}/zsh/vendor-completions/_%{name} +%else +%dir %{_sysconfdir}/bash_completion.d +%{_sysconfdir}/bash_completion.d/%{name} +%endif +%dir %{_prefix}/lib/yum-plugins +%{_prefix}/lib/yum-plugins/%{name}.* +%dir %{_sysconfdir}/yum/pluginconf.d +%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/%{name}.conf %{_localstatedir}/cache/%{name} +%if 0%{?with_systemd} %{_unitdir}/%{name}.service %{_unitdir}/%{name}.timer +%endif # with_systemd -%if 0%{?with_brz} -%files brz -# co-own the plugins directories -# breezy installs to sitearch -%dir %{python3_sitelib}/breezy/ -%dir %{python3_sitelib}/breezy/plugins/ -%{python3_sitelib}/breezy/plugins/%{name}/ -# exclude egg-info dir, doesn't contain meaningful information -%exclude %{python3_sitelib}/brz_%{name}-*.dist-info -%endif # with_brz +%if 0%{?with_bzr} +%files bzr +%{python2_sitelib}/bzrlib/plugins/%{name} +%{python2_sitelib}/bzr_%{name}-*.egg-info +%endif # with_bzr +%if 0%{?with_dnf} %files dnf +%if 0%{?dnf_uses_python3} %{python3_sitelib}/dnf-plugins/%{name}.py %exclude %{python3_sitelib}/dnf-plugins/__init__.py %{python3_sitelib}/dnf-plugins/__pycache__/%{name}.* %exclude %{python3_sitelib}/dnf-plugins/__pycache__/__init__.* -# exclude egg-info dir, doesn't contain meaningful information -%exclude %{python3_sitelib}/dnf_%{name}-*.dist-info - - -%if 0%{?with_dnf5} -%files dnf5 -%{_sysconfdir}/dnf/libdnf5-plugins/actions.d/%{name}.actions -%endif # with_dnf5 +%{python3_sitelib}/dnf_%{name}-*.egg-info +%else +%{python2_sitelib}/dnf-plugins/%{name}.py* +%exclude %{python2_sitelib}/dnf-plugins/__init__.py* +%{python2_sitelib}/dnf_%{name}-*.egg-info +%endif # dnf_uses_python3 +%endif # with_dnf %changelog -* Fri Sep 19 2025 Python Maint - 1.18.22-6 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 1.18.22-5 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Wed Jul 23 2025 Fedora Release Engineering - 1.18.22-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jul 15 2025 Thomas Moschny - 1.18.22-3 -- Fix conditional. - -* Tue Jul 15 2025 Thomas Moschny - 1.18.22-2 -- Update action file to produce expected action output. - -* Mon Jul 14 2025 Thomas Moschny - 1.18.22-1 -- Update to 1.18.22. -- Remove all EL7-related conditionals and parts. -- Update for current Python packaging guidelines (rhbz#2377253). -- Add support for DNF5 (rhbz#2326283). - -* Tue Jun 03 2025 Python Maint - 1.18.21-6 -- Rebuilt for Python 3.14 - -* Thu Jan 16 2025 Fedora Release Engineering - 1.18.21-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Jul 25 2024 Miroslav Suchý - 1.18.21-4 -- convert license to SPDX - -* Wed Jul 17 2024 Fedora Release Engineering - 1.18.21-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 07 2024 Python Maint - 1.18.21-2 -- Rebuilt for Python 3.13 - -* Wed May 1 2024 Thomas Moschny - 1.18.21-1 -- Update to 1.18.21. -- Add patch for rhbz#2203408 from pr#7. -- Depend on python3-dnf, not dnf (pr#6). - -* Wed Jan 24 2024 Fedora Release Engineering - 1.18.20-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.18.20-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Jul 25 2023 Python Maint - 1.18.20-3 -- Rebuilt for Python 3.12 - -* Wed Jul 19 2023 Fedora Release Engineering - 1.18.20-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 28 2023 Thomas Moschny - 1.18.20-1 -- Update to 1.18.20. - -* Thu Jan 19 2023 Fedora Release Engineering - 1.18.18-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Dec 2 2022 Thomas Moschny - 1.18.18-1 -- Update to 1.18.18. -- Rebase patches. -- Update patch to fix logging with Ansible (#1917461). -- BuildRequire setuptools when Python >= 3.12. - -* Thu Jul 21 2022 Fedora Release Engineering - 1.18.17-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jun 15 2022 Python Maint - 1.18.17-2 -- Rebuilt for Python 3.11 - -* Tue Mar 8 2022 Thomas Moschny - 1.18.17-1 -- Update to 1.18.17. - -* Wed Feb 16 2022 Todd Zullinger - 1.18.16-6 -- Require git-core instead of git - -* Mon Jan 31 2022 Thomas Moschny - 1.18.16-5 -- Exclude egg-info directories for dnf, bzr and brz plugins (#2048085). - -* Thu Jan 20 2022 Fedora Release Engineering - 1.18.16-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 1.18.16-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 1.18.16-2 -- Rebuilt for Python 3.10 - -* Tue Feb 9 2021 Thomas Moschny - 1.18.16-1 -- Update to 1.18.16. -- Update spec file, remove obsolete conditionals. - -* Tue Jan 26 2021 Fedora Release Engineering - 1.18.14-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.18.14-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue May 26 2020 Miro Hrončok - 1.18.14-2 -- Rebuilt for Python 3.9 - -* Sat Mar 14 2020 Thomas Moschny - 1.18.14-1 -- Update to 1.18.14. -- Include zsh completion. -- Mark cron file as config file. - -* Tue Jan 28 2020 Fedora Release Engineering - 1.18.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sun Dec 1 2019 Thomas Moschny - 1.18.12-1 -- Update to 1.18.12. -- New version of patch to fix logging with Ansible (#1762693). - -* Tue Nov 19 2019 Thomas Moschny - 1.18.10-6 -- Add patch to fix logging with Ansible (#1762693). - -* Fri Nov 01 2019 Miro Hrončok - 1.18.10-5 -- Add breezy plugin on Fedora 31+ -- Remove bazaar plugin on Fedora 32+ -- https://fedoraproject.org/wiki/Changes/ReplaceBazaarWithBreezy - -* Fri Oct 4 2019 Thomas Moschny - 1.18.10-4 -- Package fixes for CentOS8. -- Build dnf plugin on CentOS7. - -* Thu Oct 03 2019 Miro Hrončok - 1.18.10-3 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Thu Oct 3 2019 Thomas Moschny - 1.18.10-2 -- There is currently no bzr for rhel8. - -* Thu Oct 3 2019 Thomas Moschny - 1.18.10-1 -- Update to 1.18.10. - -* Mon Aug 19 2019 Miro Hrončok - 1.18.8-4 -- Rebuilt for Python 3.8 - -* Wed Jul 24 2019 Fedora Release Engineering - 1.18.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.18.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jul 16 2018 Thomas Moschny - 1.18.8-1 -- Update to 1.18.8. -- Update URL: and Source: tags. - -* Fri Jul 13 2018 Fedora Release Engineering - 1.18.7-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 1.18.7-4 -- Rebuilt for Python 3.7 - -* Mon May 14 2018 Thomas Moschny - 1.18.7-3 -- Use correct Requires: for the hostname cmd on EPEL6. - -* Sat Apr 21 2018 Thomas Moschny - 1.18.7-2 -- DNF is no longer available in EPEL7. - -* Sat Apr 21 2018 Thomas Moschny - 1.18.7-1 -- Update to 1.18.7. -- Rebase patches. -- Slightly modernize spec file. -- Update Python dependencies. -- Fix ignore rules (rhbz#1460461). -- Update README.fedora (rhbz#1478655). -- Add missing BRs (rhbz#1418790). -- Add patch to prevent mercurial warnings (rhbz#1480843). - -* Wed Feb 07 2018 Iryna Shcherbina - 1.18.5-7 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Wed Feb 07 2018 Fedora Release Engineering - 1.18.5-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.18.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Thu Jul 13 2017 Petr Pisar - 1.18.5-4 -- perl dependency renamed to perl-interpreter - - -* Fri Feb 10 2017 Fedora Release Engineering - 1.18.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Dec 19 2016 Miro Hrončok - 1.18.5-2 -- Rebuild for Python 3.6 - * Tue Aug 23 2016 Thomas Moschny - 1.18.5-1 - Update to 1.18.5. diff --git a/sources b/sources index 1412813..4aa3c61 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (etckeeper-1.18.22.tar.gz) = e35ab90862c1f4426c17aec4d9ffe5975c652b290645ac333e9f27fcc157b9eba5e0efe73553a400464102c939f085f4e08f4b04564a015ad6941b1d50dbbe76 +c06a5f69cc6d53da6e280e7d9ddafb11 etckeeper-1.18.5.tar.gz