From dec0728712a11b1995d30d32b4ae7ba9a0842011 Mon Sep 17 00:00:00 2001 From: Simone Caronni Date: May 18 2019 06:28:11 +0000 Subject: Rename patches for easier updating --- diff --git a/bacula-5.2.13-logwatch.patch b/bacula-5.2.13-logwatch.patch deleted file mode 100644 index 410893b..0000000 --- a/bacula-5.2.13-logwatch.patch +++ /dev/null @@ -1,9 +0,0 @@ -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 - diff --git a/bacula-7.0.4-autoconf.patch b/bacula-7.0.4-autoconf.patch deleted file mode 100644 index 0cfe4c8..0000000 --- a/bacula-7.0.4-autoconf.patch +++ /dev/null @@ -1,35 +0,0 @@ -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 diff --git a/bacula-9.0.0-queryfile.patch b/bacula-9.0.0-queryfile.patch deleted file mode 100644 index 35d89a3..0000000 --- a/bacula-9.0.0-queryfile.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur bacula-9.0.0.old/src/dird/bacula-dir.conf.in bacula-9.0.0/src/dird/bacula-dir.conf.in ---- bacula-9.0.0.old/src/dird/bacula-dir.conf.in 2017-07-10 08:52:38.930834509 +0200 -+++ bacula-9.0.0/src/dird/bacula-dir.conf.in 2017-07-10 08:53:11.189444548 +0200 -@@ -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-9.0.0.old/src/dird/Makefile.in bacula-9.0.0/src/dird/Makefile.in ---- bacula-9.0.0.old/src/dird/Makefile.in 2017-07-10 08:52:38.930834509 +0200 -+++ bacula-9.0.0/src/dird/Makefile.in 2017-07-10 08:54:24.363828341 +0200 -@@ -124,11 +124,11 @@ - @if test "x${dir_group}" != "x" -a "x${DESTDIR}" = "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 -@@ -137,7 +137,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) - - - diff --git a/bacula-9.0.2-desktop.patch b/bacula-9.0.2-desktop.patch deleted file mode 100644 index 611e12b..0000000 --- a/bacula-9.0.2-desktop.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur bacula-9.0.2.old/scripts/bacula-tray-monitor.desktop.in bacula-9.0.2/scripts/bacula-tray-monitor.desktop.in ---- bacula-9.0.2.old/scripts/bacula-tray-monitor.desktop.in 2017-07-24 15:22:19.884540422 +0200 -+++ bacula-9.0.2/scripts/bacula-tray-monitor.desktop.in 2017-07-24 15:37:02.175038149 +0200 -@@ -1,10 +1,9 @@ - [Desktop Entry] - Name=Bacula Monitor - Comment=Notification Tray Monitor --Icon=/usr/share/pixmaps/bacula-tray-monitor.xpm -+Icon=/usr/share/pixmaps/bacula-tray-monitor.png - Exec=@sbindir@/bacula-tray-monitor -c @sysconfdir@/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=Utility; -diff -Naur bacula-9.0.2.old/scripts/bat.desktop.in bacula-9.0.2/scripts/bat.desktop.in ---- bacula-9.0.2.old/scripts/bat.desktop.in 2017-07-24 15:22:19.884540422 +0200 -+++ bacula-9.0.2/scripts/bat.desktop.in 2017-07-24 15:36:22.753301014 +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=Utility; -diff -Naur bacula-9.0.2.old/scripts/Makefile.in bacula-9.0.2/scripts/Makefile.in ---- bacula-9.0.2.old/scripts/Makefile.in 2017-07-24 15:22:19.884540422 +0200 -+++ bacula-9.0.2/scripts/Makefile.in 2017-07-24 15:25:03.829605989 +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 diff --git a/bacula-9.0.4-sqlite-priv.patch b/bacula-9.0.4-sqlite-priv.patch deleted file mode 100644 index 11d41a7..0000000 --- a/bacula-9.0.4-sqlite-priv.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -Naur bacula-9.0.4.old/src/cats/make_sqlite3_tables.in bacula-9.0.4/src/cats/make_sqlite3_tables.in ---- bacula-9.0.4.old/src/cats/make_sqlite3_tables.in 2017-09-15 13:38:22.717599355 +0200 -+++ bacula-9.0.4/src/cats/make_sqlite3_tables.in 2017-09-15 13:38:36.414851879 +0200 -@@ -481,4 +481,5 @@ - echo "" - - chmod 640 ${db_name}.db -+chown bacula:bacula ${db_name}.db - exit 0 diff --git a/bacula-9.0.6-bat-build.patch b/bacula-9.0.6-bat-build.patch deleted file mode 100644 index 9c22e76..0000000 --- a/bacula-9.0.6-bat-build.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur bacula-9.0.6.old/src/qt-console/bat.pro.in bacula-9.0.6/src/qt-console/bat.pro.in ---- bacula-9.0.6.old/src/qt-console/bat.pro.in 2017-12-07 15:44:44.737173178 +0100 -+++ bacula-9.0.6/src/qt-console/bat.pro.in 2017-12-07 15:44:55.118366334 +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 - - datarootdir = @datarootdir@ -diff -Naur bacula-9.0.6.old/src/qt-console/main.cpp bacula-9.0.6/src/qt-console/main.cpp ---- bacula-9.0.6.old/src/qt-console/main.cpp 2017-12-07 15:44:44.742173271 +0100 -+++ bacula-9.0.6/src/qt-console/main.cpp 2017-12-07 15:44:55.119366353 +0100 -@@ -29,11 +29,11 @@ - #include - - /* -- * 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 - diff --git a/bacula-9.4.0-non-free-code.patch b/bacula-9.4.0-non-free-code.patch deleted file mode 100644 index be40677..0000000 --- a/bacula-9.4.0-non-free-code.patch +++ /dev/null @@ -1,696 +0,0 @@ -diff -Naur bacula-9.4.0.old/src/lib/lib.h bacula-9.4.0/src/lib/lib.h ---- bacula-9.4.0.old/src/lib/lib.h 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/src/lib/lib.h 2019-01-12 15:29:19.939350837 +0100 -@@ -54,7 +54,6 @@ - #include "fnmatch.h" - #endif - #include "md5.h" --#include "sha1.h" - #include "tree.h" - #include "watchdog.h" - #include "btimers.h" -diff -Naur bacula-9.4.0.old/src/lib/Makefile.in bacula-9.4.0/src/lib/Makefile.in ---- bacula-9.4.0.old/src/lib/Makefile.in 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/src/lib/Makefile.in 2019-01-12 15:29:46.724837145 +0100 -@@ -38,7 +38,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 parse_conf.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 \ - watchdog.h workq.h ini.h \ - lockmgr.h devlock.h output.h bwlimit.h -@@ -52,7 +52,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 \ -@@ -246,22 +246,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 -@@ -329,7 +313,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-9.4.0.old/src/lib/sha1.c bacula-9.4.0/src/lib/sha1.c ---- bacula-9.4.0.old/src/lib/sha1.c 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/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 (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 --#include --#include --#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 --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-9.4.0.old/src/lib/sha1.h bacula-9.4.0/src/lib/sha1.h ---- bacula-9.4.0.old/src/lib/sha1.h 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/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 diff --git a/bacula-9.4.0-openssl.patch b/bacula-9.4.0-openssl.patch deleted file mode 100644 index 9b16772..0000000 --- a/bacula-9.4.0-openssl.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -Naur bacula-9.4.0.old/src/lib/crypto.c bacula-9.4.0/src/lib/crypto.c ---- bacula-9.4.0.old/src/lib/crypto.c 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/src/lib/crypto.c 2019-01-12 15:18:04.623955646 +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-9.4.0.old/src/lib/tls.c bacula-9.4.0/src/lib/tls.c ---- bacula-9.4.0.old/src/lib/tls.c 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/src/lib/tls.c 2019-01-12 15:18:04.646956092 +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; -@@ -215,7 +212,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; -@@ -336,7 +333,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; diff --git a/bacula-9.4.0-seg-fault.patch b/bacula-9.4.0-seg-fault.patch deleted file mode 100644 index b520ae4..0000000 --- a/bacula-9.4.0-seg-fault.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur bacula-9.4.0.old/src/lib/message.c bacula-9.4.0/src/lib/message.c ---- bacula-9.4.0.old/src/lib/message.c 2018-12-16 11:30:25.000000000 +0100 -+++ bacula-9.4.0/src/lib/message.c 2019-01-12 15:20:25.794653213 +0100 -@@ -28,6 +28,7 @@ - * - */ - -+#include - #include "bacula.h" - #include "jcr.h" - -@@ -1413,7 +1414,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); diff --git a/bacula-9.4.2-g++-options.patch b/bacula-9.4.2-g++-options.patch deleted file mode 100644 index 194623c..0000000 --- a/bacula-9.4.2-g++-options.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur bacula-9.4.2.old/autoconf/configure.in bacula-9.4.2/autoconf/configure.in ---- bacula-9.4.2.old/autoconf/configure.in 2019-04-18 11:49:06.099005902 +0200 -+++ bacula-9.4.2/autoconf/configure.in 2019-04-18 11:49:27.545391181 +0200 -@@ -2993,11 +2993,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" diff --git a/bacula-9.4.2-s3-configure.patch b/bacula-9.4.2-s3-configure.patch deleted file mode 100644 index 0bbfef9..0000000 --- a/bacula-9.4.2-s3-configure.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -Naur bacula-9.4.2.old/autoconf/configure.in bacula-9.4.2/autoconf/configure.in ---- bacula-9.4.2.old/autoconf/configure.in 2019-04-18 11:50:32.221553081 +0200 -+++ bacula-9.4.2/autoconf/configure.in 2019-04-18 11:51:49.346938638 +0200 -@@ -1894,6 +1894,20 @@ - - AC_CHECK_FUNC(accept4, [AC_DEFINE(HAVE_ACCEPT4, 1, [Define to 1 if you have the 'accept4' function.])]) - -+dnl --------------------------------------------------- -+dnl Check for S3 support/directory (default on) -+dnl --------------------------------------------------- -+dnl this allows you to turn it completely off -+ -+AC_ARG_ENABLE(s3, -+ AC_HELP_STRING([--disable-s3], [disable S3 support @<:@default=yes@:>@]), -+ [ -+ if test x$enableval = xno; then -+ support_s3=no -+ fi -+ ] -+) -+ - S3_INC= - S3_LIBS= - S3_LDFLAGS= -@@ -3631,6 +3645,7 @@ - Encryption support: ${support_crypto} - ZLIB support: ${have_zlib} - LZO support: ${have_lzo} -+ S3 support: ${have_libs3} - enable-smartalloc: ${support_smartalloc} - enable-lockmgr: ${support_lockmgr} - bat support: ${support_bat} diff --git a/bacula-autoconf.patch b/bacula-autoconf.patch new file mode 100644 index 0000000..0cfe4c8 --- /dev/null +++ b/bacula-autoconf.patch @@ -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 diff --git a/bacula-bat-build.patch b/bacula-bat-build.patch new file mode 100644 index 0000000..9c22e76 --- /dev/null +++ b/bacula-bat-build.patch @@ -0,0 +1,39 @@ +diff -Naur bacula-9.0.6.old/src/qt-console/bat.pro.in bacula-9.0.6/src/qt-console/bat.pro.in +--- bacula-9.0.6.old/src/qt-console/bat.pro.in 2017-12-07 15:44:44.737173178 +0100 ++++ bacula-9.0.6/src/qt-console/bat.pro.in 2017-12-07 15:44:55.118366334 +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 + + datarootdir = @datarootdir@ +diff -Naur bacula-9.0.6.old/src/qt-console/main.cpp bacula-9.0.6/src/qt-console/main.cpp +--- bacula-9.0.6.old/src/qt-console/main.cpp 2017-12-07 15:44:44.742173271 +0100 ++++ bacula-9.0.6/src/qt-console/main.cpp 2017-12-07 15:44:55.119366353 +0100 +@@ -29,11 +29,11 @@ + #include + + /* +- * 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 + diff --git a/bacula-desktop.patch b/bacula-desktop.patch new file mode 100644 index 0000000..611e12b --- /dev/null +++ b/bacula-desktop.patch @@ -0,0 +1,39 @@ +diff -Naur bacula-9.0.2.old/scripts/bacula-tray-monitor.desktop.in bacula-9.0.2/scripts/bacula-tray-monitor.desktop.in +--- bacula-9.0.2.old/scripts/bacula-tray-monitor.desktop.in 2017-07-24 15:22:19.884540422 +0200 ++++ bacula-9.0.2/scripts/bacula-tray-monitor.desktop.in 2017-07-24 15:37:02.175038149 +0200 +@@ -1,10 +1,9 @@ + [Desktop Entry] + Name=Bacula Monitor + Comment=Notification Tray Monitor +-Icon=/usr/share/pixmaps/bacula-tray-monitor.xpm ++Icon=/usr/share/pixmaps/bacula-tray-monitor.png + Exec=@sbindir@/bacula-tray-monitor -c @sysconfdir@/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=Utility; +diff -Naur bacula-9.0.2.old/scripts/bat.desktop.in bacula-9.0.2/scripts/bat.desktop.in +--- bacula-9.0.2.old/scripts/bat.desktop.in 2017-07-24 15:22:19.884540422 +0200 ++++ bacula-9.0.2/scripts/bat.desktop.in 2017-07-24 15:36:22.753301014 +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=Utility; +diff -Naur bacula-9.0.2.old/scripts/Makefile.in bacula-9.0.2/scripts/Makefile.in +--- bacula-9.0.2.old/scripts/Makefile.in 2017-07-24 15:22:19.884540422 +0200 ++++ bacula-9.0.2/scripts/Makefile.in 2017-07-24 15:25:03.829605989 +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 diff --git a/bacula-g++-options.patch b/bacula-g++-options.patch new file mode 100644 index 0000000..194623c --- /dev/null +++ b/bacula-g++-options.patch @@ -0,0 +1,15 @@ +diff -Naur bacula-9.4.2.old/autoconf/configure.in bacula-9.4.2/autoconf/configure.in +--- bacula-9.4.2.old/autoconf/configure.in 2019-04-18 11:49:06.099005902 +0200 ++++ bacula-9.4.2/autoconf/configure.in 2019-04-18 11:49:27.545391181 +0200 +@@ -2993,11 +2993,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" diff --git a/bacula-logwatch.patch b/bacula-logwatch.patch new file mode 100644 index 0000000..410893b --- /dev/null +++ b/bacula-logwatch.patch @@ -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 + diff --git a/bacula-non-free-code.patch b/bacula-non-free-code.patch new file mode 100644 index 0000000..be40677 --- /dev/null +++ b/bacula-non-free-code.patch @@ -0,0 +1,696 @@ +diff -Naur bacula-9.4.0.old/src/lib/lib.h bacula-9.4.0/src/lib/lib.h +--- bacula-9.4.0.old/src/lib/lib.h 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/src/lib/lib.h 2019-01-12 15:29:19.939350837 +0100 +@@ -54,7 +54,6 @@ + #include "fnmatch.h" + #endif + #include "md5.h" +-#include "sha1.h" + #include "tree.h" + #include "watchdog.h" + #include "btimers.h" +diff -Naur bacula-9.4.0.old/src/lib/Makefile.in bacula-9.4.0/src/lib/Makefile.in +--- bacula-9.4.0.old/src/lib/Makefile.in 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/src/lib/Makefile.in 2019-01-12 15:29:46.724837145 +0100 +@@ -38,7 +38,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 parse_conf.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 \ + watchdog.h workq.h ini.h \ + lockmgr.h devlock.h output.h bwlimit.h +@@ -52,7 +52,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 \ +@@ -246,22 +246,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 +@@ -329,7 +313,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-9.4.0.old/src/lib/sha1.c bacula-9.4.0/src/lib/sha1.c +--- bacula-9.4.0.old/src/lib/sha1.c 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/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 (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 +-#include +-#include +-#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 +-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-9.4.0.old/src/lib/sha1.h bacula-9.4.0/src/lib/sha1.h +--- bacula-9.4.0.old/src/lib/sha1.h 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/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 diff --git a/bacula-openssl.patch b/bacula-openssl.patch new file mode 100644 index 0000000..9b16772 --- /dev/null +++ b/bacula-openssl.patch @@ -0,0 +1,43 @@ +diff -Naur bacula-9.4.0.old/src/lib/crypto.c bacula-9.4.0/src/lib/crypto.c +--- bacula-9.4.0.old/src/lib/crypto.c 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/src/lib/crypto.c 2019-01-12 15:18:04.623955646 +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-9.4.0.old/src/lib/tls.c bacula-9.4.0/src/lib/tls.c +--- bacula-9.4.0.old/src/lib/tls.c 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/src/lib/tls.c 2019-01-12 15:18:04.646956092 +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; +@@ -215,7 +212,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; +@@ -336,7 +333,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; diff --git a/bacula-queryfile.patch b/bacula-queryfile.patch new file mode 100644 index 0000000..35d89a3 --- /dev/null +++ b/bacula-queryfile.patch @@ -0,0 +1,39 @@ +diff -Naur bacula-9.0.0.old/src/dird/bacula-dir.conf.in bacula-9.0.0/src/dird/bacula-dir.conf.in +--- bacula-9.0.0.old/src/dird/bacula-dir.conf.in 2017-07-10 08:52:38.930834509 +0200 ++++ bacula-9.0.0/src/dird/bacula-dir.conf.in 2017-07-10 08:53:11.189444548 +0200 +@@ -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-9.0.0.old/src/dird/Makefile.in bacula-9.0.0/src/dird/Makefile.in +--- bacula-9.0.0.old/src/dird/Makefile.in 2017-07-10 08:52:38.930834509 +0200 ++++ bacula-9.0.0/src/dird/Makefile.in 2017-07-10 08:54:24.363828341 +0200 +@@ -124,11 +124,11 @@ + @if test "x${dir_group}" != "x" -a "x${DESTDIR}" = "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 +@@ -137,7 +137,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) + + + diff --git a/bacula-s3-configure.patch b/bacula-s3-configure.patch new file mode 100644 index 0000000..0bbfef9 --- /dev/null +++ b/bacula-s3-configure.patch @@ -0,0 +1,32 @@ +diff -Naur bacula-9.4.2.old/autoconf/configure.in bacula-9.4.2/autoconf/configure.in +--- bacula-9.4.2.old/autoconf/configure.in 2019-04-18 11:50:32.221553081 +0200 ++++ bacula-9.4.2/autoconf/configure.in 2019-04-18 11:51:49.346938638 +0200 +@@ -1894,6 +1894,20 @@ + + AC_CHECK_FUNC(accept4, [AC_DEFINE(HAVE_ACCEPT4, 1, [Define to 1 if you have the 'accept4' function.])]) + ++dnl --------------------------------------------------- ++dnl Check for S3 support/directory (default on) ++dnl --------------------------------------------------- ++dnl this allows you to turn it completely off ++ ++AC_ARG_ENABLE(s3, ++ AC_HELP_STRING([--disable-s3], [disable S3 support @<:@default=yes@:>@]), ++ [ ++ if test x$enableval = xno; then ++ support_s3=no ++ fi ++ ] ++) ++ + S3_INC= + S3_LIBS= + S3_LDFLAGS= +@@ -3631,6 +3645,7 @@ + Encryption support: ${support_crypto} + ZLIB support: ${have_zlib} + LZO support: ${have_lzo} ++ S3 support: ${have_libs3} + enable-smartalloc: ${support_smartalloc} + enable-lockmgr: ${support_lockmgr} + bat support: ${support_bat} diff --git a/bacula-seg-fault.patch b/bacula-seg-fault.patch new file mode 100644 index 0000000..b520ae4 --- /dev/null +++ b/bacula-seg-fault.patch @@ -0,0 +1,21 @@ +diff -Naur bacula-9.4.0.old/src/lib/message.c bacula-9.4.0/src/lib/message.c +--- bacula-9.4.0.old/src/lib/message.c 2018-12-16 11:30:25.000000000 +0100 ++++ bacula-9.4.0/src/lib/message.c 2019-01-12 15:20:25.794653213 +0100 +@@ -28,6 +28,7 @@ + * + */ + ++#include + #include "bacula.h" + #include "jcr.h" + +@@ -1413,7 +1414,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); diff --git a/bacula-sqlite-priv.patch b/bacula-sqlite-priv.patch new file mode 100644 index 0000000..11d41a7 --- /dev/null +++ b/bacula-sqlite-priv.patch @@ -0,0 +1,9 @@ +diff -Naur bacula-9.0.4.old/src/cats/make_sqlite3_tables.in bacula-9.0.4/src/cats/make_sqlite3_tables.in +--- bacula-9.0.4.old/src/cats/make_sqlite3_tables.in 2017-09-15 13:38:22.717599355 +0200 ++++ bacula-9.0.4/src/cats/make_sqlite3_tables.in 2017-09-15 13:38:36.414851879 +0200 +@@ -481,4 +481,5 @@ + echo "" + + chmod 640 ${db_name}.db ++chown bacula:bacula ${db_name}.db + exit 0 diff --git a/bacula.spec b/bacula.spec index fdd317a..0eb60f8 100644 --- a/bacula.spec +++ b/bacula.spec @@ -28,25 +28,25 @@ Source17: %{name}-sd.sysconfig # Image taken from http://www.bacula.org/git/cgit.cgi/bacula/plain/bacula/src/tray-monitor/generic.xpm Source19: generic.xpm -Patch1: %{name}-9.4.0-openssl.patch -Patch2: %{name}-9.0.0-queryfile.patch -Patch3: %{name}-9.0.4-sqlite-priv.patch -Patch4: %{name}-9.0.6-bat-build.patch -Patch5: %{name}-9.4.0-seg-fault.patch -Patch6: %{name}-5.2.13-logwatch.patch -Patch7: %{name}-9.4.0-non-free-code.patch +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 # desktop-file-install not supported on RHEL 6 -Patch8: %{name}-9.0.2-desktop.patch -Patch9: %{name}-9.4.2-g++-options.patch +Patch8: %{name}-desktop.patch +Patch9: %{name}-g++-options.patch # https://sources.debian.org/patches/bacula/9.4.1-1/upstream/add-libs3-checks/ -Patch10: %{name}-9.4.2-s3-configure.patch +Patch10: %{name}-s3-configure.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}-7.0.4-autoconf.patch +Patch12: %{name}-autoconf.patch BuildRequires: desktop-file-utils BuildRequires: perl-generators