[packages/bacula] Version: 9.4.2, Amazon S3 driver, Qt5

jajcus jajcus at pld-linux.org
Mon Mar 4 15:59:59 CET 2019


commit 55b5244ac032f1f2e5e1ebadfb61805c29fb494d
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Mon Mar 4 15:59:14 2019 +0100

    Version: 9.4.2, Amazon S3 driver, Qt5

 bacula.spec      | 79 ++++++++++++++++++++++++++++++++++++++++----------------
 libs3-curl.patch | 15 +++++++++++
 2 files changed, 72 insertions(+), 22 deletions(-)
---
diff --git a/bacula.spec b/bacula.spec
index 1d49128..1a9732d 100644
--- a/bacula.spec
+++ b/bacula.spec
@@ -4,31 +4,31 @@
 #	- fix log file permissions
 #
 # Conditional build:
-%if "%{pld_release}" == "ac"
-%bcond_with	qt		# BAT / qt-console Qt4 GUI
-%else
-%bcond_without	qt		# BAT / qt-console Qt4 GUI
-%endif
+%bcond_without	qt			# BAT / qt-console Qt5 GUI
 %bcond_without	mysql			# use MySQL
 %bcond_without	pgsql			# use PostgreSQL
 %bcond_without	sqlite3			# use SQLite3
-%bcond_without	nagios		# build nagios plugin
+%bcond_without	nagios			# build nagios plugin
+%bcond_without	s3			# Amazon S3 cloud backend
 %bcond_with	sqlite3_sync_off	# makes SQLite3 backend much faster, but less reliable
 
 %if %{without sqlite3}
 %undefine       with_sqlite3_sync_off
 %endif
 
-%define	qtver	4.8.4
+# Bacula requires this specific, custom version
+%define		libs3_version	20181010
+
 Summary:	Bacula - The Network Backup Solution
 Summary(pl.UTF-8):	Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:		bacula
-Version:	9.2.2
+Version:	9.4.2
 Release:	1
 License:	AGPL v3
 Group:		Networking/Utilities
 Source0:	http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5:	4655f47bc0e5529186abc407ee9480a5
+# Source0-md5:	376e67b16cfa7254a5717177770233b6
+Source1:	https://www.bacula.org/downloads/libs3-%{libs3_version}.tar.gz
 Source10:	%{name}-dir.init
 Source11:	%{name}-fd.init
 Source12:	%{name}-sd.init
@@ -45,24 +45,27 @@ Patch2:		%{name}-desktop.patch
 Patch3:		make_catalog_backup-setup-home.patch
 Patch4:		%{name}-no_lockmgr.patch
 Patch5:		x32.patch
+Patch6:		libs3-curl.patch
 URL:		http://www.bacula.org/
 BuildRequires:	acl-devel
 BuildRequires:	autoconf >= 2.61
 BuildRequires:	automake
+%{?with_s3:BuildRequires:	curl-devel}
 BuildRequires:	gettext-tools
 BuildRequires:	libcap-devel
 BuildRequires:	libtool >= 2:2.2
 BuildRequires:	libwrap-devel
+%{?with_s3:BuildRequires:	libxml2-devel}
 BuildRequires:	ncurses-devel
 BuildRequires:	openssl-devel
 BuildRequires:	pkgconfig
 BuildRequires:	python
 BuildRequires:	python-modules
 %if %{with qt}
-BuildRequires:	QtCore-devel
-BuildRequires:	QtGui-devel
-BuildRequires:	qt4-build >= %{qtver}
-BuildRequires:	qt4-qmake >= %{qtver}
+BuildRequires:	Qt5Core-devel
+BuildRequires:	Qt5Gui-devel
+BuildRequires:	qt5-build
+BuildRequires:	qt5-qmake
 %endif
 %{?with_mysql:BuildRequires:	mysql-devel}
 %{?with_pgsql:BuildRequires:	postgresql-devel}
@@ -220,8 +223,8 @@ Summary(pl.UTF-8):	bat – narzędzie administratora Baculi
 Group:		Networking/Utilities
 Requires(post):	sed >= 4.0
 Requires:	%{name}-common = %{version}-%{release}
-Requires:	QtCore >= %{qtver}
-Obsoletes:	bacula-console-qt4 < 5.2.13-1
+Requires:	Qt5Core
+Obsoletes:	bacula-console-qt5 < 5.2.13-1
 
 %description console-qt
 Bacula - It comes by night and sucks the vital essence from your
@@ -377,7 +380,7 @@ Nagios plugin to check bacula.
 # provided by various db libraries as a symlink
 
 %prep
-%setup -q
+%setup -q -a 1
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
@@ -386,6 +389,11 @@ Nagios plugin to check bacula.
 %ifarch x32
 %patch5 -p1
 %endif
