--- /dev/null
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 prefix systemd tmpfiles
+
+DESCRIPTION="A collection of tools to let /etc be stored in a repository"
+HOMEPAGE="https://etckeeper.branchable.com/"
+SRC_URI="https://git.joeyh.name/index.cgi/etckeeper.git/snapshot/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+SLOT="0"
+IUSE="cron test"
+
+BDEPEND="test? (
+ dev-util/bats
+ dev-vcs/git
+)"
+
+RDEPEND="app-portage/portage-utils
+ cron? ( virtual/cron )
+ || (
+ dev-vcs/git
+ dev-vcs/mercurial
+ dev-vcs/darcs
+ )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.18.14-gentoo.patch )
+
+src_prepare() {
+ default
+ hprefixify *.d/* etckeeper
+ sed -i \
+ -e s'@zsh/vendor-completions@zsh/site-functions@' \
+ -e s"@/lib/systemd/system@"$(systemd_get_systemunitdir)"@" \
+ Makefile || die
+ rm -v init.d/60darcs-deleted-symlinks || die
+}
+
+src_compile() {
+ :
+}
+
+src_install(){
+ emake DESTDIR="${ED}" install
+
+ doenvd "$(prefixify_ro "${FILESDIR}"/99${PN})"
+
+ newbashcomp bash_completion ${PN}
+ dodoc doc/README.mdwn
+ newdoc "${FILESDIR}"/bashrc-r1 bashrc.example
+
+ rm -rv "${ED}/var/cache" || die
+ newtmpfiles "${FILESDIR}/${PN}".tmpfilesd "${PN}".conf
+
+ if use cron ; then
+ exeinto /etc/cron.daily
+ newexe debian/cron.daily etckeeper
+ fi
+}
+
+pkg_postinst(){
+ tmpfiles_process "${PN}.conf"
+
+ elog "${PN} supports git, mercurial and darcs"
+ elog "This ebuild just ensures at least one is installed!"
+ elog
+ elog "You may want to adjust your /etc/portage/bashrc"
+ elog "see the example file in /usr/share/doc/${PF}"
+ elog
+ elog "To initialise your etc-dir as a repository run:"
+ elog "${PN} init -d /etc"
+}
--- /dev/null
+From 46e299da6914962007fb540a401a68a17d00bca3 Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Sun, 26 Jan 2020 23:24:54 -0800
+Subject: [PATCH] 1.18.14-gentoo
+
+---
+ Makefile | 1 -
+ etckeeper.conf | 14 ++++++++++++--
+ list-installed.d/50list-installed | 4 ++++
+ update-ignore.d/01update-ignore | 4 ++++
+ 4 files changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 73d2411..ffcf218 100644
+--- a/Makefile
++++ b/Makefile
+@@ -68,7 +68,6 @@ 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.conf b/etckeeper.conf
+index f13de1c..16ff71d 100644
+--- a/etckeeper.conf
++++ b/etckeeper.conf
+@@ -33,11 +33,21 @@ DARCS_COMMIT_OPTIONS="-a"
+
+ # The high-level package manager that's being used.
+ # (apt, pacman, pacman-g2, yum, dnf, zypper, apk etc)
+-HIGHLEVEL_PACKAGE_MANAGER=apt
++#HIGHLEVEL_PACKAGE_MANAGER=apt
++
++# Gentoo specific:
++# For portage this is emerge
++# For paludis this is cave
++HIGHLEVEL_PACKAGE_MANAGER=emerge
+
+ # The low-level package manager that's being used.
+ # (dpkg, rpm, pacman, pacmatic, pacman-g2, apk etc)
+-LOWLEVEL_PACKAGE_MANAGER=dpkg
++#LOWLEVEL_PACKAGE_MANAGER=dpkg
++
++# Gentoo specific:
++# For portage this is qlist
++# For paludis this is cave
++LOWLEVEL_PACKAGE_MANAGER=qlist
+
+ # To push each commit to a remote, put the name of the remote here.
+ # (eg, "origin" for git). Space-separated lists of multiple remotes
+diff --git a/list-installed.d/50list-installed b/list-installed.d/50list-installed
+index d89b8ce..2db838d 100755
+--- a/list-installed.d/50list-installed
++++ b/list-installed.d/50list-installed
+@@ -23,5 +23,9 @@ else
+ pkg info -E "*"
+ elif [ "$LOWLEVEL_PACKAGE_MANAGER" = apk ]; then
+ apk info -v | sort
++ elif [ "$LOWLEVEL_PACKAGE_MANAGER" = qlist ]; then
++ qlist -ICv
++ elif [ "$LOWLEVEL_PACKAGE_MANAGER" = cave ]; then
++ cave print-packages -r installed
+ fi
+ fi
+diff --git a/update-ignore.d/01update-ignore b/update-ignore.d/01update-ignore
+index 8733a85..53afbde 100755
+--- a/update-ignore.d/01update-ignore
++++ b/update-ignore.d/01update-ignore
+@@ -103,6 +103,10 @@ writefile () {
+ comment "new versions of conffiles, stored by apk"
+ ignore "*.apk-new"
+ nl
++ elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "qlist" -o "$LOWLEVEL_PACKAGE_MANAGER" = "cave" ]; then
++ comment "new and old versions of conffiles, stored by emerge"
++ ignore "._cfg*"
++ nl
+ fi
+
+ comment "old versions of files"
+--
+2.25.0
+