diff --git a/bacula-7.2.0-git.patch b/bacula-7.2.0-git.patch new file mode 100644 index 0000000..d63a9a7 --- /dev/null +++ b/bacula-7.2.0-git.patch @@ -0,0 +1,1871 @@ +diff --git a/bacula/autoconf/config.guess b/bacula/autoconf/config.guess +index b79252d..981c376 100755 +--- a/bacula/autoconf/config.guess ++++ b/bacula/autoconf/config.guess +@@ -1001,6 +1001,9 @@ EOF + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; ++ ppc64el:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; +diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in +index db86e4d..0843981 100644 +--- a/bacula/autoconf/configure.in ++++ b/bacula/autoconf/configure.in +@@ -2479,7 +2479,7 @@ if test x$support_lzo = xyes; then + AC_CHECK_HEADER(${with_lzo}/lzo/lzoconf.h, + [ + AC_DEFINE(HAVE_LZO, 1, [Define to 1 if you have LZO compression]) +- LZO_LIBS="${LZO_LDFLAGS} -lzo2" ++ LZO_LIBS="${LZO_LDFLAGS} -llzo2" + have_lzo="yes" + ], [ + echo " " +@@ -3294,6 +3294,8 @@ AC_OUTPUT([autoconf/Make.common \ + src/qt-console/bat.pro.mingw32 \ + src/qt-console/bat.pro.mingw64 \ + src/qt-console/install_conf_file \ ++ src/qt-console/tray-monitor/tray-monitor.conf \ ++ src/qt-console/tray-monitor/tray-monitor.pro \ + src/qt-console/tray-monitor/tray-monitor.pro.mingw32 \ + src/qt-console/tray-monitor/tray-monitor.pro.mingw64 \ + src/dird/Makefile \ +diff --git a/bacula/configure b/bacula/configure +index ba59ba1..e476645 100755 +--- a/bacula/configure ++++ b/bacula/configure +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.69 for bacula 7.1.0. ++# Generated by GNU Autoconf 2.69 for bacula 7.2.0. + # + # + # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +@@ -587,8 +587,8 @@ MAKEFLAGS= + # Identity of this package. + PACKAGE_NAME='bacula' + PACKAGE_TARNAME='bacula' +-PACKAGE_VERSION='7.1.0' +-PACKAGE_STRING='bacula 7.1.0' ++PACKAGE_VERSION='7.2.0' ++PACKAGE_STRING='bacula 7.2.0' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1562,7 +1562,7 @@ if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-\`configure' configures bacula 7.1.0 to adapt to many kinds of systems. ++\`configure' configures bacula 7.2.0 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1631,7 +1631,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of bacula 7.1.0:";; ++ short | recursive ) echo "Configuration of bacula 7.2.0:";; + esac + cat <<\_ACEOF + +@@ -1826,7 +1826,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-bacula configure 7.1.0 ++bacula configure 7.2.0 + generated by GNU Autoconf 2.69 + + Copyright (C) 2012 Free Software Foundation, Inc. +@@ -2761,7 +2761,7 @@ cat >config.log <<_ACEOF + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by bacula $as_me 7.1.0, which was ++It was created by bacula $as_me 7.2.0, which was + generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ +@@ -29417,7 +29417,7 @@ if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + + $as_echo "#define HAVE_LZO 1" >>confdefs.h + +- LZO_LIBS="${LZO_LDFLAGS} -lzo2" ++ LZO_LIBS="${LZO_LDFLAGS} -llzo2" + have_lzo="yes" + + else +@@ -30881,7 +30881,7 @@ if test "x${subsysdir}" = "x${sbindir}" ; then + fi + + +-ac_config_files="$ac_config_files autoconf/Make.common Makefile manpages/Makefile scripts/btraceback scripts/bconsole scripts/bacula scripts/bacula-ctl-dir scripts/bacula-ctl-fd scripts/bacula-ctl-sd scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/mtx-changer scripts/disk-changer scripts/dvd-handler scripts/dvd-simulator scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf scripts/bat.desktop scripts/bat.desktop.xsu scripts/bat.desktop.consolehelper scripts/bat.console_apps src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/qt-console/bat.conf src/qt-console/bat.pro src/qt-console/bat.pro.mingw32 src/qt-console/bat.pro.mingw64 src/qt-console/install_conf_file src/qt-console/tray-monitor/tray-monitor.pro.mingw32 src/qt-console/tray-monitor/tray-monitor.pro.mingw64 src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/cats/Makefile src/cats/make_catalog_backup.pl src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite3_database src/cats/update_sqlite3_tables src/cats/make_sqlite3_tables src/cats/grant_sqlite3_privileges src/cats/drop_sqlite3_tables src/cats/drop_sqlite3_database src/cats/sqlite src/cats/mysql src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/cats/install-default-backend src/findlib/Makefile src/tools/Makefile src/plugins/fd/Makefile src/plugins/sd/Makefile src/plugins/dir/Makefile po/Makefile.in updatedb/update_mysql_tables updatedb/update_sqlite3_tables updatedb/update_postgresql_tables updatedb/update_mysql_tables_9_to_10 updatedb/update_sqlite3_tables_9_to_10 updatedb/update_postgresql_tables_9_to_10 updatedb/update_mysql_tables_10_to_11 updatedb/update_sqlite3_tables_10_to_11 updatedb/update_postgresql_tables_10_to_11 updatedb/update_mysql_tables_11_to_12 updatedb/update_sqlite3_tables_11_to_12 updatedb/update_postgresql_tables_11_to_12 updatedb/update_mysql_tables_12_to_13 updatedb/update_postgresql_tables_12_to_13 updatedb/update_mysql_tables_13_to_14 updatedb/update_postgresql_tables_13_to_14 examples/nagios/check_bacula/Makefile platforms/rpms/redhat/bacula.spec platforms/rpms/redhat/bacula-bat.spec platforms/rpms/redhat/bacula-docs.spec platforms/rpms/redhat/bacula-mtx.spec platforms/rpms/suse/bacula.spec platforms/rpms/suse/bacula-bat.spec platforms/rpms/suse/bacula-docs.spec platforms/rpms/suse/bacula-mtx.spec $PFILES" ++ac_config_files="$ac_config_files autoconf/Make.common Makefile manpages/Makefile scripts/btraceback scripts/bconsole scripts/bacula scripts/bacula-ctl-dir scripts/bacula-ctl-fd scripts/bacula-ctl-sd scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/mtx-changer scripts/disk-changer scripts/dvd-handler scripts/dvd-simulator scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf scripts/bat.desktop scripts/bat.desktop.xsu scripts/bat.desktop.consolehelper scripts/bat.console_apps src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/qt-console/bat.conf src/qt-console/bat.pro src/qt-console/bat.pro.mingw32 src/qt-console/bat.pro.mingw64 src/qt-console/install_conf_file src/qt-console/tray-monitor/tray-monitor.conf src/qt-console/tray-monitor/tray-monitor.pro src/qt-console/tray-monitor/tray-monitor.pro.mingw32 src/qt-console/tray-monitor/tray-monitor.pro.mingw64 src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/cats/Makefile src/cats/make_catalog_backup.pl src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite3_database src/cats/update_sqlite3_tables src/cats/make_sqlite3_tables src/cats/grant_sqlite3_privileges src/cats/drop_sqlite3_tables src/cats/drop_sqlite3_database src/cats/sqlite src/cats/mysql src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/cats/install-default-backend src/findlib/Makefile src/tools/Makefile src/plugins/fd/Makefile src/plugins/sd/Makefile src/plugins/dir/Makefile po/Makefile.in updatedb/update_mysql_tables updatedb/update_sqlite3_tables updatedb/update_postgresql_tables updatedb/update_mysql_tables_9_to_10 updatedb/update_sqlite3_tables_9_to_10 updatedb/update_postgresql_tables_9_to_10 updatedb/update_mysql_tables_10_to_11 updatedb/update_sqlite3_tables_10_to_11 updatedb/update_postgresql_tables_10_to_11 updatedb/update_mysql_tables_11_to_12 updatedb/update_sqlite3_tables_11_to_12 updatedb/update_postgresql_tables_11_to_12 updatedb/update_mysql_tables_12_to_13 updatedb/update_postgresql_tables_12_to_13 updatedb/update_mysql_tables_13_to_14 updatedb/update_postgresql_tables_13_to_14 examples/nagios/check_bacula/Makefile platforms/rpms/redhat/bacula.spec platforms/rpms/redhat/bacula-bat.spec platforms/rpms/redhat/bacula-docs.spec platforms/rpms/redhat/bacula-mtx.spec platforms/rpms/suse/bacula.spec platforms/rpms/suse/bacula-bat.spec platforms/rpms/suse/bacula-docs.spec platforms/rpms/suse/bacula-mtx.spec $PFILES" + + ac_config_commands="$ac_config_commands default" + +@@ -31392,7 +31392,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by bacula $as_me 7.1.0, which was ++This file was extended by bacula $as_me 7.2.0, which was + generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -31458,7 +31458,7 @@ _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ +-bacula config.status 7.1.0 ++bacula config.status 7.2.0 + configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +@@ -32001,6 +32001,8 @@ do + "src/qt-console/bat.pro.mingw32") CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.pro.mingw32" ;; + "src/qt-console/bat.pro.mingw64") CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.pro.mingw64" ;; + "src/qt-console/install_conf_file") CONFIG_FILES="$CONFIG_FILES src/qt-console/install_conf_file" ;; ++ "src/qt-console/tray-monitor/tray-monitor.conf") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.conf" ;; ++ "src/qt-console/tray-monitor/tray-monitor.pro") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro" ;; + "src/qt-console/tray-monitor/tray-monitor.pro.mingw32") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro.mingw32" ;; + "src/qt-console/tray-monitor/tray-monitor.pro.mingw64") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro.mingw64" ;; + "src/dird/Makefile") CONFIG_FILES="$CONFIG_FILES src/dird/Makefile" ;; +diff --git a/bacula/examples/devices/DVD.conf b/bacula/examples/devices/DVD.conf +deleted file mode 100644 +index 8c6552a..0000000 +--- a/bacula/examples/devices/DVD.conf ++++ /dev/null +@@ -1,22 +0,0 @@ +-# +-# A DVD device +-# +-Device { +- Name = "DVD Writer" +- Media Type = DVD +- Device Type = DVD +- Archive Device = /dev/hdc +- LabelMedia = yes; # lets Bacula label unlabeled media +- Random Access = Yes; +- AutomaticMount = yes; # when device opened, read it +- RemovableMedia = yes; +- AlwaysOpen = no; +- MaximumPartSize = 800M; +- RequiresMount = yes; +- MountPoint = /mnt/cdrom; +- MountCommand = "/bin/mount -t iso9660 -o ro %a %m"; +- UnmountCommand = "/bin/umount %m"; +- SpoolDirectory = /tmp/backup; +- WritePartCommand = "@scriptdir@/dvd-handler %a write %e %v" +- FreeSpaceCommand = "@scriptdir@/dvd-handler %a free" +-} +diff --git a/bacula/manpages/Makefile.in b/bacula/manpages/Makefile.in +index e4d107a..db38f64 100644 +--- a/bacula/manpages/Makefile.in ++++ b/bacula/manpages/Makefile.in +@@ -8,7 +8,7 @@ + + MAN8 = bacula.8 bacula-dir.8 bacula-fd.8 bacula-sd.8 \ + bconsole.8 bcopy.8 bextract.8 bls.8 bscan.8 btape.8 \ +- btraceback.8 dbcheck.8 bwild.8 bregex.8 bpluginfo.8 ++ btraceback.8 dbcheck.8 bwild.8 bregex.8 + + MAN1 = bsmtp.1 bat.1 + +diff --git a/bacula/manpages/bconsole.8 b/bacula/manpages/bconsole.8 +index 7bce096..478f02c 100644 +--- a/bacula/manpages/bconsole.8 ++++ b/bacula/manpages/bconsole.8 +@@ -39,7 +39,7 @@ No conio (for scripting). + .B \-s + No signals (for debugging). + .TP +-.b \-u\ nn ++.B \-u\ nn + Set command execution timeout to \fInn\fP seconds. + .TP + .B \-t +diff --git a/bacula/platforms/rpms/redhat/bacula.spec.in b/bacula/platforms/rpms/redhat/bacula.spec.in +index 8f59a8f..5d3c231 100644 +--- a/bacula/platforms/rpms/redhat/bacula.spec.in ++++ b/bacula/platforms/rpms/redhat/bacula.spec.in +@@ -65,6 +65,8 @@ + %define log_dir %_libdir/bacula/log + %endif + ++%define systemd_dir /lib/systemd/system ++ + # Daemon user:group Don't change them unless you know what you are doing + %define director_daemon_user bacula + %define storage_daemon_user bacula +@@ -75,7 +77,7 @@ + + %define depkgs ../depkgs + +-# probems with mandriva build: ++# problems with mandriva build: + # nothing provides libbonobo2_0-devel, nothing provides libbonoboui2_0-devel + + #-------------------------------------------------------------------------- +@@ -142,6 +144,8 @@ Source2: Release_Notes-%{version}-%{release}.tar.gz + %{?build_fc17:%define fc17 1} + %define fc18 0 + %{?build_fc18:%define fc18 1} ++%define fc22 0 ++%{?build_fc22:%define fc22 1} + # Whitebox Enterprise build + %define wb3 0 + %{?build_wb3:%define wb3 1} +@@ -162,6 +166,9 @@ Source2: Release_Notes-%{version}-%{release}.tar.gz + %define rhel6 0 + %{?build_rhel6:%define rhel6 1} + %{?build_el6:%define rhel6 1} ++%define rhel7 0 ++%{?build_rhel7:%define rhel7 1} ++%{?build_el7:%define rhel7 1} + # CentOS build + %define centos3 0 + %{?build_centos3:%define centos3 1} +@@ -199,6 +206,8 @@ Source2: Release_Notes-%{version}-%{release}.tar.gz + %{?build_su111:%define su111 1} + %define su112 0 + %{?build_su112:%define su112 1} ++%define su113 0 ++%{?build_su113:%define su113 1} + %define su120 0 + %{?build_su120:%define su120 1} + %define su131 0 +@@ -214,13 +223,29 @@ Source2: Release_Notes-%{version}-%{release}.tar.gz + %define client_only 0 + %{?build_client_only:%define client_only 1} + ++# if the platform is using systemd ++%define usesystemd 0 ++ ++%if %{rhel7} || %{fc22} ++%define usesystemd 1 ++%endif ++ ++# depending if we use systemd or not, we use chkconfig or systemctl ++%if %{usesystemd} ++%define service_enable systemctl enable ++%define service_disable systemctl disable ++%else ++%define service_enable /sbin/chkconfig --add ++%define service_disable /sbin/chkconfig --del ++%endif ++ + # Setup some short cuts + %define rhat 0 + %if %{rh7} || %{rh8} || %{rh9} + %define rhat 1 + %endif + %define fed 0 +-%if %{fc16} || %{fc17} || %{fc18} ++%if %{fc16} || %{fc17} || %{fc18} || %{fc22} + %define fed 1 + %endif + %define suse 0 +@@ -228,7 +253,7 @@ Source2: Release_Notes-%{version}-%{release}.tar.gz + %define suse 1 + %endif + %define rhel 0 +-%if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{centos3} || %{centos4} || %{centos5} || %{centos6} ++%if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{rhel7} || %{centos3} || %{centos4} || %{centos5} || %{centos6} + %define rhel 1 + %endif + %define scil 0 +@@ -283,7 +308,7 @@ exit 1 + %{?build_x86_64:%define x86_64 1} + + # check what distribution we are +-%if %{fc16} || %{fc17} || %{fc18} ++%if %{fc16} || %{fc17} || %{fc18} || %{fc22} + %define _dist %(grep Fedora /etc/redhat-release) + %endif + %if %{centos5} || %{centos4} || %{centos3} +@@ -361,6 +386,7 @@ BuildRequires: libstdc++-devel, zlib-devel + BuildRequires: openssl-devel + BuildRequires: libacl-devel + BuildRequires: pkgconfig ++BuildRequires: bzip2-devel + %if ! %{rh7} + BuildRequires: libxml2-devel + %endif +@@ -486,7 +512,7 @@ Provides: %{product} + Provides: %{product}-libs + %endif + +-Requires: libstdc++, zlib, openssl ++Requires: libstdc++, zlib, openssl, bzip2-libs + Requires: glibc, readline, %{name}-libs + + %if %{python} +@@ -656,6 +682,9 @@ export BACULA="Bacula" + %if %{rh7} || %{rh8} || %{rh9} + --disable-batch-insert \ + %endif ++%if %{usesystemd} ++ --with-systemd=%{systemd_dir} \ ++%endif + --with-tcp-wrappers \ + --with-dir-user=%{director_daemon_user} \ + --with-dir-group=%{daemon_group} \ +@@ -696,10 +725,22 @@ mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir} + + make DESTDIR=$RPM_BUILD_ROOT install + ++# bsnapshot ++make DESTDIR=$RPM_BUILD_ROOT -C ../bacula-%{_version}/src/tools/ install-bsnapshot ++ ++%if %{usesystemd} ++make DESTDIR=$RPM_BUILD_ROOT -C platforms/systemd install-dir install-service ++%endif ++ + # Remove docs for programs that are depreciated + rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} + rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} ++rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} + rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole ++ ++# Remove docs for programs only included in bee ++rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext} ++ + # Storage-ctl packaged in shstore rpm + rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl + rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf +@@ -718,25 +759,32 @@ rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql + %endif + + # install the init scripts ++%if !%{usesystemd} + %if %{suse} + cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir + cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd + cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +-%endif ++%endif # suse + %if %{mdk} + cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir + cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd + cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +-%endif ++%endif # mdk + %if ! %{suse} && ! %{mdk} + cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir + cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd + cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +-%endif ++%endif # !suse && !mdk + chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* ++%endif # ! usesystemd ++ + %if %{client_only} + rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir + rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd ++rm -f $RPM_BUILD_ROOT%{script_dir}/breload ++rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl ++rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-dir.service ++rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-sd.service + %endif + + # install sqlite +@@ -756,6 +804,8 @@ cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/ + # install specific scripts + + # install special upgrade script, except for sqlite3 ++%if ! %{sqlite} ++%endif + + %if ! %{client_only} + # install the sample-query.sql file +@@ -789,7 +839,6 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext} + rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bregex.8.%{manpage_ext} + rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bwild.8.%{manpage_ext} + rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext} +-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.gz + rm -f $RPM_BUILD_ROOT%{script_dir}/bacula + rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config + rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir +@@ -803,7 +852,6 @@ rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb + rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole + rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf + rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula +-rm -f $RPM_BUILD_ROOT%{_sbindir}/bpluginfo + + %endif + +@@ -887,15 +935,24 @@ rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd + %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd + %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so +-%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir +-%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd ++#%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir ++#%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd + %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck +-%attr(-, root, %{daemon_group}) %{_sbindir}/bpluginfo + %attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler +-%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd ++#%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd + %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer + %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf + ++%if %{usesystemd} ++%attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-dir.service ++%attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service ++%attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-sd.service ++%else ++%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir ++%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd ++%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd ++%endif ++ + /etc/logrotate.d/bacula + %{logwatch_dir}/scripts/services/bacula + %{logwatch_dir}/scripts/shared/applybaculadate +@@ -917,6 +974,8 @@ rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + %attr(-, root, %{daemon_group}) %{_sbindir}/bscan + %attr(-, root, %{daemon_group}) %{_sbindir}/btape + ++%attr(755, root, root) %{_sbindir}/bsnapshot ++ + %{_sbindir}/bacula-fd + %{_sbindir}/bacula + %{_sbindir}/bcopy +@@ -940,7 +999,6 @@ rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + %{_mandir}/man8/bwild.8.%{manpage_ext} + %{_mandir}/man1/bsmtp.1.%{manpage_ext} + %{_mandir}/man1/bat.1.%{manpage_ext} +-%{_mandir}/man8/bpluginfo.8.gz + + %_prefix/share/doc/* + +@@ -1079,14 +1137,14 @@ fi + # add our links + if [ "$1" -ge 1 ] ; then + %if %{suse} && %{mysql} +- /sbin/chkconfig --add mysql ++ %{service_enable} mysql + %endif + %if %{suse} && %{postgresql} +- /sbin/chkconfig --add postgresql ++ %{service_enable} postgresql + %endif +- /sbin/chkconfig --add bacula-dir +- /sbin/chkconfig --add bacula-fd +- /sbin/chkconfig --add bacula-sd ++ %{service_enable} bacula-dir ++ %{service_enable} bacula-fd ++ %{service_enable} bacula-sd + fi + %endif + +@@ -1103,6 +1161,9 @@ if [ -d %{sysconf_dir} ]; then + done + fi + host=`hostname -s` ++ if [ "$host" = "" ]; then ++ host=localhost ++ fi + for file in *.conf; do + sed -f .rpm.sed $file > $file.new + sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file +@@ -1212,6 +1273,9 @@ if [ -d %{sysconf_dir} ]; then + done + fi + host=`hostname -s` ++ if [ "$host" = "" ]; then ++ host=localhost ++ fi + for file in *.conf; do + sed -f .rpm.sed $file > $file.new + sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file +@@ -1234,9 +1298,9 @@ fi + %if ! %{client_only} + # delete our links + if [ $1 = 0 ]; then +- /sbin/chkconfig --del bacula-dir +- /sbin/chkconfig --del bacula-fd +- /sbin/chkconfig --del bacula-sd ++ %{service_disable} bacula-dir ++ %{service_disable} bacula-fd ++ %{service_disable} bacula-sd + fi + %endif + +@@ -1246,8 +1310,17 @@ fi + %attr(-, root, %{daemon_group}) %dir %{plugin_dir} + #%attr(-, root, %{daemon_group}) %dir %{log_dir} + %attr(-, root, %{daemon_group}) %dir %{sysconf_dir} ++ ++# SD/DIR might write here ++%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir} ++#%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd ++ ++%if %{usesystemd} ++%attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service ++%else + %{script_dir}/bacula-ctl-fd + /etc/init.d/bacula-fd ++%endif + + /etc/logrotate.d/bacula + +@@ -1295,7 +1368,7 @@ fi + %post client + # add our link + if [ "$1" -ge 1 ] ; then +- /sbin/chkconfig --add bacula-fd ++ %{service_enable} bacula-fd + fi + + if [ -d %{sysconf_dir} ]; then +@@ -1311,6 +1384,9 @@ if [ -d %{sysconf_dir} ]; then + done + fi + host=`hostname -s` ++ if [ "$host" = "" ]; then ++ host=localhost ++ fi + for file in *.conf; do + sed -f .rpm.sed $file > $file.new + sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file +@@ -1321,7 +1397,7 @@ fi + %preun client + # delete our link + if [ $1 = 0 ]; then +- /sbin/chkconfig --del bacula-fd ++ %{service_disable} bacula-fd + fi + + %files libs +diff --git a/bacula/platforms/systemd/Makefile.in b/bacula/platforms/systemd/Makefile.in +index 37c257d..2c3ddba 100644 +--- a/bacula/platforms/systemd/Makefile.in ++++ b/bacula/platforms/systemd/Makefile.in +@@ -21,55 +21,55 @@ nothing: + install: install-dir install-conf install-autostart + + install-dir: +- mkdir -p $(DESTDIR)/$(SYSTEMD_UNITDIR) $(DESTDIR)/$(SYSTEMD_TMPFILES) ++ mkdir -p $(DESTDIR)/$(SYSTEMD_UNITDIR) $(DESTDIR)/$(SYSTEMD_TMPFILES) + + install-conf: +- @$(INSTALL_PROGRAM) -m 644 bacula.conf $(DESTDIR)/$(SYSTEMD_TMPFILES)/bacula.conf ++ @$(INSTALL_PROGRAM) -m 644 bacula.conf $(DESTDIR)/$(SYSTEMD_TMPFILES)/bacula.conf + + install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + install-service: +- @$(INSTALL_PROGRAM) -m 644 bacula-fd.service $(DESTDIR)/$(SYSTEMD_UNITDIR) +- @$(INSTALL_PROGRAM) -m 644 bacula-dir.service $(DESTDIR)/$(SYSTEMD_UNITDIR) +- @$(INSTALL_PROGRAM) -m 644 bacula-sd.service $(DESTDIR)/$(SYSTEMD_UNITDIR) ++ @$(INSTALL_PROGRAM) -m 644 bacula-fd.service $(DESTDIR)/$(SYSTEMD_UNITDIR) ++ @$(INSTALL_PROGRAM) -m 644 bacula-dir.service $(DESTDIR)/$(SYSTEMD_UNITDIR) ++ @$(INSTALL_PROGRAM) -m 644 bacula-sd.service $(DESTDIR)/$(SYSTEMD_UNITDIR) + + install-autostart-fd: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-fd.service; then \ +- /bin/systemctl stop bacula-fd.service; \ +- /bin/systemctl disable bacula-fd.service; \ +- fi +- @$(INSTALL_PROGRAM) -m 644 bacula-fd.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-fd.service +- # set symlinks for script at startup and shutdown +- @if test x$(DESTDIR) = x ; then \ +- /bin/systemctl enable bacula-fd.service; \ +- /bin/systemctl start bacula-fd.service; \ +- fi ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-fd.service; then \ ++ /bin/systemctl stop bacula-fd.service; \ ++ /bin/systemctl disable bacula-fd.service; \ ++ fi ++ @$(INSTALL_PROGRAM) -m 644 bacula-fd.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-fd.service ++ # set symlinks for script at startup and shutdown ++ @if test x$(DESTDIR) = x ; then \ ++ /bin/systemctl enable bacula-fd.service; \ ++ /bin/systemctl start bacula-fd.service; \ ++ fi + + + install-autostart-sd: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-sd.service; then \ +- /bin/systemctl stop bacula-sd.service; \ +- /bin/systemctl disable bacula-sd.service; \ +- fi +- @$(INSTALL_PROGRAM) -m 644 bacula-sd.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-sd.service +- # set symlinks for script at startup and shutdown +- @if test x$(DESTDIR) = x ; then \ +- /bin/systemctl enable bacula-sd.service; \ +- /bin/systemctl start bacula-sd.service; \ +- fi ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-sd.service; then \ ++ /bin/systemctl stop bacula-sd.service; \ ++ /bin/systemctl disable bacula-sd.service; \ ++ fi ++ @$(INSTALL_PROGRAM) -m 644 bacula-sd.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-sd.service ++ # set symlinks for script at startup and shutdown ++ @if test x$(DESTDIR) = x ; then \ ++ /bin/systemctl enable bacula-sd.service; \ ++ /bin/systemctl start bacula-sd.service; \ ++ fi + + + install-autostart-dir: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-dir.service; then \ +- /bin/systemctl stop bacula-dir.service; \ +- /bin/systemctl disable bacula-dir.service; \ +- fi +- @$(INSTALL_PROGRAM) -m 644 bacula-dir.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-dir.service +- # set symlinks for script at startup and shutdown +- @if test x$(DESTDIR) = x ; then \ +- /bin/systemctl enable bacula-dir.service; \ +- /bin/systemctl start bacula-dir.service; \ +- fi ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-dir.service; then \ ++ /bin/systemctl stop bacula-dir.service; \ ++ /bin/systemctl disable bacula-dir.service; \ ++ fi ++ @$(INSTALL_PROGRAM) -m 644 bacula-dir.service $(DESTDIR)/$(SYSTEMD_UNITDIR)/bacula-dir.service ++ # set symlinks for script at startup and shutdown ++ @if test x$(DESTDIR) = x ; then \ ++ /bin/systemctl enable bacula-dir.service; \ ++ /bin/systemctl start bacula-dir.service; \ ++ fi + + + uninstall: uninstall-autostart uninstall-conf +@@ -77,37 +77,37 @@ uninstall: uninstall-autostart uninstall-conf + uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + + uninstall-autostart-fd: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-fd.service; then \ +- /bin/systemctl stop bacula-fd.service; \ +- /bin/systemctl disable bacula-fd.service; \ +- fi +- @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-fd.service ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-fd.service; then \ ++ /bin/systemctl stop bacula-fd.service; \ ++ /bin/systemctl disable bacula-fd.service; \ ++ fi ++ @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-fd.service + + + uninstall-autostart-sd: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-sd.service; then \ +- /bin/systemctl stop bacula-fd.service; \ +- /bin/systemctl disable bacula-fd.service; \ +- fi +- @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-sd.service ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD_UNITDIR)/bacula-sd.service; then \ ++ /bin/systemctl stop bacula-fd.service; \ ++ /bin/systemctl disable bacula-fd.service; \ ++ fi ++ @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-sd.service + + uninstall-autostart-dir: +- @if test x$(DESTDIR) = x -a -f $(SYSTEMD)/bacula-dir.service; then \ +- /bin/systemctl stop bacula-dir.service; \ +- /bin/systemctl disable bacula-dir.service; \ +- fi +- @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-dir.service ++ @if test x$(DESTDIR) = x -a -f $(SYSTEMD)/bacula-dir.service; then \ ++ /bin/systemctl stop bacula-dir.service; \ ++ /bin/systemctl disable bacula-dir.service; \ ++ fi ++ @rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/bacula-dir.service + + uninstall-conf: +- @rm -f $(DESTDIR)/$(SYSTEMD_TMPFILES)/bacula.conf ++ @rm -f $(DESTDIR)/$(SYSTEMD_TMPFILES)/bacula.conf + + clean: +- @rm -f 1 2 3 ++ @rm -f 1 2 3 + + distclean: clean +- @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec +- @rm -f bacula.conf bacula-sd.service bacula-fd.service bacula-dir.service ++ @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec ++ @rm -f bacula.conf bacula-sd.service bacula-fd.service bacula-dir.service + + devclean: clean +- @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec +- @rm -f bacula.conf bacula-sd.service bacula-fd.service bacula-dir.service ++ @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec ++ @rm -f bacula.conf bacula-sd.service bacula-fd.service bacula-dir.service +diff --git a/bacula/src/cats/bvfs.c b/bacula/src/cats/bvfs.c +index d73a49b..1d4619d 100644 +--- a/bacula/src/cats/bvfs.c ++++ b/bacula/src/cats/bvfs.c +@@ -472,6 +472,7 @@ static int update_path_hierarchy_cache(JCR *jcr, + free(result); + } + ++ + if (mdb->bdb_get_type_index() == SQL_TYPE_SQLITE3) { + Mmsg(mdb->cmd, + "INSERT INTO PathVisibility (PathId, JobId) " +@@ -481,7 +482,19 @@ static int update_path_hierarchy_cache(JCR *jcr, + "AND h.PPathId NOT IN (SELECT PathId FROM PathVisibility WHERE JobId=%s)", + jobid, jobid, jobid ); + +- } else { ++ } else if (mdb->bdb_get_type_index() == SQL_TYPE_MYSQL) { ++ Mmsg(mdb->cmd, ++ "INSERT INTO PathVisibility (PathId, JobId) " ++ "SELECT a.PathId,%s " ++ "FROM ( " ++ "SELECT DISTINCT h.PPathId AS PathId " ++ "FROM PathHierarchy AS h " ++ "JOIN PathVisibility AS p ON (h.PathId=p.PathId) " ++ "WHERE p.JobId=%s) AS a " ++ "LEFT JOIN PathVisibility AS b ON (b.JobId=%s and a.PathId = b.PathId) " ++ "WHERE b.PathId IS NULL", jobid, jobid, jobid); ++ ++ } else { /* TODO: Test the MYSQL Query with PostgreSQL */ + Mmsg(mdb->cmd, + "INSERT INTO PathVisibility (PathId, JobId) " + "SELECT a.PathId,%s " +diff --git a/bacula/src/filed/acl.c b/bacula/src/filed/acl.c +index 8a63b6b..f8c3dd8 100644 +--- a/bacula/src/filed/acl.c ++++ b/bacula/src/filed/acl.c +@@ -927,7 +927,7 @@ static bacl_rtn_code generic_set_acl_on_os(JCR *jcr, + * Define the supported ACL streams for this OS + */ + static int os_access_acl_streams[1] = { +- STREAM_ACL_DARWIN_ACCESS_ACL ++ STREAM_ACL_DARWIN_ACCESS + }; + static int os_default_acl_streams[1] = { + -1 +@@ -956,7 +956,7 @@ static bacl_rtn_code darwin_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + #endif + + if (jcr->acl_ctx->content_length > 0) { +- return send_acl_stream(jcr, STREAM_ACL_DARWIN_ACCESS_ACL); ++ return send_acl_stream(jcr, STREAM_ACL_DARWIN_ACCESS); + } + return bacl_rtn_ok; + } +@@ -988,11 +988,11 @@ static bacl_rtn_code (*os_restore_acl_streams) + * Define the supported ACL streams for these OSes + */ + static int os_access_acl_streams[2] = { +- STREAM_ACL_FREEBSD_ACCESS_ACL, +- STREAM_ACL_FREEBSD_NFS4_ACL ++ STREAM_ACL_FREEBSD_ACCESS, ++ STREAM_ACL_FREEBSD_NFS4 + }; + static int os_default_acl_streams[1] = { +- STREAM_ACL_FREEBSD_DEFAULT_ACL ++ STREAM_ACL_FREEBSD_DEFAULT + }; + + static bacl_rtn_code freebsd_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +@@ -1065,7 +1065,7 @@ static bacl_rtn_code freebsd_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + return bacl_rtn_fatal; + + if (jcr->acl_ctx->content_length > 0) { +- if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_NFS4_ACL) == bacl_rtn_fatal) ++ if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_NFS4) == bacl_rtn_fatal) + return bacl_rtn_fatal; + } + break; +@@ -1077,7 +1077,7 @@ static bacl_rtn_code freebsd_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + return bacl_rtn_fatal; + + if (jcr->acl_ctx->content_length > 0) { +- if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_ACCESS_ACL) == bacl_rtn_fatal) ++ if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_ACCESS) == bacl_rtn_fatal) + return bacl_rtn_fatal; + } + +@@ -1088,7 +1088,7 @@ static bacl_rtn_code freebsd_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + if (generic_get_acl_from_os(jcr, BACL_TYPE_DEFAULT) == bacl_rtn_fatal) + return bacl_rtn_fatal; + if (jcr->acl_ctx->content_length > 0) { +- if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_DEFAULT_ACL) == bacl_rtn_fatal) ++ if (send_acl_stream(jcr, STREAM_ACL_FREEBSD_DEFAULT) == bacl_rtn_fatal) + return bacl_rtn_fatal; + } + } +@@ -1113,13 +1113,13 @@ static bacl_rtn_code freebsd_restore_acl_streams(JCR *jcr, + */ + switch (stream) { + case STREAM_UNIX_ACCESS_ACL: +- case STREAM_ACL_FREEBSD_ACCESS_ACL: ++ case STREAM_ACL_FREEBSD_ACCESS: + case STREAM_UNIX_DEFAULT_ACL: +- case STREAM_ACL_FREEBSD_DEFAULT_ACL: ++ case STREAM_ACL_FREEBSD_DEFAULT: + acl_enabled = pathconf(jcr->last_fname, _PC_ACL_EXTENDED); + acl_type_name = "POSIX"; + break; +- case STREAM_ACL_FREEBSD_NFS4_ACL: ++ case STREAM_ACL_FREEBSD_NFS4: + #if defined(_PC_ACL_NFS4) + acl_enabled = pathconf(jcr->last_fname, _PC_ACL_NFS4); + #endif +@@ -1159,12 +1159,12 @@ static bacl_rtn_code freebsd_restore_acl_streams(JCR *jcr, + */ + switch (stream) { + case STREAM_UNIX_ACCESS_ACL: +- case STREAM_ACL_FREEBSD_ACCESS_ACL: ++ case STREAM_ACL_FREEBSD_ACCESS: + return generic_set_acl_on_os(jcr, BACL_TYPE_ACCESS, content, content_length); + case STREAM_UNIX_DEFAULT_ACL: +- case STREAM_ACL_FREEBSD_DEFAULT_ACL: ++ case STREAM_ACL_FREEBSD_DEFAULT: + return generic_set_acl_on_os(jcr, BACL_TYPE_DEFAULT, content, content_length); +- case STREAM_ACL_FREEBSD_NFS4_ACL: ++ case STREAM_ACL_FREEBSD_NFS4: + return generic_set_acl_on_os(jcr, BACL_TYPE_NFS4, content, content_length); + default: + break; +@@ -1273,11 +1273,11 @@ static bacl_rtn_code (*os_restore_acl_streams) + * Define the supported ACL streams for this OS + */ + static int os_access_acl_streams[1] = { +- STREAM_ACL_TRU64_ACCESS_ACL ++ STREAM_ACL_TRU64_ACCESS + }; + static int os_default_acl_streams[2] = { +- STREAM_ACL_TRU64_DEFAULT_ACL, +- STREAM_ACL_TRU64_DEFAULT_DIR_ACL ++ STREAM_ACL_TRU64_DEFAULT, ++ STREAM_ACL_TRU64_DEFAULT_DIR + }; + + static bacl_rtn_code tru64_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +@@ -1564,8 +1564,8 @@ char *acl_strerror(int); + * Define the supported ACL streams for this OS + */ + static int os_access_acl_streams[2] = { +- STREAM_ACL_SOLARIS_ACLENT, +- STREAM_ACL_SOLARIS_ACE ++ STREAM_ACL_SOLARIS_POSIX, ++ STREAM_ACL_SOLARIS_NFS4 + }; + static int os_default_acl_streams[1] = { + -1 +@@ -1653,10 +1653,10 @@ static bacl_rtn_code solaris_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + + switch (acl_type(aclp)) { + case ACLENT_T: +- stream_status = send_acl_stream(jcr, STREAM_ACL_SOLARIS_ACLENT); ++ stream_status = send_acl_stream(jcr, STREAM_ACL_SOLARIS_POSIX); + break; + case ACE_T: +- stream_status = send_acl_stream(jcr, STREAM_ACL_SOLARIS_ACE); ++ stream_status = send_acl_stream(jcr, STREAM_ACL_SOLARIS_NFS4); + break; + default: + break; +@@ -1673,8 +1673,8 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + acl_t *aclp; + int acl_enabled, error; + +- if (stream != STREAM_UNIX_ACCESS_ACL || stream != STREAM_ACL_SOLARIS_ACLENT || +- stream != STREAM_ACL_SOLARIS_ACE) { ++ if (stream != STREAM_UNIX_ACCESS_ACL || stream != STREAM_ACL_SOLARIS_POSIX || ++ stream != STREAM_ACL_SOLARIS_NFS4) { + return bacl_rtn_error; + } + +@@ -1709,7 +1709,7 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + * On a filesystem with ACL support make sure this particular ACL type can be restored. + */ + switch (stream) { +- case STREAM_ACL_SOLARIS_ACLENT: ++ case STREAM_ACL_SOLARIS_POSIX: + /* + * An aclent can be restored on filesystems with _ACL_ACLENT_ENABLED or _ACL_ACE_ENABLED support. + */ +@@ -1720,7 +1720,7 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + return bacl_rtn_error; + } + break; +- case STREAM_ACL_SOLARIS_ACE: ++ case STREAM_ACL_SOLARIS_NFS4: + /* + * An ace can only be restored on a filesystem with _ACL_ACE_ENABLED support. + */ +@@ -1750,7 +1750,7 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + * Validate that the conversion gave us the correct acl type. + */ + switch (stream) { +- case STREAM_ACL_SOLARIS_ACLENT: ++ case STREAM_ACL_SOLARIS_POSIX: + if (acl_type(aclp) != ACLENT_T) { + Mmsg1(jcr->errmsg, + _("wrong encoding of acl type in acl stream on file \"%s\"\n"), +@@ -1758,7 +1758,7 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + return bacl_rtn_error; + } + break; +- case STREAM_ACL_SOLARIS_ACE: ++ case STREAM_ACL_SOLARIS_NFS4: + if (acl_type(aclp) != ACE_T) { + Mmsg1(jcr->errmsg, + _("wrong encoding of acl type in acl stream on file \"%s\"\n"), +@@ -1802,7 +1802,7 @@ static bacl_rtn_code solaris_restore_acl_streams(JCR *jcr, int stream, char *con + * Define the supported ACL streams for this OS + */ + static int os_access_acl_streams[1] = { +- STREAM_ACL_SOLARIS_ACLENT ++ STREAM_ACL_SOLARIS_POSIX + }; + static int os_default_acl_streams[1] = { + -1 +@@ -1861,7 +1861,7 @@ static bacl_rtn_code solaris_backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + pm_strcpy(jcr->acl_ctx->content, acl_text); + actuallyfree(acl_text); + free(acls); +- return send_acl_stream(jcr, STREAM_ACL_SOLARIS_ACLENT); ++ return send_acl_stream(jcr, STREAM_ACL_SOLARIS_POSIX); + } + + berrno be; +@@ -2027,7 +2027,7 @@ bool backup_acl_streams(JCR *jcr, FF_PKT *ff_pkt) + * AFS is a non OS specific filesystem so see if this path is on an AFS filesystem + * Set the BACL_FLAG_SAVE_AFS flag if it is. If not set the BACL_FLAG_SAVE_NATIVE flag. + */ +- if (fstype_equals(jcr->last_fname, "afs")) { ++ if (fstype_cmp(ff_pkt, "afs")) { + jcr->acl_ctx->flags |= BACL_FLAG_SAVE_AFS; + } else { + jcr->acl_ctx->flags |= BACL_FLAG_SAVE_NATIVE; +@@ -2128,7 +2128,7 @@ bacl_rtn_code restore_acl_streams(JCR *jcr, int stream, + * AFS is a non OS specific filesystem so see if this path is on an AFS filesystem + * Set the BACL_FLAG_RESTORE_AFS flag if it is. If not set the BACL_FLAG_RETORE_NATIVE flag. + */ +- if (fstype_equals(jcr->last_fname, "afs")) { ++ if (fstype_cmp(ff_pkt, "afs")) { + jcr->acl_ctx->flags |= BACL_FLAG_RESTORE_AFS; + } else { + jcr->acl_ctx->flags |= BACL_FLAG_RESTORE_NATIVE; +diff --git a/bacula/src/filed/backup.h b/bacula/src/filed/backup.h +index 4ce8c1c..2cf0223 100644 +--- a/bacula/src/filed/backup.h ++++ b/bacula/src/filed/backup.h +@@ -50,10 +50,12 @@ struct bctx_t { + + /* Compression variables */ + #if defined(HAVE_LIBZ) || defined(HAVE_LZO) +- uLong compress_len; + uLong max_compress_len; ++ uLong compress_len; + Bytef *cbuf; + Bytef *cbuf2; ++#else ++ uint64_t max_compress_len; + #endif + #ifdef HAVE_LZO + comp_stream_header ch; +diff --git a/bacula/src/findlib/bfile.c b/bacula/src/findlib/bfile.c +index 92d6286..99b3a5f 100644 +--- a/bacula/src/findlib/bfile.c ++++ b/bacula/src/findlib/bfile.c +@@ -537,9 +537,10 @@ int bopen(BFILE *bfd, const char *fname, uint64_t flags, mode_t mode) + bfd->win32DecompContext.liNextHeader = 0; + + #if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) +- if (bfd->fid != -1 && flags & O_RDONLY) { ++ /* If not RDWR or WRONLY must be Read Only */ ++ if (bfd->fid != -1 && !(flags & (O_RDWR|O_WRONLY))) { + int stat = posix_fadvise(bfd->fid, 0, 0, POSIX_FADV_WILLNEED); +- Dmsg2(400, "Did posix_fadvise on %s stat=%d\n", fname, stat); ++ Dmsg3(400, "Did posix_fadvise WILLNEED on %s fid=%d stat=%d\n", fname, bfd->fid, stat); + } + #endif + +@@ -585,10 +586,12 @@ int bclose(BFILE *bfd) + } + + #if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_DONTNEED) +- if (bfd->m_flags & O_RDONLY) { ++ /* If not RDWR or WRONLY must be Read Only */ ++ if (!(bfd->m_flags & (O_RDWR|O_WRONLY))) { + fdatasync(bfd->fid); /* sync the file */ + /* Tell OS we don't need it any more */ + posix_fadvise(bfd->fid, 0, 0, POSIX_FADV_DONTNEED); ++ Dmsg1(400, "Did posix_fadvise DONTNEED on fid=%d\n", bfd->fid); + } + #endif + +@@ -653,4 +656,3 @@ boffset_t blseek(BFILE *bfd, boffset_t offset, int whence) + bfd->berrno = errno; + return pos; + } +- +diff --git a/bacula/src/findlib/fstype.c b/bacula/src/findlib/fstype.c +index 3ed575d..c2bc83d 100644 +--- a/bacula/src/findlib/fstype.c ++++ b/bacula/src/findlib/fstype.c +@@ -31,7 +31,9 @@ + #include "find.h" + #include + #include +- ++#ifdef HAVE_SUN_OS ++ #include ++#endif + #else /* Set up for testing a stand alone program */ + + #include +@@ -84,6 +86,15 @@ void add_mtab_item(void *user_ctx, struct stat *st, const char *fstype, + } + } + ++/* Compare directly the FS from a fname with a string */ ++bool fstype_cmp(FF_PKT *ff_pkt, const char *fsname) ++{ ++ char buf[256]; ++ if (fstype(ff_pkt, buf, sizeof(buf))) { ++ return (strcmp(buf, fsname) == 0); ++ } ++ return false; ++} + + /* + * These functions should be implemented for each OS +@@ -373,7 +384,7 @@ bool read_mtab(mtab_handler_t *mtab_handler, void *user_ctx) + mtab_handler(user_ctx, &st, mnt.mnt_fstype, mnt.mnt_mountp, + mnt.mnt_mntopts, mnt.mnt_special); + } +- fclose(fp); ++ fclose(mntfp); + V(mutex); + #endif + +diff --git a/bacula/src/findlib/protos.h b/bacula/src/findlib/protos.h +index 7291ee8..12514ad 100644 +--- a/bacula/src/findlib/protos.h ++++ b/bacula/src/findlib/protos.h +@@ -81,7 +81,7 @@ bool path_list_add(JCR *jcr, uint32_t len, char *fname); + + /* from fstype.c */ + bool fstype(FF_PKT *ff_pkt, char *fs, int fslen); +-bool fstype_equals(const char *fname, const char *fstype_name); ++bool fstype_cmp(FF_PKT *ff_pkt, const char *fstype_name); + + /* from drivetype.c */ + bool drivetype(const char *fname, char *fs, int fslen); +diff --git a/bacula/src/lib/address_conf.c b/bacula/src/lib/address_conf.c +index 59dbd0f..66a49d2 100644 +--- a/bacula/src/lib/address_conf.c ++++ b/bacula/src/lib/address_conf.c +@@ -613,10 +613,19 @@ char *sockaddr_to_ascii(const struct sockaddr *sa, int socklen, char *buf, int b + /* This is the more modern way of doing it */ + char clienthost[NI_MAXHOST]; + char clientservice[NI_MAXSERV]; +- int status; +- status = getnameinfo(sa, socklen, clienthost, sizeof(clienthost), +- clientservice, sizeof(clientservice), +- NI_NUMERICHOST | NI_NUMERICSERV); ++ int status = 1; ++ if (sa->sa_family == AF_INET) { ++ status = getnameinfo(sa, socklen, clienthost, sizeof(clienthost), ++ clientservice, sizeof(clientservice), ++ NI_NUMERICHOST | NI_NUMERICSERV); ++ } ++#ifdef HAVE_IPV6 ++ else { ++ status = getnameinfo(sa, sizeof(sockaddr_in6), clienthost, sizeof(clienthost), ++ clientservice, sizeof(clientservice), ++ NI_NUMERICHOST | NI_NUMERICSERV); ++ } ++#endif + if (status == 0) { + /* Enclose IPv6 in [] */ + if (strchr(clienthost, ':') != NULL) { +diff --git a/bacula/src/qt-console/tray-monitor/authenticate.cpp b/bacula/src/qt-console/tray-monitor/authenticate.cpp +index 16f78dd..dde4682 100644 +--- a/bacula/src/qt-console/tray-monitor/authenticate.cpp ++++ b/bacula/src/qt-console/tray-monitor/authenticate.cpp +@@ -30,7 +30,7 @@ + * + */ + +-#include "winhdrs.h" ++//#include "winhdrs.h" + #include "tray-monitor.h" + + void senditf(const char *fmt, ...); +diff --git a/bacula/src/qt-console/tray-monitor/tray-ui.h b/bacula/src/qt-console/tray-monitor/tray-ui.h +index e4e5dfc..ce2b22f 100644 +--- a/bacula/src/qt-console/tray-monitor/tray-ui.h ++++ b/bacula/src/qt-console/tray-monitor/tray-ui.h +@@ -27,7 +27,7 @@ + # endif + #endif + +-#include "winhdrs.h" ++//#include "winhdrs.h" + #include + #include + #include +diff --git a/bacula/src/stored/block.h b/bacula/src/stored/block.h +index ff8f085..a8552b0 100644 +--- a/bacula/src/stored/block.h ++++ b/bacula/src/stored/block.h +@@ -127,7 +127,6 @@ struct DEV_BLOCK { + int32_t rechdr_items; /* number of items in rechdr queue */ + char *bufp; /* pointer into buffer */ + char ser_buf[BLKHDR2_LENGTH]; /* Serial buffer for data */ +- POOLMEM *rechdr_queue; /* record header queue */ + POOLMEM *buf; /* actual data buffer */ + }; + +diff --git a/bacula/src/stored/block_util.c b/bacula/src/stored/block_util.c +index 7fc45d2..86e097d 100644 +--- a/bacula/src/stored/block_util.c ++++ b/bacula/src/stored/block_util.c +@@ -135,7 +135,6 @@ DEV_BLOCK *new_block(DEVICE *dev) + */ + block->buf_len = len; + block->buf = get_memory(block->buf_len); +- block->rechdr_queue = get_memory(block->buf_len); + block->rechdr_items = 0; + empty_block(block); + block->BlockVer = BLOCK_VER; /* default write version */ +@@ -187,7 +186,6 @@ void free_block(DEV_BLOCK *block) + if (block) { + Dmsg1(999, "free_block buffer %x\n", block->buf); + free_memory(block->buf); +- free_memory(block->rechdr_queue); + Dmsg1(999, "free_block block %x\n", block); + free_memory((POOLMEM *)block); + } +diff --git a/bacula/src/stored/mount.c b/bacula/src/stored/mount.c +index 0aae19a..a93e0e7 100644 +--- a/bacula/src/stored/mount.c ++++ b/bacula/src/stored/mount.c +@@ -620,7 +620,7 @@ void DCR::do_swapping(bool is_writing) + if (dev->vol) { + dev->vol->clear_swapping(); + Dmsg1(100, "=== set in_use vol=%s\n", dev->vol->vol_name); +- dev->vol->set_in_use(); ++ dev->vol->clear_in_use(); + dev->VolHdr.VolumeName[0] = 0; /* don't yet have right Volume */ + } else { + Dmsg1(100, "No vol on dev=%s\n", dev->print_name()); +diff --git a/bacula/src/tools/bpluginfo.c b/bacula/src/tools/bpluginfo.c +new file mode 100644 +index 0000000..1655bd5 +--- /dev/null ++++ b/bacula/src/tools/bpluginfo.c +@@ -0,0 +1,625 @@ ++/* ++ * Contributed in 2012 by Inteos sp. z o.o. ++ * ++ * Utility tool display various information about Bacula plugin, ++ * including but not limited to: ++ * - Name and Author of the plugin ++ * - Plugin License ++ * - Description ++ * - API version ++ * - Enabled functions, etc. ++ */ ++/* ++ Bacula® - The Network Backup Solution ++ ++ Copyright (C) 2006-2014 Free Software Foundation Europe e.V. ++ ++ The main author of Bacula is Kern Sibbald, with contributions from many ++ others, a complete list can be found in the file AUTHORS. ++ ++ You may use this file and others of this release according to the ++ license defined in the LICENSE file, which includes the Affero General ++ Public License, v3.0 ("AGPLv3") and some additional permissions and ++ terms pursuant to its AGPLv3 Section 7. ++ ++ Bacula® is a registered trademark of Kern Sibbald. ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef __WIN32__ ++#include ++#endif ++#include "bacula.h" ++#include "../filed/fd_plugins.h" ++#include "../dird/dir_plugins.h" ++// I can't include sd_plugins.h here ... ++#include "../stored/stored.h" ++#include "assert_macro.h" ++ ++extern "C" { ++ typedef int (*loadPlugin) (void *binfo, void *bfuncs, void **pinfo, ++ void **pfuncs); ++ typedef int (*unloadPlugin) (void); ++} ++#define DEFAULT_API_VERSION 1 ++enum plugintype { ++ DIRPLUGIN, ++ FDPLUGIN, ++ SDPLUGIN, ++ ERRORPLUGIN, ++}; ++ ++/* ++ * pDirInfo ++ * pInfo ++ * psdInfo ++ */ ++typedef union _pluginfo pluginfo; ++union _pluginfo { ++ pDirInfo pdirinfo; ++ pInfo pfdinfo; ++ psdInfo psdinfo; ++}; ++ ++/* ++ * pDirFuncs ++ * pFuncs ++ * psdFuncs ++ */ ++typedef union _plugfuncs plugfuncs; ++union _plugfuncs { ++ pDirFuncs pdirfuncs; ++ pFuncs pfdfuncs; ++ psdFuncs psdfuncs; ++}; ++ ++/* ++ * bDirFuncs ++ * bFuncs ++ * bsdFuncs ++ */ ++/* ++ * TODO: change to union ++ * ++typedef union _baculafuncs baculafuncs; ++union _baculafuncs { ++ bDirFuncs bdirfuncs; ++ bFuncs bfdfuncs; ++ bsdFuncs bsdfuncs; ++}; ++*/ ++typedef struct _baculafuncs baculafuncs; ++struct _baculafuncs { ++ uint32_t size; ++ uint32_t version; ++ int (*registerBaculaEvents) (void *ctx, ...); ++ int (*getBaculaValue) (void *ctx, int var, void *value); ++ int (*setBaculaValue) (void *ctx, int var, void *value); ++ int (*JobMessage) (void *ctx, const char *file, int line, int type, int64_t mtime, ++ const char *fmt, ...); ++ int (*DebugMessage) (void *ctx, const char *file, int line, int level, ++ const char *fmt, ...); ++ void *(*baculaMalloc) (void *ctx, const char *file, int line, size_t size); ++ void (*baculaFree) (void *ctx, const char *file, int line, void *mem); ++}; ++ ++/* ++ * bDirInfo ++ * bInfo ++ * bsdInfo ++ */ ++typedef union _baculainfos baculainfos; ++union _baculainfos { ++ bDirInfo bdirinfo; ++ bInfo bfdinfo; ++ bsdInfo bsdinfo; ++}; ++ ++/* ++typedef struct _baculainfos baculainfos; ++struct _baculainfos { ++ uint32_t size; ++ uint32_t version; ++}; ++*/ ++ ++typedef struct _progdata progdata; ++struct _progdata { ++ int verbose; ++ int listinfo; ++ int listfunc; ++ char *pluginfile; ++ void *pluginhandle; ++ int bapiversion; ++ int bplugtype; ++ pluginfo *pinfo; ++ plugfuncs *pfuncs; ++}; ++ ++/* memory allocation/deallocation */ ++#define MALLOC(size) \ ++ (char *) bmalloc ( size ); ++ ++#define ASSERT_MEMORY(m) \ ++ if ( m == NULL ){ \ ++ printf ( "Error: memory allocation error!\n" ); \ ++ exit (10); \ ++ } ++ ++#define FREE(ptr) \ ++ if ( ptr != NULL ){ \ ++ bfree ( ptr ); \ ++ ptr = NULL; \ ++ } ++ ++int registerBaculaEvents(void *ctx, ...) ++{ ++ return 0; ++}; ++ ++int getBaculaValue(void *ctx, int var, void *value) ++{ ++ return 0; ++}; ++ ++int setBaculaValue(void *ctx, int var, void *value) ++{ ++ return 0; ++}; ++ ++int DebugMessage(void *ctx, const char *file, int line, int level, const char *fmt, ...) ++{ ++#ifdef DEBUGMSG ++ printf("DG: %s:%d %s\n", file, line, fmt); ++#endif ++ return 0; ++}; ++ ++int JobMessage(void *ctx, const char *file, int line, int type, int64_t mtime, ++ const char *fmt, ...) ++{ ++#ifdef DEBUGMSG ++ printf("JM: %s:%d <%d> %s\n", file, line, type, fmt); ++#endif ++ return 0; ++}; ++ ++void *baculaMalloc(void *ctx, const char *file, int line, size_t size) ++{ ++ return MALLOC(size); ++}; ++ ++void baculaFree(void *ctx, const char *file, int line, void *mem) ++{ ++ FREE(mem); ++}; ++ ++/* ++ * displays a short help ++ */ ++void print_help(int argc, char *argv[]) ++{ ++ ++ printf("\n" ++ "Usage: bpluginfo [options] \n" ++ " -v verbose\n" ++ " -i list plugin header information only (default)\n" ++ " -f list plugin functions information only\n" ++ " -a bacula api version (default %d)\n" ++ " -h help screen\n" "\n", DEFAULT_API_VERSION); ++} ++ ++/* allocates and resets a main program data variable */ ++progdata *allocpdata(void) ++{ ++ ++ progdata *pdata; ++ ++ pdata = (progdata *) bmalloc(sizeof(progdata)); ++ ASSERT_MEMORY(pdata); ++ memset(pdata, 0, sizeof(progdata)); ++ ++ return pdata; ++} ++ ++/* releases all allocated program data resources */ ++void freepdata(progdata * pdata) ++{ ++ ++ if (pdata->pluginfile) { ++ FREE(pdata->pluginfile); ++ } ++ FREE(pdata); ++} ++ ++/* ++ * parse execution arguments and fills required pdata structure fields ++ * ++ * input: ++ * pdata - pointer to program data structure ++ * argc, argv - execution envinroment variables ++ * output: ++ * pdata - required structure fields ++ * ++ * supported options: ++ * -v verbose flag ++ * -i list plugin header info only (default) ++ * -f list implemented functions only ++ * -a bacula api version (default 1) ++ * -h help screen ++ */ ++void parse_args(progdata * pdata, int argc, char *argv[]) ++{ ++ ++ int i; ++ char *dirtmp; ++ char *progdir; ++ int api; ++ int s; ++ ++ if (argc < 2) { ++ /* TODO - add a real help screen */ ++ printf("\nNot enough parameters!\n"); ++ print_help(argc, argv); ++ exit(1); ++ } ++ ++ if (argc > 5) { ++ /* TODO - add a real help screen */ ++ printf("\nToo many parameters!\n"); ++ print_help(argc, argv); ++ exit(1); ++ } ++ ++ for (i = 1; i < argc; i++) { ++ if (strcmp(argv[i], "-h") == 0) { ++ /* help screen */ ++ print_help(argc, argv); ++ exit(0); ++ } ++ if (strcmp(argv[i], "-v") == 0) { ++ /* verbose option */ ++ pdata->verbose = 1; ++ continue; ++ } ++ if (strcmp(argv[i], "-f") == 0) { ++ /* functions list */ ++ pdata->listfunc = 1; ++ continue; ++ } ++ if (strcmp(argv[i], "-i") == 0) { ++ /* header list */ ++ pdata->listinfo = 1; ++ continue; ++ } ++ if (strcmp(argv[i], "-a") == 0) { ++ /* bacula api version */ ++ if (i < argc - 1) { ++ s = sscanf(argv[i + 1], "%d", &api); ++ if (s == 1) { ++ pdata->bapiversion = api; ++ i++; ++ continue; ++ } ++ } ++ printf("\nAPI version number required!\n"); ++ print_help(argc, argv); ++ exit(1); ++ } ++ if (!pdata->pluginfile) { ++ if (argv[i][0] != '/') { ++ dirtmp = MALLOC(PATH_MAX); ++ ASSERT_MEMORY(dirtmp); ++ progdir = MALLOC(PATH_MAX); ++ ASSERT_MEMORY(progdir); ++ dirtmp = getcwd(dirtmp, PATH_MAX); ++ ++ strcat(dirtmp, "/"); ++ strcat(dirtmp, argv[i]); ++ ++ if (realpath(dirtmp, progdir) == NULL) { ++ /* error in resolving path */ ++ FREE(progdir); ++ progdir = bstrdup(argv[i]); ++ } ++ pdata->pluginfile = bstrdup(progdir); ++ FREE(dirtmp); ++ FREE(progdir); ++ } else { ++ pdata->pluginfile = bstrdup(argv[i]); ++ } ++ continue; ++ } ++ } ++} ++ ++/* ++ * checks a plugin type based on a plugin magic string ++ * ++ * input: ++ * pdata - program data with plugin info structure ++ * output: ++ * int - enum plugintype ++ */ ++int getplugintype(progdata * pdata) ++{ ++ ++ ASSERT_NVAL_RET_V(pdata, ERRORPLUGIN); ++ ++ pluginfo *pinfo = pdata->pinfo; ++ ++ ASSERT_NVAL_RET_V(pinfo, ERRORPLUGIN); ++ ++ if (pinfo->pdirinfo.plugin_magic && ++ strcmp(pinfo->pdirinfo.plugin_magic, DIR_PLUGIN_MAGIC) == 0) { ++ return DIRPLUGIN; ++ } else ++ if (pinfo->pfdinfo.plugin_magic && ++ strcmp(pinfo->pfdinfo.plugin_magic, FD_PLUGIN_MAGIC) == 0) { ++ return FDPLUGIN; ++ } else ++ if (pinfo->psdinfo.plugin_magic && ++ strcmp(pinfo->psdinfo.plugin_magic, SD_PLUGIN_MAGIC) == 0) { ++ return SDPLUGIN; ++ } else { ++ return ERRORPLUGIN; ++ } ++} ++ ++/* ++ * prints any available information about a plugin ++ * ++ * input: ++ * pdata - program data with plugin info structure ++ * output: ++ * printed info ++ */ ++void dump_pluginfo(progdata * pdata) ++{ ++ ++ ASSERT_NVAL_RET(pdata); ++ ++ pluginfo *pinfo = pdata->pinfo; ++ ++ ASSERT_NVAL_RET(pinfo); ++ ++ plugfuncs *pfuncs = pdata->pfuncs; ++ ++ ASSERT_NVAL_RET(pfuncs); ++ ++ switch (pdata->bplugtype) { ++ case DIRPLUGIN: ++ printf("\nPlugin type:\t\tBacula Director plugin\n"); ++ if (pdata->verbose) { ++ printf("Plugin magic:\t\t%s\n", NPRT(pinfo->pdirinfo.plugin_magic)); ++ } ++ printf("Plugin version:\t\t%s\n", pinfo->pdirinfo.plugin_version); ++ printf("Plugin release date:\t%s\n", NPRT(pinfo->pdirinfo.plugin_date)); ++ printf("Plugin author:\t\t%s\n", NPRT(pinfo->pdirinfo.plugin_author)); ++ printf("Plugin licence:\t\t%s\n", NPRT(pinfo->pdirinfo.plugin_license)); ++ printf("Plugin description:\t%s\n", NPRT(pinfo->pdirinfo.plugin_description)); ++ printf("Plugin API version:\t%d\n", pinfo->pdirinfo.version); ++ break; ++ case FDPLUGIN: ++ printf("\nPlugin type:\t\tFile Daemon plugin\n"); ++ if (pdata->verbose) { ++ printf("Plugin magic:\t\t%s\n", NPRT(pinfo->pfdinfo.plugin_magic)); ++ } ++ printf("Plugin version:\t\t%s\n", pinfo->pfdinfo.plugin_version); ++ printf("Plugin release date:\t%s\n", NPRT(pinfo->pfdinfo.plugin_date)); ++ printf("Plugin author:\t\t%s\n", NPRT(pinfo->pfdinfo.plugin_author)); ++ printf("Plugin licence:\t\t%s\n", NPRT(pinfo->pfdinfo.plugin_license)); ++ printf("Plugin description:\t%s\n", NPRT(pinfo->pfdinfo.plugin_description)); ++ printf("Plugin API version:\t%d\n", pinfo->pfdinfo.version); ++ break; ++ case SDPLUGIN: ++ printf("\nPlugin type:\t\tBacula Storage plugin\n"); ++ if (pdata->verbose) { ++ printf("Plugin magic:\t\t%s\n", NPRT(pinfo->psdinfo.plugin_magic)); ++ } ++ printf("Plugin version:\t\t%s\n", pinfo->psdinfo.plugin_version); ++ printf("Plugin release date:\t%s\n", NPRT(pinfo->psdinfo.plugin_date)); ++ printf("Plugin author:\t\t%s\n", NPRT(pinfo->psdinfo.plugin_author)); ++ printf("Plugin licence:\t\t%s\n", NPRT(pinfo->psdinfo.plugin_license)); ++ printf("Plugin description:\t%s\n", NPRT(pinfo->psdinfo.plugin_description)); ++ printf("Plugin API version:\t%d\n", pinfo->psdinfo.version); ++ break; ++ default: ++ printf("\nUnknown plugin type or other Error\n\n"); ++ } ++} ++ ++/* ++ * prints any available information about plugin' functions ++ * ++ * input: ++ * pdata - program data with plugin info structure ++ * output: ++ * printed info ++ */ ++void dump_plugfuncs(progdata * pdata) ++{ ++ ++ ASSERT_NVAL_RET(pdata); ++ ++ plugfuncs *pfuncs = pdata->pfuncs; ++ ++ ASSERT_NVAL_RET(pfuncs); ++ ++ printf("\nPlugin functions:\n"); ++ ++ switch (pdata->bplugtype) { ++ case DIRPLUGIN: ++ if (pdata->verbose) { ++ if (pfuncs->pdirfuncs.newPlugin) { ++ printf(" newPlugin()\n"); ++ } ++ if (pfuncs->pdirfuncs.freePlugin) { ++ printf(" freePlugin()\n"); ++ } ++ } ++ if (pfuncs->pdirfuncs.getPluginValue) { ++ printf(" getPluginValue()\n"); ++ } ++ if (pfuncs->pdirfuncs.setPluginValue) { ++ printf(" setPluginValue()\n"); ++ } ++ if (pfuncs->pdirfuncs.handlePluginEvent) { ++ printf(" handlePluginEvent()\n"); ++ } ++ break; ++ case FDPLUGIN: ++ if (pdata->verbose) { ++ if (pfuncs->pfdfuncs.newPlugin) { ++ printf(" newPlugin()\n"); ++ } ++ if (pfuncs->pfdfuncs.freePlugin) { ++ printf(" freePlugin()\n"); ++ } ++ } ++ if (pfuncs->pfdfuncs.getPluginValue) { ++ printf(" getPluginValue()\n"); ++ } ++ if (pfuncs->pfdfuncs.setPluginValue) { ++ printf(" setPluginValue()\n"); ++ } ++ if (pfuncs->pfdfuncs.handlePluginEvent) { ++ printf(" handlePluginEvent()\n"); ++ } ++ if (pfuncs->pfdfuncs.startBackupFile) { ++ printf(" startBackupFile()\n"); ++ } ++ if (pfuncs->pfdfuncs.endBackupFile) { ++ printf(" endBackupFile()\n"); ++ } ++ if (pfuncs->pfdfuncs.startRestoreFile) { ++ printf(" startRestoreFile()\n"); ++ } ++ if (pfuncs->pfdfuncs.endRestoreFile) { ++ printf(" endRestoreFile()\n"); ++ } ++ if (pfuncs->pfdfuncs.pluginIO) { ++ printf(" pluginIO()\n"); ++ } ++ if (pfuncs->pfdfuncs.createFile) { ++ printf(" createFile()\n"); ++ } ++ if (pfuncs->pfdfuncs.setFileAttributes) { ++ printf(" setFileAttributes()\n"); ++ } ++ if (pfuncs->pfdfuncs.checkFile) { ++ printf(" checkFile()\n"); ++ } ++ break; ++ case SDPLUGIN: ++ if (pdata->verbose) { ++ if (pfuncs->psdfuncs.newPlugin) { ++ printf(" newPlugin()\n"); ++ } ++ if (pfuncs->psdfuncs.freePlugin) { ++ printf(" freePlugin()\n"); ++ } ++ } ++ if (pfuncs->psdfuncs.getPluginValue) { ++ printf(" getPluginValue()\n"); ++ } ++ if (pfuncs->psdfuncs.setPluginValue) { ++ printf(" setPluginValue()\n"); ++ } ++ if (pfuncs->psdfuncs.handlePluginEvent) { ++ printf(" handlePluginEvent()\n"); ++ } ++ break; ++ default: ++ printf("\nUnknown plugin type or other Error\n\n"); ++ } ++} ++ ++/* ++ * input parameters: ++ * argv[0] [options] ++ * ++ * exit codes: ++ * 0 - success ++ * 1 - cannot load a plugin ++ * 2 - cannot find a loadPlugin function ++ * 3 - cannot find an unloadPlugin function ++ * 10 - not enough memory ++ */ ++int main(int argc, char *argv[]) ++{ ++ ++ progdata *pdata; ++ loadPlugin loadplugfunc; ++ unloadPlugin unloadplugfunc; ++ baculafuncs bfuncs = { ++ sizeof(bfuncs), ++ 1, ++ registerBaculaEvents, ++ getBaculaValue, ++ setBaculaValue, ++ JobMessage, ++ DebugMessage, ++ baculaMalloc, ++ baculaFree, ++ }; ++ baculainfos binfos; ++ ++ pdata = allocpdata(); ++ parse_args(pdata, argc, argv); ++ ++ binfos.bfdinfo.size = sizeof(binfos); ++ binfos.bfdinfo.version = DEFAULT_API_VERSION; ++ ++ pdata->pluginhandle = dlopen(pdata->pluginfile, RTLD_LAZY); ++ if (pdata->pluginhandle == NULL) { ++ printf("\nCannot load a plugin: %s\n\n", dlerror()); ++ freepdata(pdata); ++ exit(1); ++ } ++ ++ loadplugfunc = (loadPlugin) dlsym(pdata->pluginhandle, "loadPlugin"); ++ if (loadplugfunc == NULL) { ++ printf("\nCannot find loadPlugin function: %s\n", dlerror()); ++ printf("\nWhether the file is a really Bacula plugin?\n\n"); ++ freepdata(pdata); ++ exit(2); ++ } ++ ++ unloadplugfunc = (unloadPlugin) dlsym(pdata->pluginhandle, "unloadPlugin"); ++ if (unloadplugfunc == NULL) { ++ printf("\nCannot find unloadPlugin function: %s\n", dlerror()); ++ printf("\nWhether the file is a really Bacula plugin?\n\n"); ++ freepdata(pdata); ++ exit(3); ++ } ++ ++ if (pdata->bapiversion > 0) { ++ binfos.bdirinfo.version = pdata->bapiversion; ++ } ++ ++ loadplugfunc(&binfos, &bfuncs, (void **)&pdata->pinfo, (void **)&pdata->pfuncs); ++ ++ pdata->bplugtype = getplugintype(pdata); ++ ++ if (!pdata->listfunc) { ++ dump_pluginfo(pdata); ++ } ++ if ((!pdata->listinfo && pdata->listfunc) || pdata->verbose) { ++ dump_plugfuncs(pdata); ++ } ++ printf("\n"); ++ ++ unloadplugfunc(); ++ ++ dlclose(pdata->pluginhandle); ++ ++ freepdata(pdata); ++ ++ return 0; ++} +diff --git a/bacula/src/version.h b/bacula/src/version.h +index 48265be..677a81f 100644 +--- a/bacula/src/version.h ++++ b/bacula/src/version.h +@@ -6,8 +6,8 @@ + + /* Note: there can be only *one* VERSION in this file */ + #define VERSION "7.2.0" +-#define BDATE "14 August 2015" +-#define LSMDATE "14Aug15" ++#define BDATE "17 November 2015" ++#define LSMDATE "17Nov15" + + #define RELEASE 1 /* Use ONLY in rpms */ + +@@ -15,6 +15,12 @@ + #define BYEAR "2015" /* year for copyright messages in progs */ + + /* ++ * Versions of packages needed to build Bacula components ++ */ ++#define DEPKGS_QT_VERSION "01Jan13" ++#define DEPKGS_VERSION "26Jun14" ++ ++/* + Bacula(R) - The Network Backup Solution + + Copyright (C) 2000-2015 Kern Sibbald +diff --git a/bacula/updatedb/update_mysql_tables.in b/bacula/updatedb/update_mysql_tables.in +index a800011..4ae0513 100644 +--- a/bacula/updatedb/update_mysql_tables.in ++++ b/bacula/updatedb/update_mysql_tables.in +@@ -9,8 +9,8 @@ + echo " " + echo "This script will update a Bacula MySQL database from version 12-14 to 15" + echo " " +-echo "Depending on the current version of your catalog, you may have to run this script" +-echo " multiple times" ++echo "Depending on the current version of your catalog," ++echo "you may have to run this script multiple times." + echo " " + + bindir=@MYSQL_BINDIR@ +@@ -116,10 +116,10 @@ CREATE TABLE Snapshot ( + SnapshotId INTEGER UNSIGNED AUTO_INCREMENT, + Name TINYBLOB NOT NULL, + JobId INTEGER UNSIGNED DEFAULT 0, +- FileSetId INTEGER UNSIGNED DEFAULT 0; ++ FileSetId INTEGER UNSIGNED DEFAULT 0, + CreateTDate BIGINT NOT NULL, + CreateDate DATETIME NOT NULL, +- ClientId INTEGER DEFAULT 0, ++ ClientId INTEGER UNSIGNED DEFAULT 0, + Volume TINYBLOB NOT NULL, + Device TINYBLOB NOT NULL, + Type TINYBLOB NOT NULL, +diff --git a/bacula/updatedb/update_postgresql_tables.in b/bacula/updatedb/update_postgresql_tables.in +index 6681046..c3db92a 100644 +--- a/bacula/updatedb/update_postgresql_tables.in ++++ b/bacula/updatedb/update_postgresql_tables.in +@@ -3,14 +3,14 @@ + # Copyright (C) 2000-2015 Kern Sibbald + # License: BSD 2-Clause; see file LICENSE-FOSS + # +-# Shell script to update MySQL tables from Bacula Community version ++# Shell script to update PostgreSQL tables from Bacula Community version + # 5.0.x, 5.2.x, 7.0.x + # + echo " " +-echo "This script will update a Bacula MySQL database from version 12-14 to 15" ++echo "This script will update a Bacula PostgreSQL database from version 12-14 to 15" + echo " " +-echo "Depending on the current version of your catalog, you may have to run this script" +-echo " multiple times" ++echo "Depending on the current version of your catalog," ++echo "you may have to run this script multiple times." + echo " " + + bindir=@POSTGRESQL_BINDIR@ diff --git a/bacula-7.2.0-remove-bpluginfo-remnants.patch b/bacula-7.2.0-remove-bpluginfo-remnants.patch deleted file mode 100644 index ba52f75..0000000 --- a/bacula-7.2.0-remove-bpluginfo-remnants.patch +++ /dev/null @@ -1,153 +0,0 @@ -diff -Naur bacula-7.2.0/manpages/bpluginfo.8 bacula-7.2.0.new/manpages/bpluginfo.8 ---- bacula-7.2.0/manpages/bpluginfo.8 2015-09-29 10:58:59.412811581 +0200 -+++ bacula-7.2.0.new/manpages/bpluginfo.8 1970-01-01 01:00:00.000000000 +0100 -@@ -1,121 +0,0 @@ --.\" Hey, EMACS: -*- nroff -*- --.\" First parameter, NAME, should be all caps --.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection --.\" other parameters are allowed: see man(7), man(1) --.TH bpluginfo "8" "July 2012" "bpluginfo" "Network backup, recovery and verification" --.\" Please adjust this date whenever revising the manpage. --.\" --.SH NAME --bpluginfo \- Bacula Plugin information utility --.SH SYNOPSIS --.B bplufinfo --.RI [ options ] --.I plugin_filename.so --.br --.SH DESCRIPTION --.LP --The main purpose of --.B bpluginfo --is to display different information about Bacula plugin. You can use it to --check a plugin name, author, license and short description. You can use --'-f' option to display API implemented by the plugin. Some plugins may require --additional '-a' option for validating a Bacula Daemons API. In most cases it --is not required. --.PP --./ Bacula is a set of programs for performing a --./ .PP --./ - --./ .BR bpluginfo -- --.PP --.SH OPTIONS --A summary of options is included below. --.TP --.B \-h --Show usage of the program. --.TP --.BI \-v --Verbose information printing all available data from the plugin, including --plugin header and implemented API. --.TP --.BI \-i --Display short information from plugin header only. This is a default option. --Option incompatible with --.B -f --option. --.TP --.BI \-f --Display information about implemented API functions. --.TP --.BI \-a\ --You can supply the plugin initialization function with a particular Bacula --API number. Without this option a default API number is '1'. Option require --a numeric argument. --.SH RETURN CODE --.BR bpluginfo --returns 0 on success, and non-zero on error. --.TP --You can check return code to find what was a cause of the error. -- * 0 - success -- * 1 - cannot load a plugin -- * 2 - cannot find a loadPlugin function -- * 3 - cannot find an unloadPlugin function -- * 10 - not enough memory --.SH EXAMPLE USAGE --This is an example of bplufinfo usage with verbose option (-v) and default plugin. --.LP --.sp --.RS --.nf -- --\fB$ bpluginfo -v bpipe-fd.so -- --Plugin type: File Daemon plugin --Plugin magic: *FDPluginData* --Plugin version: 1 --Plugin release date: January 2008 --Plugin author: Kern Sibbald --Plugin license: Bacula or Bacula Enterprise --Plugin description: Bacula Pipe File Daemon Plugin --Plugin API version: 6 -- --Plugin functions: -- newPlugin() -- freePlugin() -- getPluginValue() -- setPluginValue() -- handlePluginEvent() -- startBackupFile() -- endBackupFile() -- startRestoreFile() -- endRestoreFile() -- pluginIO() -- createFile() -- setFileAttributes() --.fi --.RE -- --.SH AUTHOR --Written by Radoslaw Korzeniewski (c) Inteos Sp. z o.o. --.SH BUGS --Does not handle all required bacula functions callbacks which can lead to --utility crash. --.\".SH TODO" -- --.PP -- --.PP -- --.SH "REPORTING BUGS" --Report bugs to . --.SH COPYRIGHT --Copyright \(co 2012 Free Software Foundation Europe e.V. --.br --This is free software; see the source for copying conditions. There is NO --warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --.SH "SEE ALSO" --.BR bacula-dir, --.BR bacula-sd, --.BR bacula-fd, --.BR "Bacula Plugins API" --This man page document is released under the BSD 2-Clause license. -diff -Naur bacula-7.2.0/manpages/Makefile.in bacula-7.2.0.new/manpages/Makefile.in ---- bacula-7.2.0/manpages/Makefile.in 2015-09-29 10:58:59.412811581 +0200 -+++ bacula-7.2.0.new/manpages/Makefile.in 2015-09-29 11:08:00.157868223 +0200 -@@ -8,7 +8,7 @@ - - MAN8 = bacula.8 bacula-dir.8 bacula-fd.8 bacula-sd.8 \ - bconsole.8 bcopy.8 bextract.8 bls.8 bscan.8 btape.8 \ -- btraceback.8 dbcheck.8 bwild.8 bregex.8 bpluginfo.8 -+ btraceback.8 dbcheck.8 bwild.8 bregex.8 - - MAN1 = bsmtp.1 bat.1 - -diff -Naur bacula-7.2.0/src/tools/Makefile.in bacula-7.2.0.new/src/tools/Makefile.in ---- bacula-7.2.0/src/tools/Makefile.in 2015-09-29 10:58:59.405811697 +0200 -+++ bacula-7.2.0.new/src/tools/Makefile.in 2015-09-29 11:07:45.975102788 +0200 -@@ -136,12 +136,6 @@ - grow: Makefile grow.o ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) - $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L../lib -o $@ grow.o -lbac -lm $(DLIB) $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) - --bpluginfo.o: bpluginfo.c -- $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) -I../filed -I../dird -I../stored $(DINCLUDE) $(CFLAGS) $< -- --bpluginfo: Makefile bpluginfo.o -- $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L../lib -o $@ bpluginfo.o -lbac $(DLIB) $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) -- - Makefile: $(srcdir)/Makefile.in $(topdir)/config.status - cd $(topdir) \ - && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status diff --git a/bacula-7.2.0-tray-monitor-configure.patch b/bacula-7.2.0-tray-monitor-configure.patch deleted file mode 100644 index 7643949..0000000 --- a/bacula-7.2.0-tray-monitor-configure.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -Naur bacula-7.2.0/configure bacula-7.2.0.new/configure ---- bacula-7.2.0/configure 2015-08-13 15:52:24.000000000 +0200 -+++ bacula-7.2.0.new/configure 2015-09-29 10:50:51.758874960 +0200 -@@ -30881,7 +30881,7 @@ - fi - - --ac_config_files="$ac_config_files autoconf/Make.common Makefile manpages/Makefile scripts/btraceback scripts/bconsole scripts/bacula scripts/bacula-ctl-dir scripts/bacula-ctl-fd scripts/bacula-ctl-sd scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/mtx-changer scripts/disk-changer scripts/dvd-handler scripts/dvd-simulator scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf scripts/bat.desktop scripts/bat.desktop.xsu scripts/bat.desktop.consolehelper scripts/bat.console_apps src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/qt-console/bat.conf src/qt-console/bat.pro src/qt-console/bat.pro.mingw32 src/qt-console/bat.pro.mingw64 src/qt-console/install_conf_file src/qt-console/tray-monitor/tray-monitor.pro.mingw32 src/qt-console/tray-monitor/tray-monitor.pro.mingw64 src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/cats/Makefile src/cats/make_catalog_backup.pl src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite3_database src/cats/update_sqlite3_tables src/cats/make_sqlite3_tables src/cats/grant_sqlite3_privileges src/cats/drop_sqlite3_tables src/cats/drop_sqlite3_database src/cats/sqlite src/cats/mysql src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/cats/install-default-backend src/findlib/Makefile src/tools/Makefile src/plugins/fd/Makefile src/plugins/sd/Makefile src/plugins/dir/Makefile po/Makefile.in updatedb/update_mysql_tables updatedb/update_sqlite3_tables updatedb/update_postgresql_tables updatedb/update_mysql_tables_9_to_10 updatedb/update_sqlite3_tables_9_to_10 updatedb/update_postgresql_tables_9_to_10 updatedb/update_mysql_tables_10_to_11 updatedb/update_sqlite3_tables_10_to_11 updatedb/update_postgresql_tables_10_to_11 updatedb/update_mysql_tables_11_to_12 updatedb/update_sqlite3_tables_11_to_12 updatedb/update_postgresql_tables_11_to_12 updatedb/update_mysql_tables_12_to_13 updatedb/update_postgresql_tables_12_to_13 updatedb/update_mysql_tables_13_to_14 updatedb/update_postgresql_tables_13_to_14 examples/nagios/check_bacula/Makefile platforms/rpms/redhat/bacula.spec platforms/rpms/redhat/bacula-bat.spec platforms/rpms/redhat/bacula-docs.spec platforms/rpms/redhat/bacula-mtx.spec platforms/rpms/suse/bacula.spec platforms/rpms/suse/bacula-bat.spec platforms/rpms/suse/bacula-docs.spec platforms/rpms/suse/bacula-mtx.spec $PFILES" -+ac_config_files="$ac_config_files autoconf/Make.common Makefile manpages/Makefile scripts/btraceback scripts/bconsole scripts/bacula scripts/bacula-ctl-dir scripts/bacula-ctl-fd scripts/bacula-ctl-sd scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/mtx-changer scripts/disk-changer scripts/dvd-handler scripts/dvd-simulator scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf scripts/bat.desktop scripts/bat.desktop.xsu scripts/bat.desktop.consolehelper scripts/bat.console_apps src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/qt-console/bat.conf src/qt-console/bat.pro src/qt-console/bat.pro.mingw32 src/qt-console/bat.pro.mingw64 src/qt-console/install_conf_file src/qt-console/tray-monitor/tray-monitor.conf src/qt-console/tray-monitor/tray-monitor.pro src/qt-console/tray-monitor/tray-monitor.pro.mingw32 src/qt-console/tray-monitor/tray-monitor.pro.mingw64 src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/cats/Makefile src/cats/make_catalog_backup.pl src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite3_database src/cats/update_sqlite3_tables src/cats/make_sqlite3_tables src/cats/grant_sqlite3_privileges src/cats/drop_sqlite3_tables src/cats/drop_sqlite3_database src/cats/sqlite src/cats/mysql src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/cats/install-default-backend src/findlib/Makefile src/tools/Makefile src/plugins/fd/Makefile src/plugins/sd/Makefile src/plugins/dir/Makefile po/Makefile.in updatedb/update_mysql_tables updatedb/update_sqlite3_tables updatedb/update_postgresql_tables updatedb/update_mysql_tables_9_to_10 updatedb/update_sqlite3_tables_9_to_10 updatedb/update_postgresql_tables_9_to_10 updatedb/update_mysql_tables_10_to_11 updatedb/update_sqlite3_tables_10_to_11 updatedb/update_postgresql_tables_10_to_11 updatedb/update_mysql_tables_11_to_12 updatedb/update_sqlite3_tables_11_to_12 updatedb/update_postgresql_tables_11_to_12 updatedb/update_mysql_tables_12_to_13 updatedb/update_postgresql_tables_12_to_13 updatedb/update_mysql_tables_13_to_14 updatedb/update_postgresql_tables_13_to_14 examples/nagios/check_bacula/Makefile platforms/rpms/redhat/bacula.spec platforms/rpms/redhat/bacula-bat.spec platforms/rpms/redhat/bacula-docs.spec platforms/rpms/redhat/bacula-mtx.spec platforms/rpms/suse/bacula.spec platforms/rpms/suse/bacula-bat.spec platforms/rpms/suse/bacula-docs.spec platforms/rpms/suse/bacula-mtx.spec $PFILES" - - ac_config_commands="$ac_config_commands default" - -@@ -32001,6 +32001,8 @@ - "src/qt-console/bat.pro.mingw32") CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.pro.mingw32" ;; - "src/qt-console/bat.pro.mingw64") CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.pro.mingw64" ;; - "src/qt-console/install_conf_file") CONFIG_FILES="$CONFIG_FILES src/qt-console/install_conf_file" ;; -+ "src/qt-console/tray-monitor/tray-monitor.conf") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.conf" ;; -+ "src/qt-console/tray-monitor/tray-monitor.pro") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro" ;; - "src/qt-console/tray-monitor/tray-monitor.pro.mingw32") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro.mingw32" ;; - "src/qt-console/tray-monitor/tray-monitor.pro.mingw64") CONFIG_FILES="$CONFIG_FILES src/qt-console/tray-monitor/tray-monitor.pro.mingw64" ;; - "src/dird/Makefile") CONFIG_FILES="$CONFIG_FILES src/dird/Makefile" ;; -diff -Naur bacula-7.2.0/src/qt-console/tray-monitor/authenticate.cpp bacula-7.2.0.new/src/qt-console/tray-monitor/authenticate.cpp ---- bacula-7.2.0/src/qt-console/tray-monitor/authenticate.cpp 2015-08-13 15:52:24.000000000 +0200 -+++ bacula-7.2.0.new/src/qt-console/tray-monitor/authenticate.cpp 2015-09-29 10:53:52.452887255 +0200 -@@ -30,7 +30,11 @@ - * - */ - -+#if defined(HAVE_WIN32) -+#if defined(HAVE_MINGW) - #include "winhdrs.h" -+#endif -+#endif - #include "tray-monitor.h" - - void senditf(const char *fmt, ...); -diff -Naur bacula-7.2.0/src/qt-console/tray-monitor/tray-ui.h bacula-7.2.0.new/src/qt-console/tray-monitor/tray-ui.h ---- bacula-7.2.0/src/qt-console/tray-monitor/tray-ui.h 2015-08-13 15:52:24.000000000 +0200 -+++ bacula-7.2.0.new/src/qt-console/tray-monitor/tray-ui.h 2015-09-29 10:55:34.295203332 +0200 -@@ -27,7 +27,11 @@ - # endif - #endif - -+#if defined(HAVE_WIN32) -+#if defined(HAVE_MINGW) - #include "winhdrs.h" -+#endif -+#endif - #include - #include - #include diff --git a/bacula.spec b/bacula.spec index d4b0579..385d52c 100644 --- a/bacula.spec +++ b/bacula.spec @@ -3,7 +3,7 @@ Name: bacula Version: 7.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Cross platform network backup for Linux, Unix, Mac and Windows # See LICENSE for details License: AGPLv3 with exceptions @@ -40,8 +40,7 @@ Patch4: %{name}-7.2.0-bat-build.patch Patch5: %{name}-7.0.3-seg-fault.patch Patch6: %{name}-5.2.13-logwatch.patch Patch7: %{name}-7.2.0-non-free-code.patch -Patch8: %{name}-7.2.0-tray-monitor-configure.patch -Patch9: %{name}-7.2.0-remove-bpluginfo-remnants.patch +Patch8: %{name}-7.2.0-git.patch # Original patch removed by mistake, upstream is not willing to add it again: # http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-7.0&id=51b3b98fb77ab3c0decee455cc6c4d2eb3c5303a @@ -332,9 +331,7 @@ Provides check_bacula support for Nagios. %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 +%patch8 -p2 cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} . # Remove execution permissions from files we're packaging as docs later on @@ -775,6 +772,9 @@ fi %{_libdir}/nagios/plugins/check_bacula %changelog +* Fri Dec 11 2015 Simone Caronni - 7.2.0-2 +- Add fixes from upstream 7.2 branch. + * Tue Sep 29 2015 Simone Caronni - 7.2.0-1 - Update to 7.2.0. - Remove bpluginfo(8).