# - 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
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
%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
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
%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
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
--disable-conio \
--enable-smartalloc \
%{?with_console_wx:--enable-bwx-console} \
- %{?with_console_gnome:--enable-gnome} \
--enable-tray-monitor \
%{?with_python:--with-python} \
--with-readline \
--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} \
cd ../..
%endif
-%{__make}
+%{__make} 2>&1 | tee log
+# check for build errors
+grep "Error in" log && exit 1
%if %{with nagios}
# nagios plugin
%{__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
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
# 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}
# 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 \
%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
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
%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*
%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)
%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)
%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)
%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