]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
Version: 7.0.5
[packages/bacula.git] / bacula.spec
index b9894acc0db5bf2f4bbc9c3a84cd997677532e4f..0eaaf99a315b96c1e266f8676da4bfc36079d235 100644 (file)
@@ -1,37 +1,35 @@
-# TODO:
-#      - update desktop files, think about su-wrappers for console
-#      - package web admin
+## TODO:
+#      - fix libtoolize
+#      - update desktop files, think about su-wrappers for console (with .desktop files)
 #      - fix log file permissions
+#      - check on upgrade (5.0 and 5.2 databases are NOT compatible)
 #
 # Conditional build:
-%bcond_without console_wx              # wx-console program
-%bcond_without bat                     # bat Qt4 GUI
-%bcond_without dbi                     # use Database Independent Abstraction Layer (libdbi)
+%if "%{pld_release}" == "ac"
+%bcond_with    qt              # BAT / qt-console Qt4 GUI
+%else
+%bcond_without qt              # BAT / qt-console Qt4 GUI
+%endif
 %bcond_without mysql                   # use MySQL
 %bcond_without pgsql                   # use PostgreSQL
-%bcond_with    python
-%bcond_with    rescue
 %bcond_without sqlite3                 # use SQLite3
+%bcond_without nagios          # build nagios plugin
 %bcond_with    sqlite3_sync_off        # makes SQLite3 backend much faster, but less reliable
-#
+
 %if %{without sqlite3}
 %undefine       with_sqlite3_sync_off
 %endif
-#
+
+%define        qtver   4.8.4
 Summary:       Bacula - The Network Backup Solution
 Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:          bacula
-Version:       5.0.1
-Release:       0.2
-Epoch:         0
-License:       extended GPL v2
+Version:       7.0.5
+Release:       0.1
+License:       AGPL v3
 Group:         Networking/Utilities
-Source0:       http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: beb9f8da196b3c9ffb0356f087dbdb99
-Source1:       http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
-# Source1-md5: ce2ef0dca50ab916fd6701b53b7bb4df
-Source2:       http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
-# Source2-md5: 349623581cfe0bcd798dd137abac959a
+Source0:       http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
+# Source0-md5: b4a99d673f5e1eaae8b257ccc610241f
 Source10:      %{name}-dir.init
 Source11:      %{name}-fd.init
 Source12:      %{name}-sd.init
@@ -39,57 +37,55 @@ Source13:   %{name}.logrotate
 Source14:      %{name}-dir.sysconfig
 Source15:      %{name}-fd.sysconfig
 Source16:      %{name}-sd.sysconfig
+Source17:      %{name}-dir.service
+Source18:      %{name}-fd.service
+Source19:      %{name}-sd.service
 Patch0:                %{name}-mtx-changer.patch
-Patch1:                %{name}-link.patch
-Patch2:                %{name}-tinfo-readline.patch
-Patch3:                %{name}-branding.patch
-Patch4:                %{name}-conf.patch
-Patch5:                %{name}-desktop.patch
-Patch6:                %{name}-64bitbuild_fix.patch
-Patch7:                %{name}-dbi_fixes.patch
-Patch8:                %{name}-dbi_dbcheck.patch
+Patch1:                %{name}-branding.patch
+Patch2:                %{name}-desktop.patch
+Patch3:                make_catalog_backup-setup-home.patch
+Patch4:                %{name}-no_lockmgr.patch
 URL:           http://www.bacula.org/
 BuildRequires: acl-devel
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.61
 BuildRequires: automake
-BuildRequires: gettext-devel
+BuildRequires: gettext-tools
 BuildRequires: libcap-devel
-%{?with_dbi:BuildRequires:     libdbi-devel >= 0.8.4}
-BuildRequires: libtool
-%if %{with rescue}
-BuildRequires: fakeroot
-%endif
+BuildRequires: libtool >= 2:2.2
 BuildRequires: libwrap-devel
-BuildRequires: mtx
 BuildRequires: ncurses-devel
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
-%if %{with python}
-BuildRequires: python-static
-%endif
-%if %{with bat}
+BuildRequires: python
+BuildRequires: python-modules
+%if %{with qt}
 BuildRequires: QtCore-devel
 BuildRequires: QtGui-devel
