2 # - now path in browser is http://localhost/cgi/BackupPC/BackupPC_Admin
4 # - patch for service user - now is static backuppc
5 # - patch at user and gid/uid user - http://sourceforge.net/mailarchive/forum.php?thread_id=6201024&forum_id=17540
6 # - compliant to FHS - http://sourceforge.net/mailarchive/forum.php?thread_id=5602342&forum_id=17540 - directory /var/log/backuppc
7 # - change or/and add Requires for --bin-path sendmail=%{_sbindir}/sendmail
8 # - ping not working --bin-path ping=/bin/ping
9 # - add patch for encoding web page in iso-8859-2 or utf-8
10 # - add patch for error "Unable to open /usr/bin/../doc/BackupPC.html"
14 %include /usr/lib/rpm/macros.perl
16 Summary: A high-performance, enterprise-grade system for backing up PCs
17 Summary(pl): Wysoko wydajny, profesjonalnej klasy system do kopii zapasowych z PC
22 Group: Networking/Utilities
23 Source0: http://dl.sourceforge.net/backuppc/BackupPC-%{version}.tar.gz
24 # Source0-md5: fadbce1c3d4679dffc98514e48ed7917
25 Source1: %{name}_apache.conf
26 Source2: %{name}_htaccess
27 Source3: %{name}-pl.pm
28 Patch0: %{name}-usernotexist.patch
29 URL: http://backuppc.sourceforge.net/
30 BuildRequires: perl-Compress-Zlib
31 BuildRequires: perl-Digest-MD5
32 BuildRequires: perl-base
33 BuildRequires: perl-devel >= 1:5.6.0
34 BuildRequires: rpmbuild(macros) >= 1.159
35 BuildRequires: sed >= 4.0
37 Requires: apache-mod_perl
38 Requires: samba-client
41 Provides: group(%{BPCgroup})
42 Provides: user(%{BPCuser})
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 BackupPC is disk based and not tape based. This particularity allows
49 features not found in any other backup solution:
50 - Clever pooling scheme minimizes disk storage and disk I/O. Identical
51 files across multiple backups of the same or different PC are stored
52 only once (using hard links), resulting in substantial savings in
53 disk storage and disk writes.
54 - Optional compression provides additional reductions in storage. CPU
55 impact of compression is low since only new files (those not already
56 in the pool) need to be compressed.
57 - A powerful http/cgi user interface allows administrators to view log
58 files, configuration, current status and allows users to initiate
59 and cancel backups and browse and restore files from backups very
61 - No client-side software is needed. On WinXX the SMB protocol is
62 used. On Linux or unix clients, rsync or tar (over ssh/rsh/NFS) can
64 - Flexible restore options. Single files can be downloaded from any
65 backup directly from the CGI interface. Zip or Tar archives for
66 selected files or directories can also be downloaded from the CGI
68 - BackupPC supports mobile environments where laptops are only
69 intermittently connected to the network and have dynamic IP
71 - Flexible configuration parameters allow multiple backups to be
72 performed in parallel.
73 - and more to discover in the manual...
76 BackupPC jest oparty na dyskach, a nie ta¶mach. Ta osobliwo¶æ daje
77 mo¿liwo¶ci, których nie maj± inne rozwi±zania problemu kopii
79 - Inteligentny schemat ¶ci±gania minimalizuje zajmowane miejsce i
80 ilo¶æ operacji wej¶cia/wyj¶cia na dysku. Takie same pliki s±
81 przechowywane tylko raz (przy u¿yciu twardych dowi±zañ), co daje
82 znacz±c± oszczêdno¶æ w miejscu na dysku i czasie zapisu.
83 - Opcjonalna kompresja pozwala na dalsze ograniczenie rozmiaru.
84 Obci±¿enie procesora jest ma³e, poniewa¿ tylko nowe pliki musz± byæ
86 - Potê¿ny interfejs u¿ytkownika HTTP/CGI pozwala administratorom
87 przegl±daæ pliki logów, konfiguracjê i aktualny stan oraz
88 u¿ytkownikom rozpoczynaæ lub przerywaæ tworzenie kopii oraz szybko
89 przegl±daæ i odtwarzaæ pliki z kopii zapasowych.
90 - Nie jest wymagane oprogramowanie po stronie klienta. Na WinXX
91 u¿ywany jest protokó³ SMB lub rsync (specjalnie przygotowana wersja
92 pod cygwinem). Na klientach linuksowych lub uniksowych mo¿na u¿ywaæ
93 rsynca lub tara (po ssh/rsh/NFS).
94 - Dostêpne s± elastyczne opcje odzyskiwania. Mo¿na ¶ci±gaæ pojedyncze
95 pliki z kopii bezpo¶rednio z interfejsu CGI. Tak¿e archiwa zip lub
96 tar z wybranymi plikami lub katalogami mog± byæ ¶ci±gane z poziomu
98 - BackupPC obs³uguje ¶rodowiska przeno¶ne, gdzie laptopy s± pod³±czane
99 do sieci tylko z przerwami i maj± dynamiczne adresy IP (z DHCP).
100 - Elastyczna konfiguracja parametrów pozwala na wykonywanie wielu
102 - Wiele wiêcej mo¿na odkryæ w manualu...
105 %setup -q -n BackupPC-%{version}
109 sed -i -e 's#!/bin/perl#!%{__perl}#' configure.pl
110 sed -i -e 's#!/bin/perl#!%{__perl}#' {bin,cgi-bin,doc}/*
111 sed -i -e 's#!/bin/perl#!%{__perl}#' */src/*
112 sed -i -e 's#!/bin/perl#!%{__perl}#' */*/*/*.pm
116 pod2man --section=8 --center="BackupPC manual" doc/BackupPC.pod backuppc.8
117 %{__perl} -e "s/.IX Title.*/.SH NAME\nbackuppc \\- BackupPC manual/g" -p -i.tmp backuppc.8
120 rm -rf $RPM_BUILD_ROOT
121 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,httpd/httpd.conf} \
122 $RPM_BUILD_ROOT%{_mandir}/man8 \
123 $RPM_BUILD_ROOT%{_datadir}/%{name}/www/{html,cgi-bin,html/doc} \
124 $RPM_BUILD_ROOT%{_var}/{lib/%{name}/pc/localhost,log} \
125 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf \
126 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
128 %{__perl} configure.pl \
130 --bin-path perl=%{__perl} \
131 --bin-path tar=/bin/tar \
132 --bin-path smbclient=%{_bindir}/smbclient \
133 --bin-path nmblookup=%{_bindir}/nmblookup \
134 --bin-path rsync=%{_bindir}/rsync \
135 --bin-path ping=/bin/echo \
136 --bin-path df=/bin/df \
137 --bin-path ssh=%{_bindir}/ssh \
138 --bin-path sendmail=%{_sbindir}/sendmail \
139 --bin-path hostname=/bin/hostname \
140 --bin-path split=%{_bindir}/split \
141 --bin-path cat=/bin/cat \
142 --bin-path gzip=/bin/gzip \
143 --bin-path bzip2=%{_bindir}/bzip2 \
144 --cgi-dir %{_datadir}/%{name}/www/cgi-bin \
145 --data-dir %{_var}/lib/%{name} \
146 --dest-dir $RPM_BUILD_ROOT \
147 --hostname localhost \
148 --html-dir %{_datadir}/%{name}/www/html \
149 --html-dir-url /BackupPC \
150 --install-dir %{_usr} \
154 #change user in init script
155 sed -i -e 's#--user backuppc#--user %{BPCuser}#' init.d/linux-backuppc
156 #change user in config file
157 sed -i -e "s#'backuppc';#'%{BPCuser}';#" $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/config.pl
158 sed -i -e 's/$Conf{SendmailPath} =/#$Conf{SendmailPath} =/' $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/config.pl
160 install init.d/linux-backuppc $RPM_BUILD_ROOT/etc/rc.d/init.d/backuppc
161 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
162 #install %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin/.htaccess
163 install backuppc.8 $RPM_BUILD_ROOT%{_mandir}/man8
164 install %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/BackupPC/Lang/pl.pm
165 install doc/* $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/doc
167 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
168 rm -rdf $RPM_BUILD_ROOT/usr/doc
171 mv $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
172 rm -rdf $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
174 cd $RPM_BUILD_ROOT%{_var}/lib/%{name}
175 ln -sf %{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
177 cd $RPM_BUILD_ROOT%{_var}/log
178 ln -sf %{_var}/lib/%{name}/log %{name}
180 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin
181 ln -sf BackupPC_Admin index.cgi
183 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/BackupPC_stnd.css \
184 $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
186 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html
187 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC_stnd.css
191 # Add the "backuppc" user and group
192 #if [ -n "`/usr/bin/getgid %{BPCgroup}`" ]; then
193 # if [ "`/usr/bin/getgid %{BPCgroup}`" != "150" ]; then
194 # echo "Error: group %{BPCgroup} doesn't have gid=150. Correct this before installing %{name}." 1>&2
198 # /usr/sbin/groupadd -g 150 %{BPCgroup}
200 #if [ -n "`/bin/id -u %{BPCuser} 2>/dev/null`" ]; then
201 # if [ "`/bin/id -u %{BPCuser}`" != 150 ]; then
202 # echo "Error: user %{BPCuser} doesn't have uid=150. Correct this before installing %{name}." 1>&2
206 # /usr/sbin/useradd -c "system user for %{name}" -u 150 \
207 # -d /home/services/BackupPC -s /bin/false -g %{BPCgroup} %{BPCuser} 1>&2
210 if [ "$1" = "0" ]; then
211 if [ -f /var/lock/subsys/backuppc ]; then
212 /etc/rc.d/init.d/backuppc stop
214 /sbin/chkconfig --del backuppc
219 if ![ -f /etc/backuppc/password ]; then
220 openssl rand -base64 6 > $PASS
221 /usr/bin/htpasswd -cb /etc/backuppc/password admin $PASS
222 echo "Your web pasword is: $PASS ."
223 echo "Change this: htpasswd -b /etc/backuppc/password user password"
226 if [ -f /var/lock/subsys/backuppc ]; then
227 /etc/rc.d/init.d/backuppc restart
229 echo "Run \"/etc/rc.d/init.d/backuppc start\" to start BackupPC."
233 if [ "$1" = "0" ]; then
234 %userremove %{BPCuser}
235 %groupremove %{BPCgroup}
239 rm -rf $RPM_BUILD_ROOT
242 %defattr(644,root,root,755)
243 %attr(755,root,root) %{_bindir}/*
244 %attr(755,root,root) %{_datadir}/%{name}/www/cgi-bin/BackupPC_Admin
245 #%config(noreplace) %verify(not md5 size mtime) %{_datadir}/%{name}/www/cgi-bin/.htaccess
246 %dir %{_datadir}/%{name}
247 %dir %{_datadir}/%{name}/www/html/doc
248 %{_datadir}/%{name}/www/html/doc/*
249 %dir %{_datadir}/%{name}/www
250 %dir %{_datadir}/%{name}/www/html
251 %dir %{_datadir}/%{name}/www/cgi-bin
252 %{_datadir}/%{name}/www/html/*.gif
253 %config(noreplace) %verify(not md5 size mtime) %{_datadir}/%{name}/www/html/BackupPC_stnd.css
254 %dir %{_libdir}/BackupPC
255 %{_libdir}/BackupPC/Attrib.pm
256 %{_libdir}/BackupPC/FileZIO.pm
257 %{_libdir}/BackupPC/Lib.pm
258 %{_libdir}/BackupPC/PoolWrite.pm
259 %{_libdir}/BackupPC/View.pm
260 %{_libdir}/BackupPC/CGI
261 %{_libdir}/BackupPC/Xfer
262 %{_libdir}/BackupPC/Zip
263 %dir %attr(755,%{BPCuser},%{BPCgroup}) %{_libdir}/BackupPC/Lang
264 %lang(en) %{_libdir}/BackupPC/Lang/en.pm
265 %lang(de) %{_libdir}/BackupPC/Lang/de.pm
266 %lang(fr) %{_libdir}/BackupPC/Lang/fr.pm
267 %lang(es) %{_libdir}/BackupPC/Lang/es.pm
268 %lang(it) %{_libdir}/BackupPC/Lang/it.pm
269 %lang(nl) %{_libdir}/BackupPC/Lang/nl.pm
270 %lang(pl) %{_libdir}/BackupPC/Lang/pl.pm
271 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}
272 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/cpool
273 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/log
274 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pc
275 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pool
276 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/trash
277 %dir %attr(755,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/conf
278 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/log/%{name}
279 %attr(750,root,root) /etc/rc.d/init.d/backuppc
280 %{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
281 %dir %{_sysconfdir}/%{name}
282 %config(noreplace) %verify(not md5 size mtime) %attr(644,%{BPCuser},%{BPCgroup}) %{_sysconfdir}/%{name}/*
283 #%config(noreplace) %verify(not md5 size mtime) %attr(644,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/conf
284 %{_mandir}/man8/backuppc*