]> git.pld-linux.org Git - packages/etckeeper.git/blob - etckeeper.spec
ignore chef encrypted data bag secret
[packages/etckeeper.git] / etckeeper.spec
1 # TODO:
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)
5 Name:           etckeeper
6 Version:        1.10
7 Release:        1
8 License:        GPL v2+
9 Group:          Applications/System
10 Source0:        https://github.com/joeyh/etckeeper/archive/%{version}/%{name}-%{version}.tar.gz
11 # Source0-md5:  a89a6d4afb92d0a5a64b60f693fe64f9
12 Source1:        poldek.sh
13 Patch1:         use-libdir.patch
14 Patch2:         update-ignore.patch
15 URL:            http://kitenet.net/~joey/code/etckeeper/
16 BuildRequires:  bzr
17 BuildRequires:  rpm-pythonprov
18 BuildRequires:  rpmbuild(macros) >= 1.219
19 BuildRequires:  sed >= 4.0
20 Requires:       findutils
21 Requires:       mktemp
22 Requires:       perl-base
23 Requires:       sed >= 4.0
24 %if "%{pld_release}" != "ac"
25 Requires:       poldek >= 0.30.0-1.rc7.4
26 %endif
27 Suggests:       %{name}-bzr
28 Suggests:       bash-completion-%{name}
29 Suggests:       git-core >= 1.6.1-1
30 Obsoletes:      yum-etckeeper
31 %if "%{pld_release}" != "ac"
32 BuildArch:      noarch
33 %endif
34 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35
36 %if "%{pld_release}" != "ac"
37 %define         _poldeklibdir   %{_prefix}/lib/poldek
38 %else
39 %define         _poldeklibdir   %{_libdir}/poldek
40 %endif
41
42 %description
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.
50
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.
54
55 To start using the package please read
56 %{_docdir}/%{name}-%{version}/README
57
58 %package bzr
59 Summary:        Support for bzr with etckeeper
60 Group:          Applications/System
61 Requires:       %{name} = %{version}-%{release}
62 Requires:       bzr
63
64 %description bzr
65 This package provides a bzr backend for etckeeper, if you want to use
66 etckeeper with bzr backend, install this package.
67
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
74
75 %description -n bash-completion-%{name}
76 Bash completion routines for etckeeper.
77
78 %prep
79 %setup -q
80 %patch1 -p1
81 %patch2 -p1
82 %{__sed} -i -e '
83         s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
84         s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
85 ' %{name}.conf
86
87 # cleanup backups after patching
88 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
89
90 %build
91 %{__make}
92
93 %install
94 rm -rf $RPM_BUILD_ROOT
95 install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
96 %{__make} install \
97         etcdir=/lib \
98         LOWLEVEL_PACKAGE_MANAGER=rpm \
99         HIGHLEVEL_PACKAGE_MANAGER=poldek \
100         INSTALL="install -p" \
101         DESTDIR=$RPM_BUILD_ROOT
102
103 mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
104 mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
105
106 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
107 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
108
109 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
110 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
111 %py_postclean
112
113 %clean
114 rm -rf $RPM_BUILD_ROOT
115
116 %post
117 if [ $1 -gt 1 ]; then
118         %{_bindir}/%{name} update-ignore
119 fi
120
121 %triggerin -- poldek
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
125 fi
126
127 %triggerun -- poldek
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
131 fi
132
133 %files
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
138 %dir /lib/%{name}
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}
147
148 # subpackages
149 %exclude /lib/etckeeper/commit.d/30bzr-add
150
151 %files bzr
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
160 %endif
161
162 %files -n bash-completion-%{name}
163 %defattr(644,root,root,755)
164 %{_sysconfdir}/bash_completion.d/%{name}
This page took 0.268513 seconds and 3 git commands to generate.