]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
- openssl1.path is back, now to actually enable the openssl1-compatibility-workaround...
[packages/bacula.git] / bacula.spec
index 946e967ce2d7061a666fefbd30b405ae49712da1..338ee501b4bbaaf7becd495998c7ae5a471742c8 100644 (file)
@@ -1,56 +1,41 @@
 # TODO:
-#      - update desktop files, think about su-wrappers for console
+#      - update desktop files, think about su-wrappers for console (with .desktop files)
 #      - package web admin
 #      - fix log file permissions
+#      - no longer builds:
+#make[1]: *** No rule to make target `../lib/libbac.la', needed by `bacula-dir'.  Stop.
+#make[1]: *** Waiting for unfinished jobs....
+#make[1]: Leaving directory `/home/users/glen/rpm/BUILD.x86_64-linux/bacula-5.0.2/src/dird'
 #
 # Conditional build:
-%bcond_without console_wx      # wx-console program
-%bcond_without gnome           # gnome-console program
-%bcond_without sqlite          # use sqlite
-%bcond_without bat             # bat Qt4 GUI
-%bcond_with    mysql           # use mysql
-%bcond_with    pgsql           # use PostgreSQL
-%bcond_with    python
+%bcond_without console_wx              # wx-console program
+%bcond_without bat                     # bat Qt4 GUI
+%bcond_without dbi                     # use Database Independent Abstraction Layer (libdbi)
+%bcond_without mysql                   # use MySQL
+%bcond_without pgsql                   # use PostgreSQL
+%bcond_without sqlite3                 # use SQLite3
+%bcond_without python
+%bcond_with    nagios          # build nagios plugin
 %bcond_with    rescue
-%bcond_with    sqlite3         # use sqlite3 insted sqlite
-%bcond_with    sqlite3_sync_off        # makes sqlite3 backend much faster, but less reliable
-%if %{with sqlite}
-%define                _database       sqlite
-%endif
-%if %{with sqlite3}
-%define                _database       sqlite3
-%undefine       with_sqlite
-%undefine       with_mysql
-%undefine       with_pgsql
-%endif
-%if %{with pgsql}
-%define                _database       postgresql
-%undefine       with_sqlite
-%undefine       with_sqlite3
-%undefine       with_mysql
-%endif
-%if %{with mysql}
-%define                _database       mysql
-%undefine       with_sqlite
-%undefine       with_sqlite3
-%undefine       with_pgsql
+%bcond_with    sqlite3_sync_off        # makes SQLite3 backend much faster, but less reliable
+
+%if %{without sqlite3}
 %undefine       with_sqlite3_sync_off
 %endif
-#
+
 Summary:       Bacula - The Network Backup Solution
 Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:          bacula
-Version:       2.2.6
-Release:       1
-Epoch:         0
+Version:       5.0.2
+Release:       0.1
 License:       extended GPL v2
 Group:         Networking/Utilities
-Source0:       http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: fe964931ab3fc538a8884204d23e8a5a
-Source1:       http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
-# Source1-md5: a251dc0b5a2c8250b43e2ae372526de2
-Source2:       http://dl.sourceforge.net/bacula/%{name}-rescue-%{version}.tar.gz
-# Source2-md5: 51bc4b1e5d60593cb9f9aa80d31ad8e4
+Source0:       http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
+# Source0-md5: e9204d2e772f12662de28da3327853de
+Source1:       http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
+# Source1-md5: 7a6afbf592dde4fae0240d82ed3cb10d
+Source2:       http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
+# Source2-md5: 349623581cfe0bcd798dd137abac959a
 Source10:      %{name}-dir.init
 Source11:      %{name}-fd.init
 Source12:      %{name}-sd.init
@@ -58,55 +43,60 @@ Source13:   %{name}.logrotate
 Source14:      %{name}-dir.sysconfig
 Source15:      %{name}-fd.sysconfig
 Source16:      %{name}-sd.sysconfig
-Patch0:                %{name}-dvd-handler_path.patch
+Patch0:                %{name}-mtx-changer.patch
 Patch1:                %{name}-link.patch
-Patch2:                %{name}-compile.patch
-Patch3:                %{name}-wx28.patch
-Patch4:                %{name}-sqlite3_init_query.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
+Patch9:                %{name}-openssl1.patch
 URL:           http://www.bacula.org/