+%if %{with s3}
+cd libs3-%{libs3_version}
+%patch6 -p1
+cd ..
+%endif
 
 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
 	src/cats/create_* src/cats/delete_* src/cats/drop_* \
@@ -401,9 +409,16 @@ cd autoconf
 cd ..
 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
 
+%if %{with s3}
+cd libs3-%{libs3_version}
+CFLAGS="%{rpmcflags} -Wno-stringop-overflow" make VERBOSE=1 build/lib/libs3.a
+ln -s ../inc build/include
+cd ..
+%endif
+
 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
 
-QMAKE=%{_bindir}/qmake-qt4 \
+QMAKE=%{_bindir}/qmake-qt5 \
 %configure \
 	DISTNAME=pld-linux \
 	--with-scriptdir=%{_libexecdir}/%{name} \
@@ -424,6 +439,8 @@ QMAKE=%{_bindir}/qmake-qt4 \
 	%{?with_mysql:--with-mysql} \
 	%{?with_sqlite3:--with-sqlite3} \
 	%{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
+	%{!?with_s3:--without-s3} \
+	%{?with_s3:--with-s3=$PWD/libs3-%{libs3_version}/build} \
 	--with-dir-password="#FAKE-dir-password#" \
 	--with-fd-password="#FAKE-fd-password#" \
 	--with-sd-password="#FAKE-sd-password#" \
@@ -434,11 +451,13 @@ QMAKE=%{_bindir}/qmake-qt4 \
 
 %if %{with qt}
 cd src/qt-console
-qmake-qt4 bat.pro
+qmake-qt5 bat.pro
 cd ../..
 %endif
 
-%{__make} 2>&1 | tee log
+%{__make} \
+	%{?with_s3:S3_LIBS="$PWD/libs3-%{libs3_version}/build/lib -ls3 $(pkg-config --libs libcurl libxml2)"} \
+	2>&1 | tee log
 # check for build errors
 grep "Error in" log && exit 1
 
@@ -457,6 +476,14 @@ install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
+%{__make} -C src/stored install-aligned \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%if %{with s3}
+%{__make} -C src/stored install-cloud \
+	DESTDIR=$RPM_BUILD_ROOT
+%endif
+
 # 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" \
@@ -528,8 +555,8 @@ mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
 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,sql,cats}.{so,la}
-#rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la}
+rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats,sd}.{so,la}
+rm $RPM_BUILD_ROOT%{_libdir}/bacula-sd-*-driver.so
 %{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}}
 %{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}}
 %{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}}
@@ -818,9 +845,17 @@ ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
 %attr(755,root,root) %{_sbindir}/bscan
 %attr(755,root,root) %{_sbindir}/bsdjson
 %attr(755,root,root) %{_sbindir}/btape
-%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
+%attr(755,root,root) %{_libexecdir}/%{name}/baculabackupreport
+%attr(755,root,root) %{_libexecdir}/%{name}/bacula-tray-monitor.desktop
 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
+%attr(755,root,root) %{_libexecdir}/%{name}/isworm
+%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
 %attr(755,root,root) %{_libexecdir}/%{name}/tapealert
+%attr(755,root,root) %{_libdir}/bacula-sd-aligned-driver-9.*.so
+%if %{with s3}
+%attr(755,root,root) %{_libdir}/bacula-sd-cloud-driver-9.*.so
+%endif
+
 %{_mandir}/man8/bacula-sd.8*
 %{_mandir}/man8/bcopy.8*
 %{_mandir}/man8/bextract.8*
diff --git a/libs3-curl.patch b/libs3-curl.patch
new file mode 100644
index 0000000..ce1fac9
--- /dev/null
+++ b/libs3-curl.patch
@@ -0,0 +1,15 @@
+diff -dur -x '*~' libs3-20181010.orig/src/request.c libs3-20181010/src/request.c
+--- libs3-20181010.orig/src/request.c	2016-12-14 19:17:36.000000000 +0100
++++ libs3-20181010/src/request.c	2019-03-04 13:10:25.000000000 +0100
+@@ -1701,11 +1701,6 @@
+         return S3StatusConnectionFailed;
+     case CURLE_PARTIAL_FILE:
+         return S3StatusOK;
+-#if LIBCURL_VERSION_NUM >= 0x071101 /* 7.17.1 */
+-    case CURLE_PEER_FAILED_VERIFICATION:
+-#else
+-    case CURLE_SSL_PEER_CERTIFICATE:
+-#endif
+     case CURLE_SSL_CACERT:
+         return S3StatusServerFailedVerification;
+     default:
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/bacula.git/commitdiff/55b5244ac032f1f2e5e1ebadfb61805c29fb494d



More information about the pld-cvs-commit mailing list