Compare commits

...
Sign in to create a new pull request.

29 commits

Author SHA1 Message Date
Python Maint
c99b0692f0 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:15:49 +02:00
Python Maint
1753022904 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:46:18 +02:00
Fedora Release Engineering
308dfc9c2a Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 20:09:54 +00:00
Thomas Moschny
fa46cc7b0c Fix conditional. 2025-07-15 12:50:14 +02:00
Thomas Moschny
5c5e2591b2 Update action file to produce expected action output. 2025-07-15 11:27:31 +02:00
Thomas Moschny
b0bd45069e Add missing source file. 2025-07-14 22:41:21 +02:00
Thomas Moschny
cb78c6e477 Add support for DNF5 (rhbz#2326283). 2025-07-14 22:29:52 +02:00
Thomas Moschny
e0589d4bdf Update for current Python packaging guidelines (rhbz#2377253). 2025-07-14 22:29:24 +02:00
Thomas Moschny
9bb9852468 Remove all EL7-related conditionals and parts. 2025-07-14 22:29:17 +02:00
Thomas Moschny
79b07d68a8 Update to 1.18.22. 2025-06-29 20:29:30 +02:00
Python Maint
4958724e4d Rebuilt for Python 3.14 2025-06-03 15:25:40 +02:00
Fedora Release Engineering
fde6b6dbd9 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 17:32:22 +00:00
Miroslav Suchý
922d9a0613 convert GPLv2+ license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-07-25 23:42:02 +02:00
Fedora Release Engineering
c40275ea18 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 22:29:26 +00:00
Python Maint
4482a1283a Rebuilt for Python 3.13 2024-06-07 22:43:55 +02:00
Thomas Moschny
589409b24c Merged PR#6. 2024-05-01 20:59:58 +02:00
Evan Goode
f01b9f8030 Depend on python3-dnf, not dnf
DNF is being replaced by a new package manager, DNF 5, in Fedora 39+.
The `dnf` package will soon be obsoleted by the `dnf5` package. The old
DNF 4 library functionality will still be (and always has been)
available under the `python3-dnf` package; the `dnf` package only
provides `/usr/bin/dnf`.

Eventually, etckeeper should switch to using libdnf5.
2024-05-01 18:23:43 +00:00
Thomas Moschny
d1ea1e7de6 Add patch for rhbz#2203408 from pr#7. 2024-05-01 19:37:41 +02:00
Thomas Moschny
7daca89518 Update to 1.18.21. 2024-05-01 19:02:47 +02:00
Fedora Release Engineering
a5bc565075 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 10:55:18 +00:00
Fedora Release Engineering
42f89e1794 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 18:39:10 +00:00
Python Maint
02c3e185a7 Rebuilt for Python 3.12 2023-07-25 12:22:02 +02:00
Fedora Release Engineering
87aff6b5d0 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 19:02:32 +00:00
Thomas Moschny
c9ab258fe6 Update to 1.18.20. 2023-01-28 10:13:06 +01:00
Fedora Release Engineering
1b9858c84c Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 02:49:56 +00:00
Thomas Moschny
271a95d1f0 Update to 1.18.18.
Rebase patches.
Update patch to fix logging with Ansible (#1917461).
BuilRequire setuptools when Python >= 3.12.
2022-12-03 12:11:17 +01:00
Miro Hrončok
7a7d0e9726 BuilRequire setuptools when Python >= 3.12
The dnf and brz setups use distutils.
Python 3.12 removes distutils,
but setuptools can provide it instead.
2022-10-21 12:01:10 +02:00
Fedora Release Engineering
c1c0ae2a94 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 02:32:53 +00:00
Python Maint
b4e7dcf856 Rebuilt for Python 3.11 2022-06-15 18:25:29 +02:00
7 changed files with 216 additions and 281 deletions

View file

@ -1,162 +0,0 @@
From 8266a4fb45621e08085c58537a531f33fc7eca74 Mon Sep 17 00:00:00 2001
From: Alan Jenkins <alan.christopher.jenkins@gmail.com>
Date: Wed, 10 Apr 2019 00:19:14 +0100
Subject: [PATCH 1/2] DNF: stderr is not ours to log to (and doing so breaks
Ansible)
stderr does not belong to etckeeper-dnf
---------------------------------------
The Ansible dnf module uses the python dnf bindings. In contexts like
these, stdout/stderr is owned by the host app (Ansible). dnf should not
mess with stdout/stderr, unless the host app asks it to log there.
Specifically, we were breaking the JSON output of the Ansible dnf module.
This was only noticeable when the etckeeper message began with a "["
character. Ansible has a mechanism to try and skip header messages like
login banners. However, "[" is a valid character to start a JSON document.
https://unix.stackexchange.com/questions/511210/ansible-dnf-module-module-failure/
Solution
--------
Instead, log any non-zero exit status through the dnf logger.
For the pre-transaction etckeeper run, this message replaces an exception.
So we now avoid logging a traceback, which did not appear to add anything
useful. (In my testing, dnf was continued to install after the exception
was logged).
I have also added a warning message for the post-transaction etckeeper run.
I switched from os.system() to subprocess.call(). The latter interface
supports better error reporting. (When I tested os.system(), it returned
an errno number which was indistinguishable from an exit code).
etckeeper >/dev/null 2>&1
--------------------------
Any specific error messages from etckeeper are now discarded. Because
unfortunately, python conventions about passing text strings have been
somewhat unclear. It is an error to log strings if the encoding settings
of a registered logger cannot handle them. Because a "bad" character
causes the entire string to be discarded, and optionally an exception
printed to stderr. In a previous proposal I showed code that should be
correct in all expected cases. However, the length of comment required to
define "all expected cases" was not very reassuring.
That was on top of explaining that dnf has a workaround that will avoid
raising exceptions when arbitrary unicode is logged to stdout. My proposal
had to include that explanation, to show that we were not breaking a
system package manager.
It might sound strange to talk about error messages with characters
we cannot encode. But I have one word for you: "filenames".
(After the recent python PR #14008[1], logging.basicConfig() defaults
to errors='backslashreplace'. Also, errors= can be manually specified when
creating a lower-level logging "Handler". I think this will resolve the
problem in the future. It means that when programs are written for this
new version of python, it should be the responsibility of the log setup
code to prevent UnicodeEncodeError.)
[1] https://github.com/python/cpython/pull/14008
---
etckeeper-dnf/etckeeper.py | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/etckeeper-dnf/etckeeper.py b/etckeeper-dnf/etckeeper.py
index e8a1a51..69edd88 100644
--- a/etckeeper-dnf/etckeeper.py
+++ b/etckeeper-dnf/etckeeper.py
@@ -9,7 +9,7 @@
from dnfpluginscore import logger
-import os
+import subprocess
import dnf
@@ -17,20 +17,25 @@ 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:
+ logger.warning('"etckeeper %s" failed (exit code %d)' % (command, ret))
+ if ret < 0:
+ logger.warning('"etckeeper %s" died (signal %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
--
2.23.0
From 7cda9678b1e60c0495a2a522721b319843d5fae0 Mon Sep 17 00:00:00 2001
From: Alan Jenkins <alan.christopher.jenkins@gmail.com>
Date: Tue, 23 Apr 2019 20:15:01 +0100
Subject: [PATCH 2/2] Do not use dnfpluginscore.logger
dnfpluginscore is not core support for dnf plugins, it is just a
collection of "core plugins" for dnf. There is equally
dnfpluginsextras and dnfpluginsextras.logger.
A comment in dnf.logger comment says the logger name 'dnf.plugin' is "api".
So we can safely rely on that name.
Technically you can install etckeeper without the dnfpluginscore package
(at least I managed to run into this for python2, on a Fedora 29 system
which uses python3 for dnf by default).
---
etckeeper-dnf/etckeeper.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/etckeeper-dnf/etckeeper.py b/etckeeper-dnf/etckeeper.py
index 69edd88..d9dd2c3 100644
--- a/etckeeper-dnf/etckeeper.py
+++ b/etckeeper-dnf/etckeeper.py
@@ -7,11 +7,12 @@
# Distutils code below was copied from etckeeper-bzr distributed with v1.15
#
-from dnfpluginscore import logger
-
+import logging
import subprocess
import dnf
+logger = logging.getLogger('dnf.plugin')
+
class Etckeeper(dnf.Plugin):
--
2.23.0

View file

@ -1,5 +1,5 @@
diff --git a/pre-commit.d/20warn-problem-files b/pre-commit.d/20warn-problem-files
index 6bd5c2b..7899268 100755
index 43320e4..7899268 100755
--- a/pre-commit.d/20warn-problem-files
+++ b/pre-commit.d/20warn-problem-files
@@ -1,19 +1,20 @@
@ -7,7 +7,7 @@ index 6bd5c2b..7899268 100755
set -e
-exclude_internal () {
- egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
- 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

View file

@ -0,0 +1,52 @@
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

View file

@ -0,0 +1,11 @@
--- 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

4
etckeeper.actions Normal file
View file

@ -0,0 +1,4 @@
# 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=/'

View file

@ -1,41 +1,36 @@
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
%if 0%{?rhel} && 0%{?rhel} <= 7
%global with_yum 1
%global with_bzr 1
%global bazaar bzr
%endif
%if 0%{?fedora}
%global with_brz 1
%global bazaar brz
%endif
%if 0%{?fedora} || 0%{?rhel} >= 8
%global dnf_is_mandatory 1
%global dnf_uses_python3 1
%global with_dnf5 1
%endif
Name: etckeeper
Version: 1.18.17
Release: 1%{?dist}
Version: 1.18.22
Release: 6%{?dist}
Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs)
License: GPLv2+
# 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
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.7-fix-hg-warnings.patch
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
Patch4: etckeeper-1.18.12-fix-output-for-ansible.patch
# 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
BuildArch: noarch
BuildRequires: make
BuildRequires: %{_bindir}/markdown_py
Requires: git-core
Requires: perl-interpreter
@ -43,9 +38,10 @@ Requires: crontabs
Requires: findutils
Requires: hostname
Requires: which
%if 0%{?dnf_is_mandatory}
Requires: %{name}-dnf = %{version}-%{release}
%endif # dnf_is_mandatory
%if 0%{?with_dnf5}
Requires: %{name}-dnf5 = %{version}-%{release}
%endif # with_dnf5
BuildRequires: systemd
Requires(post): systemd
Requires(preun): systemd
@ -62,25 +58,11 @@ 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).
%{?bazaar: To use bazaar/breezy as backend, please also install the %{name}-%{bazaar} package.}
%{?with_brz: To use breezy as bzr backend, please also install the %{name}-brz package.}
To start using the package please read %{_pkgdocdir}/README.
%if 0%{?with_bzr}
%package bzr
Summary: Support for bzr with etckeeper
BuildRequires: python2-devel
BuildRequires: bzr
Requires: %{name} = %{version}-%{release}
Requires: bzr
%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_brz}
%package brz
Summary: Support for bzr with etckeeper (via breezy)
@ -97,16 +79,11 @@ etckeeper with (bzr) bazaar repositories, install this package.
%package dnf
Summary: DNF plugin for etckeeper support
%if 0%{?dnf_uses_python3}
BuildRequires: python3-devel
%else
BuildRequires: python2-devel
%endif # dnf_uses_python3
BuildRequires: dnf
BuildRequires: python3-dnf
Requires: python3-dnf
BuildRequires: dnf-plugins-core
BuildRequires: make
Requires: %{name} = %{version}-%{release}
Requires: dnf
Requires: dnf-plugins-core
%description dnf
@ -114,15 +91,22 @@ 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
%prep
%autosetup -p1
%if 0%{?with_yum}
# 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|' \
%else
sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=dnf|' \
%endif # with_yum
-e 's|LOWLEVEL_PACKAGE_MANAGER=.*|LOWLEVEL_PACKAGE_MANAGER=rpm|' \
-i etckeeper.conf
sed -e 's|^prefix=.*|prefix=%{_prefix}|' \
@ -136,37 +120,41 @@ sed -e 's|^prefix=.*|prefix=%{_prefix}|' \
-i Makefile
# move each plugin in its own subdirectory, so each has its own build/
# directory
mkdir bzr-plugin ; mv etckeeper-bzr bzr-plugin
mkdir brz-plugin ; mv etckeeper-brz brz-plugin
mkdir dnf-plugin ; mv etckeeper-dnf dnf-plugin
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
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
%if 0%{?with_bzr}
pushd bzr-plugin
%define py_setup etckeeper-bzr/__init__.py
%py2_build
popd
%endif # with_bzr
%if 0%{?with_brz}
pushd brz-plugin
%define py_setup etckeeper-brz/__init__.py
%py3_build
popd
cd brz-plugin
%pyproject_wheel
cd ..
%endif # with_brz
pushd dnf-plugin
%define py_setup etckeeper-dnf/etckeeper.py build
%if 0%{?dnf_uses_python3}
%py3_build
%else
%py2_build
%endif # dnf_uses_python3
popd
cd dnf-plugin
%pyproject_wheel
cd ..
markdown_py -f README.html README.md
@ -174,37 +162,23 @@ markdown_py -f README.html README.md
%install
%make_install
%if 0%{?with_bzr}
pushd bzr-plugin
%define py_setup etckeeper-bzr/__init__.py
%py2_install
popd
%endif # with_bzr
%if 0%{?with_brz}
pushd brz-plugin
%define py_setup etckeeper-brz/__init__.py
%py3_install
popd
cd brz-plugin
%pyproject_install
cd ..
%endif # with_brz
pushd dnf-plugin
%define py_setup etckeeper-dnf/etckeeper.py build
%if 0%{?dnf_uses_python3}
%py3_install
%else
%py2_install
%endif # dnf_uses_python3
popd
%if 0%{?dnf_is_mandatory}
sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=dnf|' \
-i %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
%endif # dnf_is_mandatory
cd dnf-plugin
%pyproject_install
cd ..
install -D -p %{SOURCE2} %{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
%post
if [ $1 -gt 1 ] ; then
@ -240,25 +214,11 @@ fi
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/vendor-completions
%{_datadir}/zsh/vendor-completions/_%{name}
%if 0%{?with_yum}
%dir %{_prefix}/lib/yum-plugins
%{_prefix}/lib/yum-plugins/%{name}.*
%dir %{_sysconfdir}/yum/pluginconf.d
%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/%{name}.conf
%endif # with_yum
%{_localstatedir}/cache/%{name}
%{_unitdir}/%{name}.service
%{_unitdir}/%{name}.timer
%if 0%{?with_bzr}
%files bzr
%{python2_sitelib}/bzrlib/plugins/%{name}
# exclude egg-info dir, doesn't contain meaningful information
%exclude %{python2_sitelib}/bzr_%{name}-*.egg-info
%endif # with_bzr
%if 0%{?with_brz}
%files brz
# co-own the plugins directories
@ -267,27 +227,97 @@ fi
%dir %{python3_sitelib}/breezy/plugins/
%{python3_sitelib}/breezy/plugins/%{name}/
# exclude egg-info dir, doesn't contain meaningful information
%exclude %{python3_sitelib}/brz_%{name}-*.egg-info
%exclude %{python3_sitelib}/brz_%{name}-*.dist-info
%endif # with_brz
%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}-*.egg-info
%else
%{python2_sitelib}/dnf-plugins/%{name}.py*
%exclude %{python2_sitelib}/dnf-plugins/__init__.py*
# exclude egg-info dir, doesn't contain meaningful information
%exclude %{python2_sitelib}/dnf_%{name}-*.egg-info
%endif # dnf_uses_python3
%exclude %{python3_sitelib}/dnf_%{name}-*.dist-info
%if 0%{?with_dnf5}
%files dnf5
%{_sysconfdir}/dnf/libdnf5-plugins/actions.d/%{name}.actions
%endif # with_dnf5
%changelog
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 1.18.22-6
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 1.18.22-5
- Rebuilt for Python 3.14.0rc2 bytecode
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.22-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jul 15 2025 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.22-3
- Fix conditional.
* Tue Jul 15 2025 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.22-2
- Update action file to produce expected action output.
* Mon Jul 14 2025 Thomas Moschny <thomas.moschny@gmx.de> - 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 <python-maint@redhat.com> - 1.18.21-6
- Rebuilt for Python 3.14
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.21-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 25 2024 Miroslav Suchý <msuchy@redhat.com> - 1.18.21-4
- convert license to SPDX
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.21-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.18.21-2
- Rebuilt for Python 3.13
* Wed May 1 2024 Thomas Moschny <thomas.moschny@gmx.de> - 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 <releng@fedoraproject.org> - 1.18.20-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.20-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Jul 25 2023 Python Maint <python-maint@redhat.com> - 1.18.20-3
- Rebuilt for Python 3.12
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.20-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 28 2023 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.20-1
- Update to 1.18.20.
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Dec 2 2022 Thomas Moschny <thomas.moschny@gmx.de> - 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 <releng@fedoraproject.org> - 1.18.17-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 1.18.17-2
- Rebuilt for Python 3.11
* Tue Mar 8 2022 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.17-1
- Update to 1.18.17.

View file

@ -1 +1 @@
SHA512 (etckeeper-1.18.17.tar.gz) = 6e75d0f38c8d27ba290ab6e1a51d50ca7a736c958da7a1edb792a5c7f1eedd4848adbb43571425f127bf2c5fe39d5b7887968b09178ca5385ec0abeaeb6cfa00
SHA512 (etckeeper-1.18.22.tar.gz) = e35ab90862c1f4426c17aec4d9ffe5975c652b290645ac333e9f27fcc157b9eba5e0efe73553a400464102c939f085f4e08f4b04564a015ad6941b1d50dbbe76