]> git.pld-linux.org Git - packages/BackupPC.git/blob - BackupPC.spec
- correct
[packages/BackupPC.git] / BackupPC.spec
1
2 # - now path in browser is  http://localhost/cgi/BackupPC/BackupPC_Admin
3 # TODO:
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"
11
12 %define         BPCuser         http
13 %define         BPCgroup        http
14 %include        /usr/lib/rpm/macros.perl
15
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
18 Name:           backuppc
19 Version:        2.1.1
20 Release:        0.2
21 License:        GPL
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
36 Requires:       apache
37 Requires:       apache-mod_perl
38 Requires:       samba-client
39 Requires:       sperl
40 Requires:       tar > 1.13
41 Provides:       group(%{BPCgroup})
42 Provides:       user(%{BPCuser})
43 Obsoletes:      BackupPC
44 BuildArch:      noarch
45 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46
47 %description
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
60   quickly.
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
63   be used.
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
67   interface.
68 - BackupPC supports mobile environments where laptops are only
69   intermittently connected to the network and have dynamic IP
70   addresses (DHCP).
71 - Flexible configuration parameters allow multiple backups to be
72   performed in parallel.
73 - and more to discover in the manual...
74
75 %description -l pl
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
78 zapasowych:
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æ
85   kompresowane.
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
97   interfejsu CGI.
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
101   kopii równolegle.
102 - Wiele wiêcej mo¿na odkryæ w manualu...
103
104 %prep
105 %setup -q -n BackupPC-%{version}
106 %patch0 -p1
107
108 %build
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
113
114
115
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
118
119 %install
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}
127
128 %{__perl} configure.pl \
129         --batch \
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} \
151         --uid-ignore
152 #       --config-path
153
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
159
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
166 # Cleanups:
167 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
168 rm -rdf $RPM_BUILD_ROOT/usr/doc
169
170 # symlinks
171 mv $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
172 rm -rdf $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
173
174 cd $RPM_BUILD_ROOT%{_var}/lib/%{name}
175 ln -sf %{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
176
177 cd $RPM_BUILD_ROOT%{_var}/log
178 ln -sf %{_var}/lib/%{name}/log %{name}
179
180 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin
181 ln -sf BackupPC_Admin index.cgi
182
183 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/BackupPC_stnd.css \
184         $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
185
186 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html
187 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC_stnd.css
188
189
190 %pre
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
195 #               exit 1
196 #       fi
197 #else
198 #       /usr/sbin/groupadd -g 150 %{BPCgroup}
199 #fi
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
203 #               exit 1
204 #       fi
205 #else
206 #       /usr/sbin/useradd -c "system user for %{name}" -u 150 \
207 #               -d /home/services/BackupPC -s /bin/false -g %{BPCgroup} %{BPCuser} 1>&2
208 #fi
209 %preun
210 if [ "$1" = "0" ]; then
211         if [ -f /var/lock/subsys/backuppc ]; then
212                 /etc/rc.d/init.d/backuppc stop
213         fi
214         /sbin/chkconfig --del backuppc
215 fi
216
217
218 %post
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"
224 fi
225
226 if [ -f /var/lock/subsys/backuppc ]; then
227         /etc/rc.d/init.d/backuppc restart
228 else
229         echo "Run \"/etc/rc.d/init.d/backuppc start\" to start BackupPC." 
230 fi
231
232 %postun
233 if [ "$1" = "0" ]; then
234         %userremove %{BPCuser}
235         %groupremove %{BPCgroup}
236 fi
237
238 %clean
239 rm -rf $RPM_BUILD_ROOT
240
241 %files
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*
This page took 0.055802 seconds and 4 git commands to generate.