]> git.pld-linux.org Git - packages/BackupPC.git/blob - BackupPC.spec
- move symlinks to %install
[packages/BackupPC.git] / BackupPC.spec
1
2 #TO DO:
3 # - polish translation %{_libdir}/BackupPC/Lang/pl.pm
4
5 %define         BPCuser         backuppc
6 %define         BPCgroup        backuppc
7 %include        /usr/lib/rpm/macros.perl
8
9 Summary:        A high-performance, enterprise-grade system for backing up PCs
10 Summary(pl):    Wysoko wydajny, profesjonalnej klasy system do kopii zapasowych z PC
11 Name:           backuppc
12 Version:        2.1.0
13 Release:        0.5
14 License:        GPL
15 Group:          Networking/Utilities
16 Source0:        http://dl.sourceforge.net/backuppc/BackupPC-%{version}.tar.gz
17 # Source0-md5:  4e201f00842c88cf241e0429643c6ec4
18 Source1:        %{name}_apache.conf
19 Source2:        %{name}_htaccess
20 Patch0:         %{name}-usernotexist.patch
21 URL:            http://backuppc.sourceforge.net/
22 BuildRequires:  perl-Compress-Zlib
23 BuildRequires:  perl-Digest-MD5
24 BuildRequires:  perl-base
25 BuildRequires:  perl-devel >= 1:5.6.0
26 BuildRequires:  rpmbuild(macros) >= 1.159
27 Requires:       apache
28 Requires:       samba-client
29 Requires:       sperl
30 Requires:       tar > 1.13
31 Provides:       group(%{BPCgroup})
32 Provides:       user(%{BPCuser})
33 Obsoletes:      BackupPC
34 BuildArch:      noarch
35 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36
37 %description
38 BackupPC is disk based and not tape based. This particularity allows
39 features not found in any other backup solution:
40 - Clever pooling scheme minimizes disk storage and disk I/O. Identical
41   files across multiple backups of the same or different PC are stored
42   only once (using hard links), resulting in substantial savings in
43   disk storage and disk writes.
44 - Optional compression provides additional reductions in storage. CPU
45   impact of compression is low since only new files (those not already
46   in the pool) need to be compressed.
47 - A powerful http/cgi user interface allows administrators to view log
48   files, configuration, current status and allows users to initiate
49   and cancel backups and browse and restore files from backups very
50   quickly.
51 - No client-side software is needed. On WinXX the SMB protocol is
52   used. On Linux or unix clients, rsync or tar (over ssh/rsh/NFS) can
53   be used.
54 - Flexible restore options. Single files can be downloaded from any
55   backup directly from the CGI interface. Zip or Tar archives for
56   selected files or directories can also be downloaded from the CGI
57   interface.
58 - BackupPC supports mobile environments where laptops are only
59   intermittently connected to the network and have dynamic IP
60   addresses (DHCP).
61 - Flexible configuration parameters allow multiple backups to be
62   performed in parallel.
63 - and more to discover in the manual...
64
65 %description -l pl
66 BackupPC jest oparty na dyskach, a nie ta¶mach. Ta osobliwo¶æ daje
67 mo¿liwo¶ci, których nie maj± inne rozwi±zania problemu kopii
68 zapasowych:
69 - Inteligentny schemat ¶ci±gania minimalizuje zajmowane miejsce i
70   ilo¶æ operacji wej¶cia/wyj¶cia na dysku. Takie same pliki s±
71   przechowywane tylko raz (przy u¿yciu twardych dowi±zañ), co daje
72   znacz±c± oszczêdno¶æ w miejscu na dysku i czasie zapisu.
73 - Opcjonalna kompresja pozwala na dalsze ograniczenie rozmiaru.
74   Obci±¿enie procesora jest ma³e, poniewa¿ tylko nowe pliki musz± byæ
75   kompresowane.
76 - Potê¿ny interfejs u¿ytkownika HTTP/CGI pozwala administratorom
77   przegl±daæ pliki logów, konfiguracjê i aktualny stan oraz
78   u¿ytkownikom rozpoczynaæ lub przerywaæ tworzenie kopii oraz szybko
79   przegl±daæ i odtwarzaæ pliki z kopii zapasowych.
80 - Nie jest wymagane oprogramowanie po stronie klienta. Na WinXX
81   u¿ywany jest protokó³ SMB. Na klientach linuksowych lub uniksowych
82   mo¿na u¿ywaæ rsynca lub tara (po ssh/rsh/NFS).
83 - Dostêpne s± elastyczne opcje odzyskiwania. Mo¿na ¶ci±gaæ pojedyncze
84   pliki z kopii bezpo¶rednio z interfejsu CGI. Tak¿e archiwa zip lub
85   tar z wybranymi plikami lub katalogami mog± byæ ¶ci±gane z poziomu
86   interfejsu CGI.
87 - BackupPC obs³uguje ¶rodowiska przeno¶ne, gdzie laptopy s± pod³±czane
88   do sieci tylko z przerwami i maj± dynamiczne adresy IP (z DHCP).
89 - Elastyczna konfiguracja parametrów pozwala na wykonywanie wielu
90   kopii równolegle.
91 - Wiele wiêcej mo¿na odkryæ w manualu...
92
93 %prep
94 %setup -q -n BackupPC-%{version}
95 %patch0 -p1
96
97 %build
98 sed -i -e 's#!/bin/perl#!%{__perl}#' configure.pl
99 sed -i -e 's#!/bin/perl#!%{__perl}#' {bin,cgi-bin,doc}/*
100 sed -i -e 's#!/bin/perl#!%{__perl}#' */src/*
101 sed -i -e 's#!/bin/perl#!%{__perl}#' */*/*/*.pm
102
103 pod2man --section=8 --center="BackupPC manual" doc/BackupPC.pod backuppc.8
104 perl -e "s/.IX Title.*/.SH NAME\nbackuppc \\- BackupPC manual/g" -p -i.tmp backuppc.8
105
106 %install
107 rm -rf $RPM_BUILD_ROOT
108 install -d -m 755       $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,httpd/httpd.conf} \
109                         $RPM_BUILD_ROOT%{_usr}/share/%{name}/www/html \
110                         $RPM_BUILD_ROOT%{_var}/{lib/%{name}/pc/localhost,log} \
111                         $RPM_BUILD_ROOT%{_datadir}/%{name}/conf \
112                         $RPM_BUILD_ROOT/home/services/httpd/cgi-bin/%{name}
113
114 %{__perl} configure.pl \
115         --batch \
116         --bin-path perl=%{__perl} \
117         --bin-path tar=/bin/tar \
118         --bin-path smbclient=%{_bindir}/smbclient \
119         --bin-path nmblookup=%{_bindir}/nmblookup \
120         --bin-path rsync=%{_bindir}/rsync \
121         --bin-path ping=/bin/ping \
122         --bin-path df=/bin/df \
123         --bin-path ssh=%{_bindir}/ssh \
124         --bin-path sendmail=%{_sbindir}/sendmail \
125         --bin-path hostname=/bin/hostname \
126         --bin-path split=%{_bindir}/split \
127         --bin-path cat=/bin/cat \
128         --bin-path gzip=/bin/gzip \
129         --bin-path bzip2=%{_bindir}/bzip2 \
130         --cgi-dir /home/services/httpd/cgi-bin/%{name} \
131         --data-dir %{_var}/lib/%{name} \
132         --dest-dir $RPM_BUILD_ROOT \
133         --hostname localhost \
134         --html-dir %{_usr}/share/%{name}/www/html \
135         --html-dir-url /BackupPC \
136         --install-dir  %{_usr} \
137         --uid-ignore
138 #       --config-path
139
140 install init.d/linux-backuppc $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/backuppc
141 install conf/BackupPC_stnd.css  $RPM_BUILD_ROOT%{_var}/lib/%{name}/conf/BackupPC_stnd.css
142 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
143 install %{SOURCE2} $RPM_BUILD_ROOT/home/services/httpd/cgi-bin/%{name}/.htaccess
144
145 # Cleanups:
146 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/html/CVS
147
148 # symlinks
149 cd $RPM_BUILD_ROOT%{_sysconfdir}
150 ln -s %{_var}/lib/%{name}/conf %{name}
151
152 cd $RPM_BUILD_ROOT%{_var}/log
153 ln -s %{_var}/lib/%{name}/log %{name}
154
155 cd $RPM_BUILD_ROOT/home/services/httpd/cgi-bin/%{name}
156 ln -s /home/services/httpd/cgi-bin/%{name}/BackupPC_Admin index.cgi
157 %pre
158 # Add the "backuppc" user and group
159 if [ -n "`/usr/bin/getgid %{BPCgroup}`" ]; then
160         if [ "`/usr/bin/getgid %{BPCgroup}`" != "150" ]; then
161                 echo "Error: group %{BPCgroup} doesn't have gid=150. Correct this before installing %{name}." 1>&2
162                 exit 1
163         fi
164 else
165         /usr/sbin/groupadd -g 150 %{BPCgroup}
166 fi
167 if [ -n "`/bin/id -u %{BPCuser} 2>/dev/null`" ]; then
168         if [ "`/bin/id -u %{BPCuser}`" != 150 ]; then
169                 echo "Error: user %{BPCuser} doesn't have uid=150. Correct this before installing %{name}." 1>&2
170                 exit 1
171         fi
172 else
173         /usr/sbin/useradd -c "system user for %{name}" -u 150 \
174                 -d /home/services/BackupPC -s /bin/false -g %{BPCgroup} %{BPCuser} 1>&2
175 fi
176
177 %post
178 /etc/init.d/backuppc restart
179
180 %postun
181 if [ "$1" = "0" ]; then
182         %userremove %{BPCuser}
183         %groupremove %{BPCgroup}
184 fi
185
186 %clean
187 rm -rf $RPM_BUILD_ROOT
188
189 %files
190 %defattr(644,root,root,755)
191 %attr(755,root,root) %{_bindir}/*
192 %doc %{_usr}/doc/*.html
193 %doc %{_usr}/doc/BackupPC.pod
194 %dir /home/services/httpd/cgi-bin/%{name}/
195 %attr(755,root,root)/home/services/httpd/cgi-bin/%{name}/*
196 %dir %{_usr}/share/%{name}/www/html/
197 %{_usr}/share/%{name}/www/html/*
198 %dir %{_libdir}/BackupPC/
199 %{_libdir}/BackupPC/CGI/*
200 %{_libdir}/BackupPC/Xfer/*
201 %{_libdir}/BackupPC/Zip/*
202 %lang(en) %{_libdir}/BackupPC/Lang/en.pm
203 %lang(de) %{_libdir}/BackupPC/Lang/de.pm
204 %lang(fr) %{_libdir}/BackupPC/Lang/fr.pm
205 %lang(es) %{_libdir}/BackupPC/Lang/es.pm
206 %lang(it) %{_libdir}/BackupPC/Lang/it.pm
207 %lang(nl) %{_libdir}/BackupPC/Lang/nl.pm
208 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/cpool/
209 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/log/
210 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pc/
211 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/pool/
212 %dir %attr(750,%{BPCuser},%{BPCgroup}) %{_var}/lib/%{name}/trash/
213 %dir %{_var}/lib/%{name}/conf/
214 %dir %{_var}/log/%{name}
215 %attr(755,root,root) %{_sysconfdir}/rc.d/init.d/backuppc
216 %{_sysconfdir}/httpd/httpd.conf/93_backuppc.conf
217 %dir %{_sysconfdir}/%{name}
218 %config(noreplace) %verify(not md5 size mtime) %attr(640,root,root) /home/services/httpd/cgi-bin/%{name}/.htaccess
219 %config(noreplace) %verify(not md5 size mtime) %{_var}/lib/%{name}/conf/*
This page took 0.083085 seconds and 4 git commands to generate.