2 # - now path in browser is http://localhost/cgi/BackupPC/BackupPC_Admin
5 # - polish translation in SOURCE/backuppc-pl.pm
6 # - patch at user and gid/uid user - http://sourceforge.net/mailarchive/forum.php?thread_id=6201024&forum_id=17540
7 # - change or/and add Requires for --bin-path sendmail=%{_sbindir}/sendmail
8 # - correct config file
10 %define oldname backuppc
14 Summary: A high-performance, enterprise-grade system for backing up
15 Summary(pl.UTF-8): Wysoko wydajny, profesjonalnej klasy system do kopii zapasowych
20 Group: Networking/Utilities
21 Source0: http://dl.sourceforge.net/backuppc/%{name}-%{version}.tar.gz
22 # Source0-md5: 4b77610d8d1130daf0892fc7134be985
23 Source1: %{oldname}_apache.conf
24 Source2: %{oldname}-pl.pm
25 URL: http://backuppc.sourceforge.net/
26 BuildRequires: perl-Digest-MD5
27 BuildRequires: perl-devel >= 1:5.6.0
28 BuildRequires: rpm-perlprov
29 BuildRequires: rpmbuild(macros) >= 1.268
30 BuildRequires: sed >= 4.0
31 Requires(post,preun): /sbin/chkconfig
32 Requires: apache(mod_auth)
33 Requires: apache(mod_perl)
35 Requires: perl-Archive-Zip
36 Requires: perl-Compress-Bzip2
37 Requires: perl-Compress-Zlib
38 Requires: perl-File-RsyncP >= 0.70
41 Requires: samba-client
44 Provides: group(%{BPCgroup})
45 Provides: user(%{BPCuser})
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _webapps /etc/webapps
52 %define _webapp %{name}
53 %define _libdir /usr/lib
56 BackupPC is disk based and not tape based. This particularity allows
57 features not found in any other backup solution:
58 - Clever pooling scheme minimizes disk storage and disk I/O. Identical
59 files across multiple backups of the same or different PC are stored
60 only once (using hard links), resulting in substantial savings in disk
61 storage and disk writes.
62 - Optional compression provides additional reductions in storage. CPU
63 impact of compression is low since only new files (those not already
64 in the pool) need to be compressed.
65 - A powerful http/cgi user interface allows administrators to view log
66 files, configuration, current status and allows users to initiate and
67 cancel backups and browse and restore files from backups very quickly.
68 - No client-side software is needed. On WinXX the SMB protocol is
69 used. On Linux or Unix clients, rsync or tar (over ssh/rsh/NFS) can be
71 - Flexible restore options. Single files can be downloaded from any
72 backup directly from the CGI interface. Zip or Tar archives for
73 selected files or directories can also be downloaded from the CGI
75 - BackupPC supports mobile environments where laptops are only
76 intermittently connected to the network and have dynamic IP addresses
78 - Flexible configuration parameters allow multiple backups to be
79 performed in parallel.
80 - and more to discover in the manual...
82 %description -l pl.UTF-8
83 BackupPC jest oparty na dyskach, a nie taśmach. Ta osobliwość daje
84 możliwości, których nie mają inne rozwiązania problemu kopii
86 - Inteligentny schemat ściągania minimalizuje zajmowane miejsce i
87 ilość operacji wejścia/wyjścia na dysku. Takie same pliki są
88 przechowywane tylko raz (przy użyciu twardych dowiązań), co daje
89 znaczącą oszczędność w miejscu na dysku i czasie zapisu.
90 - Opcjonalna kompresja pozwala na dalsze ograniczenie rozmiaru.
91 Obciążenie procesora jest małe, ponieważ tylko nowe pliki muszą być
93 - Potężny interfejs użytkownika HTTP/CGI pozwala administratorom
94 przeglądać pliki logów, konfigurację i aktualny stan oraz użytkownikom
95 rozpoczynać lub przerywać tworzenie kopii oraz szybko przeglądać i
96 odtwarzać pliki z kopii zapasowych.
97 - Nie jest wymagane oprogramowanie po stronie klienta. Na WinXX
98 używany jest protokół SMB lub rsync (specjalnie przygotowana wersja
99 pod cygwinem). Na klientach linuksowych lub uniksowych można używać
100 rsynca lub tara (po ssh/rsh/NFS).
101 - Dostępne są elastyczne opcje odzyskiwania. Można ściągać pojedyncze
102 pliki z kopii bezpośrednio z interfejsu CGI. Także archiwa zip lub tar
103 z wybranymi plikami lub katalogami mogą być ściągane z poziomu
105 - BackupPC obsługuje środowiska przenośne, gdzie laptopy są podłączane
106 do sieci tylko z przerwami i mają dynamiczne adresy IP (z DHCP).
107 - Elastyczna konfiguracja parametrów pozwala na wykonywanie wielu
109 - Istnieje możliwość nagrywania backupu na inne nośniki (tasmy,
110 DVD-R/RW, CD-R/RW i inne)
111 - Wiele więcej można odkryć w manualu...
116 sed -i -e 's#!/bin/perl#!%{__perl}#' configure.pl
117 sed -i -e 's#!/bin/perl#!%{__perl}#' {bin,cgi-bin,doc}/*
118 sed -i -e 's#!/bin/perl#!%{__perl}#' */src/*
119 sed -i -e 's#!/bin/perl#!%{__perl}#' */*/*/*.pm
121 pod2man --section=8 --center="BackupPC manual" doc/BackupPC.pod backuppc.8
122 %{__perl} -e "s/.IX Title.*/.SH NAME\nbackuppc \\- BackupPC manual/g" -p -i.tmp backuppc.8
125 rm -rf $RPM_BUILD_ROOT
126 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,httpd/httpd.conf} \
127 $RPM_BUILD_ROOT%{_mandir}/man8 \
128 $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/doc \
129 $RPM_BUILD_ROOT%{_var}/{lib/%{name}/{pc/localhost,log},log} \
130 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf \
131 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
133 %{__perl} configure.pl \
135 --bin-path perl=%{__perl} \
136 --bin-path tar=/bin/tar \
137 --bin-path smbclient=%{_bindir}/smbclient \
138 --bin-path nmblookup=%{_bindir}/nmblookup \
139 --bin-path rsync=%{_bindir}/rsync \
140 --bin-path ping=/bin/echo \
141 --bin-path df=/bin/df \
142 --bin-path ssh=%{_bindir}/ssh \
143 --bin-path sendmail=%{_sbindir}/sendmail \
144 --bin-path par2=%{_bindir}/par \
145 --bin-path hostname=/bin/hostname \
146 --bin-path split=%{_bindir}/split \
147 --bin-path cat=/bin/cat \
148 --bin-path gzip=/bin/gzip \
149 --bin-path bzip2=%{_bindir}/bzip2 \
150 --cgi-dir %{_datadir}/%{name}/www/cgi-bin \
151 --data-dir %{_var}/lib/%{name} \
152 --dest-dir $RPM_BUILD_ROOT \
153 --hostname localhost \
154 --html-dir %{_datadir}/%{name}/www/html \
155 --html-dir-url /BackupPC \
156 --install-dir %{_usr} \
160 --dest-dir $RPM_BUILD_ROOT \
162 --backuppc-user=%{BPCuser}
163 # --config-path=%{_sysconfdir}/%{name}/config.pl
165 #change user in init script
166 sed -i -e 's#--user backuppc#--user %{BPCuser}#' init.d/linux-backuppc
167 #change user in config file
168 #sed -i -e "s#'backuppc';#'%{BPCuser}';#" $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.pl
169 #sed -i -e 's/$Conf{SendmailPath} =/#$Conf{SendmailPath} =/' $RPM_BUILD_ROOTT%{_sysconfdir}/%{name}/config.pl
171 install init.d/linux-backuppc $RPM_BUILD_ROOT/etc/rc.d/init.d/backuppc
172 install backuppc.8 $RPM_BUILD_ROOT%{_mandir}/man8
173 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/BackupPC/Lang/pl.pm
174 install doc/* $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/doc
176 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
177 rm -rdf $RPM_BUILD_ROOT%{_prefix}/doc
180 cd $RPM_BUILD_ROOT%{_var}/lib/%{name}
181 ln -sf %{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
183 cd $RPM_BUILD_ROOT%{_var}/log
184 ln -sf %{_var}/lib/%{name}/log %{name}
186 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin
187 ln -sf BackupPC_Admin index.cgi
189 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/*.css \
190 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
192 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html
193 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC_stnd.css
194 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC.css
196 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
197 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
198 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
199 touch $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/htpasswd
203 # Add the "backuppc" user and "http" group
204 %groupadd -g 150 %{BPCgroup}
205 %useradd -c "system user for %{name}" -u 150 -d /var/lib/backuppc -s /bin/false -g %{BPCgroup} %{BPCuser}
209 %service backuppc restart "BackupPC"
212 if [ "$1" = "0" ]; then
213 %service backuppc stop
214 /sbin/chkconfig --del backuppc
218 if [ "$1" = "0" ]; then
219 %userremove %{BPCuser}
220 %groupremove %{BPCgroup}
224 rm -rf $RPM_BUILD_ROOT
227 %defattr(644,root,root,755)
228 %attr(755,root,root) %{_bindir}/*
229 %attr(755,root,root) %{_datadir}/%{name}/www/cgi-bin/BackupPC_Admin
230 %attr(755,root,root) %{_datadir}/%{name}/www/cgi-bin/index.cgi
231 %dir %{_datadir}/%{name}
232 %dir %{_datadir}/%{name}/www/html/doc
233 %{_datadir}/%{name}/www/html/doc/*
234 %dir %{_datadir}/%{name}/www
235 %dir %{_datadir}/%{name}/www/html
236 %dir %{_datadir}/%{name}/www/cgi-bin
237 %{_datadir}/%{name}/www/html/*.png
238 %{_datadir}/%{name}/www/html/*.gif
239 %{_datadir}/%{name}/www/html/sorttable.js
240 %config(noreplace) %verify(not md5 mtime size) %{_datadir}/%{name}/www/html/*.css
242 %dir %{_libdir}/Net/FTP
243 %{_libdir}/Net/FTP/AutoReconnect.pm
244 %{_libdir}/Net/FTP/RetrHandle.pm
245 %dir %{_libdir}/%{name}
246 %{_libdir}/%{name}/Attrib.pm
247 %dir %{_libdir}/%{name}/CGI
248 %{_libdir}/%{name}/CGI/*
249 %{_libdir}/%{name}/Config.pm
250 %dir %{_libdir}/%{name}/Config
251 %{_libdir}/%{name}/Config/*
252 %{_libdir}/%{name}/FileZIO.pm
253 %{_libdir}/%{name}/Lib.pm
254 %{_libdir}/%{name}/PoolWrite.pm
255 %{_libdir}/%{name}/Storage.pm
256 %dir %{_libdir}/%{name}/Storage
257 %{_libdir}/%{name}/Storage/*
258 %{_libdir}/%{name}/View.pm
259 %{_libdir}/%{name}/Xfer.pm
260 %dir %{_libdir}/%{name}/Xfer
261 %{_libdir}/%{name}/Xfer/*
262 %dir %{_libdir}/%{name}/Zip
263 %{_libdir}/%{name}/Zip/*
264 %dir %attr(755,%{BPCuser},%{BPCgroup}) %{_libdir}/BackupPC/Lang
265 %lang(cz) %{_libdir}/BackupPC/Lang/cz.pm
266 %lang(de) %{_libdir}/BackupPC/Lang/de.pm
267 %lang(en) %{_libdir}/BackupPC/Lang/en.pm
268 %lang(es) %{_libdir}/BackupPC/Lang/es.pm
269 %lang(fr) %{_libdir}/BackupPC/Lang/fr.pm
270 %lang(it) %{_libdir}/BackupPC/Lang/it.pm
271 %lang(nl) %{_libdir}/BackupPC/Lang/nl.pm
272 %lang(pl) %{_libdir}/BackupPC/Lang/pl.pm
273 %lang(pt_BR) %{_libdir}/BackupPC/Lang/pt_br.pm
274 %lang(zh_CN) %{_libdir}/BackupPC/Lang/zh_CN.pm
275 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}
276 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/cpool
277 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/log
278 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pc
279 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pool
280 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/trash
281 %dir %attr(755,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/conf
282 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/log/%{name}
283 %attr(754,root,root) /etc/rc.d/init.d/backuppc
284 %dir %{_sysconfdir}/%{name}
285 %{_mandir}/man8/backuppc*
286 %config(noreplace) %verify(not md5 mtime size) %attr(644,%{BPCuser},%{BPCgroup}) %{_sysconfdir}/%{name}/*
287 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
288 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
289 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
290 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/htpasswd