]> git.pld-linux.org Git - packages/BackupPC.git/blob - BackupPC.spec
4ada506a4e4e327e890ab66f5c1e3c5c35cba721
[packages/BackupPC.git] / BackupPC.spec
1
2 # - now path in browser is  http://localhost/cgi/BackupPC/BackupPC_Admin
3 # TODO:
4 # - polish translation in SOURCE/backuppc-pl.pm
5 # - patch for service user - now is static backuppc
6 # - patch at user and gid/uid user - http://sourceforge.net/mailarchive/forum.php?thread_id=6201024&forum_id=17540
7 # - compliant to FHS - http://sourceforge.net/mailarchive/forum.php?thread_id=5602342&forum_id=17540 - directory /var/log/backuppc
8 # - change or/and add Requires for  --bin-path sendmail=%{_sbindir}/sendmail
9 # - correct config file
10
11 %define         BPCuser         http
12 %define         BPCgroup        http
13 %include        /usr/lib/rpm/macros.perl
14
15 Summary:        A high-performance, enterprise-grade system for backing up PCs
16 Summary(pl):    Wysoko wydajny, profesjonalnej klasy system do kopii zapasowych z PC
17 Name:           backuppc
18 Version:        2.1.2
19 Release:        2
20 License:        GPL
21 Group:          Networking/Utilities
22 Source0:        http://dl.sourceforge.net/backuppc/BackupPC-%{version}.tar.gz
23 # Source0-md5:  72fc0f09084f44c42ba5d22451cfe29b
24 Source1:        %{name}_apache.conf
25 Source2:        %{name}_htaccess
26 Source3:        %{name}-pl.pm
27 Patch0:         %{name}-usernotexist.patch
28 Patch1:         %{name}-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.202
35 BuildRequires:  sed >= 4.0
36 Requires:       apache
37 Requires:       perl-File-RsyncP >= 0.52
38 Requires:       perl-Compress-Zlib
39 Requires:       perl-Archive-Zip
40 Requires:       perl-Compress-Bzip2
41 Requires:       rsync
42 Requires:       apache-mod_perl
43 Requires:       apache-mod_auth
44 Requires:       par2cmdline
45 Requires:       samba-client
46 Requires:       sperl
47 Requires:       tar > 1.13
48 Provides:       group(%{BPCgroup})
49 Provides:       user(%{BPCuser})
50 Obsoletes:      BackupPC
51 BuildArch:      noarch
52 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53
54 %description
55 BackupPC is disk based and not tape based. This particularity allows
56 features not found in any other backup solution:
57 - Clever pooling scheme minimizes disk storage and disk I/O. Identical
58   files across multiple backups of the same or different PC are stored
59   only once (using hard links), resulting in substantial savings in disk
60   storage and disk writes.
61 - Optional compression provides additional reductions in storage. CPU
62   impact of compression is low since only new files (those not already
63   in the pool) need to be compressed.
64 - A powerful http/cgi user interface allows administrators to view log
65   files, configuration, current status and allows users to initiate and
66   cancel backups and browse and restore files from backups very quickly.
67 - No client-side software is needed. On WinXX the SMB protocol is
68   used. On Linux or unix clients, rsync or tar (over ssh/rsh/NFS) can be
69   used.
70 - Flexible restore options. Single files can be downloaded from any
71   backup directly from the CGI interface. Zip or Tar archives for
72   selected files or directories can also be downloaded from the CGI
73   interface.
74 - BackupPC supports mobile environments where laptops are only
75   intermittently connected to the network and have dynamic IP addresses
76   (DHCP).
77 - Flexible configuration parameters allow multiple backups to be
78   performed in parallel.
79 - and more to discover in the manual...
80
81 %description -l pl
82 BackupPC jest oparty na dyskach, a nie ta¶mach. Ta osobliwo¶æ daje
83 mo¿liwo¶ci, których nie maj± inne rozwi±zania problemu kopii
84 zapasowych:
85 - Inteligentny schemat ¶ci±gania minimalizuje zajmowane miejsce i
86   ilo¶æ operacji wej¶cia/wyj¶cia na dysku. Takie same pliki s±
87   przechowywane tylko raz (przy u¿yciu twardych dowi±zañ), co daje
88   znacz±c± oszczêdno¶æ w miejscu na dysku i czasie zapisu.
89 - Opcjonalna kompresja pozwala na dalsze ograniczenie rozmiaru.
90   Obci±¿enie procesora jest ma³e, poniewa¿ tylko nowe pliki musz± byæ
91   kompresowane.
92 - Potê¿ny interfejs u¿ytkownika HTTP/CGI pozwala administratorom
93   przegl±daæ pliki logów, konfiguracjê i aktualny stan oraz u¿ytkownikom
94   rozpoczynaæ lub przerywaæ tworzenie kopii oraz szybko przegl±daæ i
95   odtwarzaæ pliki z kopii zapasowych.
96 - Nie jest wymagane oprogramowanie po stronie klienta. Na WinXX
97   u¿ywany jest protokó³ SMB lub rsync (specjalnie przygotowana wersja
98   pod cygwinem). Na klientach linuksowych lub uniksowych mo¿na u¿ywaæ
99   rsynca lub tara (po ssh/rsh/NFS).
100 - Dostêpne s± elastyczne opcje odzyskiwania. Mo¿na ¶ci±gaæ pojedyncze
101   pliki z kopii bezpo¶rednio z interfejsu CGI. Tak¿e archiwa zip lub tar
102   z wybranymi plikami lub katalogami mog± byæ ¶ci±gane z poziomu
103   interfejsu CGI.
104 - BackupPC obs³uguje ¶rodowiska przeno¶ne, gdzie laptopy s± pod³±czane
105   do sieci tylko z przerwami i maj± dynamiczne adresy IP (z DHCP).
106 - Elastyczna konfiguracja parametrów pozwala na wykonywanie wielu
107   kopii równolegle.
108 - Wiele wiêcej mo¿na odkryæ w manualu...
109
110 %prep
111 %setup -q -n BackupPC-%{version}
112 %patch0 -p1
113 %patch1 -p1
114
115 %build
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
120
121
122
123 pod2man --section=8 --center="BackupPC manual" doc/BackupPC.pod backuppc.8
124 %{__perl} -e "s/.IX Title.*/.SH NAME\nbackuppc \\- BackupPC manual/g" -p -i.tmp backuppc.8
125
126 %install
127 rm -rf $RPM_BUILD_ROOT
128 install -d              $RPM_BUILD_ROOT/etc/{rc.d/init.d,httpd/httpd.conf} \
129                         $RPM_BUILD_ROOT%{_mandir}/man8 \
130                         $RPM_BUILD_ROOT%{_datadir}/%{name}/www/{html,cgi-bin,html/doc} \
131                         $RPM_BUILD_ROOT%{_var}/{lib/%{name}/pc/localhost,log} \
132                         $RPM_BUILD_ROOT%{_datadir}/%{name}/conf \
133                         $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
134
135 %{__perl} configure.pl \
136         --batch \
137         --bin-path perl=%{__perl} \
138         --bin-path tar=/bin/tar \
139         --bin-path smbclient=%{_bindir}/smbclient \
140         --bin-path nmblookup=%{_bindir}/nmblookup \
141         --bin-path rsync=%{_bindir}/rsync \
142         --bin-path ping=/bin/echo \
143         --bin-path df=/bin/df \
144         --bin-path ssh=%{_bindir}/ssh \
145         --bin-path sendmail=%{_sbindir}/sendmail \
146         --bin-path par2=%{_bindir}/par \
147         --bin-path hostname=/bin/hostname \
148         --bin-path split=%{_bindir}/split \
149         --bin-path cat=/bin/cat \
150         --bin-path gzip=/bin/gzip \
151         --bin-path bzip2=%{_bindir}/bzip2 \
152         --cgi-dir %{_datadir}/%{name}/www/cgi-bin \
153         --data-dir %{_var}/lib/%{name} \
154         --dest-dir $RPM_BUILD_ROOT \
155         --hostname localhost \
156         --html-dir %{_datadir}/%{name}/www/html \
157         --html-dir-url /BackupPC \
158         --install-dir %{_usr} \
159         --uid-ignore
160 #       --config-path
161
162 #change user in init script
163 sed -i -e 's#--user backuppc#--user %{BPCuser}#' init.d/linux-backuppc
164 #change user in config file
165 sed -i -e "s#'backuppc';#'%{BPCuser}';#" $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/config.pl
166 sed -i -e 's/$Conf{SendmailPath} =/#$Conf{SendmailPath} =/' $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/config.pl
167
168 install init.d/linux-backuppc $RPM_BUILD_ROOT/etc/rc.d/init.d/backuppc
169 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
170 #install %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin/.htaccess
171 install backuppc.8 $RPM_BUILD_ROOT%{_mandir}/man8
172 install %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/BackupPC/Lang/pl.pm
173 install doc/* $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/doc
174 # Cleanups:
175 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
176 rm -rdf $RPM_BUILD_ROOT/usr/doc
177
178 # symlinks
179 mv $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
180 rm -rdf $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
181
182 cd $RPM_BUILD_ROOT%{_var}/lib/%{name}
183 ln -sf %{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
184
185 cd $RPM_BUILD_ROOT%{_var}/log
186 ln -sf %{_var}/lib/%{name}/log %{name}
187
188 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin
189 ln -sf BackupPC_Admin index.cgi
190
191 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/BackupPC_stnd.css \
192         $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
193
194 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html
195 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC_stnd.css
196
197
198 %if 0
199
200 %pre
201 # Add the "backuppc" user and "http" group
202 %groupadd -g 150 %{BPCgroup}
203 %useradd -c "system user for %{name}" -u 150 -d /var/lib/backuppc -s /bin/false -g %{BPCgroup} %{BPCuser}
204 %endif
205
206 %preun
207 if [ "$1" = "0" ]; then
208         if [ -f /var/lock/subsys/backuppc ]; then
209                 /etc/rc.d/init.d/backuppc stop
210         fi
211         /sbin/chkconfig --del backuppc
212 fi
213
214
215 %post
216 if [ ! -f /etc/backuppc/password ]; then
217 # FIXME? $PASS variable cames from?
218         openssl rand -base64 6 > $PASS
219         /usr/bin/htpasswd -cb /etc/backuppc/password admin $PASS
220         echo "Your web pasword is: $PASS ."
221         echo "Change this: htpasswd -b /etc/backuppc/password user password"
222 fi
223
224 if [ -f /var/lock/subsys/backuppc ]; then
225         /etc/rc.d/init.d/backuppc restart
226 else
227         echo "Run \"/etc/rc.d/init.d/backuppc start\" to start BackupPC."
228 fi
229
230 %postun
231 if [ "$1" = "0" ]; then
232         %userremove %{BPCuser}
233         %groupremove %{BPCgroup}
234 fi
235
236 %clean
237 rm -rf $RPM_BUILD_ROOT
238
239 %files
240 %defattr(644,root,root,755)
241 %attr(755,root,root) %{_bindir}/*
242 %attr(755,root,root) %{_datadir}/%{name}/www/cgi-bin/BackupPC_Admin
243 #%config(noreplace) %verify(not md5 size mtime) %{_datadir}/%{name}/www/cgi-bin/.htaccess
244 %dir %{_datadir}/%{name}
245 %dir %{_datadir}/%{name}/www/html/doc
246 %{_datadir}/%{name}/www/html/doc/*
247 %dir %{_datadir}/%{name}/www
248 %dir %{_datadir}/%{name}/www/html
249 %dir %{_datadir}/%{name}/www/cgi-bin
250 %{_datadir}/%{name}/www/html/*.gif
251 %config(noreplace) %verify(not md5 mtime size) %{_datadir}/%{name}/www/html/BackupPC_stnd.css
252 %dir %{_libdir}/BackupPC
253 %{_libdir}/BackupPC/Attrib.pm
254 %{_libdir}/BackupPC/FileZIO.pm
255 %{_libdir}/BackupPC/Lib.pm
256 %{_libdir}/BackupPC/PoolWrite.pm
257 %{_libdir}/BackupPC/View.pm
258 %{_libdir}/BackupPC/CGI
259 %{_libdir}/BackupPC/Xfer
260 %{_libdir}/BackupPC/Zip
261 %dir %attr(755,%{BPCuser},%{BPCgroup}) %{_libdir}/BackupPC/Lang
262 %lang(en) %{_libdir}/BackupPC/Lang/en.pm
263 %lang(de) %{_libdir}/BackupPC/Lang/de.pm
264 %lang(fr) %{_libdir}/BackupPC/Lang/fr.pm
265 %lang(es) %{_libdir}/BackupPC/Lang/es.pm
266 %lang(it) %{_libdir}/BackupPC/Lang/it.pm
267 %lang(nl) %{_libdir}/BackupPC/Lang/nl.pm
268 %lang(pl) %{_libdir}/BackupPC/Lang/pl.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 %{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
279 %dir %{_sysconfdir}/%{name}
280 %config(noreplace) %verify(not md5 mtime size) %attr(644,%{BPCuser},%{BPCgroup})  %{_sysconfdir}/%{name}/*
281 %{_mandir}/man8/backuppc*
This page took 0.090682 seconds and 2 git commands to generate.