2 # - Subpackages for yum and apt plugins
3 # - Subpackages for backends (darcs, git, hg)
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}/%{name}-%{version}.tar.gz
11 # Source0-md5: a89a6d4afb92d0a5a64b60f693fe64f9
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
24 %if "%{pld_release}" != "ac"
25 Requires: poldek >= 0.30.0-1.rc7.4
28 Suggests: bash-completion-%{name}
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.
83 s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
84 s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
87 # cleanup backups after patching
88 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
94 rm -rf $RPM_BUILD_ROOT
95 install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
98 LOWLEVEL_PACKAGE_MANAGER=rpm \
99 HIGHLEVEL_PACKAGE_MANAGER=poldek \
100 INSTALL="install -p" \
101 DESTDIR=$RPM_BUILD_ROOT
103 mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
104 mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
106 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
107 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
109 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
110 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
114 rm -rf $RPM_BUILD_ROOT
117 if [ $1 -gt 1 ]; then
118 %{_bindir}/%{name} update-ignore
122 # add our hook as "pm command"
123 if [ -f /etc/poldek/poldek.conf ] && ! grep -q '^pm command = %{_poldeklibdir}/%{name}.sh' /etc/poldek/poldek.conf; then
124 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_poldeklibdir}/%{name}.sh,' /etc/poldek/poldek.conf
128 # remove our hook as "pm command"
129 if [ "$1" -eq 0 ] && [ -f /etc/poldek/poldek.conf ]; then
130 %{__sed} -i -re 's,^pm command = %{_poldeklibdir}/%{name}.sh,#&,' /etc/poldek/poldek.conf
134 %defattr(644,root,root,755)
135 %doc INSTALL TODO README
136 %dir %{_sysconfdir}/%{name}
137 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
139 %dir /lib/%{name}/*.d
140 %attr(755,root,root) /lib/%{name}/*.d/[0-9]*
141 /lib/%{name}/*.d/README
142 %attr(755,root,root) /etc/cron.daily/%{name}
143 %attr(755,root,root) %{_bindir}/%{name}
144 %{_mandir}/man8/%{name}.8*
145 %attr(755,root,root) %{_poldeklibdir}/%{name}.sh
146 %dir %attr(750,root,root) %{_localstatedir}/cache/%{name}
149 %exclude /lib/etckeeper/commit.d/30bzr-add
152 %defattr(644,root,root,755)
153 /lib/etckeeper/commit.d/30bzr-add
154 %dir %{py_sitescriptdir}/bzrlib
155 %dir %{py_sitescriptdir}/bzrlib/plugins
156 %dir %{py_sitescriptdir}/bzrlib/plugins/%{name}
157 %{py_sitescriptdir}/bzrlib/plugins/%{name}/*.py[co]
158 %if "%{pld_release}" != "ac"
159 %{py_sitescriptdir}/bzr_etckeeper-*.egg-info
162 %files -n bash-completion-%{name}
163 %defattr(644,root,root,755)
164 %{_sysconfdir}/bash_completion.d/%{name}