]> git.pld-linux.org Git - packages/etckeeper.git/blob - etckeeper.spec
ignore rc-scripts.mo
[packages/etckeeper.git] / etckeeper.spec
1 # TODO:
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)
5 Name:           etckeeper
6 Version:        1.3
7 Release:        0.29
8 License:        GPL v2+
9 Group:          Applications/System
10 Source0:        https://github.com/joeyh/etckeeper/archive/%{version}.tar.gz
11 # Source0-md5:  d2e12ccdbc01fb4a48d9ea39990215fd
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 Requires:       which
25 %if "%{pld_release}" != "ac"
26 Requires:       poldek >= 0.30.0-1.rc7.4
27 %endif
28 Suggests:       %{name}-bzr
29 Suggests:       bash-completion-%{name}
30 Suggests:       git-core >= 1.6.1-1
31 Obsoletes:      yum-etckeeper
32 %if "%{pld_release}" != "ac"
33 BuildArch:      noarch
34 %endif
35 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36
37 %if "%{pld_release}" != "ac"
38 %define         _poldeklibdir   %{_prefix}/lib/poldek
39 %else
40 %define         _poldeklibdir   %{_libdir}/poldek
41 %endif
42
43 %description
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.
51
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.
55
56 To start using the package please read
57 %{_docdir}/%{name}-%{version}/README
58
59 %package bzr
60 Summary:        Support for bzr with etckeeper
61 Group:          Applications/System
62 Requires:       %{name} = %{version}-%{release}
63 Requires:       bzr
64
65 %description bzr
66 This package provides a bzr backend for etckeeper, if you want to use
67 etckeeper with bzr backend, install this package.
68
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
75
76 %description -n bash-completion-%{name}
77 Bash completion routines for etckeeper.
78
79 %prep
80 %setup -q
81 %patch1 -p1
82 %patch2 -p1
83 %{__sed} -i -e '
84         s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
85         s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
86 ' %{name}.conf
87
88 # cleanup backups after patching
89 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
90
91 %build
92 %{__make}
93
94 %install
95 rm -rf $RPM_BUILD_ROOT
96 install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
97 %{__make} install \
98         etcdir=/lib \
99         LOWLEVEL_PACKAGE_MANAGER=rpm \
100         HIGHLEVEL_PACKAGE_MANAGER=poldek \
101         INSTALL="install -p" \
102         DESTDIR=$RPM_BUILD_ROOT
103
104 mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
105 mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
106
107 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
108 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
109
110 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
111 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
112 %py_postclean
113
114 %clean
115 rm -rf $RPM_BUILD_ROOT
116
117 %post
118 if [ $1 -gt 1 ]; then
119         %{_bindir}/%{name} update-ignore
120 fi
121
122 %triggerin -- poldek
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
126 fi
127
128 %triggerun -- poldek
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
132 fi
133
134 %files
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
139 %dir /lib/%{name}
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}
148
149 %files bzr
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
157 %endif
158
159 %files -n bash-completion-%{name}
160 %defattr(644,root,root,755)
161 %{_sysconfdir}/bash_completion.d/%{name}
This page took 0.079715 seconds and 3 git commands to generate.