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 wx # wx-console program
8 %bcond_without gtk # the GTK tray-monitor and wx-console
9 %if "%{pld_release}" == "ac"
10 %bcond_with qt # BAT / qt-console Qt4 GUI
12 %bcond_without qt # BAT / qt-console Qt4 GUI
14 %bcond_without mysql # use MySQL
15 %bcond_without pgsql # use PostgreSQL
16 %bcond_without sqlite3 # use SQLite3
17 %bcond_without python # Python Scripting support, http://www.bacula.org/3.0.x-manuals/en/concepts/concepts/Python_Scripting.html
18 %bcond_without nagios # build nagios plugin
20 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
22 %if %{without sqlite3}
23 %undefine with_sqlite3_sync_off
31 Summary: Bacula - The Network Backup Solution
32 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
37 Group: Networking/Utilities
38 Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
39 # Source0-md5: 43417bae0c221afb1f30a581c9e0f2fe
40 Source1: http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
41 # Source1-md5: 0e7af41cc3b1c59662457679b02bf873
42 Source2: http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz
43 # Source2-md5: bb194aed8e204f54bf2f61d7e721f257
44 Source10: %{name}-dir.init
45 Source11: %{name}-fd.init
46 Source12: %{name}-sd.init
47 Source13: %{name}.logrotate
48 Source14: %{name}-dir.sysconfig
49 Source15: %{name}-fd.sysconfig
50 Source16: %{name}-sd.sysconfig
51 Source17: %{name}-dir.service
52 Source18: %{name}-fd.service
53 Source19: %{name}-sd.service
54 Patch0: %{name}-mtx-changer.patch
55 Patch1: %{name}-branding.patch
56 Patch2: %{name}-conf.patch
57 Patch3: %{name}-desktop.patch
58 Patch4: make_catalog_backup-setup-home.patch
59 Patch5: %{name}-wx-console-build.patch
60 Patch6: %{name}-no_lockmgr.patch
61 URL: http://www.bacula.org/
62 BuildRequires: acl-devel
63 BuildRequires: autoconf
64 BuildRequires: automake
65 BuildRequires: gettext-devel
66 %{?with_gtk:BuildRequires: gtk+2-devel}
67 BuildRequires: libcap-devel
68 BuildRequires: libtool >= 2:2.2
70 BuildRequires: fakeroot
72 BuildRequires: libwrap-devel
73 BuildRequires: ncurses-devel
74 BuildRequires: openssl-devel
75 BuildRequires: pkgconfig
77 BuildRequires: python-devel
78 BuildRequires: python-modules
81 BuildRequires: QtCore-devel
82 BuildRequires: QtGui-devel
83 BuildRequires: qt4-build >= %{qtver}
84 BuildRequires: qt4-qmake >= %{qtver}
86 %{?with_mysql:BuildRequires: mysql-devel}
87 %{?with_pgsql:BuildRequires: postgresql-devel}
88 BuildRequires: readline-devel
89 BuildRequires: rpm >= 4.4.9-56
90 BuildRequires: rpm-pythonprov
91 BuildRequires: rpmbuild(macros) >= 1.644
92 BuildRequires: sed >= 4.0
93 %{?with_sqlite3:BuildRequires: sqlite3-devel}
95 Requires: systemd-units >= 38
97 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
99 BuildRequires: zlib-devel
100 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102 %define _sysconfdir /etc/%{name}
103 %define _localstatedir /var/lib/%{name}
104 %define nagiosplugindir %{_libdir}/nagios/plugins
106 # db packages contain duplicates
107 %define _duplicate_files_terminate_build 0
109 # from 'the worst' to 'the best'
110 %define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
112 # dependency section is broken. ccache usage is instead to makefiles
113 %undefine with_ccache
116 Bacula - It comes by night and sucks the vital essence from your
119 Bacula is a set of computer programs that permit you (or the system
120 administrator) to manage backup, recovery, and verification of
121 computer data across a network of computers of different kinds. In
122 technical terms, it is a network client/server based backup program.
123 Bacula is relatively easy to use and efficient, while offering many
124 advanced storage management features that make it easy to find and
125 recover lost or damaged files.
127 %description -l pl.UTF-8
128 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
130 Bacula to zbiór programów umożliwiających administratorowi na
131 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
132 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
133 program do kopii zapasowych pracujący w architekturze klient-serwer.
134 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
135 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
136 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
140 Summary: Common files for bacula package
141 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
142 Group: Networking/Utilities
143 Requires(post): openssl-tools
144 Requires(post): sed >= 4.0
145 Requires(post,preun): /sbin/chkconfig
146 Requires(postun): /usr/sbin/groupdel
147 Requires(postun): /usr/sbin/userdel
148 Requires(pre): /usr/sbin/groupadd
149 Requires(pre): /usr/sbin/useradd
150 Conflicts: bacula-console < 0:1.34.6
151 Conflicts: bacula-dir < 0:1.34.6
152 Conflicts: bacula-fd < 0:1.34.6
153 Conflicts: bacula-sd < 0:1.34.6
154 Conflicts: logrotate < 3.8.0
157 Bacula - It comes by night and sucks the vital essence from your
160 Bacula is a set of computer programs that permit you (or the system
161 administrator) to manage backup, recovery, and verification of
162 computer data across a network of computers of different kinds. In
163 technical terms, it is a network client/server based backup program.
164 Bacula is relatively easy to use and efficient, while offering many
165 advanced storage management features that make it easy to find and
166 recover lost or damaged files.
168 %description common -l pl.UTF-8
169 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
171 Bacula to zbiór programów umożliwiających administratorowi na
172 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
173 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
174 program do kopii zapasowych pracujący w architekturze klient-serwer.
175 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
176 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
177 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
181 Summary: Bacula Director and Catalog services
182 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
183 Group: Networking/Utilities
184 Requires(post): sed >= 4.0
185 Requires: %{name}-common = %{version}-%{release}
186 Requires: bacula(db) = %{version}-%{release}
187 Obsoletes: bacula-updatedb
190 Bacula - It comes by night and sucks the vital essence from your
193 Bacula Director is the program that supervises all the backup,
194 restore, verify and archive operations. The system administrator uses
195 the Bacula Director to schedule backups and to recover files. Catalog
196 services are comprised of the software programs responsible for
197 maintaining the file indexes and volume databases for all files backed
198 up. The Catalog services permit the System Administrator or user to
199 quickly locate and restore any desired file, since it maintains a
200 record of all Volumes used, all Jobs run, and all Files saved.
202 %description dir -l pl.UTF-8
203 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
205 Bacula Director to program nadzorujący wszystkie operacje wykonywania
206 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
207 Administrator używa Bacula Directora do szeregowania kopii zapasowych
208 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
209 używane przez programy odpowiedzialne za zarządzanie indeksami plików
210 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
211 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
212 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
213 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
217 Summary: Bacula Console
218 Summary(pl.UTF-8): Konsola Baculi
219 Group: Networking/Utilities
220 Requires(post): sed >= 4.0
221 Requires: %{name}-common = %{version}-%{release}
224 Bacula - It comes by night and sucks the vital essence from your
227 Bacula Console is the program that allows the administrator or user to
228 communicate with the Bacula Director. This is the text only console
231 %description console -l pl.UTF-8
232 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
234 Bacula Console to program umożliwiający administratorowi lub
235 użytkownikowi komunikowanie się z programem Bacula Director. To jest
236 interfejs czysto tekstowy.
239 Summary: Bacula wxWidgets Console
240 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
241 Group: Networking/Utilities
242 Requires(post): sed >= 4.0
243 Requires: %{name}-common = %{version}-%{release}
245 %description console-wx
246 Bacula - It comes by night and sucks the vital essence from your
249 Bacula Console is the program that allows the administrator or user to
250 communicate with the Bacula Director. This is the wxWidgets GUI
253 %description console-wx -l pl.UTF-8
254 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
256 Bacula Console to program umożliwiający administratorowi lub
257 użytkownikowi komunikowanie się z programem Bacula Director. To jest
258 interfejs graficzny oparty na wxWidgets.
261 Summary: bat – The Bacula Administration Tool
262 Summary(pl.UTF-8): bat – narzędzie administratora Baculi
263 Group: Networking/Utilities
264 Requires(post): sed >= 4.0
265 Requires: %{name}-common = %{version}-%{release}
266 Requires: QtCore >= %{qtver}
267 Obsoletes: bacula-console-qt4 < 5.2.13-1
269 %description console-qt
270 Bacula - It comes by night and sucks the vital essence from your
273 bat is short for Bacula Administration Tool. It is a GUI form of
274 bconsole, but with many additional features.
276 %description console-qt -l pl.UTF-8
277 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
279 bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
280 bconsole, z wieloma dodatkowymi funkcjami.
282 %package tray-monitor
283 Summary: Bacula Tray Monitor
284 Group: Networking/Utilities
285 Requires(post): sed >= 4.0
286 Requires: %{name}-common = %{version}-%{release}
288 %description tray-monitor
289 Bacula - It comes by night and sucks the vital essence from your
292 The Monitor program is typically an icon in the system tray. However,
293 once the icon is expanded into a full window, the administrator or
294 user can obtain status information about the Director or the backup
295 status on the local workstation or any other Bacula daemon that is
299 Summary: Bacula File services (Client)
300 Summary(pl.UTF-8): Usługi Bacula File (klient)
301 Group: Networking/Utilities
302 Requires(post): sed >= 4.0
303 Requires: %{name}-common = %{version}-%{release}
306 Bacula - It comes by night and sucks the vital essence from your
309 Bacula File services (or Client program) is the software program that
310 is installed on the machine to be backed up. It is specific to the
311 operating system on which it runs and is responsible for providing the
312 file attributes and data when requested by the Director. The File
313 services are also responsible for the file system dependent part of
314 restoring the file attributes and data during a recovery operation.
315 This program runs as a daemon on the machine to be backed up, and in
316 some of the documentation, the File daemon is referred to as the
317 Client (for example in Bacula configuration file).
319 %description fd -l pl.UTF-8
320 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
322 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
323 instaluje się na maszynach, z których mają być wykonywane kopie
324 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
325 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
326 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
327 zależną od systemu plików część odzyskiwania atrybutów i danych plików
328 podczas operacji odzyskiwania danych. Program działa jako demon na
329 maszynie, która ma być backupowana i w części dokumentacji demon ten
330 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
334 Summary: Bacula Storage services
335 Summary(pl.UTF-8): Usługi Bacula Storage
336 Group: Networking/Utilities
337 Requires(post): sed >= 4.0
338 Requires: %{name}-common = %{version}-%{release}
340 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
343 Bacula - It comes by night and sucks the vital essence from your
346 Bacula Storage services consist of the software programs that perform
347 the storage and recovery of the file attributes and data to the
348 physical backup media or volumes. In other words, the Storage daemon
349 is responsible for reading and writing your tapes (or other storage
350 media, e.g. files). The Storage services runs as a daemon on the
351 machine that has the backup device (usually a tape drive).
353 %description sd -l pl.UTF-8
354 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
356 Usługi Bacula Storage składają się z programów obsługujących
357 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
358 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
359 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
360 przechowywania danych, np. plików). Usługi Storage działają jako demon
361 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
364 %package db-postgresql
365 Summary: PostgreSQL database driver for Bacula
366 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
367 Group: Networking/Utilities
368 Requires(post): /sbin/ldconfig
369 Requires: %{name}-common = %{version}-%{release}
370 Provides: bacula(db) = %{version}-%{release}
371 Obsoletes: bacula(db)
373 %description db-postgresql
374 PostgreSQL database driver for Bacula.
376 %description db-postgresql -l pl.UTF-8
377 Sterownik bazy PostgreSQL dla Baculi.
380 Summary: MySQL database driver for Bacula
381 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
382 Group: Networking/Utilities
383 Requires(post): /sbin/ldconfig
384 Requires: %{name}-common = %{version}-%{release}
385 Provides: bacula(db) = %{version}-%{release}
386 Obsoletes: bacula(db)
388 %description db-mysql
389 MySQL database driver for Bacula.
391 %description db-mysql -l pl.UTF-8
392 Sterownik bazy MySQL dla Baculi.
395 Summary: SQLite database driver for Bacula
396 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
397 Group: Networking/Utilities
398 Requires(post): /sbin/ldconfig
399 Requires: %{name}-common = %{version}-%{release}
400 Provides: bacula(db) = %{version}-%{release}
401 Obsoletes: bacula(db)
403 %description db-sqlite3
404 SQLite database driver for Bacula.
406 %description db-sqlite3 -l pl.UTF-8
407 Sterownik bazy SQLite dla Baculi.
410 Summary: Bacula - The Network Backup Solution
411 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
412 Group: Networking/Utilities
413 Requires: %{name}-fd = %{version}-%{release}
418 Bacula - It comes by night and sucks the vital essence from your
421 Bacula is a set of computer programs that permit you (or the system
422 administrator) to manage backup, recovery, and verification of
423 computer data across a network of computers of different kinds. In
424 technical terms, it is a network client/server based backup program.
425 Bacula is relatively easy to use and efficient, while offering many
426 advanced storage management features that make it easy to find and
427 recover lost or damaged files.
429 This package installs scripts for disaster recovery and builds rescue
430 floppy disk for bare metal recovery.
432 %description rescue -l pl.UTF-8
433 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
435 Bacula to zbiór programów umożliwiających administratorowi na
436 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
437 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
438 program do kopii zapasowych pracujący w architekturze klient-serwer.
439 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
440 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
441 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
444 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
445 ratunkowe do odtwarzania systemu od zera.
447 %package -n nagios-plugin-check_bacula
448 Summary: Nagios plugin to check bacula
450 Requires: nagios-common
452 %description -n nagios-plugin-check_bacula
453 Nagios plugin to check bacula.
455 %define _noautoreq libbaccats-%{version}.so
456 # provided by various db libraries as a symlink
468 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
470 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
471 src/cats/create_* src/cats/delete_* src/cats/drop_* \
472 src/cats/grant_* src/cats/make_* src/cats/update_*
473 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
474 sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
478 %{__aclocal} -I bacula-macros -I gettext-macros
479 # $BUILD_DIR not seen by libtoolize, export it
480 BUILD_DIR=.. %{__libtoolize}
482 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
484 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
486 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
487 QMAKE=%{_bindir}/qmake-qt4 \
489 --with-scriptdir=%{_libexecdir}/%{name} \
490 %{?with_qt:--enable-bat} \
492 --enable-smartalloc \
493 %{?with_wx:--enable-bwx-console} \
494 %{?with_gtk:--enable-tray-monitor} \
495 %{?with_python:--with-python} \
497 --with-tcp-wrappers \
498 --with-working-dir=%{_var}/lib/%{name} \
499 --with-dump-email="root@localhost" \
500 --with-job-email="root@localhost" \
501 --with-smtp-host=localhost \
502 --with-pid-dir=/var/run \
503 --with-subsys-dir=/var/lock/subsys \
504 --with-systemd=%{systemdunitdir} \
505 --enable-batch-insert \
506 %{?with_pgsql:--with-postgresql} \
507 %{?with_mysql:--with-mysql} \
508 %{?with_sqlite3:--with-sqlite3} \
509 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
510 --with-dir-password="#FAKE-dir-password#" \
511 --with-fd-password="#FAKE-fd-password#" \
512 --with-sd-password="#FAKE-sd-password#" \
513 --with-mon-dir-password="#FAKE-mon-dir-password#" \
514 --with-mon-fd-password="#FAKE-mon-fd-password#" \
515 --with-mon-sd-password="#FAKE-mon-sd-password#" \
524 %{__make} 2>&1 | tee log
525 # check for build errors
526 grep "Error in" log && exit 1
530 %{__make} -C examples/nagios/check_bacula
542 rm -rf $RPM_BUILD_ROOT
543 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
544 $RPM_BUILD_ROOT%{_sysconfdir}/rescue \
545 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
546 $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log/bacula} \
547 $RPM_BUILD_ROOT%{systemdunitdir}
550 DESTDIR=$RPM_BUILD_ROOT
552 # create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
553 for database in %{databases}; do
554 sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
555 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup \
556 > $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
557 chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
559 :> $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup
561 # we use db dependant (at compile time) shell script only
562 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
564 ## replace with empty file, replaced by ldconfig from each db-* package on intsall
565 rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
566 touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
568 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
569 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
570 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
571 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
572 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
573 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
574 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
575 cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
576 cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
577 cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service
580 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
581 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
582 scripts/wxconsole.desktop.consolehelper > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
586 # qmake somewhy does not always create install_bins target. install our own the bin
587 rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
588 libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
589 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
590 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
594 # install the rescue stuff, these are the rescue scripts
595 cp -a rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
596 cp -a rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
597 install -p rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
598 install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
601 touch $RPM_BUILD_ROOT/var/log/bacula/log
603 # install the updatedb scripts for older versions that last full release
604 # 2.0 -> 3.0 : 10_to_11
605 # 5.0 -> 5.2 : 12_to_14
606 install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
607 install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
608 install -p updatedb/update_*_tables_12_to_14 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
610 # place for site passwords
611 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
612 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
614 mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
617 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
619 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
622 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
623 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
624 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
625 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
626 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
627 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
628 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
630 # startup scripts, those in /etc/rc.d/init.d are better
631 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
632 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
635 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
637 # rename to avoid possible conflicts
638 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
639 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
641 # no -devel files packaged, so this is also useless
642 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql,cats}.{so,la}
643 #rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la}
644 %{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}}
645 %{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}}
646 %{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}}
649 install -d $RPM_BUILD_ROOT%{nagiosplugindir}
650 %{__make} -C examples/nagios/check_bacula install \
651 sbindir=%{nagiosplugindir} \
652 INSTALL_PROGRAM="libtool --mode=install install -p" \
653 DESTDIR=$RPM_BUILD_ROOT
657 rm -rf $RPM_BUILD_ROOT
660 %groupadd -P %{name}-common -g 136 -r -f bacula
661 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
663 %define update_configs \
664 echo "Updating bacula passwords and names..." | %banner -a %{name} \
666 for f in *-password; do \
667 if [ ! -s $f ]; then \
668 openssl rand -base64 33 > $f \
671 for cf in *.conf *.conf.rpmnew; do \
672 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
675 for cf in *.conf *.conf.rpmnew; do \
676 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
685 if [ "$1" = "0" ]; then
690 %triggerpostun dir -- %{name}-dir < %{version}-0
691 %banner bacula-dir -t3 <<EOF
692 You have upgraded from an older version of Bacula director.
694 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
695 script to upgrade the database.
697 Ensure you database partition has enough free space before you run the upgrade,
698 i.e check that there is enough room to rebuild 'File' table (it is the largest
705 /sbin/chkconfig --add bacula-dir
706 %service bacula-dir restart "Bacula Director daemon"
707 %systemd_post bacula-dir.service
710 if [ "$1" = "0" ]; then
711 %service bacula-dir stop
712 /sbin/chkconfig --del bacula-dir
714 %systemd_preun bacula-dir.service
721 /sbin/chkconfig --add bacula-fd
722 %service bacula-fd restart "Bacula File daemon"
723 %systemd_post bacula-fd.service
726 if [ "$1" = "0" ]; then
727 %service bacula-fd stop
728 /sbin/chkconfig --del bacula-fd
730 %systemd_preun bacula-fd.service
737 /sbin/chkconfig --add bacula-sd
738 %service bacula-sd restart "Bacula Storage daemon"
739 %systemd_post bacula-sd.service
742 if [ "$1" = "0" ]; then
743 %service bacula-sd stop
744 /sbin/chkconfig --del bacula-sd
746 %systemd_preun bacula-sd.service
752 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
753 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
762 %triggerpostun common -- %{name}-common < 5.0.1-2
763 find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
772 # link our current installed conf file to the rescue directory
773 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
776 echo "Creating rescue files for this system..."
777 cd %{_sysconfdir}/rescue
781 # remove the files created after the initial rpm installation
782 if [ "$1" = "0" ]; then
783 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
784 rm -f %{_sysconfdir}/rescue/partition.*
785 rm -f %{_sysconfdir}/rescue/format.*
786 rm -f %{_sysconfdir}/rescue/mount_drives
787 rm -f %{_sysconfdir}/rescue/start_network
788 rm -f %{_sysconfdir}/rescue/sfdisk
789 rm -rf %{_sysconfdir}/rescue/diskinfo/*
794 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
795 prefix="${name%% *}" \
796 suffix="${name#* }" \
797 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
799 ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
800 ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
801 %service bacula-dir restart "Bacula Director daemon"
806 %postun db-postgresql -p /sbin/ldconfig
811 %postun db-mysql -p /sbin/ldconfig
816 %postun db-sqlite3 -p /sbin/ldconfig
819 %defattr(644,root,root,755)
821 %{?with_python:%doc examples/python}
823 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
824 # do not remove bsmtp from files. Fix build if it is not installed.
825 %attr(755,root,root) %{_sbindir}/bsmtp
826 %attr(755,root,root) %{_sbindir}/btraceback
827 %attr(755,root,root) %{_libdir}/libbac-5*.so
828 %attr(755,root,root) %{_libdir}/libbaccfg-5*.so
829 %attr(755,root,root) %{_libdir}/libbacfind-5*.so
830 %attr(755,root,root) %{_libdir}/libbacpy-5*.so
831 %attr(755,root,root) %{_libdir}/libbacsql-5*.so
832 %{_mandir}/man8/bacula.8*
833 %{_mandir}/man1/bsmtp.1*
834 %{_mandir}/man8/btraceback.8*
835 %dir %{_libexecdir}/%{name}
836 %{_libexecdir}/%{name}/btraceback.dbx
837 %{_libexecdir}/%{name}/btraceback.gdb
838 %{_libexecdir}/%{name}/bacula_config
839 %attr(770,root,bacula) %dir %{_localstatedir}
840 %attr(750,bacula,logs) %dir /var/log/bacula
841 %attr(640,bacula,logs) %ghost /var/log/bacula/log
844 %defattr(644,root,root,755)
845 %doc ChangeLog CheckList ReleaseNotes LICENSE
846 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
847 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
848 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
849 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
850 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
851 %{systemdunitdir}/bacula-dir.service
852 %attr(755,root,root) %{_sbindir}/bacula-dir
853 %attr(755,root,root) %{_sbindir}/bregex
854 %attr(755,root,root) %{_sbindir}/bwild
855 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
856 %{_mandir}/man8/bacula-dir.8*
857 %{_mandir}/man8/bacula-dbcheck.8*
858 %{_mandir}/man8/bregex.8*
859 %{_mandir}/man8/bwild.8*
860 %{_libexecdir}/%{name}/query.sql
861 %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
865 %defattr(644,root,root,755)
866 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
867 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
868 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
869 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
870 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
871 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
872 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
873 %attr(755,root,root) %{_libdir}/libbaccats-postgresql-5*.so
875 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
876 %ghost %{_libexecdir}/%{name}/create_bacula_database
877 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
878 %ghost %{_libexecdir}/%{name}/drop_bacula_database
879 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
880 %ghost %{_libexecdir}/%{name}/make_bacula_tables
881 %ghost %{_libexecdir}/%{name}/update_bacula_tables
882 %ghost %{_libexecdir}/%{name}/make_catalog_backup
887 %defattr(644,root,root,755)
888 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
889 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
890 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
891 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
892 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
893 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
894 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
895 %attr(755,root,root) %{_libdir}/libbaccats-mysql-5*.so
897 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
898 %ghost %{_libexecdir}/%{name}/create_bacula_database
899 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
900 %ghost %{_libexecdir}/%{name}/drop_bacula_database
901 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
902 %ghost %{_libexecdir}/%{name}/make_bacula_tables
903 %ghost %{_libexecdir}/%{name}/update_bacula_tables
904 %ghost %{_libexecdir}/%{name}/make_catalog_backup
909 %defattr(644,root,root,755)
910 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
911 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
912 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
913 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
914 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
915 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
916 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
917 %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-5*.so
919 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
920 %ghost %{_libexecdir}/%{name}/create_bacula_database
921 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
922 %ghost %{_libexecdir}/%{name}/drop_bacula_database
923 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
924 %ghost %{_libexecdir}/%{name}/make_bacula_tables
925 %ghost %{_libexecdir}/%{name}/update_bacula_tables
926 %ghost %{_libexecdir}/%{name}/make_catalog_backup
930 %defattr(644,root,root,755)
932 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
933 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
934 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
935 %{systemdunitdir}/bacula-fd.service
936 %attr(755,root,root) %{_sbindir}/bacula-fd
937 %attr(755,root,root) %{_libdir}/bpipe-fd.so
938 %{_mandir}/man8/bacula-fd.8*
941 %defattr(644,root,root,755)
943 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
944 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
945 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
946 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
947 %{systemdunitdir}/bacula-sd.service
948 %attr(755,root,root) %{_sbindir}/bacula-sd
949 %attr(755,root,root) %{_sbindir}/bcopy
950 %attr(755,root,root) %{_sbindir}/bextract
951 %attr(755,root,root) %{_sbindir}/bls
952 %attr(755,root,root) %{_sbindir}/bscan
953 %attr(755,root,root) %{_sbindir}/btape
954 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
955 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
956 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
957 %{_mandir}/man8/bacula-sd.8*
958 %{_mandir}/man8/bcopy.8*
959 %{_mandir}/man8/bextract.8*
960 %{_mandir}/man8/bls.8*
961 %{_mandir}/man8/bscan.8*
962 %{_mandir}/man8/btape.8*
965 %defattr(644,root,root,755)
967 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
968 %attr(755,root,root) %{_sbindir}/bconsole
969 %{_mandir}/man8/bconsole.8*
973 %defattr(644,root,root,755)
975 %{_pixmapsdir}/%{name}.png
976 %{_desktopdir}/bacula-wx.desktop
977 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
978 %attr(755,root,root) %{_sbindir}/bwx-console
979 %{_mandir}/man1/bacula-bwxconsole.1*
984 %defattr(644,root,root,755)
986 %{_pixmapsdir}/%{name}.png
987 %{_desktopdir}/bat.desktop
988 # Do not make this file world-readable or any user will get full access to the
990 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
991 %attr(755,root,root) %{_bindir}/bat
992 %{_mandir}/man1/bat.1*
998 %defattr(644,root,root,755)
1000 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
1001 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
1002 #%{_desktopdir}/%{name}-tray-monitor.desktop
1003 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
1004 %{_mandir}/man1/bacula-tray-monitor.1*
1009 %defattr(644,root,root,755)
1011 %dir %{_sysconfdir}/rescue
1012 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1013 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1014 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1015 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1016 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1017 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1018 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1019 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1020 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1021 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
1025 %files -n nagios-plugin-check_bacula
1026 %defattr(644,root,root,755)
1027 %attr(755,root,root) %{nagiosplugindir}/check_bacula