]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
- blah, check_nagios install broken, expects libtool, but uses plain install; rel 5
[packages/bacula.git] / bacula.spec
index d0abeed4c8967033ae5c2506f39da784c1dead6c..e922343964875b2452243f73e657f9e7a42bad1e 100644 (file)
@@ -1,7 +1,11 @@
 # 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 dbi                     # use Database Independent Abstraction Layer (libdbi)
 %bcond_without mysql                   # use MySQL
 %bcond_without pgsql                   # use PostgreSQL
-%bcond_with    python
-%bcond_with    rescue
 %bcond_without sqlite3                 # use SQLite3
+%bcond_without python
+%bcond_without nagios          # build nagios plugin
+%bcond_with    rescue
 %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:       5.0.1
-Release:       0.5
-Epoch:         0
+Version:       5.0.3
+Release:       5
 License:       extended GPL v2
 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: 9de254ae39cab0587fdb2f5d8d90b03b
+Source1:       http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
+# Source1-md5: 7a00557dcf0dfa40de9e74176fefd1ae
+Source2:       http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz
+# Source2-md5: bb194aed8e204f54bf2f61d7e721f257
 Source10:      %{name}-dir.init
 Source11:      %{name}-fd.init
 Source12:      %{name}-sd.init
@@ -45,42 +49,45 @@ 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}-config_no_clean.patch
+Patch9:                %{name}-openssl1.patch
+Patch10:       %{name}-dvd_rewind.patch
 URL:           http://www.bacula.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf
 BuildRequires: automake
 BuildRequires: gettext-devel
+BuildRequires: gtk+2-devel
 BuildRequires: libcap-devel
 %{?with_dbi:BuildRequires:     libdbi-devel >= 0.8.4}
-BuildRequires: libtool
+BuildRequires: libtool >= 2:2.2
 %if %{with rescue}
 BuildRequires: fakeroot
 %endif
 BuildRequires: libwrap-devel
-BuildRequires: mtx
 BuildRequires: ncurses-devel
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
 %if %{with python}
-BuildRequires: python-static
+BuildRequires: python-devel
+BuildRequires: python-modules
 %endif
 %if %{with bat}
 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:        qwt-devel >= 5.0.2-2
 %endif
 %{?with_mysql:BuildRequires:   mysql-devel}
 %{?with_pgsql:BuildRequires:   postgresql-devel}
 BuildRequires: readline-devel
+BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.268
 BuildRequires: sed >= 4.0
 %{?with_sqlite3:BuildRequires: sqlite3-devel}
+BuildRequires: which
 %if %{with console_wx}
 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
 %endif
@@ -89,8 +96,10 @@ BuildRoot:   %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
 %define                _localstatedir  /var/lib/%{name}
+%define                nagiosplugindir %{_prefix}/lib/nagios/plugins
 
-%define        databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi}
+# 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
@@ -164,8 +173,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:      bacula(db) = %{epoch}:%{version}-%{release}
+Requires:      %{name}-common = %{version}-%{release}
+Requires:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula-updatedb
 
 %description dir
@@ -200,7 +209,7 @@ 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
@@ -222,7 +231,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
@@ -244,7 +253,7 @@ 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
@@ -264,7 +273,7 @@ interfejs graficzny oparty na Qt4.
 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
@@ -281,7 +290,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
@@ -316,7 +325,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
@@ -346,8 +355,8 @@ 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}
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula(db)
 
 %description db-postgresql
@@ -361,8 +370,8 @@ 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}
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula(db)
 
 %description db-mysql
@@ -376,8 +385,8 @@ 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}
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula(db)
 
 %description db-sqlite3
@@ -391,8 +400,8 @@ 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}
+Requires:      %{name}-common = %{version}-%{release}
+Provides:      bacula(db) = %{version}-%{release}
 Obsoletes:     bacula(db)
 
 %description db-dbi
@@ -405,7 +414,7 @@ Sterownik baz libdbi dla Baculi.
 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
 
@@ -439,18 +448,26 @@ plików.
 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
 ratunkowe do odtwarzania systemu od zera.
 
+%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
+%patch1 -p0
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
-#%patch6 -p1
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
@@ -475,12 +492,11 @@ cd ..
 
 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
 
