--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils prefix python-r1
+
+DESCRIPTION="A collection of tools to let /etc be stored in a repository"
+HOMEPAGE="https://etckeeper.branchable.com/"
+SRC_URI="https://github.com/joeyh/etckeeper/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~arm ~x86"
+SLOT="0"
+IUSE="bazaar cron"
+REQUIRED_USE="bazaar? ( ${PYTHON_REQUIRED_USE} )"
+
+VCS_DEPEND="dev-vcs/git
+ dev-vcs/mercurial
+ dev-vcs/darcs"
+DEPEND="bazaar? ( dev-vcs/bzr )"
+RDEPEND="${DEPEND}
+ app-portage/portage-utils
+ cron? ( virtual/cron )
+ bazaar? ( ${PYTHON_DEPS} )
+ !bazaar? ( || ( ${VCS_DEPEND} ) )"
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+src_compile() {
+ :
+}
+
+src_install(){
+ emake DESTDIR="${ED}" install
+
+ bzr_install() {
+ ${PYTHON} ./${PN}-bzr/__init__.py install --root="${ED}" ||
+ die "bzr support installation failed!"
+ }
+ use bazaar && python_foreach_impl bzr_install
+
+ if use prefix; then
+ doenvd "${FILESDIR}"/99${PN}
+ eprefixify "${ED%/}"/etc/env.d/99${PN}
+ fi
+
+ dodoc doc/README.mdwn
+ docinto examples
+ newdoc "${FILESDIR}"/bashrc-r1 bashrc
+
+ if use cron ; then
+ exeinto /etc/cron.daily
+ newexe debian/cron.daily etckeeper
+ fi
+}
+
+pkg_postinst(){
+ elog "${PN} supports the following VCS: ${VCS_DEPEND}"
+ elog " dev-vcs/bzr"
+ elog "This ebuild just ensures at least one is installed!"
+ elog "For dev-vcs/bzr you need to enable 'bazaar' useflag."
+ elog
+ elog "You may want to adjust your /etc/portage/bashrc"
+ elog "see the example file in /usr/share/doc/${PF}/examples"
+ elog
+ elog "To initialise your etc-dir as a repository run:"
+ elog "${PN} init -d /etc"
+}
--- /dev/null
+From 026fa7c012a8c44cadfa56f605c0671639a6b04c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu>
+Date: Tue, 16 Feb 2016 00:19:07 +0100
+Subject: [PATCH] Support Gentoo's package managers
+
+
+diff --git a/Makefile b/Makefile
+index 70bddfa..6090a4e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -58,7 +58,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 0d268bd..81214c7 100644
+--- a/etckeeper.conf
++++ b/etckeeper.conf
+@@ -31,11 +31,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 129447f..79d67f2 100755
+--- a/list-installed.d/50list-installed
++++ b/list-installed.d/50list-installed
+@@ -21,5 +21,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 7347287..5dbb398 100755
+--- a/update-ignore.d/01update-ignore
++++ b/update-ignore.d/01update-ignore
+@@ -99,6 +99,10 @@ writefile () {
+ ignore "*.pacorig"
+ ignore "*.pacsave"
+ 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.7.1
+