X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bacula.spec;h=d6466c51232dc88079106de50aff9fc767f067dc;hb=eff71f9a8bde00b28325a50b44bae6c8bf193d36;hp=0b7ecf3a22f2f18827f8eff36a1bbcc99c6116fc;hpb=44069e22efa55dabbd0ba0055ea4421e9d210b34;p=packages%2Fbacula.git diff --git a/bacula.spec b/bacula.spec index 0b7ecf3..d6466c5 100644 --- a/bacula.spec +++ b/bacula.spec @@ -2,14 +2,14 @@ # - 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 bat # bat Qt4 GUI -%if "%{pld_release}" != "ac" -%bcond_without dbi # use Database Independent Abstraction Layer (libdbi) +%if "%{pld_release}" == "ac" +%bcond_with bat # bat Qt4 GUI %else -%bcond_with dbi # use Database Independent Abstraction Layer (libdbi) +%bcond_without bat # bat Qt4 GUI %endif %bcond_without mysql # use MySQL %bcond_without pgsql # use PostgreSQL @@ -23,17 +23,18 @@ %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.0.3 -Release: 11 +Version: 5.2.4 +Release: 1 License: AGPL v3 Group: Networking/Utilities Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz -# Source0-md5: 9de254ae39cab0587fdb2f5d8d90b03b +# Source0-md5: be132861c6d576dce9fa22a40250b416 Source1: http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2 -# Source1-md5: 7a00557dcf0dfa40de9e74176fefd1ae +# Source1-md5: 62751cb3ad45682409639dbb790c5a6f Source2: http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz # Source2-md5: bb194aed8e204f54bf2f61d7e721f257 Source10: %{name}-dir.init @@ -44,26 +45,17 @@ Source14: %{name}-dir.sysconfig Source15: %{name}-fd.sysconfig Source16: %{name}-sd.sysconfig Patch0: %{name}-mtx-changer.patch -Patch1: %{name}-link.patch -Patch2: %{name}-tinfo-readline.patch -Patch3: %{name}-branding.patch -Patch4: %{name}-conf.patch -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 +Patch1: %{name}-branding.patch +Patch2: %{name}-conf.patch +Patch3: %{name}-desktop.patch +Patch4: make_catalog_backup-setup-home.patch URL: http://www.bacula.org/ BuildRequires: acl-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: gettext-devel -BuildRequires: gtk+2-devel +%{?with_console_wx:BuildRequires: gtk+2-devel} BuildRequires: libcap-devel -%{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4} BuildRequires: libtool >= 2:2.2 %if %{with rescue} BuildRequires: fakeroot @@ -79,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 @@ -102,7 +94,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %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} +%define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql} # dependency section is broken. ccache usage is instead to makefiles %undefine with_ccache @@ -257,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 @@ -398,21 +391,6 @@ SQLite database driver for Bacula. %description db-sqlite3 -l pl.UTF-8 Sterownik bazy SQLite dla Baculi. -%package db-dbi -Summary: libdbi database driver for Bacula -Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi -Group: Networking/Utilities -Requires(post): /sbin/ldconfig -Requires: %{name}-common = %{version}-%{release} -Provides: bacula(db) = %{version}-%{release} -Obsoletes: bacula(db) - -%description db-dbi -libdbi database driver for Bacula. - -%description db-dbi -l pl.UTF-8 -Sterownik baz libdbi dla Baculi. - %package rescue Summary: Bacula - The Network Backup Solution Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci @@ -459,21 +437,16 @@ 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 -%patch1 -p0 +%patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue @@ -483,12 +456,6 @@ sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \ sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in -%if %{with dbi} -for dbtype in mysql postgresql sqlite3; do - sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_* -done -%endif - %build cd autoconf %{__aclocal} -I bacula-macros -I gettext-macros @@ -499,46 +466,37 @@ cd .. 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 - WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \ - QMAKE=%{_bindir}/qt4-qmake \ - %configure \ - --with-scriptdir=%{_libexecdir}/%{name} \ - %{?with_bat:--enable-bat} \ - --disable-conio \ - --enable-smartalloc \ - %{?with_console_wx:--enable-bwx-console} \ - --enable-tray-monitor \ - %{?with_python:--with-python} \ - --with-readline \ - --with-tcp-wrappers \ - --with-working-dir=%{_var}/lib/%{name} \ - --with-dump-email="root@localhost" \ - --with-job-email="root@localhost" \ - --with-smtp-host=localhost \ - --with-pid-dir=/var/run \ - --with-subsys-dir=/var/lock/subsys \ - --enable-batch-insert \ - --with-$database \ - %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \ - --with-dir-password="#FAKE-dir-password#" \ - --with-fd-password="#FAKE-fd-password#" \ - --with-sd-password="#FAKE-sd-password#" \ - --with-mon-dir-password="#FAKE-mon-dir-password#" \ - --with-mon-fd-password="#FAKE-mon-fd-password#" \ - --with-mon-sd-password="#FAKE-mon-sd-password#" \ - --with-openssl - - # build the database library - %{__make} -C src/cats clean - %{__make} -C src/cats - - # install the database library in a temporary location - install -d libbacsql/$database%{_libdir}/%{name} - %{__make} -C src/cats install DESTDIR=$PWD/libbacsql/$database -done +WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \ +QMAKE=%{_bindir}/qt4-qmake \ +%configure \ + --with-scriptdir=%{_libexecdir}/%{name} \ + %{?with_bat:--enable-bat} \ + --disable-conio \ + --enable-smartalloc \ + %{?with_console_wx:--enable-bwx-console} \ + --enable-tray-monitor \ + %{?with_python:--with-python} \ + --with-readline \ + --with-tcp-wrappers \ + --with-working-dir=%{_var}/lib/%{name} \ + --with-dump-email="root@localhost" \ + --with-job-email="root@localhost" \ + --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} \ + %{?with_sqlite3:--with-sqlite3} \ + %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \ + --with-dir-password="#FAKE-dir-password#" \ + --with-fd-password="#FAKE-fd-password#" \ + --with-sd-password="#FAKE-sd-password#" \ + --with-mon-dir-password="#FAKE-mon-dir-password#" \ + --with-mon-fd-password="#FAKE-mon-fd-password#" \ + --with-mon-sd-password="#FAKE-mon-sd-password#" \ + --with-openssl %if %{with bat} cd src/qt-console @@ -546,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 @@ -570,36 +530,21 @@ install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/ %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -# install libraries for all the database backends -# ldconfig will add the soname symlinks when one of the packages is installed +# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost) for database in %{databases}; do - 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 - - 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 make_catalog_backup; do - > $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f + 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 -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 +rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl -# 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 +## 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 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 @@ -616,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 @@ -640,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} @@ -719,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 <