]> git.pld-linux.org Git - packages/bacula.git/blobdiff - bacula.spec
- up to 5.2.5
[packages/bacula.git] / bacula.spec
index ca39a97bbf403346cd8b566890a3af9209641ae7..8533db5319d371b1f8bdbca2d75442f2ae9d119d 100644 (file)
@@ -2,11 +2,15 @@
 #      - update desktop files, think about su-wrappers for console (with .desktop files)
 #      - package web admin
 #      - fix log file permissions
+#      - check on upgrade (5.0 and 5.2 databases are NOT compatible)
 #
 # Conditional build:
 %bcond_without console_wx              # wx-console program
-%bcond_without console_gnome           # gnome console
+%if "%{pld_release}" == "ac"
+%bcond_with            bat                     # bat Qt4 GUI
+%else
 %bcond_without bat                     # bat Qt4 GUI
+%endif
 %bcond_without mysql                   # use MySQL
 %bcond_without pgsql                   # use PostgreSQL
 %bcond_without sqlite3                 # use SQLite3
 %undefine       with_sqlite3_sync_off
 %endif
 
+%define        qtver   4.6.2
 Summary:       Bacula - The Network Backup Solution
 Summary(pl.UTF-8):     Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:          bacula
-Version:       5.2.1
-Release:       0.1
+Version:       5.2.5
+Release:       1
 License:       AGPL v3
 Group:         Networking/Utilities
 Source0:       http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: 793da9f89fc5e024b6b95eb16a3120e5
+# Source0-md5: 89bd0ecf7ce0afbb222f47a01fa9a370
 Source1:       http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
-# Source1-md5: d4db495def9e7843bcca8aff2d4d493b
+# Source1-md5: fbfb246c97ef653b9714268af4250035
 Source2:       http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz
 # Source2-md5: bb194aed8e204f54bf2f61d7e721f257
 Source10:      %{name}-dir.init
@@ -44,7 +49,6 @@ Patch1:               %{name}-branding.patch
 Patch2:                %{name}-conf.patch
 Patch3:                %{name}-desktop.patch
 Patch4:                make_catalog_backup-setup-home.patch
-Patch5:                %{name}-mysql_thread.patch
 URL:           http://www.bacula.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf
@@ -67,13 +71,13 @@ BuildRequires:      python-modules
 %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: qt4-build >= %{qtver}
+BuildRequires: qt4-qmake >= %{qtver}
 %endif
 %{?with_mysql:BuildRequires:   mysql-devel}
 %{?with_pgsql:BuildRequires:   postgresql-devel}
 BuildRequires: readline-devel
+BuildRequires: rpm >= 4.4.9-56
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.268
 BuildRequires: sed >= 4.0
@@ -245,6 +249,7 @@ Summary(pl.UTF-8):  Konsola Baculi oparta na Qt4
 Group:         Networking/Utilities
 Requires(post):        sed >= 4.0
 Requires:      %{name}-common = %{version}-%{release}
+Requires:      QtCore >= %{qtver}
 
 %description console-qt4
 Bacula - It comes by night and sucks the vital essence from your
@@ -432,6 +437,9 @@ Requires:   nagios-common
 %description -n nagios-plugin-check_bacula
 Nagios plugin to check bacula.
 
+# provided by various db libraries as a symlink
+%define        _noautoreq      libbaccats-%{version}.so
+
 %prep
 %setup -q -a 1
 %patch0 -p1
@@ -439,7 +447,6 @@ Nagios plugin to check bacula.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
@@ -467,7 +474,6 @@ QMAKE=%{_bindir}/qt4-qmake \
        --disable-conio \
        --enable-smartalloc \
        %{?with_console_wx:--enable-bwx-console} \
-       %{?with_console_gnome:--enable-gnome} \
        --enable-tray-monitor \
        %{?with_python:--with-python} \
        --with-readline \
@@ -478,6 +484,7 @@ QMAKE=%{_bindir}/qt4-qmake \
        --with-smtp-host=localhost \
        --with-pid-dir=/var/run \
        --with-subsys-dir=/var/lock/subsys \
+       --with-systemd=/lib/systemd/system \
        --enable-batch-insert \
        %{?with_pgsql:--with-postgresql} \
        %{?with_mysql:--with-mysql} \
@@ -497,7 +504,9 @@ qmake-qt4 bat.pro
 cd ../..
 %endif
 
-%{__make}
+%{__make} 2>&1 | tee log
+# check for build errors
+grep "Error in" log && exit 1
 
 %if %{with nagios}
 # nagios plugin
