From ddf998d0dadd0d137f0b00f37c060f09fe4b3087 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Sat, 31 Jul 2010 18:18:55 +0200 Subject: [PATCH] Massive backport from Branch-5.1 to Branch-5.0 -- a bit more to do --- bacula/.gitignore | 1 + bacula/autoconf/bacula-macros/db.m4 | 6 +- bacula/autoconf/config.guess | 135 ++-- bacula/autoconf/config.h.in | 12 + bacula/autoconf/config.sub | 107 ++- bacula/autoconf/configure.in | 125 ++- bacula/kernstodo | 8 + bacula/platforms/rpm/bacula-mtx.spec | 2 +- bacula/platforms/rpm/bacula.spec | 2 +- bacula/projects | 542 ++++---------- bacula/scripts/bacula-ctl-dir.in | 2 +- bacula/scripts/bacula-ctl-fd.in | 2 +- bacula/scripts/bacula-ctl-sd.in | 2 +- bacula/scripts/bacula.in | 2 +- bacula/scripts/btraceback.dbx | 49 +- bacula/scripts/btraceback.gdb | 2 + bacula/scripts/btraceback.in | 45 +- bacula/scripts/btraceback.mdb | 24 + bacula/scripts/devel_bacula.in | 2 +- bacula/scripts/disk-changer.in | 248 +++--- bacula/src/baconfig.h | 75 +- bacula/src/cats/Makefile.in | 4 +- bacula/src/cats/bdb.c | 792 -------------------- bacula/src/cats/bdb.h | 13 - bacula/src/cats/bdb_create.c | 165 ---- bacula/src/cats/bdb_delete.c | 81 -- bacula/src/cats/bdb_find.c | 106 --- bacula/src/cats/bdb_get.c | 209 ------ bacula/src/cats/bdb_list.c | 157 ---- bacula/src/cats/bdb_update.c | 124 --- bacula/src/cats/bvfs.c | 2 +- bacula/src/cats/create_bacula_database.in | 2 +- bacula/src/cats/create_bdb_database.in | 5 - bacula/src/cats/create_ingres_database.in | 7 +- bacula/src/cats/drop_bdb_database.in | 5 - bacula/src/cats/drop_bdb_tables.in | 13 - bacula/src/cats/drop_ingres_database.in | 6 +- bacula/src/cats/drop_ingres_tables.in | 89 +-- bacula/src/cats/drop_mysql_tables.in | 1 + bacula/src/cats/drop_postgresql_tables.in | 1 + bacula/src/cats/grant_bdb_privileges.in | 7 - bacula/src/cats/grant_ingres_privileges.in | 97 +-- bacula/src/cats/ingres.in | 8 - bacula/src/cats/make_bdb_tables.in | 6 - bacula/src/cats/make_catalog_backup.pl.in | 13 +- bacula/src/cats/myingres.c | 567 -------------- bacula/src/cats/myingres.h | 76 -- bacula/src/cats/myingres.sc | 567 -------------- bacula/src/cats/myingres.sh | 84 --- bacula/src/dird/dird.c | 4 +- bacula/src/dird/dird_conf.c | 5 +- bacula/src/dird/getmsg.c | 5 +- bacula/src/dird/next_vol.c | 21 +- bacula/src/dird/protos.h | 7 +- bacula/src/dird/query.sql | 3 + bacula/src/dird/ua.h | 2 + bacula/src/dird/ua_cmds.c | 26 +- bacula/src/dird/ua_dotcmds.c | 57 +- bacula/src/dird/ua_input.c | 36 + bacula/src/dird/ua_output.c | 10 +- bacula/src/filed/Makefile.in | 15 +- bacula/src/filed/status.c | 8 +- bacula/src/filed/verify.c | 6 +- bacula/src/filed/verify_vol.c | 18 +- bacula/src/findlib/Makefile.in | 2 +- bacula/src/findlib/bfile.c | 11 +- bacula/src/findlib/find.c | 35 +- bacula/src/findlib/find.h | 7 +- bacula/src/findlib/find_one.c | 4 +- bacula/src/findlib/savecwd.c | 3 +- bacula/src/findlib/savecwd.h | 3 +- bacula/src/jcr.h | 41 +- bacula/src/lib/alist.c | 4 +- bacula/src/lib/alist.h | 4 +- bacula/src/lib/bsys.c | 82 +- bacula/src/lib/devlock.c | 752 +++++++++++++++++++ bacula/src/lib/devlock.h | 95 +++ bacula/src/lib/dlist.h | 3 +- bacula/src/lib/jcr.c | 24 + bacula/src/lib/mem_pool.h | 3 +- bacula/src/lib/message.c | 2 + bacula/src/lib/protos.h | 1 + bacula/src/plugins/fd/example-plugin-fd.c | 56 +- bacula/src/stored/acquire.c | 3 +- bacula/src/stored/append.c | 63 +- bacula/src/stored/job.c | 16 +- bacula/src/stored/lock.c | 5 +- bacula/src/stored/mount.c | 2 +- bacula/src/stored/protos.h | 6 +- bacula/src/stored/record.c | 6 +- bacula/src/stored/record.h | 4 +- bacula/src/stored/status.c | 7 +- bacula/src/stored/stored.c | 3 +- bacula/src/tools/testls.c | 6 +- bacula/src/version.h | 7 +- bacula/src/win32/libwin32/bacula.rc | 6 +- regress/run_multiple | 5 +- regress/scripts/config.guess | 139 ++-- regress/scripts/config.sub | 115 ++- regress/scripts/functions | 6 + regress/scripts/functions.pm | 41 +- regress/scripts/prepare-fake-autochanger.in | 18 +- regress/scripts/regress-win32.pl | 43 ++ regress/tests/accurate-test | 12 +- regress/tests/disk-changer-test | 7 +- regress/tests/query-test | 2 +- regress/tests/verify-cat-test | 4 +- 107 files changed, 2449 insertions(+), 4032 deletions(-) create mode 100644 bacula/scripts/btraceback.mdb delete mode 100644 bacula/src/cats/bdb.c delete mode 100644 bacula/src/cats/bdb.h delete mode 100644 bacula/src/cats/bdb_create.c delete mode 100644 bacula/src/cats/bdb_delete.c delete mode 100644 bacula/src/cats/bdb_find.c delete mode 100644 bacula/src/cats/bdb_get.c delete mode 100644 bacula/src/cats/bdb_list.c delete mode 100644 bacula/src/cats/bdb_update.c delete mode 100644 bacula/src/cats/create_bdb_database.in delete mode 100644 bacula/src/cats/drop_bdb_database.in delete mode 100644 bacula/src/cats/drop_bdb_tables.in delete mode 100644 bacula/src/cats/grant_bdb_privileges.in delete mode 100755 bacula/src/cats/ingres.in delete mode 100644 bacula/src/cats/make_bdb_tables.in delete mode 100644 bacula/src/cats/myingres.c delete mode 100644 bacula/src/cats/myingres.h delete mode 100644 bacula/src/cats/myingres.sc delete mode 100644 bacula/src/cats/myingres.sh create mode 100644 bacula/src/lib/devlock.c create mode 100644 bacula/src/lib/devlock.h diff --git a/bacula/.gitignore b/bacula/.gitignore index bad2b36108..dc96040644 100644 --- a/bacula/.gitignore +++ b/bacula/.gitignore @@ -549,6 +549,7 @@ src/win32/wx-console.res src/win32/debug src/win32/release32 src/win32/release64 +src/win32/dll # src/win32 src/win32*.user diff --git a/bacula/autoconf/bacula-macros/db.m4 b/bacula/autoconf/bacula-macros/db.m4 index 892447f6b2..1eea0772f0 100644 --- a/bacula/autoconf/bacula-macros/db.m4 +++ b/bacula/autoconf/bacula-macros/db.m4 @@ -565,7 +565,7 @@ AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the fi fi SQL_INCLUDE=-I$INGRES_INCDIR - SQL_LFLAGS="-L$INGRES_LIBDIR -lingres" + SQL_LFLAGS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1" SQL_BINDIR=$INGRES_BINDIR SQL_LIB=$INGRES_LIBDIR/libingres.a AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database]) @@ -737,6 +737,8 @@ AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR AC_MSG_RESULT(no) AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval) fi + AC_DEFINE(HAVE_POSTGRESQL) + AC_MSG_RESULT(yes) POSTGRESQL_LFLAGS="-L$POSTGRESQL_LIBDIR -lpq" AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LFLAGS="$POSTGRESQL_LFLAGS -lcrypt"])) SQL_INCLUDE=-I$POSTGRESQL_INCDIR @@ -744,8 +746,6 @@ AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR SQL_BINDIR=$POSTGRESQL_BINDIR SQL_LIB=$POSTGRESQL_LIBDIR/libpq.a - AC_DEFINE(HAVE_POSTGRESQL) - AC_MSG_RESULT(yes) db_found=yes support_postgresql=yes db_type=PostgreSQL diff --git a/bacula/autoconf/config.guess b/bacula/autoconf/config.guess index 278f9e9e07..e3a2116a7d 100755 --- a/bacula/autoconf/config.guess +++ b/bacula/autoconf/config.guess @@ -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 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. -timestamp='2007-07-22' +timestamp='2009-06-10' # 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 @@ -56,8 +56,8 @@ version="\ 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 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -324,6 +324,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -331,7 +334,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -532,7 +548,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) 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 @@ -640,7 +656,7 @@ EOF # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -796,13 +812,19 @@ EOF x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd) + EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -833,7 +855,14 @@ EOF echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -856,40 +885,17 @@ EOF m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips64 - #undef mips64el + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif @@ -921,10 +927,13 @@ EOF EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + 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 ;; + padre:Linux:*:*) + echo sparc-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 @@ -954,8 +963,8 @@ EOF x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; - xtensa:Linux:*:*) - echo xtensa-unknown-linux-gnu + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so @@ -972,17 +981,6 @@ EOF elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -1048,7 +1046,7 @@ EOF i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1092,8 +1090,11 @@ EOF 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 i386. - echo i386-pc-msdosdjgpp + # 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 ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1131,6 +1132,16 @@ EOF 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /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 \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1143,7 +1154,7 @@ EOF rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1206,6 +1217,9 @@ EOF BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1314,6 +1328,9 @@ EOF i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1474,9 +1491,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/bacula/autoconf/config.h.in b/bacula/autoconf/config.h.in index 4eed11add4..3e412b71c3 100644 --- a/bacula/autoconf/config.h.in +++ b/bacula/autoconf/config.h.in @@ -258,6 +258,15 @@ /* Normal acl support */ #undef HAVE_ACL +/* Defines if your system has AFS support */ +#undef HAVE_AFS + +/* Andrew FileSystem ACL support */ +#undef HAVE_AFS_ACL + +/* Define to 1 if you have the header file. */ +#undef HAVE_AFS_STDS_H + /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA @@ -428,6 +437,9 @@ /* Define to 1 if you have the `getmntent' function. */ #undef HAVE_GETMNTENT +/* Define to 1 if you have the `getmntinfo' function. */ +#undef HAVE_GETMNTINFO + /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE diff --git a/bacula/autoconf/config.sub b/bacula/autoconf/config.sub index 1761d8bdf6..eb0389a693 100755 --- a/bacula/autoconf/config.sub +++ b/bacula/autoconf/config.sub @@ -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 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. -timestamp='2007-06-28' +timestamp='2009-06-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -72,8 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -122,6 +122,7 @@ 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* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -152,6 +153,9 @@ case $os in os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -249,13 +253,16 @@ case $basic_machine in | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -268,6 +275,7 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -277,7 +285,7 @@ case $basic_machine in | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | 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 \ @@ -286,7 +294,7 @@ case $basic_machine in | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) + | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) @@ -329,14 +337,17 @@ case $basic_machine in | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -358,20 +369,24 @@ case $basic_machine in | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | 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-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -435,6 +450,10 @@ case $basic_machine in basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -443,10 +462,26 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -514,6 +549,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -668,6 +707,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -813,6 +860,14 @@ case $basic_machine in basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -1021,6 +1076,10 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1096,6 +1155,10 @@ case $basic_machine in basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1134,7 +1197,7 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) @@ -1204,10 +1267,11 @@ case $os in # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1216,7 +1280,7 @@ case $os in | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1356,6 +1420,9 @@ case $os in -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) @@ -1553,7 +1620,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index c01c9c9f5e..36b049af51 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -36,11 +36,13 @@ BACULA=${BACULA:-Bacula} VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +BDB_VERSION=`sed -n -e 's/^.*BDB_VERSION \(.*\)$/\1/p' ${srcdir}/src/cats/cats.h` AC_SUBST(VERSION)dnl AC_SUBST(DATE)dnl AC_SUBST(LSMDATE)dnl AC_SUBST(BACULA)dnl AC_SUBST(post_host)dnl +AC_SUBST(BDB_VERSION)dnl dnl src/lib dnl can be overwritten by specific values from version.h @@ -811,10 +813,10 @@ if test x$support_ipv6 = xyes; then fi TERM_LIB="" -AC_CHECK_HEADER(termcap.h, - [ AC_CHECK_LIB(termcap, tgetent, - [ TERM_LIB="-ltermcap" ], - [ AC_CHECK_LIB(ncurses, tgetent, [ TERM_LIB="-lncurses" ]) +AC_CHECK_HEADER(curses.h, + [ AC_CHECK_LIB(ncurses, tgetent, + [ TERM_LIB="-lncurses" ], + [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ]) ]) ], [ AC_CHECK_HEADERS(curses.h) @@ -1197,6 +1199,7 @@ else OPENSSL_LIBS="" OPENSSL_INC="" fi +AC_MSG_RESULT([$support_tls]) if test "$support_tls" = "no"; then OPENSSL_LIBS="" @@ -1207,7 +1210,6 @@ if test "$support_crypto" = "no"; then OPENSSL_INC="" fi -AC_MSG_RESULT([$support_tls]) AC_SUBST(OPENSSL_LIBS) AC_SUBST(OPENSSL_INC) @@ -1806,6 +1808,11 @@ LIBS="${saved_LIBS}" AC_SUBST(uncomment_dbi) +dnl For Ingres always enable batch inserts. +if test x$DB_TYPE = xingres; then + support_batch_insert=yes +fi + if test $support_batch_insert = yes ; then AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled]) fi @@ -2389,6 +2396,7 @@ AC_FUNC_STRFTIME AC_FUNC_VPRINTF AC_FUNC_ALLOCA AC_FUNC_GETMNTENT +AC_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)]) AC_FUNC_CLOSEDIR_VOID AC_FUNC_SETPGRP dnl check for BSD setpgrp. # AC_FUNC_FNMATCH dnl use local version @@ -2398,12 +2406,89 @@ AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"]) AC_CHECK_LIB(sun, getpwnam) AC_CHECK_HEADERS(zlib.h) -AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"]) +AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"]) have_zlib=no -if test x$FDLIBS = x-lz; then +if test x$ZLIBS = x-lz; then AC_DEFINE(HAVE_LIBZ) have_zlib=yes fi +AC_SUBST(ZLIBS) + +dnl +dnl Check if we have AFS on this system +dnl +AFS_CFLAGS="" +AFS_LIBS="" +support_afs=auto +AC_ARG_ENABLE(afs, + AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]), + [ + if test x$enableval = xyes; then + support_afs=yes + elif test x$enableval = xno; then + support_afs=no + fi + ] +) + +have_afs=no +if test x$support_afs = xyes -o x$support_afs = xauto; then + AC_ARG_WITH(afsdir, + AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]), + with_afsdir=$withval + ) + + dnl + dnl Search in standard places, or --with-afsdir not specified + dnl + if test x$with_afsdir = x; then + for root in /usr /usr/local; do + if test -d ${root}/include/afs/ ; then + with_afsdir=${root} + break + fi + done + fi + + AFS_CFLAGS="-I${with_afsdir}/include" + + saved_CFLAGS="${CFLAGS}" + CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}" + + AC_CHECK_HEADERS(afs/stds.h) + + CFLAGS="${saved_CFLAGS}" + + dnl + dnl See if we can find a libsys with the pioctl symbol in there + dnl + for dir in ${with_afsdir}/lib ${with_afsdir}/lib/afs + do + for arch_type in .a .so + do + A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} | grep pioctl` + pkg=$? + if test $pkg = 0; then + have_afs=yes + AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util.a" + break + fi + done + done + + if test x$support_afs = xyes -a $have_afs != yes; then + AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found, + please either load the afs libraries or rerun configure without --enable-afs]) + else + if test $have_afs = yes; then + AC_DEFINE([HAVE_AFS],1,[Defines if your system has AFS support]) + AC_DEFINE([HAVE_AFS_ACL],1,[Andrew FileSystem ACL support]) + fi + fi +fi + +AC_SUBST(AFS_CFLAGS) +AC_SUBST(AFS_LIBS) dnl dnl Check for ACL support and libraries @@ -2431,7 +2516,18 @@ if test x$support_acl = xyes -o x$support_acl = xauto; then AC_CHECK_LIB(acl, acl_get_file, [ have_acl=yes; - FDLIBS="-lacl $FDLIBS" + if test $have_afs = yes; then + dnl + dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!! + dnl + if test -d /usr/lib64/; then + FDLIBS="-L/usr/lib64 -lacl $FDLIBS" + else + FDLIBS="-L/usr/lib -lacl $FDLIBS" + fi + else + FDLIBS="-lacl $FDLIBS" + fi ], [ AC_CHECK_LIB(pacl, acl_get_file, [ @@ -2921,7 +3017,8 @@ suse) platforms/suse/Makefile \ platforms/suse/bacula-fd \ platforms/suse/bacula-sd \ - platforms/suse/bacula-dir" + platforms/suse/bacula-dir \ + platforms/suse/bacula" ;; suse5) DISTNAME=suse @@ -3061,12 +3158,6 @@ AC_OUTPUT([autoconf/Make.common \ src/cats/drop_ingres_database \ src/cats/sqlite \ src/cats/mysql \ - src/cats/create_bdb_database \ - src/cats/update_bdb_tables \ - src/cats/make_bdb_tables \ - src/cats/grant_bdb_privileges \ - src/cats/drop_bdb_tables \ - src/cats/drop_bdb_database \ src/cats/create_bacula_database \ src/cats/update_bacula_tables \ src/cats/grant_bacula_privileges \ @@ -3129,6 +3220,9 @@ cd .. c=updatedb chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11 chmod 755 $c/update_postgresql_tables_10_to_11 +chmod 755 $c/update_mysql_tables_11_to_12 $c/update_sqlite3_tables_11_to_12 +chmod 755 $c/update_postgresql_tables_11_to_12 + c=src/cats @@ -3260,6 +3354,7 @@ Configuration on `date`: build-dird: ${build_dird} build-stored: ${build_stored} Plugin support: ${have_plugins} + AFS support: ${have_afs} ACL support: ${have_acl} XATTR support: ${have_xattr} Python support: ${support_python} ${PYTHON_LIBS} diff --git a/bacula/kernstodo b/bacula/kernstodo index 4300f23613..44f576c7c9 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -37,6 +37,14 @@ Document: Priority: ================ +- Add external command to lookup hostname (eg nmblookup timmy-win7) +nmblookup gato +querying gato on 127.255.255.255 +querying gato on 192.168.1.255 + 192.168.1.8 gato<00> + 192.168.1.11 gato<00> + 192.168.1.8 gato<00> + 192.168.1.11 gato<00> - Possibly allow SD to spool even if a tape is not mounted. - How to sync remote offices. - Windows Bare Metal diff --git a/bacula/platforms/rpm/bacula-mtx.spec b/bacula/platforms/rpm/bacula-mtx.spec index 81709f5e9c..5b260cea60 100644 --- a/bacula/platforms/rpm/bacula-mtx.spec +++ b/bacula/platforms/rpm/bacula-mtx.spec @@ -52,7 +52,7 @@ Distribution: Bacula Bat Source: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz # define the basic package description -%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +%define blurb Bacula - The Leading Open Source Backup Solution. %define blurb2 Bacula is a set of computer programs that permit you (or the system %define blurb3 administrator) to manage backup, recovery, and verification of computer %define blurb4 data across a network of computers of different kinds. In technical terms, diff --git a/bacula/platforms/rpm/bacula.spec b/bacula/platforms/rpm/bacula.spec index 12d99d64e3..2a235565c4 100644 --- a/bacula/platforms/rpm/bacula.spec +++ b/bacula/platforms/rpm/bacula.spec @@ -236,7 +236,7 @@ Source2: bacula-2.2.7-postgresql.patch Source3: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz # define the basic package description -%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +%define blurb Bacula - The Leading Open Source Backup Solution. %define blurb2 Bacula is a set of computer programs that permit you (or the system %define blurb3 administrator) to manage backup, recovery, and verification of computer %define blurb4 data across a network of computers of different kinds. In technical terms, diff --git a/bacula/projects b/bacula/projects index 4342251e49..a7334e20bd 100644 --- a/bacula/projects +++ b/bacula/projects @@ -1,51 +1,52 @@ Projects: Bacula Projects Roadmap - Status updated 14 Jun 2009 + Status updated 25 February 2010 Summary: * => item complete - Item 1: Ability to restart failed jobs -*Item 2: 'restore' menu: enter a JobId, automatically select dependents - Item 3: Scheduling syntax that permits more flexibility and options - Item 4: Data encryption on storage daemon -*Item 5: Deletion of disk Volumes when pruned (partial -- truncate when pruned) -*Item 6: Implement Base jobs - Item 7: Add ability to Verify any specified Job. - Item 8: Improve Bacula's tape and drive usage and cleaning management - Item 9: Allow FD to initiate a backup -*Item 10: Restore from volumes on multiple storage daemons - Item 11: Implement Storage daemon compression - Item 12: Reduction of communications bandwidth for a backup - Item 13: Ability to reconnect a disconnected comm line - Item 14: Start spooling even when waiting on tape -*Item 15: Enable/disable compression depending on storage device (disk/tape) - Item 16: Include all conf files in specified directory - Item 17: Multiple threads in file daemon for the same job - Item 18: Possibilty to schedule Jobs on last Friday of the month - Item 19: Include timestamp of job launch in "stat clients" output -*Item 20: Cause daemons to use a specific IP address to source communications - Item 21: Message mailing based on backup types - Item 22: Ability to import/export Bacula database entities -*Item 23: "Maximum Concurrent Jobs" for drives when used with changer device - Item 24: Implementation of running Job speed limit. - Item 25: Add an override in Schedule for Pools based on backup types - Item 26: Automatic promotion of backup levels based on backup size - Item 27: Allow inclusion/exclusion of files in a fileset by creation/mod times - Item 28: Archival (removal) of User Files to Tape - Item 29: An option to operate on all pools with update vol parameters - Item 30: Automatic disabling of devices -*Item 31: List InChanger flag when doing restore. - Item 32: Ability to defer Batch Insert to a later time - Item 33: Add MaxVolumeSize/MaxVolumeBytes statement to Storage resource - Item 34: Enable persistent naming/number of SQL queries -*Item 35: Port bat to Win32 - Item 36: Bacula Dir, FD and SD to support proxies - Item 37: Add Minumum Spool Size directive - Item 38: Backup and Restore of Windows Encrypted Files using Win raw encryption - Item 39: Implement an interface between Bacula and Amazon's S3. - Item 40: Convert Bacula existing tray monitor on Windows to a stand alone program +Item 1: Ability to restart failed jobs +Item 2: Scheduling syntax that permits more flexibility and options +Item 3: Data encryption on storage daemon +Item 4: Add ability to Verify any specified Job. +Item 5: Improve Bacula's tape and drive usage and cleaning management +Item 6: Allow FD to initiate a backup +Item 7: Implement Storage daemon compression +Item 8: Reduction of communications bandwidth for a backup +Item 9: Ability to reconnect a disconnected comm line +Item 10: Start spooling even when waiting on tape +Item 11: Include all conf files in specified directory +Item 12: Multiple threads in file daemon for the same job +Item 13: Possibilty to schedule Jobs on last Friday of the month +Item 14: Include timestamp of job launch in "stat clients" output +Item 15: Message mailing based on backup types +Item 16: Ability to import/export Bacula database entities +Item 17: Implementation of running Job speed limit. +Item 18: Add an override in Schedule for Pools based on backup types +Item 19: Automatic promotion of backup levels based on backup size +Item 20: Allow FileSet inclusion/exclusion by creation/mod times +Item 21: Archival (removal) of User Files to Tape +Item 22: An option to operate on all pools with update vol parameters +Item 23: Automatic disabling of devices +Item 24: Ability to defer Batch Insert to a later time +Item 25: Add MaxVolumeSize/MaxVolumeBytes to Storage resource +Item 26: Enable persistent naming/number of SQL queries +Item 27: Bacula Dir, FD and SD to support proxies +Item 28: Add Minumum Spool Size directive +Item 29: Handle Windows Encrypted Files using Win raw encryption +Item 30: Implement a Storage device like Amazon's S3. +Item 31: Convert tray monitor on Windows to a stand alone program +Item 32: Relabel disk volume after recycling +Item 33: Command that releases all drives in an autochanger +Item 34: Run bscan on a remote storage daemon from within bconsole. +Item 35: Implement a Migration job type that will create a reverse +Item 36: Job migration between different SDs +Item 37: Concurrent spooling and despooling withini a single job. +Item 39: Extend the verify code to make it possible to verify +Item 40: Separate "Storage" and "Device" in the bacula-dir.conf +Item 41: Least recently used device selection for tape drives in autochanger. + Item 1: Ability to restart failed jobs Date: 26 April 2009 @@ -68,34 +69,7 @@ Item 1: Ability to restart failed jobs volume of data or files stored on Volume before enabling. -Item 2: 'restore' menu: enter a JobId, automatically select dependents -Origin: Graham Keeling (graham@equiinet.com) -Date: 13 March 2009 -Status: Done in 3.0.2 - -What: Add to the bconsole 'restore' menu the ability to select a job - by JobId, and have bacula automatically select all the - dependent jobs. - - Why: Currently, you either have to... - - a) laboriously type in a date that is greater than the date of the - backup that you want and is less than the subsequent backup (bacula - then figures out the dependent jobs), or - b) manually figure out all the JobIds that you want and laboriously - type them all in. It would be extremely useful (in a programmatical - sense, as well as for humans) to be able to just give it a single JobId - and let bacula do the hard work (work that it already knows how to do). - - Notes (Kern): I think this should either be modified to have Bacula - print a list of dates that the user can choose from as is done in - bwx-console and bat or the name of this command must be carefully - chosen so that the user clearly understands that the JobId is being - used to specify what Job and the date to which he wishes the restore to - happen. - - -Item 3: Scheduling syntax that permits more flexibility and options +Item 2: Scheduling syntax that permits more flexibility and options Date: 15 December 2006 Origin: Gregory Brauer (greg at wildbrain dot com) and Florian Schnabel @@ -201,7 +175,7 @@ Item 3: Scheduling syntax that permits more flexibility and options jobs (via Schedule syntax) into this. -Item 4: Data encryption on storage daemon +Item 3: Data encryption on storage daemon Origin: Tobias Barth Date: 04 February 2009 Status: new @@ -222,67 +196,7 @@ Item 4: Data encryption on storage daemon http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg28860.html -Item 5: Deletion of disk Volumes when pruned - Date: Nov 25, 2005 - Origin: Ross Boylan (edited - by Kern) - Status: Truncate operation implemented in 3.1.4 - - What: Provide a way for Bacula to automatically remove Volumes - from the filesystem, or optionally to truncate them. - Obviously, the Volume must be pruned prior removal. - - Why: This would allow users more control over their Volumes and - prevent disk based volumes from consuming too much space. - - Notes: The following two directives might do the trick: - - Volume Data Retention =