]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
- patch to build with openssl-1.0.0
[packages/bacula.git] / bacula.spec
index b9894acc0db5bf2f4bbc9c3a84cd997677532e4f..b3fbbdcd58f257f34b7843937e911ad326e114e9 100644 (file)
@@ -9,9 +9,9 @@
 %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_with    rescue
 %bcond_with    sqlite3_sync_off        # makes SQLite3 backend much faster, but less reliable
 #
 %if %{without sqlite3}
@@ -22,7 +22,7 @@ Summary:      Bacula - The Network Backup Solution
 Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:          bacula
 Version:       5.0.1
-Release:       0.2
+Release:       3
 Epoch:         0
 License:       extended GPL v2
 Group:         Networking/Utilities
@@ -48,6 +48,7 @@ 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-devel
 BuildRequires: autoconf
@@ -65,7 +66,7 @@ BuildRequires:        ncurses-devel
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
 %if %{with python}
-BuildRequires: python-static
+BuildRequires: python-devel
 %endif
 %if %{with bat}
 BuildRequires: QtCore-devel
@@ -89,7 +90,8 @@ BuildRoot:    %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                _sysconfdir     /etc/%{name}
 %define                _localstatedir  /var/lib/%{name}
 
-%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
@@ -111,12 +113,12 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Bacula to zbiór programów umożliwiających administratorowi na
 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
 
 %package common
 Summary:       Common files for bacula package
@@ -151,12 +153,12 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Bacula to zbiór programów umożliwiających administratorowi na
 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
 
 %package dir
 Summary:       Bacula Director and Catalog services
@@ -187,12 +189,12 @@ Bacula Director to program nadzorujący wszystkie operacje wykonywania
 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
 Administrator używa Bacula Directora do szeregowania kopii zapasowych
 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
-używane przez programy odpowiedzialne za zarządzanie indeksami
-plików i bazą danych wolumenów dla wszystkich kopiowanych plików.
-Usługi katalogowe umożliwiają administratorowi lub użytkownikowi
-szybko zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują
-rekord ze wszystkimi używanymi wolumenami, uruchomionymi zadaniami i
-zapisanymi plikami.
+używane przez programy odpowiedzialne za zarządzanie indeksami plików
+i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
+katalogowe umożliwiają administratorowi lub użytkownikowi szybko
+zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
+wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
+plikami.
 
 %package console
 Summary:       Bacula Console
@@ -299,16 +301,16 @@ Client (for example in Bacula configuration file).
 %description fd -l pl.UTF-8
 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
-Usługi Bacula File (inaczej program kliencki) to oprogramowanie,
-które instaluje się na maszynach, z których mają być wykonywane
-kopie zapasowe. Są one specyficzne dla systemu operacyjnego, pod
-którym działa dana maszyna i odpowiadają za dostarczanie atrybutów
-i danych plików na żądanie Directora. Usługi plikowe są także
-odpowiedzialne za zależną od systemu plików część odzyskiwania
-atrybutów i danych plików podczas operacji odzyskiwania danych.
-Program działa jako demon na maszynie, która ma być backupowana i w
-części dokumentacji demon ten (File) jest nazywany klientem (na
-przykład w pliku konfiguracyjnym Baculi).
+Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
+instaluje się na maszynach, z których mają być wykonywane kopie
+zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
+działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
+plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
+zależną od systemu plików część odzyskiwania atrybutów i danych plików
+podczas operacji odzyskiwania danych. Program działa jako demon na
+maszynie, która ma być backupowana i w części dokumentacji demon ten
+(File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
+Baculi).
 
 %package sd
 Summary:       Bacula Storage services
@@ -334,10 +336,10 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Usługi Bacula Storage składają się z programów obsługujących
 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
-fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage
-jest odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
-przechowywania danych, np. plików). Usługi Storage działają jako
-demon na maszynie, która zawiera urządzenie backupowe (zwykle napęd
+fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
+odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
+przechowywania danych, np. plików). Usługi Storage działają jako demon
+na maszynie, która zawiera urządzenie backupowe (zwykle napęd
 taśmowy).
 
 %package db-postgresql
