# - 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'
-#warning: Installed (but unpackaged) file(s) found:
-# /usr/lib64/bacula/btraceback.mdb
-# /usr/sbin/bat
-#*** WARNING: identical binaries are copied, not linked:
-# /usr/sbin/bat
-# and /usr/bin/bat
#
# 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
Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
Name: bacula
Version: 5.0.3
-Release: 4
-License: extended GPL v2
+Release: 9
+License: AGPL v3
Group: Networking/Utilities
Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
# Source0-md5: 9de254ae39cab0587fdb2f5d8d90b03b
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
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}
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
%{__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}
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
%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
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}
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
# 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
%define update_configs \
echo "Updating bacula passwords and names..." | %banner -a %{name} \
-cd /etc/bacula \
+cd %{_sysconfdir} \
for f in *-password; do \
if [ ! -s $f ]; then \
openssl rand -base64 33 > $f \
%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
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
%{_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
%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)
%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
%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)
%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) %{_libdir}/libbacsql-sqlite3-5*.so
%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
%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
%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
%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) %{_libdir}/libbacsql-dbi-5*.so
%ghost %attr(755,root,root) %{_libdir}/libbacsql-5*.so
+%endif
%files fd
%defattr(644,root,root,755)