2 # - update desktop files, think about su-wrappers for console (with .desktop files)
3 # - fix log file permissions
4 # - check on upgrade (5.0 and 5.2 databases are NOT compatible)
7 %bcond_without console_wx # wx-console program
8 %if "%{pld_release}" == "ac"
9 %bcond_with bat # bat Qt4 GUI
11 %bcond_without bat # bat Qt4 GUI
13 %bcond_without mysql # use MySQL
14 %bcond_without pgsql # use PostgreSQL
15 %bcond_without sqlite3 # use SQLite3
16 %bcond_without python # Python Scripting support, http://www.bacula.org/3.0.x-manuals/en/concepts/concepts/Python_Scripting.html
17 %bcond_without nagios # build nagios plugin
19 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
21 %if %{without sqlite3}
22 %undefine with_sqlite3_sync_off
26 Summary: Bacula - The Network Backup Solution
27 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
32 Group: Networking/Utilities
33 Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
34 # Source0-md5: b04c22b128b73359e4bbc9de06652c38
35 Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
36 # Source1-md5: 909b85db6da2dbe6b1099688ad4ec7c3
37 Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz
38 # Source2-md5: bb194aed8e204f54bf2f61d7e721f257
39 Source10: %{name}-dir.init
40 Source11: %{name}-fd.init
41 Source12: %{name}-sd.init
42 Source13: %{name}.logrotate
43 Source14: %{name}-dir.sysconfig
44 Source15: %{name}-fd.sysconfig
45 Source16: %{name}-sd.sysconfig
46 Source17: %{name}-dir.service
47 Source18: %{name}-fd.service
48 Source19: %{name}-sd.service
49 Patch0: %{name}-mtx-changer.patch
50 Patch1: %{name}-branding.patch
51 Patch2: %{name}-conf.patch
52 Patch3: %{name}-desktop.patch
53 Patch4: make_catalog_backup-setup-home.patch
54 Patch5: %{name}-wx-console-build.patch
55 URL: http://www.bacula.org/
56 BuildRequires: acl-devel
57 BuildRequires: autoconf
58 BuildRequires: automake
59 BuildRequires: gettext-devel
60 %{?with_console_wx:BuildRequires: gtk+2-devel}
61 BuildRequires: libcap-devel
62 BuildRequires: libtool >= 2:2.2
64 BuildRequires: fakeroot
66 BuildRequires: libwrap-devel
67 BuildRequires: ncurses-devel
68 BuildRequires: openssl-devel
69 BuildRequires: pkgconfig
71 BuildRequires: python-devel
72 BuildRequires: python-modules
75 BuildRequires: QtCore-devel
76 BuildRequires: QtGui-devel
77 BuildRequires: qt4-build >= %{qtver}
78 BuildRequires: qt4-qmake >= %{qtver}
80 %{?with_mysql:BuildRequires: mysql-devel}
81 %{?with_pgsql:BuildRequires: postgresql-devel}
82 BuildRequires: readline-devel
83 BuildRequires: rpm >= 4.4.9-56
84 BuildRequires: rpm-pythonprov
85 BuildRequires: rpmbuild(macros) >= 1.644
86 BuildRequires: sed >= 4.0
87 %{?with_sqlite3:BuildRequires: sqlite3-devel}
88 Requires: systemd-units >= 38
90 %if %{with console_wx}
91 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
93 BuildRequires: zlib-devel
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define _sysconfdir /etc/%{name}
97 %define _localstatedir /var/lib/%{name}
98 %define nagiosplugindir %{_libdir}/nagios/plugins
100 # from 'the worst' to 'the best'
101 %define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
103 # dependency section is broken. ccache usage is instead to makefiles
104 %undefine with_ccache
107 Bacula - It comes by night and sucks the vital essence from your
110 Bacula is a set of computer programs that permit you (or the system
111 administrator) to manage backup, recovery, and verification of
112 computer data across a network of computers of different kinds. In
113 technical terms, it is a network client/server based backup program.
114 Bacula is relatively easy to use and efficient, while offering many
115 advanced storage management features that make it easy to find and
116 recover lost or damaged files.
118 %description -l pl.UTF-8
119 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
121 Bacula to zbiór programów umożliwiających administratorowi na
122 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
123 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
124 program do kopii zapasowych pracujący w architekturze klient-serwer.
125 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
126 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
127 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
131 Summary: Common files for bacula package
132 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
133 Group: Networking/Utilities
134 Requires(post): openssl-tools
135 Requires(post): sed >= 4.0
136 Requires(post,preun): /sbin/chkconfig
137 Requires(postun): /usr/sbin/groupdel
138 Requires(postun): /usr/sbin/userdel
139 Requires(pre): /usr/sbin/groupadd
140 Requires(pre): /usr/sbin/useradd
141 Conflicts: bacula-console < 0:1.34.6
142 Conflicts: bacula-dir < 0:1.34.6
143 Conflicts: bacula-fd < 0:1.34.6
144 Conflicts: bacula-sd < 0:1.34.6
145 Conflicts: logrotate < 3.8.0
148 Bacula - It comes by night and sucks the vital essence from your
151 Bacula is a set of computer programs that permit you (or the system
152 administrator) to manage backup, recovery, and verification of
153 computer data across a network of computers of different kinds. In
154 technical terms, it is a network client/server based backup program.
155 Bacula is relatively easy to use and efficient, while offering many
156 advanced storage management features that make it easy to find and
157 recover lost or damaged files.
159 %description common -l pl.UTF-8
160 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
162 Bacula to zbiór programów umożliwiających administratorowi na
163 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
164 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
165 program do kopii zapasowych pracujący w architekturze klient-serwer.
166 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
167 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
168 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
172 Summary: Bacula Director and Catalog services
173 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
174 Group: Networking/Utilities
175 Requires(post): sed >= 4.0
176 Requires: %{name}-common = %{version}-%{release}
177 Requires: bacula(db) = %{version}-%{release}
178 Obsoletes: bacula-updatedb
181 Bacula - It comes by night and sucks the vital essence from your
184 Bacula Director is the program that supervises all the backup,
185 restore, verify and archive operations. The system administrator uses
186 the Bacula Director to schedule backups and to recover files. Catalog
187 services are comprised of the software programs responsible for
188 maintaining the file indexes and volume databases for all files backed
189 up. The Catalog services permit the System Administrator or user to
190 quickly locate and restore any desired file, since it maintains a
191 record of all Volumes used, all Jobs run, and all Files saved.
193 %description dir -l pl.UTF-8
194 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
196 Bacula Director to program nadzorujący wszystkie operacje wykonywania
197 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
198 Administrator używa Bacula Directora do szeregowania kopii zapasowych
199 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
200 używane przez programy odpowiedzialne za zarządzanie indeksami plików
201 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
202 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
203 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
204 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
208 Summary: Bacula Console
209 Summary(pl.UTF-8): Konsola Baculi
210 Group: Networking/Utilities
211 Requires(post): sed >= 4.0
212 Requires: %{name}-common = %{version}-%{release}
215 Bacula - It comes by night and sucks the vital essence from your
218 Bacula Console is the program that allows the administrator or user to
219 communicate with the Bacula Director. This is the text only console
222 %description console -l pl.UTF-8
223 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
225 Bacula Console to program umożliwiający administratorowi lub
226 użytkownikowi komunikowanie się z programem Bacula Director. To jest
227 interfejs czysto tekstowy.
230 Summary: Bacula wxWidgets Console
231 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
232 Group: Networking/Utilities
233 Requires(post): sed >= 4.0
234 Requires: %{name}-common = %{version}-%{release}
236 %description console-wx
237 Bacula - It comes by night and sucks the vital essence from your
240 Bacula Console is the program that allows the administrator or user to
241 communicate with the Bacula Director. This is the wxWidgets GUI
244 %description console-wx -l pl.UTF-8
245 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
247 Bacula Console to program umożliwiający administratorowi lub
248 użytkownikowi komunikowanie się z programem Bacula Director. To jest
249 interfejs graficzny oparty na wxWidgets.
252 Summary: Bacula Qt4 Console
253 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
254 Group: Networking/Utilities
255 Requires(post): sed >= 4.0
256 Requires: %{name}-common = %{version}-%{release}
257 Requires: QtCore >= %{qtver}
259 %description console-qt4
260 Bacula - It comes by night and sucks the vital essence from your
263 Bacula Console is the program that allows the administrator or user to
264 communicate with the Bacula Director. This is the Qt4 GUI interface.
266 %description console-qt4 -l pl.UTF-8
267 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
269 Bacula Console to program umożliwiający administratorowi lub
270 użytkownikowi komunikowanie się z programem Bacula Director. To jest
271 interfejs graficzny oparty na Qt4.
273 %package tray-monitor
274 Summary: Bacula Tray Monitor
275 Group: Networking/Utilities
276 Requires(post): sed >= 4.0
277 Requires: %{name}-common = %{version}-%{release}
279 %description tray-monitor
280 Bacula - It comes by night and sucks the vital essence from your
283 The Monitor program is typically an icon in the system tray. However,
284 once the icon is expanded into a full window, the administrator or
285 user can obtain status information about the Director or the backup
286 status on the local workstation or any other Bacula daemon that is
290 Summary: Bacula File services (Client)
291 Summary(pl.UTF-8): Usługi Bacula File (klient)
292 Group: Networking/Utilities
293 Requires(post): sed >= 4.0
294 Requires: %{name}-common = %{version}-%{release}
297 Bacula - It comes by night and sucks the vital essence from your
300 Bacula File services (or Client program) is the software program that
301 is installed on the machine to be backed up. It is specific to the
302 operating system on which it runs and is responsible for providing the
303 file attributes and data when requested by the Director. The File
304 services are also responsible for the file system dependent part of
305 restoring the file attributes and data during a recovery operation.
306 This program runs as a daemon on the machine to be backed up, and in
307 some of the documentation, the File daemon is referred to as the
308 Client (for example in Bacula configuration file).
310 %description fd -l pl.UTF-8
311 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
313 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
314 instaluje się na maszynach, z których mają być wykonywane kopie
315 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
316 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
317 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
318 zależną od systemu plików część odzyskiwania atrybutów i danych plików
319 podczas operacji odzyskiwania danych. Program działa jako demon na
320 maszynie, która ma być backupowana i w części dokumentacji demon ten
321 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
325 Summary: Bacula Storage services
326 Summary(pl.UTF-8): Usługi Bacula Storage
327 Group: Networking/Utilities
328 Requires(post): sed >= 4.0
329 Requires: %{name}-common = %{version}-%{release}
330 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
333 Bacula - It comes by night and sucks the vital essence from your
336 Bacula Storage services consist of the software programs that perform
337 the storage and recovery of the file attributes and data to the
338 physical backup media or volumes. In other words, the Storage daemon
339 is responsible for reading and writing your tapes (or other storage
340 media, e.g. files). The Storage services runs as a daemon on the
341 machine that has the backup device (usually a tape drive).
343 %description sd -l pl.UTF-8
344 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
346 Usługi Bacula Storage składają się z programów obsługujących
347 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
348 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
349 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
350 przechowywania danych, np. plików). Usługi Storage działają jako demon
351 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
354 %package db-postgresql
355 Summary: PostgreSQL database driver for Bacula
356 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
357 Group: Networking/Utilities
358 Requires(post): /sbin/ldconfig
359 Requires: %{name}-common = %{version}-%{release}
360 Provides: bacula(db) = %{version}-%{release}
361 Obsoletes: bacula(db)
363 %description db-postgresql
364 PostgreSQL database driver for Bacula.
366 %description db-postgresql -l pl.UTF-8
367 Sterownik bazy PostgreSQL dla Baculi.
370 Summary: MySQL database driver for Bacula
371 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
372 Group: Networking/Utilities
373 Requires(post): /sbin/ldconfig
374 Requires: %{name}-common = %{version}-%{release}
375 Provides: bacula(db) = %{version}-%{release}
376 Obsoletes: bacula(db)
378 %description db-mysql
379 MySQL database driver for Bacula.
381 %description db-mysql -l pl.UTF-8
382 Sterownik bazy MySQL dla Baculi.
385 Summary: SQLite database driver for Bacula
386 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
387 Group: Networking/Utilities
388 Requires(post): /sbin/ldconfig
389 Requires: %{name}-common = %{version}-%{release}
390 Provides: bacula(db) = %{version}-%{release}
391 Obsoletes: bacula(db)
393 %description db-sqlite3
394 SQLite database driver for Bacula.
396 %description db-sqlite3 -l pl.UTF-8
397 Sterownik bazy SQLite dla Baculi.
400 Summary: Bacula - The Network Backup Solution
401 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
402 Group: Networking/Utilities
403 Requires: %{name}-fd = %{version}-%{release}
408 Bacula - It comes by night and sucks the vital essence from your
411 Bacula is a set of computer programs that permit you (or the system
412 administrator) to manage backup, recovery, and verification of
413 computer data across a network of computers of different kinds. In
414 technical terms, it is a network client/server based backup program.
415 Bacula is relatively easy to use and efficient, while offering many
416 advanced storage management features that make it easy to find and
417 recover lost or damaged files.
419 This package installs scripts for disaster recovery and builds rescue
420 floppy disk for bare metal recovery.
422 %description rescue -l pl.UTF-8
423 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
425 Bacula to zbiór programów umożliwiających administratorowi na
426 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
427 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
428 program do kopii zapasowych pracujący w architekturze klient-serwer.
429 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
430 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
431 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
434 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
435 ratunkowe do odtwarzania systemu od zera.
437 %package -n nagios-plugin-check_bacula
438 Summary: Nagios plugin to check bacula
440 Requires: nagios-common
442 %description -n nagios-plugin-check_bacula
443 Nagios plugin to check bacula.
445 # provided by various db libraries as a symlink
446 %define _noautoreq libbaccats-%{version}.so
457 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
459 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
460 src/cats/create_* src/cats/delete_* src/cats/drop_* \
461 src/cats/grant_* src/cats/make_* src/cats/update_*
462 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
463 sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
467 %{__aclocal} -I bacula-macros -I gettext-macros
468 # $BUILD_DIR not seen by libtoolize, export it
469 BUILD_DIR=.. %{__libtoolize}
471 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
473 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
475 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
476 QMAKE=%{_bindir}/qmake-qt4 \
478 --with-scriptdir=%{_libexecdir}/%{name} \
479 %{?with_bat:--enable-bat} \
481 --enable-smartalloc \
482 %{?with_console_wx:--enable-bwx-console} \
483 --enable-tray-monitor \
484 %{?with_python:--with-python} \
486 --with-tcp-wrappers \
487 --with-working-dir=%{_var}/lib/%{name} \
488 --with-dump-email="root@localhost" \
489 --with-job-email="root@localhost" \
490 --with-smtp-host=localhost \
491 --with-pid-dir=/var/run \
492 --with-subsys-dir=/var/lock/subsys \
493 --with-systemd=/lib/systemd/system \
494 --enable-batch-insert \
495 %{?with_pgsql:--with-postgresql} \
496 %{?with_mysql:--with-mysql} \
497 %{?with_sqlite3:--with-sqlite3} \
498 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
499 --with-dir-password="#FAKE-dir-password#" \
500 --with-fd-password="#FAKE-fd-password#" \
501 --with-sd-password="#FAKE-sd-password#" \
502 --with-mon-dir-password="#FAKE-mon-dir-password#" \
503 --with-mon-fd-password="#FAKE-mon-fd-password#" \
504 --with-mon-sd-password="#FAKE-mon-sd-password#" \
513 %{__make} 2>&1 | tee log
514 # check for build errors
515 grep "Error in" log && exit 1
519 %{__make} -C examples/nagios/check_bacula
531 rm -rf $RPM_BUILD_ROOT
532 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
533 $RPM_BUILD_ROOT%{_sysconfdir}/rescue \
534 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
535 $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log/bacula} \
536 $RPM_BUILD_ROOT%{systemdunitdir}
539 DESTDIR=$RPM_BUILD_ROOT
541 # create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
542 for database in %{databases}; do
543 sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
544 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup \
545 > $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
546 chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
548 :> $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup
550 # we use db dependant (at compile time) shell script only
551 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
553 ## replace with empty file, replaced by ldconfig from each db-* package on intsall
554 rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
555 touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
557 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
558 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
559 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
560 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
561 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
562 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
563 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
564 cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
565 cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
566 cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service
568 %if %{with console_wx}
569 # tray-monitor is for regular users
570 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
572 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
573 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
574 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
575 scripts/wxconsole.desktop.consolehelper > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
576 #sed -e 's#%{_sbindir}#%{_bindir}#' \
577 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
581 # qmake somewhy does not always create install_bins target. install our own the bin
582 rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
583 libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
584 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
585 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
589 # install the rescue stuff, these are the rescue scripts
590 cp -a rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
591 cp -a rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
592 install -p rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
593 install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
596 touch $RPM_BUILD_ROOT/var/log/bacula/log
598 # install the updatedb scripts for older versions that last full release
599 # 2.0 -> 3.0 : 10_to_11
600 # 5.0 -> 5.2 : 12_to_14
601 install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
602 install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
603 install -p updatedb/update_*_tables_12_to_14 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
605 # place for site passwords
606 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
607 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
609 mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
612 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
613 %if %{without console_wx}
614 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
616 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
618 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
619 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
620 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
621 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
622 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
623 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
624 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
626 # startup scripts, those in /etc/rc.d/init.d are better
627 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
628 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
631 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
633 # rename to avoid possible conflicts
634 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
635 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
637 # no -devel files packaged, so this is also useless
638 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
641 install -d $RPM_BUILD_ROOT%{nagiosplugindir}
642 %{__make} -C examples/nagios/check_bacula install \
643 sbindir=%{nagiosplugindir} \
644 INSTALL_PROGRAM="libtool --mode=install install -p" \
645 DESTDIR=$RPM_BUILD_ROOT
649 rm -rf $RPM_BUILD_ROOT
652 %groupadd -P %{name}-common -g 136 -r -f bacula
653 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
655 %define update_configs \
656 echo "Updating bacula passwords and names..." | %banner -a %{name} \
658 for f in *-password; do \
659 if [ ! -s $f ]; then \
660 openssl rand -base64 33 > $f \
663 for cf in *.conf *.conf.rpmnew; do \
664 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
667 for cf in *.conf *.conf.rpmnew; do \
668 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
677 if [ "$1" = "0" ]; then
682 %triggerpostun dir -- %{name}-dir < %{version}-0
683 %banner bacula-dir -t3 <<EOF
684 You have upgraded from an older version of Bacula director.
686 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
687 script to upgrade the database.
689 Ensure you database partition has enough free space before you run the upgrade,
690 i.e check that there is enough room to rebuild 'File' table (it is the largest
697 /sbin/chkconfig --add bacula-dir
698 %service bacula-dir restart "Bacula Director daemon"
699 %systemd_post bacula-dir.service
702 if [ "$1" = "0" ]; then
703 %service bacula-dir stop
704 /sbin/chkconfig --del bacula-dir
706 %systemd_preun bacula-dir.service
713 /sbin/chkconfig --add bacula-fd
714 %service bacula-fd restart "Bacula File daemon"
715 %systemd_post bacula-fd.service
718 if [ "$1" = "0" ]; then
719 %service bacula-fd stop
720 /sbin/chkconfig --del bacula-fd
722 %systemd_preun bacula-fd.service
729 /sbin/chkconfig --add bacula-sd
730 %service bacula-sd restart "Bacula Storage daemon"
731 %systemd_post bacula-sd.service
734 if [ "$1" = "0" ]; then
735 %service bacula-sd stop
736 /sbin/chkconfig --del bacula-sd
738 %systemd_preun bacula-sd.service
744 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
745 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
754 %triggerpostun common -- %{name}-common < 5.0.1-2
755 find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
764 # link our current installed conf file to the rescue directory
765 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
768 echo "Creating rescue files for this system..."
769 cd %{_sysconfdir}/rescue
773 # remove the files created after the initial rpm installation
774 if [ "$1" = "0" ]; then
775 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
776 rm -f %{_sysconfdir}/rescue/partition.*
777 rm -f %{_sysconfdir}/rescue/format.*
778 rm -f %{_sysconfdir}/rescue/mount_drives
779 rm -f %{_sysconfdir}/rescue/start_network
780 rm -f %{_sysconfdir}/rescue/sfdisk
781 rm -rf %{_sysconfdir}/rescue/diskinfo/*
786 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
787 prefix="${name%% *}" \
788 suffix="${name#* }" \
789 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
791 ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
792 ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
793 %service bacula-dir restart "Bacula Director daemon"
798 %postun db-postgresql -p /sbin/ldconfig
803 %postun db-mysql -p /sbin/ldconfig
808 %postun db-sqlite3 -p /sbin/ldconfig
811 %defattr(644,root,root,755)
813 %{?with_python:%doc examples/python}
815 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
816 # do not remove bsmtp from files. Fix build if it is not installed.
817 %attr(755,root,root) %{_sbindir}/bsmtp
818 %attr(755,root,root) %{_sbindir}/btraceback
819 %attr(755,root,root) %{_libdir}/libbac-5*.so
820 %attr(755,root,root) %{_libdir}/libbaccfg-5*.so
821 %attr(755,root,root) %{_libdir}/libbacfind-5*.so
822 %attr(755,root,root) %{_libdir}/libbacpy-5*.so
823 %attr(755,root,root) %{_libdir}/libbacsql-5*.so
824 %{_mandir}/man8/bacula.8*
825 %{_mandir}/man1/bsmtp.1*
826 %{_mandir}/man8/btraceback.8*
827 %dir %{_libexecdir}/%{name}
828 %{_libexecdir}/%{name}/btraceback.dbx
829 %{_libexecdir}/%{name}/btraceback.gdb
830 %{_libexecdir}/%{name}/bacula_config
831 %attr(770,root,bacula) %dir %{_localstatedir}
832 %attr(750,bacula,logs) %dir /var/log/bacula
833 %attr(640,bacula,logs) %ghost /var/log/bacula/log
836 %defattr(644,root,root,755)
837 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
838 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
839 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
840 %ghost %{_sysconfdir}/.pw.sed
841 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
842 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
843 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
844 %{systemdunitdir}/bacula-dir.service
845 %attr(755,root,root) %{_sbindir}/bacula-dir
846 %attr(755,root,root) %{_sbindir}/bregex
847 %attr(755,root,root) %{_sbindir}/bwild
848 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
849 %{_mandir}/man8/bacula-dir.8*
850 %{_mandir}/man8/bacula-dbcheck.8*
851 %{_mandir}/man8/bregex.8*
852 %{_mandir}/man8/bwild.8*
853 %{_libexecdir}/%{name}/query.sql
854 %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
859 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
860 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
861 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
862 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
863 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
864 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
865 %attr(755,root,root) %{_libdir}/libbaccats-postgresql-5*.so
867 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
868 %ghost %{_libexecdir}/%{name}/create_bacula_database
869 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
870 %ghost %{_libexecdir}/%{name}/drop_bacula_database
871 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
872 %ghost %{_libexecdir}/%{name}/make_bacula_tables
873 %ghost %{_libexecdir}/%{name}/update_bacula_tables
874 %ghost %{_libexecdir}/%{name}/make_catalog_backup
877 %defattr(644,root,root,755)
878 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
879 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
880 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
881 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
882 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
883 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
884 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
885 %attr(755,root,root) %{_libdir}/libbaccats-mysql-5*.so
887 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
888 %ghost %{_libexecdir}/%{name}/create_bacula_database
889 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
890 %ghost %{_libexecdir}/%{name}/drop_bacula_database
891 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
892 %ghost %{_libexecdir}/%{name}/make_bacula_tables
893 %ghost %{_libexecdir}/%{name}/update_bacula_tables
894 %ghost %{_libexecdir}/%{name}/make_catalog_backup
897 %defattr(644,root,root,755)
898 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
899 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
900 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
901 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
902 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
903 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
904 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
905 %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-5*.so
907 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
908 %ghost %{_libexecdir}/%{name}/create_bacula_database
909 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
910 %ghost %{_libexecdir}/%{name}/drop_bacula_database
911 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
912 %ghost %{_libexecdir}/%{name}/make_bacula_tables
913 %ghost %{_libexecdir}/%{name}/update_bacula_tables
914 %ghost %{_libexecdir}/%{name}/make_catalog_backup
917 %defattr(644,root,root,755)
919 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
920 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
921 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
922 %{systemdunitdir}/bacula-fd.service
923 %attr(755,root,root) %{_sbindir}/bacula-fd
924 %attr(755,root,root) %{_libdir}/bpipe-fd.so
925 %{_mandir}/man8/bacula-fd.8*
928 %defattr(644,root,root,755)
930 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
931 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
932 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
933 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
934 %{systemdunitdir}/bacula-sd.service
935 %attr(755,root,root) %{_sbindir}/bacula-sd
936 %attr(755,root,root) %{_sbindir}/bcopy
937 %attr(755,root,root) %{_sbindir}/bextract
938 %attr(755,root,root) %{_sbindir}/bls
939 %attr(755,root,root) %{_sbindir}/bscan
940 %attr(755,root,root) %{_sbindir}/btape
941 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
942 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
943 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
944 %{_mandir}/man8/bacula-sd.8*
945 %{_mandir}/man8/bcopy.8*
946 %{_mandir}/man8/bextract.8*
947 %{_mandir}/man8/bls.8*
948 %{_mandir}/man8/bscan.8*
949 %{_mandir}/man8/btape.8*
952 %defattr(644,root,root,755)
954 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
955 %attr(755,root,root) %{_sbindir}/bconsole
956 %{_mandir}/man8/bconsole.8*
958 %if %{with console_wx}
960 %defattr(644,root,root,755)
962 %{_pixmapsdir}/%{name}.png
963 %{_desktopdir}/bacula-wx.desktop
964 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
965 %attr(755,root,root) %{_sbindir}/bwx-console
966 %{_mandir}/man1/bacula-bwxconsole.1*
971 %defattr(644,root,root,755)
973 %{_pixmapsdir}/%{name}.png
974 %{_desktopdir}/bat.desktop
975 # Do not make this file world-readable or any user will get full access to the
977 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
978 %attr(755,root,root) %{_bindir}/bat
979 %{_mandir}/man1/bat.1*
983 %if %{with console_wx}
985 %defattr(644,root,root,755)
987 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
988 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
989 #%{_desktopdir}/%{name}-tray-monitor.desktop
990 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
991 %{_mandir}/man1/bacula-tray-monitor.1*
996 %defattr(644,root,root,755)
998 %dir %{_sysconfdir}/rescue
999 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1000 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1001 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1002 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1003 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1004 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1005 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1006 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1007 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1008 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
1012 %files -n nagios-plugin-check_bacula
1013 %defattr(644,root,root,755)
1014 %attr(755,root,root) %{nagiosplugindir}/check_bacula