commit
2a945ff3bf
@ -0,0 +1,2 @@
|
|||||||
|
3fbca0dc9eb78a083589465052016f669c3b5e70 SOURCES/bacula-11.0.1.tar.gz
|
||||||
|
fec6073f62a07cd9df96fe3673d1dcea27d50984 SOURCES/bacula-tray-monitor.png
|
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/bacula-11.0.1.tar.gz
|
||||||
|
SOURCES/bacula-tray-monitor.png
|
@ -0,0 +1,90 @@
|
|||||||
|
======== Features
|
||||||
|
|
||||||
|
- Standard components: director, storage, client, docs, bconsole.
|
||||||
|
- Graphical components: bat, bacula-tray-monitor.
|
||||||
|
- Tab completion for bconsole.
|
||||||
|
- Nagios plugin.
|
||||||
|
- HTML/PDF docs.
|
||||||
|
- Quick start guides.
|
||||||
|
- File Daemon bpipe-fd plugin.
|
||||||
|
- POSIX.1e capabilities for File Daemon.
|
||||||
|
- GZIP/LZO compression.
|
||||||
|
- Static uid/gid of 133 (see "setup" package).
|
||||||
|
- SQL libraries needed only by Director and Storage daemons.
|
||||||
|
- SQL backend management through the alternatives system.
|
||||||
|
|
||||||
|
======== Quick start
|
||||||
|
|
||||||
|
Please look at the following files for a quick start with the various database
|
||||||
|
backends:
|
||||||
|
|
||||||
|
- quickstart_mysql.txt
|
||||||
|
- quickstart_postgresql.txt
|
||||||
|
- quickstart_sqlite3.txt
|
||||||
|
|
||||||
|
======== PostgreSQL, MySQL and SQLite databases
|
||||||
|
|
||||||
|
Bacula director supports different databases backends, if you want to switch
|
||||||
|
away from the default PostgreSQL one you need to change the "libbaccats" (the
|
||||||
|
catalogue library) symlink to the real library.
|
||||||
|
|
||||||
|
To change to a different backend, issue the following command:
|
||||||
|
|
||||||
|
# alternatives --config libbaccats.so
|
||||||
|
|
||||||
|
There are 3 programs which provide 'libbaccats.so'.
|
||||||
|
|
||||||
|
Selection Command
|
||||||
|
-----------------------------------------------
|
||||||
|
1 /usr/lib64/libbaccats-mysql.so
|
||||||
|
2 /usr/lib64/libbaccats-sqlite3.so
|
||||||
|
*+ 3 /usr/lib64/libbaccats-postgresql.so
|
||||||
|
|
||||||
|
Enter to keep the current selection[+], or type selection number: 1
|
||||||
|
|
||||||
|
There is NO need to edit any part in the Bacula Director configuration; for the
|
||||||
|
purposes of the database creation steps, the bacula-dir.conf configuration file
|
||||||
|
can be left at their default values.
|
||||||
|
|
||||||
|
======== Switiching between PostgreSQL, MySQL and SQLite backends
|
||||||
|
|
||||||
|
To switch the configured backend to another one, follow the above procedure.
|
||||||
|
Again, there's no need to edit the Bacula Director configuration file; the
|
||||||
|
catalog resource can be left as is.
|
||||||
|
|
||||||
|
Importing and exporting data between the various database formats is up to the
|
||||||
|
user. If the database will be re-initialized from scratch, follow the quick
|
||||||
|
start guides mentioned above.
|
||||||
|
|
||||||
|
======== Upgrading from old Redhat releases
|
||||||
|
|
||||||
|
When upgrading from old Redhat releases, the "bacula-libs-sql" package takes
|
||||||
|
care of making the appropriate selection for the database backend based on what
|
||||||
|
was previously configured on the old system.
|
||||||
|
|
||||||
|
The default permissions in the "/etc/bacula" folder have changed; please perform
|
||||||
|
the following commands for restoring the permissions for the correct operation
|
||||||
|
of the daemons.
|
||||||
|
|
||||||
|
# chown -R root:root /etc/bacula
|
||||||
|
# chmod 755 /etc/bacula
|
||||||
|
# chmod 640 /etc/bacula/*
|
||||||
|
# chgrp bacula /etc/bacula/bacula-dir.conf /etc/bacula/query.sql
|
||||||
|
|
||||||
|
All the files that are part of the Director configuration (included with @) must
|
||||||
|
of course have the same permissions as the main configuration file.
|
||||||
|
|
||||||
|
======== Documentation
|
||||||
|
|
||||||
|
To see all the available documentation in both HTML and PDF formats, please
|
||||||
|
install the "bacula-docs" package.
|
||||||
|
|
||||||
|
======== Granting user access to the console
|
||||||
|
|
||||||
|
The console configuration files are normally readable only by root for security
|
||||||
|
reasons. If you need to grant access to a specific user or group of users to
|
||||||
|
the consoles, you can adjust the ACLs on the configuration files. For example:
|
||||||
|
|
||||||
|
# setfacl -m u:user:r /etc/bacula/bconsole.conf /etc/bacula/bat.conf
|
||||||
|
|
||||||
|
This way the user 'user' can open the console without superuser privileges.
|
@ -0,0 +1,35 @@
|
|||||||
|
diff -Naur bacula-7.0.4.old/autoconf/ltmain.sh bacula-7.0.4/autoconf/ltmain.sh
|
||||||
|
--- bacula-7.0.4.old/autoconf/ltmain.sh 2014-07-24 17:43:23.085243360 +0200
|
||||||
|
+++ bacula-7.0.4/autoconf/ltmain.sh 2014-07-24 17:45:12.505330842 +0200
|
||||||
|
@@ -2429,6 +2429,7 @@
|
||||||
|
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
|
||||||
|
-shared only do dynamic linking of libtool libraries
|
||||||
|
-shrext SUFFIX override the standard shared library file extension
|
||||||
|
+ -soname SONAME override the standard shared object name
|
||||||
|
-static do not do any dynamic linking of uninstalled libtool libraries
|
||||||
|
-static-libtool-libs
|
||||||
|
do not do any dynamic linking of libtool libraries
|
||||||
|
@@ -5434,6 +5435,11 @@
|
||||||
|
prev=
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
+ soname)
|
||||||
|
+ soname_spec="$arg"
|
||||||
|
+ prev=
|
||||||
|
+ continue
|
||||||
|
+ ;;
|
||||||
|
weak)
|
||||||
|
func_append weak_libs " $arg"
|
||||||
|
prev=
|
||||||
|
@@ -5754,6 +5760,11 @@
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
|
||||||
|
+ -soname)
|
||||||
|
+ prev=soname
|
||||||
|
+ continue
|
||||||
|
+ ;;
|
||||||
|
+
|
||||||
|
-static | -static-libtool-libs)
|
||||||
|
# The effects of -static are defined in a previous loop.
|
||||||
|
# We used to do the same as -all-static on platforms that
|
@ -0,0 +1,39 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/src/qt-console/bat.pro.in bacula-11.0.0/src/qt-console/bat.pro.in
|
||||||
|
--- bacula-11.0.0.old/src/qt-console/bat.pro.in 2021-01-12 12:36:32.639470258 +0100
|
||||||
|
+++ bacula-11.0.0/src/qt-console/bat.pro.in 2021-01-12 12:39:13.647417778 +0100
|
||||||
|
@@ -6,7 +6,7 @@
|
||||||
|
#
|
||||||
|
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
#
|
||||||
|
-CONFIG += qt debug @QWT@
|
||||||
|
+CONFIG += qt release @QWT@
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
bins.files = bat
|
||||||
|
confs.path = /$(DESTDIR)@sysconfdir@
|
||||||
|
confs.commands = ./install_conf_file
|
||||||
|
-help.path = /$(DESTDIR)@docdir@
|
||||||
|
+help.path = /$(DESTDIR)@htmldir@
|
||||||
|
help.files = help/*.html images/status.png images/mail-message-new.png
|
||||||
|
|
||||||
|
TEMPLATE = app
|
||||||
|
diff -Naur bacula-11.0.0.old/src/qt-console/main.cpp bacula-11.0.0/src/qt-console/main.cpp
|
||||||
|
--- bacula-11.0.0.old/src/qt-console/main.cpp 2021-01-12 12:36:32.640470277 +0100
|
||||||
|
+++ bacula-11.0.0/src/qt-console/main.cpp 2021-01-12 12:39:13.647417778 +0100
|
||||||
|
@@ -29,11 +29,11 @@
|
||||||
|
#include <QTranslator>
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * We need Qt version 4.8.4 or later to be able to comple correctly
|
||||||
|
+ * We need Qt version 4.6.2 or later to be able to comple correctly
|
||||||
|
*/
|
||||||
|
-#if QT_VERSION < 0x040804
|
||||||
|
+#if QT_VERSION < 0x040602
|
||||||
|
#error "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
-#error "You need Qt version 4.8.4 or later to build Bat"
|
||||||
|
+#error "You need Qt version 4.6.2 or later to build Bat"
|
||||||
|
#error "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,43 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/src/plugins/fd/Makefile.in bacula-11.0.0/src/plugins/fd/Makefile.in
|
||||||
|
--- bacula-11.0.0.old/src/plugins/fd/Makefile.in 2021-01-15 14:28:41.375718846 +0100
|
||||||
|
+++ bacula-11.0.0/src/plugins/fd/Makefile.in 2021-01-15 14:37:51.212066769 +0100
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
.c.lo:
|
||||||
|
$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) $(CPPFLAGS) $(CFLAGS) -I${SRCDIR} -I${FDDIR} -DTEST_PROGRAM -c $<
|
||||||
|
|
||||||
|
-all: bpipe-fd.la test-plugin-fd.la test-deltaseq-fd.la pluglib.lo
|
||||||
|
+all: bpipe-fd.la cdp-fd.la test-plugin-fd.la test-deltaseq-fd.la pluglib.lo
|
||||||
|
|
||||||
|
example-plugin-fd.lo: example-plugin-fd.c ${FDDIR}/fd_plugins.h
|
||||||
|
$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) $(CPPFLAGS) $(CFLAGS) -I../.. -I${FDDIR} -c example-plugin-fd.c
|
||||||
|
@@ -36,8 +36,6 @@
|
||||||
|
bpipe-fd.la: Makefile bpipe-fd$(DEFAULT_OBJECT_TYPE)
|
||||||
|
$(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -shared bpipe-fd.lo -o $@ -rpath $(plugindir) -module -export-dynamic -avoid-version
|
||||||
|
|
||||||
|
-cdp: cdp-fd.la
|
||||||
|
-
|
||||||
|
cdp-fd.lo: cdp-fd.c journal.h folder-record.h file-record.h settings-record.h ${FDDIR}/fd_plugins.h
|
||||||
|
$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) $(CPPFLAGS) $(CFLAGS) -Wno-unused-function -I../.. -I${FDDIR} -c cdp-fd.c
|
||||||
|
|
||||||
|
@@ -47,12 +45,6 @@
|
||||||
|
cdp-fd.la: Makefile cdp-fd$(DEFAULT_OBJECT_TYPE) journal.lo
|
||||||
|
$(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -shared cdp-fd.lo journal.lo -o $@ -rpath $(plugindir) -module -export-dynamic -avoid-version
|
||||||
|
|
||||||
|
-install-cdp: cdp-fd.la
|
||||||
|
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) cdp-fd.la $(DESTDIR)$(plugindir)
|
||||||
|
- $(RMF) $(DESTDIR)$(plugindir)/cdp-fd.la
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-
|
||||||
|
test-deltaseq-fd.lo: test-deltaseq-fd.c ${FDDIR}/fd_plugins.h fd_common.h
|
||||||
|
$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) $(CPPFLAGS) $(CFLAGS) -I../.. -I${FDDIR} -c test-deltaseq-fd.c
|
||||||
|
|
||||||
|
@@ -69,6 +61,8 @@
|
||||||
|
$(MKDIR) $(DESTDIR)$(plugindir)
|
||||||
|
$(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bpipe-fd.la $(DESTDIR)$(plugindir)
|
||||||
|
$(RMF) $(DESTDIR)$(plugindir)/bpipe-fd.la
|
||||||
|
+ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) cdp-fd.la $(DESTDIR)$(plugindir)
|
||||||
|
+ $(RMF) $(DESTDIR)$(plugindir)/cdp-fd.la
|
||||||
|
|
||||||
|
install-test-plugin: all
|
||||||
|
$(MKDIR) $(DESTDIR)$(plugindir)
|
@ -0,0 +1,34 @@
|
|||||||
|
diff -Naur bacula-9.6.5.old/scripts/bacula-tray-monitor.desktop.in bacula-9.6.5/scripts/bacula-tray-monitor.desktop.in
|
||||||
|
--- bacula-9.6.5.old/scripts/bacula-tray-monitor.desktop.in 2020-07-24 09:11:40.976119619 +0200
|
||||||
|
+++ bacula-9.6.5/scripts/bacula-tray-monitor.desktop.in 2020-07-24 09:16:52.055851377 +0200
|
||||||
|
@@ -5,6 +5,5 @@
|
||||||
|
Exec=@sbindir@/bacula-tray-monitor -c @sysconfdir@/bacula-tray-monitor.conf
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
-Encoding=UTF-8
|
||||||
|
X-Desktop-File-Install-Version=0.3
|
||||||
|
-Categories=System;Application;Utility;X-Red-Hat-Base;
|
||||||
|
+Categories=System;Utility;
|
||||||
|
diff -Naur bacula-9.6.5.old/scripts/bat.desktop.in bacula-9.6.5/scripts/bat.desktop.in
|
||||||
|
--- bacula-9.6.5.old/scripts/bat.desktop.in 2020-07-24 09:11:40.976119619 +0200
|
||||||
|
+++ bacula-9.6.5/scripts/bat.desktop.in 2020-07-24 09:17:21.178294361 +0200
|
||||||
|
@@ -5,7 +5,6 @@
|
||||||
|
Exec=@sbindir@/bat -c @sysconfdir@/bat.conf
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
-Encoding=UTF-8
|
||||||
|
StartupNotify=true
|
||||||
|
X-Desktop-File-Install-Version=0.3
|
||||||
|
-Categories=System;Application;Utility;X-Red-Hat-Base;
|
||||||
|
+Categories=System;Utility;
|
||||||
|
diff -Naur bacula-9.6.5.old/scripts/Makefile.in bacula-9.6.5/scripts/Makefile.in
|
||||||
|
--- bacula-9.6.5.old/scripts/Makefile.in 2020-07-24 09:11:40.976119619 +0200
|
||||||
|
+++ bacula-9.6.5/scripts/Makefile.in 2020-07-24 09:17:57.725850277 +0200
|
||||||
|
@@ -67,7 +67,6 @@
|
||||||
|
$(MV) -f ${DESTDIR}${scriptdir}/baculabackupreport ${DESTDIR}${scriptdir}/baculabackupreport.old; \
|
||||||
|
fi
|
||||||
|
$(INSTALL_SCRIPT) baculabackupreport $(DESTDIR)$(scriptdir)/baculabackupreport
|
||||||
|
- $(INSTALL_SCRIPT) bacula-tray-monitor.desktop $(DESTDIR)$(scriptdir)/bacula-tray-monitor.desktop
|
||||||
|
chmod 0644 $(DESTDIR)$(scriptdir)/btraceback.gdb \
|
||||||
|
$(DESTDIR)$(scriptdir)/btraceback.dbx \
|
||||||
|
$(DESTDIR)$(scriptdir)/btraceback.mdb
|
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Bacula Director
|
||||||
|
Documentation=man:bacula-dir(8)
|
||||||
|
After=network.target nss-lookup.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=CONFIG=/etc/bacula/bacula-dir.conf
|
||||||
|
EnvironmentFile=-/etc/sysconfig/bacula-dir
|
||||||
|
ExecStart=/usr/sbin/bacula-dir -f $OPTS -c $CONFIG -u $DIR_USER -g $DIR_GROUP
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -0,0 +1,9 @@
|
|||||||
|
# User and group for bacula director
|
||||||
|
# If no user is set bacula will run as root
|
||||||
|
|
||||||
|
DIR_USER=bacula
|
||||||
|
DIR_GROUP=bacula
|
||||||
|
|
||||||
|
# Useful for debugging
|
||||||
|
#
|
||||||
|
# OPTS="-d 200"
|
@ -0,0 +1,29 @@
|
|||||||
|
diff -Naur bacula-11.0.1.old/autoconf/configure.in bacula-11.0.1/autoconf/configure.in
|
||||||
|
--- bacula-11.0.1.old/autoconf/configure.in 2021-02-11 14:12:19.547538024 +0100
|
||||||
|
+++ bacula-11.0.1/autoconf/configure.in 2021-02-11 14:12:25.803641252 +0100
|
||||||
|
@@ -3240,20 +3240,11 @@
|
||||||
|
]
|
||||||
|
)
|
||||||
|
if test x$support_docker = xyes -o x$support_docker = xauto; then
|
||||||
|
- AC_CHECK_PROG(docker_bin, docker, yes, no, "/usr/bin/")
|
||||||
|
- if test x$docker_bin = xyes; then
|
||||||
|
- support_docker=yes
|
||||||
|
- FD_PLUGIN_DIR="$FD_PLUGIN_DIR src/plugins/fd/docker"
|
||||||
|
- PLUGCONFILES="${PLUGCONFILES} src/plugins/fd/docker/Makefile"
|
||||||
|
- else
|
||||||
|
- if test x$support_docker = xyes; then
|
||||||
|
- echo " "
|
||||||
|
- echo "You enabled a Docker Plugin build but 'docker' command not found."
|
||||||
|
- echo " "
|
||||||
|
- exit 1
|
||||||
|
- fi
|
||||||
|
- support_docker=no
|
||||||
|
- fi
|
||||||
|
+ support_docker=yes
|
||||||
|
+ FD_PLUGIN_DIR="$FD_PLUGIN_DIR src/plugins/fd/docker"
|
||||||
|
+ PLUGCONFILES="${PLUGCONFILES} src/plugins/fd/docker/Makefile"
|
||||||
|
+else
|
||||||
|
+ support_docker=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(FD_PLUGIN_DIR)
|
@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Bacula File Daemon
|
||||||
|
Documentation=man:bacula-fd(8)
|
||||||
|
After=network.target nss-lookup.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=CONFIG=/etc/bacula/bacula-fd.conf
|
||||||
|
EnvironmentFile=-/etc/sysconfig/bacula-fd
|
||||||
|
ExecStart=/usr/sbin/bacula-fd -f $OPTS -c $CONFIG -u $FD_USER -g $FD_GROUP
|
||||||
|
IOSchedulingClass=idle
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -0,0 +1,21 @@
|
|||||||
|
# User and group for bacula client
|
||||||
|
# If no user is set bacula will run as root
|
||||||
|
|
||||||
|
FD_USER=root
|
||||||
|
FD_GROUP=root
|
||||||
|
|
||||||
|
# Useful for debugging
|
||||||
|
#
|
||||||
|
# OPTS="-d 200"
|
||||||
|
|
||||||
|
|
||||||
|
# Set the following options if you want to run bacula-fd with ReadAll
|
||||||
|
# capabilities after UID/GID switch.
|
||||||
|
#
|
||||||
|
# This allows the File Daemon to keep root read but drop write permission.
|
||||||
|
# This, however, has the side effect of disabling backups of extended
|
||||||
|
# attributes because this requires super user privileges.
|
||||||
|
#
|
||||||
|
# OPTS="-k"
|
||||||
|
# FD_USER="bacula"
|
||||||
|
# FD_GROUP="bacula"
|
@ -0,0 +1,15 @@
|
|||||||
|
diff -Naur bacula-11.0.1.old/autoconf/configure.in bacula-11.0.1/autoconf/configure.in
|
||||||
|
--- bacula-11.0.1.old/autoconf/configure.in 2021-02-11 14:09:48.635047858 +0100
|
||||||
|
+++ bacula-11.0.1/autoconf/configure.in 2021-02-11 14:10:48.026027852 +0100
|
||||||
|
@@ -3274,11 +3274,6 @@
|
||||||
|
AC_DEFINE(FDLIBS)
|
||||||
|
|
||||||
|
CFLAGS=${CFLAGS--O}
|
||||||
|
-
|
||||||
|
-if test x$have_gcc = xyes ; then
|
||||||
|
- CPPFLAGS="$CPPFLAGS -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti"
|
||||||
|
- CFLAGS="$CFLAGS -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti"
|
||||||
|
-fi
|
||||||
|
LDFLAGS=${LDFLAGS--O}
|
||||||
|
CPPFLAGS="$CPPFLAGS"
|
||||||
|
CFLAGS="$CFLAGS"
|
@ -0,0 +1,48 @@
|
|||||||
|
diff -Naur bacula-11.0.1.old/autoconf/configure.in bacula-11.0.1/autoconf/configure.in
|
||||||
|
--- bacula-11.0.1.old/autoconf/configure.in 2021-02-11 14:11:00.673236537 +0100
|
||||||
|
+++ bacula-11.0.1/autoconf/configure.in 2021-02-11 14:11:36.910834489 +0100
|
||||||
|
@@ -3798,7 +3798,7 @@
|
||||||
|
cd src/qt-console
|
||||||
|
chmod 755 install_conf_file build-depkgs-qt-console
|
||||||
|
cd tray-monitor
|
||||||
|
-chmod 755 install_conf_file
|
||||||
|
+chmod 755 install_conf_file build-depkgs-qt-console
|
||||||
|
cd ${BUILD_DIR}
|
||||||
|
|
||||||
|
cd scripts
|
||||||
|
diff -Naur bacula-11.0.1.old/examples/nagios/check_bacula/Makefile.in bacula-11.0.1/examples/nagios/check_bacula/Makefile.in
|
||||||
|
--- bacula-11.0.1.old/examples/nagios/check_bacula/Makefile.in 2021-02-11 14:09:48.630047776 +0100
|
||||||
|
+++ bacula-11.0.1/examples/nagios/check_bacula/Makefile.in 2021-02-11 14:11:07.708352620 +0100
|
||||||
|
@@ -72,7 +72,7 @@
|
||||||
|
(cd $(srcdir); $(RMF) Makefile)
|
||||||
|
|
||||||
|
install: all
|
||||||
|
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) check_bacula $(DESTDIR)$(sbindir)/check_bacula
|
||||||
|
+ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) .libs/check_bacula $(DESTDIR)$(sbindir)/check_bacula
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
(cd $(DESTDIR)$(sbindir); $(RMF) check_bacula)
|
||||||
|
diff -Naur bacula-11.0.1.old/src/qt-console/bat.pro.in bacula-11.0.1/src/qt-console/bat.pro.in
|
||||||
|
--- bacula-11.0.1.old/src/qt-console/bat.pro.in 2021-02-11 14:09:48.599047264 +0100
|
||||||
|
+++ bacula-11.0.1/src/qt-console/bat.pro.in 2021-02-11 14:11:07.742353181 +0100
|
||||||
|
@@ -12,7 +12,7 @@
|
||||||
|
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
bins.path = /$(DESTDIR)@sbindir@
|
||||||
|
-bins.files = bat
|
||||||
|
+bins.files = .libs/bat
|
||||||
|
confs.path = /$(DESTDIR)@sysconfdir@
|
||||||
|
confs.commands = ./install_conf_file
|
||||||
|
help.path = /$(DESTDIR)@htmldir@
|
||||||
|
diff -Naur bacula-11.0.1.old/src/qt-console/tray-monitor/tray-monitor.pro.in bacula-11.0.1/src/qt-console/tray-monitor/tray-monitor.pro.in
|
||||||
|
--- bacula-11.0.1.old/src/qt-console/tray-monitor/tray-monitor.pro.in 2021-02-11 14:09:48.603047330 +0100
|
||||||
|
+++ bacula-11.0.1/src/qt-console/tray-monitor/tray-monitor.pro.in 2021-02-11 14:11:07.743353198 +0100
|
||||||
|
@@ -26,7 +26,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
bins.path = /$(DESTDIR)@sbindir@
|
||||||
|
-bins.files = bacula-tray-monitor
|
||||||
|
+bins.files = .libs/bacula-tray-monitor
|
||||||
|
confs.path = /$(DESTDIR)@sysconfdir@
|
||||||
|
confs.commands = ./install_conf_file
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
diff --git a/scripts/logwatch/logfile.bacula.conf.in b/scripts/logwatch/logfile.bacula.conf.in
|
||||||
|
index 22b6e98..5d257ca 100644
|
||||||
|
--- a/scripts/logwatch/logfile.bacula.conf.in
|
||||||
|
+++ b/scripts/logwatch/logfile.bacula.conf.in
|
||||||
|
@@ -1,3 +1,3 @@
|
||||||
|
# What actual file? Defaults to LogPath if not absolute path....
|
||||||
|
-LogFile = @logdir@/bacula.log
|
||||||
|
+LogFile = @logdir@/*.log
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/examples/nagios/check_bacula/Makefile.in bacula-11.0.0/examples/nagios/check_bacula/Makefile.in
|
||||||
|
--- bacula-11.0.0.old/examples/nagios/check_bacula/Makefile.in 2021-01-15 14:28:41.415719526 +0100
|
||||||
|
+++ bacula-11.0.0/examples/nagios/check_bacula/Makefile.in 2021-01-15 15:01:26.371678793 +0100
|
||||||
|
@@ -72,7 +72,8 @@
|
||||||
|
(cd $(srcdir); $(RMF) Makefile)
|
||||||
|
|
||||||
|
install: all
|
||||||
|
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) .libs/check_bacula $(DESTDIR)$(sbindir)/check_bacula
|
||||||
|
+ $(MKDIR) $(DESTDIR)$(libdir)/nagios/plugins
|
||||||
|
+ $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) .libs/check_bacula $(DESTDIR)$(libdir)/nagios/plugins/check_bacula
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
(cd $(DESTDIR)$(sbindir); $(RMF) check_bacula)
|
@ -0,0 +1,696 @@
|
|||||||
|
diff -Naur bacula-11.0.1.old/src/lib/lib.h bacula-11.0.1/src/lib/lib.h
|
||||||
|
--- bacula-11.0.1.old/src/lib/lib.h 2021-02-11 14:09:48.598047248 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/lib.h 2021-02-11 14:10:04.432308524 +0100
|
||||||
|
@@ -57,7 +57,6 @@
|
||||||
|
#include "fnmatch.h"
|
||||||
|
#endif
|
||||||
|
#include "md5.h"
|
||||||
|
-#include "sha1.h"
|
||||||
|
#include "tree.h"
|
||||||
|
#include "watchdog.h"
|
||||||
|
#include "btimers.h"
|
||||||
|
diff -Naur bacula-11.0.1.old/src/lib/Makefile.in bacula-11.0.1/src/lib/Makefile.in
|
||||||
|
--- bacula-11.0.1.old/src/lib/Makefile.in 2021-02-11 14:09:48.598047248 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/Makefile.in 2021-02-11 14:10:04.433308540 +0100
|
||||||
|
@@ -40,7 +40,7 @@
|
||||||
|
flist.h fnmatch.h guid_to_name.h htable.h lex.h \
|
||||||
|
lib.h lz4.h md5.h mem_pool.h message.h \
|
||||||
|
openssl.h plugins.h protos.h queue.h rblist.h \
|
||||||
|
- runscript.h rwlock.h serial.h sellist.h sha1.h sha2.h \
|
||||||
|
+ runscript.h rwlock.h serial.h sellist.h sha2.h \
|
||||||
|
smartall.h status.h tls.h tree.h var.h \
|
||||||
|
waitq.h watchdog.h workq.h \
|
||||||
|
parse_conf.h ini.h \
|
||||||
|
@@ -57,7 +57,7 @@
|
||||||
|
guid_to_name.c hmac.c jcr.c lex.c lz4.c alist.c dlist.c \
|
||||||
|
md5.c message.c mem_pool.c openssl.c \
|
||||||
|
plugins.c priv.c queue.c bregex.c bsockcore.c \
|
||||||
|
- runscript.c rwlock.c scan.c sellist.c serial.c sha1.c sha2.c \
|
||||||
|
+ runscript.c rwlock.c scan.c sellist.c serial.c sha2.c \
|
||||||
|
signal.c smartall.c rblist.c tls.c tree.c \
|
||||||
|
util.c var.c watchdog.c workq.c btimers.c \
|
||||||
|
worker.c flist.c bcollector.c collect.c \
|
||||||
|
@@ -286,22 +286,6 @@
|
||||||
|
$(RMF) md5.o
|
||||||
|
$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c
|
||||||
|
|
||||||
|
-sha1sum: Makefile libbac.la sha1.c
|
||||||
|
- $(RMF) sha1.o
|
||||||
|
- $(CXX) -DSHA1_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
|
||||||
|
- $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sha1.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
|
||||||
|
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) $@ $(DESTDIR)$(sbindir)/
|
||||||
|
- $(RMF) sha1.o
|
||||||
|
- $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
|
||||||
|
-
|
||||||
|
-sha1_test: Makefile libbac.la sha1.c unittests.o
|
||||||
|
- $(RMF) sha1.o
|
||||||
|
- $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
|
||||||
|
- $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sha1.o unittests.o $(DLIB) -lbac -lm $(LIBS)
|
||||||
|
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) $@ $(DESTDIR)$(sbindir)/
|
||||||
|
- $(RMF) sha1.o
|
||||||
|
- $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
|
||||||
|
-
|
||||||
|
bsnprintf_test: Makefile libbac.la bsnprintf.c unittests.o
|
||||||
|
$(RMF) bsnprintf.o
|
||||||
|
$(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c
|
||||||
|
@@ -397,7 +381,7 @@
|
||||||
|
|
||||||
|
clean: libtool-clean
|
||||||
|
@$(RMF) core a.out *.o *.bak *.tex *.pdf *~ *.intpro *.extpro 1 2 3
|
||||||
|
- @$(RMF) rwlock_test md5sum sha1sum
|
||||||
|
+ @$(RMF) rwlock_test md5sum
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
@$(RMF) tags
|
||||||
|
diff -Naur bacula-11.0.1.old/src/lib/sha1.c bacula-11.0.1/src/lib/sha1.c
|
||||||
|
--- bacula-11.0.1.old/src/lib/sha1.c 2021-02-11 14:09:48.598047248 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/sha1.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
@@ -1,517 +0,0 @@
|
||||||
|
-/*
|
||||||
|
- * sha1.c
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This file implements the Secure Hashing Algorithm 1 as
|
||||||
|
- * defined in FIPS PUB 180-1 published April 17, 1995.
|
||||||
|
- *
|
||||||
|
- * The SHA-1, produces a 160-bit message digest for a given
|
||||||
|
- * data stream. It should take about 2**n steps to find a
|
||||||
|
- * message with the same digest as a given message and
|
||||||
|
- * 2**(n/2) to find any two messages with the same digest,
|
||||||
|
- * when n is the digest size in bits. Therefore, this
|
||||||
|
- * algorithm can serve as a means of providing a
|
||||||
|
- * "fingerprint" for a message.
|
||||||
|
- *
|
||||||
|
- * Portability Issues:
|
||||||
|
- * SHA-1 is defined in terms of 32-bit "words". This code
|
||||||
|
- * uses <stdint.h> (included via "sha1.h" to define 32 and 8
|
||||||
|
- * bit unsigned integer types. If your C compiler does not
|
||||||
|
- * support 32 bit unsigned integers, this code is not
|
||||||
|
- * appropriate.
|
||||||
|
- *
|
||||||
|
- * Caveats:
|
||||||
|
- * SHA-1 is designed to work with messages less than 2^64 bits
|
||||||
|
- * long. Although SHA-1 allows a message digest to be generated
|
||||||
|
- * for messages of any number of bits less than 2^64, this
|
||||||
|
- * implementation only works with messages with a length that is
|
||||||
|
- * a multiple of the size of an 8-bit character.
|
||||||
|
- *
|
||||||
|
- * See sha1.h for copyright
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-#include "sha1.h"
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Define the SHA1 circular left shift macro
|
||||||
|
- */
|
||||||
|
-#define SHA1CircularShift(bits,word) \
|
||||||
|
- (((word) << (bits)) | ((word) >> (32-(bits))))
|
||||||
|
-
|
||||||
|
-/* Local Function Prototyptes */
|
||||||
|
-static void SHA1PadMessage(SHA1Context *);
|
||||||
|
-static void SHA1ProcessMessageBlock(SHA1Context *);
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * SHA1Init
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This function will initialize the SHA1Context in preparation
|
||||||
|
- * for computing a new SHA1 message digest.
|
||||||
|
- *
|
||||||
|
- * Parameters:
|
||||||
|
- * context: [in/out]
|
||||||
|
- * The context to reset.
|
||||||
|
- *
|
||||||
|
- * Returns:
|
||||||
|
- * sha Error Code.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-int SHA1Init(SHA1Context *context)
|
||||||
|
-{
|
||||||
|
- if (!context)
|
||||||
|
- {
|
||||||
|
- return shaNull;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- context->Length_Low = 0;
|
||||||
|
- context->Length_High = 0;
|
||||||
|
- context->Message_Block_Index = 0;
|
||||||
|
-
|
||||||
|
- context->Intermediate_Hash[0] = 0x67452301;
|
||||||
|
- context->Intermediate_Hash[1] = 0xEFCDAB89;
|
||||||
|
- context->Intermediate_Hash[2] = 0x98BADCFE;
|
||||||
|
- context->Intermediate_Hash[3] = 0x10325476;
|
||||||
|
- context->Intermediate_Hash[4] = 0xC3D2E1F0;
|
||||||
|
-
|
||||||
|
- context->Computed = 0;
|
||||||
|
- context->Corrupted = 0;
|
||||||
|
-
|
||||||
|
- return shaSuccess;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * SHA1Final
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This function will return the 160-bit message digest into the
|
||||||
|
- * Message_Digest array provided by the caller.
|
||||||
|
- * NOTE: The first octet of hash is stored in the 0th element,
|
||||||
|
- * the last octet of hash in the 19th element.
|
||||||
|
- *
|
||||||
|
- * Parameters:
|
||||||
|
- * context: [in/out]
|
||||||
|
- * The context to use to calculate the SHA-1 hash.
|
||||||
|
- * Message_Digest: [out]
|
||||||
|
- * Where the digest is returned.
|
||||||
|
- *
|
||||||
|
- * Returns:
|
||||||
|
- * sha Error Code.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-int SHA1Final(SHA1Context *context,
|
||||||
|
- uint8_t Message_Digest[SHA1HashSize])
|
||||||
|
-{
|
||||||
|
- int i;
|
||||||
|
-
|
||||||
|
- if (!context || !Message_Digest) {
|
||||||
|
- return shaNull;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (context->Corrupted) {
|
||||||
|
- return context->Corrupted;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (!context->Computed) {
|
||||||
|
- SHA1PadMessage(context);
|
||||||
|
- for(i=0; i<64; ++i) {
|
||||||
|
- /* message may be sensitive, clear it out */
|
||||||
|
- context->Message_Block[i] = 0;
|
||||||
|
- }
|
||||||
|
- context->Length_Low = 0; /* and clear length */
|
||||||
|
- context->Length_High = 0;
|
||||||
|
- context->Computed = 1;
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for(i = 0; i < SHA1HashSize; ++i) {
|
||||||
|
- Message_Digest[i] = context->Intermediate_Hash[i>>2]
|
||||||
|
- >> 8 * ( 3 - ( i & 0x03 ) );
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return shaSuccess;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * SHA1Update
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This function accepts an array of octets as the next portion
|
||||||
|
- * of the message.
|
||||||
|
- *
|
||||||
|
- * Parameters:
|
||||||
|
- * context: [in/out]
|
||||||
|
- * The SHA context to update
|
||||||
|
- * message_array: [in]
|
||||||
|
- * An array of characters representing the next portion of
|
||||||
|
- * the message.
|
||||||
|
- * length: [in]
|
||||||
|
- * The length of the message in message_array
|
||||||
|
- *
|
||||||
|
- * Returns:
|
||||||
|
- * sha Error Code.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-int SHA1Update(SHA1Context *context,
|
||||||
|
- const uint8_t *message_array,
|
||||||
|
- unsigned length)
|
||||||
|
-{
|
||||||
|
- if (!length) {
|
||||||
|
- return shaSuccess;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (!context || !message_array) {
|
||||||
|
- return shaNull;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (context->Computed) {
|
||||||
|
- context->Corrupted = shaStateError;
|
||||||
|
-
|
||||||
|
- return shaStateError;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (context->Corrupted) {
|
||||||
|
- return context->Corrupted;
|
||||||
|
- }
|
||||||
|
- while(length-- && !context->Corrupted) {
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] =
|
||||||
|
- (*message_array & 0xFF);
|
||||||
|
-
|
||||||
|
- context->Length_Low += 8;
|
||||||
|
- if (context->Length_Low == 0) {
|
||||||
|
- context->Length_High++;
|
||||||
|
- if (context->Length_High == 0) {
|
||||||
|
- /* Message is too long */
|
||||||
|
- context->Corrupted = 1;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (context->Message_Block_Index == 64) {
|
||||||
|
- SHA1ProcessMessageBlock(context);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- message_array++;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return shaSuccess;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * SHA1ProcessMessageBlock
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This function will process the next 512 bits of the message
|
||||||
|
- * stored in the Message_Block array.
|
||||||
|
- *
|
||||||
|
- * Parameters:
|
||||||
|
- * None.
|
||||||
|
- *
|
||||||
|
- * Returns:
|
||||||
|
- * Nothing.
|
||||||
|
- *
|
||||||
|
- * Comments:
|
||||||
|
-
|
||||||
|
- * Many of the variable names in this code, especially the
|
||||||
|
- * single character names, were used because those were the
|
||||||
|
- * names used in the publication.
|
||||||
|
- *
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-static void SHA1ProcessMessageBlock(SHA1Context *context)
|
||||||
|
-{
|
||||||
|
- const uint32_t K[] = { /* Constants defined in SHA-1 */
|
||||||
|
- 0x5A827999,
|
||||||
|
- 0x6ED9EBA1,
|
||||||
|
- 0x8F1BBCDC,
|
||||||
|
- 0xCA62C1D6
|
||||||
|
- };
|
||||||
|
- int t; /* Loop counter */
|
||||||
|
- uint32_t temp; /* Temporary word value */
|
||||||
|
- uint32_t W[80]; /* Word sequence */
|
||||||
|
- uint32_t A, B, C, D, E; /* Word buffers */
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Initialize the first 16 words in the array W
|
||||||
|
- */
|
||||||
|
- for(t = 0; t < 16; t++) {
|
||||||
|
- W[t] = context->Message_Block[t * 4] << 24;
|
||||||
|
- W[t] |= context->Message_Block[t * 4 + 1] << 16;
|
||||||
|
- W[t] |= context->Message_Block[t * 4 + 2] << 8;
|
||||||
|
- W[t] |= context->Message_Block[t * 4 + 3];
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for(t = 16; t < 80; t++) {
|
||||||
|
- W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- A = context->Intermediate_Hash[0];
|
||||||
|
- B = context->Intermediate_Hash[1];
|
||||||
|
- C = context->Intermediate_Hash[2];
|
||||||
|
- D = context->Intermediate_Hash[3];
|
||||||
|
- E = context->Intermediate_Hash[4];
|
||||||
|
-
|
||||||
|
- for(t = 0; t < 20; t++) {
|
||||||
|
- temp = SHA1CircularShift(5,A) +
|
||||||
|
- ((B & C) | ((~B) & D)) + E + W[t] + K[0];
|
||||||
|
- E = D;
|
||||||
|
- D = C;
|
||||||
|
- C = SHA1CircularShift(30,B);
|
||||||
|
-
|
||||||
|
- B = A;
|
||||||
|
- A = temp;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for(t = 20; t < 40; t++) {
|
||||||
|
- temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
|
||||||
|
- E = D;
|
||||||
|
- D = C;
|
||||||
|
- C = SHA1CircularShift(30,B);
|
||||||
|
- B = A;
|
||||||
|
- A = temp;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for(t = 40; t < 60; t++) {
|
||||||
|
- temp = SHA1CircularShift(5,A) +
|
||||||
|
- ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
|
||||||
|
- E = D;
|
||||||
|
- D = C;
|
||||||
|
- C = SHA1CircularShift(30,B);
|
||||||
|
- B = A;
|
||||||
|
- A = temp;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for(t = 60; t < 80; t++) {
|
||||||
|
- temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
|
||||||
|
- E = D;
|
||||||
|
- D = C;
|
||||||
|
- C = SHA1CircularShift(30,B);
|
||||||
|
- B = A;
|
||||||
|
- A = temp;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- context->Intermediate_Hash[0] += A;
|
||||||
|
- context->Intermediate_Hash[1] += B;
|
||||||
|
- context->Intermediate_Hash[2] += C;
|
||||||
|
- context->Intermediate_Hash[3] += D;
|
||||||
|
- context->Intermediate_Hash[4] += E;
|
||||||
|
-
|
||||||
|
- context->Message_Block_Index = 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * SHA1PadMessage
|
||||||
|
- *
|
||||||
|
-
|
||||||
|
- * Description:
|
||||||
|
- * According to the standard, the message must be padded to an even
|
||||||
|
- * 512 bits. The first padding bit must be a '1'. The last 64
|
||||||
|
- * bits represent the length of the original message. All bits in
|
||||||
|
- * between should be 0. This function will pad the message
|
||||||
|
- * according to those rules by filling the Message_Block array
|
||||||
|
- * accordingly. It will also call the ProcessMessageBlock function
|
||||||
|
- * provided appropriately. When it returns, it can be assumed that
|
||||||
|
- * the message digest has been computed.
|
||||||
|
- *
|
||||||
|
- * Parameters:
|
||||||
|
- * context: [in/out]
|
||||||
|
- * The context to pad
|
||||||
|
- * ProcessMessageBlock: [in]
|
||||||
|
- * The appropriate SHA*ProcessMessageBlock function
|
||||||
|
- * Returns:
|
||||||
|
- * Nothing.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-static void SHA1PadMessage(SHA1Context *context)
|
||||||
|
-{
|
||||||
|
- /*
|
||||||
|
- * Check to see if the current message block is too small to hold
|
||||||
|
- * the initial padding bits and length. If so, we will pad the
|
||||||
|
- * block, process it, and then continue padding into a second
|
||||||
|
- * block.
|
||||||
|
- */
|
||||||
|
- if (context->Message_Block_Index > 55) {
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] = 0x80;
|
||||||
|
- while(context->Message_Block_Index < 64) {
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] = 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- SHA1ProcessMessageBlock(context);
|
||||||
|
-
|
||||||
|
- while(context->Message_Block_Index < 56) {
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] = 0;
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] = 0x80;
|
||||||
|
- while(context->Message_Block_Index < 56) {
|
||||||
|
-
|
||||||
|
- context->Message_Block[context->Message_Block_Index++] = 0;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Store the message length as the last 8 octets
|
||||||
|
- */
|
||||||
|
- context->Message_Block[56] = context->Length_High >> 24;
|
||||||
|
- context->Message_Block[57] = context->Length_High >> 16;
|
||||||
|
- context->Message_Block[58] = context->Length_High >> 8;
|
||||||
|
- context->Message_Block[59] = context->Length_High;
|
||||||
|
- context->Message_Block[60] = context->Length_Low >> 24;
|
||||||
|
- context->Message_Block[61] = context->Length_Low >> 16;
|
||||||
|
- context->Message_Block[62] = context->Length_Low >> 8;
|
||||||
|
- context->Message_Block[63] = context->Length_Low;
|
||||||
|
-
|
||||||
|
- SHA1ProcessMessageBlock(context);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-#ifndef TEST_PROGRAM
|
||||||
|
-#define TEST_PROGRAM_A
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#ifdef TEST_PROGRAM
|
||||||
|
-/*
|
||||||
|
- * sha1test.c
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This file will exercise the SHA-1 code performing the three
|
||||||
|
- * tests documented in FIPS PUB 180-1 plus one which calls
|
||||||
|
- * SHA1Input with an exact multiple of 512 bits, plus a few
|
||||||
|
- * error test checks.
|
||||||
|
- *
|
||||||
|
- * Portability Issues:
|
||||||
|
- * None.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-#include <stdint.h>
|
||||||
|
-#include <stdio.h>
|
||||||
|
-#include <string.h>
|
||||||
|
-#include "sha1.h"
|
||||||
|
-#include "unittests.h"
|
||||||
|
-
|
||||||
|
-#define NRTESTS 4
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Define patterns for testing
|
||||||
|
- */
|
||||||
|
-#define TEST1 "abc"
|
||||||
|
-#define TEST2a "abcdbcdecdefdefgefghfghighijhi"
|
||||||
|
-
|
||||||
|
-#define TEST2b "jkijkljklmklmnlmnomnopnopq"
|
||||||
|
-#define TEST2 TEST2a TEST2b
|
||||||
|
-#define TEST3 "a"
|
||||||
|
-#define TEST4a "01234567012345670123456701234567"
|
||||||
|
-#define TEST4b "01234567012345670123456701234567"
|
||||||
|
- /* an exact multiple of 512 bits */
|
||||||
|
-#define TEST4 TEST4a TEST4b
|
||||||
|
-
|
||||||
|
-const char *testarray[NRTESTS] =
|
||||||
|
-{
|
||||||
|
- TEST1,
|
||||||
|
- TEST2,
|
||||||
|
- TEST3,
|
||||||
|
- TEST4
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int repeatcount[NRTESTS] = { 1, 1, 1000000, 10 };
|
||||||
|
-
|
||||||
|
-const uint8_t resultarray[NRTESTS][20] =
|
||||||
|
-{
|
||||||
|
- { 0xA9, 0x99, 0x3E, 0x36, 0x47, 0x06, 0x81, 0x6A, 0xBA, 0x3E, 0x25, 0x71, 0x78, 0x50, 0xC2, 0x6C, 0x9C, 0xD0, 0xD8, 0x9D },
|
||||||
|
- { 0x84, 0x98, 0x3E, 0x44, 0x1C, 0x3B, 0xD2, 0x6E, 0xBA, 0xAE, 0x4A, 0xA1, 0xF9, 0x51, 0x29, 0xE5, 0xE5, 0x46, 0x70, 0xF1 },
|
||||||
|
- { 0x34, 0xAA, 0x97, 0x3C, 0xD4, 0xC4, 0xDA, 0xA4, 0xF6, 0x1E, 0xEB, 0x2B, 0xDB, 0xAD, 0x27, 0x31, 0x65, 0x34, 0x01, 0x6F },
|
||||||
|
- { 0xDE, 0xA3, 0x56, 0xA2, 0xCD, 0xDD, 0x90, 0xC7, 0xA7, 0xEC, 0xED, 0xC5, 0xEB, 0xB5, 0x63, 0x93, 0x4F, 0x46, 0x04, 0x52 },
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-int main()
|
||||||
|
-{
|
||||||
|
- Unittests sha1_test("sha1_test");
|
||||||
|
- SHA1Context sha;
|
||||||
|
- int i, j, err;
|
||||||
|
- uint8_t Message_Digest[20];
|
||||||
|
- bool check_cont;
|
||||||
|
- bool ct;
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Perform SHA-1 tests
|
||||||
|
- */
|
||||||
|
- for(j = 0; j < 4; ++j) {
|
||||||
|
- // printf( "\nTest %d: %d, '%s'\n", j+1, repeatcount[j], testarray[j]);
|
||||||
|
- err = SHA1Init(&sha);
|
||||||
|
- nok(err, "Test SHA1Init");
|
||||||
|
- if (err) {
|
||||||
|
- break; /* out of for j loop */
|
||||||
|
- }
|
||||||
|
- ct = true;
|
||||||
|
- for(i = 0; i < repeatcount[j]; ++i) {
|
||||||
|
- err = SHA1Update(&sha, (const unsigned char *) testarray[j], strlen(testarray[j]));
|
||||||
|
- if (i < 5){
|
||||||
|
- nok(err, "Test SHA1Update");
|
||||||
|
- }
|
||||||
|
- if (ct && repeatcount[j] > 4 && i > 4){
|
||||||
|
- ct = false;
|
||||||
|
- printf("...\n");
|
||||||
|
- }
|
||||||
|
- if (err) {
|
||||||
|
- nok(err, "Test SHA1Update");
|
||||||
|
- break; /* out of for i loop */
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- err = SHA1Final(&sha, Message_Digest);
|
||||||
|
- nok(err, "Test SHA1Final");
|
||||||
|
- check_cont = true;
|
||||||
|
- for(i = 0; i < 20 ; ++i) {
|
||||||
|
- if (Message_Digest[i] != resultarray[j][i]){
|
||||||
|
- check_cont = false;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- ok(check_cont, "Checking expected result");
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* Test some error returns */
|
||||||
|
- err = SHA1Update(&sha,(const unsigned char *) testarray[1], 1);
|
||||||
|
- ok(err == shaStateError, "Checking for shaStateError");
|
||||||
|
- err = SHA1Init(0);
|
||||||
|
- ok(err == shaNull, "Checking for shaNull");
|
||||||
|
-
|
||||||
|
- return report();
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-#endif /* TEST_PROGRAM */
|
||||||
|
-
|
||||||
|
-#ifdef SHA1_SUM
|
||||||
|
-/*
|
||||||
|
- * Reads a single ASCII file and prints the HEX sha1 sum.
|
||||||
|
- */
|
||||||
|
-#include <stdio.h>
|
||||||
|
-int main(int argc, char *argv[])
|
||||||
|
-{
|
||||||
|
- FILE *fd;
|
||||||
|
- SHA1Context ctx;
|
||||||
|
- char buf[5000];
|
||||||
|
- char signature[25];
|
||||||
|
-
|
||||||
|
- if (argc < 1) {
|
||||||
|
- printf("Must have filename\n");
|
||||||
|
- exit(1);
|
||||||
|
- }
|
||||||
|
- fd = fopen(argv[1], "rb");
|
||||||
|
- if (!fd) {
|
||||||
|
- berrno be;
|
||||||
|
- printf("Could not open %s: ERR=%s\n", argv[1], be.bstrerror(errno));
|
||||||
|
- exit(1);
|
||||||
|
- }
|
||||||
|
- SHA1Init(&ctx);
|
||||||
|
- while (fgets(buf, sizeof(buf), fd)) {
|
||||||
|
- SHA1Update(&ctx, (unsigned char *)buf, strlen(buf));
|
||||||
|
- }
|
||||||
|
- SHA1Final(&ctx, (unsigned char *)signature);
|
||||||
|
- for (int i=0; i < 20; i++) {
|
||||||
|
- printf("%02x", signature[i]& 0xFF);
|
||||||
|
- }
|
||||||
|
- printf(" %s\n", argv[1]);
|
||||||
|
- fclose(fd);
|
||||||
|
-}
|
||||||
|
-#endif /* SHA1_SUM */
|
||||||
|
diff -Naur bacula-11.0.1.old/src/lib/sha1.h bacula-11.0.1/src/lib/sha1.h
|
||||||
|
--- bacula-11.0.1.old/src/lib/sha1.h 2021-02-11 14:09:48.599047264 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/sha1.h 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
@@ -1,107 +0,0 @@
|
||||||
|
-/*
|
||||||
|
- * sha1.h
|
||||||
|
- *
|
||||||
|
- * Description:
|
||||||
|
- * This is the header file for code which implements the Secure
|
||||||
|
- * Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
|
||||||
|
- * April 17, 1995.
|
||||||
|
- *
|
||||||
|
- * Many of the variable names in this code, especially the
|
||||||
|
- * single character names, were used because those were the names
|
||||||
|
- * used in the publication.
|
||||||
|
- *
|
||||||
|
- * Please read the file sha1.c for more information.
|
||||||
|
- *
|
||||||
|
- * Full Copyright Statement
|
||||||
|
- *
|
||||||
|
- * Copyright (C) The Internet Society (2001). All Rights Reserved.
|
||||||
|
- *
|
||||||
|
- * This document and translations of it may be copied and furnished to
|
||||||
|
- * others, and derivative works that comment on or otherwise explain it
|
||||||
|
- * or assist in its implementation may be prepared, copied, published
|
||||||
|
- * and distributed, in whole or in part, without restriction of any
|
||||||
|
- * kind, provided that the above copyright notice and this paragraph are
|
||||||
|
- * included on all such copies and derivative works. However, this
|
||||||
|
- * document itself may not be modified in any way, such as by removing
|
||||||
|
- * the copyright notice or references to the Internet Society or other
|
||||||
|
- * Internet organizations, except as needed for the purpose of
|
||||||
|
- * developing Internet standards in which case the procedures for
|
||||||
|
- * copyrights defined in the Internet Standards process must be
|
||||||
|
- * followed, or as required to translate it into languages other than
|
||||||
|
- * English.
|
||||||
|
- *
|
||||||
|
- * The limited permissions granted above are perpetual and will not be
|
||||||
|
- * revoked by the Internet Society or its successors or assigns.
|
||||||
|
- *
|
||||||
|
- * This document and the information contained herein is provided on an
|
||||||
|
- * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||||
|
- * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
- * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||||||
|
- * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||||||
|
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
- *
|
||||||
|
- * Acknowledgement
|
||||||
|
- *
|
||||||
|
- * Funding for the RFC Editor function is currently provided by the
|
||||||
|
- * Internet Society.
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-#ifndef _SHA1_H_
|
||||||
|
-#define _SHA1_H_
|
||||||
|
-
|
||||||
|
-#include "bacula.h"
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * If you do not have the ISO standard stdint.h header file, then you
|
||||||
|
- * must typdef the following:
|
||||||
|
- * name meaning
|
||||||
|
- * uint32_t unsigned 32 bit integer
|
||||||
|
- * uint8_t unsigned 8 bit integer (i.e., unsigned char)
|
||||||
|
- * int32_t integer of 32 bits
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-#ifndef _SHA_enum_
|
||||||
|
-#define _SHA_enum_
|
||||||
|
-enum
|
||||||
|
-{
|
||||||
|
- shaSuccess = 0,
|
||||||
|
- shaNull, /* Null pointer parameter */
|
||||||
|
- shaInputTooLong, /* input data too long */
|
||||||
|
- shaStateError /* called Input after Result */
|
||||||
|
-};
|
||||||
|
-#endif
|
||||||
|
-#define SHA1HashSize 20
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * This structure will hold context information for the SHA-1
|
||||||
|
- * hashing operation
|
||||||
|
- */
|
||||||
|
-typedef struct SHA1Context
|
||||||
|
-{
|
||||||
|
- uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest */
|
||||||
|
-
|
||||||
|
- uint32_t Length_Low; /* Message length in bits */
|
||||||
|
- uint32_t Length_High; /* Message length in bits */
|
||||||
|
-
|
||||||
|
- /* Index into message block array */
|
||||||
|
- int32_t Message_Block_Index;
|
||||||
|
- uint8_t Message_Block[64]; /* 512-bit message blocks */
|
||||||
|
-
|
||||||
|
- int Computed; /* Is the digest computed? */
|
||||||
|
- int Corrupted; /* Is the message digest corrupted? */
|
||||||
|
-} SHA1Context;
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Function Prototypes
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-int SHA1Init(SHA1Context *);
|
||||||
|
-int SHA1Update(SHA1Context *,
|
||||||
|
- const uint8_t *,
|
||||||
|
- unsigned int);
|
||||||
|
-int SHA1Final(SHA1Context *,
|
||||||
|
- uint8_t Message_Digest[SHA1HashSize]);
|
||||||
|
-
|
||||||
|
-#endif
|
@ -0,0 +1,43 @@
|
|||||||
|
diff -Naur bacula-11.0.1.old/src/lib/crypto.c bacula-11.0.1/src/lib/crypto.c
|
||||||
|
--- bacula-11.0.1.old/src/lib/crypto.c 2021-02-11 14:08:38.220885976 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/crypto.c 2021-02-11 14:08:42.518956898 +0100
|
||||||
|
@@ -42,7 +42,7 @@
|
||||||
|
* For OpenSSL version 1.x, EVP_PKEY_encrypt no longer
|
||||||
|
* exists. It was not an official API.
|
||||||
|
*/
|
||||||
|
-#ifdef HAVE_OPENSSLv1
|
||||||
|
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
|
||||||
|
#define EVP_PKEY_encrypt EVP_PKEY_encrypt_old
|
||||||
|
#define EVP_PKEY_decrypt EVP_PKEY_decrypt_old
|
||||||
|
#endif
|
||||||
|
diff -Naur bacula-11.0.1.old/src/lib/tls.c bacula-11.0.1/src/lib/tls.c
|
||||||
|
--- bacula-11.0.1.old/src/lib/tls.c 2021-02-11 14:08:38.218885943 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/tls.c 2021-02-11 14:08:42.565957674 +0100
|
||||||
|
@@ -47,9 +47,6 @@
|
||||||
|
|
||||||
|
#include "openssl-compat.h"
|
||||||
|
|
||||||
|
-/* No anonymous ciphers, no <128 bit ciphers, no export ciphers, no MD5 ciphers */
|
||||||
|
-#define TLS_DEFAULT_CIPHERS "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"
|
||||||
|
-
|
||||||
|
/* TLS Context Structure */
|
||||||
|
struct TLS_Context {
|
||||||
|
SSL_CTX *openssl;
|
||||||
|
@@ -350,7 +347,7 @@
|
||||||
|
SSL_CTX_set_options(ctx->openssl, SSL_OP_SINGLE_DH_USE);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (SSL_CTX_set_cipher_list(ctx->openssl, TLS_DEFAULT_CIPHERS) != 1) {
|
||||||
|
+ if (SSL_CTX_set_cipher_list(ctx->openssl, "PROFILE=SYSTEM") != 1) {
|
||||||
|
Jmsg0(NULL, M_ERROR, 0,
|
||||||
|
_("Error setting cipher list, no valid ciphers available\n"));
|
||||||
|
goto err;
|
||||||
|
@@ -551,7 +548,7 @@
|
||||||
|
extname = OBJ_nid2sn(OBJ_obj2nid(X509_EXTENSION_get_object(ext)));
|
||||||
|
|
||||||
|
if (strcmp(extname, "subjectAltName") == 0) {
|
||||||
|
-#ifdef HAVE_OPENSSLv1
|
||||||
|
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
|
||||||
|
const X509V3_EXT_METHOD *method;
|
||||||
|
#else
|
||||||
|
X509V3_EXT_METHOD *method;
|
@ -0,0 +1,39 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/src/dird/bacula-dir.conf.in bacula-11.0.0/src/dird/bacula-dir.conf.in
|
||||||
|
--- bacula-11.0.0.old/src/dird/bacula-dir.conf.in 2021-01-12 12:36:32.650470459 +0100
|
||||||
|
+++ bacula-11.0.0/src/dird/bacula-dir.conf.in 2021-01-12 12:36:38.297573839 +0100
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
Director { # define myself
|
||||||
|
Name = @basename@-dir
|
||||||
|
DIRport = @dir_port@ # where we listen for UA connections
|
||||||
|
- QueryFile = "@scriptdir@/query.sql"
|
||||||
|
+ QueryFile = "@sysconfdir@/query.sql"
|
||||||
|
WorkingDirectory = "@working_dir@"
|
||||||
|
PidDirectory = "@piddir@"
|
||||||
|
Maximum Concurrent Jobs = 20
|
||||||
|
diff -Naur bacula-11.0.0.old/src/dird/Makefile.in bacula-11.0.0/src/dird/Makefile.in
|
||||||
|
--- bacula-11.0.0.old/src/dird/Makefile.in 2021-01-12 12:36:32.657470588 +0100
|
||||||
|
+++ bacula-11.0.0/src/dird/Makefile.in 2021-01-12 12:37:37.827663637 +0100
|
||||||
|
@@ -125,11 +125,11 @@
|
||||||
|
@if test "x${dir_group}" != "x"; then \
|
||||||
|
chgrp -f ${dir_group} ${DESTDIR}${sysconfdir}/$$destconf ; \
|
||||||
|
fi
|
||||||
|
- @if test -f ${DESTDIR}${scriptdir}/query.sql; then \
|
||||||
|
+ @if test -f ${DESTDIR}${sysconfdir}/query.sql; then \
|
||||||
|
echo " ==> Saving existing query.sql to query.sql.old"; \
|
||||||
|
- $(MV) -f ${DESTDIR}${scriptdir}/query.sql ${DESTDIR}${scriptdir}/query.sql.old; \
|
||||||
|
+ $(MV) -f ${DESTDIR}${sysconfdir}/query.sql ${DESTDIR}${sysconfdir}/query.sql.old; \
|
||||||
|
fi
|
||||||
|
- ${INSTALL_DATA} query.sql ${DESTDIR}${scriptdir}/query.sql
|
||||||
|
+ ${INSTALL_DATA} query.sql ${DESTDIR}${sysconfdir}/query.sql
|
||||||
|
@if test -f static-bacula-dir; then \
|
||||||
|
$(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) static-bacula-dir $(DESTDIR)$(sbindir)/static-bacula-dir; \
|
||||||
|
fi
|
||||||
|
@@ -138,7 +138,7 @@
|
||||||
|
uninstall:
|
||||||
|
(cd $(DESTDIR)$(sbindir); $(RMF) bacula-dir bdirjson)
|
||||||
|
(cd $(DESTDIR)$(sysconfdir); $(RMF) bacula-dir.conf bacula-dir.conf.new)
|
||||||
|
- (cd $(DESTDIR)$(scriptdir); $(RMF) query.sql)
|
||||||
|
+ (cd $(DESTDIR)$(sysconfdir); $(RMF) query.sql)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Bacula Storage Daemon
|
||||||
|
Documentation=man:bacula-sd(8)
|
||||||
|
After=network.target nss-lookup.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=CONFIG=/etc/bacula/bacula-sd.conf
|
||||||
|
EnvironmentFile=-/etc/sysconfig/bacula-sd
|
||||||
|
ExecStart=/usr/sbin/bacula-sd -f $OPTS -c $CONFIG -u $SD_USER -g $SD_GROUP
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -0,0 +1,9 @@
|
|||||||
|
# Users for bacula storage
|
||||||
|
# If no user is set bacula will run as root
|
||||||
|
|
||||||
|
SD_USER=bacula
|
||||||
|
SD_GROUP=tape
|
||||||
|
|
||||||
|
# Useful for debugging
|
||||||
|
#
|
||||||
|
# OPTS="-d 200"
|
@ -0,0 +1,21 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/src/lib/message.c bacula-11.0.0/src/lib/message.c
|
||||||
|
--- bacula-11.0.0.old/src/lib/message.c 2021-01-12 12:36:32.630470094 +0100
|
||||||
|
+++ bacula-11.0.0/src/lib/message.c 2021-01-12 12:39:42.477945569 +0100
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#include <assert.h>
|
||||||
|
#include "bacula.h"
|
||||||
|
#include "jcr.h"
|
||||||
|
|
||||||
|
@@ -1476,7 +1477,8 @@
|
||||||
|
|
||||||
|
if (type == M_ABORT) {
|
||||||
|
char *p = 0;
|
||||||
|
- p[0] = 0; /* generate segmentation violation */
|
||||||
|
+ // p[0] = 0; /* generate segmentation violation */
|
||||||
|
+ assert(p!=NULL);
|
||||||
|
}
|
||||||
|
if (type == M_ERROR_TERM) {
|
||||||
|
exit(1);
|
@ -0,0 +1,9 @@
|
|||||||
|
diff -Naur bacula-11.0.0.old/src/cats/make_sqlite3_tables.in bacula-11.0.0/src/cats/make_sqlite3_tables.in
|
||||||
|
--- bacula-11.0.0.old/src/cats/make_sqlite3_tables.in 2021-01-12 12:36:32.660470643 +0100
|
||||||
|
+++ bacula-11.0.0/src/cats/make_sqlite3_tables.in 2021-01-12 12:38:45.241897767 +0100
|
||||||
|
@@ -555,4 +555,5 @@
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
chmod 640 ${db_name}.db
|
||||||
|
+chown bacula:bacula ${db_name}.db
|
||||||
|
exit 0
|
@ -0,0 +1,296 @@
|
|||||||
|
Author: Vaclav Dolezal <vdolezal@redhat.com>
|
||||||
|
Date: Mon Aug 12 14:51:39 2019 +0200
|
||||||
|
|
||||||
|
Use functions from OpenSSL for HMAC, MD5 and random bytes
|
||||||
|
|
||||||
|
diff -up bacula-11.0.1/src/dird/dird_conf.c.orig bacula-11.0.1/src/dird/dird_conf.c
|
||||||
|
--- bacula-11.0.1/src/dird/dird_conf.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/dird/dird_conf.c 2022-02-11 19:43:38.870718113 +0100
|
||||||
|
@@ -43,6 +43,10 @@
|
||||||
|
#include "bacula.h"
|
||||||
|
#include "dird.h"
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/evp.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Define the first and last resource ID record
|
||||||
|
* types. Note, these should be unique for each
|
||||||
|
* daemon though not a requirement.
|
||||||
|
@@ -1783,6 +1787,11 @@ void free_resource(RES *rres, int type)
|
||||||
|
free(res->res_fs.exclude_items);
|
||||||
|
}
|
||||||
|
res->res_fs.num_excludes = 0;
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ EVP_MD_CTX_free(res->res_fs.md5c);
|
||||||
|
+ res->res_fs.md5c = NULL;
|
||||||
|
+ res->res_fs.have_MD5 = false;
|
||||||
|
+#endif
|
||||||
|
break;
|
||||||
|
case R_POOL:
|
||||||
|
if (res->res_pool.pool_type) {
|
||||||
|
diff -up bacula-11.0.1/src/dird/dird_conf.h.orig bacula-11.0.1/src/dird/dird_conf.h
|
||||||
|
--- bacula-11.0.1/src/dird/dird_conf.h.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/dird/dird_conf.h 2022-02-11 19:43:38.870718113 +0100
|
||||||
|
@@ -25,6 +25,10 @@
|
||||||
|
|
||||||
|
/* NOTE: #includes at the end of this file */
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/evp.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Resource codes -- they must be sequential for indexing
|
||||||
|
*/
|
||||||
|
@@ -608,7 +612,11 @@ public:
|
||||||
|
INCEXE **exclude_items;
|
||||||
|
int32_t num_excludes;
|
||||||
|
bool have_MD5; /* set if MD5 initialized */
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ EVP_MD_CTX *md5c; /* MD5 of include/exclude */
|
||||||
|
+#else
|
||||||
|
struct MD5Context md5c; /* MD5 of include/exclude */
|
||||||
|
+#endif
|
||||||
|
char MD5[30]; /* base 64 representation of MD5 */
|
||||||
|
bool ignore_fs_changes; /* Don't force Full if FS changed */
|
||||||
|
bool enable_vss; /* Enable Volume Shadow Copy */
|
||||||
|
diff -up bacula-11.0.1/src/dird/inc_conf.c.orig bacula-11.0.1/src/dird/inc_conf.c
|
||||||
|
--- bacula-11.0.1/src/dird/inc_conf.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/dird/inc_conf.c 2022-02-11 19:43:38.870718113 +0100
|
||||||
|
@@ -32,6 +32,10 @@
|
||||||
|
#include <regex.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/evp.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Forward referenced subroutines */
|
||||||
|
|
||||||
|
void store_inc(LEX *lc, RES_ITEM *item, int index, int pass);
|
||||||
|
@@ -390,7 +394,17 @@ static void store_newinc(LEX *lc, RES_IT
|
||||||
|
bool options;
|
||||||
|
|
||||||
|
if (!res_all.res_fs.have_MD5) {
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ res_all.res_fs.md5c = EVP_MD_CTX_new();
|
||||||
|
+ if (!res_all.res_fs.md5c
|
||||||
|
+ || !EVP_DigestInit_ex(res_all.res_fs.md5c, EVP_md5(), NULL)
|
||||||
|
+ ) {
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
MD5Init(&res_all.res_fs.md5c);
|
||||||
|
+#endif
|
||||||
|
res_all.res_fs.have_MD5 = true;
|
||||||
|
}
|
||||||
|
bmemset(&res_incexe, 0, sizeof(INCEXE));
|
||||||
|
@@ -656,7 +670,13 @@ static void store_fname(LEX *lc, RES_ITE
|
||||||
|
}
|
||||||
|
case T_QUOTED_STRING:
|
||||||
|
if (res_all.res_fs.have_MD5) {
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ if (!EVP_DigestUpdate(res_all.res_fs.md5c, (void *)lc->str, (size_t) lc->str_len))
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+#else
|
||||||
|
MD5Update(&res_all.res_fs.md5c, (unsigned char *)lc->str, lc->str_len);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
incexe = &res_incexe;
|
||||||
|
if (incexe->name_list.size() == 0) {
|
||||||
|
@@ -699,7 +719,13 @@ static void store_plugin_name(LEX *lc, R
|
||||||
|
}
|
||||||
|
case T_QUOTED_STRING:
|
||||||
|
if (res_all.res_fs.have_MD5) {
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ if (!EVP_DigestUpdate(res_all.res_fs.md5c, (void *)lc->str, (size_t) lc->str_len))
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+#else
|
||||||
|
MD5Update(&res_all.res_fs.md5c, (unsigned char *)lc->str, lc->str_len);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
incexe = &res_incexe;
|
||||||
|
if (incexe->plugin_list.size() == 0) {
|
||||||
|
diff -up bacula-11.0.1/src/dird/job.c.orig bacula-11.0.1/src/dird/job.c
|
||||||
|
--- bacula-11.0.1/src/dird/job.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/dird/job.c 2022-02-11 19:43:38.871718095 +0100
|
||||||
|
@@ -27,6 +27,10 @@
|
||||||
|
#include "bacula.h"
|
||||||
|
#include "dird.h"
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/evp.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Forward referenced subroutines */
|
||||||
|
static void *job_thread(void *arg);
|
||||||
|
static void job_monitor_watchdog(watchdog_t *self);
|
||||||
|
@@ -1342,10 +1346,27 @@ bool get_or_create_fileset_record(JCR *j
|
||||||
|
memset(&fsr, 0, sizeof(FILESET_DBR));
|
||||||
|
bstrncpy(fsr.FileSet, jcr->fileset->hdr.name, sizeof(fsr.FileSet));
|
||||||
|
if (jcr->fileset->have_MD5) {
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
|
||||||
|
+ if (!mdctx)
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+#else
|
||||||
|
struct MD5Context md5c;
|
||||||
|
+#endif
|
||||||
|
unsigned char digest[MD5HashSize];
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ if (!EVP_MD_CTX_copy_ex(mdctx, jcr->fileset->md5c)
|
||||||
|
+ || !EVP_DigestFinal_ex(mdctx, digest, NULL)
|
||||||
|
+ ) {
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+ }
|
||||||
|
+ EVP_MD_CTX_free(mdctx);
|
||||||
|
+#else
|
||||||
|
memcpy(&md5c, &jcr->fileset->md5c, sizeof(md5c));
|
||||||
|
MD5Final(digest, &md5c);
|
||||||
|
+#endif
|
||||||
|
/*
|
||||||
|
* Keep the flag (last arg) set to false otherwise old FileSets will
|
||||||
|
* get new MD5 sums and the user will get Full backups on everything
|
||||||
|
diff -up bacula-11.0.1/src/lib/hmac.c.orig bacula-11.0.1/src/lib/hmac.c
|
||||||
|
--- bacula-11.0.1/src/lib/hmac.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/hmac.c 2022-02-11 19:43:38.871718095 +0100
|
||||||
|
@@ -26,6 +26,10 @@
|
||||||
|
*/
|
||||||
|
#include "bacula.h"
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/hmac.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#define PAD_LEN 64 /* PAD length */
|
||||||
|
#define SIG_LEN MD5HashSize /* MD5 digest length */
|
||||||
|
|
||||||
|
@@ -36,6 +40,19 @@ hmac_md5(
|
||||||
|
uint8_t* key, /* pointer to authentication key */
|
||||||
|
int key_len, /* length of authentication key */
|
||||||
|
uint8_t *hmac) /* returned hmac-md5 */
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+{
|
||||||
|
+ if (!HMAC(
|
||||||
|
+ EVP_md5(),
|
||||||
|
+ key, key_len,
|
||||||
|
+ text, text_len,
|
||||||
|
+ hmac, NULL
|
||||||
|
+ )) {
|
||||||
|
+ Emsg0(M_ERROR_TERM, 0, "HMAC computation failed\n");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+#else
|
||||||
|
{
|
||||||
|
MD5Context md5c;
|
||||||
|
uint8_t k_ipad[PAD_LEN]; /* inner padding - key XORd with ipad */
|
||||||
|
@@ -90,6 +107,7 @@ hmac_md5(
|
||||||
|
MD5Update(&md5c, hmac, SIG_LEN); /* hash inner hash */
|
||||||
|
MD5Final(hmac, &md5c); /* store results */
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
/*
|
||||||
|
Test Vectors (Trailing '\0' of a character string not included in test):
|
||||||
|
|
||||||
|
diff -up bacula-11.0.1/src/lib/parse_conf.c.orig bacula-11.0.1/src/lib/parse_conf.c
|
||||||
|
--- bacula-11.0.1/src/lib/parse_conf.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/parse_conf.c 2022-02-11 19:43:38.871718095 +0100
|
||||||
|
@@ -59,6 +59,10 @@
|
||||||
|
#define MAX_PATH 1024
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+# include <openssl/evp.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Define the Union of all the common resource structure definitions.
|
||||||
|
*/
|
||||||
|
@@ -588,7 +592,11 @@ void store_dir(LEX *lc, RES_ITEM *item,
|
||||||
|
void store_password(LEX *lc, RES_ITEM *item, int index, int pass)
|
||||||
|
{
|
||||||
|
unsigned int i, j;
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ EVP_MD_CTX *mdctx = NULL;
|
||||||
|
+#else
|
||||||
|
struct MD5Context md5c;
|
||||||
|
+#endif
|
||||||
|
unsigned char digest[CRYPTO_DIGEST_MD5_SIZE];
|
||||||
|
char sig[100];
|
||||||
|
|
||||||
|
@@ -598,9 +606,21 @@ void store_password(LEX *lc, RES_ITEM *i
|
||||||
|
} else {
|
||||||
|
lex_get_token(lc, T_STRING);
|
||||||
|
if (pass == 1) {
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+ mdctx = EVP_MD_CTX_new();
|
||||||
|
+ if (!mdctx
|
||||||
|
+ || !EVP_DigestInit_ex(mdctx, EVP_md5(), NULL)
|
||||||
|
+ || !EVP_DigestUpdate(mdctx, (const void *) lc->str, (size_t) lc->str_len)
|
||||||
|
+ || !EVP_DigestFinal_ex(mdctx, digest, NULL)
|
||||||
|
+ ) {
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "MD5 computation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
MD5Init(&md5c);
|
||||||
|
MD5Update(&md5c, (unsigned char *) (lc->str), lc->str_len);
|
||||||
|
MD5Final(digest, &md5c);
|
||||||
|
+#endif
|
||||||
|
for (i = j = 0; i < sizeof(digest); i++) {
|
||||||
|
sprintf(&sig[j], "%02x", digest[i]);
|
||||||
|
j += 2;
|
||||||
|
diff -up bacula-11.0.1/src/lib/util.c.orig bacula-11.0.1/src/lib/util.c
|
||||||
|
--- bacula-11.0.1/src/lib/util.c.orig 2021-02-05 22:23:44.000000000 +0100
|
||||||
|
+++ bacula-11.0.1/src/lib/util.c 2022-02-11 19:43:38.872718077 +0100
|
||||||
|
@@ -707,6 +707,35 @@ int do_shell_expansion(char *name, int n
|
||||||
|
from SpeakFreely by John Walker */
|
||||||
|
|
||||||
|
void make_session_key(char *key, char *seed, int mode)
|
||||||
|
+#if HAVE_OPENSSL
|
||||||
|
+{
|
||||||
|
+ int j, k;
|
||||||
|
+ unsigned char buf[16];
|
||||||
|
+
|
||||||
|
+ (void) seed;
|
||||||
|
+
|
||||||
|
+ if (!RAND_bytes(buf, sizeof(buf)))
|
||||||
|
+ Emsg1(M_ERROR_TERM, 0, "Random bytes generation failed: %s\n",
|
||||||
|
+ ERR_reason_error_string(ERR_peek_last_error()));
|
||||||
|
+
|
||||||
|
+ if (mode) {
|
||||||
|
+ for (j = k = 0; j < 16; j++) {
|
||||||
|
+ unsigned char rb = buf[j];
|
||||||
|
+
|
||||||
|
+#define Rad16(x) ((x) + 'A')
|
||||||
|
+ key[k++] = Rad16((rb >> 4) & 0xF);
|
||||||
|
+ key[k++] = Rad16(rb & 0xF);
|
||||||
|
+#undef Rad16
|
||||||
|
+ if (j & 1) {
|
||||||
|
+ key[k++] = '-';
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ key[--k] = 0;
|
||||||
|
+ } else {
|
||||||
|
+ memcpy(key, buf, sizeof(buf));
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+#else
|
||||||
|
{
|
||||||
|
int j, k;
|
||||||
|
struct MD5Context md5c;
|
||||||
|
@@ -790,6 +819,7 @@ void make_session_key(char *key, char *s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#undef nextrand
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
void encode_session_key(char *encode, char *session, char *key, int maxlen)
|
||||||
|
{
|
@ -0,0 +1,9 @@
|
|||||||
|
# Bacula logrotate script
|
||||||
|
|
||||||
|
/var/log/bacula/*.log {
|
||||||
|
monthly
|
||||||
|
rotate 4
|
||||||
|
notifempty
|
||||||
|
missingok
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,55 @@
|
|||||||
|
======== Quick installation guide with the MySQL backend ========
|
||||||
|
|
||||||
|
Perform the following commands to install Bacula with its default configuration
|
||||||
|
and all daemons and consoles in one server.
|
||||||
|
|
||||||
|
1) Install packages
|
||||||
|
|
||||||
|
# yum -y install mysql-server \
|
||||||
|
bacula-director bacula-storage bacula-client \
|
||||||
|
bacula-console bacula-console-bat
|
||||||
|
|
||||||
|
2) Select the MySQL database backend
|
||||||
|
|
||||||
|
# alternatives --set libbaccats.so /usr/lib64/libbaccats-mysql.so
|
||||||
|
|
||||||
|
3) Create database
|
||||||
|
|
||||||
|
# systemctl enable mysqld.service
|
||||||
|
# systemctl start mysqld.service
|
||||||
|
|
||||||
|
# cd /usr/libexec/bacula
|
||||||
|
# ./create_bacula_database mysql
|
||||||
|
# ./make_bacula_tables mysql
|
||||||
|
# ./grant_bacula_privileges mysql
|
||||||
|
|
||||||
|
4) Change passwords in /etc/bacula/*.conf with something you like.
|
||||||
|
|
||||||
|
# sed -i -e 's/@@DIR_PASSWORD@@/dir-password/g' \
|
||||||
|
-e 's/@@FD_PASSWORD@@/fd-password/g' \
|
||||||
|
-e 's/@@SD_PASSWORD@@/sd-password/g' \
|
||||||
|
-e 's/@@MON_DIR_PASSWORD@@/mon-dir-password/g' \
|
||||||
|
-e 's/@@MON_FD_PASSWORD@@/mon-fd-password/g' \
|
||||||
|
-e 's/@@MON_SD_PASSWORD@@/mon-sd-password/g' \
|
||||||
|
/etc/bacula/*.conf
|
||||||
|
|
||||||
|
5) Enable daemons and check they are working
|
||||||
|
|
||||||
|
# systemctl enable bacula-dir.service
|
||||||
|
# systemctl enable bacula-sd.service
|
||||||
|
# systemctl enable bacula-fd.service
|
||||||
|
|
||||||
|
# systemctl start bacula-dir.service
|
||||||
|
# echo status dir=bacula-dir | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-sd.service
|
||||||
|
# echo status storage=bacula-sd | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-fd.service
|
||||||
|
# echo status client=bacula-fd | bconsole
|
||||||
|
|
||||||
|
6) To grant console access to regular users add the read permission to the
|
||||||
|
console configuration files. Remember that there is no authentication check; so
|
||||||
|
a user that can launch the console can perform any command.
|
||||||
|
|
||||||
|
# chmod +r /etc/bacula/bconsole.conf /etc/bacula/bat.conf
|
@ -0,0 +1,57 @@
|
|||||||
|
======== Quick installation guide with the default PostgreSQL backend ========
|
||||||
|
|
||||||
|
Perform the following commands to install Bacula with its default configuration
|
||||||
|
and all daemons and consoles in one server.
|
||||||
|
|
||||||
|
1) Install packages
|
||||||
|
|
||||||
|
# yum -y install postgresql-server \
|
||||||
|
bacula-director bacula-storage bacula-client \
|
||||||
|
bacula-console bacula-console-bat
|
||||||
|
|
||||||
|
2) Select the PostgreSQL database backend
|
||||||
|
|
||||||
|
# alternatives --set libbaccats.so /usr/lib64/libbaccats-postgresql.so
|
||||||
|
|
||||||
|
3) Create database
|
||||||
|
|
||||||
|
# postgresql-setup initdb
|
||||||
|
# systemctl enable postgresql.service
|
||||||
|
# systemctl start postgresql.service
|
||||||
|
|
||||||
|
# su - postgres
|
||||||
|
$ cd /usr/libexec/bacula
|
||||||
|
$ ./create_bacula_database
|
||||||
|
$ ./make_bacula_tables
|
||||||
|
$ ./grant_bacula_privileges
|
||||||
|
|
||||||
|
4) Change passwords in /etc/bacula/*.conf with something you like.
|
||||||
|
|
||||||
|
# sed -i -e 's/@@DIR_PASSWORD@@/dir-password/g' \
|
||||||
|
-e 's/@@FD_PASSWORD@@/fd-password/g' \
|
||||||
|
-e 's/@@SD_PASSWORD@@/sd-password/g' \
|
||||||
|
-e 's/@@MON_DIR_PASSWORD@@/mon-dir-password/g' \
|
||||||
|
-e 's/@@MON_FD_PASSWORD@@/mon-fd-password/g' \
|
||||||
|
-e 's/@@MON_SD_PASSWORD@@/mon-sd-password/g' \
|
||||||
|
/etc/bacula/*.conf
|
||||||
|
|
||||||
|
5) Enable daemons and check they are working
|
||||||
|
|
||||||
|
# systemctl enable bacula-dir.service
|
||||||
|
# systemctl enable bacula-sd.service
|
||||||
|
# systemctl enable bacula-fd.service
|
||||||
|
|
||||||
|
# systemctl start bacula-dir.service
|
||||||
|
# echo status dir=bacula-dir | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-sd.service
|
||||||
|
# echo status storage=bacula-sd | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-fd.service
|
||||||
|
# echo status client=bacula-fd | bconsole
|
||||||
|
|
||||||
|
6) To grant console access to regular users add the read permission to the
|
||||||
|
console configuration files. Remember that there is no authentication check; so
|
||||||
|
a user that can launch the console can perform any command.
|
||||||
|
|
||||||
|
# chmod +r /etc/bacula/bconsole.conf /etc/bacula/bat.conf
|
@ -0,0 +1,52 @@
|
|||||||
|
======== Quick installation guide with the SQLite backend ========
|
||||||
|
|
||||||
|
Perform the following commands to install Bacula with its default configuration
|
||||||
|
and all daemons and consoles in one server.
|
||||||
|
|
||||||
|
1) Install packages
|
||||||
|
|
||||||
|
# yum -y install sqlite \
|
||||||
|
bacula-director bacula-storage bacula-client \
|
||||||
|
bacula-console bacula-console-bat
|
||||||
|
|
||||||
|
2) Select the SQLite database backend
|
||||||
|
|
||||||
|
# alternatives --set libbaccats.so /usr/lib64/libbaccats-sqlite3.so
|
||||||
|
|
||||||
|
3) Create database
|
||||||
|
|
||||||
|
# cd /usr/libexec/bacula
|
||||||
|
# ./create_bacula_database sqlite3
|
||||||
|
# ./make_bacula_tables sqlite3
|
||||||
|
# ./grant_bacula_privileges sqlite3
|
||||||
|
|
||||||
|
4) Change passwords in /etc/bacula/*.conf with something you like.
|
||||||
|
|
||||||
|
# sed -i -e 's/@@DIR_PASSWORD@@/dir-password/g' \
|
||||||
|
-e 's/@@FD_PASSWORD@@/fd-password/g' \
|
||||||
|
-e 's/@@SD_PASSWORD@@/sd-password/g' \
|
||||||
|
-e 's/@@MON_DIR_PASSWORD@@/mon-dir-password/g' \
|
||||||
|
-e 's/@@MON_FD_PASSWORD@@/mon-fd-password/g' \
|
||||||
|
-e 's/@@MON_SD_PASSWORD@@/mon-sd-password/g' \
|
||||||
|
/etc/bacula/*.conf
|
||||||
|
|
||||||
|
5) Enable daemons and check they are working
|
||||||
|
|
||||||
|
# systemctl enable bacula-dir.service
|
||||||
|
# systemctl enable bacula-sd.service
|
||||||
|
# systemctl enable bacula-fd.service
|
||||||
|
|
||||||
|
# systemctl start bacula-dir.service
|
||||||
|
# echo status dir=bacula-dir | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-sd.service
|
||||||
|
# echo status storage=bacula-sd | bconsole
|
||||||
|
|
||||||
|
# systemctl start bacula-fd.service
|
||||||
|
# echo status client=bacula-fd | bconsole
|
||||||
|
|
||||||
|
6) To grant console access to regular users add the read permission to the
|
||||||
|
console configuration files. Remember that there is no authentication check; so
|
||||||
|
a user that can launch the console can perform any command.
|
||||||
|
|
||||||
|
# chmod +r /etc/bacula/bconsole.conf /etc/bacula/bat.conf
|
@ -0,0 +1,765 @@
|
|||||||
|
%global uid 133
|
||||||
|
%global username bacula
|
||||||
|
|
||||||
|
%if 0%{?rhel} && ! 0%{?epel}
|
||||||
|
%bcond_with nagios
|
||||||
|
%else
|
||||||
|
%bcond_without nagios
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: bacula
|
||||||
|
Version: 11.0.1
|
||||||
|
Release: 5%{?dist}
|
||||||
|
Summary: Cross platform network backup for Linux, Unix, Mac and Windows
|
||||||
|
# See LICENSE for details
|
||||||
|
License: AGPLv3 with exceptions
|
||||||
|
URL: http://www.bacula.org
|
||||||
|
|
||||||
|
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
Source2: quickstart_postgresql.txt
|
||||||
|
Source3: quickstart_mysql.txt
|
||||||
|
Source4: quickstart_sqlite3.txt
|
||||||
|
Source5: README.Redhat
|
||||||
|
Source6: %{name}.logrotate
|
||||||
|
Source10: %{name}-fd.service
|
||||||
|
Source11: %{name}-dir.service
|
||||||
|
Source12: %{name}-sd.service
|
||||||
|
Source15: %{name}-fd.sysconfig
|
||||||
|
Source16: %{name}-dir.sysconfig
|
||||||
|
Source17: %{name}-sd.sysconfig
|
||||||
|
Source19: https://salsa.debian.org/bacula-team/bacula/-/raw/master/debian/additions/bacula-tray-monitor.png#/bacula-tray-monitor.png
|
||||||
|
|
||||||
|
Patch1: %{name}-openssl.patch
|
||||||
|
Patch2: %{name}-queryfile.patch
|
||||||
|
Patch3: %{name}-sqlite-priv.patch
|
||||||
|
Patch4: %{name}-bat-build.patch
|
||||||
|
Patch5: %{name}-seg-fault.patch
|
||||||
|
Patch6: %{name}-logwatch.patch
|
||||||
|
Patch7: %{name}-non-free-code.patch
|
||||||
|
Patch8: %{name}-desktop.patch
|
||||||
|
Patch9: %{name}-g++-options.patch
|
||||||
|
Patch10: %{name}-install.patch
|
||||||
|
Patch11: %{name}-docker-plugin.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
|
||||||
|
# Without this, there is no library providing the correct shared object name
|
||||||
|
# required by the daemons.
|
||||||
|
# http://bugs.bacula.org/view.php?id=2084
|
||||||
|
Patch12: %{name}-autoconf.patch
|
||||||
|
Patch13: %{name}-build-cdp-plugin.patch
|
||||||
|
Patch14: %{name}-nagios.patch
|
||||||
|
Patch15: %{name}-use-crypto-from-openssl.patch
|
||||||
|
|
||||||
|
BuildRequires: desktop-file-utils
|
||||||
|
BuildRequires: perl-generators
|
||||||
|
BuildRequires: sed
|
||||||
|
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: glibc-devel
|
||||||
|
BuildRequires: libacl-devel
|
||||||
|
BuildRequires: libstdc++-devel
|
||||||
|
BuildRequires: libxml2-devel
|
||||||
|
BuildRequires: libcap-devel
|
||||||
|
BuildRequires: lzo-devel
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: qt5-qtbase-devel
|
||||||
|
BuildRequires: readline-devel
|
||||||
|
BuildRequires: sqlite-devel
|
||||||
|
BuildRequires: systemd
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||||
|
BuildRequires: mariadb-connector-c-devel
|
||||||
|
# https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules
|
||||||
|
BuildRequires: perl-interpreter
|
||||||
|
%else
|
||||||
|
BuildRequires: mysql-devel
|
||||||
|
BuildRequires: perl
|
||||||
|
BuildRequires: tcp_wrappers-devel
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?fedora}
|
||||||
|
BuildRequires: libpq-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: postgresql-devel
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture and is efficient and relatively easy to
|
||||||
|
use, while offering many advanced storage management features that make it easy
|
||||||
|
to find and recover lost or damaged files.
|
||||||
|
|
||||||
|
%package libs
|
||||||
|
Summary: Bacula libraries
|
||||||
|
|
||||||
|
%description libs
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains basic Bacula libraries, which are used by all
|
||||||
|
Bacula programs.
|
||||||
|
|
||||||
|
%package libs-sql
|
||||||
|
Summary: Bacula SQL libraries
|
||||||
|
Obsoletes: bacula-libs-mysql <= 5.0.3
|
||||||
|
Obsoletes: bacula-libs-sqlite <= 5.0.3
|
||||||
|
Obsoletes: bacula-libs-postgresql <= 5.0.3
|
||||||
|
Provides: bacula-libs-mysql = %{version}-%{release}
|
||||||
|
Provides: bacula-libs-sqlite = %{version}-%{release}
|
||||||
|
Provides: bacula-libs-postgresql = %{version}-%{release}
|
||||||
|
|
||||||
|
%description libs-sql
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the SQL Bacula libraries, which are used by Director and
|
||||||
|
Storage daemons. You have to select your preferred catalog library through the
|
||||||
|
alternatives system.
|
||||||
|
|
||||||
|
%package common
|
||||||
|
Summary: Common Bacula files
|
||||||
|
Provides: group(%username) = %uid
|
||||||
|
Provides: user(%username) = %uid
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires(pre): shadow-utils
|
||||||
|
Requires(postun): shadow-utils
|
||||||
|
|
||||||
|
%description common
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains files common to all Bacula daemons.
|
||||||
|
|
||||||
|
%package director
|
||||||
|
Summary: Bacula Director files
|
||||||
|
Requires: bacula-common%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs-sql%{?_isa} = %{version}-%{release}
|
||||||
|
# Director backends merged into core.
|
||||||
|
Provides: bacula-director-common = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-director-common < 5.2.3-5
|
||||||
|
Provides: bacula-director-mysql = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-director-mysql < 5.2.3-5
|
||||||
|
Provides: bacula-director-sqlite = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-director-sqlite < 5.2.3-5
|
||||||
|
Provides: bacula-director-postgresql = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-director-postgresql < 5.2.3-5
|
||||||
|
|
||||||
|
Requires(post): systemd
|
||||||
|
Requires(preun): systemd
|
||||||
|
Requires(postun): systemd
|
||||||
|
|
||||||
|
%description director
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the director files.
|
||||||
|
|
||||||
|
%package logwatch
|
||||||
|
Summary: Bacula Director logwatch scripts
|
||||||
|
BuildArch: noarch
|
||||||
|
Requires: bacula-director = %{version}-%{release}
|
||||||
|
Requires: logwatch
|
||||||
|
|
||||||
|
%description logwatch
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains logwatch scripts for Bacula Director.
|
||||||
|
|
||||||
|
%package storage
|
||||||
|
Summary: Bacula storage daemon files
|
||||||
|
Requires: bacula-common%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs-sql%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: mt-st
|
||||||
|
Requires: mtx
|
||||||
|
# Storage backends merged into core.
|
||||||
|
Provides: bacula-storage-common = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-storage-common < 5.2.2-2
|
||||||
|
Provides: bacula-storage-mysql = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-storage-mysql < 5.2.0
|
||||||
|
Provides: bacula-storage-sqlite = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-storage-sqlite < 5.2.0
|
||||||
|
Provides: bacula-storage-postgresql = %{version}-%{release}
|
||||||
|
Obsoletes: bacula-storage-postgresql < 5.2.0
|
||||||
|
|
||||||
|
Requires(post): systemd
|
||||||
|
Requires(preun): systemd
|
||||||
|
Requires(postun): systemd
|
||||||
|
|
||||||
|
%description storage
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the storage daemon, the daemon responsible for writing
|
||||||
|
the data received from the clients onto tape drives or other mass storage
|
||||||
|
devices.
|
||||||
|
|
||||||
|
%package client
|
||||||
|
Summary: Bacula backup client
|
||||||
|
Requires: bacula-common%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
Requires(post): systemd
|
||||||
|
Requires(preun): systemd
|
||||||
|
Requires(postun): systemd
|
||||||
|
|
||||||
|
%description client
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bacula client, the daemon running on the system to be
|
||||||
|
backed up.
|
||||||
|
|
||||||
|
%package console
|
||||||
|
Summary: Bacula management console
|
||||||
|
Obsoletes: bacula-console-wxwidgets <= 5.0.3
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description console
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the command-line management console for the bacula backup
|
||||||
|
system.
|
||||||
|
|
||||||
|
%package console-bat
|
||||||
|
Summary: Bacula bat console
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: dejavu-lgc-sans-fonts
|
||||||
|
|
||||||
|
%description console-bat
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bat version of the bacula management console.
|
||||||
|
|
||||||
|
%package traymonitor
|
||||||
|
Summary: Bacula system tray monitor
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: dejavu-lgc-sans-fonts
|
||||||
|
|
||||||
|
%description traymonitor
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the Gnome and KDE compatible tray monitor to monitor your
|
||||||
|
bacula server.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Bacula development files
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: bacula-libs-sql%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Bacula is a set of programs that allow you to manage the backup, recovery, and
|
||||||
|
verification of computer data across a network of different computers. It is
|
||||||
|
based on a client/server architecture.
|
||||||
|
|
||||||
|
This development package contains static libraries and header files.
|
||||||
|
|
||||||
|
%if %{with nagios}
|
||||||
|
%package -n nagios-plugins-bacula
|
||||||
|
Summary: Nagios Plugin - check_bacula
|
||||||
|
Requires: bacula-libs%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: nagios-common%{?_isa}
|
||||||
|
|
||||||
|
%description -n nagios-plugins-bacula
|
||||||
|
Provides check_bacula support for Nagios.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} .
|
||||||
|
|
||||||
|
# Regenerate configure
|
||||||
|
pushd autoconf
|
||||||
|
sed -i -r 's/(hardcode_into_libs)=.*$/\1=no/' libtool/libtool.m4
|
||||||
|
aclocal -I bacula-macros/ -I gettext-macros/ -I libtool/
|
||||||
|
popd
|
||||||
|
autoconf -I autoconf/ -o configure autoconf/configure.in
|
||||||
|
|
||||||
|
# Remove execution permissions from files we're packaging as docs later on
|
||||||
|
find updatedb -type f | xargs chmod -x
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CFLAGS="%{optflags} -I%{_includedir}/ncurses"
|
||||||
|
export CPPFLAGS="%{optflags} -I%{_includedir}/ncurses"
|
||||||
|
export PATH="$PATH:%{_qt5_bindir}"
|
||||||
|
|
||||||
|
%configure \
|
||||||
|
--disable-conio \
|
||||||
|
--disable-rpath \
|
||||||
|
--disable-s3 \
|
||||||
|
--docdir=%{_datadir}/bacula \
|
||||||
|
--enable-bat \
|
||||||
|
--enable-batch-insert \
|
||||||
|
--enable-build-dird \
|
||||||
|
--enable-build-stored \
|
||||||
|
--enable-includes \
|
||||||
|
--enable-largefile \
|
||||||
|
--enable-readline \
|
||||||
|
--enable-smartalloc \
|
||||||
|
--sysconfdir=%{_sysconfdir}/bacula \
|
||||||
|
--with-basename=bacula \
|
||||||
|
--with-bsrdir=%{_localstatedir}/spool/bacula \
|
||||||
|
--with-dir-password=@@DIR_PASSWORD@@ \
|
||||||
|
--with-fd-password=@@FD_PASSWORD@@ \
|
||||||
|
--with-hostname=localhost \
|
||||||
|
--with-logdir=%{_localstatedir}/log/bacula \
|
||||||
|
--with-mon-dir-password=@@MON_DIR_PASSWORD@@ \
|
||||||
|
--with-mon-fd-password=@@MON_FD_PASSWORD@@ \
|
||||||
|
--with-mon-sd-password=@@MON_SD_PASSWORD@@ \
|
||||||
|
--with-mysql \
|
||||||
|
--with-openssl \
|
||||||
|
--with-pid-dir=%{_localstatedir}/run \
|
||||||
|
--with-plugindir=%{_libdir}/%{name} \
|
||||||
|
--with-postgresql \
|
||||||
|
--with-scriptdir=%{_libexecdir}/bacula \
|
||||||
|
--with-sd-password=@@SD_PASSWORD@@ \
|
||||||
|
--with-smtp-host=localhost \
|
||||||
|
--with-sqlite3 \
|
||||||
|
--with-subsys-dir=%{_localstatedir}/lock/subsys \
|
||||||
|
%if 0%{!?fedora} || 0%{!?rhel} > 7
|
||||||
|
--with-tcp-wrappers \
|
||||||
|
%endif
|
||||||
|
--with-working-dir=%{_localstatedir}/spool/bacula \
|
||||||
|
--with-x
|
||||||
|
|
||||||
|
# Remove RPATH
|
||||||
|
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||||
|
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||||
|
|
||||||
|
pushd src/qt-console/
|
||||||
|
%{?qmake_qt5}%{!?qmake_qt5:qmake-qt5} bat.pro
|
||||||
|
pushd tray-monitor
|
||||||
|
%{?qmake_qt5}%{!?qmake_qt5:qmake-qt5} tray-monitor.pro
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
|
%make_build
|
||||||
|
%make_build -C src/tools/cdp-client
|
||||||
|
%if %{with nagios}
|
||||||
|
%make_build -C examples/nagios/check_bacula
|
||||||
|
%endif
|
||||||
|
|
||||||
|
pushd src/qt-console/
|
||||||
|
%{?qmake_qt5}%{!?qmake_qt5:qmake-qt5} bat.pro
|
||||||
|
pushd tray-monitor
|
||||||
|
%{?qmake_qt5}%{!?qmake_qt5:qmake-qt5} tray-monitor.pro
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Convert image to png for tray monitor icon
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
%make_install -C src/tools/cdp-client
|
||||||
|
%if %{with nagios}
|
||||||
|
%make_install -C examples/nagios/check_bacula
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# This will be managed through alternatives, as it requires the name to NOT
|
||||||
|
# change between upgrades, so the versioned library name can not be used.
|
||||||
|
rm -f %{buildroot}%{_libdir}/libbaccats.so
|
||||||
|
|
||||||
|
# Bat
|
||||||
|
install -p -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat_icon.png
|
||||||
|
install -p -m 644 -D scripts/bat.desktop %{buildroot}%{_datadir}/applications/bat.desktop
|
||||||
|
install -p -m 755 -D src/qt-console/.libs/bat %{buildroot}%{_sbindir}/bat
|
||||||
|
|
||||||
|
install -p -m 644 -D manpages/bacula-tray-monitor.1 %{buildroot}%{_mandir}/man1/bacula-tray-monitor.1
|
||||||
|
install -p -m 644 -D %{SOURCE19} %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.png
|
||||||
|
install -p -m 644 -D scripts/bacula-tray-monitor.desktop %{buildroot}%{_datadir}/applications/bacula-tray-monitor.desktop
|
||||||
|
|
||||||
|
# Logrotate
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/log/bacula
|
||||||
|
install -p -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/bacula
|
||||||
|
|
||||||
|
# Logwatch
|
||||||
|
install -p -m 755 -D scripts/logwatch/bacula %{buildroot}%{_sysconfdir}/logwatch/scripts/services/bacula
|
||||||
|
install -p -m 755 -D scripts/logwatch/applybaculadate %{buildroot}%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
|
||||||
|
install -p -m 644 -D scripts/logwatch/logfile.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
|
||||||
|
install -p -m 644 -D scripts/logwatch/services.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/services/bacula.conf
|
||||||
|
|
||||||
|
# Systemd unit files
|
||||||
|
mkdir -p %{buildroot}%{_unitdir}
|
||||||
|
install -p -m 644 -D %{SOURCE10} %{buildroot}%{_unitdir}/bacula-fd.service
|
||||||
|
install -p -m 644 -D %{SOURCE11} %{buildroot}%{_unitdir}/bacula-dir.service
|
||||||
|
install -p -m 644 -D %{SOURCE12} %{buildroot}%{_unitdir}/bacula-sd.service
|
||||||
|
|
||||||
|
# Sysconfig
|
||||||
|
install -p -m 644 -D %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/bacula-fd
|
||||||
|
install -p -m 644 -D %{SOURCE16} %{buildroot}%{_sysconfdir}/sysconfig/bacula-dir
|
||||||
|
install -p -m 644 -D %{SOURCE17} %{buildroot}%{_sysconfdir}/sysconfig/bacula-sd
|
||||||
|
|
||||||
|
# Spool directory
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/spool/bacula
|
||||||
|
|
||||||
|
# Remove stuff we do not need
|
||||||
|
rm -f %{buildroot}%{_libexecdir}/bacula/{bacula,bacula-ctl-*,startmysql,stopmysql,bconsole,make_catalog_backup}
|
||||||
|
rm -f %{buildroot}%{_sbindir}/bacula
|
||||||
|
rm -f %{buildroot}%{_mandir}/man8/bacula.8.gz
|
||||||
|
rm -f %{buildroot}%{_libdir}/*.la
|
||||||
|
rm -f %{buildroot}%{_datadir}/bacula/{ChangeLog,INSTALL,LICENSE*,README,ReleaseNotes,VERIFYING,technotes}
|
||||||
|
|
||||||
|
# Fix up some perms so rpmlint does not complain too much
|
||||||
|
chmod 755 %{buildroot}%{_sbindir}/*
|
||||||
|
chmod 755 %{buildroot}%{_libdir}/%{name}/*
|
||||||
|
chmod 755 %{buildroot}%{_libexecdir}/bacula/*
|
||||||
|
chmod 644 %{buildroot}%{_libexecdir}/bacula/btraceback.*
|
||||||
|
|
||||||
|
%ldconfig_scriptlets libs
|
||||||
|
|
||||||
|
%post libs-sql
|
||||||
|
/usr/sbin/alternatives --install %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-mysql.so 50
|
||||||
|
/usr/sbin/alternatives --install %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-sqlite3.so 40
|
||||||
|
/usr/sbin/alternatives --install %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-postgresql.so 60
|
||||||
|
|
||||||
|
# Fix for automatic selection of backends during upgrades
|
||||||
|
if readlink /etc/alternatives/libbaccats.so | grep --silent mysql || \
|
||||||
|
readlink /etc/alternatives/bacula-dir | grep --silent mysql || \
|
||||||
|
readlink /etc/alternatives/bacula-sd | grep --silent mysql; then
|
||||||
|
/usr/sbin/alternatives --set libbaccats.so %{_libdir}/libbaccats-mysql.so
|
||||||
|
elif readlink /etc/alternatives/libbaccats.so | grep --silent sqlite || \
|
||||||
|
readlink /etc/alternatives/bacula-dir | grep --silent sqlite || \
|
||||||
|
readlink /etc/alternatives/bacula-sd | grep --silent sqlite; then
|
||||||
|
/usr/sbin/alternatives --set libbaccats.so %{_libdir}/libbaccats-sqlite3.so
|
||||||
|
else
|
||||||
|
/usr/sbin/alternatives --set libbaccats.so %{_libdir}/libbaccats-postgresql.so
|
||||||
|
fi
|
||||||
|
%{?ldconfig}
|
||||||
|
|
||||||
|
%preun libs-sql
|
||||||
|
if [ "$1" = 0 ]; then
|
||||||
|
/usr/sbin/alternatives --remove libbaccats.so %{_libdir}/libbaccats-mysql.so
|
||||||
|
/usr/sbin/alternatives --remove libbaccats.so %{_libdir}/libbaccats-sqlite3.so
|
||||||
|
/usr/sbin/alternatives --remove libbaccats.so %{_libdir}/libbaccats-postgresql.so
|
||||||
|
fi
|
||||||
|
|
||||||
|
%ldconfig_postun libs-sql
|
||||||
|
|
||||||
|
%pre common
|
||||||
|
getent group %username >/dev/null || groupadd -g %uid -r %username &>/dev/null || :
|
||||||
|
getent passwd %username >/dev/null || useradd -u %uid -r -s /sbin/nologin \
|
||||||
|
-d /var/spool/bacula -M -c 'Bacula Backup System' -g %username %username &>/dev/null || :
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
%post client
|
||||||
|
%systemd_post %{name}-fd.service
|
||||||
|
|
||||||
|
%preun client
|
||||||
|
%systemd_preun %{name}-fd.service
|
||||||
|
|
||||||
|
%postun client
|
||||||
|
%systemd_postun_with_restart %{name}-fd.service
|
||||||
|
|
||||||
|
%post director
|
||||||
|
%systemd_post %{name}-dir.service
|
||||||
|
|
||||||
|
%preun director
|
||||||
|
%systemd_preun %{name}-dir.service
|
||||||
|
|
||||||
|
%postun director
|
||||||
|
%systemd_postun_with_restart %{name}-dir.service
|
||||||
|
|
||||||
|
%post storage
|
||||||
|
%systemd_post %{name}-sd.service
|
||||||
|
|
||||||
|
%preun storage
|
||||||
|
%systemd_preun %{name}-sd.service
|
||||||
|
|
||||||
|
%postun storage
|
||||||
|
%systemd_postun_with_restart %{name}-sd.service
|
||||||
|
|
||||||
|
%files libs
|
||||||
|
%license LICENSE
|
||||||
|
%doc AUTHORS ChangeLog SUPPORT ReleaseNotes LICENSE-FAQ LICENSE-FOSS
|
||||||
|
%{_libdir}/libbac-%{version}.so
|
||||||
|
%{_libdir}/libbaccfg-%{version}.so
|
||||||
|
%{_libdir}/libbacfind-%{version}.so
|
||||||
|
%{_libdir}/libbacsd-%{version}.so
|
||||||
|
|
||||||
|
%files libs-sql
|
||||||
|
# On Fedora 28 this gets recreated automatically even if the library is
|
||||||
|
# deleted in the install section.
|
||||||
|
# On EPEL 6 this is required until RPM assembly time or an error is given due
|
||||||
|
# to the missing library.
|
||||||
|
# So: leave the library in place until the very end and just exclude it.
|
||||||
|
%exclude %{_libdir}/libbaccats-%{version}.so
|
||||||
|
%{_libdir}/libbaccats-mysql-%{version}.so
|
||||||
|
%{_libdir}/libbaccats-mysql.so
|
||||||
|
%{_libdir}/libbaccats-postgresql-%{version}.so
|
||||||
|
%{_libdir}/libbaccats-postgresql.so
|
||||||
|
%{_libdir}/libbaccats-sqlite3-%{version}.so
|
||||||
|
%{_libdir}/libbaccats-sqlite3.so
|
||||||
|
%{_libdir}/libbacsql-%{version}.so
|
||||||
|
|
||||||
|
%files common
|
||||||
|
%doc README.Redhat quickstart_*
|
||||||
|
%config(noreplace) %{_sysconfdir}/logrotate.d/bacula
|
||||||
|
%dir %{_localstatedir}/log/bacula %attr(750, bacula, bacula)
|
||||||
|
%dir %{_localstatedir}/spool/bacula %attr(750, bacula, bacula)
|
||||||
|
%dir %{_libexecdir}/%{name}
|
||||||
|
%dir %{_sysconfdir}/%{name} %attr(755,root,root)
|
||||||
|
%{_libexecdir}/%{name}/btraceback.dbx
|
||||||
|
%{_libexecdir}/%{name}/btraceback.gdb
|
||||||
|
%{_libexecdir}/%{name}/bacula_config
|
||||||
|
%{_libexecdir}/%{name}/btraceback.mdb
|
||||||
|
%{_mandir}/man8/btraceback.8*
|
||||||
|
%{_sbindir}/btraceback
|
||||||
|
|
||||||
|
%files director
|
||||||
|
%doc updatedb examples/sample-query.sql
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf %attr(640,root,bacula)
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/query.sql %attr(640,root,bacula)
|
||||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-dir
|
||||||
|
%{_libexecdir}/%{name}/baculabackupreport
|
||||||
|
%{_libexecdir}/%{name}/create_bacula_database
|
||||||
|
%{_libexecdir}/%{name}/delete_catalog_backup
|
||||||
|
%{_libexecdir}/%{name}/drop_bacula_database
|
||||||
|
%{_libexecdir}/%{name}/drop_bacula_tables
|
||||||
|
%{_libexecdir}/%{name}/grant_bacula_privileges
|
||||||
|
%{_libexecdir}/%{name}/make_bacula_tables
|
||||||
|
%{_libexecdir}/%{name}/make_catalog_backup.pl
|
||||||
|
%{_libexecdir}/%{name}/update_bacula_tables
|
||||||
|
%{_libexecdir}/%{name}/create_mysql_database
|
||||||
|
%{_libexecdir}/%{name}/drop_mysql_database
|
||||||
|
%{_libexecdir}/%{name}/drop_mysql_tables
|
||||||
|
%{_libexecdir}/%{name}/grant_mysql_privileges
|
||||||
|
%{_libexecdir}/%{name}/make_mysql_tables
|
||||||
|
%{_libexecdir}/%{name}/update_mysql_tables
|
||||||
|
%{_libexecdir}/%{name}/create_sqlite3_database
|
||||||
|
%{_libexecdir}/%{name}/drop_sqlite3_database
|
||||||
|
%{_libexecdir}/%{name}/drop_sqlite3_tables
|
||||||
|
%{_libexecdir}/%{name}/grant_sqlite3_privileges
|
||||||
|
%{_libexecdir}/%{name}/make_sqlite3_tables
|
||||||
|
%{_libexecdir}/%{name}/update_sqlite3_tables
|
||||||
|
%{_libexecdir}/%{name}/create_postgresql_database
|
||||||
|
%{_libexecdir}/%{name}/drop_postgresql_database
|
||||||
|
%{_libexecdir}/%{name}/drop_postgresql_tables
|
||||||
|
%{_libexecdir}/%{name}/grant_postgresql_privileges
|
||||||
|
%{_libexecdir}/%{name}/make_postgresql_tables
|
||||||
|
%{_libexecdir}/%{name}/update_postgresql_tables
|
||||||
|
%{_mandir}/man1/bsmtp.1*
|
||||||
|
%{_mandir}/man8/bacula-dir.8*
|
||||||
|
%{_mandir}/man8/bregex.8*
|
||||||
|
%{_mandir}/man8/bwild.8*
|
||||||
|
%{_mandir}/man8/dbcheck.8*
|
||||||
|
%{_sbindir}/bacula-dir
|
||||||
|
%{_sbindir}/bdirjson
|
||||||
|
%{_sbindir}/bregex
|
||||||
|
%{_sbindir}/bsmtp
|
||||||
|
%{_sbindir}/bwild
|
||||||
|
%{_sbindir}/dbcheck
|
||||||
|
%{_unitdir}/bacula-dir.service
|
||||||
|
|
||||||
|
%files logwatch
|
||||||
|
%config(noreplace) %{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/logwatch/conf/services/bacula.conf
|
||||||
|
%{_sysconfdir}/logwatch/scripts/services/bacula
|
||||||
|
%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
|
||||||
|
|
||||||
|
%files storage
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf %attr(640,root,root)
|
||||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-sd
|
||||||
|
%{_libexecdir}/%{name}/disk-changer
|
||||||
|
%{_libexecdir}/%{name}/isworm
|
||||||
|
%{_libexecdir}/%{name}/mtx-changer
|
||||||
|
%{_libexecdir}/%{name}/mtx-changer.conf
|
||||||
|
%{_libexecdir}/%{name}/tapealert
|
||||||
|
%{_mandir}/man8/bacula-sd.8*
|
||||||
|
%{_mandir}/man8/bcopy.8*
|
||||||
|
%{_mandir}/man8/bextract.8*
|
||||||
|
%{_mandir}/man8/bls.8*
|
||||||
|
%{_mandir}/man8/bscan.8*
|
||||||
|
%{_mandir}/man8/btape.8*
|
||||||
|
%{_sbindir}/bacula-sd
|
||||||
|
%{_sbindir}/bcopy
|
||||||
|
%{_sbindir}/bextract
|
||||||
|
%{_sbindir}/bls
|
||||||
|
%{_sbindir}/bscan
|
||||||
|
%{_sbindir}/bsdjson
|
||||||
|
%{_sbindir}/btape
|
||||||
|
%{_unitdir}/bacula-sd.service
|
||||||
|
|
||||||
|
%files client
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf %attr(640,root,root)
|
||||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-fd
|
||||||
|
%{_mandir}/man8/bacula-fd.8*
|
||||||
|
%{_libdir}/%{name}/bpipe-fd.so
|
||||||
|
%{_libdir}/%{name}/cdp-fd.so
|
||||||
|
%{_libdir}/%{name}/docker-fd.so
|
||||||
|
%{_sbindir}/bacula-fd
|
||||||
|
%{_sbindir}/bfdjson
|
||||||
|
%{_sbindir}/cdp-client
|
||||||
|
%{_unitdir}/bacula-fd.service
|
||||||
|
|
||||||
|
%files console
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bconsole.conf %attr(640,root,root)
|
||||||
|
%{_mandir}/man8/bconsole.8*
|
||||||
|
%{_sbindir}/bconsole
|
||||||
|
%{_sbindir}/bbconsjson
|
||||||
|
|
||||||
|
%files console-bat
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bat.conf %attr(640,root,root)
|
||||||
|
%{_datadir}/applications/bat.desktop
|
||||||
|
%{_datadir}/bacula/*.html
|
||||||
|
%{_datadir}/bacula/*.png
|
||||||
|
%{_datadir}/pixmaps/bat_icon.png
|
||||||
|
%{_mandir}/man1/bat.1*
|
||||||
|
%{_sbindir}/bat
|
||||||
|
|
||||||
|
%files traymonitor
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-tray-monitor.conf %attr(640,root,root)
|
||||||
|
%{_datadir}/applications/bacula-tray-monitor.desktop
|
||||||
|
%{_datadir}/pixmaps/bacula-tray-monitor.png
|
||||||
|
%{_mandir}/man1/bacula-tray-monitor.1*
|
||||||
|
%{_sbindir}/bacula-tray-monitor
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/bacula
|
||||||
|
%{_libdir}/libbac.so
|
||||||
|
%{_libdir}/libbaccfg.so
|
||||||
|
%{_libdir}/libbacfind.so
|
||||||
|
%{_libdir}/libbacsd.so
|
||||||
|
%{_libdir}/libbacsql.so
|
||||||
|
|
||||||
|
%if %{with nagios}
|
||||||
|
%files -n nagios-plugins-bacula
|
||||||
|
%{_libdir}/nagios/plugins/check_bacula
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Mar 15 2023 MSVSphere Packaging Team <packager@msvsphere.ru> - 11.0.1-5
|
||||||
|
- Rebuilt for MSVSphere 9.1.
|
||||||
|
|
||||||
|
* Tue Feb 15 2022 Pavel Cahyna <pcahyna@redhat.com> - 11.0.1-5
|
||||||
|
- Make nagios-plugin build conditional and disabled on RHEL to avoid
|
||||||
|
generating this subpackage that has missing dependencies
|
||||||
|
- Fix flags for annobin in Qt tools (bat & tray-monitor) build
|
||||||
|
- Add a forgotten RHEL 8 patch to use openssl crypto (random numbers, hmac,
|
||||||
|
hashing functions)
|
||||||
|
Resolves: rhbz#1935458
|
||||||
|
|
||||||
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 11.0.1-4
|
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
|
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 11.0.1-3
|
||||||
|
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||||
|
Related: rhbz#1971065
|
||||||
|
|
||||||
|
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 11.0.1-2
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Thu Feb 11 2021 Simone Caronni <negativo17@gmail.com> - 11.0.1-1
|
||||||
|
- Update to 11.0.1.
|
||||||
|
|
||||||
|
* Mon Feb 08 2021 Pavel Raiskup <praiskup@redhat.com> - 11.0.0-5
|
||||||
|
- rebuild for libpq ABI fix rhbz#1908268
|
||||||
|
|
||||||
|
* Thu Jan 28 2021 Simone Caronni <negativo17@gmail.com> - 11.0.0-4
|
||||||
|
- Remove leftover ImageMagick build requirement.
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 11.0.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 15 2021 Simone Caronni <negativo17@gmail.com> - 11.0.0-2
|
||||||
|
- Build CDP plugin components.
|
||||||
|
|
||||||
|
* Tue Jan 12 2021 Simone Caronni <negativo17@gmail.com> - 11.0.0-1
|
||||||
|
- Update to 11.0.0.
|
||||||
|
- Enable Docker plugin.
|
||||||
|
|
||||||
|
* Tue Jan 12 2021 Simone Caronni <negativo17@gmail.com> - 9.6.7-1
|
||||||
|
- Update to 9.6.7.
|
||||||
|
- Drop support for building on CentOS/RHEL 6 and upgrades from version 2.4.
|
||||||
|
- Trim changelog.
|
||||||
|
|
||||||
|
* Wed Oct 07 2020 Simone Caronni <negativo17@gmail.com> - 9.6.6-1
|
||||||
|
- Update to 9.6.6.
|
||||||
|
|
||||||
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 9.6.5-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 24 2020 Simone Caronni <negativo17@gmail.com> - 9.6.5-1
|
||||||
|
- Update to 9.6.5.
|
||||||
|
|
||||||
|
* Tue Mar 17 2020 Simone Caronni <negativo17@gmail.com> - 9.6.3-1
|
||||||
|
- Update to 9.6.3.
|
||||||
|
|
||||||
|
* Thu Mar 05 2020 Simone Caronni <negativo17@gmail.com> - 9.6.2-2
|
||||||
|
- Fix RHEL/CentOS 6 builds.
|
||||||
|
|
||||||
|
* Sat Feb 29 2020 Simone Caronni <negativo17@gmail.com> - 9.6.2-1
|
||||||
|
- Update to 9.6.2.
|
||||||
|
|
||||||
|
* Mon Feb 10 2020 Václav Doležal <vdolezal@redhat.com> - 9.4.4-4
|
||||||
|
- Fix FTBFS (#1799185)
|
||||||
|
|
||||||
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 9.4.4-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 9.4.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 29 2019 Simone Caronni <negativo17@gmail.com> - 9.4.4-1
|
||||||
|
- Update to 9.4.4.
|
||||||
|
|
||||||
|
* Sat May 18 2019 Simone Caronni <negativo17@gmail.com> - 9.4.3-2
|
||||||
|
- SPEC file cleanups.
|
||||||
|
|
||||||
|
* Wed May 15 2019 Simone Caronni <negativo17@gmail.com> - 9.4.3-1
|
||||||
|
- Update to 9.4.3.
|
||||||
|
|
||||||
|
* Thu Apr 18 2019 Simone Caronni <negativo17@gmail.com> - 9.4.2-1
|
||||||
|
- Update to 9.4.2.
|
||||||
|
|
||||||
|
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 9.4.1-6
|
||||||
|
- Rebuild for readline 8.0
|
||||||
|
|
||||||
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 9.4.1-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 9.4.1-4
|
||||||
|
- Rebuilt for libcrypt.so.2 (#1666033)
|
||||||
|
|
||||||
|
* Sun Jan 13 2019 Simone Caronni <negativo17@gmail.com> - 9.4.1-3
|
||||||
|
- Build QT programs with QT 5 on RHEL/CentOS 7. Also, reduce the number of
|
||||||
|
required QT packages for building.
|
||||||
|
|
||||||
|
* Sun Jan 13 2019 Simone Caronni <negativo17@gmail.com> - 9.4.1-2
|
||||||
|
- Add Debian patch to enable/disable S3 support at configure time.
|
||||||
|
- Disable S3 as it does not currently build:
|
||||||
|
http://bugs.bacula.org/view.php?id=2446
|
||||||
|
- Update RPM macros.
|
||||||
|
|
||||||
|
* Sat Jan 12 2019 Simone Caronni <negativo17@gmail.com> - 9.4.1-1
|
||||||
|
- Update to 9.4.1.
|
||||||
|
|
||||||
|
* Sat Jan 12 2019 Simone Caronni <negativo17@gmail.com> - 9.4.0-1
|
||||||
|
- Update to 9.4.0.
|
||||||
|
|
||||||
|
* Sat Jan 12 2019 Simone Caronni <negativo17@gmail.com> - 9.2.1-2
|
||||||
|
- Make the build succeed also on supported RHEL and Fedora releases.
|
||||||
|
- Remove Fedora 27 references.
|
Loading…
Reference in new issue