-BuildRequires: qt4-build >= 4.3.3-3
-BuildRequires: qt4-qmake >= 4.3.3-3
-BuildRequires: qwt-devel >= 5.0.2-2
+BuildRequires: qt4-build >= %{qtver}
+BuildRequires: qt4-qmake >= %{qtver}
 %endif
 %{?with_mysql:BuildRequires:   mysql-devel}
 %{?with_pgsql:BuildRequires:   postgresql-devel}
 BuildRequires: readline-devel
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.644
 BuildRequires: sed >= 4.0
 %{?with_sqlite3:BuildRequires: sqlite3-devel}
-%if %{with console_wx}
-BuildRequires: wxGTK2-unicode-devel >= 2.4.0
-%endif
+BuildRequires: which
+Requires:      systemd-units >= 38
 BuildRequires: zlib-devel
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _sysconfdir     /etc/%{name}
+%define                _sysconfdir             /etc/%{name}
 %define                _localstatedir  /var/lib/%{name}
+%define                nagiosplugindir %{_libdir}/nagios/plugins
+
+# db packages contain duplicates
+%define                _duplicate_files_terminate_build        0
 
-%define        databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi}
+# from 'the worst' to 'the best'
+%define        databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
 
 # dependency section is broken. ccache usage is instead to makefiles
 %undefine      with_ccache
@@ -111,12 +107,12 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Bacula to zbiór programów umożliwiających administratorowi na
 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
 
 %package common
 Summary:       Common files for bacula package
@@ -133,6 +129,7 @@ Conflicts:  bacula-console < 0:1.34.6
 Conflicts:     bacula-dir < 0:1.34.6
 Conflicts:     bacula-fd < 0:1.34.6
 Conflicts:     bacula-sd < 0:1.34.6
+Conflicts:     logrotate < 3.8.0
 
 %description common
 Bacula - It comes by night and sucks the vital essence from your
@@ -151,20 +148,20 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Bacula to zbiór programów umożliwiających administratorowi na
 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
 
 %package dir
 Summary:       Bacula Director and Catalog services
 Summary(pl.UTF-8):     Usługi Bacula Director i Catalog
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Requires:      bacula(db) = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
+Requires:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula-updatedb
 
 %description dir
@@ -187,19 +184,19 @@ Bacula Director to program nadzorujący wszystkie operacje wykonywania
 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
 Administrator używa Bacula Directora do szeregowania kopii zapasowych
 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
-używane przez programy odpowiedzialne za zarządzanie indeksami
-plików i bazą danych wolumenów dla wszystkich kopiowanych plików.
-Usługi katalogowe umożliwiają administratorowi lub użytkownikowi
-szybko zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują
-rekord ze wszystkimi używanymi wolumenami, uruchomionymi zadaniami i
-zapisanymi plikami.
+używane przez programy odpowiedzialne za zarządzanie indeksami plików
+i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
+katalogowe umożliwiają administratorowi lub użytkownikowi szybko
+zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
+wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
+plikami.
 
 %package console
 Summary:       Bacula Console
 Summary(pl.UTF-8):     Konsola Baculi
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
 
 %description console
 Bacula - It comes by night and sucks the vital essence from your
@@ -216,54 +213,33 @@ Bacula Console to program umożliwiający administratorowi lub
 użytkownikowi komunikowanie się z programem Bacula Director. To jest
 interfejs czysto tekstowy.
 
-%package console-wx
-Summary:       Bacula wxWidgets Console
-Summary(pl.UTF-8):     Konsola Baculi oparta na wxWidgets
+%package console-qt
+Summary:       bat – The Bacula Administration Tool
+Summary(pl.UTF-8):     bat – narzędzie administratora Baculi
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
+Requires:      QtCore >= %{qtver}
+Obsoletes:     bacula-console-qt4 < 5.2.13-1
 
-%description console-wx
+%description console-qt
 Bacula - It comes by night and sucks the vital essence from your
 computers.
 
-Bacula Console is the program that allows the administrator or user to
-communicate with the Bacula Director. This is the wxWidgets GUI
-interface.
+bat is short for Bacula Administration Tool. It is a GUI form of
+bconsole, but with many additional features.
 
-%description console-wx -l pl.UTF-8
+%description console-qt -l pl.UTF-8
 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