-BuildRequires: acl-static
+BuildRequires: acl-devel
+BuildRequires: autoconf
 BuildRequires: automake
+BuildRequires: gettext-devel
+BuildRequires: libcap-devel
+%{?with_dbi:BuildRequires:     libdbi-devel >= 0.8.4}
+BuildRequires: libtool
 %if %{with rescue}
 BuildRequires: fakeroot
 %endif
-BuildRequires: glibc-static
-%if %{with gnome}
-BuildRequires: libgnome-devel >= 2.0
-BuildRequires: libgnomeui-devel >= 2.0
-%endif
-BuildRequires: libstdc++-static
-BuildRequires: libwrap-static
+BuildRequires: libwrap-devel
 BuildRequires: mtx
 BuildRequires: ncurses-devel
 BuildRequires: openssl-devel
-BuildRequires: openssl-static
 BuildRequires: pkgconfig
 %if %{with python}
-BuildRequires: python-static
+BuildRequires: python-devel
 %endif
 %if %{with bat}
-BuildRequires:  qt4-build
-BuildRequires: qt4-qmake
-BuildRequires: qwt-devel >= 5.0.2-2
 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
 %endif
+%{?with_mysql:BuildRequires:   mysql-devel}
+%{?with_pgsql:BuildRequires:   postgresql-devel}
 BuildRequires: readline-devel
 BuildRequires: rpmbuild(macros) >= 1.268
 BuildRequires: sed >= 4.0
-%{?with_sqlite3:BuildRequires:  sqlite3-devel}
-%{?with_sqlite:BuildRequires:  sqlite-devel}
-%{?with_mysql:BuildRequires:  mysql-devel}
-%{?with_pgsql:BuildRequires:  postgresql-devel}
+%{?with_sqlite3:BuildRequires: sqlite3-devel}
 %if %{with console_wx}
 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
 %endif
 BuildRequires: zlib-devel
-BuildRequires: zlib-static
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
 %define                _localstatedir  /var/lib/%{name}
+%define                nagiosplugindir %{_prefix}/lib/nagios/plugins
+
+# from 'the worst' to 'the best'
+%define        databases %{?with_dbi:dbi} %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
 
 # dependency section is broken. ccache usage is instead to makefiles
 %undefine      with_ccache
@@ -180,7 +170,8 @@ 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:      %{name}-common = %{version}-%{release}
+Requires:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula-updatedb
 
 %description dir
@@ -194,9 +185,7 @@ services are comprised of the software programs responsible for
 maintaining the file indexes and volume databases for all files backed
 up. The Catalog services permit the System Administrator or user to
 quickly locate and restore any desired file, since it maintains a
-record of all Volumes used, all Jobs run, and all Files saved. This
-build requires sqlite%{?with_sqlite3:3} to be installed separately as the catalog
-database.
+record of all Volumes used, all Jobs run, and all Files saved.
 
 %description dir -l pl.UTF-8
 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
@@ -210,15 +199,14 @@ 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. Pakiet wymaga %{_database} zainstalowanego oddzielnie jako bazy
-danych dla katalogu.
+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
@@ -240,7 +228,7 @@ Summary:    Bacula wxWidgets Console
 Summary(pl.UTF-8):     Konsola Baculi oparta na wxWidgets
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
 
 %description console-wx
 Bacula - It comes by night and sucks the vital essence from your
@@ -257,53 +245,32 @@ 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-gnome
-Summary:       Bacula GNOME Console
-Summary(pl.UTF-8):     Konsola Baculi oparta dla GNOME
-Group:         Networking/Utilities
-Requires(post):        sed >= 4.0
-Requires:      %{name}-common = %{epoch}:%{version}-%{release}
-
-%description console-gnome
-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 GNOME GUI interface.
-
-%description console-gnome -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 GNOME.
-
 %package console-qt4
-Summary:       Bacula QT4 Console
-Summary(pl.UTF-8):     Konsola Baculi oparta na 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}
+Requires:      %{name}-common = %{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.
+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.
+interfejs graficzny oparty na Qt4.
 
 %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
@@ -320,7 +287,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
@@ -355,7 +322,7 @@ 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}
 Conflicts:     dvd+rw-tools <= 5.21.4.10.8-1
 
 %description sd
