]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
- setup $HOME in make_catalog_backup, so you could store passwords in file rather...
[packages/bacula.git] / bacula.spec
index 20ac6d772ec35e378ca979beb7ebb44be54e8a63..a96b185fa1b5d7a5b3c025b634e1b5e633b489e5 100644 (file)
@@ -2,20 +2,20 @@
 #      - 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 bat                     # bat Qt4 GUI
+%if "%{pld_release}" != "ac"
 %bcond_without dbi                     # use Database Independent Abstraction Layer (libdbi)
+%else
+%bcond_with            dbi                     # use Database Independent Abstraction Layer (libdbi)
+%endif
 %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_without nagios          # build nagios plugin
 %bcond_with    rescue
 %bcond_with    sqlite3_sync_off        # makes SQLite3 backend much faster, but less reliable
 
 Summary:       Bacula - The Network Backup Solution
 Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:          bacula
-Version:       5.0.2
-Release:       1
-License:       extended GPL v2
+Version:       5.0.3
+Release:       9
+License:       AGPL v3
 Group:         Networking/Utilities
 Source0:       http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: e9204d2e772f12662de28da3327853de
+# Source0-md5: 9de254ae39cab0587fdb2f5d8d90b03b
 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
+# 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
@@ -52,6 +52,10 @@ Patch5:              %{name}-desktop.patch
 Patch7:                %{name}-dbi_fixes.patch
 Patch8:                %{name}-dbi_dbcheck.patch
 Patch9:                %{name}-openssl1.patch
+Patch10:       %{name}-dvd_rewind.patch
+Patch11:       qmake-bin.patch
+Patch12:       install-cats-no-fail.patch
+Patch13:       make_catalog_backup-setup-home.patch
 URL:           http://www.bacula.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf
@@ -60,7 +64,7 @@ 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
@@ -93,9 +97,9 @@ BuildRequires:        wxGTK2-unicode-devel >= 2.4.0
 BuildRequires: zlib-devel
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _sysconfdir     /etc/%{name}
+%define                _sysconfdir             /etc/%{name}
 %define                _localstatedir  /var/lib/%{name}
-%define                nagiosplugindir %{_prefix}/lib/nagios/plugins
+%define                nagiosplugindir %{_libdir}/nagios/plugins
 
 # from 'the worst' to 'the best'
 %define        databases %{?with_dbi:dbi} %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
@@ -458,7 +462,7 @@ Nagios plugin to check bacula.
 %prep
 %setup -q -a 1
 %patch0 -p1
-%patch1 -p1
+%patch1 -p0
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
@@ -466,6 +470,10 @@ Nagios plugin to check bacula.
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
@@ -527,8 +535,8 @@ for database in %{databases}; do
        %{__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
+       install -d libbacsql/$database%{_libdir}/%{name}
+       %{__make} -C src/cats install DESTDIR=$PWD/libbacsql/$database
 done
 
 %if %{with bat}
@@ -554,7 +562,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}
@@ -570,11 +577,29 @@ for database in %{databases}; do
                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
+               install -p $libfile $RPM_BUILD_ROOT%{_libdir}/$file_name
+               touch $RPM_BUILD_ROOT%{_libdir}/$orig_name
        done
+
+       install -p libbacsql/$database%{_libdir}/%{name}/make_catalog_backup \
+               $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
 done
 
+# 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
+       touch $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
+done
+
+# we use db dependant (at compile time) shell script only
+rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
+# dbi is not actual dbtype
+rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_dbi_catalog_backup
+
+# 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
@@ -596,9 +621,9 @@ sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
 %endif
 
 %if %{with bat}
-# 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}
+# qmake somewhy does not always create install_bins target. install our own the bin
+rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
+libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
 %endif
 
@@ -612,14 +637,15 @@ install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
 
 touch $RPM_BUILD_ROOT/var/log/bacula/log
 
-# install the updatedb scripts
-install -p 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}
 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
 
-mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
+mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
 
 # some file changes
 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
@@ -641,7 +667,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
@@ -650,16 +676,11 @@ 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}
+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
 
@@ -670,20 +691,19 @@ 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 \
+echo "Updating bacula passwords and names..." | %banner -a %{name} \
+cd %{_sysconfdir} \
+for f in *-password; do \
+       if [ ! -s $f ]; then \
                openssl rand -base64 33 > $f \
        fi \
-       p=`cat $f` \
-       for cf in *.conf *.conf.rpmnew ; do \
+       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 \
+for cf in *.conf *.conf.rpmnew; do \
        [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
 done
 
@@ -751,7 +771,7 @@ fi
 %update_configs
 
 %triggerpostun common -- %{name}-common < 5.0.1-2
-find /etc/bacula/bat.conf* -perm /007 -print0 | xargs -0 -r chmod 600 || :
+find %{_sysconfdir}/bat.conf* -perm /007 -print0 | xargs -0 -r chmod 600 || :
 
 %post console-qt4
 %update_configs
@@ -787,35 +807,23 @@ for name in "create database" "drop tables" "drop database" "grant privileges" "
        suffix="${name#* }" \
        ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
 done \
+ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
 %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
+%postun db-postgresql -p /sbin/ldconfig
 
 %post db-mysql
 %db_post mysql
 
-%postun db-mysql
-%db_postun mysql
+%postun db-mysql -p /sbin/ldconfig
 
 %post db-sqlite3
 %db_post sqlite3
 
-%postun db-sqlite3
-%db_postun sqlite3
+%postun db-sqlite3 -p /sbin/ldconfig
 
 # dbi backend is different, as it is not bound with a specific db engine
 %post db-dbi
@@ -863,17 +871,18 @@ fi
 %{_mandir}/man8/bacula-dir.8*
 %{_mandir}/man8/bacula-dbcheck.8*
 %{_libexecdir}/%{name}/query.sql
-#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
-#%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
+%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
 
 %files db-postgresql
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/%{name}/fix_postgresql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
+%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-5*.so
 
 %ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
@@ -883,6 +892,7 @@ fi
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
 %files db-mysql
 %defattr(644,root,root,755)
@@ -892,6 +902,7 @@ 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) %{_libexecdir}/%{name}/make_mysql_catalog_backup
 %attr(755,root,root) %{_libdir}/libbacsql-mysql-5*.so
 
 %ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
@@ -901,6 +912,7 @@ fi
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
 %files db-sqlite3
 %defattr(644,root,root,755)
@@ -910,7 +922,7 @@ 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) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-5*.so
 
 %ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
@@ -920,7 +932,9 @@ fi
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
+%if %{with dbi}
 %files db-dbi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
@@ -928,12 +942,14 @@ fi
 %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}/make_postgresql_catalog_backup
 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
 %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
@@ -941,10 +957,11 @@ 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) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
 %attr(755,root,root) %{_libdir}/libbacsql-dbi-5*.so
 
 %ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
+%endif
 
 %files fd
 %defattr(644,root,root,755)
This page took 0.141223 seconds and 4 git commands to generate.