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