Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs)
Name: etckeeper
Version: 1.1
-Release: 0.21
+Release: 0.25
License: GPL v2+
Group: Applications/System
Source0: http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{version}.tar.gz
# Source0-md5: 280f75205940f99f8f0295bb8ec3598f
Source1: poldek.sh
Patch0: type-mksh.patch
+Patch1: use-libdir.patch
URL: http://kitenet.net/~joey/code/etckeeper/
BuildRequires: bzr
BuildRequires: rpm-pythonprov
mv %{name} .tmp
mv .tmp/* .
%patch0 -p1
+%patch1 -p1
%{__sed} -i -e '
s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
+install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
%{__make} install \
+ etcdir=/lib \
LOWLEVEL_PACKAGE_MANAGER=rpm \
HIGHLEVEL_PACKAGE_MANAGER=poldek \
INSTALL="install -p" \
DESTDIR=$RPM_BUILD_ROOT
+mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
+mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
+
install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
%doc INSTALL TODO README
%dir %{_sysconfdir}/%{name}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
-%dir %{_sysconfdir}/%{name}/*.d
-%attr(755,root,root) %{_sysconfdir}/%{name}/*.d/[0-9]*
-%{_sysconfdir}/%{name}/*.d/README
-
+%dir /lib/%{name}
+%dir /lib/%{name}/*.d
+%attr(755,root,root) /lib/%{name}/*.d/[0-9]*
+/lib/%{name}/*.d/README
%attr(755,root,root) /etc/cron.daily/%{name}
%attr(755,root,root) %{_bindir}/%{name}
-%attr(755,root,root) %{_poldeklibdir}/%{name}.sh
%{_mandir}/man8/%{name}.8*
-
+%attr(755,root,root) %{_poldeklibdir}/%{name}.sh
%dir %attr(750,root,root) %{_localstatedir}/cache/%{name}
%files bzr
--- /dev/null
+--- etckeeper-1.1/etckeeper 2012-12-28 18:09:51.000000000 +0200
++++ etckeeper-1.1/etckeeper 2013-05-07 13:05:25.000000000 +0300
+@@ -1,6 +1,10 @@
+ #!/bin/sh
+ set -e
+
++if [ -z "$ETCKEEPER_LIB_DIR" ]; then
++ ETCKEEPER_LIB_DIR=/lib/etckeeper
++fi
++
+ if [ -z "$ETCKEEPER_CONF_DIR" ]; then
+ ETCKEEPER_CONF_DIR=/etc/etckeeper
+ fi
+@@ -71,8 +75,8 @@
+ command=pre-install
+ fi
+
+-if [ ! -d "$ETCKEEPER_CONF_DIR/$command.d" ]; then
+- echo "etckeeper: $ETCKEEPER_CONF_DIR/$command.d does not exist" >&2
++if [ ! -d "$ETCKEEPER_LIB_DIR/$command.d" ] && [ ! -d "$ETCKEEPER_CONF_DIR/$command.d" ]; then
++ echo "etckeeper: "$ETCKEEPER_LIB_DIR/$command.d" nor $ETCKEEPER_CONF_DIR/$command.d does not exist" >&2
+ exit 1
+ fi
+
+@@ -109,13 +113,14 @@
+
+ lsscripts() {
+ perl -e '
+- $dir=shift;
++ for $dir (@ARGV) {
+ print join "\n", grep { ! -d $_ && -x $_ }
+ grep /^\Q$dir\/\E[-a-zA-Z0-9]+$/,
+ glob "$dir/*";
+- ' "$1"
++ }
++ ' "$@"
+ }
+
+-for script in $(lsscripts "$ETCKEEPER_CONF_DIR/$command.d"); do
+- "$script" "$@"
++for script in $(lsscripts "$ETCKEEPER_LIB_DIR/$command.d" "$ETCKEEPER_CONF_DIR/$command.d"); do
++ "$script" "$@"
+ done