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