]> git.pld-linux.org Git - packages/BackupPC.git/blob - BackupPC.spec
71f5dd52898cf2d5e4fc35eaa88c132e349e4717
[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 # - correct config file
9
10 %define         BPCuser         http
11 %define         BPCgroup        http
12 %include        /usr/lib/rpm/macros.perl
13
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
16 Name:           backuppc
17 Version:        2.1.2
18 Release:        1
19 License:        GPL
20 Group:          Networking/Utilities
21 Source0:        http://dl.sourceforge.net/backuppc/BackupPC-%{version}.tar.gz
22 # Source0-md5:  72fc0f09084f44c42ba5d22451cfe29b
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
35 Requires:       apache
36 Requires:       perl-File-RsyncP >= 0.52
37 Requires:       perl-Compress-Zlib
38 Requires:       perl-Archive-Zip
39 Requires:       perl-Compress-Bzip2
40 Requires:       rsync
41 Requires:       apache-mod_perl
42 Requires:       samba-client
43 Requires:       sperl
44 Requires:       tar > 1.13
45 Provides:       group(%{BPCgroup})
46 Provides:       user(%{BPCuser})
47 Obsoletes:      BackupPC
48 BuildArch:      noarch
49 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50
51 %description
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
66   used.
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
70   interface.
71 - BackupPC supports mobile environments where laptops are only
72   intermittently connected to the network and have dynamic IP addresses
73   (DHCP).
74 - Flexible configuration parameters allow multiple backups to be
75   performed in parallel.
76 - and more to discover in the manual...
77
78 %description -l pl
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
81 zapasowych:
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æ
88   kompresowane.
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
100   interfejsu CGI.
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
104   kopii równolegle.
105 - Wiele wiêcej mo¿na odkryæ w manualu...
106
107 %prep
108 %setup -q -n BackupPC-%{version}
109 %patch0 -p1
110 %patch1 -p1
111
112 %build
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
117
118
119
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
122
123 %install
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}
131
132 %{__perl} configure.pl \
133         --batch \
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} \
155         --uid-ignore
156 #       --config-path
157
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
163
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
170 # Cleanups:
171 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
172 rm -rdf $RPM_BUILD_ROOT/usr/doc
173
174 # symlinks
175 mv $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
176 rm -rdf $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
177
178 cd $RPM_BUILD_ROOT%{_var}/lib/%{name}
179 ln -sf %{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf
180
181 cd $RPM_BUILD_ROOT%{_var}/log
182 ln -sf %{_var}/lib/%{name}/log %{name}
183
184 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/cgi-bin
185 ln -sf BackupPC_Admin index.cgi
186
187 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/BackupPC_stnd.css \
188         $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
189
190 cd $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html
191 ln -sf %{_sysconfdir}/%{name}/BackupPC_stnd.css BackupPC_stnd.css
192
193
194 %if 0
195
196 %pre
197 # Add the "backuppc" user and "http" group
198 %groupadd -g 150 %{BPCgroup}
199 %useradd -c "system user for %{name}" -u 150 -d /var/lib/backuppc -s /bin/false -g %{BPCgroup} %{BPCuser}
200 %endif
201
202 %preun
203 if [ "$1" = "0" ]; then
204         if [ -f /var/lock/subsys/backuppc ]; then
205                 /etc/rc.d/init.d/backuppc stop
206         fi
207         /sbin/chkconfig --del backuppc
208 fi
209
210
211 %post
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"
218 fi
219
220 if [ -f /var/lock/subsys/backuppc ]; then
221         /etc/rc.d/init.d/backuppc restart
222 else
223         echo "Run \"/etc/rc.d/init.d/backuppc start\" to start BackupPC."
224 fi
225
226 %postun
227 if [ "$1" = "0" ]; then
228         %userremove %{BPCuser}
229         %groupremove %{BPCgroup}
230 fi
231
232 %clean
233 rm -rf $RPM_BUILD_ROOT
234
235 %files
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*
This page took 0.095293 seconds and 2 git commands to generate.