-Bacula Console to program umożliwiający administratorowi lub
-użytkownikowi komunikowanie się z programem Bacula Director. To jest
-interfejs graficzny oparty na wxWidgets.
-
-%package console-qt4
-Summary:       Bacula Qt4 Console
-Summary(pl.UTF-8):     Konsola Baculi oparta na Qt4
-Group:         Networking/Utilities
-Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-
-%description console-qt4
-Bacula - It comes by night and sucks the vital essence from your
-computers.
-
-Bacula Console is the program that allows the administrator or user to
-communicate with the Bacula Director. This is the Qt4 GUI interface.
-
-%description console-qt4 -l pl.UTF-8
-Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-
-Bacula Console to program umożliwiający administratorowi lub
-użytkownikowi komunikowanie się z programem Bacula Director. To jest
-interfejs graficzny oparty na Qt4.
+bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
+bconsole, z wieloma dodatkowymi funkcjami.
 
 %package tray-monitor
 Summary:       Bacula Tray Monitor
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
 
 %description tray-monitor
 Bacula - It comes by night and sucks the vital essence from your
@@ -280,7 +256,7 @@ Summary:    Bacula File services (Client)
 Summary(pl.UTF-8):     Usługi Bacula File (klient)
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
 
 %description fd
 Bacula - It comes by night and sucks the vital essence from your
@@ -299,23 +275,24 @@ Client (for example in Bacula configuration file).
 %description fd -l pl.UTF-8
 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
-Usługi Bacula File (inaczej program kliencki) to oprogramowanie,
-które instaluje się na maszynach, z których mają być wykonywane
-kopie zapasowe. Są one specyficzne dla systemu operacyjnego, pod
-którym działa dana maszyna i odpowiadają za dostarczanie atrybutów
-i danych plików na żądanie Directora. Usługi plikowe są także
-odpowiedzialne za zależną od systemu plików część odzyskiwania
-atrybutów i danych plików podczas operacji odzyskiwania danych.
-Program działa jako demon na maszynie, która ma być backupowana i w
-części dokumentacji demon ten (File) jest nazywany klientem (na
-przykład w pliku konfiguracyjnym Baculi).
+Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
+instaluje się na maszynach, z których mają być wykonywane kopie
+zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
+działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
+plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
+zależną od systemu plików część odzyskiwania atrybutów i danych plików
+podczas operacji odzyskiwania danych. Program działa jako demon na
+maszynie, która ma być backupowana i w części dokumentacji demon ten
+(File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
+Baculi).
 
 %package sd
 Summary:       Bacula Storage services
 Summary(pl.UTF-8):     Usługi Bacula Storage
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
+Suggests:      mtx
 Conflicts:     dvd+rw-tools <= 5.21.4.10.8-1
 
 %description sd
@@ -334,10 +311,10 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Usługi Bacula Storage składają się z programów obsługujących
 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
-fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage
-jest odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
-przechowywania danych, np. plików). Usługi Storage działają jako
-demon na maszynie, która zawiera urządzenie backupowe (zwykle napęd
+fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
+odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
+przechowywania danych, np. plików). Usługi Storage działają jako demon
+na maszynie, która zawiera urządzenie backupowe (zwykle napęd
 taśmowy).
 
 %package db-postgresql
@@ -345,11 +322,9 @@ Summary:   PostgreSQL database driver for Bacula
 Summary(pl.UTF-8):     Sterownik bazy PostgreSQL dla Baculi
 Group:         Networking/Utilities
 Requires(post):        /sbin/ldconfig
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-sqlite3
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
 
 %description db-postgresql
 PostgreSQL database driver for Bacula.
@@ -362,11 +337,9 @@ Summary:   MySQL database driver for Bacula
 Summary(pl.UTF-8):     Sterownik bazy MySQL dla Baculi
 Group:         Networking/Utilities
 Requires(post):        /sbin/ldconfig
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-postgresql
-Obsoletes:     bacula-db-sqlite3
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
 
 %description db-mysql
 MySQL database driver for Bacula.
@@ -379,11 +352,9 @@ Summary:   SQLite database driver for Bacula
 Summary(pl.UTF-8):     Sterownik bazy SQLite dla Baculi
 Group:         Networking/Utilities
 Requires(post):        /sbin/ldconfig
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-postgresql
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
 
 %description db-sqlite3
 SQLite database driver for Bacula.