-# we wan't the 'base' build built with the first database in the list,
+# we wan't the 'base' build built with the last database in the list,
 # to make sure it is full-featured
-base_built="no"
-
-for database in %{databases} ; do
+for database in %{databases}; do
        WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
+       QMAKE=%{_bindir}/qt4-qmake \
        %configure \
                --with-scriptdir=%{_libexecdir}/%{name} \
                %{?with_bat:--enable-bat} \
@@ -508,26 +524,28 @@ for database in %{databases} ; do
                --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}
+       # build the database library
+       %{__make} -C src/cats clean
+       %{__make} -C src/cats
 
-               base_built="yes"
-       else
-               %{__make} -C src/cats clean
-               %{__make} -C src/cats
-       fi
-
-               # install the database library in a temporary location
+       # 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
+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 \
@@ -538,7 +556,6 @@ fakeroot %{__make}
 
 %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}
@@ -548,30 +565,34 @@ install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/
 
 # 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"
+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
+# replace with empty file, replaced by ldconfig from each db-* package on intsall
+rm -f $RPM_BUILD_ROOT%{_libdir}/libbacsql-%{version}.so
+touch $RPM_BUILD_ROOT%{_libdir}/libbacsql-%{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
 
 %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
+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
@@ -580,22 +601,23 @@ sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
 %endif
 
 %if %{with bat}
-install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
-install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
+mv $RPM_BUILD_ROOT{%{_sbindir},%{_bindir}}/bat
+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 the updatedb scripts for older versions that last full release
+# 2.0 -> 3.0 : 10_to_11
+install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
 
 # place for site passwords
 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
@@ -623,7 +645,7 @@ 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
@@ -636,9 +658,16 @@ rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
 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
+       touch $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
 done
 
+%if %{with nagios}
+install -d $RPM_BUILD_ROOT%{nagiosplugindir}
+%{__make} -C examples/nagios/check_bacula install \
+       sbindir=%{nagiosplugindir} \
+       INSTALL_PROGRAM="libtool --mode=install install -p" \
+       DESTDIR=$RPM_BUILD_ROOT
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -647,22 +676,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 /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
-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
@@ -671,54 +703,16 @@ if [ "$1" = "0" ]; then
        %groupremove bacula
 fi
 
-%post dir
-umask 077
-
-# 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 :(
-
-%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
+%triggerpostun dir -- %{name}-dir < 5.0
+%banner bacula-dir -t3 <<EOF
+You have upgraded from an older version of Bacula director.
 
-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 || :
+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"
 
@@ -729,14 +723,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"
 
@@ -747,14 +734,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"
 
@@ -770,40 +750,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 || :
+%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
@@ -828,18 +787,18 @@ fi
 
 %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}" || :  \
+       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 [ ! -e "$f" ] ; then \
+       for f in %{_libexecdir}/%{name}/*_bacula_*; do \
+               if [ -L "$f" -a ! -e "$f" ]; then \
                        rm "$f" \
                fi \
        done \
@@ -866,6 +825,7 @@ fi
 # 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
 
@@ -877,10 +837,10 @@ fi
 # 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
+%attr(755,root,root) %{_libdir}/libbac-5*.so
+%attr(755,root,root) %{_libdir}/libbaccfg-5*.so
+%attr(755,root,root) %{_libdir}/libbacfind-5*.so
+%attr(755,root,root) %{_libdir}/libbacpy-5*.so
 %{_mandir}/man8/bacula.8*
 %{_mandir}/man1/bsmtp.1*
 %{_mandir}/man8/btraceback.8*
@@ -919,9 +879,9 @@ fi
 %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) %{_libdir}/libbacsql-postgresql-5*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
@@ -937,9 +897,9 @@ fi
 %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) %{_libdir}/libbacsql-mysql-5*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
@@ -955,10 +915,9 @@ fi
 %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) %{_libdir}/libbacsql-sqlite3-5*.so
 
-%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
@@ -986,11 +945,9 @@ fi
 %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
+%attr(755,root,root) %{_libdir}/libbacsql-dbi-5*.so
 
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
 
 %files fd
 %defattr(644,root,root,755)
@@ -1038,7 +995,7 @@ 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
@@ -1049,8 +1006,10 @@ fi
 %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
@@ -1082,3 +1041,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.111994 seconds and 4 git commands to generate.