@@ -380,11 +347,71 @@ 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
+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 = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
+
+%description db-postgresql
+PostgreSQL database driver for Bacula.
+
+%description db-postgresql -l pl.UTF-8
+Sterownik bazy PostgreSQL dla Baculi.
+
+%package db-mysql
+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 = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
+
+%description db-mysql
+MySQL database driver for Bacula.
+
+%description db-mysql -l pl.UTF-8
+Sterownik bazy MySQL dla Baculi.
+
+%package db-sqlite3
+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 = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
+
+%description db-sqlite3
+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 = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
+Obsoletes:     bacula(db)
+
+%description db-dbi
+libdbi database driver for Bacula.
+
+%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:      %{name}-fd = %{version}-%{release}
 Requires:      coreutils
 Requires:      util-linux
 
@@ -403,12 +430,6 @@ 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.
 
@@ -424,66 +445,103 @@ 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 .
+%package -n nagios-plugin-check_bacula
+Summary:       Nagios plugin to check bacula
+Group:         Networking
+Requires:      nagios-common
+
+%description -n nagios-plugin-check_bacula
+Nagios plugin to check bacula.
 
 %prep
 %setup -q -a 1
-
 %patch0 -p1
 %patch1 -p1
-#%patch2 -p1
-#%patch3 -p1
-#%patch4 -p1
+#%patch2 -p1 CHECKME
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+#%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
-sed -i -e 's#wx-config#wx-gtk2-unicode-config#g' configure*
-sed -i -e 's#-lreadline -lhistory -ltermcap#-lreadline -lhistory#g' configure*
+
 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
+
 %build
-cp -f %{_datadir}/automake/config.sub autoconf
+cd autoconf
+%{__aclocal} -I bacula-macros -I gettext-macros
+# $BUILD_DIR not seen by libtoolize, export it
+BUILD_DIR=.. %{__libtoolize}
+cd ..
+%{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
+
 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
-%configure \
-       --with-scriptdir=%{_libexecdir}/%{name} \
-       --%{!?with_gnome:dis}%{?with_gnome:en}able-gnome \
-       %{?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 \
-       --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
+
+# we wan't the 'base' build built with the last database in the list,
+# to make sure it is full-featured
+for database in %{databases}; do
+       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
+
+       # build the database library
+       %{__make} -C src/cats clean
+       %{__make} -C src/cats
+
+       # install the database library in a temporary location
+       install -d libbacsql/$database%{_libdir}
+       %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
+done
 
 %if %{with bat}
 cd src/qt-console
-qt4-qmake bat.pro
+qmake-qt4 bat.pro
 cd ../..
 %endif
 
 %{__make}
 
+%if %{with nagios}
+# nagios plugin
+%{__make} -C examples/nagios/check_bacula
+%endif
+
 %if %{with rescue}
 cd rescue
 %configure \
@@ -497,64 +555,112 @@ 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}}
+install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
-# static daemon
-#strip -R.comment -R.note src/filed/static-bacula-fd
-#install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
+# 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=${libfile##*/}
+               file_prefix=${orig_name%%-*.so}
+               file_suffix=${orig_name#*-}
+               file_name=$file_prefix-$database-$file_suffix
+               install -p $libfile $RPM_BUILD_ROOT/%{_libdir}/$file_name
+               touch $RPM_BUILD_ROOT/%{_libdir}/$orig_name
+       done
+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
+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
 
 %if %{with console_wx}
 # tray-monitor is for regular users
-mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
+#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
-install scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT%{_desktopdir}/bacula.desktop
+cp -a 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
+#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/bat $RPM_BUILD_ROOT%{_sbindir}
-install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
+# TODO: libtool install
+#libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
+install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_bindir}
+cp -a 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
+cp -a rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
+cp -a rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
+install -p rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
+install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
 %endif
 
+touch $RPM_BUILD_ROOT/var/log/bacula/log
+
 # install the updatedb scripts
-install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_sqlite* $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
+
 # some file changes
 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
