]>
Commit | Line | Data |
---|---|---|
1 | ## TODO: | |
2 | # - fix libtoolize | |
3 | # - update desktop files, think about su-wrappers for console (with .desktop files) | |
4 | # - fix log file permissions | |
5 | # | |
6 | # Conditional build: | |
7 | %if "%{pld_release}" == "ac" | |
8 | %bcond_with qt # BAT / qt-console Qt4 GUI | |
9 | %else | |
10 | %bcond_without qt # BAT / qt-console Qt4 GUI | |
11 | %endif | |
12 | %bcond_without mysql # use MySQL | |
13 | %bcond_without pgsql # use PostgreSQL | |
14 | %bcond_without sqlite3 # use SQLite3 | |
15 | %bcond_without nagios # build nagios plugin | |
16 | %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable | |
17 | ||
18 | %if %{without sqlite3} | |
19 | %undefine with_sqlite3_sync_off | |
20 | %endif | |
21 | ||
22 | %define qtver 4.8.4 | |
23 | Summary: Bacula - The Network Backup Solution | |
24 | Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci | |
25 | Name: bacula | |
26 | Version: 7.4.4 | |
27 | Release: 2 | |
28 | License: AGPL v3 | |
29 | Group: Networking/Utilities | |
30 | Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz | |
31 | # Source0-md5: aed11c1eef1198ffc76c6fca55cea3ad | |
32 | Source10: %{name}-dir.init | |
33 | Source11: %{name}-fd.init | |
34 | Source12: %{name}-sd.init | |
35 | Source13: %{name}.logrotate | |
36 | Source14: %{name}-dir.sysconfig | |
37 | Source15: %{name}-fd.sysconfig | |
38 | Source16: %{name}-sd.sysconfig | |
39 | Source17: %{name}-dir.service | |
40 | Source18: %{name}-fd.service | |
41 | Source19: %{name}-sd.service | |
42 | Patch0: %{name}-mtx-changer.patch | |
43 | Patch1: %{name}-branding.patch | |
44 | Patch2: %{name}-desktop.patch | |
45 | Patch3: make_catalog_backup-setup-home.patch | |
46 | Patch4: %{name}-no_lockmgr.patch | |
47 | Patch5: x32.patch | |
48 | URL: http://www.bacula.org/ | |
49 | BuildRequires: acl-devel | |
50 | BuildRequires: autoconf >= 2.61 | |
51 | BuildRequires: automake | |
52 | BuildRequires: gettext-tools | |
53 | BuildRequires: libcap-devel | |
54 | BuildRequires: libtool >= 2:2.2 | |
55 | BuildRequires: libwrap-devel | |
56 | BuildRequires: ncurses-devel | |
57 | BuildRequires: openssl-devel | |
58 | BuildRequires: pkgconfig | |
59 | BuildRequires: python | |
60 | BuildRequires: python-modules | |
61 | %if %{with qt} | |
62 | BuildRequires: QtCore-devel | |
63 | BuildRequires: QtGui-devel | |
64 | BuildRequires: qt4-build >= %{qtver} | |
65 | BuildRequires: qt4-qmake >= %{qtver} | |
66 | %endif | |
67 | %{?with_mysql:BuildRequires: mysql-devel} | |
68 | %{?with_pgsql:BuildRequires: postgresql-devel} | |
69 | BuildRequires: readline-devel | |
70 | BuildRequires: rpm >= 4.4.9-56 | |
71 | BuildRequires: rpm-pythonprov | |
72 | BuildRequires: rpmbuild(macros) >= 1.644 | |
73 | BuildRequires: sed >= 4.0 | |
74 | %{?with_sqlite3:BuildRequires: sqlite3-devel} | |
75 | BuildRequires: which | |
76 | BuildRequires: zlib-devel | |
77 | Requires: systemd-units >= 38 | |
78 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
79 | ||
80 | %define _sysconfdir /etc/%{name} | |
81 | %define _localstatedir /var/lib/%{name} | |
82 | %define nagiosplugindir %{_libdir}/nagios/plugins | |
83 | ||
84 | # db packages contain duplicates | |
85 | %define _duplicate_files_terminate_build 0 | |
86 | ||
87 | # from 'the worst' to 'the best' | |
88 | %define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql} | |
89 | ||
90 | # dependency section is broken. ccache usage is instead to makefiles | |
91 | %undefine with_ccache | |
92 | ||
93 | %description | |
94 | Bacula - It comes by night and sucks the vital essence from your | |
95 | computers. | |
96 | ||
97 | Bacula is a set of computer programs that permit you (or the system | |
98 | administrator) to manage backup, recovery, and verification of | |
99 | computer data across a network of computers of different kinds. In | |
100 | technical terms, it is a network client/server based backup program. | |
101 | Bacula is relatively easy to use and efficient, while offering many | |
102 | advanced storage management features that make it easy to find and | |
103 | recover lost or damaged files. | |
104 | ||
105 | %description -l pl.UTF-8 | |
106 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
107 | ||
108 | Bacula to zbiór programów umożliwiających administratorowi na | |
109 | zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w | |
110 | sieci komputerów różnego rodzaju. W terminologii technicznej jest to | |
111 | program do kopii zapasowych pracujący w architekturze klient-serwer. | |
112 | Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym | |
113 | wiele zaawansowanych możliwości przy zarządzaniu nośnikami, | |
114 | ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych | |
115 | plików. | |
116 | ||
117 | %package common | |
118 | Summary: Common files for bacula package | |
119 | Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula | |
120 | Group: Networking/Utilities | |
121 | Requires(post): openssl-tools | |
122 | Requires(post): sed >= 4.0 | |
123 | Requires(post,preun): /sbin/chkconfig | |
124 | Requires(postun): /usr/sbin/groupdel | |
125 | Requires(postun): /usr/sbin/userdel | |
126 | Requires(pre): /usr/sbin/groupadd | |
127 | Requires(pre): /usr/sbin/useradd | |
128 | Conflicts: bacula-console < 0:1.34.6 | |
129 | Conflicts: bacula-dir < 0:1.34.6 | |
130 | Conflicts: bacula-fd < 0:1.34.6 | |
131 | Conflicts: bacula-sd < 0:1.34.6 | |
132 | Conflicts: logrotate < 3.8.0 | |
133 | ||
134 | %description common | |
135 | Bacula - It comes by night and sucks the vital essence from your | |
136 | computers. | |
137 | ||
138 | Bacula is a set of computer programs that permit you (or the system | |
139 | administrator) to manage backup, recovery, and verification of | |
140 | computer data across a network of computers of different kinds. In | |
141 | technical terms, it is a network client/server based backup program. | |
142 | Bacula is relatively easy to use and efficient, while offering many | |
143 | advanced storage management features that make it easy to find and | |
144 | recover lost or damaged files. | |
145 | ||
146 | %description common -l pl.UTF-8 | |
147 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
148 | ||
149 | Bacula to zbiór programów umożliwiających administratorowi na | |
150 | zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w | |
151 | sieci komputerów różnego rodzaju. W terminologii technicznej jest to | |
152 | program do kopii zapasowych pracujący w architekturze klient-serwer. | |
153 | Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym | |
154 | wiele zaawansowanych możliwości przy zarządzaniu nośnikami, | |
155 | ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych | |
156 | plików. | |
157 | ||
158 | %package dir | |
159 | Summary: Bacula Director and Catalog services | |
160 | Summary(pl.UTF-8): Usługi Bacula Director i Catalog | |
161 | Group: Networking/Utilities | |
162 | Requires(post): sed >= 4.0 | |
163 | Requires: %{name}-common = %{version}-%{release} | |
164 | Requires: bacula(db) = %{version}-%{release} | |
165 | Requires: systemd-units >= 38 | |
166 | Obsoletes: bacula-updatedb | |
167 | ||
168 | %description dir | |
169 | Bacula - It comes by night and sucks the vital essence from your | |
170 | computers. | |
171 | ||
172 | Bacula Director is the program that supervises all the backup, | |
173 | restore, verify and archive operations. The system administrator uses | |
174 | the Bacula Director to schedule backups and to recover files. Catalog | |
175 | services are comprised of the software programs responsible for | |
176 | maintaining the file indexes and volume databases for all files backed | |
177 | up. The Catalog services permit the System Administrator or user to | |
178 | quickly locate and restore any desired file, since it maintains a | |
179 | record of all Volumes used, all Jobs run, and all Files saved. | |
180 | ||
181 | %description dir -l pl.UTF-8 | |
182 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
183 | ||
184 | Bacula Director to program nadzorujący wszystkie operacje wykonywania | |
185 | kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania. | |
186 | Administrator używa Bacula Directora do szeregowania kopii zapasowych | |
187 | oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są | |
188 | używane przez programy odpowiedzialne za zarządzanie indeksami plików | |
189 | i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi | |
190 | katalogowe umożliwiają administratorowi lub użytkownikowi szybko | |
191 | zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze | |
192 | wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi | |
193 | plikami. | |
194 | ||
195 | %package console | |
196 | Summary: Bacula Console | |
197 | Summary(pl.UTF-8): Konsola Baculi | |
198 | Group: Networking/Utilities | |
199 | Requires(post): sed >= 4.0 | |
200 | Requires: %{name}-common = %{version}-%{release} | |
201 | ||
202 | %description console | |
203 | Bacula - It comes by night and sucks the vital essence from your | |
204 | computers. | |
205 | ||
206 | Bacula Console is the program that allows the administrator or user to | |
207 | communicate with the Bacula Director. This is the text only console | |
208 | interface. | |
209 | ||
210 | %description console -l pl.UTF-8 | |
211 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
212 | ||
213 | Bacula Console to program umożliwiający administratorowi lub | |
214 | użytkownikowi komunikowanie się z programem Bacula Director. To jest | |
215 | interfejs czysto tekstowy. | |
216 | ||
217 | %package console-qt | |
218 | Summary: bat – The Bacula Administration Tool | |
219 | Summary(pl.UTF-8): bat – narzędzie administratora Baculi | |
220 | Group: Networking/Utilities | |
221 | Requires(post): sed >= 4.0 | |
222 | Requires: %{name}-common = %{version}-%{release} | |
223 | Requires: QtCore >= %{qtver} | |
224 | Obsoletes: bacula-console-qt4 < 5.2.13-1 | |
225 | ||
226 | %description console-qt | |
227 | Bacula - It comes by night and sucks the vital essence from your | |
228 | computers. | |
229 | ||
230 | bat is short for Bacula Administration Tool. It is a GUI form of | |
231 | bconsole, but with many additional features. | |
232 | ||
233 | %description console-qt -l pl.UTF-8 | |
234 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
235 | ||
236 | bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem | |
237 | bconsole, z wieloma dodatkowymi funkcjami. | |
238 | ||
239 | %package tray-monitor | |
240 | Summary: Bacula Tray Monitor | |
241 | Group: Networking/Utilities | |
242 | Requires(post): sed >= 4.0 | |
243 | Requires: %{name}-common = %{version}-%{release} | |
244 | ||
245 | %description tray-monitor | |
246 | Bacula - It comes by night and sucks the vital essence from your | |
247 | computers. | |
248 | ||
249 | The Monitor program is typically an icon in the system tray. However, | |
250 | once the icon is expanded into a full window, the administrator or | |
251 | user can obtain status information about the Director or the backup | |
252 | status on the local workstation or any other Bacula daemon that is | |
253 | configured. | |
254 | ||
255 | %package fd | |
256 | Summary: Bacula File services (Client) | |
257 | Summary(pl.UTF-8): Usługi Bacula File (klient) | |
258 | Group: Networking/Utilities | |
259 | Requires(post): sed >= 4.0 | |
260 | Requires: %{name}-common = %{version}-%{release} | |
261 | Requires: systemd-units >= 38 | |
262 | ||
263 | %description fd | |
264 | Bacula - It comes by night and sucks the vital essence from your | |
265 | computers. | |
266 | ||
267 | Bacula File services (or Client program) is the software program that | |
268 | is installed on the machine to be backed up. It is specific to the | |
269 | operating system on which it runs and is responsible for providing the | |
270 | file attributes and data when requested by the Director. The File | |
271 | services are also responsible for the file system dependent part of | |
272 | restoring the file attributes and data during a recovery operation. | |
273 | This program runs as a daemon on the machine to be backed up, and in | |
274 | some of the documentation, the File daemon is referred to as the | |
275 | Client (for example in Bacula configuration file). | |
276 | ||
277 | %description fd -l pl.UTF-8 | |
278 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
279 | ||
280 | Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które | |
281 | instaluje się na maszynach, z których mają być wykonywane kopie | |
282 | zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym | |
283 | działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych | |
284 | plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za | |
285 | zależną od systemu plików część odzyskiwania atrybutów i danych plików | |
286 | podczas operacji odzyskiwania danych. Program działa jako demon na | |
287 | maszynie, która ma być backupowana i w części dokumentacji demon ten | |
288 | (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym | |
289 | Baculi). | |
290 | ||
291 | %package sd | |
292 | Summary: Bacula Storage services | |
293 | Summary(pl.UTF-8): Usługi Bacula Storage | |
294 | Group: Networking/Utilities | |
295 | Requires(post): sed >= 4.0 | |
296 | Requires: %{name}-common = %{version}-%{release} | |
297 | Requires: systemd-units >= 38 | |
298 | Suggests: mtx | |
299 | Conflicts: dvd+rw-tools <= 5.21.4.10.8-1 | |
300 | ||
301 | %description sd | |
302 | Bacula - It comes by night and sucks the vital essence from your | |
303 | computers. | |
304 | ||
305 | Bacula Storage services consist of the software programs that perform | |
306 | the storage and recovery of the file attributes and data to the | |
307 | physical backup media or volumes. In other words, the Storage daemon | |
308 | is responsible for reading and writing your tapes (or other storage | |
309 | media, e.g. files). The Storage services runs as a daemon on the | |
310 | machine that has the backup device (usually a tape drive). | |
311 | ||
312 | %description sd -l pl.UTF-8 | |
313 | Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. | |
314 | ||
315 | Usługi Bacula Storage składają się z programów obsługujących | |
316 | przechowywanie danych oraz odzyskiwanie atrybutów i danych na | |
317 | fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest | |
318 | odpowiedzialny za odczyt i zapis taśm (lub innych nośników do | |
319 | przechowywania danych, np. plików). Usługi Storage działają jako demon | |
320 | na maszynie, która zawiera urządzenie backupowe (zwykle napęd | |
321 | taśmowy). | |
322 | ||
323 | %package db-postgresql | |
324 | Summary: PostgreSQL database driver for Bacula | |
325 | Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi | |
326 | Group: Networking/Utilities | |
327 | Requires(post): /sbin/ldconfig | |
328 | Requires: %{name}-common = %{version}-%{release} | |
329 | Provides: bacula(db) = %{version}-%{release} | |
330 | Obsoletes: bacula(db) | |
331 | ||
332 | %description db-postgresql | |
333 | PostgreSQL database driver for Bacula. | |
334 | ||
335 | %description db-postgresql -l pl.UTF-8 | |
336 | Sterownik bazy PostgreSQL dla Baculi. | |
337 | ||
338 | %package db-mysql | |
339 | Summary: MySQL database driver for Bacula | |
340 | Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi | |
341 | Group: Networking/Utilities | |
342 | Requires(post): /sbin/ldconfig | |
343 | Requires: %{name}-common = %{version}-%{release} | |
344 | Provides: bacula(db) = %{version}-%{release} | |
345 | Obsoletes: bacula(db) | |
346 | ||
347 | %description db-mysql | |
348 | MySQL database driver for Bacula. | |
349 | ||
350 | %description db-mysql -l pl.UTF-8 | |
351 | Sterownik bazy MySQL dla Baculi. | |
352 | ||
353 | %package db-sqlite3 | |
354 | Summary: SQLite database driver for Bacula | |
355 | Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi | |
356 | Group: Networking/Utilities | |
357 | Requires(post): /sbin/ldconfig | |
358 | Requires: %{name}-common = %{version}-%{release} | |
359 | Provides: bacula(db) = %{version}-%{release} | |
360 | Obsoletes: bacula(db) | |
361 | ||
362 | %description db-sqlite3 | |
363 | SQLite database driver for Bacula. | |
364 | ||
365 | %description db-sqlite3 -l pl.UTF-8 | |
366 | Sterownik bazy SQLite dla Baculi. | |
367 | ||
368 | %package -n nagios-plugin-check_bacula | |
369 | Summary: Nagios plugin to check bacula | |
370 | Group: Networking | |
371 | Requires: nagios-common | |
372 | ||
373 | %description -n nagios-plugin-check_bacula | |
374 | Nagios plugin to check bacula. | |
375 | ||
376 | %define _noautoreq libbaccats-%{version}.so | |
377 | # provided by various db libraries as a symlink | |
378 | ||
379 | %prep | |
380 | %setup -q | |
381 | %patch0 -p1 | |
382 | %patch1 -p1 | |
383 | %patch2 -p1 | |
384 | %patch3 -p1 | |
385 | %patch4 -p1 | |
386 | %ifarch x32 | |
387 | %patch5 -p1 | |
388 | %endif | |
389 | ||
390 | sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \ | |
391 | src/cats/create_* src/cats/delete_* src/cats/drop_* \ | |
392 | src/cats/grant_* src/cats/make_* src/cats/update_* | |
393 | sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in | |
394 | sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in | |
395 | ||
396 | %build | |
397 | cd autoconf | |
398 | %{__aclocal} -I bacula-macros -I gettext-macros -I libtool | |
399 | ## $BUILD_DIR not seen by libtoolize, export it | |
400 | #BUILD_DIR=.. %%{__libtoolize} | |
401 | cd .. | |
402 | %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure | |
403 | ||
404 | CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline" | |
405 | ||
406 | QMAKE=%{_bindir}/qmake-qt4 \ | |
407 | %configure \ | |
408 | DISTNAME=pld-linux \ | |
409 | --with-scriptdir=%{_libexecdir}/%{name} \ | |
410 | %{?with_qt:--enable-bat} \ | |
411 | --disable-conio \ | |
412 | --enable-smartalloc \ | |
413 | --with-readline \ | |
414 | --with-tcp-wrappers \ | |
415 | --with-working-dir=%{_var}/lib/%{name} \ | |
416 | --with-dump-email="root@localhost" \ | |
417 | --with-job-email="root@localhost" \ | |
418 | --with-smtp-host=localhost \ | |
419 | --with-pid-dir=/var/run \ | |
420 | --with-subsys-dir=/var/lock/subsys \ | |
421 | --with-systemd=%{systemdunitdir} \ | |
422 | --enable-batch-insert \ | |
423 | %{?with_pgsql:--with-postgresql} \ | |
424 | %{?with_mysql:--with-mysql} \ | |
425 | %{?with_sqlite3:--with-sqlite3} \ | |
426 | %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \ | |
427 | --with-dir-password="#FAKE-dir-password#" \ | |
428 | --with-fd-password="#FAKE-fd-password#" \ | |
429 | --with-sd-password="#FAKE-sd-password#" \ | |
430 | --with-mon-dir-password="#FAKE-mon-dir-password#" \ | |
431 | --with-mon-fd-password="#FAKE-mon-fd-password#" \ | |
432 | --with-mon-sd-password="#FAKE-mon-sd-password#" \ | |
433 | --with-openssl | |
434 | ||
435 | %if %{with qt} | |
436 | cd src/qt-console | |
437 | qmake-qt4 bat.pro | |
438 | cd ../.. | |
439 | %endif | |
440 | ||
441 | %{__make} 2>&1 | tee log | |
442 | # check for build errors | |
443 | grep "Error in" log && exit 1 | |
444 | ||
445 | %if %{with nagios} | |
446 | # nagios plugin | |
447 | %{__make} -C examples/nagios/check_bacula | |
448 | %endif | |
449 | ||
450 | %install | |
451 | rm -rf $RPM_BUILD_ROOT | |
452 | install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \ | |
453 | $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \ | |
454 | $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \ | |
455 | $RPM_BUILD_ROOT%{systemdunitdir} | |
456 | ||
457 | %{__make} install \ | |
458 | DESTDIR=$RPM_BUILD_ROOT | |
459 | ||
460 | # create copies of make_catalog_backup for specific databases; zeore default one (will be ghost) | |
461 | for database in %{databases}; do | |
462 | sed -e "s#default_db_type=.*#default_db_type=${database}#g" \ | |
463 | $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup \ | |
464 | > $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup | |
465 | chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup | |
466 | done | |
467 | :> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup | |
468 | ||
469 | # we use db dependant (at compile time) shell script only | |
470 | rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl | |
471 | ||
472 | ## replace with empty file, replaced by ldconfig from each db-* package on intsall | |
473 | rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so | |
474 | touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so | |
475 | ||
476 | install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir | |
477 | install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd | |
478 | install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd | |
479 | cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir | |
480 | cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir | |
481 | cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd | |
482 | cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd | |
483 | cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service | |
484 | cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service | |
485 | cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service | |
486 | ||
487 | %if %{with qt} | |
488 | # qmake somewhy does not always create install_bins target. install our own the bin | |
489 | rm -f $RPM_BUILD_ROOT%{_sbindir}/bat | |
490 | libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir} | |
491 | cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png | |
492 | cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir} | |
493 | %endif | |
494 | ||
495 | touch $RPM_BUILD_ROOT/var/log/bacula/log | |
496 | ||
497 | # install the updatedb scripts for older versions that last full release | |
498 | # 2.0 -> 3.0 : 10_to_11 | |
499 | # 5.0 -> 5.2 : 12_to_14 | |
500 | install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name} | |
501 | install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name} | |
502 | ||
503 | # place for site passwords | |
504 | touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password} | |
505 | touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password} | |
506 | ||
507 | mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf | |
508 | ||
509 | # some file changes | |
510 | rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd} | |
511 | ||
512 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog | |
513 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL | |
514 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE | |
515 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/README | |
516 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes | |
517 | rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING | |
518 | ||
519 | # startup scripts, those in /etc/rc.d/init.d are better | |
520 | rm $RPM_BUILD_ROOT%{_sbindir}/bacula | |
521 | rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-* | |
522 | ||
523 | # unsupported | |
524 | rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb | |
525 | ||
526 | # rename to avoid possible conflicts | |
527 | mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck | |
528 | mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz | |
529 | ||
530 | # no -devel files packaged, so this is also useless | |
531 | rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats}.{so,la} | |
532 | #rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la} | |
533 | %{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}} | |
534 | %{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}} | |
535 | %{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}} | |
536 | ||
537 | %if %{with nagios} | |
538 | install -d $RPM_BUILD_ROOT%{nagiosplugindir} | |
539 | %{__make} -C examples/nagios/check_bacula install \ | |
540 | sbindir=%{nagiosplugindir} \ | |
541 | DESTDIR=$RPM_BUILD_ROOT | |
542 | %endif | |
543 | ||
544 | %clean | |
545 | rm -rf $RPM_BUILD_ROOT | |
546 | ||
547 | %pre common | |
548 | %groupadd -P %{name}-common -g 136 -r -f bacula | |
549 | %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula | |
550 | ||
551 | %define update_configs \ | |
552 | echo "Updating bacula passwords and names..." | %banner -a %{name} \ | |
553 | cd %{_sysconfdir} \ | |
554 | for f in *-password; do \ | |
555 | if [ ! -s $f ]; then \ | |
556 | openssl rand -base64 33 > $f \ | |
557 | fi \ | |
558 | p=$(cat $f) \ | |
559 | for cf in *.conf *.conf.rpmnew; do \ | |
560 | [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \ | |
561 | done \ | |
562 | done \ | |
563 | for cf in *.conf *.conf.rpmnew; do \ | |
564 | [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \ | |
565 | done | |
566 | ||
567 | %post common | |
568 | /sbin/ldconfig | |
569 | %update_configs | |
570 | ||
571 | %postun common | |
572 | /sbin/ldconfig | |
573 | if [ "$1" = "0" ]; then | |
574 | %userremove bacula | |
575 | %groupremove bacula | |
576 | fi | |
577 | ||
578 | %triggerpostun dir -- %{name}-dir < %{version}-0 | |
579 | %banner bacula-dir -t3 <<EOF | |
580 | You have upgraded from an older version of Bacula director. | |
581 | ||
582 | You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables | |
583 | script to upgrade the database. | |
584 | ||
585 | Ensure you database partition has enough free space before you run the upgrade, | |
586 | i.e check that there is enough room to rebuild 'File' table (it is the largest | |
587 | in bacula db). | |
588 | ||
589 | EOF | |
590 | ||
591 | %post dir | |
592 | %update_configs | |
593 | /sbin/chkconfig --add bacula-dir | |
594 | %service bacula-dir restart "Bacula Director daemon" | |
595 | %systemd_post bacula-dir.service | |
596 | ||
597 | %preun dir | |
598 | if [ "$1" = "0" ]; then | |
599 | %service bacula-dir stop | |
600 | /sbin/chkconfig --del bacula-dir | |
601 | fi | |
602 | %systemd_preun bacula-dir.service | |
603 | ||
604 | %postun dir | |
605 | %systemd_reload | |
606 | ||
607 | %post fd | |
608 | %update_configs | |
609 | /sbin/chkconfig --add bacula-fd | |
610 | %service bacula-fd restart "Bacula File daemon" | |
611 | %systemd_post bacula-fd.service | |
612 | ||
613 | %preun fd | |
614 | if [ "$1" = "0" ]; then | |
615 | %service bacula-fd stop | |
616 | /sbin/chkconfig --del bacula-fd | |
617 | fi | |
618 | %systemd_preun bacula-fd.service | |
619 | ||
620 | %postun fd | |
621 | %systemd_reload | |
622 | ||
623 | %post sd | |
624 | %update_configs | |
625 | /sbin/chkconfig --add bacula-sd | |
626 | %service bacula-sd restart "Bacula Storage daemon" | |
627 | %systemd_post bacula-sd.service | |
628 | ||
629 | %preun sd | |
630 | if [ "$1" = "0" ]; then | |
631 | %service bacula-sd stop | |
632 | /sbin/chkconfig --del bacula-sd | |
633 | fi | |
634 | %systemd_preun bacula-sd.service | |
635 | ||
636 | %postun sd | |
637 | %systemd_reload | |
638 | ||
639 | %pre console | |
640 | if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then | |
641 | mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf | |
642 | fi | |
643 | ||
644 | %post console | |
645 | %update_configs | |
646 | ||
647 | %triggerpostun common -- %{name}-common < 5.0.1-2 | |
648 | find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || : | |
649 | ||
650 | %post console-qt | |
651 | %update_configs | |
652 | ||
653 | %post tray-monitor | |
654 | %update_configs | |
655 | ||
656 | %define db_post() \ | |
657 | /sbin/ldconfig \ | |
658 | for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \ | |
659 | prefix="${name%% *}" \ | |
660 | suffix="${name#* }" \ | |
661 | ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \ | |
662 | done \ | |
663 | ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \ | |
664 | ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \ | |
665 | %service bacula-dir restart "Bacula Director daemon" | |
666 | ||
667 | %post db-postgresql | |
668 | %db_post postgresql | |
669 | ||
670 | %postun db-postgresql -p /sbin/ldconfig | |
671 | ||
672 | %post db-mysql | |
673 | %db_post mysql | |
674 | ||
675 | %postun db-mysql -p /sbin/ldconfig | |
676 | ||
677 | %post db-sqlite3 | |
678 | %db_post sqlite3 | |
679 | ||
680 | %postun db-sqlite3 -p /sbin/ldconfig | |
681 | ||
682 | %files common | |
683 | %defattr(644,root,root,755) | |
684 | %doc LICENSE | |
685 | %dir %{_sysconfdir} | |
686 | %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password | |
687 | # do not remove bsmtp from files. Fix build if it is not installed. | |
688 | %attr(755,root,root) %{_sbindir}/bsmtp | |
689 | %attr(755,root,root) %{_sbindir}/btraceback | |
690 | %attr(755,root,root) %{_libdir}/libbac-7*.so | |
691 | %attr(755,root,root) %{_libdir}/libbaccfg-7*.so | |
692 | %attr(755,root,root) %{_libdir}/libbacfind-7*.so | |
693 | %attr(755,root,root) %{_libdir}/libbacsql-7*.so | |
694 | %{_mandir}/man8/bacula.8* | |
695 | %{_mandir}/man1/bsmtp.1* | |
696 | %{_mandir}/man8/btraceback.8* | |
697 | %dir %{_libexecdir}/%{name} | |
698 | %{_libexecdir}/%{name}/btraceback.dbx | |
699 | %{_libexecdir}/%{name}/btraceback.gdb | |
700 | %{_libexecdir}/%{name}/bacula_config | |
701 | %attr(770,root,bacula) %dir %{_localstatedir} | |
702 | %attr(750,bacula,logs) %dir /var/log/bacula | |
703 | %attr(640,bacula,logs) %ghost /var/log/bacula/log | |
704 | %attr(750,bacula,logs) %dir /var/log/archive/bacula | |
705 | ||
706 | %files dir | |
707 | %defattr(644,root,root,755) | |
708 | %doc ChangeLog ReleaseNotes LICENSE | |
709 | #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula} | |
710 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf | |
711 | %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir | |
712 | %attr(754,root,root) /etc/rc.d/init.d/bacula-dir | |
713 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir | |
714 | %{systemdunitdir}/bacula-dir.service | |
715 | %attr(755,root,root) %{_sbindir}/bacula-dir | |
716 | %attr(755,root,root) %{_sbindir}/bregex | |
717 | %attr(755,root,root) %{_sbindir}/bwild | |
718 | %attr(755,root,root) %{_sbindir}/bacula-dbcheck | |
719 | %{_mandir}/man8/bacula-dir.8* | |
720 | %{_mandir}/man8/bacula-dbcheck.8* | |
721 | %{_mandir}/man8/bregex.8* | |
722 | %{_mandir}/man8/bwild.8* | |
723 | %{_libexecdir}/%{name}/query.sql | |
724 | %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup | |
725 | ||
726 | %if %{with pgsql} | |
727 | %files db-postgresql | |
728 | %defattr(644,root,root,755) | |
729 | %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database | |
730 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database | |
731 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables | |
732 | %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges | |
733 | %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables | |
734 | %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_* | |
735 | %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup | |
736 | %attr(755,root,root) %{_libdir}/libbaccats-postgresql-7*.so | |
737 | ||
738 | %ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so | |
739 | %ghost %{_libexecdir}/%{name}/create_bacula_database | |
740 | %ghost %{_libexecdir}/%{name}/drop_bacula_tables | |
741 | %ghost %{_libexecdir}/%{name}/drop_bacula_database | |
742 | %ghost %{_libexecdir}/%{name}/grant_bacula_privileges | |
743 | %ghost %{_libexecdir}/%{name}/make_bacula_tables | |
744 | %ghost %{_libexecdir}/%{name}/update_bacula_tables | |
745 | %ghost %{_libexecdir}/%{name}/make_catalog_backup | |
746 | %endif | |
747 | ||
748 | %if %{with mysql} | |
749 | %files db-mysql | |
750 | %defattr(644,root,root,755) | |
751 | %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database | |
752 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database | |
753 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables | |
754 | %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges | |
755 | %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables | |
756 | %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_* | |
757 | %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup | |
758 | %attr(755,root,root) %{_libdir}/libbaccats-mysql-7*.so | |
759 | ||
760 | %ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so | |
761 | %ghost %{_libexecdir}/%{name}/create_bacula_database | |
762 | %ghost %{_libexecdir}/%{name}/drop_bacula_tables | |
763 | %ghost %{_libexecdir}/%{name}/drop_bacula_database | |
764 | %ghost %{_libexecdir}/%{name}/grant_bacula_privileges | |
765 | %ghost %{_libexecdir}/%{name}/make_bacula_tables | |
766 | %ghost %{_libexecdir}/%{name}/update_bacula_tables | |
767 | %ghost %{_libexecdir}/%{name}/make_catalog_backup | |
768 | %endif | |
769 | ||
770 | %if %{with sqlite3} | |
771 | %files db-sqlite3 | |
772 | %defattr(644,root,root,755) | |
773 | %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database | |
774 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database | |
775 | %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables | |
776 | %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges | |
777 | %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables | |
778 | %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_* | |
779 | %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup | |
780 | %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-7*.so | |
781 | ||
782 | %ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so | |
783 | %ghost %{_libexecdir}/%{name}/create_bacula_database | |
784 | %ghost %{_libexecdir}/%{name}/drop_bacula_tables | |
785 | %ghost %{_libexecdir}/%{name}/drop_bacula_database | |
786 | %ghost %{_libexecdir}/%{name}/grant_bacula_privileges | |
787 | %ghost %{_libexecdir}/%{name}/make_bacula_tables | |
788 | %ghost %{_libexecdir}/%{name}/update_bacula_tables | |
789 | %ghost %{_libexecdir}/%{name}/make_catalog_backup | |
790 | %endif | |
791 | ||
792 | %files fd | |
793 | %defattr(644,root,root,755) | |
794 | %doc LICENSE | |
795 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf | |
796 | %attr(754,root,root) /etc/rc.d/init.d/bacula-fd | |
797 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd | |
798 | %{systemdunitdir}/bacula-fd.service | |
799 | %attr(755,root,root) %{_sbindir}/bacula-fd | |
800 | %attr(755,root,root) %{_libdir}/bpipe-fd.so | |
801 | %{_mandir}/man8/bacula-fd.8* | |
802 | ||
803 | %files sd | |
804 | %defattr(644,root,root,755) | |
805 | %doc LICENSE | |
806 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf | |
807 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf | |
808 | %attr(754,root,root) /etc/rc.d/init.d/bacula-sd | |
809 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd | |
810 | %{systemdunitdir}/bacula-sd.service | |
811 | %attr(755,root,root) %{_sbindir}/bacula-sd | |
812 | %attr(755,root,root) %{_sbindir}/bcopy | |
813 | %attr(755,root,root) %{_sbindir}/bextract | |
814 | %attr(755,root,root) %{_sbindir}/bls | |
815 | %attr(755,root,root) %{_sbindir}/bscan | |
816 | %attr(755,root,root) %{_sbindir}/btape | |
817 | %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer | |
818 | %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer | |
819 | %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler | |
820 | %{_mandir}/man8/bacula-sd.8* | |
821 | %{_mandir}/man8/bcopy.8* | |
822 | %{_mandir}/man8/bextract.8* | |
823 | %{_mandir}/man8/bls.8* | |
824 | %{_mandir}/man8/bscan.8* | |
825 | %{_mandir}/man8/btape.8* | |
826 | ||
827 | %files console | |
828 | %defattr(644,root,root,755) | |
829 | %doc LICENSE | |
830 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf | |
831 | %attr(755,root,root) %{_sbindir}/bconsole | |
832 | %{_mandir}/man8/bconsole.8* | |
833 | ||
834 | %if %{with qt} | |
835 | %files console-qt | |
836 | %defattr(644,root,root,755) | |
837 | %doc LICENSE | |
838 | %{_pixmapsdir}/%{name}.png | |
839 | %{_desktopdir}/bat.desktop | |
840 | # Do not make this file world-readable or any user will get full access to the | |
841 | # backup system | |
842 | %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf | |
843 | %attr(755,root,root) %{_bindir}/bat | |
844 | %{_mandir}/man1/bat.1* | |
845 | %{_docdir}/%{name} | |
846 | %endif | |
847 | ||
848 | %if %{with nagios} | |
849 | %files -n nagios-plugin-check_bacula | |
850 | %defattr(644,root,root,755) | |
851 | %attr(755,root,root) %{nagiosplugindir}/check_bacula | |
852 | %endif |