@@ -521,14 +530,21 @@ install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
+# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
+for database in %{databases}; do
+       sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
+               $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup \
+               > $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
+               chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
+done
+:> $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup
+
 # we use db dependant (at compile time) shell script only
 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
-## dbi is not actual dbtype
-#rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_dbi_catalog_backup
 
 ## replace with empty file, replaced by ldconfig from each db-* package on intsall
-#rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
-#touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{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
@@ -545,7 +561,7 @@ cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
 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
+       scripts/wxconsole.desktop.consolehelper > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
 #sed -e 's#%{_sbindir}#%{_bindir}#' \
 #      scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
 %endif
@@ -569,7 +585,10 @@ touch $RPM_BUILD_ROOT/var/log/bacula/log
 
 # install the updatedb scripts for older versions that last full release
 # 2.0 -> 3.0 : 10_to_11
+# 5.0 -> 5.2 : 12_to_14
 install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_*_tables_12_to_14 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
 
 # place for site passwords
 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
@@ -606,9 +625,6 @@ 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}
 
-# FIXME, something in post
-rm $RPM_BUILD_ROOT/usr/lib64/libbaccats-5.2.1.so
-
 %if %{with nagios}
 install -d $RPM_BUILD_ROOT%{nagiosplugindir}
 %{__make} -C examples/nagios/check_bacula install \
@@ -651,12 +667,17 @@ if [ "$1" = "0" ]; then
        %groupremove bacula
 fi
 
-%triggerpostun dir -- %{name}-dir < 5.0
+%triggerpostun dir -- %{name}-dir < %{version}-0
 %banner bacula-dir -t3 <<EOF
 You have upgraded from an older version of Bacula director.
 
 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
 script to upgrade the database.
+
+Ensure you database partition has enough free space before you run the upgrade,
+i.e check that there is enough room to rebuild 'File' table (it is the largest
+in bacula db).
+
 EOF
 
 %post dir
@@ -741,6 +762,7 @@ for name in "create database" "drop tables" "drop database" "grant privileges" "
        ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
 done \
 ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
+ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
 %service bacula-dir restart "Bacula Director daemon"
 
 %post db-postgresql
@@ -771,6 +793,7 @@ ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup ||
 %attr(755,root,root) %{_libdir}/libbaccfg-5*.so
 %attr(755,root,root) %{_libdir}/libbacfind-5*.so
 %attr(755,root,root) %{_libdir}/libbacpy-5*.so
+%attr(755,root,root) %{_libdir}/libbacsql-5*.so
 %{_mandir}/man8/bacula.8*
 %{_mandir}/man1/bsmtp.1*
 %{_mandir}/man8/btraceback.8*
@@ -797,29 +820,30 @@ ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup ||
 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
 %{_mandir}/man8/bacula-dir.8*
 %{_mandir}/man8/bacula-dbcheck.8*
+%{_mandir}/man8/bregex.8*
+%{_mandir}/man8/bwild.8*
 %{_libexecdir}/%{name}/query.sql
 %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) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
 %attr(755,root,root) %{_libdir}/libbaccats-postgresql-5*.so
 
-#%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
-#%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
 %files db-mysql
 %defattr(644,root,root,755)
@@ -829,17 +853,17 @@ ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup ||
 %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) %{_libexecdir}/%{name}/make_mysql_catalog_backup
 %attr(755,root,root) %{_libdir}/libbaccats-mysql-5*.so
 
-#%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
-#%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
 %files db-sqlite3
 %defattr(644,root,root,755)
@@ -849,17 +873,17 @@ ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup ||
 %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}/make_sqlite3_catalog_backup
+%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
 %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-5*.so
 
-#%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
 %ghost %{_libexecdir}/%{name}/create_bacula_database
 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
 %ghost %{_libexecdir}/%{name}/drop_bacula_database
 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
 %ghost %{_libexecdir}/%{name}/make_bacula_tables
 %ghost %{_libexecdir}/%{name}/update_bacula_tables
-#%ghost %{_libexecdir}/%{name}/make_catalog_backup
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
 
 %files fd
 %defattr(644,root,root,755)
@@ -907,8 +931,8 @@ ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup ||
 %doc LICENSE
 %{_pixmapsdir}/%{name}.png
 %{_desktopdir}/bacula-wx.desktop
-#%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
-#%attr(755,root,root) %{_sbindir}/bwx-console
+%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
 
This page took 0.071001 seconds and 4 git commands to generate.