diff --git a/.bacula.metadata b/.bacula.metadata new file mode 100644 index 0000000..eca79ec --- /dev/null +++ b/.bacula.metadata @@ -0,0 +1 @@ +30b1eb2efb515138807163d046f675eaa29fad1c SOURCES/bacula-5.2.13.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cf9ee95 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bacula-5.2.13.tar.gz diff --git a/SOURCES/README.Redhat b/SOURCES/README.Redhat new file mode 100644 index 0000000..cdb6109 --- /dev/null +++ b/SOURCES/README.Redhat @@ -0,0 +1,55 @@ +======== Features + +- Standard components: director, storage, client, docs, bconsole. +- Graphical components: bat, bacula-tray-monitor (where supported). +- Tab completion for bconsole. +- Nagios plugin. +- HTML/PDF docs. +- Quick start guides. +- File Daemon bpipe-fd plugin. +- POSIX.1e capabilities for File Daemon. +- Systemd for Fedora and RHEL 7+. +- SysV init scripts for RHEL 5/6. +- GZIP/LZO compression. +- Static uid/gid of 133 (see "setup" package). +- No usermode / fedora-usermgmt stuff in the console packages. +- Docs no longer an arch specific subpackage. +- 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 + +To deal with the switching process for the database backend, see the following +file which explains how to make the necessary changes: + +- database_backends.txt + +======== 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. diff --git a/SOURCES/bacula-5.0.2-openssl.patch b/SOURCES/bacula-5.0.2-openssl.patch new file mode 100644 index 0000000..5040fe2 --- /dev/null +++ b/SOURCES/bacula-5.0.2-openssl.patch @@ -0,0 +1,24 @@ +diff -up bacula-5.0.2/bacula-5.0.2/src/lib/crypto.c.openssl bacula-5.0.2/bacula-5.0.2/src/lib/crypto.c +--- bacula-5.0.2/bacula-5.0.2/src/lib/crypto.c.openssl 2010-04-27 21:58:29.000000000 +0200 ++++ bacula-5.0.2/bacula-5.0.2/src/lib/crypto.c 2010-06-01 17:51:52.846894465 +0200 +@@ -51,7 +51,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 -up bacula-5.0.2/bacula-5.0.2/src/lib/tls.c.openssl bacula-5.0.2/bacula-5.0.2/src/lib/tls.c +--- bacula-5.0.2/bacula-5.0.2/src/lib/tls.c.openssl 2010-04-27 21:58:29.000000000 +0200 ++++ bacula-5.0.2/bacula-5.0.2/src/lib/tls.c 2010-06-01 17:52:15.535769446 +0200 +@@ -315,7 +315,7 @@ bool tls_postconnect_verify_host(JCR *jc + 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/SOURCES/bacula-5.0.3-sqlite-priv.patch b/SOURCES/bacula-5.0.3-sqlite-priv.patch new file mode 100644 index 0000000..8f8ede4 --- /dev/null +++ b/SOURCES/bacula-5.0.3-sqlite-priv.patch @@ -0,0 +1,9 @@ +diff -up src/cats/make_sqlite3_tables.in~ src/cats/make_sqlite3_tables.in +--- src/cats/make_sqlite3_tables.in~ 2010-11-16 17:57:12.705837000 +0100 ++++ src/cats/make_sqlite3_tables.in 2010-11-16 17:57:12.715837000 +0100 +@@ -426,4 +426,5 @@ PRAGMA synchronous = NORMAL; + END-OF-DATA + + chmod 640 ${db_name}.db ++chown bacula:bacula ${db_name}.db + exit 0 diff --git a/SOURCES/bacula-5.2.12-seg-fault.patch b/SOURCES/bacula-5.2.12-seg-fault.patch new file mode 100644 index 0000000..a891ec4 --- /dev/null +++ b/SOURCES/bacula-5.2.12-seg-fault.patch @@ -0,0 +1,22 @@ +diff --git a/src/lib/message.c b/src/lib/message.c +index 24afdf1..5d2c2ef 100644 +--- a/src/lib/message.c ++++ b/src/lib/message.c +@@ -37,6 +37,7 @@ + * + */ + ++#include + #include "bacula.h" + #include "jcr.h" + +@@ -1230,7 +1231,8 @@ e_msg(const char *file, int line, int type, int level, const char *fmt,...) + + 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/SOURCES/bacula-5.2.13-bat-build.patch b/SOURCES/bacula-5.2.13-bat-build.patch new file mode 100644 index 0000000..6b86cd4 --- /dev/null +++ b/SOURCES/bacula-5.2.13-bat-build.patch @@ -0,0 +1,34 @@ +diff -Naur bacula-5.2.13.old/src/qt-console/bat.pro.in bacula-5.2.13/src/qt-console/bat.pro.in +--- bacula-5.2.13.old/src/qt-console/bat.pro.in 2013-02-19 20:21:35.000000000 +0100 ++++ bacula-5.2.13/src/qt-console/bat.pro.in 2013-02-20 09:45:44.110033340 +0100 +@@ -6,13 +6,13 @@ + # + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # +-CONFIG += qt debug @QWT@ ++CONFIG += qt release @QWT@ + + bins.path = /$(DESTDIR)@sbindir@ + 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-5.2.13.old/src/qt-console/main.cpp bacula-5.2.13/src/qt-console/main.cpp +--- bacula-5.2.13.old/src/qt-console/main.cpp 2013-02-19 20:21:35.000000000 +0100 ++++ bacula-5.2.13/src/qt-console/main.cpp 2013-02-20 09:46:19.556679571 +0100 +@@ -40,9 +40,9 @@ + /* + * We need Qt version 4.8.4 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/SOURCES/bacula-5.2.13-logwatch.patch b/SOURCES/bacula-5.2.13-logwatch.patch new file mode 100644 index 0000000..410893b --- /dev/null +++ b/SOURCES/bacula-5.2.13-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/SOURCES/bacula-5.2.2-queryfile.patch b/SOURCES/bacula-5.2.2-queryfile.patch new file mode 100644 index 0000000..4684234 --- /dev/null +++ b/SOURCES/bacula-5.2.2-queryfile.patch @@ -0,0 +1,12 @@ +diff -Naur bacula-5.2.2.old/src/dird/bacula-dir.conf.in bacula-5.2.2/src/dird/bacula-dir.conf.in +--- bacula-5.2.2.old/src/dird/bacula-dir.conf.in 2011-12-05 13:51:20.375282302 +0100 ++++ bacula-5.2.2/src/dird/bacula-dir.conf.in 2011-12-05 13:54:12.809538069 +0100 +@@ -15,7 +15,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 = 1 diff --git a/SOURCES/bacula-aarch64.patch b/SOURCES/bacula-aarch64.patch new file mode 100644 index 0000000..2302341 --- /dev/null +++ b/SOURCES/bacula-aarch64.patch @@ -0,0 +1,1348 @@ +diff -urN bacula-5.2.13/autoconf/config.guess bacula-5.2.13-aarch64/autoconf/config.guess +--- bacula-5.2.13/autoconf/config.guess 2013-02-19 13:21:35.000000000 -0600 ++++ bacula-5.2.13-aarch64/autoconf/config.guess 2013-03-07 19:51:13.347596401 -0600 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +-# Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2009-06-10' ++timestamp='2012-09-25' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -17,9 +17,7 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -27,16 +25,16 @@ + # the same distribution terms that you use for the rest of that program. + + +-# Originally written by Per Bothner . +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# Originally written by Per Bothner. Please send patches (context ++# diff format) to and include a ChangeLog ++# entry. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,8 +54,9 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 ++Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -144,7 +143,7 @@ + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -180,7 +179,7 @@ + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -201,6 +200,10 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -223,7 +226,7 @@ + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -269,7 +272,10 @@ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -295,12 +301,12 @@ + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -333,6 +339,9 @@ + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" +@@ -391,23 +400,23 @@ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -477,8 +486,8 @@ + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -491,7 +500,7 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -548,7 +557,7 @@ + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[456]) ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -591,52 +600,52 @@ + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include ++ #include ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); + +- #define _HPUX_SOURCE +- #include +- #include +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -727,22 +736,22 @@ + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -766,14 +775,14 @@ + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -785,34 +794,39 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- *:Interix*:[3456]*) +- case ${UNAME_MACHINE} in ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +- EM64T | authenticamd | genuineintel) ++ authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) +@@ -854,6 +868,27 @@ + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ +@@ -861,20 +896,40 @@ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ LIBC=gnu ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -901,39 +956,18 @@ + #endif + #endif + EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu +- exit ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu +- exit ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep -q ld.so.1 +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +@@ -942,14 +976,17 @@ + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -957,67 +994,18 @@ + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=C to ensure ld outputs messages in English. +- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >= 2 +- LIBC=gnu +- # else +- LIBC=gnulibc1 +- # endif +- # else +- LIBC=gnulibc1 +- # endif +- #else +- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +- LIBC=gnu +- #else +- LIBC=gnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^LIBC/{ +- s: ::g +- p +- }'`" +- test x"${LIBC}" != x && { +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +- exit +- } +- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } +- ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both +@@ -1025,11 +1013,11 @@ + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1061,7 +1049,7 @@ + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1089,13 +1077,13 @@ + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i586. ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp +- exit ;; ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1130,8 +1118,8 @@ + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ +@@ -1174,10 +1162,10 @@ + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm +@@ -1203,11 +1191,11 @@ + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1220,6 +1208,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1247,6 +1238,16 @@ + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in ++ i386) ++ eval $set_cc_for_build ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ UNAME_PROCESSOR="x86_64" ++ fi ++ fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +@@ -1262,7 +1263,10 @@ + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1307,13 +1311,13 @@ + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1331,11 +1335,11 @@ + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +diff -urN bacula-5.2.13/autoconf/config.sub bacula-5.2.13-aarch64/autoconf/config.sub +--- bacula-5.2.13/autoconf/config.sub 2013-02-19 13:21:35.000000000 -0600 ++++ bacula-5.2.13-aarch64/autoconf/config.sub 2013-03-07 19:51:13.355595494 -0600 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +-# Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2009-06-11' ++timestamp='2012-10-10' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -21,9 +21,7 @@ + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -32,13 +30,16 @@ + + + # Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# diff and a properly formatted GNU ChangeLog entry. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. + # Otherwise, we print the canonical config type on stdout and succeed. + ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. +@@ -72,8 +73,9 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 ++Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -120,13 +122,18 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ +- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] +@@ -149,12 +156,12 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis | -knuth | -cray) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; +- -bluegene*) +- os=-cnk ++ -bluegene*) ++ os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= +@@ -170,10 +177,10 @@ + os=-chorusos + basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb ++ -chorusrdb) ++ os=-chorusrdb + basic_machine=$1 +- ;; ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -218,6 +225,12 @@ + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; + -lynx*) + os=-lynxos + ;; +@@ -242,20 +255,25 @@ + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep | metag \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -278,27 +296,39 @@ + | moxie \ + | mt \ + | msp430 \ ++ | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ ++ | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ ++ | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu | strongarm \ +- | tahoe | thumb | tic4x | tic80 | tron \ +- | v850 | v850e \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | ubicom32 \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12) +- # Motorola 68HC11/12. ++ c54x) ++ basic_machine=tic54x-unknown ++ ;; ++ c55x) ++ basic_machine=tic55x-unknown ++ ;; ++ c6x) ++ basic_machine=tic6x-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; +@@ -308,6 +338,21 @@ + basic_machine=mt-unknown + ;; + ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +@@ -322,25 +367,30 @@ + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ ++ | be32-* | be64-* \ + | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ ++ | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +@@ -362,24 +412,29 @@ + | mmix-* \ + | mt-* \ + | msp430-* \ ++ | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tile*-* \ + | tron-* \ +- | v850-* | v850e-* | vax-* \ ++ | ubicom32-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) +@@ -404,7 +459,7 @@ + basic_machine=a29k-amd + os=-udi + ;; +- abacus) ++ abacus) + basic_machine=abacus-unknown + ;; + adobe68k) +@@ -474,11 +529,20 @@ + basic_machine=powerpc-ibm + os=-cnk + ;; ++ c54x-*) ++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; +- cegcc) ++ cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; +@@ -510,7 +574,7 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16) ++ cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; +@@ -668,7 +732,6 @@ + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 +@@ -726,6 +789,13 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ microblaze*) ++ basic_machine=microblaze-xilinx ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 +@@ -762,10 +832,18 @@ + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; ++ msys) ++ basic_machine=i386-pc ++ os=-msys ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 +@@ -830,6 +908,12 @@ + np1) + basic_machine=np1-gould + ;; ++ neo-tandem) ++ basic_machine=neo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=nse-tandem ++ ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -912,9 +996,10 @@ + ;; + power) basic_machine=power-ibm + ;; +- ppc) basic_machine=powerpc-unknown ++ ppc | ppcbe) basic_machine=powerpc-unknown + ;; +- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +@@ -1008,6 +1093,9 @@ + basic_machine=i860-stratus + os=-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -1064,20 +1152,8 @@ + basic_machine=t90-cray + os=-unicos + ;; +- tic54x | c54x*) +- basic_machine=tic54x-unknown +- os=-coff +- ;; +- tic55x | c55x*) +- basic_machine=tic55x-unknown +- os=-coff +- ;; +- tic6x | c6x*) +- basic_machine=tic6x-unknown +- os=-coff +- ;; + tile*) +- basic_machine=tile-unknown ++ basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) +@@ -1147,6 +1223,9 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=ymp-cray + os=-unicos +@@ -1244,9 +1323,12 @@ + if [ x"$os" != x"" ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. ++ # First match some system type aliases ++ # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. ++ -auroraux) ++ os=-auroraux ++ ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; +@@ -1268,21 +1350,22 @@ + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -kopensolaris* \ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ ++ | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -openbsd* | -solidbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +@@ -1290,7 +1373,7 @@ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1329,7 +1412,7 @@ + -opened*) + os=-openedition + ;; +- -os400*) ++ -os400*) + os=-os400 + ;; + -wince*) +@@ -1378,7 +1461,7 @@ + -sinix*) + os=-sysv4 + ;; +- -tpf*) ++ -tpf*) + os=-tpf + ;; + -triton*) +@@ -1423,6 +1506,8 @@ + -dicos*) + os=-dicos + ;; ++ -nacl*) ++ ;; + -none) + ;; + *) +@@ -1445,10 +1530,10 @@ + # system, and we'll never get to this point. + + case $basic_machine in +- score-*) ++ score-*) + os=-elf + ;; +- spu-*) ++ spu-*) + os=-elf + ;; + *-acorn) +@@ -1460,8 +1545,20 @@ + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; ++ tic54x-*) ++ os=-coff ++ ;; ++ tic55x-*) ++ os=-coff ++ ;; ++ tic6x-*) ++ os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) +@@ -1481,14 +1578,11 @@ + ;; + m68000-sun) + os=-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; +- mep-*) ++ mep-*) + os=-elf + ;; + mips*-cisco) +@@ -1515,7 +1609,7 @@ + *-ibm) + os=-aix + ;; +- *-knuth) ++ *-knuth) + os=-mmixware + ;; + *-wec) diff --git a/SOURCES/bacula-bat.desktop b/SOURCES/bacula-bat.desktop new file mode 100644 index 0000000..92b0506 --- /dev/null +++ b/SOURCES/bacula-bat.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Bacula Bat Console +GenericName=Backup Management Console +Comment=Control your Bacula Server +Exec=/usr/sbin/bat -c /etc/bacula/bat.conf +Icon=bat +Terminal=false +Type=Application +Categories=System;Application;Utility + diff --git a/SOURCES/bacula-dir.init b/SOURCES/bacula-dir.init new file mode 100644 index 0000000..b5fa74a --- /dev/null +++ b/SOURCES/bacula-dir.init @@ -0,0 +1,115 @@ +#!/bin/sh +# +# bacula-dir Takes care of starting and stopping the Bacula Director. +# +# chkconfig: - 80 20 +# description: The Bacula Director is the daemon responsible for all the logic \ +# regarding the backup infrastructure: database, file retention, \ +# tape indexing, scheduling. + +### BEGIN INIT INFO +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Bacula Director Daemon. +# Description: The Bacula Director is the daemon responsible for all the logic +# regarding the backup infrastructure: database, file retention, +# tape indexing, scheduling. +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +exec="/usr/sbin/bacula-dir" +prog="bacula-dir" +CONFIG="/etc/bacula/bacula-dir.conf" +OPTS="-c $CONFIG" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +if [ "$DIR_USER" != '' ]; then + OPTS="$OPTS -u $DIR_USER" +fi + +if [ "$DIR_GROUP" != '' ]; then + OPTS="$OPTS -g $DIR_GROUP" +fi + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon $prog $OPTS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + sleep 1 + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/SOURCES/bacula-dir.service b/SOURCES/bacula-dir.service new file mode 100644 index 0000000..ab34487 --- /dev/null +++ b/SOURCES/bacula-dir.service @@ -0,0 +1,13 @@ +[Unit] +Description=Bacula-Director, the Backup-server +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 diff --git a/SOURCES/bacula-dir.sysconfig b/SOURCES/bacula-dir.sysconfig new file mode 100644 index 0000000..4250591 --- /dev/null +++ b/SOURCES/bacula-dir.sysconfig @@ -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" diff --git a/SOURCES/bacula-fd.init b/SOURCES/bacula-fd.init new file mode 100644 index 0000000..0c1b503 --- /dev/null +++ b/SOURCES/bacula-fd.init @@ -0,0 +1,113 @@ +#!/bin/sh +# +# bacula-fd Takes care of starting and stopping the Bacula File Daemon. +# +# chkconfig: - 80 20 +# description: The Bacula File Daemon is the daemon responsible for backing up \ +# data on the system. + +### BEGIN INIT INFO +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Bacula File Daemon. +# Description: The Bacula File Daemon is the daemon responsible for backing up +# data on the system. +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +exec="/usr/sbin/bacula-fd" +prog="bacula-fd" +CONFIG="/etc/bacula/bacula-fd.conf" +OPTS="-c $CONFIG" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +if [ "$FD_USER" != '' ]; then + OPTS="$OPTS -u $FD_USER" +fi + +if [ "$FD_GROUP" != '' ]; then + OPTS="$OPTS -g $FD_GROUP" +fi + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon $prog $OPTS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + sleep 1 + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/SOURCES/bacula-fd.service b/SOURCES/bacula-fd.service new file mode 100644 index 0000000..043f06d --- /dev/null +++ b/SOURCES/bacula-fd.service @@ -0,0 +1,14 @@ +[Unit] +Description=Bacula-FileDaemon, a Backup-client +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 diff --git a/SOURCES/bacula-fd.sysconfig b/SOURCES/bacula-fd.sysconfig new file mode 100644 index 0000000..09cae26 --- /dev/null +++ b/SOURCES/bacula-fd.sysconfig @@ -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" diff --git a/SOURCES/bacula-help-update.patch b/SOURCES/bacula-help-update.patch new file mode 100644 index 0000000..5b6bf1b --- /dev/null +++ b/SOURCES/bacula-help-update.patch @@ -0,0 +1,102 @@ +diff --git a/manpages/bacula-dir.8 b/manpages/bacula-dir.8 +index 50056e8..0486bf4 100644 +--- a/manpages/bacula-dir.8 ++++ b/manpages/bacula-dir.8 +@@ -37,6 +37,9 @@ Run in foreground (for debugging). + .BI \-g\ group + Set the group/gid to run as. + .TP ++.BI \-m ++Print kaboom output (for debugging) ++.TP + .BI \-r\ job + Run . + .TP +diff --git a/manpages/bacula-fd.8 b/manpages/bacula-fd.8 +index 2dfbf9e..d0b2169 100644 +--- a/manpages/bacula-fd.8 ++++ b/manpages/bacula-fd.8 +@@ -39,12 +39,12 @@ Run in foreground (for debugging). + .BI \-g\ group + Set the group/gid to run as. + .TP +-.BI \-p +-Proceed inspite of I/O errors +-.TP + .BI \-k + Keep readall permission when dropping privileges. + .TP ++.BI \-m ++Print kaboom output (for debugging) ++.TP + .BI \-s + No signals (for debugging). + .TP +diff --git a/manpages/bacula-sd.8 b/manpages/bacula-sd.8 +index 6dd36dc..aed27a3 100644 +--- a/manpages/bacula-sd.8 ++++ b/manpages/bacula-sd.8 +@@ -40,6 +40,9 @@ Set the group/gid to run as. + .BI \-p + Proceed in spite of I/O errors + .TP ++.BI \-m ++Print kaboom output (for debugging) ++.TP + .BI \-s + No signals (for debugging). + .TP +diff --git a/manpages/bconsole.8 b/manpages/bconsole.8 +index a765b2e..d12bd2d 100644 +--- a/manpages/bconsole.8 ++++ b/manpages/bconsole.8 +@@ -18,6 +18,12 @@ command. + .PP + .SH OPTIONS + .TP ++.BI \-D\ dir ++Select a Director. ++.TP ++.BI \-l ++List defined Directors. ++.TP + .BI \-c\ config + Specify configuration file. + .TP +@@ -33,6 +39,9 @@ No conio (for scripting). + .B \-s + No signals (for debugging). + .TP ++.b \-u\ nn ++Set command execution timeout to \fInn\fP seconds ++.TP + .B \-t + Test the configuration file and report errors. + .TP +diff --git a/manpages/btape.8 b/manpages/btape.8 +index dff8d0e..3a149dc 100644 +--- a/manpages/btape.8 ++++ b/manpages/btape.8 +@@ -38,9 +38,6 @@ Set debug level to \fInn\fP. + .BI \-p + Proceed inspite of I/O errors. + .TP +-.B \-t +-Open the default tape device. +-.TP + .B \-s + No signals (for debugging). + .TP +diff --git a/src/console/console.c b/src/console/console.c +index 999515f..40ca8f6 100644 +--- a/src/console/console.c ++++ b/src/console/console.c +@@ -1019,7 +1019,7 @@ int main(int argc, char *argv[]) + working_directory = "/tmp"; + args = get_pool_memory(PM_FNAME); + +- while ((ch = getopt(argc, argv, "D:lbc:d:nstu:?")) != -1) { ++ while ((ch = getopt(argc, argv, "D:lc:d:nstu:?")) != -1) { + switch (ch) { + case 'D': /* Director */ + if (director) { diff --git a/SOURCES/bacula-multilib.patch b/SOURCES/bacula-multilib.patch new file mode 100644 index 0000000..9320224 --- /dev/null +++ b/SOURCES/bacula-multilib.patch @@ -0,0 +1,31 @@ +diff --git a/src/host.h.in b/src/host.h.in +index 3fdbb05..1b3e684 100644 +--- a/src/host.h.in ++++ b/src/host.h.in +@@ -30,7 +30,25 @@ + * + */ + +-#define HOST_OS "@host@@post_host@" ++#if defined(__x86_64__) ++#define HOST_OS "x86_64-redhat-linux-gnu" ++#elif defined(__i386__) ++#define HOST_OS "i386-redhat-linux-gnu" ++#elif defined(__ppc64__) || defined(__powerpc64__) ++#define HOST_OS "powerpc64-redhat-linux-gnu" ++#elif defined(__ppc__) || defined(__powerpc__) ++#define HOST_OS "powerpc-redhat-linux-gnu" ++#elif defined(__s390x__) ++#define HOST_OS "s390x-ibm-linux-gnu" ++#elif defined(__s390__) ++#define HOST_OS "s390-ibm-linux-gnu" ++#elif defined(__sparc__) && defined(__arch64__) ++#define HOST_OS "x86_64-redhat-linux-gnu" ++#elif defined(__sparc__) ++#define HOST_OS "i386-redhat-linux-gnu" ++#elif defined(__aarch64__) ++#define HOST_OS "aarch64-redhat-linux-gnu" ++#endif + #define BACULA "@BACULA@" + #define DISTNAME "@DISTNAME@" + #define DISTVER "@DISTVER@" diff --git a/SOURCES/bacula-name-length.patch b/SOURCES/bacula-name-length.patch new file mode 100644 index 0000000..6ba8c2e --- /dev/null +++ b/SOURCES/bacula-name-length.patch @@ -0,0 +1,13 @@ +diff --git a/src/lib/message.c b/src/lib/message.c +index c4b1b90..0851da8 100644 +--- a/src/lib/message.c ++++ b/src/lib/message.c +@@ -60,7 +60,7 @@ utime_t daemon_start_time = 0; /* Daemon start time */ + const char *version = VERSION " (" BDATE ")"; + const char *dist_name = DISTNAME " " DISTVER; + int beef = BEEF; +-char my_name[30] = {0}; /* daemon name is stored here */ ++char my_name[64] = {0}; /* daemon name is stored here */ + char host_name[50] = {0}; /* host machine name */ + char *exepath = (char *)NULL; + char *exename = (char *)NULL; diff --git a/SOURCES/bacula-non-free-code.patch b/SOURCES/bacula-non-free-code.patch new file mode 100644 index 0000000..1da86d5 --- /dev/null +++ b/SOURCES/bacula-non-free-code.patch @@ -0,0 +1,686 @@ +diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in +index 009f157..a813a7c 100644 +--- a/src/lib/Makefile.in ++++ b/src/lib/Makefile.in +@@ -39,7 +39,7 @@ INCLUDE_FILES = ../baconfig.h ../bacula.h ../bc_types.h \ + fnmatch.h guid_to_name.h htable.h lex.h \ + lib.h md5.h mem_pool.h message.h mntent_cache.h \ + openssl.h plugins.h protos.h queue.h rblist.h \ +- runscript.h rwlock.h serial.h sellist.h sha1.h \ ++ runscript.h rwlock.h serial.h sellist.h \ + smartall.h status.h tls.h tree.h var.h \ + waitq.h watchdog.h workq.h \ + parse_conf.h ini.h \ +@@ -55,7 +55,7 @@ LIBBAC_SRCS = attr.c base64.c berrno.c bsys.c binflate.c bget_msg.c \ + guid_to_name.c hmac.c jcr.c lex.c alist.c dlist.c \ + md5.c message.c mem_pool.c mntent_cache.c openssl.c \ + plugins.c priv.c queue.c bregex.c \ +- rwlock.c scan.c sellist.c serial.c sha1.c \ ++ rwlock.c scan.c sellist.c serial.c \ + signal.c smartall.c rblist.c tls.c tree.c \ + util.c var.c watchdog.c workq.c btimers.c \ + address_conf.c breg.c htable.c lockmgr.c devlock.c +@@ -193,13 +193,6 @@ md5sum: Makefile md5.o + $(RMF) md5.o + $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c + +-sha1sum: Makefile sha1.o +- $(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) +- $(RMF) sha1.o +- $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c +- + bsnprintf: Makefile bsnprintf.o + $(RMF) bsnprintf.o + $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c +@@ -250,7 +243,7 @@ libtool-clean: + + 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 --git a/src/lib/lib.h b/src/lib/lib.h +index b81f89f..c82dc29 100644 +--- a/src/lib/lib.h ++++ b/src/lib/lib.h +@@ -59,7 +59,6 @@ + #include "fnmatch.h" + #endif + #include "md5.h" +-#include "sha1.h" + #include "tree.h" + #include "watchdog.h" + #include "btimers.h" +diff --git a/src/lib/sha1.c b/src/lib/sha1.c +deleted file mode 100644 +index 7e58128..0000000 +--- a/src/lib/sha1.c ++++ /dev/null +@@ -1,510 +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); +-} +- +-#ifdef TEST_DRIVER +- +-/* +- * 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" +- +-/* +- * 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 +-char *testarray[4] = +-{ +- TEST1, +- TEST2, +- TEST3, +- TEST4 +-}; +-long int repeatcount[4] = { 1, 1, 1000000, 10 }; +-char *resultarray[4] = +-{ +- "A9 99 3E 36 47 06 81 6A BA 3E 25 71 78 50 C2 6C 9C D0 D8 9D", +- "84 98 3E 44 1C 3B D2 6E BA AE 4A A1 F9 51 29 E5 E5 46 70 F1", +- "34 AA 97 3C D4 C4 DA A4 F6 1E EB 2B DB AD 27 31 65 34 01 6F", +- "DE A3 56 A2 CD DD 90 C7 A7 EC ED C5 EB B5 63 93 4F 46 04 52" +-}; +- +-int main() +-{ +- SHA1Context sha; +- int i, j, err; +- uint8_t Message_Digest[20]; +- +- /* +- * 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); +- if (err) { +- fprintf(stderr, "SHA1Reset Error %d.\n", err ); +- break; /* out of for j loop */ +- } +- +- for(i = 0; i < repeatcount[j]; ++i) { +- +- err = SHA1Input(&sha, +- (const unsigned char *) testarray[j], +- strlen(testarray[j])); +- if (err) { +- fprintf(stderr, "SHA1Input Error %d.\n", err ); +- break; /* out of for i loop */ +- } +- } +- +- err = SHA1Final(&sha, Message_Digest); +- if (err) { +- fprintf(stderr, +- "SHA1Result Error %d, could not compute message digest.\n", +- err ); +- } +- else +- { +- printf("\t"); +- for(i = 0; i < 20 ; ++i) { +- printf("%02X ", Message_Digest[i]); +- } +- printf("\n"); +- } +- printf("Should match:\n"); +- printf("\t%s\n", resultarray[j]); +- } +- +- /* Test some error returns */ +- err = SHA1Input(&sha,(const unsigned char *) testarray[1], 1); +- printf ("\nError %d. Should be %d.\n", err, shaStateError ); +- err = SHA1Init(0); +- printf ("\nError %d. Should be %d.\n", err, shaNull ); +- return 0; +-} +- +-#endif /* TEST_DRIVER */ +- +-#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 +diff --git a/src/lib/sha1.h b/src/lib/sha1.h +deleted file mode 100644 +index 437fe19..0000000 +--- a/src/lib/sha1.h ++++ /dev/null +@@ -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/SOURCES/bacula-sd.init b/SOURCES/bacula-sd.init new file mode 100644 index 0000000..409bc32 --- /dev/null +++ b/SOURCES/bacula-sd.init @@ -0,0 +1,115 @@ +#!/bin/sh +# +# bacula-sd Takes care of starting and stopping the Bacula Storage Daemon. +# +# chkconfig: - 80 20 +# description: The Bacula Storage Daemon is the daemon responsible for saving \ +# backed up data on the various File Daemon to the appropriate \ +# storage devices. + +### BEGIN INIT INFO +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Bacula Storage Daemon. +# Description: The Bacula Storage Daemon is the daemon responsible for saving +# backed up data on the various File Daemon to the appropriate +# storage devices. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +exec="/usr/sbin/bacula-sd" +prog="bacula-sd" +CONFIG="/etc/bacula/bacula-sd.conf" +OPTS="-c $CONFIG" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +if [ "$SD_USER" != '' ]; then + OPTS="$OPTS -u $SD_USER" +fi + +if [ "$SD_GROUP" != '' ]; then + OPTS="$OPTS -g $SD_GROUP" +fi + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon $prog $OPTS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + sleep 2 + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/SOURCES/bacula-sd.service b/SOURCES/bacula-sd.service new file mode 100644 index 0000000..1f4ca64 --- /dev/null +++ b/SOURCES/bacula-sd.service @@ -0,0 +1,13 @@ +[Unit] +Description=Bacula-StorageDaemon, the storage-server +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 diff --git a/SOURCES/bacula-sd.sysconfig b/SOURCES/bacula-sd.sysconfig new file mode 100644 index 0000000..d3c5c48 --- /dev/null +++ b/SOURCES/bacula-sd.sysconfig @@ -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" diff --git a/SOURCES/bacula-sd.sysconfig.el5 b/SOURCES/bacula-sd.sysconfig.el5 new file mode 100644 index 0000000..97e9a47 --- /dev/null +++ b/SOURCES/bacula-sd.sysconfig.el5 @@ -0,0 +1,9 @@ +# Users for bacula storage +# If no user is set bacula will run as root + +SD_USER=bacula +SD_GROUP=disk + +# Useful for debugging +# +# OPTS="-d 200" diff --git a/SOURCES/bacula-traymonitor.desktop b/SOURCES/bacula-traymonitor.desktop new file mode 100644 index 0000000..adad17b --- /dev/null +++ b/SOURCES/bacula-traymonitor.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Bacula Monitor +GenericName=Bacula Tray Monitor +Comment=Monitor your Bacula Backup server +Exec=/usr/sbin/bacula-tray-monitor -c /etc/bacula/tray-monitor.conf +Icon=bacula-tray-monitor +Terminal=false +Type=Application +Categories=System;Application;Utility diff --git a/SOURCES/bacula.logrotate b/SOURCES/bacula.logrotate new file mode 100644 index 0000000..c14fede --- /dev/null +++ b/SOURCES/bacula.logrotate @@ -0,0 +1,9 @@ +# Bacula logrotate script + +/var/log/bacula/*.log { + monthly + rotate 4 + notifempty + missingok +} + diff --git a/SOURCES/quickstart_mysql.txt b/SOURCES/quickstart_mysql.txt new file mode 100644 index 0000000..9d1c1a4 --- /dev/null +++ b/SOURCES/quickstart_mysql.txt @@ -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 bacula-dir | bconsole + +# systemctl start bacula-sd.service +# echo status bacula-sd | bconsole + +# systemctl start bacula-fd.service +# echo status 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 diff --git a/SOURCES/quickstart_postgresql.txt b/SOURCES/quickstart_postgresql.txt new file mode 100644 index 0000000..8ff6b17 --- /dev/null +++ b/SOURCES/quickstart_postgresql.txt @@ -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 bacula-dir | bconsole + +# systemctl start bacula-sd.service +# echo status bacula-sd | bconsole + +# systemctl start bacula-fd.service +# echo status 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 diff --git a/SOURCES/quickstart_sqlite3.txt b/SOURCES/quickstart_sqlite3.txt new file mode 100644 index 0000000..0985f29 --- /dev/null +++ b/SOURCES/quickstart_sqlite3.txt @@ -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 bacula-dir | bconsole + +# systemctl start bacula-sd.service +# echo status bacula-sd | bconsole + +# systemctl start bacula-fd.service +# echo status 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 diff --git a/SPECS/bacula.spec b/SPECS/bacula.spec new file mode 100644 index 0000000..1653442 --- /dev/null +++ b/SPECS/bacula.spec @@ -0,0 +1,1363 @@ +%global uid 133 +%global username bacula +%global _hardened_build 1 + +%global aarchrev .1 + +Name: bacula +Version: 5.2.13 +Release: 23%{aarchrev}%{?dist} +Summary: Cross platform network backup for Linux, Unix, Mac and Windows +# See LICENSE for details +License: AGPLv3 with exceptions +Group: System Environment/Daemons +URL: http://www.bacula.org +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Source0: http://www.bacula.org/downloads/Bacula-%{version}/%{name}-%{version}.tar.gz + +Source2: quickstart_postgresql.txt +Source3: quickstart_mysql.txt +Source4: quickstart_sqlite3.txt +Source5: README.Redhat +Source6: %{name}.logrotate +Source7: %{name}-fd.init +Source8: %{name}-dir.init +Source9: %{name}-sd.init +Source10: %{name}-fd.service +Source11: %{name}-dir.service +Source12: %{name}-sd.service +Source13: %{name}-bat.desktop +Source14: %{name}-traymonitor.desktop +Source15: %{name}-fd.sysconfig +Source16: %{name}-dir.sysconfig +Source17: %{name}-sd.sysconfig +Source18: %{name}-sd.sysconfig.el5 + +Patch1: %{name}-5.0.2-openssl.patch +Patch2: %{name}-5.2.2-queryfile.patch +Patch3: %{name}-5.0.3-sqlite-priv.patch +Patch4: %{name}-5.2.13-bat-build.patch +Patch5: %{name}-5.2.12-seg-fault.patch +Patch6: %{name}-5.2.13-logwatch.patch +Patch7: %{name}-help-update.patch +Patch8: %{name}-aarch64.patch +Patch9: %{name}-non-free-code.patch +Patch10: %{name}-multilib.patch +Patch11: %{name}-name-length.patch + +BuildRequires: desktop-file-utils +BuildRequires: perl +BuildRequires: sed + +BuildRequires: glibc-devel +BuildRequires: libacl-devel +BuildRequires: libstdc++-devel +BuildRequires: libxml2-devel +BuildRequires: libcap-devel +BuildRequires: lzo-devel +BuildRequires: mysql-devel +BuildRequires: ncurses-devel +BuildRequires: openssl-devel +BuildRequires: postgresql-devel +BuildRequires: python-devel +BuildRequires: readline-devel +BuildRequires: sqlite-devel +BuildRequires: zlib-devel + +%if 0%{?fedora} || 0%{?rhel} >= 6 +BuildRequires: qt4-devel >= 4.6.2 +%endif + +%if 0%{?fedora} || 0%{?rhel} >= 6 +BuildRequires: tcp_wrappers-devel +%else +BuildRequires: tcp_wrappers +%endif + +%if 0%{?fedora} || 0%{?rhel} >= 7 +BuildRequires: systemd-units +%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 +Group: System Environment/Daemons +Obsoletes: bacula-sysconfdir <= 2.4 + +%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 +Group: System Environment/Daemons +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 +Group: System Environment/Daemons +Obsoletes: bacula-sysconfdir <= 2.4 +Provides: group(%username) = %uid +Provides: user(%username) = %uid +Requires(pre): shadow-utils +Requires(postun): shadow-utils +Requires: bacula-libs%{?_isa} = %{version}-%{release} + +%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 +Group: System Environment/Daemons +Requires: bacula-common%{?_isa} = %{version}-%{release} +Requires: bacula-libs%{?_isa} = %{version}-%{release} +Requires: logwatch +# 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 + +%if 0%{?fedora} == 17 +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif + +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 +Requires(post): systemd-sysv +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif + +%if 0%{?rhel} == 5 || 0%{?rhel} == 6 +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif + +%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 storage +Summary: Bacula storage daemon files +Group: System Environment/Daemons +Requires: bacula-common%{?_isa} = %{version}-%{release} +Requires: bacula-libs%{?_isa} = %{version}-%{release} +Requires: mt-st +# 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 + +%if 0%{?fedora} == 17 +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif + +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 +Requires(post): systemd-sysv +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif + +%if 0%{?rhel} == 5 || 0%{?rhel} == 6 +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif + +%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 +Group: System Environment/Daemons +Requires: bacula-common%{?_isa} = %{version}-%{release} + +%if 0%{?fedora} == 17 +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif + +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 +Requires(post): systemd-sysv +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif + +%if 0%{?rhel} == 5 || 0%{?rhel} == 6 +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif + +%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 +Group: System Environment/Daemons +Obsoletes: bacula-console-gnome <= 2.4 +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. + +%if 0%{?fedora} || 0%{?rhel} >= 6 +%package console-bat +Summary: Bacula bat console +Group: System Environment/Daemons +Requires: bacula-libs%{?_isa} = %{version}-%{release} + +%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 +Group: System Environment/Daemons +Requires: bacula-libs%{?_isa} = %{version}-%{release} + +%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. +%endif + +%package devel +Summary: Bacula development files +Group: Development/Libraries + +%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. + + +%package -n nagios-plugins-bacula +Summary: Nagios Plugin - check_bacula +Group: Applications/System +Requires: bacula-libs%{?_isa} = %{version}-%{release} + +%description -n nagios-plugins-bacula +Provides check_bacula support for Nagios. + +%prep +%setup -q +%patch1 -p2 -b .openssl +%patch2 -p1 -b .queryfile +%patch3 -p0 -b .priv +%patch4 -p1 -b .bat-build +%patch5 -p1 -b .seg-fault +%patch6 -p1 -b .logwatch +%patch7 -p1 -b .help-update +%patch8 -p1 -b .aarch64 +%patch9 -p1 -b .non-free-code +%patch10 -p1 -b .multilib +%patch11 -p1 -b .name-length +cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} . + +# Remove execution permissions from files we're packaging as docs later on +find updatedb -type f | xargs chmod -x + +%build +build() { +export CFLAGS="$RPM_OPT_FLAGS -fPIE -Wl,-z,relro,-z,now -I%{_includedir}/ncurses" +export CPPFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/ncurses" +%configure \ + --sysconfdir=%{_sysconfdir}/bacula \ + --with-hostname=localhost \ + --with-basename=bacula \ + --with-dir-password=@@DIR_PASSWORD@@ \ + --with-fd-password=@@FD_PASSWORD@@ \ + --with-sd-password=@@SD_PASSWORD@@ \ + --with-mon-dir-password=@@MON_DIR_PASSWORD@@ \ + --with-mon-fd-password=@@MON_FD_PASSWORD@@ \ + --with-mon-sd-password=@@MON_SD_PASSWORD@@ \ + --with-working-dir=%{_localstatedir}/spool/bacula \ + --with-bsrdir=%{_localstatedir}/spool/bacula \ + --with-logdir=%{_localstatedir}/log/bacula \ + --with-scriptdir=%{_libexecdir}/bacula \ + --with-plugindir=%{_libdir}/bacula \ + --with-smtp-host=localhost \ + --with-subsys-dir=%{_localstatedir}/lock/subsys \ + --with-pid-dir=%{_localstatedir}/run \ + --disable-conio \ + --enable-batch-insert \ + --enable-readline \ + --enable-largefile \ + --enable-build-dird \ + --enable-build-stored \ + --with-openssl \ + --with-tcp-wrappers \ + --with-python \ + --enable-smartalloc \ + --with-x \ + --disable-rpath \ + --with-sqlite3 \ + --with-mysql \ + --with-postgresql \ + $* +} + +%if 0%{?fedora} || 0%{?rhel} >= 6 +export QMAKE=/usr/bin/qmake-qt4 +build --enable-bat --docdir=%{_datadir}/doc/bacula-console-bat-%{version} +%else +build --disable-bat +%endif + +# 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 + +make %{?_smp_mflags} + +pushd examples/nagios/check_bacula + CFLAGS="%{optflags}" make LIBS="-lpthread -ldl -lssl -lcrypto -lz" +popd + +%if 0%{?fedora} || 0%{?rhel} >= 6 +pushd src/qt-console/tray-monitor + /usr/bin/qmake-qt4 tray-monitor.pro + make %{?_smp_mflags} + cp -f .libs/bacula-tray-monitor . +popd +%endif + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} + +# Nagios plugin +install -p -m 755 -D examples/nagios/check_bacula/.libs/check_bacula %{buildroot}%{_libdir}/nagios/plugins/check_bacula + +# Bacula plugin info utility +install -p -m 755 -D src/tools/.libs/bpluginfo %{buildroot}%{_sbindir}/bpluginfo +install -p -m 644 -D manpages/bpluginfo.8 %{buildroot}%{_mandir}/man8/bpluginfo.8 + +# Remove catalogue backend symlinks +rm -f %{buildroot}%{_libdir}/libbaccats.so +rm -f %{buildroot}%{_libdir}/libbaccats-%{version}.so + +# Sample query file +mv %{buildroot}%{_libexecdir}/bacula/query.sql %{buildroot}%{_sysconfdir}/bacula/query.sql + +%if 0%{?fedora} || 0%{?rhel} >= 6 +# Bat +install -p -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat.png +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE13} + +# QT Tray monitor +install -p -m 755 -D src/qt-console/tray-monitor/bacula-tray-monitor %{buildroot}%{_sbindir}/bacula-tray-monitor +install -p -m 644 -D src/qt-console/tray-monitor/tray-monitor.conf %{buildroot}%{_sysconfdir}/bacula/tray-monitor.conf +install -p -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.png +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE14} + +%else +rm -f %{buildroot}%{_mandir}/man1/bat.1* +%endif + +# 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 + +%if 0%{?fedora} || 0%{?rhel} >= 7 +# 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 +%else +# Initscripts +install -p -m 755 -D %{SOURCE7} %{buildroot}%{_initrddir}/bacula-fd +install -p -m 755 -D %{SOURCE8} %{buildroot}%{_initrddir}/bacula-dir +install -p -m 755 -D %{SOURCE9} %{buildroot}%{_initrddir}/bacula-sd +%endif + +# Sysconfig +install -p -m 644 -D %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/bacula-fd +install -p -m 644 -D %{SOURCE16} %{buildroot}%{_sysconfdir}/sysconfig/bacula-dir +%if 0%{?fedora} || 0%{?rhel} >= 6 +install -p -m 644 -D %{SOURCE17} %{buildroot}%{_sysconfdir}/sysconfig/bacula-sd +%else +install -p -m 644 -D %{SOURCE18} %{buildroot}%{_sysconfdir}/sysconfig/bacula-sd +%endif + +# 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}%{_mandir}/man1/bacula-bwxconsole.1* +rm -f %{buildroot}%{_mandir}/man1/bacula-tray-monitor.1* +rm -rf %{buildroot}%{_datadir}/doc/bacula/ + +# Fix up some perms so rpmlint does not complain too much +chmod 755 %{buildroot}%{_sbindir}/* +chmod 755 %{buildroot}%{_libdir}/bacula/* +chmod 755 %{buildroot}%{_libexecdir}/bacula/* +chmod 644 %{buildroot}%{_libexecdir}/bacula/btraceback.* + +# Install headers +mkdir -p %{buildroot}%{_includedir}/bacula +for dir in src src/cats src/console src/dird src/filed src/findlib src/lib src/plugins/fd src/stored; do + mkdir -p %{buildroot}%{_includedir}/bacula/$dir + install -p -m 644 $dir/*.h %{buildroot}%{_includedir}/bacula/$dir +done + +# fix multilib issues +mv $RPM_BUILD_ROOT%{_includedir}/bacula/src/config.h \ + $RPM_BUILD_ROOT%{_includedir}/bacula/src/config-%{__isa_bits}.h + +cat >$RPM_BUILD_ROOT%{_includedir}/bacula/src/config.h < + +#if __WORDSIZE == 32 +# include "config-32.h" +#elif __WORDSIZE == 64 +# include "config-64.h" +#else +# error "unexpected value for __WORDSIZE macro" +#endif + +#endif +EOF + +%clean +rm -rf %{buildroot} + +%post libs +/sbin/ldconfig + +%postun libs +/sbin/ldconfig +exit 0 + +%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 +/sbin/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 + +%postun libs-sql +/sbin/ldconfig +exit 0 + +%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 + +%if 0%{?fedora} == 17 + +%post client +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun client +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable bacula-fd.service > /dev/null 2>&1 || : + /bin/systemctl stop bacula-fd.service > /dev/null 2>&1 || : +fi + +%postun client +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart bacula-fd.service >/dev/null 2>&1 || : +fi + +%triggerun client -- bacula-client < 5.0.3-10 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply bacula-fd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save bacula-fd >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del bacula-fd >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-fd.service >/dev/null 2>&1 || : + +%post director +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun director +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable bacula-dir.service > /dev/null 2>&1 || : + /bin/systemctl stop bacula-dir.service > /dev/null 2>&1 || : +fi + +%postun director +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart bacula-dir.service >/dev/null 2>&1 || : +fi + +%triggerun director -- bacula-director-common < 5.0.3-10 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply bacula-dir +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save bacula-dir >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del bacula-dir >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-dir.service >/dev/null 2>&1 || : + +%post storage +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun storage +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable bacula-sd.service > /dev/null 2>&1 || : + /bin/systemctl stop bacula-sd.service > /dev/null 2>&1 || : +fi + +%postun storage +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart bacula-sd.service >/dev/null 2>&1 || : +fi + +%triggerun storage -- bacula-storage-common < 5.0.3-10 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply bacula-sd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save bacula-sd >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del bacula-sd >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-sd.service >/dev/null 2>&1 || : + +%endif + +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 + +%post client +%systemd_post %{name}-fd.service + +%preun client +%systemd_preun %{name}-fd.service + +%postun client +%systemd_postun_with_restart %{name}-fd.service + +%triggerun client -- bacula-client < 5.0.3-10 +/usr/bin/systemd-sysv-convert --save bacula-fd >/dev/null 2>&1 ||: +/sbin/chkconfig --del bacula-fd >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-fd.service >/dev/null 2>&1 || : + +%post director +%systemd_post %{name}-dir.service + +%preun director +%systemd_preun %{name}-dir.service + +%postun director +%systemd_postun_with_restart %{name}-dir.service + +%triggerun director -- bacula-director-common < 5.0.3-10 +/usr/bin/systemd-sysv-convert --save bacula-dir >/dev/null 2>&1 ||: +/sbin/chkconfig --del bacula-dir >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-dir.service >/dev/null 2>&1 || : + +%post storage +%systemd_post %{name}-sd.service + +%preun storage +%systemd_preun %{name}-sd.service + +%postun storage +%systemd_postun_with_restart %{name}-sd.service + +%triggerun storage -- bacula-storage-common < 5.0.3-10 +/usr/bin/systemd-sysv-convert --save bacula-sd >/dev/null 2>&1 ||: +/sbin/chkconfig --del bacula-sd >/dev/null 2>&1 || : +/bin/systemctl try-restart bacula-sd.service >/dev/null 2>&1 || : + +%endif + +%if 0%{?rhel} == 5 || 0%{?rhel} == 6 + +%post client +/sbin/chkconfig --add bacula-fd + +%preun client +if [ "$1" = 0 ]; then + /sbin/service bacula-fd stop >/dev/null 2>&1 || : + /sbin/chkconfig --del bacula-fd +fi + +%postun client +if [ "$1" -ge "1" ]; then + /sbin/service bacula-fd condrestart >/dev/null 2>&1 || : +fi + +%post director +/sbin/chkconfig --add bacula-dir + +%preun director +if [ "$1" = 0 ]; then + /sbin/service bacula-dir stop >/dev/null 2>&1 || : + /sbin/chkconfig --del bacula-dir +fi + +%postun director +if [ "$1" -ge "1" ]; then + /sbin/service bacula-dir condrestart >/dev/null 2>&1 || : +fi + +%post storage +/sbin/chkconfig --add bacula-sd + +%preun storage +if [ "$1" = 0 ]; then + /sbin/service bacula-sd stop >/dev/null 2>&1 || : + /sbin/chkconfig --del bacula-sd +fi + +%postun storage +if [ "$1" -ge "1" ]; then + /sbin/service bacula-sd condrestart >/dev/null 2>&1 || : +fi + +%endif + +%files libs +%defattr(-,root,root,-) +%{_libdir}/libbac-%{version}.so +%{_libdir}/libbaccfg-%{version}.so +%{_libdir}/libbacfind-%{version}.so +%{_libdir}/libbacpy-%{version}.so + +%files libs-sql +%defattr(-,root,root,-) +%{_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 +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog LICENSE SUPPORT +%doc README.Redhat quickstart_* +%config(noreplace) %{_sysconfdir}/logrotate.d/bacula +%attr(755,root,root) %dir %{_sysconfdir}/%{name} +%dir %{_libexecdir}/%{name} +%{_sbindir}/btraceback +%{_sbindir}/bpluginfo +%{_libexecdir}/%{name}/btraceback.dbx +%{_libexecdir}/%{name}/btraceback.gdb +%{_libexecdir}/%{name}/bacula_config +%{_libexecdir}/%{name}/btraceback.mdb +%{_mandir}/man8/btraceback.8* +%{_mandir}/man8/bpluginfo.8* +%dir %attr(750, bacula, bacula) %{_localstatedir}/log/bacula +%dir %attr(750, bacula, bacula) %{_localstatedir}/spool/bacula + +%files director +%defattr(-,root,root,-) +%doc updatedb examples/sample-query.sql +%attr(640,root,bacula) %config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf +%attr(640,root,bacula) %config(noreplace) %{_sysconfdir}/bacula/query.sql +%config(noreplace) %{_sysconfdir}/logwatch/conf/logfiles/bacula.conf +%config(noreplace) %{_sysconfdir}/logwatch/conf/services/bacula.conf +%config(noreplace) %{_sysconfdir}/sysconfig/bacula-dir +%{_sysconfdir}/logwatch/scripts/services/bacula +%{_sysconfdir}/logwatch/scripts/shared/applybaculadate +%if 0%{?fedora} || 0%{?rhel} >= 7 +%{_unitdir}/bacula-dir.service +%else +%{_initrddir}/bacula-dir +%endif +%{_sbindir}/bacula-dir +%{_sbindir}/bregex +%{_sbindir}/bsmtp +%{_sbindir}/bwild +%{_sbindir}/dbcheck +%{_mandir}/man1/bsmtp.1* +%{_mandir}/man8/bacula-dir.8* +%{_mandir}/man8/bregex.8* +%{_mandir}/man8/bwild.8* +%{_mandir}/man8/dbcheck.8* +%{_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 + +%files storage +%defattr(-,root,root,-) +%{_sbindir}/bacula-sd +%{_sbindir}/bcopy +%{_sbindir}/bextract +%{_sbindir}/bls +%{_sbindir}/bscan +%{_sbindir}/btape +%attr(640,root,root) %config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/bacula-sd +%if 0%{?fedora} || 0%{?rhel} >= 7 +%{_unitdir}/bacula-sd.service +%else +%{_initrddir}/bacula-sd +%endif +%{_libexecdir}/%{name}/disk-changer +%{_libexecdir}/%{name}/dvd-handler +%{_libexecdir}/%{name}/mtx-changer +%{_libexecdir}/%{name}/mtx-changer.conf +%{_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* + +%files client +%defattr(-,root,root,-) +%{_sbindir}/bacula-fd +%if 0%{?fedora} || 0%{?rhel} >= 7 +%{_unitdir}/bacula-fd.service +%else +%{_initrddir}/bacula-fd +%endif +%attr(640,root,root) %config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/bacula-fd +%{_mandir}/man8/bacula-fd.8* +%{_libdir}/bacula/bpipe-fd.so + +%files console +%defattr(-,root,root,-) +%{_sbindir}/bconsole +%attr(640,root,root) %config(noreplace) %{_sysconfdir}/bacula/bconsole.conf +%{_mandir}/man8/bconsole.8* + +%if 0%{?fedora} || 0%{?rhel} >= 6 +%files console-bat +%defattr(-,root,root,-) +%doc %{_datadir}/doc/bacula-console-bat-%{version}/* +%attr(640,root,root) %config(noreplace) %{_sysconfdir}/bacula/bat.conf +%{_sbindir}/bat +%{_mandir}/man1/bat.1* +%{_datadir}/applications/bacula-bat.desktop +%{_datadir}/pixmaps/bat.png + +%files traymonitor +%defattr(-,root,root,-) +%{_sbindir}/bacula-tray-monitor +%attr(640,root,root) %config(noreplace) %{_sysconfdir}/bacula/tray-monitor.conf +%{_datadir}/applications/bacula-traymonitor.desktop +%{_datadir}/pixmaps/bacula-tray-monitor.png +%endif + +%files devel +%defattr(-,root,root,-) +%{_includedir}/bacula +%{_libdir}/libbac.la +%{_libdir}/libbac.so +%{_libdir}/libbaccats.la +%{_libdir}/libbaccats-mysql.la +%{_libdir}/libbaccats-postgresql.la +%{_libdir}/libbaccats-sqlite3.la +%{_libdir}/libbaccfg.la +%{_libdir}/libbaccfg.so +%{_libdir}/libbacfind.la +%{_libdir}/libbacfind.so +%{_libdir}/libbacpy.la +%{_libdir}/libbacpy.so +%{_libdir}/libbacsql.la +%{_libdir}/libbacsql.so + +%files -n nagios-plugins-bacula +%defattr(-,root,root) +%{_libdir}/nagios/plugins/check_bacula + +%changelog +* Fri Aug 07 2015 Petr Hracek - 5.2.13-23.1 +- Update SPEC file + Related: #1195625 + +* Mon May 11 2015 Petr Hracek - 5.2.13-22.1 +- Update SPEC file + Related: #1195625 + +* Mon May 11 2015 Petr Hracek - 5.2.13-21.1 +- Increase bacula daemon name to 64 characters +Resolves: #1195625 + +* Wed May 06 2015 Petr Hracek - 5.2.13-20.1 +- PIE and RELRO check +Resolves: #1092525 + +* Thu Jul 31 2014 Petr Hracek - 5.2.13-19.1 +- Bump version +Resolves: #1059611 + +* Tue Mar 18 2014 Petr Hracek - 5.2.13-18.1 +- Add aarch64 support +Resolves: #1059611 + +* Tue Feb 4 2014 Brendan Conoboy - 5.2.13-17.1 +- Per Marcin, add aarch64 to bacula-multilib.patch. + +* Fri Jan 24 2014 Daniel Mach - 5.2.13-17 +- Mass rebuild 2014-01-24 + +* Wed Jan 15 2014 Honza Horak - 5.2.13-16 +- Rebuild for mariadb-libs + Related: #1045013 + +* Fri Dec 27 2013 Daniel Mach - 5.2.13-15 +- Mass rebuild 2013-12-27 + +* Tue Dec 17 2013 Petr Hracek - 5.2.13-14 +- Resolves: #881146 Multilib issue + +* Mon Jul 15 2013 Petr Hracek - 5.2.13-13 +- make dependency of bacula packages on bacula-libs RHEL-7 rpmdiff (#881146) + +* Thu Jun 27 2013 Petr Hracek - 5.2.13-12 +- Correct systemd unitfiles permissions (#978833) + +* Tue May 28 2013 Petr Hracek - 5.2.13-11 +- Fix for nonfree code (#967417) + +* Thu May 16 2013 Simone Caronni - 5.2.13-10 +- Add aarch64 patch (#925072). +- Add bpluginfo commmand. + +* Tue Apr 16 2013 Simone Caronni - 5.2.13-9 +- Systemd service files cleanup, thanks Michal Schmidt (#952334) + +* Mon Apr 08 2013 Petr Hracek - 5.2.13-8 +- Correcting options and man pages (#948837) + +* Mon Apr 08 2013 Petr Hracek - 5.2.13-7 +- include /var/log/bacula/*.log in logwatch (#924797) + +* Mon Mar 04 2013 Simone Caronni - 5.2.13-6 +- Add mt-st requirement to storage package; update quick start docs. + +* Tue Feb 26 2013 Simone Caronni - 5.2.13-5 +- Improve documentation. + +* Mon Feb 25 2013 Simone Caronni - 5.2.13-4 +- Fix director reload command. +- Adjust to 5.2.13 permission changes. + +* Fri Feb 22 2013 Simone Caronni - 5.2.13-3 +- Renamed README to README.Redhat. + +* Thu Feb 21 2013 Simone Caronni - 5.2.13-2 +- Removed bacula-checkconf stuff. +- Separated postgresql, sqlite3 and mysql how to from README. + +* Wed Feb 20 2013 Simone Caronni - 5.2.13-1 +- Update to 5.2.13, drop upstreamed patch. +- Remove Fedora 16 (EOL) checks. + +* Sun Feb 10 2013 Rahul Sundaram - 5.2.12-9 +- remove vendor tag from desktop file. https://fedorahosted.org/fpc/ticket/247 + +* Fri Feb 08 2013 Petr Hracek - 5.2.12-8 +- Fix: (#881146) syntax error in update_postgresql_tables_10_to_11.in + +* Mon Feb 04 2013 Petr Hracek - 5.2.12-7 +- Fix (#905309) e_msg: Process /usr/sbin/bat was killed by signal 11 (SIGSEGV) + +* Thu Jan 10 2013 Simone Caronni - 5.2.12-6 +- Added missing line in bacula-sd SysV init script. + +* Wed Jan 09 2013 Simone Caronni - 5.2.12-5 +- Move unversioned libraries into the devel package (#889244). + +* Wed Jan 09 2013 Simone Caronni - 5.2.12-4 +- Updated SysV init script according to Fedora template: + https://fedoraproject.org/wiki/Packaging:SysVInitScript + +* Wed Oct 17 2012 Simone Caronni - 5.2.12-3 +- Add sample-query.sql file to Director's docs. + +* Wed Oct 17 2012 Simone Caronni - 5.2.12-2 +- Fix fedpkg checks. Requires fedpkg > 1.10: + http://git.fedorahosted.org/cgit/fedpkg.git/commit/?id=11c46c06a3c9cc2f58d68aea964dd37dc028e349 +- Change systemd requirements as per new package guidelines. + +* Fri Sep 14 2012 Simone Caronni - 5.2.12-1 +- Update to 5.2.12, containing only patches from 5.2.11-4. + +* Fri Sep 14 2012 Simone Caronni - 5.2.11-4 +- Add a sleep timer for RHEL init scripts restart as Debian does. + Problems verified on the sd exiting too early on VMs and slow boxes. + +* Thu Sep 13 2012 Simone Caronni - 5.2.11-3 +- Introduce last minute critical patches. + +* Thu Sep 13 2012 Simone Caronni - 5.2.11-2 +- Do not remove user on common subpackage uninstall. + +* Tue Sep 11 2012 Simone Caronni - 5.2.11-1 +- Update to 5.2.11. +- Removed upstreamed patches. +- Updated bat patch. +- Removed useless docs. + +* Tue Sep 11 2012 Simone Caronni - 5.2.10-7 +- Add Fedora 18 systemd macros. +- Remove old distribution checks. + +* Wed Aug 29 2012 Simone Caronni - 5.2.10-6 +- Remove user definition during prep so they are not used during the install + phase (rhbz#852732). +- Enforce permissions in default config files. + +* Fri Jul 20 2012 Simone Caronni - 5.2.10-5 +- Removed make_catalog_backup bash script, leave only the default perl one (rhbz#456612,665498). + +* Wed Jul 18 2012 Fedora Release Engineering - 5.2.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 16 2012 Simone Caronni - 5.2.10-3 +- Updated log path patch (rhbz#837706). + +* Tue Jul 10 2012 Simone Caronni - 5.2.10-2 +- Add nss-lookup.target as required to service files (rhbz#838828). +- Fix bsmtp upstream bug sending mails to ipv4/ipv6 hosts. + +* Mon Jul 02 2012 Simone Caronni - 5.2.10-1 +- Update to 5.2.10. + +* Tue Jun 19 2012 Simone Caronni - 5.2.9-2 +- Remove _isa on BuildRequires. +- Remove useless code in SysV init scripts. + +* Tue Jun 12 2012 Simone Caronni - 5.2.9-1 +- Update to 5.2.9, remove termlib patch. + +* Mon Jun 11 2012 Simone Caronni - 5.2.8-2 +- Fix console build on RHEL 5. + +* Mon Jun 11 2012 Simone Caronni - 5.2.8-1 +- Update to 5.2.8. +- Removed upstram xattr patch. +- Added database backend detection to bacula-libs-sql for upgrades from + <= 5.0.3-28-fc16 and 5.2.6-1.fc17. + +* Fri Jun 08 2012 Simone Caronni - 5.2.7-4 +- Make a note about mt-st and mtx (bz#829888). +- Update README.Fedora with current information. +- Fix bacula-sd group on Fedora and RHEL >= 6 (bz#829509). + +* Wed Jun 06 2012 Simone Caronni - 5.2.7-3 +- Final xattr patch from upstream for bz#819158. +- Switch alternatives to point to the unversioned system libraries. + Pointed out by the closely related bug #829219. + +* Mon Jun 04 2012 Simone Caronni - 5.2.7-2 +- Remove python-devel test leftover. +- Updated bat build patch to add support for RHEL 6. + +* Mon Jun 04 2012 Simone Caronni - 5.2.7-1 +- Updated to 5.2.7, removed patches included upstream. +- Removed python-devel patch, fix included in python package. +- Replaced tabs with blanks in spec file (rpmlint). + +* Mon May 28 2012 Simone Caronni - 5.2.6-6 +- Even if pulled in by dependencies, re-add explict BR on systemd-units. +- Remove .gz suffix for man pages in file lists as per packaging guidelines. + +* Mon May 28 2012 Simone Caronni - 5.2.6-5 +- Patch for bug #819158. +- Updated hostname patch with official fix. +- Sorted all BuildRequires and removed useless systemd-units. + +* Wed May 23 2012 Simone Caronni - 5.2.6-4 +- Added python config workaround for Fedora 16. + +* Mon May 21 2012 Simone Caronni - 5.2.6-3 +- Removed _install, _mkdir and _make macro. +- Added _isa to BuildRequires. +- Removed lzo-devel option for RHEL 4 (EOL). + +* Fri Mar 16 2012 Simone Caronni - 5.2.6-2 +- Move libbaccats and libbacsql into bacula-libs-sql package so only + Director and Storage daemons pull in SQL dependencies: + http://old.nabble.com/Standalone-client-question-td33495990.html + +* Wed Feb 22 2012 Simone Caronni - 5.2.6-1 +- Update to 5.2.6. + +* Fri Feb 10 2012 Simone Caronni - 5.2.5-3 +- WX and gnome console should be upgraded from bconsole, not + libraries. + +* Mon Jan 30 2012 Simone Caronni - 5.2.5-2 +- License has changed to AGPLv3 in 5.0.3. Thanks Erinn. +- Fix ldconfig/alternatives symlinks on removal of packages and + upgrades from recent f15/f16 changes. + +* Thu Jan 26 2012 Simone Caronni - 5.2.5-1 +- Update to 5.2.5. +- Change the alternative library to the base shared object name + so the preference set is not lost when changing releases. + +* Mon Jan 23 2012 Simone Caronni - 5.2.4-4 +- Remove old BuildRequires for bacula-docs. + +* Fri Jan 20 2012 Simone Caronni - 5.2.4-3 +- Fix for rhbz#728693. + +* Fri Jan 20 2012 Simone Caronni - 5.2.4-2 +- Close bugs rhbz#708712, rhbz#556669, rhbz#726147 + +* Wed Jan 18 2012 Simone Caronni - 5.2.4-1 +- Update to 5.2.4, rework libbaccats installation as they have + fixed the soname library problem. + +* Thu Jan 12 2012 Simone Caronni - 5.2.3-8 +- Fix tray monitor desktop file. + +* Wed Jan 11 2012 Simone Caronni - 5.2.3-7 +- Split off bacula-docs subpackage. + +* Thu Jan 05 2012 Simone Caronni - 5.2.3-6 +- Make docs conditional at build for testing. +- Add devel subpackage. + +* Tue Jan 03 2012 Simone Caronni - 5.2.3-5 +- Trim changelog. +- Merge bacula-director backends and move libbacats alternatives + to bacula-libs. +- Move bscan to bacula-storage now that is dependent only on + bacula-libs. +- Added README.Fedora. + +* Tue Dec 20 2011 Simone Caronni - 5.2.3-4 +- Changing uid from 33 per previous discussion, static uid + already allocated is 133: + "cat /usr/share/doc/setup-2.8.36/uidgid | grep bacula" + +* Mon Dec 19 2011 Simone Caronni - 5.2.3-3 +- Remove fedora-usermgmt entirely, see thread at: + http://lists.fedoraproject.org/pipermail/packaging/2011-December/008034.html + +* Mon Dec 19 2011 Simone Caronni - 5.2.3-2 +- Remove leftover users when removing bacula-common. +- Allow building "--without fedora" to avoid RHEL dependency on EPEL: + http://fedoraproject.org/wiki/PackageUserCreation + +* Mon Dec 19 2011 Simone Caronni - 5.2.3-1 +- Updated to 5.2.3. +- Remove fedora-usermgmt from libs Requires section. + +* Sun Dec 11 2011 Simone Caronni - 5.2.2-11 +- Add bat html docs so the help button works. +- Minor packaging changes. +- Default permissions on bconsole and bat. +- Use localhost as default on config files instead of patching fake + example.com hostnames. +- Add QT tray monitor. + +* Sat Dec 10 2011 Simone Caronni - 5.2.2-10 +- Added patch for mysql 5.5.18 from Oliver Falk. + +* Wed Dec 07 2011 Simone Caronni - 5.2.2-9 +- Add sample-query.sql as config file. +- Small log changes. + +* Wed Dec 07 2011 Simone Caronni - 5.2.2-8 +- Fixed building on RHEL/CentOS 4. +- Split out libs package to remove dependency on bacula-common for + bconsole, bat and check_bacula. +- Fix typo in post scriptlet for director-sqlite. + +* Tue Dec 06 2011 Simone Caronni - 5.2.2-7 +- Added libcap for POSIX.1e capabilities in bacula-fd (5.0.0 feature). +- Allow systemd files to read options set in the sysconfig + configuration files like SysV scripts to enable capabilities. +- Set capabilities as optional for now. + +* Mon Dec 05 2011 Simone Caronni - 5.2.2-6 +- Removed leftover files and small rpmlint fixes. +- Additional file moves between packages. +- Enabled LZO compression (5.2.1 feature). + +* Mon Dec 05 2011 Simone Caronni - 5.2.2-5 +- Remove redundant user/group in service files. +- Reduce patching for what can be passed through configure. +- Remove dsolink patch, not needed anymore. + +* Fri Dec 02 2011 Simone Caronni - 5.2.2-4 +- Rename storage-common to storage and make it provide storage-common. +- Move bscan to director-common. +- Move storage scripts to storage. +- Add html docs. +- Install dummy catalogue library and mark it as ghost. + +* Thu Dec 01 2011 Simone Caronni - 5.2.2-3 +- Add missing conditional for bat in the build section. +- Make bat require qt4-devel on build (rhel 5 fix). +- Bumped requirement for qt >= 4.6.2 for 5.2.2. +- Renamed bacula-config.patch to bacula-5.2.2-config.patch as it + always changes. +- Fix installation of bat and check_bacula binaries. Enabling + libtool for bpipe-fd.so produces binaries under .libs. +- Removed fedora-usermgmt requirement for director-common. +- Removed examples from docs and make them "noarch". +- Fix bacula-console requirements. +- Fix nagios plugin summary. +- Removed checkconf functions from SysV init files and replace + the call with the script used in systemd service files. Make + the script available in all builds. +- Make docs NoArch where supported. + +* Thu Dec 1 2011 Tom Callaway - 5.2.2-2 +- resolve broken dependency issues + +* Tue Nov 29 2011 Tom Callaway - 5.2.2-1 +- Update to 5.2.2 +- minor spec cleanups, conditionalized support for systemd + +* Fri Nov 04 2011 Simone Caronni - 5.2.1-1 +- Updated to 5.2.1. +- Reworked and removed some patches for 5.2.1 codebase. +- Reworked bat installation. +- Removed sqlite2 support. +- Removed all the fancy database backend rebuilding. +- Disabled libtool for bpipe-fd.so. +- Passed plugins dir as libdir/bacula. +- Added sql libs to alternatives. +- Disabled traymonitor. +- Minor fixes to spec file, rpmlint fixes. +- Nagios patch for Enterprise FDs. +- Removed all gui/web stuff. +- Removed a lot of comments. +- Conditional on Fedora 11 / RHEL 6 for bat build. +- Obsolete bacula-sysconfdir. +- Removed bwxconsole. + +* Thu Nov 3 2011 Lukáš Nykrýn - 5.0.3-13 +- fixed creating of bacula MySQL tables and bump + +* Sun Oct 9 2011 Lukáš Nykrýn - 5.0.3-12 +- fixed restart option in service files (#745529) +- fixed creating of bacula MySQL tables (#724894) + +* Fri Sep 9 2011 Tom Callaway - 5.0.3-11 +- add missing scriptlets + +* Thu Sep 8 2011 Tom Callaway - 5.0.3-10 +- convert to systemd + +* Wed Mar 23 2011 Dan Horák - 5.0.3-9 +- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient) + +* Mon Feb 07 2011 Fedora Release Engineering - 5.0.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 03 2011 Jon Ciesla - 5.0.3-7 +- Rebuild for MySQL 5.5, with patch. + +* Fri Nov 26 2010 Jan Görig - 5.0.3-6 +- Fixed previous fix of alternatives +- Changed initscript return value for non-configured service +- Director address is required in tray-monitor config now (#626490) + +* Tue Nov 23 2010 Jan Görig - 5.0.3-5 +- Fixed alternatives for dbcheck (#650224) +- Moved director log file to /var/log/bacula/ +- Changed permission of bacula-dir.conf (RHEL #651786) +- SQLite database is created as bacula user + +* Tue Oct 19 2010 Jan Görig - 5.0.3-4 +- Fixed initscripts and changed default group of bacula-sd (#629697) +- Better warning for non-configured password (#556669) + +* Wed Sep 29 2010 jkeating - 5.0.3-3 +- Rebuilt for gcc bug 634757 + +* Thu Sep 23 2010 Jan Görig - 5.0.3-2 +- fixed openssl patch, thanks to Enrico Scholz + +* Tue Aug 10 2010 Jon Ciesla - 5.0.3-1 +- New upstream. +- DSOlink fix for same. + +* Fri Jul 30 2010 Jon Ciesla - 5.0.2-8 +- Patched configure scripts for Python 2.7. + +* Fri Jul 30 2010 Jon Ciesla - 5.0.2-7 +- Rebuild against Python 2.7. + +* Wed Jul 14 2010 Dan Horák - 5.0.2-6 +- rebuilt against wxGTK-2.8.11-2 + +* Thu Jun 3 2010 Jan Görig 5.0.2-5 +- removed no longer needed sysconfig subpackage (#593307] +- build with $RPM_OPT_FLAGS, show compiler commands in build log (#575425) + fixed by Ville Skyttä +- dropped tcp_wrappers build conditional (#537250) +- fixed location of query.xml in config file (#556480) + +* Wed Jun 2 2010 Jan Görig 5.0.2-4 +- initscripts improvements +- fixed consolehelper settings and menu entries + +* Tue Jun 01 2010 Jon Ciesla