@@ -347,9 +349,7 @@ Group:              Networking/Utilities
 Requires(post):        /sbin/ldconfig
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-sqlite3
+Obsoletes:     bacula(db)
 
 %description db-postgresql
 PostgreSQL database driver for Bacula.
@@ -364,9 +364,7 @@ Group:              Networking/Utilities
 Requires(post):        /sbin/ldconfig
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-postgresql
-Obsoletes:     bacula-db-sqlite3
+Obsoletes:     bacula(db)
 
 %description db-mysql
 MySQL database driver for Bacula.
@@ -381,9 +379,7 @@ Group:              Networking/Utilities
 Requires(post):        /sbin/ldconfig
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-dbi
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-postgresql
+Obsoletes:     bacula(db)
 
 %description db-sqlite3
 SQLite database driver for Bacula.
@@ -398,9 +394,7 @@ Group:              Networking/Utilities
 Requires(post):        /sbin/ldconfig
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Provides:      bacula(db) = %{epoch}:%{version}-%{release}
-Obsoletes:     bacula-db-mysql
-Obsoletes:     bacula-db-postgresql
-Obsoletes:     bacula-db-sqlite3
+Obsoletes:     bacula(db)
 
 %description db-dbi
 libdbi database driver for Bacula.
@@ -431,32 +425,20 @@ recover lost or damaged files.
 This package installs scripts for disaster recovery and builds rescue
 floppy disk for bare metal recovery.
 
-To make the bacula rescue disk run "./make_rescue_disk
-- --copy-static-bacula
-- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
-  recreate the rescue information for this system run ./getdiskinfo
-  again.
-
 %description rescue -l pl.UTF-8
 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
 
 Bacula to zbiór programów umożliwiających administratorowi na
 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
-sieci komputerów różnego rodzaju. W terminologii technicznej jest
-to program do kopii zapasowych pracujący w architekturze
-klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
-oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
-nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
-uszkodzonych plików.
-
-Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy
-dyskietkę ratunkowe do odtwarzania systemu od zera.
-
-Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić
-"./make_rescue_disk
-- --copy-static-bacula - --copy-etc-files" z katalogu
-  %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe
-  dla danego systemu, należy ponownie uruchomić ./getdiskinfo .
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
+
+Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
+ratunkowe do odtwarzania systemu od zera.
 
 %prep
 %setup -q -a 1
@@ -467,8 +449,9 @@ Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić
 %patch4 -p1
 %patch5 -p1
 #%patch6 -p1
-%{?with_dbi:%patch7 -p1}
+%patch7 -p1
 %patch8 -p1
+%patch9 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
@@ -491,10 +474,11 @@ BUILD_DIR=.. %{__libtoolize}
 cd ..
 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
 
-base_built="no"
+CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
 
+# 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
-       CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
        WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
        %configure \
                --with-scriptdir=%{_libexecdir}/%{name} \
@@ -523,26 +507,23 @@ 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}
-
-               base_built="yes"
-       else
-               %{__make} -C src/cats clean
-               %{__make} -C src/cats
-       fi
+       # build the database library
+       %{__make} -C src/cats clean
+       %{__make} -C src/cats
 
-               # 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 rescue}
 cd rescue
 %configure \
@@ -564,23 +545,23 @@ 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 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
@@ -595,7 +576,7 @@ 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 src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_bindir}
 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
 %endif
 
@@ -662,22 +643,26 @@ 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 \
+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
@@ -686,54 +671,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"
 
@@ -744,14 +691,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"
 
@@ -762,14 +702,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"
 
@@ -785,40 +718,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
@@ -847,19 +759,43 @@ for name in "create database" "drop tables" "drop database" "grant privileges" "
        prefix="${name%% *}" \
        suffix="${name#* }" \
        ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || :  \
-done
+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)
@@ -1030,7 +966,7 @@ done
 %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
@@ -1041,8 +977,10 @@ done
 %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
This page took 0.059195 seconds and 4 git commands to generate.