@@ -391,239 +362,147 @@ SQLite database driver for Bacula.
 %description db-sqlite3 -l pl.UTF-8
 Sterownik bazy SQLite dla Baculi.
 
-%package db-dbi
-Summary:       libdbi database driver for Bacula
-Summary(pl.UTF-8):     Sterownik bazy libdbi dla Baculi
-Group:         Networking/Utilities
-Requires(post):        /sbin/ldconfig
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-postgresql
-Obsoletes:     bacula-db-sqlite3
-
-%description db-dbi
-libdbi database driver for Bacula.
+%package -n nagios-plugin-check_bacula
+Summary:       Nagios plugin to check bacula
+Group:         Networking
+Requires:      nagios-common
 
-%description db-dbi -l pl.UTF-8
-Sterownik baz libdbi dla Baculi.
-
-%package rescue
-Summary:       Bacula - The Network Backup Solution
-Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
-Group:         Networking/Utilities
-Requires:      %{name}-fd = %{epoch}:%{version}-%{release}
-Requires:      coreutils
-Requires:      util-linux
+%description -n nagios-plugin-check_bacula
+Nagios plugin to check bacula.
 
-%description rescue
-Bacula - It comes by night and sucks the vital essence from your
-computers.
-
-Bacula is a set of computer programs that permit you (or the system
-administrator) to manage backup, recovery, and verification of
-computer data across a network of computers of different kinds. In
-technical terms, it is a network client/server based backup program.
-Bacula is relatively easy to use and efficient, while offering many
-advanced storage management features that make it easy to find and
-recover lost or damaged files.
-
-This package installs scripts for disaster recovery and builds rescue
-floppy disk for bare metal recovery.
-
-To make the bacula rescue disk run "./make_rescue_disk
-- --copy-static-bacula
-- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
-  recreate the rescue information for this system run ./getdiskinfo
-  again.
-
-%description rescue -l pl.UTF-8
-Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-
-Bacula to zbiór programów umożliwiających administratorowi na
-zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
-
-Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy
-dyskietkę ratunkowe do odtwarzania systemu od zera.
-
-Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić
-"./make_rescue_disk
-- --copy-static-bacula - --copy-etc-files" z katalogu
-  %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe
-  dla danego systemu, należy ponownie uruchomić ./getdiskinfo .
+%define        _noautoreq      libbaccats-%{version}.so
+# provided by various db libraries as a symlink
 
 %prep
-%setup -q -a 1
+%setup -q
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
-#%patch6 -p1
-%{?with_dbi:%patch7 -p1}
-%patch8 -p1
-
-tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
        src/cats/create_* src/cats/delete_* src/cats/drop_* \
        src/cats/grant_* src/cats/make_* src/cats/update_*
 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
-
-%if %{with dbi}
-for dbtype in mysql postgresql sqlite3; do
-       sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
-done
-%endif
+sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
 
 %build
 cd autoconf
-%{__aclocal} -I bacula-macros -I gettext-macros
-# $BUILD_DIR not seen by libtoolize, export it
-BUILD_DIR=.. %{__libtoolize}
+%{__aclocal} -I bacula-macros -I gettext-macros -I libtool
+## $BUILD_DIR not seen by libtoolize, export it
+#BUILD_DIR=.. %%{__libtoolize}
 cd ..
 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
 
-base_built="no"
-
-for database in %{databases} ; do
-       CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
-       WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
-       %configure \
-               --with-scriptdir=%{_libexecdir}/%{name} \
-               %{?with_bat:--enable-bat} \
-               --disable-conio \
-               --enable-smartalloc \
-               %{?with_console_wx:--enable-bwx-console} \
-               --enable-tray-monitor \
-               %{?with_python:--with-python} \
-               --with-readline \
-               --with-tcp-wrappers \
-               --with-working-dir=%{_var}/lib/%{name} \
-               --with-dump-email="root@localhost" \
-               --with-job-email="root@localhost" \
-               --with-smtp-host=localhost \
-               --with-pid-dir=/var/run \
-               --with-subsys-dir=/var/lock/subsys \
-               --enable-batch-insert \
-               --with-$database \
-               %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
-               --with-dir-password="#FAKE-dir-password#" \
-               --with-fd-password="#FAKE-fd-password#" \
-               --with-sd-password="#FAKE-sd-password#" \
-               --with-mon-dir-password="#FAKE-mon-dir-password#" \
-               --with-mon-fd-password="#FAKE-mon-fd-password#" \
-               --with-mon-sd-password="#FAKE-mon-sd-password#" \
-               --with-openssl
-
-       if [ "$base_built" = "no" ] ; then
-               %if %{with bat}
-               cd src/qt-console
-               qmake-qt4 bat.pro
-               cd ../..
-               %endif
-
-               %{__make}
-
-               base_built="yes"
-       else
-               %{__make} -C src/cats clean
-               %{__make} -C src/cats
-       fi
-
-               # install the database library in a temporary location
-       install -d libbacsql/$database%{_libdir}
-       %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
-done
+CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
 
