X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bacula.spec;h=e922343964875b2452243f73e657f9e7a42bad1e;hb=403b68c18a0034e9f5b17b02c93c8b9a9854cfd5;hp=d0abeed4c8967033ae5c2506f39da784c1dead6c;hpb=168306e6cde4328c2179e6372da15dfe2a1b8935;p=packages%2Fbacula.git diff --git a/bacula.spec b/bacula.spec index d0abeed..e922343 100644 --- a/bacula.spec +++ b/bacula.spec @@ -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 @@ -9,29 +13,29 @@ %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 </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