Compare commits
18 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fca22b11f | ||
|
|
3ba7c6cafc | ||
|
|
b0c51ba48d | ||
|
|
fd12d98901 | ||
|
|
fb5a96460b | ||
|
|
a155b18fd2 | ||
|
|
7e8650ff96 | ||
|
|
3413ffada9 | ||
|
|
23c7d7b6e5 | ||
|
|
ec9a74382f | ||
|
|
cc1985118b | ||
|
|
c5b58d564d | ||
|
|
4c64fcc5f0 | ||
|
|
5244985ead | ||
|
|
601adf7ddb | ||
|
|
ee57611c03 | ||
|
|
dff014d992 | ||
|
|
9d8abcaa58 |
12 changed files with 825 additions and 21 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/etckeeper_*.tar.gz
|
||||
/etckeeper-*.tar.gz
|
||||
21
Makefile
21
Makefile
|
|
@ -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)
|
||||
21
README.fedora
Normal file
21
README.fedora
Normal file
|
|
@ -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.
|
||||
8
cron.daily
Normal file
8
cron.daily
Normal file
|
|
@ -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
|
||||
34
etckeeper-1.18.18-fix-hg-warnings.patch
Normal file
34
etckeeper-1.18.18-fix-hg-warnings.patch
Normal file
|
|
@ -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
|
||||
52
etckeeper-1.18.18-fix-output-for-ansible.patch
Normal file
52
etckeeper-1.18.18-fix-output-for-ansible.patch
Normal 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
|
||||
14
etckeeper-1.18.7-fix-rpm-ignores.patch
Normal file
14
etckeeper-1.18.7-fix-rpm-ignores.patch
Normal file
|
|
@ -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"
|
||||
52
etckeeper-add-breezy-python3-plugin.patch
Normal file
52
etckeeper-add-breezy-python3-plugin.patch
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
From b5919d7919dda614c3c3c76ba126f45e205494bd Mon Sep 17 00:00:00 2001
|
||||
From: Dimitri John Ledkov <xnox@ubuntu.com>
|
||||
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"})
|
||||
32
etckeeper-makefile-remove-python-plugins.patch
Normal file
32
etckeeper-makefile-remove-python-plugins.patch
Normal file
|
|
@ -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
|
||||
609
etckeeper.spec
Normal file
609
etckeeper.spec
Normal file
|
|
@ -0,0 +1,609 @@
|
|||
%{!?_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
|
||||
%endif
|
||||
|
||||
Name: etckeeper
|
||||
Version: 1.18.22
|
||||
Release: 1%{?dist}
|
||||
Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs)
|
||||
License: GPLv2+
|
||||
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
|
||||
# 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
|
||||
BuildArch: noarch
|
||||
BuildRequires: %{_bindir}/markdown_py
|
||||
Requires: git-core
|
||||
Requires: perl-interpreter
|
||||
Requires: crontabs
|
||||
Requires: findutils
|
||||
Requires: hostname
|
||||
Requires: which
|
||||
%if 0%{?dnf_is_mandatory}
|
||||
Requires: %{name}-dnf = %{version}-%{release}
|
||||
%endif # dnf_is_mandatory
|
||||
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).
|
||||
%{?bazaar: To use bazaar/breezy as backend, please also install the %{name}-%{bazaar} 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)
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: (python3-setuptools if python3-devel >= 3.12)
|
||||
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
|
||||
%if 0%{?dnf_uses_python3}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: (python3-setuptools if python3-devel >= 3.12)
|
||||
%else
|
||||
BuildRequires: python2-devel
|
||||
%endif # dnf_uses_python3
|
||||
BuildRequires: dnf
|
||||
BuildRequires: dnf-plugins-core
|
||||
BuildRequires: make
|
||||
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.
|
||||
|
||||
|
||||
%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}|' \
|
||||
-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 bzr-plugin ; mv etckeeper-bzr bzr-plugin
|
||||
mkdir brz-plugin ; mv etckeeper-brz brz-plugin
|
||||
mkdir dnf-plugin ; mv etckeeper-dnf dnf-plugin
|
||||
cp -av %{SOURCE1} .
|
||||
|
||||
|
||||
%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
|
||||
%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
|
||||
|
||||
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
|
||||
%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
|
||||
|
||||
install -D -p %{SOURCE2} %{buildroot}%{_sysconfdir}/cron.daily/%{name}
|
||||
install -d %{buildroot}%{_localstatedir}/cache/%{name}
|
||||
|
||||
|
||||
%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}
|
||||
%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
|
||||
# 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}-*.egg-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
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jul 15 2025 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.22-1
|
||||
- Update to 1.18.22.
|
||||
|
||||
* Sat Jan 28 2023 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.20-1
|
||||
- Update to 1.18.20.
|
||||
|
||||
* 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.
|
||||
|
||||
* Tue Mar 8 2022 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.17-1
|
||||
- Update to 1.18.17.
|
||||
|
||||
* Wed Feb 16 2022 Todd Zullinger <tmz@pobox.com> - 1.18.16-6
|
||||
- Require git-core instead of git
|
||||
|
||||
* Mon Jan 31 2022 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.16-5
|
||||
- Exclude egg-info directories for dnf, bzr and brz plugins (#2048085).
|
||||
|
||||
* Tue Feb 9 2021 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.16-1
|
||||
- Update to 1.18.16.
|
||||
- Update spec file, remove obsolete conditionals.
|
||||
|
||||
* Sat Mar 14 2020 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.14-1
|
||||
- Update to 1.18.14.
|
||||
- Include zsh completion.
|
||||
- Mark cron file as config file.
|
||||
|
||||
* Sun Dec 1 2019 Thomas Moschny <thomas.moschny@gmx.de> - 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 <thomas.moschny@gmx.de> - 1.18.10-6
|
||||
- Add patch to fix logging with Ansible (#1762693).
|
||||
|
||||
* Fri Nov 01 2019 Miro Hrončok <mhroncok@redhat.com> - 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 <thomas.moschny@gmx.de> - 1.18.10-4
|
||||
- Package fixes for CentOS8.
|
||||
- Build dnf plugin on CentOS7.
|
||||
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.18.10-3
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Thu Oct 3 2019 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.10-2
|
||||
- There is currently no bzr for rhel8.
|
||||
|
||||
* Thu Oct 3 2019 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.10-1
|
||||
- Update to 1.18.10.
|
||||
|
||||
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.18.8-4
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.8-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.8-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Jul 16 2018 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.8-1
|
||||
- Update to 1.18.8.
|
||||
- Update URL: and Source: tags.
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.7-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.18.7-4
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Mon May 14 2018 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.7-3
|
||||
- Use correct Requires: for the hostname cmd on EPEL6.
|
||||
|
||||
* Sat Apr 21 2018 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.7-2
|
||||
- DNF is no longer available in EPEL7.
|
||||
|
||||
* Sat Apr 21 2018 Thomas Moschny <thomas.moschny@gmx.de> - 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 <ishcherb@redhat.com> - 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 <releng@fedoraproject.org> - 1.18.5-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.5-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Jul 13 2017 Petr Pisar <ppisar@redhat.com> - 1.18.5-4
|
||||
- perl dependency renamed to perl-interpreter
|
||||
<https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.5-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 1.18.5-2
|
||||
- Rebuild for Python 3.6
|
||||
|
||||
* Tue Aug 23 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.5-1
|
||||
- Update to 1.18.5.
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.18.3-3
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Wed Mar 2 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.3-2
|
||||
- Move completion file back to /etc/bash_completion.d on EPEL<7.
|
||||
|
||||
* Mon Feb 22 2016 Thomas Moschny <thomas.moschny@gmx.de> - 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 <thomas.moschny@gmx.de> - 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 <releng@fedoraproject.org> - 1.18.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.18.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
|
||||
|
||||
* Sat Oct 24 2015 Thomas Moschny <thomas.moschny@gmx.de> - 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 <rel-eng@lists.fedoraproject.org> - 1.18.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Thu Apr 23 2015 Thomas Moschny <thomas.moschny@gmx.de> - 1.18.1-2
|
||||
- Fix HTML generation from markdown (rhbz#1213776).
|
||||
|
||||
* Thu Mar 26 2015 Thomas Moschny <thomas.moschny@gmx.de> - 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 <thomas.moschny@gmx.de> - 1.18-1
|
||||
- Update to 1.18.
|
||||
- Update upstream URLs.
|
||||
- Package DNF plugin.
|
||||
- Slightly modernize spec file.
|
||||
|
||||
* Thu Dec 18 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.14-2
|
||||
- Disable bzr plugin on epel5.
|
||||
|
||||
* Fri Sep 5 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.14-1
|
||||
- Update to 1.14.
|
||||
|
||||
* Fri Aug 15 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.13-1
|
||||
- Update to 1.13.
|
||||
|
||||
* Sun Jun 22 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.12-1
|
||||
- Update to 1.12.
|
||||
- Format README.md.
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Thu Dec 19 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.11-1
|
||||
- Update to 1.11.
|
||||
|
||||
* Sat Nov 9 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.10-1
|
||||
- Update to 1.10.
|
||||
|
||||
* Thu Sep 12 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.9-1
|
||||
- Update to 1.9.
|
||||
|
||||
* Sun Aug 18 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.7-1
|
||||
- Update to 1.7.
|
||||
- Define (if undefined) and use _pkgdocdir macro (rhbz#993741).
|
||||
|
||||
* Tue Jul 30 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.6-1
|
||||
- Update to 1.6.
|
||||
|
||||
* Sat Jul 27 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.5-1
|
||||
- Update to 1.5.
|
||||
|
||||
* Sat Jul 27 2013 Jóhann B. Guðmundsson <johannbg@fedoraproject.org> - 1.4-2
|
||||
- Add a missing requirement on crontabs to spec file
|
||||
|
||||
* Sun Jun 23 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.4-1
|
||||
- Update to 1.4.
|
||||
|
||||
* Fri May 10 2013 Thomas Moschny <thomas.moschny@gmx.de> - 1.3-1
|
||||
- Update to 1.3.
|
||||
|
||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.64-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Sun Sep 23 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.64-1
|
||||
- Update to 0.64.
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.63-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Mon Jun 4 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.63-1
|
||||
- Update to 0.63.
|
||||
|
||||
* Tue Mar 13 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.62-2
|
||||
- Add missing dependency on perl (bz 798563).
|
||||
|
||||
* Tue Mar 13 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.62-1
|
||||
- Update to 0.62.
|
||||
|
||||
* Tue Jan 17 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.61-1
|
||||
- Update to 0.61.
|
||||
|
||||
* Fri Jan 13 2012 Thomas Moschny <thomas.moschny@gmx.de> - 0.60-1
|
||||
- Update to 0.60.
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.58-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Thu Dec 1 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.58-1
|
||||
- Update to 0.58.
|
||||
|
||||
* Wed Nov 9 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.57-1
|
||||
- Update to 0.57.
|
||||
|
||||
* Wed Aug 17 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.56-2
|
||||
- Rebuilt for trailing slash bug of rpm-4.9.1
|
||||
|
||||
* Thu Jul 21 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.56-1
|
||||
- Update to 0.56.
|
||||
|
||||
* Fri Jun 24 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.55-1
|
||||
- Update to 0.55.
|
||||
|
||||
* Wed Jun 1 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.54-1
|
||||
- Update to 0.54.
|
||||
- Add patch for bz 709487.
|
||||
|
||||
* Mon Mar 28 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.53-1
|
||||
- Update to 0.53.
|
||||
- Run update-ignore on package upgrade (bz 680632).
|
||||
|
||||
* Wed Feb 9 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.52-1
|
||||
- Update to 0.52.
|
||||
- Include a README.fedora (bz 670934).
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.51-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Mon Jan 3 2011 Thomas Moschny <thomas.moschny@gmx.de> - 0.51-1
|
||||
- Update to 0.51.
|
||||
- etckeeper has been moved out of sbin.
|
||||
|
||||
* Sat Dec 11 2010 Thomas Moschny <thomas.moschny@gmx.de> - 0.50-2
|
||||
- Don't package INSTALL.
|
||||
|
||||
* Wed Oct 27 2010 Thomas Moschny <thomas.moschny@gmx.de> - 0.50-1
|
||||
- Update to 0.50.
|
||||
- Change %%define -> %%global.
|
||||
|
||||
* Fri Sep 17 2010 Thomas Moschny <thomas.moschny@gmx.de> - 0.49-2
|
||||
- Adjust minimum required version of GIT.
|
||||
- egg-info files are not created automatically on RHEL5.
|
||||
|
||||
* Wed Sep 15 2010 Thomas Moschny <thomas.moschny@gmx.de> - 0.49-1
|
||||
- Update to 0.49.
|
||||
- Remove obsolete patch.
|
||||
|
||||
* Fri Sep 3 2010 Thomas Moschny <thomas.moschny@gmx.de> - 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 <dmalcolm@redhat.com> - 0.41-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||
|
||||
* Sat Sep 12 2009 Bernie Innocenti <bernie@codewiz.org> - 0.41-1
|
||||
- Update to 0.41
|
||||
- Add missing directory ownerships
|
||||
|
||||
* Sat Sep 12 2009 Bernie Innocenti <bernie@codewiz.org> - 0.40-3
|
||||
- Make the bzr subpackage builddepend on python-devel
|
||||
|
||||
* Wed Sep 09 2009 Terje Rosten <terje.rosten@ntnu.no> - 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 <bernie@codewiz.org> - 0.40-1
|
||||
- Update to 0.40
|
||||
|
||||
* Sun Jun 14 2009 Bernie Innocenti <bernie@codewiz.org> - 0.37-1
|
||||
- Update to 0.37
|
||||
- Change license tag to GPLv2+
|
||||
|
||||
* Fri Feb 27 2009 Jimmy Tang <jtang@tchpc.tcd.ie> - 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 <jtang@tchpc.tcd.ie> - 0.32-1
|
||||
- yum etckeeper plugin is now apart of this package
|
||||
|
||||
* Tue Feb 24 2009 Jimmy Tang <jtang@tchpc.tcd.ie> - 0.31-1
|
||||
- initial package
|
||||
1
sources
1
sources
|
|
@ -0,0 +1 @@
|
|||
SHA512 (etckeeper-1.18.22.tar.gz) = e35ab90862c1f4426c17aec4d9ffe5975c652b290645ac333e9f27fcc157b9eba5e0efe73553a400464102c939f085f4e08f4b04564a015ad6941b1d50dbbe76
|
||||
Loading…
Add table
Add a link
Reference in a new issue