-%if %{with rescue}
-cd rescue
+QMAKE=%{_bindir}/qmake-qt4 \
 %configure \
-       --with-bacula=../
-cd linux/cdrom
-fakeroot %{__make}
+       DISTNAME=pld-linux \
+       --with-scriptdir=%{_libexecdir}/%{name} \
+       %{?with_qt:--enable-bat} \
+       --disable-conio \
+       --enable-smartalloc \
+       --with-readline \
+       --with-tcp-wrappers \
+       --with-working-dir=%{_var}/lib/%{name} \
+       --with-dump-email="root@localhost" \
+       --with-job-email="root@localhost" \
+       --with-smtp-host=localhost \
+       --with-pid-dir=/var/run \
+       --with-subsys-dir=/var/lock/subsys \
+       --with-systemd=%{systemdunitdir} \
+       --enable-batch-insert \
+       %{?with_pgsql:--with-postgresql} \
+       %{?with_mysql:--with-mysql} \
+       %{?with_sqlite3:--with-sqlite3} \
+       %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
+       --with-dir-password="#FAKE-dir-password#" \
+       --with-fd-password="#FAKE-fd-password#" \
+       --with-sd-password="#FAKE-sd-password#" \
+       --with-mon-dir-password="#FAKE-mon-dir-password#" \
+       --with-mon-fd-password="#FAKE-mon-fd-password#" \
+       --with-mon-sd-password="#FAKE-mon-sd-password#" \
+       --with-openssl
+
+%if %{with qt}
+cd src/qt-console
+qmake-qt4 bat.pro
+cd ../..
+%endif
+
+%{__make} 2>&1 | tee log
+# check for build errors
+grep "Error in" log && exit 1
+
+%if %{with nagios}
+# nagios plugin
+%{__make} -C examples/nagios/check_bacula
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
+               $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
+               $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \
+               $RPM_BUILD_ROOT%{systemdunitdir}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
-# install libraries for all the database backends
-# ldconfig will add the soname symlinks when one of the packages is installed
-for database in %{databases} ; do
-       for libfile in libbacsql/$database%{_libdir}/lib*-*.so ; do
-               orig_name=`basename $libfile`
-               file_prefix="${orig_name%%-*.so}"
-               file_suffix="${orig_name#*-}"
-               file_name="$file_prefix-$database-$file_suffix"
-               install "$libfile" "$RPM_BUILD_ROOT/%{_libdir}/$file_name"
-               ln -sf "$file_name" "$RPM_BUILD_ROOT/%{_libdir}/$orig_name"
-       done
+# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
+for database in %{databases}; do
+       sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
+               $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup \
+               > $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
+               chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
 done
-
-install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
-install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
-install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
-install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
-install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
-install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
-install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
-
-%if %{with console_wx}
-# tray-monitor is for regular users
-#mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
-
-install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
-#install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
-sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
-       scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
-#sed -e 's#%{_sbindir}#%{_bindir}#' \
-#      scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
-%endif
-
-%if %{with bat}
-install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
-install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
-%endif
-
-%if %{with rescue}
-# install the rescue stuff, these are the rescue scripts
-install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
+:> $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup
+
+# we use db dependant (at compile time) shell script only
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
+
+## replace with empty file, replaced by ldconfig from each db-* package on intsall
+rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+
+install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
+install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
+cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
+cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
+cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
+cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
+cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
+cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
+cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service
+
+%if %{with qt}
+# qmake somewhy does not always create install_bins target. install our own the bin
+rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
+libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
+cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
+cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
 %endif
 
 touch $RPM_BUILD_ROOT/var/log/bacula/log
 
