diff -Nru bacula-7.4.1~dfsg/debian/changelog bacula-7.4.1~dfsg/debian/changelog --- bacula-7.4.1~dfsg/debian/changelog 2016-06-09 11:40:43.000000000 -0700 +++ bacula-7.4.1~dfsg/debian/changelog 2016-07-06 08:57:41.000000000 -0700 @@ -1,3 +1,19 @@ +bacula (7.4.1~dfsg-1ubuntu1) yakkety; urgency=medium + + * debian/patches/libmysqlclient_r.patch: Fix bug where MySQL 5.7 is + improperly linked on Ubuntu 16.04. Closes LP: #1570923. + * debian/patches/mysql_install_update.patch: mysql database + install/update scripts patch. Fixes bug #1901. Closes LP: #1591397. + * debian/patches/disable_mysql_NO_ZERO_DATE.patch: Disable + NO_ZERO_DATE mode for MySQL table creation. Closes LP: #1591397, + LP: #1577858. + * d/rules: do not use -Bsymoblic-functions when linking. Closes + LP: #1553563, LP: #1567824. + * debian/patches/fix_batch_mode.patch: Detect that MySQL 5.7 is thread + safe and enable batch mode. Closes LP: #1592749. + + -- Nishanth Aravamudan Fri, 24 Jun 2016 09:15:31 -0700 + bacula (7.4.1~dfsg-1) unstable; urgency=high * New upstream release diff -Nru bacula-7.4.1~dfsg/debian/control bacula-7.4.1~dfsg/debian/control --- bacula-7.4.1~dfsg/debian/control 2016-06-09 11:40:43.000000000 -0700 +++ bacula-7.4.1~dfsg/debian/control 2016-06-24 13:36:52.000000000 -0700 @@ -1,7 +1,8 @@ Source: bacula Section: admin Priority: optional -Maintainer: Debian Bacula Team +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian Bacula Team Uploaders: Carsten Leonhardt Build-Depends: autoconf, diff -Nru bacula-7.4.1~dfsg/debian/patches/disable_mysql_NO_ZERO_DATE.patch bacula-7.4.1~dfsg/debian/patches/disable_mysql_NO_ZERO_DATE.patch --- bacula-7.4.1~dfsg/debian/patches/disable_mysql_NO_ZERO_DATE.patch 1969-12-31 16:00:00.000000000 -0800 +++ bacula-7.4.1~dfsg/debian/patches/disable_mysql_NO_ZERO_DATE.patch 2016-06-24 13:36:47.000000000 -0700 @@ -0,0 +1,20 @@ +Description: Disable NO_ZERO_DATE mode for MySQL table creation + bacula-director-mysql installation currently fails in a fresh install, + because MySQL 5.7 is running in strict mode and the mode includes + NO_ZERO_DATE by default. Disable this mode, to ensure table creation + succeeds. Thanks to Paul Gevers for the suggestion. +Author: Nishanth Aravamudan +Bug-Ubuntu: https://launchpad.net/bugs/1577858 +Bug-Ubuntu: https://launchpad.net/bugs/1591397 + +--- bacula-7.4.1~dfsg.orig/src/cats/make_mysql_tables.in ++++ bacula-7.4.1~dfsg/src/cats/make_mysql_tables.in +@@ -14,6 +14,8 @@ PATH="$bindir:$PATH" + db_name=${db_name:-@db_name@} + + if mysql -D ${db_name} $* -f < +Author: Nishanth Aravamudan +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1592749 +Origin: upstream, http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-7.4&id=e0b430ca694f47c5088edda9fd6c9015a1815bc6 + +--- bacula-7.4.1~dfsg.orig/autoconf/bacula-macros/db.m4 ++++ bacula-7.4.1~dfsg/autoconf/bacula-macros/db.m4 +@@ -484,6 +484,7 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@ + DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}" + MYSQL_LIBS="$MYSQL_LIBDIR" + MYSQL_INCLUDE="$MYSQL_INCDIR" ++ AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]) + if test -z "${batch_insert_db_backends}"; then + batch_insert_db_backends="MySQL" + else diff -Nru bacula-7.4.1~dfsg/debian/patches/libmysqlclient_r.patch bacula-7.4.1~dfsg/debian/patches/libmysqlclient_r.patch --- bacula-7.4.1~dfsg/debian/patches/libmysqlclient_r.patch 1969-12-31 16:00:00.000000000 -0800 +++ bacula-7.4.1~dfsg/debian/patches/libmysqlclient_r.patch 2016-06-24 13:36:47.000000000 -0700 @@ -0,0 +1,296 @@ +Description: Fix bug where MySQL 5.7 is improperly linked on Ubuntu 16.04 + Fix build to link against libmysqlclient, not libmysqlclient_r. Thanks + to Robie Basak . +Author: Nishanth Aravamudan +Origin: upstream, http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-7.4&id=d3196af3e6c9f65b9f0790625a2e844dcb5fd190 +Bug-Ubuntu: https://launchpad.net/bugs/1570923 +Forwarded: no +Last-Update: 2016-06-21 + +--- bacula-7.4.1~dfsg.orig/autoconf/bacula-macros/db.m4 ++++ bacula-7.4.1~dfsg/autoconf/bacula-macros/db.m4 +@@ -1,5 +1,5 @@ + # +-# Copyright (C) 2000-2015 Kern Sibbald ++# Copyright (C) 2000-2016 Kern Sibbald + # License: BSD 2-Clause; see file LICENSE-FOSS + # + AC_DEFUN([BA_CHECK_DBI_DB], +@@ -339,25 +339,27 @@ AC_MSG_CHECKING(for MySQL support) + AC_ARG_WITH(mysql, + AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]), + [ ++ HAVE_LIBSR="no" + if test "$withval" != "no"; then +- if test "$withval" = "yes"; then +-# +-# This code is very broken on older systems +-# +- MYSQL_CONFIG=`which mysql_config 2>/dev/null` +- if test "x${MYSQL_CONFIG}" != x; then +- MYSQL_BINDIR="${MYSQL_CONFIG%/*}" ++ if test "$withval" = "yes"; then ++ MYSQL_CONFIG=`which mysql_config 2>/dev/null` ++ if test "x${MYSQL_CONFIG}" != x; then ++ MYSQL_BINDIR="${MYSQL_CONFIG%/*}" ++ ${MYSQL_CONFIG} --libs_r > /dev/null 2>&1 ++ if test $? = 0 ; then ++ MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs_r` ++ MYSQL_INCDIR=`${MYSQL_CONFIG} --include` ++ HAVE_LIBSR="yes" ++ else + ${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1 +- if test $? = 0 ; then ++ if test $? = 0; then + MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir` + MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir` +- else +- MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs_r | sed -e 's/.*-L//' -e 's/ .*//'` +- MYSQL_INCDIR=`${MYSQL_CONFIG} --include | sed -e 's/-I//'` + fi +-# fi +-# if [ "x${MYSQL_LIB}" = x -o "x${MYSQL_INCDIR}" = x ]; then +- elif test -f /usr/local/mysql/include/mysql/mysql.h; then ++ fi ++ fi ++ if [ "x${MYSQL_LIBDIR}" = x -o "x${MYSQL_INCDIR}" = x ]; then ++ if test -f /usr/local/mysql/include/mysql/mysql.h; then + MYSQL_INCDIR=/usr/local/mysql/include/mysql + if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \ + -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then +@@ -415,117 +417,133 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@ + AC_MSG_RESULT(no) + AC_MSG_ERROR(Unable to find mysql.h in standard locations) + fi +- else +- if test -f $withval/include/mysql/mysql.h; then +- MYSQL_INCDIR=$withval/include/mysql +- if test -f $withval/lib64/mysql/libmysqlclient_r.a \ +- -o -f $withval/lib64/mysql/libmysqlclient_r.so; then +- MYSQL_LIBDIR=$withval/lib64/mysql +- elif test -f $withval/lib64/libmysqlclient_r.a \ +- -o -f $withval/lib64/libmysqlclient_r.so; then +- MYSQL_LIBDIR=$withval/lib64 +- elif test -f $withval/lib/libmysqlclient_r.a \ +- -o -f $withval/lib/libmysqlclient_r.so; then +- MYSQL_LIBDIR=$withval/lib +- else +- MYSQL_LIBDIR=$withval/lib/mysql +- fi +- MYSQL_BINDIR=$withval/bin +- elif test -f $withval/include/mysql.h; then +- MYSQL_INCDIR=$withval/include +- if test -f $withval/lib64/libmysqlclient_r.a \ +- -o -f $withval/lib64/libmysqlclient_r.so; then +- MYSQL_LIBDIR=$withval/lib64 +- else +- MYSQL_LIBDIR=$withval/lib +- fi +- MYSQL_BINDIR=$withval/bin +- elif test -f $withval/mysql.h; then +- dnl MacPorts on OSX has a special MySQL Layout. See #2079 +- MYSQL_INCDIR=$withval +- AC_MSG_NOTICE(Got with-mysql variable $MYSQL_INCDIR checking MySQL version) +- case $MYSQL_INCDIR in +- *mysql55*) +- AC_MSG_NOTICE(Assuming MacPorts MySQL 5.5 variant installed) +- dnl with-mysql given contains mysql55 - assuming OSX MacPorts MySQL55 variant +- if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \ +- -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then +- AC_MSG_NOTICE(Found MySQL 5.5 library in $prefix/lib/mysql55/mysql) +- MYSQL_LIBDIR=$prefix/lib/mysql55/mysql +- fi +- MYSQL_BINDIR=$prefix/lib/mysql55/bin +- ;; +- *mysql51*) +- AC_MSG_NOTICE(Assuming MacPorts MySQL 5.1 variant installed) +- dnl with-mysql contains mysql51 - assuming OSX MacPorts MySQL51 variant +- if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \ +- -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then +- AC_MSG_NOTICE(Found MySQL 5.1 library in $prefix/lib/mysql55/mysql) +- MYSQL_LIBDIR=$prefix/lib/mysql51/mysql +- fi +- MYSQL_BINDIR=$prefix/lib/mysql51/bin +- ;; +- esac +- if test -z "${MYSQL_LIBDIR}" ; then +- AC_MSG_RESULT(no) +- AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries) +- fi +- else ++ fi ++ else ++ if test -f $withval/include/mysql/mysql.h; then ++ MYSQL_INCDIR=$withval/include/mysql ++ if test -f $withval/lib64/mysql/libmysqlclient_r.a \ ++ -o -f $withval/lib64/mysql/libmysqlclient_r.so; then ++ MYSQL_LIBDIR=$withval/lib64/mysql ++ elif test -f $withval/lib64/libmysqlclient_r.a \ ++ -o -f $withval/lib64/libmysqlclient_r.so; then ++ MYSQL_LIBDIR=$withval/lib64 ++ elif test -f $withval/lib/libmysqlclient_r.a \ ++ -o -f $withval/lib/libmysqlclient_r.so; then ++ MYSQL_LIBDIR=$withval/lib ++ else ++ MYSQL_LIBDIR=$withval/lib/mysql ++ fi ++ MYSQL_BINDIR=$withval/bin ++ elif test -f $withval/include/mysql.h; then ++ MYSQL_INCDIR=$withval/include ++ if test -f $withval/lib64/libmysqlclient_r.a \ ++ -o -f $withval/lib64/libmysqlclient_r.so; then ++ MYSQL_LIBDIR=$withval/lib64 ++ else ++ MYSQL_LIBDIR=$withval/lib ++ fi ++ MYSQL_BINDIR=$withval/bin ++ elif test -f $withval/mysql.h; then ++ dnl MacPorts on OSX has a special MySQL Layout. See #2079 ++ MYSQL_INCDIR=$withval ++ AC_MSG_NOTICE(Got with-mysql variable $MYSQL_INCDIR checking MySQL version) ++ case $MYSQL_INCDIR in ++ *mysql55*) ++ AC_MSG_NOTICE(Assuming MacPorts MySQL 5.5 variant installed) ++ dnl with-mysql given contains mysql55 - assuming OSX MacPorts MySQL55 variant ++ if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \ ++ -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then ++ AC_MSG_NOTICE(Found MySQL 5.5 library in $prefix/lib/mysql55/mysql) ++ MYSQL_LIBDIR=$prefix/lib/mysql55/mysql ++ fi ++ MYSQL_BINDIR=$prefix/lib/mysql55/bin ++ ;; ++ *mysql51*) ++ AC_MSG_NOTICE(Assuming MacPorts MySQL 5.1 variant installed) ++ dnl with-mysql contains mysql51 - assuming OSX MacPorts MySQL51 variant ++ if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \ ++ -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then ++ AC_MSG_NOTICE(Found MySQL 5.1 library in $prefix/lib/mysql55/mysql) ++ MYSQL_LIBDIR=$prefix/lib/mysql51/mysql ++ fi ++ MYSQL_BINDIR=$prefix/lib/mysql51/bin ++ ;; ++ esac ++ if test -z "${MYSQL_LIBDIR}" ; then + AC_MSG_RESULT(no) +- AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval) ++ AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries) + fi +- fi +- MYSQL_INCLUDE=-I$MYSQL_INCDIR +- if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \ +- -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then +- if test x$use_libtool != xno; then +- MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz" + else +- MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz" ++ AC_MSG_RESULT(no) ++ AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval) + fi +- DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}" + fi +- MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a +- +- AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database]) +- AC_MSG_RESULT(yes) ++ if test "x${MYSQL_LIBDIR}" != x; then ++ MYSQL_INCLUDE=-I$MYSQL_INCDIR ++ if test "x$HAVE_LIBSR" = "xyes"; then ++ DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}" ++ MYSQL_LIBS="$MYSQL_LIBDIR" ++ MYSQL_INCLUDE="$MYSQL_INCDIR" ++ if test -z "${batch_insert_db_backends}"; then ++ batch_insert_db_backends="MySQL" ++ else ++ batch_insert_db_backends="${batch_insert_db_backends} MySQL" ++ fi ++ elif test -f $MYSQL_LIBDIR/libmysqlclient_r.a \ ++ -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then ++ if test x$use_libtool != xno; then ++ MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz" ++ else ++ MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz" ++ fi ++ DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}" ++ fi ++ if test "x${MYSQL_LIBS}" = x; then ++ MYSQL_LIBS=$MYSQL_LIBDIR/libmysqlclient_r.a ++ fi + +- if test -z "${db_backends}" ; then +- db_backends="MySQL" +- else +- db_backends="${db_backends} MySQL" +- fi +- if test -z "${DB_BACKENDS}" ; then +- DB_BACKENDS="mysql" +- else +- DB_BACKENDS="${DB_BACKENDS} mysql" +- fi ++ AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database]) ++ AC_MSG_RESULT(yes) + +- dnl ------------------------------------------- +- dnl Check if mysql supports batch mode +- dnl ------------------------------------------- +- if test "x$support_batch_insert" = "xyes"; then +- dnl For mysql checking +- saved_LDFLAGS="${LDFLAGS}" +- LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR" +- saved_LIBS="${LIBS}" +- LIBS="${saved_LIBS} -lz" +- +- AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe])) +- if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then +- if test -z "${batch_insert_db_backends}"; then +- batch_insert_db_backends="MySQL" +- else +- batch_insert_db_backends="${batch_insert_db_backends} MySQL" +- fi +- fi ++ if test -z "${db_backends}" ; then ++ db_backends="MySQL" ++ else ++ db_backends="${db_backends} MySQL" ++ fi ++ if test -z "${DB_BACKENDS}" ; then ++ DB_BACKENDS="mysql" ++ else ++ DB_BACKENDS="${DB_BACKENDS} mysql" ++ fi + +- dnl Revert after mysql checks +- LDFLAGS="${saved_LDFLAGS}" +- LIBS="${saved_LIBS}" ++ dnl ------------------------------------------- ++ dnl Check if mysql supports batch mode ++ dnl ------------------------------------------- ++ if test "x$HAVE_LIBSR" = "xno"; then ++ if test "x$support_batch_insert" = "xyes"; then ++ dnl For mysql checking ++ saved_LDFLAGS="${LDFLAGS}" ++ LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR" ++ saved_LIBS="${LIBS}" ++ LIBS="${saved_LIBS} -lz" ++ ++ AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe])) ++ if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then ++ if test -z "${batch_insert_db_backends}"; then ++ batch_insert_db_backends="MySQL" ++ else ++ batch_insert_db_backends="${batch_insert_db_backends} MySQL" ++ fi ++ fi ++ ++ dnl Revert after mysql checks ++ LDFLAGS="${saved_LDFLAGS}" ++ LIBS="${saved_LIBS}" ++ fi ++ fi ++ else ++ AC_MSG_RESULT(no) + fi +- else +- AC_MSG_RESULT(no) + fi + ],[ + AC_MSG_RESULT(no) diff -Nru bacula-7.4.1~dfsg/debian/patches/mysql_install_update.patch bacula-7.4.1~dfsg/debian/patches/mysql_install_update.patch --- bacula-7.4.1~dfsg/debian/patches/mysql_install_update.patch 1969-12-31 16:00:00.000000000 -0800 +++ bacula-7.4.1~dfsg/debian/patches/mysql_install_update.patch 2016-06-24 13:36:47.000000000 -0700 @@ -0,0 +1,97 @@ +Description: mysql database install/update scripts patch. Fixes bug #1901 +Author: Nishanth Aravamudan +Origin: upstream, http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-7.4&id=074419ac0c9dbbde2e4d2f5ccb6d4ca85c6ec8a9 +Bug: http://bugs.bacula.org/view.php?id=1901 +Bug-Ubuntu: https://launchpad.net/bugs/1591397 + +--- bacula-7.4.1~dfsg.orig/src/cats/make_mysql_tables.in ++++ bacula-7.4.1~dfsg/src/cats/make_mysql_tables.in +@@ -13,8 +13,7 @@ bindir=@MYSQL_BINDIR@ + PATH="$bindir:$PATH" + db_name=${db_name:-@db_name@} + +-if mysql $* -f </tmp/$$ ++mysql -D ${db_name} $* -e "select VersionId from Version\G" >/tmp/$$ + DBVERSION=`sed -n -e 's/^VersionId: \(.*\)$/\1/p' /tmp/$$` + if [ $DBVERSION != 11 ] ; then + echo " " +@@ -24,9 +24,7 @@ if [ $DBVERSION != 11 ] ; then + exit 1 + fi + +-if mysql $* -f <