-rm -f $RPM_BUILD_ROOT%{_sbindir}/static-bacula-fd
-%if !%{with console_wx}
+%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
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
+
+# startup scripts, those in /etc/rc.d/init.d are better
+rm $RPM_BUILD_ROOT%{_sbindir}/bacula
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
+
+# unsupported
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
+
+# 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
+
+%if %{with nagios}
+%{__make} -C examples/nagios/check_bacula install \
+       sbindir=%{nagiosplugindir} \
+       DESTDIR=$RPM_BUILD_ROOT
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -562,80 +668,44 @@ 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
 
-%post common
-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" || :
+
+%define update_configs \
+echo "Updating bacula passwords and names..." | %banner \
+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
 
+%post common
+/sbin/ldconfig
+%update_configs
+
 %postun common
+/sbin/ldconfig
 if [ "$1" = "0" ]; then
        %userremove bacula
        %groupremove bacula
 fi
 
-%post dir
-umask 077
-[ -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
-elif [ "$DB_VER" -lt "9" ]; then
-       echo "Backing up bacula tables"
-       echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
-       echo "Upgrading bacula tables"
-       %if %{with sqlite3}
-               type=sqlite3
-               if [ "$DB_VER" -lt "9" ]; then
-                       %{_libexecdir}/%{name}/update_${type}_tables_8_to_9
-               fi
-       %endif
-       %if %{with sqlite}
-               type=sqlite
-               if [ "$DB_VER" -lt "9" ]; then
-                       if [ "$DB_VER" -lt "8" ]; then
-                               if [ "$DB_VER" -lt "7" ]; then
-                                       if [ "$DB_VER" -lt "6" ]; then
-                                               if [ "$DB_VER" -lt "5" ]; then
-                                                       %{_libexecdir}/%{name}/update_${type}_tables_4_to_5
-                                               fi
-                                               %{_libexecdir}/%{name}/update_${type}_tables_5_to_6
-                                       fi
-                                       %{_libexecdir}/%{name}/update_${type}_tables_6_to_7
-                               fi
-                               %{_libexecdir}/%{name}/update_${type}_tables_7_to_8
-                       fi
-                       %{_libexecdir}/%{name}/update_${type}_tables_8_to_9
-               fi
-       %endif
-       %{_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}/*
-
-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 || :
+%triggerpostun dir -- %{name}-dir < 5.0
+%banner bacula-dir -t3 <<EOF
+You have upgraded from an older version of Bacula director.
+
+You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
+script to upgrade the database.
+EOF
 
+%post dir
+%update_configs
 /sbin/chkconfig --add bacula-dir
 %service bacula-dir restart "Bacula Director daemon"
 
@@ -646,14 +716,7 @@ if [ "$1" = "0" ]; then
 fi
 
 %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 || :
-
+%update_configs
 /sbin/chkconfig --add bacula-fd
 %service bacula-fd restart "Bacula File daemon"
 
@@ -664,14 +727,7 @@ if [ "$1" = "0" ]; then
 fi
 
 %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 || :
-
+%update_configs
 /sbin/chkconfig --add bacula-sd
 %service bacula-sd restart "Bacula Storage daemon"
 
@@ -687,49 +743,19 @@ 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 || :
+%update_configs
 
 %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-gnome
-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
+
+%triggerpostun common -- %{name}-common < 5.0.1-2
+find /etc/bacula/bat.conf* -perm /007 -print0 | xargs -0 -r chmod 600 || :
 
 %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 || :
+%update_configs
 
 %post rescue
 # link our current installed conf file to the rescue directory
@@ -752,26 +778,78 @@ if [ "$1" = "0" ]; then
        rm -rf %{_sysconfdir}/rescue/diskinfo/*
 fi
 
+%define db_post() \
+/sbin/ldconfig \
+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 \
+%service bacula-dir restart "Bacula Director daemon"
+
+%define db_postun() \
+/sbin/ldconfig \
+if [ "$1" = "0" ]; then \
+       for f in %{_libexecdir}/%{name}/*_bacula_*; do \
+               if [ -L "$f" -a ! -e "$f" ]; then \
+                       rm "$f" \
+               fi \
+       done \
+fi
+
+%post db-postgresql
+%db_post postgresql
+
+%postun db-postgresql
+%db_postun postgresql
+
+%post db-mysql
+%db_post mysql
+
+%postun db-mysql
+%db_postun mysql
+
+%post db-sqlite3
+%db_post sqlite3
+
+%postun db-sqlite3
+%db_postun sqlite3
+
+# dbi backend is different, as it is not bound with a specific db engine
+%post db-dbi
+/sbin/ldconfig
+%service bacula-dir restart "Bacula Director daemon"
+
+%postun db-dbi -p /sbin/ldconfig
+
 %files common
 %defattr(644,root,root,755)
 %doc LICENSE
 %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}/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
 %{_mandir}/man8/bacula.8*
 %{_mandir}/man1/bsmtp.1*
 %{_mandir}/man8/btraceback.8*
 %dir %{_libexecdir}/%{name}
 %{_libexecdir}/%{name}/btraceback.dbx
 %{_libexecdir}/%{name}/btraceback.gdb
+%{_libexecdir}/%{name}/bacula_config
 %attr(770,root,bacula) %dir %{_localstatedir}
+%attr(750,bacula,logs) %dir /var/log/bacula
+%attr(640,bacula,logs) %ghost /var/log/bacula/log
 
 %files dir
 %defattr(644,root,root,755)
 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
+%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
@@ -779,50 +857,92 @@ fi
 %attr(755,root,root) %{_sbindir}/bacula-dir
 %attr(755,root,root) %{_sbindir}/bregex
 %attr(755,root,root) %{_sbindir}/bwild
-%attr(755,root,root) %{_sbindir}/dbcheck
+%attr(755,root,root) %{_sbindir}/bacula-dbcheck
 %{_mandir}/man8/bacula-dir.8*
-%{_mandir}/man8/dbcheck.8*
+%{_mandir}/man8/bacula-dbcheck.8*
 %{_libexecdir}/%{name}/query.sql
-%if %{with sqlite3}
+#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
+#%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
+
+%files db-postgresql
+%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) %{_libdir}/libbacsql-postgresql-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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-mysql
+%defattr(644,root,root,755)
+%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) %{_libdir}/libbacsql-mysql-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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-sqlite3
+%defattr(644,root,root,755)
 %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_*
-%endif
-%if %{with sqlite}
-%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
-%endif
-%if %{with mysql}
-%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_*
-%endif
-%if %{with pgsql}
+%attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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_*
-%endif
-%attr(755,root,root) %{_libexecdir}/%{name}/create_bacula_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_bacula_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
-%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
+%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
 
 %files fd
 %defattr(644,root,root,755)
@@ -831,13 +951,14 @@ fi
 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
 %attr(755,root,root) %{_sbindir}/bacula-fd
+%attr(755,root,root) %{_libdir}/bpipe-fd.so
 %{_mandir}/man8/bacula-fd.8*
 
 %files sd
 %defattr(644,root,root,755)
 %doc LICENSE
-%dir %{_sysconfdir}
 %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(754,root,root) /etc/rc.d/init.d/bacula-sd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
 %attr(755,root,root) %{_sbindir}/bacula-sd
@@ -869,41 +990,33 @@ fi
 %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(640,root,bacula) %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 gnome}
-%files console-gnome
-%defattr(644,root,root,755)
-%doc LICENSE
-%{_pixmapsdir}/%{name}.png
-%{_desktopdir}/bacula.desktop
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bgnome-console.conf
-%attr(755,root,root) %{_sbindir}/bgnome-console
-%{_mandir}/man1/bacula-bgnome-console.1*
-%endif
-
 %if %{with bat}
 %files console-qt4
 %defattr(644,root,root,755)
 %doc LICENSE
 %{_pixmapsdir}/%{name}.png
 %{_desktopdir}/bat.desktop
-%attr(600,root,root) %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
-%{_pixmapsdir}/%{name}-tray-monitor.xpm
-%{_desktopdir}/%{name}-tray-monitor.desktop
+%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
-%attr(755,root,root) %{_bindir}/bacula-tray-monitor
 %{_mandir}/man1/bacula-tray-monitor.1*
 %endif
 
@@ -923,3 +1036,9 @@ fi
 %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
 %endif
+
+%if %{with nagios}
+%files -n nagios-plugin-check_bacula
+%defattr(644,root,root,755)
+%attr(755,root,root) %{nagiosplugindir}/check_bacula
+%endif
This page took 0.094641 seconds and 4 git commands to generate.