-# install the updatedb scripts
-install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+# install the updatedb scripts for older versions that last full release
+# 2.0 -> 3.0 : 10_to_11
+# 5.0 -> 5.2 : 12_to_14
+install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_*_tables_12_to_14 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
 
 # place for site passwords
 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
 
-mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
+mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
 
 # some file changes
 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
-%if %{without console_wx}
-rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
-%endif
-touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
 
 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
@@ -638,22 +517,25 @@ rm $RPM_BUILD_ROOT%{_sbindir}/bacula
 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
 
 # unsupported
-rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
 
 # rename to avoid possible conflicts
 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
 
 # no -devel files packaged, so this is also useless
-rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
-
-# placeholders for the symlinks set in %%post db-*
-for f in create_bacula_database drop_bacula_database drop_bacula_tables \
-       grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
-
-       ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
-done
-
+rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats}.{so,la}
+#rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la}
+%{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}}
+%{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}}
+%{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}}
+
+%if %{with nagios}
+install -d $RPM_BUILD_ROOT%{nagiosplugindir}
+%{__make} -C examples/nagios/check_bacula install \
+       sbindir=%{nagiosplugindir} \
+       DESTDIR=$RPM_BUILD_ROOT
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -662,22 +544,25 @@ rm -rf $RPM_BUILD_ROOT
 %groupadd -P %{name}-common -g 136 -r -f bacula
 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
 
