1 |
%if %{?fedora}%{?rhel} >= 5 |
2 |
%define useselinux 1 |
3 |
%else |
4 |
%define useselinux 0 |
5 |
%endif |
6 |
|
7 |
Name: BackupPC |
8 |
Version: 3.1.0 |
9 |
Release: 3%{?dist} |
10 |
Summary: BackupPC - high-performance backup system |
11 |
|
12 |
Group: Applications/System |
13 |
License: GPLv2+ |
14 |
URL: http://backuppc.sourceforge.net/ |
15 |
Source0: http://dl.sourceforge.net/backuppc/%{name}-%{version}.tar.gz |
16 |
Source1: BackupPC.htaccess |
17 |
Source2: BackupPC.logrotate |
18 |
Source3: BackupPC-README.fedora |
19 |
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) |
20 |
BuildArch: noarch |
21 |
|
22 |
BuildRequires: /bin/cat |
23 |
BuildRequires: /bin/df |
24 |
BuildRequires: /bin/gtar |
25 |
BuildRequires: %{_bindir}/nmblookup |
26 |
BuildRequires: %{_bindir}/rsync |
27 |
BuildRequires: %{_sbindir}/sendmail |
28 |
BuildRequires: %{_bindir}/smbclient |
29 |
BuildRequires: %{_bindir}/split |
30 |
BuildRequires: %{_bindir}/ssh |
31 |
BuildRequires: perl(Compress::Zlib) |
32 |
|
33 |
Requires: httpd |
34 |
Requires: perl-suidperl |
35 |
Requires: perl(File::RsyncP) |
36 |
Requires: perl(Compress::Zlib) |
37 |
Requires: perl(Archive::Zip) |
38 |
Requires: perl-Time-modules |
39 |
Requires: perl(XML::RSS) |
40 |
Requires: rsync |
41 |
Requires: samba-client |
42 |
Requires(pre): %{_sbindir}/useradd |
43 |
Requires(preun): initscripts, chkconfig |
44 |
Requires(post): initscripts, chkconfig, %{_sbindir}/usermod |
45 |
Requires(postun): initscripts |
46 |
%if %{useselinux} |
47 |
Requires: policycoreutils |
48 |
BuildRequires: selinux-policy-devel, checkpolicy |
49 |
%endif |
50 |
Provides: backuppc = %{version} |
51 |
|
52 |
%description |
53 |
BackupPC is a high-performance, enterprise-grade system for backing up Linux |
54 |
and WinXX PCs and laptops to a server's disk. BackupPC is highly configurable |
55 |
and easy to install and maintain. |
56 |
|
57 |
%prep |
58 |
%setup -q |
59 |
sed -i "s|\"backuppc\"|\"$LOGNAME\"|g" configure.pl |
60 |
iconv -f ISO-8859-1 -t UTF-8 ChangeLog > ChangeLog.utf && mv ChangeLog.utf ChangeLog |
61 |
pushd doc |
62 |
iconv -f ISO-8859-1 -t UTF-8 BackupPC.pod > BackupPC.pod.utf && mv BackupPC.pod.utf BackupPC.pod |
63 |
iconv -f ISO-8859-1 -t UTF-8 BackupPC.html > BackupPC.html.utf && mv BackupPC.html.utf BackupPC.html |
64 |
popd |
65 |
cp %{SOURCE3} README.fedora |
66 |
|
67 |
%if %{useselinux} |
68 |
%{__mkdir} selinux |
69 |
pushd selinux |
70 |
|
71 |
cat >%{name}.te <<EOF |
72 |
policy_module(%{name},0.0.3) |
73 |
require { |
74 |
type var_log_t; |
75 |
type httpd_t; |
76 |
class sock_file write; |
77 |
type initrc_t; |
78 |
class unix_stream_socket connectto; |
79 |
type ssh_exec_t; |
80 |
type ping_exec_t; |
81 |
type sendmail_exec_t; |
82 |
class file getattr; |
83 |
type httpd_sys_content_t; |
84 |
class sock_file getattr; |
85 |
} |
86 |
|
87 |
allow httpd_t httpd_sys_content_t:sock_file write; |
88 |
allow httpd_t initrc_t:unix_stream_socket connectto; |
89 |
allow httpd_t ping_exec_t:file getattr; |
90 |
allow httpd_t sendmail_exec_t:file getattr; |
91 |
allow httpd_t ssh_exec_t:file getattr; |
92 |
allow httpd_t httpd_sys_content_t:sock_file getattr; |
93 |
EOF |
94 |
|
95 |
cat >%{name}.fc <<EOF |
96 |
%{_sysconfdir}/%{name} system_u:object_r:httpd_sys_content_t:s0 |
97 |
%{_sysconfdir}/%{name}/pc system_u:object_r:httpd_sys_script_rw_t:s0 |
98 |
%{_sysconfdir}/%{name}/config.pl system_u:object_r:httpd_sys_content_t:s0 |
99 |
%{_sysconfdir}/%{name}/hosts system_u:object_r:httpd_sys_content_t:s0 |
100 |
%{_localstatedir}/log/%{name} system_u:object_r:httpd_sys_content_t:s0 |
101 |
EOF |
102 |
%endif |
103 |
|
104 |
%build |
105 |
%if %{useselinux} |
106 |
# SElinux |
107 |
pushd selinux |
108 |
make -f %{_datadir}/selinux/devel/Makefile |
109 |
popd |
110 |
%endif |
111 |
|
112 |
|
113 |
|
114 |
%install |
115 |
rm -rf $RPM_BUILD_ROOT |
116 |
perl configure.pl \ |
117 |
--batch \ |
118 |
--dest-dir $RPM_BUILD_ROOT \ |
119 |
--config-dir %{_sysconfdir}/%{name}/ \ |
120 |
--cgi-dir %{_datadir}/%{name}/sbin/ \ |
121 |
--data-dir %{_localstatedir}/lib/%{name}/ \ |
122 |
--html-dir %{_datadir}/%{name}/html/ \ |
123 |
--html-dir-url /%{name}/images \ |
124 |
--log-dir %{_localstatedir}/log/%{name} \ |
125 |
--install-dir %{_datadir}/%{name} \ |
126 |
--hostname localhost \ |
127 |
--uid-ignore |
128 |
|
129 |
for f in `find $RPM_BUILD_ROOT` |
130 |
do |
131 |
if [ -f $f ] |
132 |
then |
133 |
sed -i s,$LOGNAME,backuppc,g $f |
134 |
fi |
135 |
done |
136 |
sed -i s,$LOGNAME,backuppc,g init.d/linux-backuppc |
137 |
|
138 |
%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir} |
139 |
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/ |
140 |
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ |
141 |
%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{name} |
142 |
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pc |
143 |
|
144 |
%{__cp} init.d/linux-backuppc $RPM_BUILD_ROOT%{_initrddir}/backuppc |
145 |
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{name}.conf |
146 |
%{__cp} %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name} |
147 |
|
148 |
%{__chmod} 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/* |
149 |
%{__chmod} 755 $RPM_BUILD_ROOT%{_initrddir}/backuppc |
150 |
|
151 |
sed -i 's/^\$Conf{XferMethod}\ =.*/$Conf{XferMethod} = "rsync";/' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.pl |
152 |
sed -i 's|^\$Conf{CgiURL}\ =.*|$Conf{CgiURL} = "http://localhost/BackupPC";|' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.pl |
153 |
|
154 |
%if %{useselinux} |
155 |
# SElinux |
156 |
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name} |
157 |
%{__install} -m644 selinux/%{name}.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name}/%{name}.pp |
158 |
%endif |
159 |
|
160 |
|
161 |
%clean |
162 |
rm -rf $RPM_BUILD_ROOT |
163 |
|
164 |
|
165 |
%pre |
166 |
%{_sbindir}/useradd -d %{_localstatedir}/lib/%{name} -r -s /sbin/nologin backuppc 2> /dev/null || : |
167 |
|
168 |
|
169 |
%preun |
170 |
if [ $1 = 0 ]; then |
171 |
service backuppc stop > /dev/null 2>&1 || : |
172 |
chkconfig --del backuppc || : |
173 |
fi |
174 |
|
175 |
%post |
176 |
%if %{useselinux} |
177 |
# Install/update Selinux policy |
178 |
semodule -i %{_datadir}/selinux/packages/%{name}/%{name}.pp |
179 |
# files owned by RPM |
180 |
fixfiles -R %{name} restore |
181 |
# files created by app |
182 |
restorecon -R %{_sysconfdir}/%{name} |
183 |
restorecon -R %{_localstatedir}/lib/%{name} |
184 |
restorecon -R %{_localstatedir}/log/%{name} |
185 |
%endif |
186 |
chkconfig --add backuppc || : |
187 |
service httpd condrestart > /dev/null 2>&1 || : |
188 |
#%{_sbindir}/usermod -a -G backuppc apache || : |
189 |
|
190 |
|
191 |
%postun |
192 |
service httpd condrestart > /dev/null 2>&1 || : |
193 |
%if %{useselinux} |
194 |
if [ "$1" -eq "0" ]; then |
195 |
# Remove the SElinux policy. |
196 |
semodule -r %{name} || : |
197 |
fi |
198 |
%endif |
199 |
|
200 |
|
201 |
%files |
202 |
%defattr(-,root,root,-) |
203 |
%doc README README.fedora ChangeLog LICENSE doc/ |
204 |
|
205 |
%dir %attr(-,backuppc,backuppc) %{_localstatedir}/log/%{name} |
206 |
%dir %attr(-,backuppc,backuppc) %{_sysconfdir}/%{name}/ |
207 |
|
208 |
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf |
209 |
%config(noreplace) %attr(-,backuppc,backuppc) %{_sysconfdir}/%{name}/* |
210 |
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} |
211 |
|
212 |
%dir %{_datadir}/%{name} |
213 |
%dir %{_datadir}/%{name}/sbin |
214 |
%{_datadir}/%{name}/[^s]* |
215 |
%{_initrddir}/backuppc |
216 |
|
217 |
%attr(4750,backuppc,root) %{_datadir}/%{name}/sbin/BackupPC_Admin |
218 |
%attr(-,backuppc,root) %{_localstatedir}/lib/%{name}/ |
219 |
|
220 |
%if %{useselinux} |
221 |
%{_datadir}/selinux/packages/%{name}/%{name}.pp |
222 |
%endif |
223 |
|
224 |
%changelog |
225 |
* Tue Dec 09 2008 Daniel B <daniel@firewall-services.com> 3.1.0-3 |
226 |
- Small changes for SME Server (apache -> www) |
227 |
|
228 |
* Sat Apr 05 2008 Johan Cwiklinski <johan AT x-tnd DOT be> 3.1.0-2 |
229 |
- correcting nologin path |
230 |
|
231 |
* Thu Nov 29 2007 Johan Cwiklinski <johan AT x-tnd DOT be> 3.1.0-1 |
232 |
- New upstream version |
233 |
- Added samba-client as a dependency |
234 |
- Added readme.fedora |
235 |
- Changed CGI admin path in default config file |
236 |
|
237 |
* Fri Sep 21 2007 Johan Cwiklinski <johan AT x-tnd DOT be> 3.0.0-3 |
238 |
- Fixed SELinux policy module |
239 |
|
240 |
* Wed Sep 12 2007 Johan Cwiklinski <johan AT x-tnd DOT be> 3.0.0-2 |
241 |
- Added SELinux policy module |
242 |
|
243 |
* Tue Jan 30 2007 Johan Cwiklinski <johan AT x-tnd DOT be> 3.0.0-1 |
244 |
- Rebuild RPM for v 3.0.0 |
245 |
|
246 |
* Sat Aug 16 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-7 |
247 |
- Release bump for rebuild |
248 |
|
249 |
* Tue Jul 25 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-6 |
250 |
- One more config change |
251 |
|
252 |
* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-5 |
253 |
- Added upstream patch for better support for rsync |
254 |
|
255 |
* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-4 |
256 |
- Properly marking config files as such |
257 |
|
258 |
* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-3 |
259 |
- Changes to defaults in config.pl |
260 |
- Added Requires: rsync |
261 |
|
262 |
* Fri Jul 21 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-2 |
263 |
- Added requires: perl(File::RsyncP) |
264 |
|
265 |
* Tue Jul 18 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-1 |
266 |
- Initial Fedora Packaging |