2 # - Subpackages for yum and apt plugins
3 # - Subpackages for backends (git, etc)
4 Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs)
9 Group: Applications/System
10 Source0: https://github.com/joeyh/etckeeper/archive/%{version}.tar.gz
11 # Source0-md5: d2e12ccdbc01fb4a48d9ea39990215fd
13 Patch1: use-libdir.patch
14 Patch2: update-ignore.patch
15 URL: http://kitenet.net/~joey/code/etckeeper/
17 BuildRequires: rpm-pythonprov
18 BuildRequires: rpmbuild(macros) >= 1.219
19 BuildRequires: sed >= 4.0
25 %if "%{pld_release}" != "ac"
26 Requires: poldek >= 0.30.0-1.rc7.4
29 Suggests: bash-completion-%{name}
30 Suggests: git-core >= 1.6.1-1
31 Obsoletes: yum-etckeeper
32 %if "%{pld_release}" != "ac"
35 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 %if "%{pld_release}" != "ac"
38 %define _poldeklibdir %{_prefix}/lib/poldek
40 %define _poldeklibdir %{_libdir}/poldek
44 The etckeeper program is a tool to let /etc be stored in a git,
45 mercurial, bzr or darcs repository. It hooks into APT to automatically
46 commit changes made to /etc during package upgrades. It tracks file
47 metadata that version control systems do not normally support, but
48 that is important for /etc, such as the permissions of /etc/shadow.
49 It's quite modular and configurable, while also being simple to use if
50 you understand the basics of working with version control.
52 The default backend is git, if want to use a another backend please
53 install the appropriate tool (mercurial, darcs or bzr). To use bzr as
54 backend, please also install the %{name}-bzr package.
56 To start using the package please read
57 %{_docdir}/%{name}-%{version}/README
60 Summary: Support for bzr with etckeeper
61 Group: Applications/System
62 Requires: %{name} = %{version}-%{release}
66 This package provides a bzr backend for etckeeper, if you want to use
67 etckeeper with bzr backend, install this package.
69 %package -n bash-completion-%{name}
70 Summary: Bash completion routines for %{name}
71 Group: Applications/Shells
72 Requires: %{name} = %{version}-%{release}
73 Requires: bash-completion
74 Obsoletes: etckeeper-bash-completions
76 %description -n bash-completion-%{name}
77 Bash completion routines for etckeeper.
84 s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
85 s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
88 # cleanup backups after patching
89 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
95 rm -rf $RPM_BUILD_ROOT
96 install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
99 LOWLEVEL_PACKAGE_MANAGER=rpm \
100 HIGHLEVEL_PACKAGE_MANAGER=poldek \
101 INSTALL="install -p" \
102 DESTDIR=$RPM_BUILD_ROOT
104 mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
105 mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
107 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
108 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
110 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
111 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
115 rm -rf $RPM_BUILD_ROOT
118 if [ $1 -gt 1 ]; then
119 %{_bindir}/%{name} update-ignore
123 # add our hook as "pm command"
124 if [ -f /etc/poldek/poldek.conf ] && ! grep -q '^pm command = %{_poldeklibdir}/%{name}.sh' /etc/poldek/poldek.conf; then
125 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_poldeklibdir}/%{name}.sh,' /etc/poldek/poldek.conf
129 # remove our hook as "pm command"
130 if [ "$1" -eq 0 ] && [ -f /etc/poldek/poldek.conf ]; then
131 %{__sed} -i -re 's,^pm command = %{_poldeklibdir}/%{name}.sh,#&,' /etc/poldek/poldek.conf
135 %defattr(644,root,root,755)
136 %doc INSTALL TODO README
137 %dir %{_sysconfdir}/%{name}
138 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
140 %dir /lib/%{name}/*.d
141 %attr(755,root,root) /lib/%{name}/*.d/[0-9]*
142 /lib/%{name}/*.d/README
143 %attr(755,root,root) /etc/cron.daily/%{name}
144 %attr(755,root,root) %{_bindir}/%{name}
145 %{_mandir}/man8/%{name}.8*
146 %attr(755,root,root) %{_poldeklibdir}/%{name}.sh
147 %dir %attr(750,root,root) %{_localstatedir}/cache/%{name}
150 %defattr(644,root,root,755)
151 %dir %{py_sitescriptdir}/bzrlib
152 %dir %{py_sitescriptdir}/bzrlib/plugins
153 %dir %{py_sitescriptdir}/bzrlib/plugins/%{name}
154 %{py_sitescriptdir}/bzrlib/plugins/%{name}/*.py[co]
155 %if "%{pld_release}" != "ac"
156 %{py_sitescriptdir}/bzr_etckeeper-*.egg-info
159 %files -n bash-completion-%{name}
160 %defattr(644,root,root,755)
161 %{_sysconfdir}/bash_completion.d/%{name}