+%define update_configs \
+echo "Updating bacula passwords and names..." | %banner -a %{name} \
+cd %{_sysconfdir} \
+for f in *-password; do \
+       if [ ! -s $f ]; then \
+               openssl rand -base64 33 > $f \
+       fi \
+       p=$(cat $f) \
+       for cf in *.conf *.conf.rpmnew; do \
+               [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
+       done \
+done \
+for cf in *.conf *.conf.rpmnew; do \
+       [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
+done
+
 %post common
 /sbin/ldconfig
-echo "Updating bacula passwords and names..."
-cd /etc/bacula
-for f in *-password ; do
-       if [ ! -s $f ] ; then
-               openssl rand -base64 33 > $f
-       fi
-       p=`cat $f`
-       for cf in *.conf *.conf.rpmnew ; do
-               [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
-       done
-done
-for cf in *.conf *.conf.rpmnew ; do
-       [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
-done
+%update_configs
 
 %postun common
 /sbin/ldconfig
@@ -686,98 +571,66 @@ if [ "$1" = "0" ]; then
        %groupremove bacula
 fi
 
-%post dir
-umask 077
+%triggerpostun dir -- %{name}-dir < %{version}-0
+%banner bacula-dir -t3 <<EOF
+You have upgraded from an older version of Bacula director.
 
-# XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
-#      about currently used version so we can't easily support these :(
+You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
+script to upgrade the database.
 
-%if %{with sqlite3}
-[ -s %{_localstatedir}/bacula.db ] && \
-       DB_VER=`echo "select * from Version;" | \
-       %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
-
-if [ -z "$DB_VER" ]; then
-# grant privileges and create tables
-       %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
-       %{_libexecdir}/%{name}/create_bacula_database > dev/null
-       %{_libexecdir}/%{name}/make_bacula_tables > dev/null
-else
-       echo "Backing up bacula tables"
-       echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
-
-       db_type="%{database}"
-
-       next_ver=$(($DB_VER + 1))
-       # support up to version 30; increase this if needed
-       for ver in $(seq $next_ver 30); do
-               prev_ver=$(($ver - 1))
-
-               if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
-                       echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
-                       %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
-               fi
-       done
-
-       %{_libexecdir}/%{name}/update_bacula_tables
-       echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
-fi
-chown -R bacula:bacula %{_localstatedir}
-chmod -R u+rX,go-rwx %{_localstatedir}/*
-%endif
+Ensure you database partition has enough free space before you run the upgrade,
+i.e check that there is enough room to rebuild 'File' table (it is the largest
+in bacula db).
 
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+EOF
 
+%post dir
+%update_configs
 /sbin/chkconfig --add bacula-dir
 %service bacula-dir restart "Bacula Director daemon"
+%systemd_post bacula-dir.service
 
 %preun dir
 if [ "$1" = "0" ]; then
        %service bacula-dir stop
        /sbin/chkconfig --del bacula-dir
 fi
+%systemd_preun bacula-dir.service
 
-%post fd
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+%postun dir
+%systemd_reload
 
+%post fd
+%update_configs
 /sbin/chkconfig --add bacula-fd
 %service bacula-fd restart "Bacula File daemon"
+%systemd_post bacula-fd.service
 
 %preun fd
 if [ "$1" = "0" ]; then
        %service bacula-fd stop
        /sbin/chkconfig --del bacula-fd
 fi
+%systemd_preun bacula-fd.service
 
-%post sd
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+%postun fd
+%systemd_reload
 
+%post sd
+%update_configs
 /sbin/chkconfig --add bacula-sd
 %service bacula-sd restart "Bacula Storage daemon"
+%systemd_post bacula-sd.service
 
 %preun sd
 if [ "$1" = "0" ]; then
        %service bacula-sd stop
        /sbin/chkconfig --del bacula-sd
 fi
+%systemd_preun bacula-sd.service
+
+%postun sd
+%systemd_reload
 
 %pre console
 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
@@ -785,81 +638,42 @@ if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
 fi
 
 %post console
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
-
-%post console-wx
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
-
-%post console-qt4
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+%update_configs
 
-%post tray-monitor
-echo "Updating Bacula passwords and names..."
-cd /etc/bacula
-for f in *-password; do
-       p=`cat $f`
-       sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
-done
-sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
-
-%post rescue
-# link our current installed conf file to the rescue directory
-ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
+%triggerpostun common -- %{name}-common < 5.0.1-2
+find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
 
-# run getdiskinfo
-echo "Creating rescue files for this system..."
-cd %{_sysconfdir}/rescue
-./getdiskinfo
+%post console-qt
+%update_configs
 
-%preun rescue
-# remove the files created after the initial rpm installation
-if [ "$1" = "0" ]; then
-       rm -f %{_sysconfdir}/rescue/bacula-fd.conf
-       rm -f %{_sysconfdir}/rescue/partition.*
-       rm -f %{_sysconfdir}/rescue/format.*
-       rm -f %{_sysconfdir}/rescue/mount_drives
-       rm -f %{_sysconfdir}/rescue/start_network
-       rm -f %{_sysconfdir}/rescue/sfdisk
-       rm -rf %{_sysconfdir}/rescue/diskinfo/*
-fi
+%post tray-monitor
+%update_configs
 
 %define db_post() \
 /sbin/ldconfig \
-for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \
+for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
        prefix="${name%% *}" \
        suffix="${name#* }" \
-       ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || :  \
-done
+       ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
+done \
+ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
+ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
+%service bacula-dir restart "Bacula Director daemon"
 
 %post db-postgresql
 %db_post postgresql
 
+%postun db-postgresql -p /sbin/ldconfig
+
 %post db-mysql
 %db_post mysql
 
+%postun db-mysql -p /sbin/ldconfig
+
 %post db-sqlite3
 %db_post sqlite3
 
-%post db-dbi
-/sbin/ldconfig
+%postun db-sqlite3 -p /sbin/ldconfig
 
 %files common
 %defattr(644,root,root,755)
@@ -867,13 +681,15 @@ done
 %dir %{_sysconfdir}
 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
 # do not remove bsmtp from files. Fix build if it is not installed.
+%attr(755,root,root) %{_sbindir}/bpluginfo
 %attr(755,root,root) %{_sbindir}/bsmtp
 %attr(755,root,root) %{_sbindir}/btraceback
-%attr(755,root,root) %{_libdir}/libbac-%{version}.so
-%attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
-%attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
-%attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
+%attr(755,root,root) %{_libdir}/libbac-7*.so
+%attr(755,root,root) %{_libdir}/libbaccfg-7*.so
+%attr(755,root,root) %{_libdir}/libbacfind-7*.so
+%attr(755,root,root) %{_libdir}/libbacsql-7*.so
 %{_mandir}/man8/bacula.8*
+%{_mandir}/man8/bpluginfo.8*
 %{_mandir}/man1/bsmtp.1*
 %{_mandir}/man8/btraceback.8*
 %dir %{_libexecdir}/%{name}
@@ -883,26 +699,29 @@ done
 %attr(770,root,bacula) %dir %{_localstatedir}
 %attr(750,bacula,logs) %dir /var/log/bacula
 %attr(640,bacula,logs) %ghost /var/log/bacula/log
+%attr(750,bacula,logs) %dir /var/log/archive/bacula
 
 %files dir
 %defattr(644,root,root,755)
-%doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
+%doc ChangeLog ReleaseNotes LICENSE
 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
-%ghost %{_sysconfdir}/.pw.sed
 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
+%{systemdunitdir}/bacula-dir.service
 %attr(755,root,root) %{_sbindir}/bacula-dir
 %attr(755,root,root) %{_sbindir}/bregex
 %attr(755,root,root) %{_sbindir}/bwild
 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
 %{_mandir}/man8/bacula-dir.8*
 %{_mandir}/man8/bacula-dbcheck.8*
+%{_mandir}/man8/bregex.8*
+%{_mandir}/man8/bwild.8*
 %{_libexecdir}/%{name}/query.sql
-#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
-#%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
+%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
 
+%if %{with pgsql}
 %files db-postgresql
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
@@ -911,16 +730,20 @@ done
 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
-%attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
+%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-postgresql-7*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%endif
 
+%if %{with mysql}
 %files db-mysql
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
@@ -929,16 +752,20 @@ done
 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
-%attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
+%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-mysql-7*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%endif
 
+%if %{with sqlite3}
 %files db-sqlite3
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
@@ -947,49 +774,26 @@ done
 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
-%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
-%attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
+%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-sqlite3-7*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
-
-%files db-dbi
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
-%attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
-%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
-%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
-%attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
-
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
-
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%endif
 
 %files fd
 %defattr(644,root,root,755)
 %doc LICENSE
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
+%{systemdunitdir}/bacula-fd.service
 %attr(755,root,root) %{_sbindir}/bacula-fd
 %attr(755,root,root) %{_libdir}/bpipe-fd.so
 %{_mandir}/man8/bacula-fd.8*
@@ -997,10 +801,11 @@ done
 %files sd
 %defattr(644,root,root,755)
 %doc LICENSE
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
+%{systemdunitdir}/bacula-sd.service
 %attr(755,root,root) %{_sbindir}/bacula-sd
 %attr(755,root,root) %{_sbindir}/bcopy
 %attr(755,root,root) %{_sbindir}/bextract
@@ -1020,57 +825,26 @@ done
 %files console
 %defattr(644,root,root,755)
 %doc LICENSE
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
 %attr(755,root,root) %{_sbindir}/bconsole
 %{_mandir}/man8/bconsole.8*
 
-%if %{with console_wx}
-%files console-wx
-%defattr(644,root,root,755)
-%doc LICENSE
-%{_pixmapsdir}/%{name}.png
-%{_desktopdir}/bacula-wx.desktop
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
-%attr(755,root,root) %{_sbindir}/bwx-console
-%{_mandir}/man1/bacula-bwxconsole.1*
-%endif
-
-%if %{with bat}
-%files console-qt4
+%if %{with qt}
+%files console-qt
 %defattr(644,root,root,755)
 %doc LICENSE
 %{_pixmapsdir}/%{name}.png
 %{_desktopdir}/bat.desktop
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
-%attr(755,root,root) %{_sbindir}/bat
+# Do not make this file world-readable or any user will get full access to the
+# backup system
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
+%attr(755,root,root) %{_bindir}/bat
 %{_mandir}/man1/bat.1*
 %{_docdir}/%{name}
 %endif
 
-%if %{with console_wx}
-%files tray-monitor
-%defattr(644,root,root,755)
-%doc LICENSE
-%attr(755,root,root) %{_sbindir}/bacula-tray-monitor
-#%{_pixmapsdir}/%{name}-tray-monitor.xpm
-#%{_desktopdir}/%{name}-tray-monitor.desktop
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
-%{_mandir}/man1/bacula-tray-monitor.1*
-%endif
-
-%if %{with rescue}
-%files rescue
+%if %{with nagios}
+%files -n nagios-plugin-check_bacula
 %defattr(644,root,root,755)
-%doc LICENSE
-%dir %{_sysconfdir}/rescue
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
+%attr(755,root,root) %{nagiosplugindir}/check_bacula
 %endif
This page took 0.070446 seconds and 4 git commands to generate.