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: http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{version}.tar.gz
11 # Source0-md5: 280f75205940f99f8f0295bb8ec3598f
13 Patch0: type-mksh.patch
14 Patch1: use-libdir.patch
15 URL: http://kitenet.net/~joey/code/etckeeper/
17 BuildRequires: rpm-pythonprov
18 BuildRequires: rpmbuild(macros) >= 1.219
19 BuildRequires: sed >= 4.0
24 %if "%{pld_release}" != "ac"
25 Requires: poldek >= 0.30.0-1.rc7.4
27 Suggests: %{name}-bash-completions
29 Suggests: git-core >= 1.6.1-1
30 Obsoletes: yum-etckeeper
31 %if "%{pld_release}" != "ac"
34 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36 %if "%{pld_release}" != "ac"
37 %define _poldeklibdir %{_prefix}/lib/poldek
39 %define _poldeklibdir %{_libdir}/poldek
43 The etckeeper program is a tool to let /etc be stored in a git,
44 mercurial, bzr or darcs repository. It hooks into APT to automatically
45 commit changes made to /etc during package upgrades. It tracks file
46 metadata that version control systems do not normally support, but
47 that is important for /etc, such as the permissions of /etc/shadow.
48 It's quite modular and configurable, while also being simple to use if
49 you understand the basics of working with version control.
51 The default backend is git, if want to use a another backend please
52 install the appropriate tool (mercurial, darcs or bzr). To use bzr as
53 backend, please also install the %{name}-bzr package.
55 To start using the package please read
56 %{_docdir}/%{name}-%{version}/README
59 Summary: Support for bzr with etckeeper
60 Group: Applications/System
61 Requires: %{name} = %{version}-%{release}
65 This package provides a bzr backend for etckeeper, if you want to use
66 etckeeper with bzr backend, install this package.
68 %package -n bash-completion-%{name}
69 Summary: Bash completion routines for %{name}
70 Group: Applications/Shells
71 Requires: %{name} = %{version}-%{release}
72 Requires: bash-completion
73 Obsoletes: etckeeper-bash-completions
75 %description -n bash-completion-%{name}
76 Bash completion routines for etckeeper.
85 s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
86 s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
89 # cleanup backups after patching
90 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
96 rm -rf $RPM_BUILD_ROOT
97 install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
100 LOWLEVEL_PACKAGE_MANAGER=rpm \
101 HIGHLEVEL_PACKAGE_MANAGER=poldek \
102 INSTALL="install -p" \
103 DESTDIR=$RPM_BUILD_ROOT
105 mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
106 mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
108 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
109 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
111 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
112 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
116 rm -rf $RPM_BUILD_ROOT
119 if [ $1 -gt 1 ]; then
120 %{_bindir}/%{name} update-ignore
124 # add our hook as "pm command"
125 if [ -f /etc/poldek/poldek.conf ] && ! grep -q '^pm command = %{_poldeklibdir}/%{name}.sh' /etc/poldek/poldek.conf; then
126 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_poldeklibdir}/%{name}.sh,' /etc/poldek/poldek.conf
130 # remove our hook as "pm command"
131 if [ "$1" -eq 0 ] && [ -f /etc/poldek/poldek.conf ]; then
132 %{__sed} -i -re 's,^pm command = %{_poldeklibdir}/%{name}.sh,#&,' /etc/poldek/poldek.conf
136 %defattr(644,root,root,755)
137 %doc INSTALL TODO README
138 %dir %{_sysconfdir}/%{name}
139 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
141 %dir /lib/%{name}/*.d
142 %attr(755,root,root) /lib/%{name}/*.d/[0-9]*
143 /lib/%{name}/*.d/README
144 %attr(755,root,root) /etc/cron.daily/%{name}
145 %attr(755,root,root) %{_bindir}/%{name}
146 %{_mandir}/man8/%{name}.8*
147 %attr(755,root,root) %{_poldeklibdir}/%{name}.sh
148 %dir %attr(750,root,root) %{_localstatedir}/cache/%{name}
151 %defattr(644,root,root,755)
152 %dir %{py_sitescriptdir}/bzrlib
153 %dir %{py_sitescriptdir}/bzrlib/plugins
154 %dir %{py_sitescriptdir}/bzrlib/plugins/%{name}
155 %{py_sitescriptdir}/bzrlib/plugins/%{name}/*.py[co]
156 %if "%{pld_release}" != "ac"
157 %{py_sitescriptdir}/bzr_etckeeper-*.egg-info
160 %files -n bash-completion-%{name}
161 %defattr(644,root,root,755)
162 %{_sysconfdir}/bash_completion.d/%{name}