diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..171ced7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/etckeeper_*.tar.gz +/etckeeper-*.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index cc88086..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: etckeeper -# $Id$ -NAME := etckeeper -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/README.fedora b/README.fedora new file mode 100644 index 0000000..04c7011 --- /dev/null +++ b/README.fedora @@ -0,0 +1,21 @@ +*Please* read the included README, so you understand the security +aspects, and how it all works. + +For the impatient: Run + + etckeeper init + etckeeper vcs status + etckeeper vcs commit -m 'msg' + +to get etckeeper started. + +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 +/etc/yum/pluginconf.d/etckeeper.conf. diff --git a/cron.daily b/cron.daily new file mode 100644 index 0000000..eb74401 --- /dev/null +++ b/cron.daily @@ -0,0 +1,8 @@ +#!/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 new file mode 100644 index 0000000..7a74e70 --- /dev/null +++ b/etckeeper-1.18.18-fix-hg-warnings.patch @@ -0,0 +1,34 @@ +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 new file mode 100644 index 0000000..b36af3c --- /dev/null +++ b/etckeeper-1.18.18-fix-output-for-ansible.patch @@ -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 diff --git a/etckeeper-1.18.21-bz2203408.patch b/etckeeper-1.18.21-bz2203408.patch new file mode 100644 index 0000000..537192b --- /dev/null +++ b/etckeeper-1.18.21-bz2203408.patch @@ -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 diff --git a/etckeeper-1.18.7-fix-rpm-ignores.patch b/etckeeper-1.18.7-fix-rpm-ignores.patch new file mode 100644 index 0000000..1cb5fed --- /dev/null +++ b/etckeeper-1.18.7-fix-rpm-ignores.patch @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000..d234bef --- /dev/null +++ b/etckeeper-add-breezy-python3-plugin.patch @@ -0,0 +1,52 @@ +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 new file mode 100644 index 0000000..7ed0de8 --- /dev/null +++ b/etckeeper-makefile-remove-python-plugins.patch @@ -0,0 +1,32 @@ +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 + 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" +- -$(PYTHON) ./etckeeper-dnf/etckeeper.py build || echo "** DNF support not built" + + install: etckeeper.version + mkdir -p $(DESTDIR)$(etcdir)/etckeeper/ $(DESTDIR)$(vardir)/cache/etckeeper/ +@@ -58,14 +55,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 +-ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),dnf) +- -$(PYTHON) ./etckeeper-dnf/etckeeper.py install --root=$(DESTDIR) ${PYTHON_INSTALL_OPTS} || echo "** DNF support not installed" +-endif + ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),zypper) + mkdir -p $(DESTDIR)$(prefix)/lib/zypp/plugins/commit + $(INSTALL) zypper-etckeeper.py $(DESTDIR)$(prefix)/lib/zypp/plugins/commit/zypper-etckeeper.py + endif +- -$(PYTHON) ./etckeeper-bzr/__init__.py install --root=$(DESTDIR) ${PYTHON_INSTALL_OPTS} || echo "** bzr support not installed" + echo "** installation successful" + + clean: etckeeper.spec etckeeper.version diff --git a/etckeeper.actions b/etckeeper.actions new file mode 100644 index 0000000..f654e21 --- /dev/null +++ b/etckeeper.actions @@ -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=/' diff --git a/etckeeper.spec b/etckeeper.spec new file mode 100644 index 0000000..7893c0c --- /dev/null +++ b/etckeeper.spec @@ -0,0 +1,645 @@ +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if 0%{?fedora} +%global with_brz 1 +%global with_dnf5 1 +%endif + +Name: etckeeper +Version: 1.18.22 +Release: 6%{?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 +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 +BuildArch: noarch +BuildRequires: make +BuildRequires: %{_bindir}/markdown_py +Requires: git-core +Requires: perl-interpreter +Requires: crontabs +Requires: findutils +Requires: hostname +Requires: which +Requires: %{name}-dnf = %{version}-%{release} +%if 0%{?with_dnf5} +Requires: %{name}-dnf5 = %{version}-%{release} +%endif # with_dnf5 +BuildRequires: systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%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's +quite modular and configurable, while also being simple to use if you +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 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 +Requires: %{name} = %{version}-%{release} +Requires: brz + +%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 + + +%package dnf +Summary: DNF plugin for etckeeper support +BuildRequires: python3-devel +BuildRequires: python3-dnf +Requires: python3-dnf +BuildRequires: dnf-plugins-core +Requires: %{name} = %{version}-%{release} +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 + + +%prep +%autosetup -p1 +sed -e 's|HIGHLEVEL_PACKAGE_MANAGER=.*|HIGHLEVEL_PACKAGE_MANAGER=dnf|' \ + -e 's|LOWLEVEL_PACKAGE_MANAGER=.*|LOWLEVEL_PACKAGE_MANAGER=rpm|' \ + -i etckeeper.conf +sed -e 's|^prefix=.*|prefix=%{_prefix}|' \ + -e 's|^bindir=.*|bindir=%{_bindir}|' \ + -e 's|^etcdir=.*|etcdir=%{_sysconfdir}|' \ + -e 's|^mandir=.*|mandir=%{_mandir}|' \ + -e 's|^vardir=.*|vardir=%{_localstatedir}|' \ + -e 's|^INSTALL=.*|INSTALL=install -p|' \ + -e 's|^CP=.*|CP=cp -pR|' \ + -e 's|^systemddir=.*|systemddir=%{_unitdir}|' \ + -i Makefile +# 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 + +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_brz} +cd brz-plugin +%pyproject_wheel +cd .. +%endif # with_brz + +cd dnf-plugin +%pyproject_wheel +cd .. + +markdown_py -f README.html README.md + + +%install +%make_install + +%if 0%{?with_brz} +cd brz-plugin +%pyproject_install +cd .. +%endif # with_brz + +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 + %{_bindir}/%{name} update-ignore +fi +%systemd_post %{name}.service +%systemd_post %{name}.timer + + +%preun +%systemd_preun %{name}.service +%systemd_preun %{name}.timer + + +%postun +%systemd_postun %{name}.service +%systemd_postun %{name}.timer + + +%files +%doc README.html README.fedora +%license GPL +%{_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} +%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} +%{_localstatedir}/cache/%{name} +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}.timer + + +%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 + + +%files dnf +%{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 + + +%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. + +* Tue Jul 19 2016 Fedora Release Engineering - 1.18.3-3 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Wed Mar 2 2016 Thomas Moschny - 1.18.3-2 +- Move completion file back to /etc/bash_completion.d on EPEL<7. + +* Mon Feb 22 2016 Thomas Moschny - 1.18.3-1 +- Update to 1.18.3. +- Bash completions have been moved to /usr/share/bash-completion. + +* Wed Feb 3 2016 Thomas Moschny - 1.18.2-4 +- Do not own /etc/bash_completion.d on Fedora and EPEL>=7. +- Drop %%defattr. + +* Wed Feb 03 2016 Fedora Release Engineering - 1.18.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Nov 10 2015 Fedora Release Engineering - 1.18.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Sat Oct 24 2015 Thomas Moschny - 1.18.2-1 +- Update to etckeeper 1.18.2. +- Depend on dnf for F22+ (rhbz#1229131). +- Minor changelog fixes. + +* Wed Jun 17 2015 Fedora Release Engineering - 1.18.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Apr 23 2015 Thomas Moschny - 1.18.1-2 +- Fix HTML generation from markdown (rhbz#1213776). + +* Thu Mar 26 2015 Thomas Moschny - 1.18.1-1 +- Update to 1.18.1. +- Add missing dependency on python3-devel for dnf plugin on F23+. + +* Fri Mar 20 2015 Thomas Moschny - 1.18-1 +- Update to 1.18. +- Update upstream URLs. +- Package DNF plugin. +- Slightly modernize spec file. + +* Thu Dec 18 2014 Thomas Moschny - 1.14-2 +- Disable bzr plugin on epel5. + +* Fri Sep 5 2014 Thomas Moschny - 1.14-1 +- Update to 1.14. + +* Fri Aug 15 2014 Thomas Moschny - 1.13-1 +- Update to 1.13. + +* Sun Jun 22 2014 Thomas Moschny - 1.12-1 +- Update to 1.12. +- Format README.md. + +* Sat Jun 07 2014 Fedora Release Engineering - 1.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Dec 19 2013 Thomas Moschny - 1.11-1 +- Update to 1.11. + +* Sat Nov 9 2013 Thomas Moschny - 1.10-1 +- Update to 1.10. + +* Thu Sep 12 2013 Thomas Moschny - 1.9-1 +- Update to 1.9. + +* Sun Aug 18 2013 Thomas Moschny - 1.7-1 +- Update to 1.7. +- Define (if undefined) and use _pkgdocdir macro (rhbz#993741). + +* Tue Jul 30 2013 Thomas Moschny - 1.6-1 +- Update to 1.6. + +* Sat Jul 27 2013 Thomas Moschny - 1.5-1 +- Update to 1.5. + +* Sat Jul 27 2013 Jóhann B. Guðmundsson - 1.4-2 +- Add a missing requirement on crontabs to spec file + +* Sun Jun 23 2013 Thomas Moschny - 1.4-1 +- Update to 1.4. + +* Fri May 10 2013 Thomas Moschny - 1.3-1 +- Update to 1.3. + +* Wed Feb 13 2013 Fedora Release Engineering - 0.64-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Sep 23 2012 Thomas Moschny - 0.64-1 +- Update to 0.64. + +* Thu Jul 19 2012 Fedora Release Engineering - 0.63-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 4 2012 Thomas Moschny - 0.63-1 +- Update to 0.63. + +* Tue Mar 13 2012 Thomas Moschny - 0.62-2 +- Add missing dependency on perl (bz 798563). + +* Tue Mar 13 2012 Thomas Moschny - 0.62-1 +- Update to 0.62. + +* Tue Jan 17 2012 Thomas Moschny - 0.61-1 +- Update to 0.61. + +* Fri Jan 13 2012 Thomas Moschny - 0.60-1 +- Update to 0.60. + +* Fri Jan 13 2012 Fedora Release Engineering - 0.58-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 1 2011 Thomas Moschny - 0.58-1 +- Update to 0.58. + +* Wed Nov 9 2011 Thomas Moschny - 0.57-1 +- Update to 0.57. + +* Wed Aug 17 2011 Thomas Moschny - 0.56-2 +- Rebuilt for trailing slash bug of rpm-4.9.1 + +* Thu Jul 21 2011 Thomas Moschny - 0.56-1 +- Update to 0.56. + +* Fri Jun 24 2011 Thomas Moschny - 0.55-1 +- Update to 0.55. + +* Wed Jun 1 2011 Thomas Moschny - 0.54-1 +- Update to 0.54. +- Add patch for bz 709487. + +* Mon Mar 28 2011 Thomas Moschny - 0.53-1 +- Update to 0.53. +- Run update-ignore on package upgrade (bz 680632). + +* Wed Feb 9 2011 Thomas Moschny - 0.52-1 +- Update to 0.52. +- Include a README.fedora (bz 670934). + +* Tue Feb 08 2011 Fedora Release Engineering - 0.51-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 3 2011 Thomas Moschny - 0.51-1 +- Update to 0.51. +- etckeeper has been moved out of sbin. + +* Sat Dec 11 2010 Thomas Moschny - 0.50-2 +- Don't package INSTALL. + +* Wed Oct 27 2010 Thomas Moschny - 0.50-1 +- Update to 0.50. +- Change %%define -> %%global. + +* Fri Sep 17 2010 Thomas Moschny - 0.49-2 +- Adjust minimum required version of GIT. +- egg-info files are not created automatically on RHEL5. + +* Wed Sep 15 2010 Thomas Moschny - 0.49-1 +- Update to 0.49. +- Remove obsolete patch. + +* Fri Sep 3 2010 Thomas Moschny - 0.48-1 +- Update to 0.48. +- Don't list /etc/etckeeper/*.d directories twice in %%files. +- Add patch from upstream that fixes bz 588086. + +* Wed Jul 21 2010 David Malcolm - 0.41-2 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Sat Sep 12 2009 Bernie Innocenti - 0.41-1 +- Update to 0.41 +- Add missing directory ownerships + +* Sat Sep 12 2009 Bernie Innocenti - 0.40-3 +- Make the bzr subpackage builddepend on python-devel + +* Wed Sep 09 2009 Terje Rosten - 0.40-2 +- Package is noarch +- Rpmlint clean +- Random cleanup +- Ship cache dir in package +- bzr subpackage +- Add bzr to buildreq + +* Sat Sep 05 2009 Bernie Innocenti - 0.40-1 +- Update to 0.40 + +* Sun Jun 14 2009 Bernie Innocenti - 0.37-1 +- Update to 0.37 +- Change license tag to GPLv2+ + +* Fri Feb 27 2009 Jimmy Tang - 0.33-4 +- fix up initial install to make directory in /var/cache/etckeeper +- install the etckeeper daily cron job +- define some config files that shouldn't be replaced, should the hooks +in commit.d, init.d etc... saved and not blown away? if so they can +defined as config files. etckeeper should record the changes anyway. + +* Wed Feb 25 2009 Jimmy Tang - 0.32-1 +- yum etckeeper plugin is now apart of this package + +* Tue Feb 24 2009 Jimmy Tang - 0.31-1 +- initial package diff --git a/sources b/sources index e69de29..1412813 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (etckeeper-1.18.22.tar.gz) = e35ab90862c1f4426c17aec4d9ffe5975c652b290645ac333e9f27fcc157b9eba5e0efe73553a400464102c939f085f4e08f4b04564a015ad6941b1d50dbbe76