From aa18d1e362bf31ddf946c09aab8a124bb9e64f08 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@91ce42f0-d328-0410-95d8-f526ca767f89> Date: Tue, 15 Nov 2005 11:41:40 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'Release-1.38.1'. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/tags/Release-1.38.1@2592 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/.cvsignore | 61 +- bacula/ChangeLog | 26 + bacula/ReleaseNotes | 14 +- bacula/autoconf/aclocal.m4 | 2 +- bacula/kes-1.37 | 1408 +++++++++++++++++ bacula/kes-1.39 | 23 - bacula/nb-1.37 | 93 ++ bacula/nb-1.38 | 6 - bacula/src/.cvsignore | 1 - bacula/src/cats/update_sqlite_tables.in | 2 +- bacula/src/console/.cvsignore | 1 - bacula/src/dird/ua_cmds.c | 1 + bacula/src/filed/restore.c | 18 +- bacula/src/findlib/bfile.c | 225 +-- bacula/src/findlib/bfile.h | 47 +- bacula/src/findlib/find.h | 16 +- bacula/src/gnome2-console/.cvsignore | 1 - bacula/src/lib/Makefile.in | 14 +- bacula/src/lib/bsnprintf.c | 913 ----------- bacula/src/lib/bsys.c | 3 - bacula/src/stored/askdir.c | 8 +- bacula/src/stored/bextract.c | 2 +- bacula/src/stored/dev.c | 11 +- bacula/src/version.h | 8 +- bacula/updatedb/kes-1.38 | 19 + regress/.cvsignore | 11 - regress/Makefile.in | 72 - regress/README | 98 -- regress/all-non-root-2tape-tests | 12 - regress/all-non-root-tape-tests | 22 - regress/all-non-root-tests | 35 - regress/all-root-tests | 11 - regress/all-tape-and-file-tests | 10 - regress/all-tests | 8 - regress/config | 9 - regress/do_all | 14 - regress/do_all_tapes | 3 - regress/do_file | 6 - regress/endtime | 12 - regress/file | 2 - regress/freebsd.conf | 26 - regress/kern.conf | 28 - regress/misc-tests | 2 - regress/prototype.conf | 46 - regress/run | 3 - regress/scripts/.cvsignore | 22 - regress/scripts/bacula-dir-tape.conf.in | 163 -- regress/scripts/bacula-sd-2drive.conf.in | 75 - regress/scripts/bacula-sd-2tape.conf.in | 61 - regress/scripts/bacula-sd-tape.conf.in | 54 - regress/scripts/bacula-sd.conf.in | 74 - regress/scripts/check_for_zombie_jobs | 51 - regress/scripts/cleanup | 19 - regress/scripts/cleanup-2drive.in | 44 - regress/scripts/cleanup-2tape.in | 30 - regress/scripts/cleanup-tape.in | 8 - regress/scripts/copy-2drive-confs | 10 - regress/scripts/copy-2tape-confs | 10 - regress/scripts/copy-confs | 5 - regress/scripts/copy-tape-confs | 6 - regress/scripts/copy-test-confs | 5 - regress/scripts/copy-testa-confs | 5 - regress/scripts/copy-win32-confs | 6 - regress/scripts/do_sed | 68 - regress/scripts/exclude-dev-test | 5 - regress/scripts/exclude-etc-test | 1 - regress/scripts/exclude-lib-test | 5 - regress/scripts/flist | 22 - regress/scripts/freebsd_tape_options | 8 - regress/scripts/linux_osst_tape_options | 7 - regress/scripts/linux_tape_options | 1 - regress/scripts/new-test-bacula-dir.conf.in | 312 ---- regress/scripts/prepare-two-tapes.in | 13 - regress/scripts/regress-config | 23 - regress/scripts/setup | 44 - regress/scripts/test-bacula-dir.conf.in | 312 ---- regress/scripts/test-bacula-fd.conf.in | 33 - regress/scripts/test-bacula-sd.conf.in | 107 -- regress/scripts/test-console.conf.in | 10 - regress/scripts/testa-bacula-dir.conf.in | 149 -- regress/scripts/win32-bacula-dir-tape.conf.in | 160 -- regress/scripts/win32-bacula-sd-tape.conf | 54 - regress/starttime | 6 - regress/tape | 2 - regress/tests/.cvsignore | 2 - regress/tests/2drive-incremental-2tape | 117 -- regress/tests/auto-label-test | 95 -- regress/tests/backup-bacula-tape | 138 -- regress/tests/backup-bacula-test | 93 -- regress/tests/bextract-test | 79 - regress/tests/bscan-tape | 178 --- regress/tests/bscan-test | 107 -- regress/tests/bsr-opt-test | 96 -- regress/tests/btape-fill-full-tape | 34 - regress/tests/btape-fill-tape | 39 - regress/tests/compressed-test | 67 - regress/tests/concurrent-jobs-test | 83 - regress/tests/dev-test-root | 85 - regress/tests/differential-test | 128 -- regress/tests/eot-fail-tape | 62 - regress/tests/etc-test-root | 70 - regress/tests/fixed-block-size-tape | 84 - regress/tests/four-concurrent-jobs-tape | 80 - regress/tests/four-concurrent-jobs-test | 96 -- regress/tests/four-jobs-tape | 175 -- regress/tests/four-jobs-test | 133 -- regress/tests/incremental-2tape | 105 -- regress/tests/incremental-tape | 82 - regress/tests/incremental-test | 165 -- regress/tests/lib-tape-root | 67 - regress/tests/lib-test-root | 76 - regress/tests/query-test | 130 -- regress/tests/recycle-test | 98 -- regress/tests/relabel-tape | 121 -- regress/tests/restore-by-file-tape | 120 -- regress/tests/restore-by-file-test | 72 - regress/tests/restore-disk-seek-test | 109 -- regress/tests/restore2-by-file-test | 65 - regress/tests/six-vol-test | 72 - regress/tests/small-file-size-tape | 61 - regress/tests/span-vol-test | 88 -- regress/tests/sparse-compressed-test | 62 - regress/tests/sparse-test | 64 - regress/tests/test0 | 3 - regress/tests/truncate-bug-tape | 87 - regress/tests/two-jobs-test | 93 -- regress/tests/two-vol-test | 78 - regress/tests/two-volume-tape | 80 - regress/tests/usr-tape-root | 62 - regress/tests/verify-vol-test | 76 - regress/tests/weird-files-test | 95 -- regress/tests/weird-files2-test | 112 -- regress/tests/win32-backup-tape | 72 - regress/weird-files.tar.gz | Bin 1699 -> 0 bytes 134 files changed, 1687 insertions(+), 8012 deletions(-) create mode 100644 bacula/kes-1.37 delete mode 100644 bacula/kes-1.39 create mode 100644 bacula/nb-1.37 delete mode 100644 bacula/nb-1.38 delete mode 100644 bacula/src/lib/bsnprintf.c create mode 100644 bacula/updatedb/kes-1.38 delete mode 100644 regress/.cvsignore delete mode 100644 regress/Makefile.in delete mode 100644 regress/README delete mode 100755 regress/all-non-root-2tape-tests delete mode 100755 regress/all-non-root-tape-tests delete mode 100755 regress/all-non-root-tests delete mode 100755 regress/all-root-tests delete mode 100755 regress/all-tape-and-file-tests delete mode 100755 regress/all-tests delete mode 100755 regress/config delete mode 100755 regress/do_all delete mode 100755 regress/do_all_tapes delete mode 100755 regress/do_file delete mode 100755 regress/endtime delete mode 100755 regress/file delete mode 100644 regress/freebsd.conf delete mode 100644 regress/kern.conf delete mode 100644 regress/misc-tests delete mode 100644 regress/prototype.conf delete mode 100755 regress/run delete mode 100644 regress/scripts/.cvsignore delete mode 100644 regress/scripts/bacula-dir-tape.conf.in delete mode 100644 regress/scripts/bacula-sd-2drive.conf.in delete mode 100644 regress/scripts/bacula-sd-2tape.conf.in delete mode 100644 regress/scripts/bacula-sd-tape.conf.in delete mode 100644 regress/scripts/bacula-sd.conf.in delete mode 100755 regress/scripts/check_for_zombie_jobs delete mode 100755 regress/scripts/cleanup delete mode 100755 regress/scripts/cleanup-2drive.in delete mode 100755 regress/scripts/cleanup-2tape.in delete mode 100755 regress/scripts/cleanup-tape.in delete mode 100755 regress/scripts/copy-2drive-confs delete mode 100755 regress/scripts/copy-2tape-confs delete mode 100755 regress/scripts/copy-confs delete mode 100755 regress/scripts/copy-tape-confs delete mode 100755 regress/scripts/copy-test-confs delete mode 100755 regress/scripts/copy-testa-confs delete mode 100755 regress/scripts/copy-win32-confs delete mode 100755 regress/scripts/do_sed delete mode 100644 regress/scripts/exclude-dev-test delete mode 100644 regress/scripts/exclude-etc-test delete mode 100644 regress/scripts/exclude-lib-test delete mode 100644 regress/scripts/flist delete mode 100644 regress/scripts/freebsd_tape_options delete mode 100644 regress/scripts/linux_osst_tape_options delete mode 100644 regress/scripts/linux_tape_options delete mode 100644 regress/scripts/new-test-bacula-dir.conf.in delete mode 100755 regress/scripts/prepare-two-tapes.in delete mode 100755 regress/scripts/regress-config delete mode 100755 regress/scripts/setup delete mode 100644 regress/scripts/test-bacula-dir.conf.in delete mode 100644 regress/scripts/test-bacula-fd.conf.in delete mode 100644 regress/scripts/test-bacula-sd.conf.in delete mode 100644 regress/scripts/test-console.conf.in delete mode 100644 regress/scripts/testa-bacula-dir.conf.in delete mode 100644 regress/scripts/win32-bacula-dir-tape.conf.in delete mode 100644 regress/scripts/win32-bacula-sd-tape.conf delete mode 100755 regress/starttime delete mode 100755 regress/tape delete mode 100644 regress/tests/.cvsignore delete mode 100755 regress/tests/2drive-incremental-2tape delete mode 100755 regress/tests/auto-label-test delete mode 100755 regress/tests/backup-bacula-tape delete mode 100755 regress/tests/backup-bacula-test delete mode 100755 regress/tests/bextract-test delete mode 100755 regress/tests/bscan-tape delete mode 100755 regress/tests/bscan-test delete mode 100755 regress/tests/bsr-opt-test delete mode 100755 regress/tests/btape-fill-full-tape delete mode 100755 regress/tests/btape-fill-tape delete mode 100755 regress/tests/compressed-test delete mode 100755 regress/tests/concurrent-jobs-test delete mode 100755 regress/tests/dev-test-root delete mode 100755 regress/tests/differential-test delete mode 100755 regress/tests/eot-fail-tape delete mode 100755 regress/tests/etc-test-root delete mode 100755 regress/tests/fixed-block-size-tape delete mode 100755 regress/tests/four-concurrent-jobs-tape delete mode 100755 regress/tests/four-concurrent-jobs-test delete mode 100755 regress/tests/four-jobs-tape delete mode 100755 regress/tests/four-jobs-test delete mode 100755 regress/tests/incremental-2tape delete mode 100755 regress/tests/incremental-tape delete mode 100755 regress/tests/incremental-test delete mode 100755 regress/tests/lib-tape-root delete mode 100755 regress/tests/lib-test-root delete mode 100755 regress/tests/query-test delete mode 100755 regress/tests/recycle-test delete mode 100755 regress/tests/relabel-tape delete mode 100755 regress/tests/restore-by-file-tape delete mode 100755 regress/tests/restore-by-file-test delete mode 100755 regress/tests/restore-disk-seek-test delete mode 100755 regress/tests/restore2-by-file-test delete mode 100755 regress/tests/six-vol-test delete mode 100755 regress/tests/small-file-size-tape delete mode 100755 regress/tests/span-vol-test delete mode 100755 regress/tests/sparse-compressed-test delete mode 100755 regress/tests/sparse-test delete mode 100755 regress/tests/test0 delete mode 100755 regress/tests/truncate-bug-tape delete mode 100755 regress/tests/two-jobs-test delete mode 100755 regress/tests/two-vol-test delete mode 100755 regress/tests/two-volume-tape delete mode 100755 regress/tests/usr-tape-root delete mode 100755 regress/tests/verify-vol-test delete mode 100755 regress/tests/weird-files-test delete mode 100755 regress/tests/weird-files2-test delete mode 100755 regress/tests/win32-backup-tape delete mode 100644 regress/weird-files.tar.gz diff --git a/bacula/.cvsignore b/bacula/.cvsignore index d447ee6f7a..9d9a15180d 100644 --- a/bacula/.cvsignore +++ b/bacula/.cvsignore @@ -1,6 +1,13 @@ +*.txt +wxconsole 1 2 +txt +set-gnome2 +set-gnome1.4 +kerns-gprof-config autom4te.cache +Makefile bacula btraceback config.cache @@ -9,57 +16,47 @@ config.out config.status configure.lineno console -console.log -console.sum diff fd gconsole +kerns-console.conf +kerns-dird.conf +kerns-filed.conf +kerns-gnome-console.conf +kerns-mysql-config +kerns-sqlite-config +kerns-stored.conf kernsconfig kernsconfignodb -kerns-console.conf kernsdesign -kerns-dird.conf kernsdisclaimers kernsdone -kerns-filed.conf kernsfloppymount -kerns-gnome-console.conf -kerns-gprof-config -kerns-mysql-config -kerns-nopython-conf kernsnosqlconfig kernsolarisconfig -kerns-postgresql-config kernsproductionconfig -kerns-sqlite-config -kerns-stored.conf kernssunproductionconfig kernswinconfig kernswinproductionconfig -Makefile -newdb -newtape -run -run_clean -run_clean_tape -run_two -run_two_broken -set-gnome1.4 -set-gnome2 startit startmysql -startpostgre stopit stopmysql +console.log +console.sum +zapall +zaptapes stoppostgre -test.out -test-tape +startpostgre +kerns-postgresql-config +run +run_clean +run_two_broken +run_two +run_clean_tape +newdb +kerns-nopython-conf +newtape time.py time.pyc -txt -*.txt -wxconsole -zapall -zaptapes -kerns-pgsql-config -fake-mtx +test.out diff --git a/bacula/ChangeLog b/bacula/ChangeLog index 9c0a48ce2f..49a92b580e 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,6 +1,32 @@ Changes to 1.38.1: +- Apply SunOS patch for ACLs submitted by David Duchscher. +- Make sure to set storage before trying to set drive. +- Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +- Make sure when we do a mount to unblock the device even + if the drive could not be opened. +- Merge Scott's new spec files. +- Add doc on setting up Win32 environment variable supplied + by Kees van den Broek. +- Turn off API debug output unless debug set to avoid confusing + the user. +- Add Solaris ACL detection in configure.in as supplied by + Attila Fulop. +- Implement "autochanger drives" protocol so that Dir knows + how many drives an autochanger has. +- Do not request drive number in label, ... if only one drive. +- Turn off debug code. +- Fix update slots to clear slot number of every slot before + setting it. This fixes (I believe) bug #471 +- Make unmount unload the autochanger slot. +- Modify open() on mount to be read-only and non-blocking, + otherwise the mount can block for a long time. +- Make a few error message numbers unique. +- Make a few error messages more correct. +- Apply patch from Thorsten to fix Win98 stat() command. - Remove delete of CVS from all makefiles. - Fix seg fault when clicking on Add button in wx-console restore panel. Bug #470. diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index ec9badc5e8..a406b889b1 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -2,11 +2,19 @@ Release Notes for Bacula 1.38.1 Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) - 20,440 additional lines of code since version 1.36.3 + 20,440 additional lines of code since version 1.36.3 Changes since 1.38.0: -- Fix autostart install for FreeBSD. -- Fix several problems with PostgreSQL scripts. +- Corrected ACL for Solaris (David Duchscher and Attila Fulop). +- Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +- Unmount command now unloads autochanger. +- Fix hang in FD (Martin Simmons) +- Fix Win98 stat() problem in FD (Thorsten Engel) +- Fix update slots which did not clear missing tapes. +- Fix autostart install for FreeBSD (user reported) +- Fix several problems with PostgreSQL scripts (Eric Bollinger) - Critical: allow restore of the first file of non-portable Win32 backup. - Important: with muliple concurrent jobs the autochanger could get confused because of a missing mutex. diff --git a/bacula/autoconf/aclocal.m4 b/bacula/autoconf/aclocal.m4 index 94de0926c6..8458af0159 100644 --- a/bacula/autoconf/aclocal.m4 +++ b/bacula/autoconf/aclocal.m4 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.9.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. diff --git a/bacula/kes-1.37 b/bacula/kes-1.37 new file mode 100644 index 0000000000..6a7697f74c --- /dev/null +++ b/bacula/kes-1.37 @@ -0,0 +1,1408 @@ + Technical notes on version 1.37 + Kern Sibbald + +General: + +Changes to 1.37.42: +26Oct05 +- Return HARDEOF status from bnet_recv() if bsock NULL rather + than aborting. +- Don't overwrite pthreadVCE.dll or msvcr71.dll during Win32 + install. +- Update README.win32 instructions. +25Oct05 +- Make db_get_job_record() return Name so that the ACL + can be checked. Fixes bug #446 +22Oct05 +- Insure that all the SD tools init the Autochanger + resources. + +Changes to 1.37.41: +22Oct05 +- Print error message if no Changer Command found. +- Apply fix from Martin Simmons to clear structure before + using it in IPADDR -- fixes a bind() bug on AIX. +14Oct05 +- Add NetBSD fstype patch from Geert Hendrickx +- Update num_parts only when writing to DVD. +13Oct05 +- Fix error conditions in bpipe.c DVD routine (terminate buffer). +- Use a bigger buffer 32K as suggested by Arno in bpipe.c. +- Increase dvd mount timeout with patch from Arno. +- Modify DVD code so that it keeps a state flag that indicates + when the freespace variable is valid. freespace_errno, now has + either 0 or an errno. There are no negative errnos. +- Create is_freespace_ok() to test state flag. Also, set_freespace_ok() + and clear_freespace_ok(). Modify code to use them. This + simplifies a bit the logic of the freespace code. +- Edit 64bit debug values correctly in dvd.c +- Fix %e variable to check num_parts rather than part. +- Use static buffer instead of static buffers for FI_to_ascii() + and stream_to_ascii() debug routines in SD. This is to prevent + possible race conditions between two threads (possibly Phil's + unmount problem). +12Oct05 +- Add a .dir command that separates arguments with commas. It + is intended to be used in the tree routines to get a + machine readable output for GUIs like wx-console. +- Make configure set dvd-handler to have execute permission. +- Install dvd-handler as is done for other dvd-xxx scripts. +- In block.c call dvd_write_part() to write last part rather + than dvd_open_next_part(). +- Prefix some DVD subroutines with dvd_ +11Oct05 +- Add extra debug to Update media error for VolFiles decrease + error. +- Do not update dev->file on set_ateof() for non-tape. +10Oct05 +- Mark DVD volume in error if part cannot be written. +- If a DVD is mounted, unmount it before asking operator + to mount an different one. +- Add Arno's dvd-handler script to the scripts directory and + integrate with configure. It replaces both existing scripts. +- Make default schedule start at 23:10 +- Implement gui release in Makefile. It creates two .tar.gz + bacula-web and bimagemgr. +08Oct05 +- Add README plus tar release to gui project. +- Manual documentation +- Tweak bacula.man doc +- Add PRAGMA synchronous = NORMAL; to SQLite3 tables. This + speeds up SQLite3 so it is only about 10% slower than version + 2.xx. Thanks to Russell Howe for this tip. +- Add msvcr71.dll to pebuilder .inf file as it is needed by + Bacula FD. Thanks to Brandon for passing this fix to Scott. +05Oct05 +- Add VolumePurged method to Python JobEvents class. Fixes + bug #428 (I think). +- Add JobId index to File table for MySQL. +- Correct tray-monitor crash of bacula-dir. qstatus_cmd() + code referenced the wrong pointer. Fixes bug #438. +- Add bacualnovss.mak file from Martin. +- Remove Pool from restore string in wbrestorepanel.cpp. Patch + from user for bug #433. +- Correct code in wbrestorpanel.cpp with misplaced parens. Patch + from user for bug #431 +- Correct printing filenames/date/times in wbrestorepanel.cpp due to bad + column alignment. Patch from user for bug #432. + +Changes to 1.37.40: +01Oct05 +- Add fix to compat.h supplied by Martin Simmons that permits + building the Win32 FD without VSS. +29Sep05 +- Bring cats/bdb_x.c routines up to version 1.37 (return values + are different). +28Sep05 +- Integrate libwrap patch from Szechuan Death. They should + also fix bug 423. +- Clean up patches directory for next release. +- Add PS variable in bacula.in script as recommended by a user. + "Tom Boyda" +- Correct mtx-changer.in so it only creates a temp file when + actually needed. +- Add patch supplied by user in a bug report to fix gnome2 + console buttons. +- Add patch from Peter Eriksson to correct + NLS error in tray-monitor.c +26Sep05 +- Add code to catalog_update to detect NULL db pointer. +- Remove char *msg argument from catalog_request and + catalog_update(). +24Sep05 +- Fix mode change open in btape.c +- Use nonblocking opens on Linux only. +- Move set_blocking code for tapes into method to + simplify main line code. +- Cleanup the code for ensuring we advance tape on fsf. + This should fix IBM problems -- patch from Adam Thorton + was very helpful. +- Remove test for BMT_EOD in fixup_device... this eliminates + need for status_dev() routine. +- Before doing label ensure device is in read-write mode. + +Changes to 1.37.39: +20Sep05 +- Tweak daemon.c berrno, copyright. +19Sep05 +- Fix handling of temp file in mtx_changer.in, reported as + a security bug, but it is not really. Bug #422 +- Fix security problem of handling temp file in randpass. + Bug #422. +- During label/relabel, add new_volume to VOLRES list in SD. +18Sep05 +- Apply Landon's patch for the TLS ANS1 API change. +- Remove old code. +- Make single exit path in first_open_device(). +17Sep05 +- Make new_volume walk through all Vols looking for dev + to release. +16Sep05 +- Make "quit" command in console always allowed. +- Remove the storage list between each console command to + keep Dir from remembering a previously selected SD. +- Add code to reservation VOLRES subroutines to try to ensure + we don't end up with two Volumes on the same drive. +- Simplify the mutex code in VOLRES a bit to reduce the chance + of error. +15Sep05 +- Apply Nicolas' dvd-freespace.in patch. +- Make sure SQL table names are not translated. +- Eliminate incorrect message saying barcodes not + found in "label barcodes" -- fixes bug report. + +Changes to 1.37.38: +07Sep05 +- Add ability to have passwords on backup of catalog as + alternate 3rd argument. Submitted by Andrew Ford + +- Turn off TapeAlert by default if user enables a Device + and add a note to install mtx. +04Sep05 +- Fix out of order volumes during restore. + +Changes to 1.37.37: +30Aug05 +- Final tweaks to build Win32. +- Enable debug code in ua_label.c +- Remove devices from the Volume list even if no + Volume is in drive. Hopefully this fixes Arno's problem + of multiple volumes listed in the same drive. +28Aug05 +- Apply Landon's patch for TLS default values. +- Correct LOCALEDIR problem in build of Win32 +- Correct ssize_t problem in build of Win32 +- Add code to llprint pools and volumes to debug next item. +- From bug report, fix resetting Pool defaults in Volume. It + was a typo "Max" was missing in several places. +- Don't allow translation of database Volume Status values. +24Aug05 +- Ensure that the drive is closed before calling the + mtx-changer script so that the script can access the drive. +- Add drive name to reserved Volume list printout in SD. +23Aug05 +- Fix bug in acquire.c that incorrectly reported volume + busy. +- Add additional debug code and messages in reserve.c +- Eliminate unwanted warning message in reserve.c + +Changes to 1.37.36 release 22Aug05: +20Aug05 +- Landon's fix for NLS detection +- Eliminate incorrect compiler warning on FreeBSD. +- Move Win32 errno message build into berrno constructor. +- Minor Win32 build tweaks +19Aug05 +- A number of minor build Win32 fixes. +- Remove a PostQuitMessage() as suggested by Thorsten so that + BartPE restore can work correctly. +- Fix for create JobMedia so that VolIndex remains valid even + during a delete Job or pruning -- bug 402. +- Minor tweak for Win32 build. +18Aug05 +- Win32 fix -- remove debug O_NONBLOCK code. +- Fix bug 399 -- make_catalog_backup does not work for sqlite3 +- Implement unloading a volume in a different drive if it + is needed in the current drive. +- Implement search for unused autochanger drive. +- Implement search for exact Volume in reservation before + other searches. +- Fix picking up drive in Dir so that it is not done in + the status command. +- Eliminate double check on "loaded" for autochanger. +17Aug05 +- Start coding better reservation algorithm +- Always look for slot for label command. +- Add more debug code for autochangers. +- Apply fix from Stephan Leemburg for + improper scanning of schedule resource: + Run = Level=Full Pool=Catalog daily at 1:20 +- Apply patch from Chris Lee for + adding --enable-build-dird --enable-build-stored. +- Tweak datadir definition in configure.in +16Aug05 +- Fix bug that missed drive=nn specification. +- Eliminate nonblocking kludge in heartbeat of FD as + it caused high CPU usage. +- Pickup loaded slot when doing open() of tape drive. +- Make autochanger reservation code go through full list + first pass until exact match found. +15Aug05 +- Fix how FileSet is saved in job record to correct continual + Full save. +- Make datadir print on config.out listing. +- Move get FileSet record up in backup init to eliminate continual + Full save seen by Peter Sjoberg. +- Add VolumeName to read-only Python variables. +- Add VolumePurged event for Python. +- Suppress /dev/ Filesystem change prohibited INFO messages. +- Do not delete FT_RAW files before restore (allows FIFOs + to be used for restore). +13Aug05 +- Add drive specification to mount, unmount, release, label, + and relabel for Autochangers. Note Dir<->SD protocol has + changed. + +Changes to 1.37.35: +12Aug05 +- Disable parts of NLS as the configure does not work here. +- In job backup init (backup.c) define definitive Job level and + since time, *then* apply Job Pool override selection if any. +11Aug05 +- Modified bconsole script so that it is improperly + installed, it will refuse to execute. This avoids + recursive call loops. + +Changes to 1.37.34: +06Aug05 +- Apply David's ACL fix to src/filed/acl.c +05Aug05 +- Apply patches sent by David Duchscher for + making ACLs work on MacOS X and FreeBSD. +04Aug05 +- Apply patch in bug#397 that improved configure + - find readline under $with_readline/include/readline + - no libutil under Solaris + - no need for -ldl under Solaris +- Make reservation system single threaded during the + search to avoid two threads competing for the same + resource. +- Correct a return code in find_suitable_device_for_job() + Possibly cause of "busy writing to another volume". +03Aug05 +- Modify open() for tape so nonblocking really works. +- Use fcntl() to reset blocking status rather than close() + and reopen the drive. +- Make sure dev->open() is always called so that any change + in read/write permissions will occur. +- Open drives initially in daemon in read-only mode. +- Ensure that each time the VolHdr.VolumeName is zapped + or changed that free_volume() is called on the old name. + +Changes to 1.37.33: +03Aug05 +- Require 5 arguments to mtx-changer except list and slots +- Turn -EPIPE status returns from bpipe to ETIME +- Include Slot in SD status output +- Do not term_dev() during initialization in SD if the device + could not be opened. In the case of a tape drive, there may + be no tape in the drive. + +Changes to 1.32.32: +02Aug05 +- Correct PostgreSQL database scripts as suggested by a user. +- Add additional info to FATAL message generated when a device + is busy writing to another volume. +- Suppress an inappropriate NULL Volume name message after a cancel. +- Correct a warning message in reserve.c +29Jul05 +- Apply user's patch to make mutiple modifiers for times + work correctly. +- Make read_dev_volume_label() handle ANSI/IBM labels + correctly -- ie space over any label at the beginning + of the tape. +28Jul05 +- Make ANSI/IBM writing of HDR1/2 labels ignore any + errors if at end of tape. +- Apply Martin's patch to improve Python detection in + configure.in +- Temporarily turn off disk seeking until I find the + cause of the problem. +27Jul05 +- Add OSF1 patch supplied by user. +- Use number of files selected from write_bsr() only + if it is not defined. +- Explicitly seek to end of file when getting size for + restore test. +- Correctly set EndBlock position in JobMedia record + for files. +- Remove unnecessary set StartBlock in bscan. Caused bscan + regression error. +26Jul05 +- Modify mtx-changer to wait a maximum of 300 seconds. +- Do restart of failed jobs only for Backups job types. +- A number of DVD updates from Nicolas. +24Jul05 +- Turn off old service helper code in Win32. +- Correct Messages bug found by Phil in stored. +23Jul05 +- Complete (almost) documentation of 1.38. +- Add error messages for error conditions with VSS. +- Fix additional problems with VSS backup that I introduced. +Changes to 1.37.31: +22Jul05 +- Correct compiler complaints in wx-console and tray-monitor. +- Correct VSS problems recognizing c: +- Add VSS before job status +- Fix output of status from being one big line. +- Change cd xx; make to cd xx && make as suggested by Phil. +- Cleanup projects file +- Remove unnecessary casting of FF_PKT in filed. +- Apply Thorsten's bugfix for vss_generic.cpp +- Add check for df path for dvd_freespace +- Use df to get space used on DVD. +- Change sense of flag indicating erase DVD or not before writing. +- Fix bpipe so that it never modifies the result pointer. +- Replace more dev_name by print_name(). +- Rewrite edit_device_codes_dev() so it does not overwrite the + supplied buffer. +- Update printing of labels (for bls) so that critical information + is printed (Job name and timestamp). +- Cleanup old spool files when starting the SD. +- Modify vss.cpp to allow C: as a path name. Otherwise VSS + doesn't work when only a drive name is given. +- Modify vss.c to eliminate double / in filenames. +- Update doc -- particularly the restore chapter. +18Jul05 +- Make all files in working directory have .xxx at end. +- Work on DVD writing. +- Fix keepatime bug (bugs database). +- Move Python variables from Job to Bacula. They are + DirName, Version, ConfigFile, and WorkingDir +- Fix delete of bootstrap to only occur on Bacula created + filenames. +- Allow cancelling a Job name that is not active. It is + sent to the daemons. +17Jul05 +- Fix name space pollution by OpenSSL 0.9.8 reported by + Matthias Kurz -- applied his patch. +- Fix bpipe.c so that it does not modify results pointer. + ***FIXME*** calling sequence should be changed. +- Remove some remaining references to dev_name. +- Fix calls to mount_dev() and unmount_dev() to + correspond to returned value (bool instead of int). +- Try without success to make DVD writing work. + +Changes to 1.37.30 released 16 July 05: +14Jul05 +- Fix "dir" command scanning field misalignment in + wx-console. +- Switch to using the wxWidgets Unicode library. +- Include msvcr71.dll in distribution. +- Add VSS to status line in Win32 FD if enabled. +- Get VSS build scripts working with Thorsten's help. +- Unlink the bootstrap file after sending it to + the FD. +- Remove sending include/exclude lists to the FD during + a restore -- deprecated code. +- Cleanup the bootstrap files in the FD. + +Changes to 1.37.29: +14Jul05 +- Remove old commented out code from configure.in +- Add baculavssfd.mak file for building VSS version of + Win32 FD. +- Correct date (year) in vss.cpp and vss_generic.cpp +13Jul05 +- I finally found and squashed the elusive SD crash. + I needed to initialize the used volume list before + firing off the device initialization thread. +Changes to 1.37.28: +11Jul05 +- Make sure that bpipe results are zapped even on + error return. +- Lots of documentation. +- Do not prune volume marked as append when needing a + new Volume. +- Print a warning message in SD if a non-used Volume + is specified and autolabel not turned on. +- Correct a bug in chksum.c concerning SHA1 signatures + (an * should have been & when checking for a bit flag). +- Print File:Block for all label records in label.c -- concerns + primarily bls when doing Job listings (-j). +- Correct is_volume_in_use() to return false if testing + on the same device where the Volume is already mounted. +- Define a init_done flag in the SD that is set when the + devices are initialized and make users connecting wait. + This prevents useless connect failure warning messages. +- Do additional device locking in ask_op_to_mount_volume() + to prevent race conditions with a user labeling a Volume + or autolabeling. +09Jul05 +- Add a test for error return from bnet_wait... in heartbeat.c + in FD to avoid CPU loop. +- Implement TLS in gnome console and wx-console. +08Jul05 +- Correct a NULL pointer reference in the mount command. +- Correct typo in Copyright +- Add detection of EOM for IBM drives (i.e. errno == ENOSPC) +07Jul05 +- Remove temp file created in mtx-changer script. +- Make fsf_dev() into a class method. +06Jul05 +- Modify mtx-changer.in script to return slot:barcode for + Volumes that are loaded in the drives. +- Correct some more places where dev->is_blocked() needs + to be checked in dircmd.c in SD. +- Update doc. +05Jul05 +- Add code to ensure that reserved but unused volumes + are freed. +- Correct how Volumes are mounted and handled so that the SD + does not get stuck if multiple volumes are used (recycling, + relabling, ...) +- Correct bug where you could relabel a volume while it + was being acquired -- created chaos. +04Jul05 +- Correct seg fault caused by open() calling sequence change. +03Jul05 +- Add new rc-chio-changer script by Rudolf Cejka to + examples/autochangers +- Apply Rudolf's changes to bacula.in +- Expand the space from 8 to 10 characters in editing + file sizes for restore and dir of catalog, otherwise + GB sizes are truncated -- fixes bug report. +- Modify wx-console to know about 10 character widths. +- Allow decending into top level directory if "recurse=no" + is set. Fixes a bug report. +- Install pthreadVCE.dll when installing console or wx-console + on Win32 systems. Fixes bug report. +02Jul05 +- Tweak dvd-writepart script to prevent door from opening/closing + so much. +- Remove GROUP BY in several PostgreSQL commands to prevent error. + Resolves bug report. +- Ensure that < as first character of filename list is not treated + as a directory for restore. +- Add debug to heartbeat in FD as it seems to go into an + infinite loop from time to time during SD failure in DVD writing. +- Add more debug code to dvd writing. +- Attempt not to destroy existing fs on DVD. +30Jun05 +- Detect device mounted for DVD and suppress be sure to + mount message after label. +- Set Cleaning tape status to "Cleaning" and force no + MediaType. +- Get DVD writing working with new standard Bacula open() + code. +- Rename get_filename() to make more sense. +- Detect "is already mounted on" on mount command so to avoid + error if device is already mounted. +- Eliminated guess_name() code. It may be necessary to + add it back later. +- Eliminate seg fault from printing invalid results. +- Make dvd_write_part() bool. + +29Jun05 +- Attempt to fix DVD writing by eliminating a number of the + DVD subroutines to simplify. +- Modify DEVICE::open() to take dcr as first argument. This + will permit providing more info to DVD opening. +- Fix scanning for time/size items which in some cases + ate the next line. +- Eliminate read_dvd_volume_label(). New code (not yet written) + *must* open dvd appropriately before calling + read_dev_volume_label. +- Modify open_first_part() open_next_part() to take DCR as + argument. +- Make label command from console work on DVDs. +- Make mount command from console work on DVDs. + Unmount does not work yet. + +Changes to 1.37.27: +27Jun05 +- Add Database vendor to CatalogRes tuple for Python. +- Update doc +- Implement DoesVolumeExist(Vol) for Python. +- Prevent python command from seg faulting if no arg given. + +Changes to 1.37.26: +26Jun05 +- Add set_mode method in DEVICE. +- Correct set_mode method in DEVICE +- Add more DVD debug info +23Jun05 +- Check for incorrect duration and size modifiers in conf files. +22Jun05: +- Make Version a tuple (version, build-date) +- Add CatalogRes tuple (DBName, Address, User, Password, + Socket, Port) +- Add Version, ConfigFile, and WorkingDir as Python attributes + in the Director. +- Implement code (principally for Win32) that on failure to + create a file, it will cd into the directory and attempt + to create the file using a relative path. This avoids creating + files with paths which fail on Win32. +- Fix parsing of times and sizes with decimal numbers. +- Make free_volume_list() in SD work if vol list is not + initialized (./bacula-sd -t). +21Jun05: +- Add debug error printout when open() fails. +- If open() of DVD fails in mount.c, return false. +- Split open() code for DVD into separate subroutine in dev.c + +Changes to 1.37.25 released on 20 Jun 05: +20Jun05: +- Remove (cd gnome-console; make clean) from src/Makefile.in +- Fix bug where Storage daemon gets confused about what + tape is mounted. (one line of code was inadvertently + deleted). + +Changes to 1.37.24: +18Jun05 +- DVD writing/reading seems to be mostly working. +- Set execute bits on dvd-freespace and dvd-writepart +- Make dvd-freespace use existing dummy file. +- Modify dvd-freespace to pickup size from Track Size: +16Jun05 +- Add Date, Job, level to updates to .bsr file in + dird/backup.c +- Add debug info to dvd-freespace.in +- Fix hard coded bacula.sql in make_catalog_backup reported + by a user. +- Make sure a verify volume to catalog never reports an error + if there are zero files to verify. +- Remove confusing debug info in filed/backup.c on network + error. +- Make sure output from console is not sent to system log. +- Convert open_dev() into a class method. +- Change VolHdr.VolName to VolHdr.VolumeName. +- Add a flag in the device state word to indicate that + we found Media in the drive (DVD). +- Make mount_dev() and unmount_dev() return bool. + +Changes to 1.37.22: +14Jun05 +- Fix the same state variable problem in open_next_part(). +- C++ify the SD code a bit more. +13Jun05 +- Add more debug code and clarify debug code for DVDs. +- Do not save and restore state in open_first_part() + since state should be properly set after open_dev(). +- Make default mandir /usr/share/man +- Install Bacula man page. +- Implement passing of FileSet Enable VSS to FD. +- Move main body of reserve drive code into subroutine + so that it can be called multiple times. +12Jun05 +- Eliminate getpass() for Win32 builds in console as the + function does not exist. +10Jun05 +- Correct some reservation problems in SD when no devices + are available. +- Start removing #ifdef HAVE_TLS by sneaky tricks. +- Begin implementation of TLS in wx-console +- Remove ignoring SIGCHLD from console. +- Rework the dlist binary search routines for implemenation + of the Volume reservation code -- make it more general. +- Strip double slashes // from Win32 filenames in an attempt + to resolve restore problems on some systems. +- Fix a minor bugs in the trace code that caused the first + line output to be lost. +- Implement a good first cut at adding Volume reservation code + to the storage daemon (in file reserve.c). +- Remove old unused code from the tree.c routines. + +Changes to 1.37.21: +06Jun05 +- Fix compile problems on Win32 +- Start writing Volume reservation list (already exists, but + is not really very good). +- Implement attribute caching to put Signature into database + at the same time as the file attributes thus eliminating a + number of database accesses. +- Correct a reservation problem. +- Implement full Dir Storage use. +- Reduce a bit of TLS #ifdeffing. + +Changes to 1.37.20: +04Jun05 +- Minor changes +01Jun05 +- Add more documentation to mtx-changer.in +- Correct link to manual in authenticate.c in various + directories. +- Create a new src/stored/reserve.c file where the + Use Storage command is processed and drives are + reserved. +- Modify src/stored/autochanger.c to keep track of each + Slot that is loaded for each device. +- Ensure that changer_command and changer_name are picked + up from Autochanger resource if not specified, and if + neither is specified, err. +30May05 +- Fix bextract.c compile problem +- Create bacula.man +- Make make distclean clean a bit better +29May05 +- Remove old code in jcr.c +- Make testls release jcr chain when terminating. +27May05 +- Implement Maximum Job Spool Size (actually DCR based) +26May05 +- Use light weight non-recursive locking on jcr chain. +- Make JCR a class and implement inc_use_count() and + dec_use_count() methods that ensure that the jcr is + locked when inc/dec the use count. +- Remove the global jcr lock when traversing the jcr + chain. +- Use dlist to implement the jcr chain rather than hand + crafted next and prev links. +- Lock the jcr chain inside each function that modifies + the chain. + +Changes to 1.37.19: +26May05 +- Fix compile problem of ua_restore.c on broken compilers. +- Apply patch from bug 326 to permit bacula status by any user. +- Fix bug 325 -- conversion of 12:30pm to 24hour time. +25May05 +- Put Dmsg() on inside if() to avoid calling subroutine. +- Make restore.bsr have unique name. +- Allow user to define bsr filename on restore command line + with bootstrap=xxx.bsr +- Add limit=nnn to "list jobs" command. +- Remove old restore code that did not use .bsr file. +- unlink automatically generated bsr file. +- Cleanup heartbeat code so that duped fd is almost sure + to be released. Previously under certain conditions, the + memory was not released due to race conditions. +- Shorten copyright. +20May05 +- Unify the reserve_device() for a single device into one subroutine. +18May05 +- Modify wait during use_device to happen only after all devices + have been examined rather than in the reserve_device code. +- Correct updating count of number of Volumes in a pool. + +Changes to 1.37.18: +16May05 +- Add more debug to SD for Autochangers + status output. +- Add Scratch to PoolType in PostgreSQL make...tables and do not + permit NULL PoolTypes. Fix for bug 319 reported by Eric. +- Update LICENSE. +- Add quotes around filename in parse_config error message. Bug + reported by Eric. +15May05 +- Change nested \include to \input so that sections are properly + included in the pdf manual -- update the Web site. +- Set reconnect flag in MySQL packet to 1 to ensure that connection + is re-established. MySQL 5 changed default to 0. Fixes bug report. +- Fix Scratch pool handling as reported in a bug by Eric Bollengier + by applying his patch. +- Remove delete job in favor of delete jobid. +- Add = NULL to configfile definitions as reported by Eric in a bug + report. +- Update winbacula.nsi.in to reflect new manual file structure. +10May05 +- Correct a minor build problem with wx-console. +- Add cancel() to Dir Python scripting. +- Re-correct bug in parse-config error handling. +- Reorganization of use_command in SD to permit + waiting and multiple drive autochanger support. +09May05 +- Correct bug in parse_config error handling. +- Where ever possible mark a volume in error or not + InChanger in mount.c +- Fix bug in changing tape pools after first backup. Reported + by Peter Sjoberg. +- Enhance mtx-changer to use Working Directory as temp. +- Remove all but initial setup locking of Res in SD. +08May05 +- Add Client OS type to Job report. +- Add version to manual +- Update the Web site to have a single page for + the documentation links. + +Changes to 1.37.18 release 08May05: +08May05 +- Correct attribute definition compile error in 1.37.17 +- Correct inverted order of CreateTime and MD5 pointed out + by a user in a bug report in FileSet db routine causing + the MD5 to print in the output instead of the time/date. + +Changes to 1.37.17: +07May05 +- Implement cstrlen() in sql list routines. +- Implement caching of attributes to add the + signature so that only one DB call will be made + per file. Not yet turned on. +- Fix Win32 build for TLS. +- Optimize File pruning to eliminate one database call. +- Fix bug that prevented File pruning from working. +- Implement a cstrlen() which returns the character + length of a UTF-8 string. +06May05 +- Move test for MaxStartDelay as suggested by Peter. +- Implement Python methods (I had to read the Python source + code). +- Implement run() method in Director. +- Add Priority and Scheduled time to Job report. +- Add JobInit and JobRun events. +- Add Priority as Python read/write attribute to Job. +- Correct typo in bsmtp reported by Jo. + +Changes to 1.37.16 released 05May05 +03May05 +- Make a few tls ifdef tweaks. +- Fix create_file.c Win32 problem pointed out by + Peter Sjoberg. +- Fix really ugly bstrncpy() but found by Thorsten. +- Move winapi.h/c from findlib to lib for inclusion in + multiple places. +02May05 +- Thorsten Engel finished his work on Win32 Unicode. We + now have a single executable that runs on all Win32 machines. +- Move job initialization code after job scheduling so that + Verify jobs check for the prior JobId after they are really + started rather than before. +- Fix lib/fnmatch.c so that it does proper testing before folding. +- More documentation -- at tls and ansi labels chapters. +- Fix fileset_convert.pl to handle empty Exclude statements. +- Turn regex back off in Win32 +01May05 +- Fix sign extension problem in lex.c that reads UTF-8 + with Chinese characters incorrectly. + +Changes to 1.37.14: +30Apr05 +- Remove a few HAVE_TLS #ifdefs +- Implement final Python style interface. More implemention to + be done, but the interface should change little if at all. +28Apr05 +- Make default no tls support. You must add + --with-openssl to get tls support. +27Apr05 +- Update Web header to include google search in the search + box -- thanks to input from Michel Meyers. +- Fix md5sum so that it builds with the new openssl stuff. +- Take some enhancements to the md5sum test program proposed + by a user. +26Apr05 +- Make option 2 of restore work better (list last 20 + locations for a file). +- Make SD re-open a device with the right permissions if + it was previously opened with something different. This + should allow reading read-only Volumes under all circumstances. +- Implement restore of a single directory. +- Apply Tru64 patch supplied by Pascal Pederiva +- Apply Unicode fixes for Win32 from "Thorsten Engel" + +- More work on Python read feature in FD. +22Apr05 +- Fix (hopefully) the ftello() overflow reported by Peter. +- Landon Fuller committed his TLS patch. +- Fixed two minor warnings in console.c with TLS turned off. +- Updated the Makefile.in for wx-windows and tray-monitor + to handle TLS. I can only build the tray-monitor. +- Fix bscan to open tape in read-only mode (actually fix + it so that it doesn't use the standard open routine). +- Correct what appears to be an error in setting the + return value in dvd.c +21Apr05 +- Get FD Python running -- design Python backup interface. +- Fix seg fault in SD when referencing Alert Command. +- More documentation. +- Fix one more thing in Win32 build. +20Apr05 +- Doc updates +- Fix Win32 build +- Put in production here + +Changes to 1.37.13: +19Apr05 +- Fix SQLite and PostgreSQL table creation script syntax + problems. +- Fix new Python code to work for Director. +- Move lib/python.c to lib/pythonlib.c so that debug output + is easier to read (can distinguish lib from dird, ...). +- Cleanup Python build so that Python is not dragged + into programs that don't use it. + +Changes to 1.37.12: +18Apr05 +- Make Bacula build without Python +- Drop Status table in drop_ scripts -- bug 283. +17Apr05 +- First cut of new Python implementation. +- Doc updates +- Correct SuSE autostart installation directory name -- + supplied by a user. +- Fix director crash if Name directive not supplied + in a Job. +- More cleanup of changing %u to %s for DB IDs. +- Replace dev_can_write(dev) with dev->can_write(). +11Apr05 +- Make fsr_dev() a method dev->fsr() +- Remove Created new FileSet message as it always comes out in + the daemon messages. +- eliminate dev_is_tape() in favor of method dev->is_tape() +- Turn on disk seeking during restore for Disk Volumes. This + required some changes to bscan -- they seem a bit suspect as + they are not symmetrical for tape/files. +- Remove some of the recursion in stored/parse_bsr.c +- Move rescue out to a new Bacula project. +08Apr05 +- Update of web site to replace old released doc with LaTeX + version. +- Replace logo in doc with new bat logo. +- Make a good number of updates to the manual. +- Implement Python scripting using a Python object. + This makes interfacing with Bacula cleaner (object + oriented). +- Add Phil's Status table to the database -- used + for getting a text description of the status + codes. +- Modify FileSet so that an empty Options (no + pattern matching) with an exclude will exclude + all files. +- Modify FileSet so that no top level included File + item can be excluded by a matching pattern. +- Suppress Created new FileSet record in daemon output. +- Implement Python in FD. +- Turn off old bfile reader code -- to be replaced + by Python. +05Apr05 +- Remove more recursion in src/dird/bsr.c as pointed out + by Peter. +04Apr05 +- Increase the index width of Filename and Path entries + to 255 chars -- suggestion of Meno Abels. +- Change remaining VARCHARS to TINYBLOBs. +- Remove recursion from is_volume_selected() following + bug report from Peter. +- Implement mostly correct handling of use_storage in the + SD with full lists, ... +02Apr05 +- Reset NumVols in Pool record from database on every update + Pool. +- Modify DB to support multiple simultaneous copies and + RAIT stiping. +- Pass copy and stripe between DIR and SD and put into + the JobMedia DB record. +- Update and test SQLite and MySQL datebase creation and + update scripts. +- Implement version 9 of the DB. +31Mar05 +- Convert more atoi to str_to_int64() for DB. +- Implement filling in NumVols by querying DB rather + than trying to keep track of it. +- Add storage name to string passed to in use storage= +- Fix newVolume() so that the Python script is always + called. +- Fix handling of pool,PoolId, and storage in ua_output. +- Same fix in ua_status.c +- Remove required locking of resources +- Replace pthread_cond_signal() by pthread_cond_broadcast() + hoping to fix the /lib/tls hang problems (lost signal). +- Move resource locking seaching from parse_conf.c to res.c + in src/lib. +- Modify end of volume handling so that fixup_... does not + redo what block.c has already done -- writing Vol info to + DIR. This fixes a bug with bad numbers of files on a tape + when it filled as reported by Peter. +- In release_device() do not update the DIR on the Volume + info if the the information was already written at the + end of the tape. +28Mar05 +- NOTE!!!! This version has a new DIR <--> SD protocol. Both + must be updated at the same time. +- Begin implementation of passing all the Storage and Device + possibilities to the SD for examination during the reserve + phase. +- Modify the reserve and acquire code in the SD to make a + job wait if the device is not available. +- Implement New Volume Each Job in DIR and pass to SD, not yet + used. +- Remove init/update of the Device resource in DIR +- Remove passing PoolId to SD and back. +26Mar05 +- Remove \a and -e from error echos in most Makefiles. +- Add more debug code when there are errors on the tape + to try to find Peter's tape problem. +- Add wait.c (oops forgot previously). +- Move all the reserve/acquire_device_for_read/append to have + only a DCR as the argument. +- Rework the reserve_device_for_append() in stored to wait + if the drive is not available. Note! This is a short + term solution. +25Mar05 +- Comment out Multiple Connections in the document. +- Move the P() and V() to subroutines so that they can be accessed + from class methods. The reference to strerror() caused problems. +- Implement new DEVICE class methods block() and unblock() that + do what was previously done in 3 lines of code. +- Implement wait_for_device(), which will wait for any device + to be released then return. This requires a new global mutex + and condition variable, and is implemented in src/stored/wait.c +- Change the code in reserve_device_for_read(), which previously + failed the job to use the new device wait code. +22Mar05 +- Apply reschedule patch to 1.37 code. +- Add copyright to title page of manual so it is clear. +- Create patch for rescheduling problem found by Ludovic. Storage + pointers were lost during rescheduling. +- Attempt to fix 2.6 rescue disk -- failed! +- Start working on adding a wait routine in the SD. +- Cleanup some old invalid doc in watchdog. +- Convert a number of references to dev->dev_name to dev->print_name(). +- Add new wait.c file to SD. +- Add a few more methods to DEVICE in SD to cleanup code a + bit -- implement a few of the methods. +18Mar05 +- Fix more print_name()s for printing device name. +- Modify open_dev to try 10 times every 6 seconds to + open the device if it gets an I/O error (meaning no + volume mounted). This gives a bit of settling in time + for an autochanger and avoids spurious messages. +- Change all yes/no to yes|no in the manual. +- Fix win32 create_file.c typo. +- Fix a typo in an error message. +17Mar05 +- Detect if fseeko exists with autoconf. If so, use it + and ftello. +- Remove old bacula-*.conf from examples directory (out + of date). +- Remove latex-fr index files from CVS. +- Rewrite code that stops reading the tape so that the + tape is marked at EOT, then once the work is done, + the EOT flag is removed. +- Flush output to file after every send in console. +- Make setting VolFiles to smaller number fatal. +- Disable Multiple Connections code. +- Add patch from user for NetBSD statvsfs() fix to + fstype.c +- Take more care with errors in acquire.c +- Don't run through dvd code in append.c if bad status + returned. +- Modify code so that an autochanger fault is fatal. +- Use dev->print_name() in more places. +- Implement dev->can_steal_lock() to simplify code. +- Make btape re-read first 10000 records on fill command. +- Check error return and fail job from fseeko and ftello + in spool.c. Don't let a -1 slip in as size. + +Changes to 1.37.7: +15Mar05 +- Apply NetBSD patch from kardel in bug 258. +14Mar05 +- Add a second job and a second client to the default + bacula-dir.conf file. +- Remove old style Include/Excludes. +- Fix ANSI labels to put EOF1 and EOF2 after each file mark. +- Add Python to SD and FD. +12Mar05 +- Implement IBM labels +- Implement EOF and EOV labels at the end of a volume. +- Fix a rather ugly problem with the PoolId not getting + passed correctly. Now the DIR passes the Pool name and + Media Type to the SD, who passes them back when requesting + the next Volume. The DIR then looks up the correct PoolId. + This takes more time, but always works, AND allows wild + card Media Types (i.e. the SD can decide). +- The DIR <==> SD protocol has changed. + +Changes to 1.37.6: +11Mar05 +- Fix scanf of PoolId in catreq to handle 64 bit Ids. +10Mar05 +- Add new ua_update.c file and move update_cmd there. +- Modify "update slots" to obtain actual number of slots. +- Tweak autochanger code to handle new slots request. +- Modify autochanger code to lock/unlock around slots and + update slots code. +09Mar05 +- Patch the FD so that it does not issue an error message if + it attempts to restore the permissions on a Win32 drive. +- Edit "Resource-name" (physical-name) for the device name + everywhere in the SD. +- Remove .linked.tex files in preparation for cutover to + using .tex in place of .wml. +08Mar05 +- Copy latest config.sub and config.guess from autoconf. +- Try new way of identifying drives with: + "resource-name" (physical-name) + More work need to a complete conversion. +07Mar05 +- Rework some of the autochanger data so that the DIR has + the number of drives. +- Modify the way the Device info is returned so that it comes + back as a special message type and can be sent anytime the + Device status changes. +- Copy the change name and changer command into the device + record if none is specified. +- Require the change command and changer name to be specified in + and AutoChanger resource. +- Force all the Media Type records of all devices in an Autochanger + to be the same. +06Mar05 +- Add new "run" command to Job resource in DIR. This permits + cloning a job as many times as you want. +- Pass PoolId to SD on Query request. It is now used in the + Find_media catalog request. +- Reworked the Device resource in the DIR. Eliminated num_waiting + and use_count, but added max_writers, reserved, and PoolId. +- This DIR is nolonger compatible with previous SDs. +- Add since and cloned keywords to the Console run command + to support cloning. +- Implemented store_alist_str() to allow multiple string items + to be specified in a .conf file. +- Added %s (since time) to Job code editing. +- Reworked reserving drives in the SD. It now does it much simpler + and correctly. +05Mar05 +- Integrate HP-UX patch from Olivier Mehani +- Fix FD job.c to test correctly for no level. + +Changes to 1.37.4: +04Mar05 +- Change Developers to Developer's Guide as requested by Michael. +- Fix developers link in manual +- Add additional dcr changes in SD to allow multiple dcrs. +02Mar05 +- Fix a few problems with the MySQL table create in 1.37. +- Delete the new tables in the table delete files. +- Increase the number of items permitted in a conf table. +- Make Director loop over alternative Devices specified in the + Storage resource until one is reserved by SD. +- Fix storing of StorageId in Media records. +- Add AutoSelect = yes|no in bacula-sd.conf +- Add Autochanger support to Label command. +- Do not autoselect devices with autoselect set false +01Mar05 +- Implement setting DIR Storage device to Autochanger + name. +- Select first available device in Autochanger. +- Pass back actual device name used. +- Allow Query of AutoChanger. +- Modify Query to include name of AutoChanger if + Device belongs to one. +- Remove old Pool code in jobq.c +- Add Autoselect flag to query and DEVICE class (still + need Directive). +28Feb05 +- Lock autochanger script when running. +- Mark Volume not InChanger if correct volume is not + autoloaded. +- Corrected some typos in the make_xxx_tables.in files. +- Made preliminary split of pre-run and run code for each + job type. This will permit early opening of SD for reserving + drives. +- Add offline and autochanger fields to Device Query record. +- Correct pthread_mutex_init() for autochanger in SD. +- Tweak Makefile for LaTeX manual, plus add nav buttons. +26Feb05 +- Clean up drive reservation system. Add more sanity checks. +- Implement a few more methods for the DEVICE class in SD. +- Add latex directories to make clean +- move DEV_BSIZE to B_DEV_BSIZE to avoid conflicts with + certain header files (FreeBSD). +24Feb05 +- Fix an ASSERT that was triggering in stored/acquire.c + attempt to fix a bug report. +23Feb05 +- Corrected SunOs to SunOS in btraceback (user submitted). +- Applied patch from Roger HÃ¥kansson + to warn the user of defective AWKs during ./configure. +20Feb05 +- Add some changes submitted by a user for HP client build. + Not all changes accepted. +- Rework code in filed/backup.c to ease #ifdefing and make + program flow more obvious. +- Split DVD code out of dev.c into dvd.c +- Tweak #ifdefing to add back all the performance measurement + #defines in version.h +- Put most of MTIOCGET code in a subroutine to simplify the + mainline code. +- Make clean remove old CVS files +- Remove unnecessary image files from Latex directory +- Implement remaining parts of Storage DB record and + its use in the Director. +- Implement + FullMaxWaitTime, Differential Max Wait Time, and + Incremental Max Wait time in Job resource. +- Start work on SD Autochanger code. +19Feb05 +- Add back JobId index for MySQL as default -- speeds up + pruning. +- Add more database fields and fix the update scripts to + include the new items. +- Pass actual level to FD so that ClientRun editing can reflect + correct level -- ditto for job status. This makes the DIR + incompatible with older clients! +- Move jobq.c acquire resources to static subroutine so that + the code logic becomes clearer. This is in preparation for + actually using the new Device resources. +- Fix some lower case problems in sql_cmds.c reported by + Debian. +- Correct a seg fault in the SD reported by a user. Occurred + only when a high debug level was set. +- Modify init_dev() in dev.c to take JCR as first arg so that + proper error messages can be reported in next item. +- Modify the query and use device SD commands to attempt to + open the device if it could not previously be opened. +- Correct error message for Could not reserve device. +- Correct some minor details with Autochanger resource in SD. +18Feb05 +- Fix seg fault if debug level 900 set in SD. +- Truncate Win32 child return code to 8 bits. +- Remove some old lld's. + +Changes to 1.37.3: +16Feb05 +- Make another attempt at fixing the ClientRunXXX return code + bug on Win32 machines. +- Apply ua_status patch from Carsten Paeth + which enforces console ACLs in the status command for Jobs. +15Feb05 +- Fix Media LabelDate and FirstWritten to be correctly set. +- Fix deadlock in multiple simultaneous jobs. +- Fix tape "truncation"/"number of files" after restore bug. +10Feb05 +- Ensure that correct error messages are returned when + reading an ANSI label. +09Feb05 +- Modified ANSI label code to preserve any ANSI label + already found by skipping over it rather than rewriting + it. +- Split the ANSI label code into ansi_label.c +- Do not let user relabel an ANSI labeled tape. +- Applied a patch for the console help command supplied + in a bug report. +- Added some new dev methods. Most notably was + set_eof(), which handles setting all the dev variables + when an EOF is just read. This is now used most everywhere + in the code. +07Feb05 +- Added code to detect that no files were inserted into the + tree for a restore. If a specific JobId was specified, the + user has the option of restoring everything. +- More progress in implementing 64 bit DB Ids. +- Modified the daemon start messages for RH. +- Implement update scripts for all database types. +- First cut at implementing restore directory (it will not + recurse). +04Feb05 +- OK, I think ANSI labels work. +- Added Label Type = ANSI|IBM|Bacula to Device resource in SD. + If this is set, it will force writing of the appropriate + label type. +- Added Check Labels = yes|no to Device resource in SD. If this + is set, Bacula will check for ANSI labels and accept them, + otherwise, ANSI labels will not be accepted when the tape + is first mounted. +02Feb05 +- Second cut ANSI labels. +01Feb05 +- Merge Preben's patch for ACLs and for Mac OS X resource forks. +- Some doc updates. +- Display more informative message when a device was not + found or could not be opened. +- Add the sqlite3 database scripts. +- Add some patches for 1.36.1 (note, I have now prepared + a 1.36.2 with all the patches and some new features -- + to be documented). +- Some minor doc updates. +- Add Arno's baculareport.pl script to the examples directory. +29Jan05 -- after vacation +- Add support for SQLite3 (it seems to run at 1/2 the speed + of SQLite2). Use --with-sqlite3 instead of --with-sqlite + to get SQLite3. +- Add target for running qemu to boot Rescue CDROM +- Add code to support kernel 2.6 in Rescue CDROM -- does NOT yet + boot correctly. +- Implement ANSI labels -- not yet tested. + This required changes to DB format. No upgrade script yet. + Note, more work needed to modify "update" command to handle + changing label types, also must restrict volume name lengths + to 6 characters. +- Add new Device, Storage, and MediaType records to DB. No + upgrade script yet. +- Add MediaType to bsr file record types. Not yet used in SD. +- Permit multiple device specifications in Storage resource in + Dir conf file. +- Implement Device resources. Director requests Device resource + info from SD on startup. +- Note!!!! DIR->SD incompatible with previous versions. +- Remove multiple Storage definitions in Job resource. One can + still specify multiple Storage resources, but they all go into + a single alist, and imply sending data to each Storage daemon + simultaneously. +- Implement Device query command between DIR and SD. +- Allow DIR to "reserve" a Device. It will then be acquired + when the FD connects to the SD. +- Turn all DIR resources into classes, and implement a few class + methods -- more to come. +- Turn DEVICE in SD into a class, and implement a number of inline + class methods -- more to come. +- I had serious problems with ACL errors on my Laptop, and so had + to add the following patch: + @@ -181,7 +181,7 @@ + } + /***** Do we really want to silently ignore errors from acl_get_file + and acl_to_text? *****/ + - return -1; + + return 0; + } +- Added edit_int64() +- Reworked and tested a bit the htable routines. +- Major changes to SD acquire.c -- DIR can now reserve devices. Needs + lots of testing!!!! +- Made a special state code for DVD -- this simplifies the logic + of the code, but I probably broke it. Testing needed!!!! +- Add AutoChanger resource to SD, but not yet used. + +Changes to 1.37.2: +12Jan05 +- Integrate Preben 'Peppe' Guldberg 's + acl patch. Fix case where configured but no ACL exists. + Rework calling arguments to be shorter and positioned + more typically in Bacula usage. +11Jan05 +- Fix scripts/bacula.in to have awk on an environment variable + and add comments for Solaris users. +- Turn off inet_aton in src/lib/address_conf.c for Win32 +- Add new files to win32 build and eliminate a compiler warning. +- Add sample DVD Device resource to bacula-sd.conf +08Jan05 +- Integrate Nicolas' patch for direct DVD support. +07Jan05 +- Fix fstype error returns. +- Apply Preben's cleanup.patch which puts back much of the + cleanup code in src/filed/restore.c +06Jan05 +- Apply all of Preben's patches, but revert to old backup.c + and old restore.c in filed. Also turn off code in new + acl.c because of errors. The new code, when fully implemented + moves platform specific code into acl.c. + One of the patches also implements WildFile and WildDir -- thanks. +01Jan05 +- Implement Python in the SD (no events yet though). +- Fix some typos in the previous commit. +30Dec04 +- Enhance CDROM boot to include some documentation at boot time. +- NOTE!!!!! The CDROM will not boot 2.6 kernels because the + boot sequence has changed significantly. Updates to come + later. +- Add memtest option to CDROM boot. +- Include Nicolas' changes to fix llist JobMedia records. +- Make sure that ClientRunBefore/After messages from the program + are terminated with a newline. Add strerror to output error + messages. +- Return program exit status code in Win32. +29Dec04 +- Add memtest86 to Bacula Rescue disk +- Enhance Rescue disk startup screen +24Dec04 +- Move some variables to eliminate Solaris 2.6 compiler warnings. +- Fix the seg fault at the end of a job in the FD when using + old style include/excludes. +22Dec04 +- Apply Preben's ACL patch. +- Integrate Preben's restore patch. +- Integrate Preben's verify teaks. +- Fix doc/latex/Makefile to copy/remove .eps files when building + html and web outputs. +21Dec04 +- Fix Bacula so that it does not exit if there is a syntax error + in its conf file during a reload command. Bug 182. +- Apply fixes suggested for old Solaris networking. + Fixes bug 190. +- Apply Preben 'Peppe' Guldberg + three patches that clean up white space: + ws.patch.02.strings: + Breaks strings that span lines into concatenated strings. I am not sure + if you like this one. Other code works with concatenated strings, though. + ws.patch.03.trailing: + This removes trailing whitespace. No changes resulted from this for + my setup. + ws.patch.04.leading: + This replaces space runs at the start of line with tabs. No changes + again. +- Fix overriding storage specification to be done + through a subroutine. +- Fix autoconf so it runs with FC3. +- Add Python4.3 to configure search paths. +- Always copy and delete storage definitions into jcr. +- Check that VolumeName supplied by Python is valid. + Return 0 if not. +19Dec04 +- Fix undefined in non-Python build. +- Update rescue disk to include mkinitrd +- Fix umount_drives in rescue disk (only one arg to umount) +- Ensure that if SD is manually set in Console, it is used. +- Put generate_event on pointer and plug it in init. This + permits using it in /lib +- Correct despooling size reported to be Job specific rather + than for the whole drive. +18Dec04 +- Fix bug 207. jcr use count off by one when manually + scheduling jobs. +- Remove FNMATCH test in configure.in and always use + the one in our library to get the FN_CASEFOLD GNU + extensions on all platforms. +- While using the rescue CDROM after my computer would not + boot, I realized that it would be very useful to have + a umount_disks. So, it is not implemented, along with + updates to the READMEs and some minor tweaks. +- Moved mounting the CDROM in the rescue boot from /cdrom + to /mnt/cdrom (more standard location). +- Reboot in CDROM rescue should now work -- requires -d + option (no write) to work. +- Hopefully fixed all the IPV6/4 problems and buffer + problems with networking in lib. Bugs 190 and 204. + Cleaned up a lot of #ifdefing problems by using routines + in address_conf.c +17Dec04 +- Apply Preben 'Peppe' Guldberg + alist fix patch. +- Remove duplicate code from chksum.h (mentioned by Preben). +13Dec04 +- Integrate Tim Oberfoell patch to ACLs + to handle both the "standard" and "default" ACLs. +12Dec04 +- Integrated Preben 'Peppe' Guldberg + three cleanup patches (btest, verify, find). +- Integrated Preben 'Peppe' Guldberg + three cleanup patches (backup, chksum, and verify) +09Dec04 +- Integrated Preben 'Peppe' Guldberg + patch to avoid doing MTIOCGET on OSes that do not support + it such as OpenBSD. +- Integrated Preben 'Peppe' Guldberg + patch to add filesystem type matching to FileSets in the + Options resource. +- Integrated Preben 'Peppe' Guldberg + patch to add Mac OSX resource fork support (save/restore) + to Bacula -- HFS Plus support. +- Add FileSet to client Job listing query. +06Dec04 +- Integrated Preben 'Peppe' Guldberg + patch to backup directories skipped (due to no file system + changes or no recursion), and to add a slash to the end + of the directory name during the match process. +- Implement Jamie ffolliott + patch to dird_conf.c that enables Multiple Connections and + fixes a typo in show. The rest of his patch awaits my suggested + changes. +05Dec04 +- Implement run command in Python +04Dec04 +- Implement conversion of the manual, and some minor + tweaks to the script tags. +- Apply a patch supplied by Preben 'Peppe' Guldberg that implements + ignore case in wild cards and regexes. +- Fix a truncated line in the above patch due to my cut and paste. +03Dec04 +- Fix it so that the InChanger flag is only changed for Volumes + in the same Pool. +- Add PIDOF configuration path and apply to bacula.in +- Add user supplied patch to add inet_aton() of old Solaris + systems. +- Require pools to match before allowing multiple simultaneous + accesses to same storage resource. +- Add patch supplied by Martin to correct buffer overrun in + bsnprintf() with no library snprintf(). +02Dec04 +- Apply user supplied patch that implements No Hard Links. +- Document Python interface +- Add hardlink keyword patch supplied by David R Bosso +01Dec04 +- Fix non-python prototypes in dummy routines. +- Add python 2.3 to config search list (user submitted patch) +- Add JobStatus to Python variables. +28Nov04 +- Add "python restart" command in Console. +- Make built-in variables table driven. +- First cut of Python Events for Bacula. Director only. + StartJob, EndJob, NewVolume events. diff --git a/bacula/kes-1.39 b/bacula/kes-1.39 deleted file mode 100644 index 5b12fec13c..0000000000 --- a/bacula/kes-1.39 +++ /dev/null @@ -1,23 +0,0 @@ - Technical notes on version 1.39 - Kern Sibbald - -General: - -Changes to 1.39.0: -13Oct05 -- Remove the USE_WIN32STREAMEXTRACTION #defines (always on) - and correct a few minor problems to make it build on Linux. -10Oct05 -- Remove delete of CVS from all Makefiles -- Fix seg fault when clicking on Add button in wx-console - restore panel. Bug #470. -- Fix copyright date and URL typo -- bug #468. -- Change autostart install for FreeBSD to look for rc.conf - rather than rc.local as suggested fix for bug #466. -- Apply patch supplied by Eric Bollinger to fix PostgreSQL - grant on status. Bug #465 -- Apply patch supplied by Eric Bollinger to fix PostgreSQL - update script. Bug #464 -- Tweak #ifdefing a bit in new Win32 stream code. -- Fix #ifdeffing for FD_NO_SEND_TEST. -- Add documentation of performance #defines diff --git a/bacula/nb-1.37 b/bacula/nb-1.37 new file mode 100644 index 0000000000..b9bcce64f8 --- /dev/null +++ b/bacula/nb-1.37 @@ -0,0 +1,93 @@ + Technical notes on version 1.37 + Nicolas Boichat + +General: + +Changes to 1.37.*: +26Oct05 + - dvd.c: update VolParts when writing the last part. +19Oct05 + - configure: add check for dd, remove check for df + - block.c:do_dvd_size_checks: Check we are writing to a dvd before doing tests + (reported by David Raine on the list, "[Bacula-users] LTO drive - End Of Volume error"). + - Update bacula-sd.conf.in to use dvd-handler correctly. + - dvd.c:dvd_write_part: Increase timeout when writing the first part (see the code for + more details). +18Oct05 + - Modify .backups command to get a fileset parameter (fix bug #444). +17Oct05 + - Fix bug when recycling DVD devices (append flag was removed). + - Add tests for dvd+rw-format in configure script. + - scripts/dvd-handler: Reformat DVD-RW when needed. This needs dvd+rw-format. + - Add patch for dvd+rw-tools in patches dir (this should probably be elsewhere). +16Oct05 + - Remove scripts/dvd-freespace and scripts/dvd-writepart, as they are now + merged into scripts/dvd-handler. Note: Documentation needs to be updated. + - scripts/dvd-handler: "zero" brand-new DVD+/-RW to fix a problem with some + DVD-writers, thanks to Arno Lehmann for reporting this, and providing the + way to fix it. + - new scripts/dvd-handler. Note: it also needs a patched version of dvd+rw-tools. + - new scripts/dvd-freespace. Note: it needs a patched version of dvd+rw-tools. + - dvd.c:dvd_write_part: Don't write empty part. (Fix 4GB crossing bug reported by Arno Lehmann) +14Oct05 + - dvd.c:dvd_write_part: Use part_size and not max_part_size when setting write timeout. + - dvd.c:do_mount_dev: When checking if the DVD is mounted, do not count ., .. and .keep (needed on Gentoo). +15Aug05 + - Convert dvd-writepart to Python. + - Increase delay from 3 seconds to 5 seconds between SIGTERM and SIGKILL when + killing external programs. +13Aug05 + - Add gettext macros in autoconf/gettext-macros. + - Modify how localedir is set in configure.in. + - Remove setlocale check (useless). +10Aug05 + - Mark translatable strings in all source files. +08Aug05 + - Create French and Italian translation files (fr.po, it.po). + - Add support for translation in configure and Makefiles. + - Update autoconf/aclocal.m4 so it is automatically created with aclocal + (Note: autoconf/gnome-macros is not used anymore, it may be removed). +30Jul05 + - Fix src/lib/bpipe.c:run_program and run_program_full_output to detect if the watchdog + killed the program, and return an error if it is the case. +26Apr05 + - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter + - lex_open_file now returns NULL if the file can't be opened. All calling functions have + been adapted. + - Remove set_exit_on_error function +07Apr05 + - Fix "unknown device type" problem with DVD devices. + - Fix crash when there is no media in the DVD drive. +09Jan05 + - Update the documentation and ReleaseNotes. +05Jan05 + - Add FreeSpaceCommand in Device (SD configuration file) and implement it. + - Some modifications (again) on how guessed volume names are handled (now it should work). + - Part files on the hard disk are removed if they are empty. +04Jan05 + - Major fixes on how guessed volume names are handled. + - Minor fix in src/stored/append.c. + - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c. + - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD. +03Jan05 + - Add WritePartAfterJob directive in Job resource (Director) + - Add WritePartAfterJob directive in Schedule Resource (Director) + - Implement these new directives +02Jan05 + - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume + name of a mounted device, so the label can be read. + - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W). + - Removed WriteFirstPartCommand directive in Device (SD configuration file). + - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev). +01Jan05 + - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file). + - Implement these directives (volumes can now be restored from a manually written DVD). + - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file). + - Implement these directives (DVD writing now works). + - New function run_program_full_output in src/lib/bpipe.c. + - Lots of bugfixes and cleanups in the new code. +29Dec04 + - Add VolParts field in Media table + - Add MaximumPartSize directive in Device (SD configuration file) + - File Volumes can now be splitted in multiple files ("parts") + - Fix SQL error in sql_list while doing "llist jobmedia" diff --git a/bacula/nb-1.38 b/bacula/nb-1.38 deleted file mode 100644 index b12fa906ad..0000000000 --- a/bacula/nb-1.38 +++ /dev/null @@ -1,6 +0,0 @@ - Technical notes on version 1.38 - Nicolas Boichat - -General: - -Release 1.38.0: 31 October 2005 diff --git a/bacula/src/.cvsignore b/bacula/src/.cvsignore index 07944ff029..463e48169e 100644 --- a/bacula/src/.cvsignore +++ b/bacula/src/.cvsignore @@ -7,4 +7,3 @@ testprogs host.h perlgui python -pyqt diff --git a/bacula/src/cats/update_sqlite_tables.in b/bacula/src/cats/update_sqlite_tables.in index 37be54689a..d0d9e743d3 100755 --- a/bacula/src/cats/update_sqlite_tables.in +++ b/bacula/src/cats/update_sqlite_tables.in @@ -1,6 +1,6 @@ #!/bin/sh # -# shell script to update SQLite from version 1.36 to 1.38 +# shell script to update SQLite from version 1.36 to 1.37.12 # echo " " echo "This script will update a Bacula SQLite database from version 8 to 9" diff --git a/bacula/src/console/.cvsignore b/bacula/src/console/.cvsignore index d2b54c74a8..3a7ec3075f 100644 --- a/bacula/src/console/.cvsignore +++ b/bacula/src/console/.cvsignore @@ -8,4 +8,3 @@ bconsole bconsole.conf startit stopit -static-bconsole diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index 734943bb49..127f5a5299 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -1263,6 +1263,7 @@ static void do_mount_cmd(UAContext *ua, const char *command) return; } set_storage(jcr, store); + drive = get_storage_drive(ua, store); Dmsg3(120, "Found storage, MediaType=%s DevName=%s drive=%d\n", diff --git a/bacula/src/filed/restore.c b/bacula/src/filed/restore.c index f218a6a7e1..e2686298d2 100644 --- a/bacula/src/filed/restore.c +++ b/bacula/src/filed/restore.c @@ -35,7 +35,6 @@ static char rec_header[] = "rechdr %ld %ld %ld %ld %ld"; #ifdef HAVE_LIBZ static const char *zlib_strerror(int stat); #endif - int32_t extract_data(JCR *jcr, BFILE *bfd, POOLMEM *buf, int32_t buflen, uint64_t *addr, int flags); @@ -227,7 +226,7 @@ void do_restore(JCR *jcr) attr->data_stream = decode_stat(attr->attr, &attr->statp, &attr->LinkFI); - if (!is_restore_stream_supported(attr->data_stream)) { + if (!is_stream_supported(attr->data_stream)) { if (!non_support_data++) { Jmsg(jcr, M_ERROR, 0, _("%s stream not supported on this Client.\n"), stream_to_ascii(attr->data_stream)); @@ -291,12 +290,6 @@ void do_restore(JCR *jcr) || stream == STREAM_WIN32_GZIP_DATA) { flags |= FO_GZIP; } - - if (is_win32_stream(stream) && !have_win32_api()) { - set_portable_backup(&bfd); - flags |= FO_WIN32DECOMP; /* "decompose" BackupWrite data */ - } - if (extract_data(jcr, &bfd, sd->msg, sd->msglen, &fileAddr, flags) < 0) { extract = false; bclose(&bfd); @@ -541,14 +534,7 @@ int32_t extract_data(JCR *jcr, BFILE *bfd, POOLMEM *buf, int32_t buflen, Dmsg2(30, "Write %u bytes, total before write=%s\n", wsize, edit_uint64(jcr->JobBytes, ec1)); } - if (flags & FO_WIN32DECOMP) { - if (!processWin32BackupAPIBlock(bfd, wbuf, wsize)) { - berrno be; - Jmsg2(jcr, M_ERROR, 0, _("Write error in Win32 Block Decomposition on %s: %s\n"), - jcr->last_fname, be.strerror(bfd->berrno)); - return -1; - } - } else if (bwrite(bfd, wbuf, wsize) != (ssize_t)wsize) { + if (bwrite(bfd, wbuf, wsize) != (ssize_t)wsize) { berrno be; Jmsg2(jcr, M_ERROR, 0, _("Write error on %s: %s\n"), jcr->last_fname, be.strerror(bfd->berrno)); diff --git a/bacula/src/findlib/bfile.c b/bacula/src/findlib/bfile.c index 691dd314e8..4dc9df5392 100644 --- a/bacula/src/findlib/bfile.c +++ b/bacula/src/findlib/bfile.c @@ -12,14 +12,19 @@ Copyright (C) 2003-2005 Kern Sibbald This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - version 2 as amended with additional clauses defined in the - file LICENSE in the main source directory. + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - the file LICENSE for additional details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. */ @@ -92,141 +97,6 @@ const char *stream_to_ascii(int stream) } } - -void int64_LE2BE(int64_t* pBE, const int64_t v) -{ - /* convert little endian to big endian */ - if (htonl(1) != 1L) { /* no work if on little endian machine */ - memcpy(pBE, &v, sizeof(int64_t)); - } else { - int i; - uint8_t rv[sizeof(int64_t)]; - uint8_t *pv = (uint8_t *) &v; - - for (i = 0; i < 8; i++) { - rv[i] = pv[7 - i]; - } - memcpy(pBE, &rv, sizeof(int64_t)); - } -} - - -void int32_LE2BE(int32_t* pBE, const int32_t v) -{ - /* convert little endian to big endian */ - if (htonl(1) != 1L) { /* no work if on little endian machine */ - memcpy(pBE, &v, sizeof(int32_t)); - } else { - int i; - uint8_t rv[sizeof(int32_t)]; - uint8_t *pv = (uint8_t *) &v; - - for (i = 0; i < 4; i++) { - rv[i] = pv[3 - i]; - } - memcpy(pBE, &rv, sizeof(int32_t)); - } -} - - -bool processWin32BackupAPIBlock (BFILE *bfd, void *pBuffer, ssize_t dwSize) -{ - /* pByte contains the buffer - dwSize the len to be processed. function assumes to be - called in successive incremental order over the complete - BackupRead stream beginning at pos 0 and ending at the end. - */ - - PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT* pContext = &(bfd->win32DecompContext); - bool bContinue = false; - int64_t dwDataOffset = 0; - int64_t dwDataLen; - - /* Win32 Stream Header size without name of stream. - * = sizeof (WIN32_STREAM_ID)- sizeof(WCHAR*); - */ - int32_t dwSizeHeader = 20; - - do { - if (pContext->liNextHeader >= dwSize) { - dwDataLen = dwSize-dwDataOffset; - bContinue = false; /* 1 iteration is enough */ - } - else { - dwDataLen = pContext->liNextHeader-dwDataOffset; - bContinue = TRUE; /* multiple iterations may be necessary */ - } - - /* flush */ - /* copy block of real DATA */ - if (pContext->bIsInData) { - if (bwrite(bfd, ((char *)pBuffer)+dwDataOffset, dwDataLen) != (ssize_t)dwDataLen) - return false; - } - - if (pContext->liNextHeader < dwSize) {/* is a header in this block ? */ - int32_t dwOffsetTarget; - int32_t dwOffsetSource; - - if (pContext->liNextHeader < 0) { - /* start of header was before this block, so we - * continue with the part in the current block - */ - dwOffsetTarget = abs (pContext->liNextHeader); - dwOffsetSource = 0; - } - else { - /* start of header is inside of this block */ - dwOffsetTarget = 0; - dwOffsetSource = pContext->liNextHeader; - } - - int32_t dwHeaderPartLen = dwSizeHeader-dwOffsetTarget; - bool bHeaderIsComplete; - - if (dwHeaderPartLen <= dwSize-dwOffsetSource) - /* header (or rest of header) is completely available - in current block - */ - bHeaderIsComplete = true; - else { - /* header will continue in next block */ - bHeaderIsComplete = false; - dwHeaderPartLen = dwSize-dwOffsetSource; - } - - /* copy the available portion of header to persistent copy */ - memcpy(((char *)&pContext->header_stream)+dwOffsetTarget, ((char *)pBuffer)+dwOffsetSource, dwHeaderPartLen); - - /* recalculate position of next header */ - if (bHeaderIsComplete) { - /* convert stream name size (32 bit little endian) to machine type */ - int32_t dwNameSize; - int32_LE2BE (&dwNameSize, pContext->header_stream.dwStreamNameSize); - dwDataOffset = dwNameSize+pContext->liNextHeader+dwSizeHeader; - - /* convert stream size (64 bit little endian) to machine type */ - int64_LE2BE (&(pContext->liNextHeader), pContext->header_stream.Size); - pContext->liNextHeader += dwDataOffset; - - pContext->bIsInData = pContext->header_stream.dwStreamId == WIN32_BACKUP_DATA; - if (dwDataOffset == dwSize) - bContinue = false; - } - else { - /* stop and continue with next block */ - bContinue = false; - pContext->bIsInData = false; - } - } - } while (bContinue); - - /* set "NextHeader" relative to the beginning of the next block */ - pContext->liNextHeader-= dwSize; - - return TRUE; -} - /* =============================================================== @@ -294,22 +164,22 @@ bool have_win32_api() /* - * Return true if we support the stream - * false if we do not support the stream - * - * This code is running under Win32, so we - * do not need #ifdef on MACOS ... + * Return 1 if we support the stream + * 0 if we do not support the stream */ -bool is_restore_stream_supported(int stream) +bool is_stream_supported(int stream) { + /* No Win32 backup on this machine */ switch (stream) { - -/* Streams known not to be supported */ #ifndef HAVE_LIBZ case STREAM_GZIP_DATA: case STREAM_SPARSE_GZIP_DATA: - case STREAM_WIN32_GZIP_DATA: + return 0; #endif + case STREAM_WIN32_DATA: + case STREAM_WIN32_GZIP_DATA: + return have_win32_api(); + case STREAM_MACOS_FORK_DATA: case STREAM_HFSPLUS_ATTRIBUTES: return false; @@ -318,9 +188,7 @@ bool is_restore_stream_supported(int stream) #ifdef HAVE_LIBZ case STREAM_GZIP_DATA: case STREAM_SPARSE_GZIP_DATA: - case STREAM_WIN32_GZIP_DATA: #endif - case STREAM_WIN32_DATA: case STREAM_UNIX_ATTRIBUTES: case STREAM_FILE_DATA: case STREAM_MD5_SIGNATURE: @@ -346,7 +214,7 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) POOLMEM *win32_fname_wchar; DWORD dwaccess, dwflags, dwshare; - + /* Convert to Windows path format */ win32_fname = get_pool_memory(PM_FNAME); win32_fname_wchar = get_pool_memory(PM_FNAME); @@ -465,8 +333,6 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) } bfd->errmsg = NULL; bfd->lpContext = NULL; - bfd->win32DecompContext.bIsInData = false; - bfd->win32DecompContext.liNextHeader = 0; free_pool_memory(win32_fname_wchar); free_pool_memory(win32_fname); return bfd->mode == BF_CLOSED ? -1 : 1; @@ -665,18 +531,17 @@ bool set_prog(BFILE *bfd, char *prog, JCR *jcr) } -/* - * This code is running on a non-Win32 machine - */ -bool is_restore_stream_supported(int stream) + +bool is_stream_supported(int stream) { /* No Win32 backup on this machine */ - switch (stream) { + switch (stream) { #ifndef HAVE_LIBZ case STREAM_GZIP_DATA: case STREAM_SPARSE_GZIP_DATA: - case STREAM_WIN32_GZIP_DATA: #endif + case STREAM_WIN32_DATA: + case STREAM_WIN32_GZIP_DATA: #ifndef HAVE_DARWIN_OS case STREAM_MACOS_FORK_DATA: case STREAM_HFSPLUS_ATTRIBUTES: @@ -687,9 +552,7 @@ bool is_restore_stream_supported(int stream) #ifdef HAVE_LIBZ case STREAM_GZIP_DATA: case STREAM_SPARSE_GZIP_DATA: - case STREAM_WIN32_GZIP_DATA: #endif - case STREAM_WIN32_DATA: case STREAM_UNIX_ATTRIBUTES: case STREAM_FILE_DATA: case STREAM_MD5_SIGNATURE: @@ -702,13 +565,43 @@ bool is_restore_stream_supported(int stream) case STREAM_MACOS_FORK_DATA: case STREAM_HFSPLUS_ATTRIBUTES: #endif - case 0: /* compatibility with old tapes */ + case 0: /* compatibility with old tapes */ return true; } - return false; + return 0; } +/* Old file reader code */ +#ifdef xxx + if (bfd->prog) { + POOLMEM *ecmd = get_pool_memory(PM_FNAME); + ecmd = edit_job_codes(bfd->jcr, ecmd, bfd->prog, fname); + const char *pmode; + if (flags & O_RDONLY) { + pmode = "r"; + } else { + pmode = "w"; + } + bfd->bpipe = open_bpipe(ecmd, 0, pmode); + if (bfd->bpipe == NULL) { + bfd->berrno = errno; + bfd->fid = -1; + free_pool_memory(ecmd); + return -1; + } + free_pool_memory(ecmd); + if (flags & O_RDONLY) { + bfd->fid = fileno(bfd->bpipe->rfd); + } else { + bfd->fid = fileno(bfd->bpipe->wfd); + } + errno = 0; + return bfd->fid; + } +#endif + + int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) { /* Open reader/writer program */ @@ -722,10 +615,6 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) bfd->berrno = errno; Dmsg1(400, "Open file %d\n", bfd->fid); errno = bfd->berrno; - - bfd->win32DecompContext.bIsInData = false; - bfd->win32DecompContext.liNextHeader = 0; - return bfd->fid; } diff --git a/bacula/src/findlib/bfile.h b/bacula/src/findlib/bfile.h index dc724fa7d4..a38e53c1c1 100644 --- a/bacula/src/findlib/bfile.h +++ b/bacula/src/findlib/bfile.h @@ -6,17 +6,22 @@ * Kern Sibbald May MMIII */ /* - Copyright (C) 2003-2005 Kern Sibbald + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - version 2 as amended with additional clauses defined in the - file LICENSE in the main source directory. + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - the file LICENSE for additional details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. */ @@ -36,28 +41,6 @@ struct Python_IO { }; #endif - -/* this should physically correspond to WIN32_STREAM_ID - * from winbase.h on Win32. We didn't inlcude cStreamName - * as we don't use it and don't need it for a correct struct size. - */ - -#define WIN32_BACKUP_DATA 1 - -typedef struct _BWIN32_STREAM_ID { - int32_t dwStreamId; - int32_t dwStreamAttributes; - int64_t Size; - int32_t dwStreamNameSize; -} BWIN32_STREAM_ID, *LPBWIN32_STREAM_ID ; - - -typedef struct _PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT { - int64_t liNextHeader; - bool bIsInData; - BWIN32_STREAM_ID header_stream; -} PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT; - /* ======================================================= * * W I N D O W S @@ -91,8 +74,6 @@ struct BFILE { char *prog; /* reader/writer program if any */ JCR *jcr; /* jcr for editing job codes */ Python_IO pio; /* Python I/O routines */ - PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT win32DecompContext; /* context for decomposition of win32 backup streams */ - int use_backup_decomp; /* set if using BackupRead Stream Decomposition */ }; HANDLE bget_handle(BFILE *bfd); @@ -113,8 +94,6 @@ struct BFILE { char *prog; /* reader/writer program if any */ JCR *jcr; /* jcr for editing job codes */ Python_IO pio; /* Python I/O routines */ - PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT win32DecompContext; /* context for decomposition of win32 backup streams */ - int use_backup_decomp; /* set if using BackupRead Stream Decomposition */ }; #endif @@ -126,7 +105,7 @@ bool set_portable_backup(BFILE *bfd); bool set_prog(BFILE *bfd, char *prog, JCR *jcr); bool have_win32_api(); bool is_portable_backup(BFILE *bfd); -bool is_restore_stream_supported(int stream); +bool is_stream_supported(int stream); bool is_win32_stream(int stream); char *xberror(BFILE *bfd); /* DO NOT USE -- use berrno class */ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode); @@ -139,6 +118,4 @@ ssize_t bwrite(BFILE *bfd, void *buf, size_t count); off_t blseek(BFILE *bfd, off_t offset, int whence); const char *stream_to_ascii(int stream); -bool processWin32BackupAPIBlock (BFILE *bfd, void *pBuffer, ssize_t dwSize); - #endif /* __BFILE_H */ diff --git a/bacula/src/findlib/find.h b/bacula/src/findlib/find.h index cb1e44e002..798fa25940 100755 --- a/bacula/src/findlib/find.h +++ b/bacula/src/findlib/find.h @@ -7,14 +7,19 @@ Copyright (C) 2001-2005 Kern Sibbald This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - version 2 as amended with additional clauses defined in the - file LICENSE in the main source directory. + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - the file LICENSE for additional details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. */ @@ -85,7 +90,6 @@ enum { #define FO_NO_HARDLINK (1<<15) /* don't handle hard links */ #define FO_IGNORECASE (1<<16) /* Ignore file name case */ #define FO_HFSPLUS (1<<17) /* Resource forks and Finder Info */ -#define FO_WIN32DECOMP (1<<18) /* Use BackupRead decomposition */ struct s_included_file { struct s_included_file *next; diff --git a/bacula/src/gnome2-console/.cvsignore b/bacula/src/gnome2-console/.cvsignore index d1324549a1..37844ba1f1 100644 --- a/bacula/src/gnome2-console/.cvsignore +++ b/bacula/src/gnome2-console/.cvsignore @@ -6,4 +6,3 @@ gnome-console.conf 2 3 main.c -static-gnome-console diff --git a/bacula/src/lib/Makefile.in b/bacula/src/lib/Makefile.in index 862ebf8d80..018628ccc2 100644 --- a/bacula/src/lib/Makefile.in +++ b/bacula/src/lib/Makefile.in @@ -24,7 +24,7 @@ dummy: LIBSRCS = alloc.c attr.c base64.c berrno.c bsys.c bget_msg.c \ bnet.c bnet_server.c \ - bpipe.c bshm.c bsnprintf.c btime.c \ + bpipe.c bshm.c btime.c \ cram-md5.c crc32.c daemon.c edit.c fnmatch.c \ hmac.c idcache.c jcr.c lex.c alist.c dlist.c \ md5.c message.c mem_pool.c parse_conf.c \ @@ -37,7 +37,7 @@ LIBSRCS = alloc.c attr.c base64.c berrno.c bsys.c bget_msg.c \ LIBOBJS = alloc.o attr.o base64.o berrno.o bsys.o bget_msg.o \ bnet.o bnet_server.o \ - bpipe.o bshm.o bsnprintf.o btime.o \ + bpipe.o bshm.o btime.o \ cram-md5.o crc32.o daemon.o edit.o fnmatch.o \ hmac.o idcache.o jcr.o lex.o alist.o dlist.o \ md5.o message.o mem_pool.o parse_conf.o \ @@ -99,15 +99,7 @@ sha1sum: sha1.o $(CXX) -DSHA1_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c $(CXX) $(LDFLAGS) -L. -o $@ sha1.o $(LIBS) $(DLIB) -lbac $(OPENSSL_LIBS) -lm rm -f sha1.o - $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c - -bsnprintf: bsnprintf.o - rm -f bsnprintf.o - $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c - $(CXX) $(LDFLAGS) -L. -o $@ bsnprintf.o $(LIBS) $(DLIB) -lbac $(OPENSSL_LIBS) -lm - rm -f bsnprintf.o - $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c - + $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c install: diff --git a/bacula/src/lib/bsnprintf.c b/bacula/src/lib/bsnprintf.c deleted file mode 100644 index bd6c2a19d4..0000000000 --- a/bacula/src/lib/bsnprintf.c +++ /dev/null @@ -1,913 +0,0 @@ -/* - * Copyright Patrick Powell 1995 - * - * This code is based on code written by Patrick Powell - * (papowell@astart.com) It may be used for any purpose as long - * as this notice remains intact on all source code distributions. - * - * Adapted for Bacula -- note there were lots of bugs in - * the original code: %lld and %s were seriously broken, and - * with FP turned off %f seg faults. - * Kern Sibbald, November MMV - * - * Version $Id$ - */ - - -#include "bacula.h" -#define FP_OUTPUT 1 /* Bacula uses floating point */ - -/* - Temp only for me -- NOT YET READY FOR USE -- seems to work fine - on Linux, but doesn't build correctly on Win32 - */ -#ifdef USE_BSNPRINTF - -#ifdef HAVE_LONG_DOUBLE -#define LDOUBLE long double -#else -#define LDOUBLE double -#endif - -int bvsnprintf(char *buffer, int32_t maxlen, const char *format, va_list args); -static int32_t fmtstr(char *buffer, int32_t currlen, int32_t maxlen, - char *value, int flags, int min, int max); -static int32_t fmtint(char *buffer, int32_t currlen, int32_t maxlen, - int64_t value, int base, int min, int max, int flags); - -#ifdef FP_OUTPUT -# ifdef HAVE_FCVTL -# define fcvt fcvtl -# endif -static int32_t fmtfp(char *buffer, int32_t currlen, int32_t maxlen, - LDOUBLE fvalue, int min, int max, int flags); -#else -#define fmtfp(b, c, m, f, min, max, fl) currlen -#endif - -#define outch(c) {int len=currlen; if (currlen++ < maxlen) { buffer[len] = (c);}} - - -/* format read states */ -#define DP_S_DEFAULT 0 -#define DP_S_FLAGS 1 -#define DP_S_MIN 2 -#define DP_S_DOT 3 -#define DP_S_MAX 4 -#define DP_S_MOD 5 -#define DP_S_CONV 6 -#define DP_S_DONE 7 - -/* format flags - Bits */ -#define DP_F_MINUS (1 << 0) -#define DP_F_PLUS (1 << 1) -#define DP_F_SPACE (1 << 2) -#define DP_F_NUM (1 << 3) -#define DP_F_ZERO (1 << 4) -#define DP_F_UP (1 << 5) -#define DP_F_UNSIGNED (1 << 6) -#define DP_F_DOT (1 << 7) - -/* Conversion Flags */ -#define DP_C_INT16 1 -#define DP_C_INT32 2 -#define DP_C_LDOUBLE 3 -#define DP_C_INT64 4 - -#define char_to_int(p) ((p)- '0') -#define MAX(p,q) (((p) >= (q)) ? (p) : (q)) - -/* - You might ask why does Bacula have it's own printf routine? Well, - There are two reasons: 1. Here (as opposed to library routines), we - define %d and %ld to be 32 bit; %lld and %q to be 64 bit. 2. We - disable %n for security reasons. - */ - -int bsnprintf(char *str, int32_t size, const char *fmt, ...) -{ - va_list arg_ptr; - int len; - - va_start(arg_ptr, fmt); - len = bvsnprintf(str, size, fmt, arg_ptr); - va_end(arg_ptr); - return len; -} - - -int bvsnprintf(char *buffer, int32_t maxlen, const char *format, va_list args) -{ - char ch; - int64_t value; - char *strvalue; - int min; - int max; - int state; - int flags; - int cflags; - int32_t currlen; - int base; - int junk; -#ifdef FP_OUTPUT - LDOUBLE fvalue; -#endif - - state = DP_S_DEFAULT; - currlen = flags = cflags = min = 0; - max = -1; - ch = *format++; - *buffer = 0; - - while (state != DP_S_DONE) { - if ((ch == '\0') || (currlen >= maxlen)) - state = DP_S_DONE; - - switch (state) { - case DP_S_DEFAULT: - if (ch == '%') { - state = DP_S_FLAGS; - } else { - outch(ch); - } - ch = *format++; - break; - case DP_S_FLAGS: - switch (ch) { - case '-': - flags |= DP_F_MINUS; - ch = *format++; - break; - case '+': - flags |= DP_F_PLUS; - ch = *format++; - break; - case ' ': - flags |= DP_F_SPACE; - ch = *format++; - break; - case '#': - flags |= DP_F_NUM; - ch = *format++; - break; - case '0': - flags |= DP_F_ZERO; - ch = *format++; - break; - default: - state = DP_S_MIN; - break; - } - break; - case DP_S_MIN: - if (isdigit((unsigned char)ch)) { - min = 10 * min + char_to_int(ch); - ch = *format++; - } else if (ch == '*') { -#ifdef SECURITY_PROBLEM - min = va_arg(args, int); -#else - junk = va_arg(args, int); -#endif - ch = *format++; - state = DP_S_DOT; - } else - state = DP_S_DOT; - break; - case DP_S_DOT: - if (ch == '.') { - state = DP_S_MAX; - flags |= DP_F_DOT; - ch = *format++; - } else - state = DP_S_MOD; - break; - case DP_S_MAX: - if (isdigit((unsigned char)ch)) { - if (max < 0) - max = 0; - max = 10 * max + char_to_int(ch); - ch = *format++; - } else if (ch == '*') { -#ifdef SECURITY_PROBLEM - max = va_arg(args, int); -#else - junk = va_arg(args, int); -#endif - ch = *format++; - state = DP_S_MOD; - } else - state = DP_S_MOD; - break; - case DP_S_MOD: - switch (ch) { - case 'h': - cflags = DP_C_INT16; - ch = *format++; - break; - case 'l': - cflags = DP_C_INT32; - ch = *format++; - if (ch == 'l') { /* It's a long long */ - cflags = DP_C_INT64; - ch = *format++; - } - break; - case 'L': - cflags = DP_C_LDOUBLE; - ch = *format++; - break; - default: - break; - } - state = DP_S_CONV; - break; - case DP_S_CONV: - switch (ch) { - case 'd': - case 'i': - if (cflags == DP_C_INT16) { - value = va_arg(args, int32_t); - } else if (cflags == DP_C_INT32) { - value = va_arg(args, int32_t); - } else if (cflags == DP_C_INT64) { - value = va_arg(args, int64_t); - } else { - value = va_arg(args, int); - } - currlen = fmtint(buffer, currlen, maxlen, value, 10, min, max, flags); - break; - case 'X': - case 'x': - case 'o': - case 'u': - if (ch == 'o') { - base = 8; - } else if (ch == 'x') { - base = 16; - } else if (ch == 'X') { - base = 16; - flags |= DP_F_UP; - } else { - base = 10; - } - flags |= DP_F_UNSIGNED; - if (cflags == DP_C_INT16) { - value = va_arg(args, uint32_t); - } else if (cflags == DP_C_INT32) { - value = (long)va_arg(args, uint32_t); - } else if (cflags == DP_C_INT64) { - value = (int64_t) va_arg(args, uint64_t); - } else { - value = (long)va_arg(args, unsigned int); - } - currlen = fmtint(buffer, currlen, maxlen, value, base, min, max, flags); - break; - case 'f': - if (cflags == DP_C_LDOUBLE) { - fvalue = va_arg(args, LDOUBLE); - } else { - fvalue = va_arg(args, double); - } - currlen = fmtfp(buffer, currlen, maxlen, fvalue, min, max, flags); - break; - case 'E': - flags |= DP_F_UP; - case 'e': - if (cflags == DP_C_LDOUBLE) { - fvalue = va_arg(args, LDOUBLE); - } else { - fvalue = va_arg(args, double); - } - currlen = fmtfp(buffer, currlen, maxlen, fvalue, min, max, flags); - break; - case 'G': - flags |= DP_F_UP; - case 'g': - if (cflags == DP_C_LDOUBLE) { - fvalue = va_arg(args, LDOUBLE); - } else { - fvalue = va_arg(args, double); - } - currlen = fmtfp(buffer, currlen, maxlen, fvalue, min, max, flags); - break; - case 'c': - outch(va_arg(args, int)); - break; - case 's': - strvalue = va_arg(args, char *); - currlen = fmtstr(buffer, currlen, maxlen, strvalue, flags, min, max); - break; - case 'p': - strvalue = va_arg(args, char *); - currlen = fmtint(buffer, currlen, maxlen, (long)strvalue, 16, min, max, flags); - break; - case 'n': - if (cflags == DP_C_INT16) { - int16_t *num; - num = va_arg(args, int16_t *); -#ifdef SECURITY_PROBLEM - *num = currlen; -#endif - } else if (cflags == DP_C_INT32) { - int32_t *num; - num = va_arg(args, int32_t *); -#ifdef SECURITY_PROBLEM - *num = (int32_t)currlen; -#endif - } else if (cflags == DP_C_INT64) { - int64_t *num; - num = va_arg(args, int64_t *); -#ifdef SECURITY_PROBLEM - *num = (int64_t)currlen; -#endif - } else { - int32_t *num; - num = va_arg(args, int32_t *); -#ifdef SECURITY_PROBLEM - *num = (int32_t)currlen; -#endif - } - break; - case '%': - outch(ch); - break; - case 'w': - /* not supported yet, treat as next char */ - ch = *format++; - break; - default: - /* Unknown, skip */ - break; - } - ch = *format++; - state = DP_S_DEFAULT; - flags = cflags = min = 0; - max = -1; - break; - case DP_S_DONE: - break; - default: - /* hmm? */ - break; /* some picky compilers need this */ - } - } - if (currlen < maxlen - 1) { - buffer[currlen] = '\0'; - } else { - buffer[maxlen - 1] = '\0'; - } - return currlen; -} - -static int32_t fmtstr(char *buffer, int32_t currlen, int32_t maxlen, - char *value, int flags, int min, int max) -{ - int padlen, strln; /* amount to pad */ - int cnt = 0; - - if (value == 0) { - value = ""; - } - - if (flags & DP_F_DOT && max < 0) { /* Max not specified */ - max = 0; - } else if (max < 0) { - max = maxlen; - } - strln = strlen(value); - if (strln > max) { - strln = max; /* truncate to max */ - } - padlen = min - strln; - if (padlen < 0) { - padlen = 0; - } - if (flags & DP_F_MINUS) { - padlen = -padlen; /* Left Justify */ - } - - while (padlen > 0) { - outch(' '); - --padlen; - } - while (*value && (cnt < max)) { - outch(*value++); - ++cnt; - } - while (padlen < 0) { - outch(' '); - ++padlen; - } - return currlen; -} - -/* Have to handle DP_F_NUM (ie 0x and 0 alternates) */ - -static int32_t fmtint(char *buffer, int32_t currlen, int32_t maxlen, - int64_t value, int base, int min, int max, int flags) -{ - int signvalue = 0; - uint64_t uvalue; - char convert[20]; - int place = 0; - int spadlen = 0; /* amount to space pad */ - int zpadlen = 0; /* amount to zero pad */ - int caps = 0; - - if (max < 0) { - max = 0; - } - - uvalue = value; - - if (!(flags & DP_F_UNSIGNED)) { - if (value < 0) { - signvalue = '-'; - uvalue = -value; - } else if (flags & DP_F_PLUS) { /* Do a sign (+/i) */ - signvalue = '+'; - } else if (flags & DP_F_SPACE) { - signvalue = ' '; - } - } - - if (flags & DP_F_UP) { - caps = 1; /* Should characters be upper case? */ - } - - do { - convert[place++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef") - [uvalue % (unsigned)base]; - uvalue = (uvalue / (unsigned)base); - } while (uvalue && (place < 20)); - if (place == 20) { - place--; - } - convert[place] = 0; - - zpadlen = max - place; - spadlen = min - MAX(max, place) - (signvalue ? 1 : 0); - if (zpadlen < 0) - zpadlen = 0; - if (spadlen < 0) - spadlen = 0; - if (flags & DP_F_ZERO) { - zpadlen = MAX(zpadlen, spadlen); - spadlen = 0; - } - if (flags & DP_F_MINUS) - spadlen = -spadlen; /* Left Justifty */ - -#ifdef DEBUG_SNPRINTF - printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", - zpadlen, spadlen, min, max, place); -#endif - - /* Spaces */ - while (spadlen > 0) { - outch(' '); - --spadlen; - } - - /* Sign */ - if (signvalue) { - outch(signvalue); - } - - /* Zeros */ - if (zpadlen > 0) { - while (zpadlen > 0) { - outch('0'); - --zpadlen; - } - } - - /* Digits */ - while (place > 0) { - outch(convert[--place]); - } - - /* Left Justified spaces */ - while (spadlen < 0) { - outch(' '); - ++spadlen; - } - return currlen; -} - -#ifdef FP_OUTPUT - -static LDOUBLE abs_val(LDOUBLE value) -{ - LDOUBLE result = value; - - if (value < 0) - result = -value; - - return result; -} - -static LDOUBLE pow10(int exp) -{ - LDOUBLE result = 1; - - while (exp) { - result *= 10; - exp--; - } - - return result; -} - -static long round(LDOUBLE value) -{ - long intpart; - - intpart = (long)value; - value = value - intpart; - if (value >= 0.5) - intpart++; - - return intpart; -} - -static int32_t fmtfp(char *buffer, int32_t currlen, int32_t maxlen, - LDOUBLE fvalue, int min, int max, int flags) -{ - int signvalue = 0; - LDOUBLE ufvalue; -#ifndef HAVE_FCVT - char iconvert[20]; - char fconvert[20]; -#else - char iconvert[311]; - char fconvert[311]; - char *result; - int dec_pt, sig; - int r_length; - extern char *fcvt(double value, int ndigit, int *decpt, int *sign); -#endif - int iplace = 0; - int fplace = 0; - int padlen = 0; /* amount to pad */ - int zpadlen = 0; - int caps = 0; - int64_t intpart; - int64_t fracpart; - - /* - * AIX manpage says the default is 0, but Solaris says the default - * is 6, and sprintf on AIX defaults to 6 - */ - if (max < 0) - max = 6; - - ufvalue = abs_val(fvalue); - - if (fvalue < 0) - signvalue = '-'; - else if (flags & DP_F_PLUS) /* Do a sign (+/i) */ - signvalue = '+'; - else if (flags & DP_F_SPACE) - signvalue = ' '; - -#if 0 - if (flags & DP_F_UP) - caps = 1; /* Should characters be upper case? */ -#endif - -#ifndef HAVE_FCVT - intpart = (long)ufvalue; - - /* - * Sorry, we only support 9 digits past the decimal because of our - * conversion method - */ - if (max > 9) - max = 9; - - /* We "cheat" by converting the fractional part to integer by - * multiplying by a factor of 10 - */ - fracpart = round((pow10(max)) * (ufvalue - intpart)); - - if (fracpart >= pow10(max)) { - intpart++; - fracpart -= (int64_t)pow10(max); - } -#ifdef DEBUG_SNPRINTF - printf("fmtfp: %g %d.%d min=%d max=%d\n", - (double)fvalue, intpart, fracpart, min, max); -#endif - - /* Convert integer part */ - do { - iconvert[iplace++] = - (caps ? "0123456789ABCDEF" : "0123456789abcdef")[intpart % 10]; - intpart = (intpart / 10); - } while (intpart && (iplace < 20)); - if (iplace == 20) - iplace--; - iconvert[iplace] = 0; - - /* Convert fractional part */ - do { - fconvert[fplace++] = - (caps ? "0123456789ABCDEF" : "0123456789abcdef")[fracpart % 10]; - fracpart = (fracpart / 10); - } while (fracpart && (fplace < 20)); - if (fplace == 20) - fplace--; - fconvert[fplace] = 0; -#else /* use fcvt() */ - if (max > 310) - max = 310; -# ifdef HAVE_FCVTL - result = fcvtl(ufvalue, max, &dec_pt, &sig); -# else - result = fcvt(ufvalue, max, &dec_pt, &sig); -# endif - - r_length = strlen(result); - - /* - * Fix broken fcvt implementation returns.. - */ - - if (r_length == 0) { - result[0] = '0'; - result[1] = '\0'; - r_length = 1; - } - - if (r_length < dec_pt) - dec_pt = r_length; - - if (dec_pt <= 0) { - iplace = 1; - iconvert[0] = '0'; - iconvert[1] = '\0'; - - fplace = 0; - - while (r_length) - fconvert[fplace++] = result[--r_length]; - - while ((dec_pt < 0) && (fplace < max)) { - fconvert[fplace++] = '0'; - dec_pt++; - } - } else { - int c; - - iplace = 0; - for (c = dec_pt; c; iconvert[iplace++] = result[--c]); - iconvert[iplace] = '\0'; - - result += dec_pt; - fplace = 0; - - for (c = (r_length - dec_pt); c; fconvert[fplace++] = result[--c]); - } -#endif /* HAVE_FCVT */ - - /* -1 for decimal point, another -1 if we are printing a sign */ - padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0); - zpadlen = max - fplace; - if (zpadlen < 0) { - zpadlen = 0; - } - if (padlen < 0) { - padlen = 0; - } - if (flags & DP_F_MINUS) { - padlen = -padlen; /* Left Justifty */ - } - - if ((flags & DP_F_ZERO) && (padlen > 0)) { - if (signvalue) { - outch(signvalue); - --padlen; - signvalue = 0; - } - while (padlen > 0) { - outch('0'); - --padlen; - } - } - while (padlen > 0) { - outch(' '); - --padlen; - } - if (signvalue) { - outch(signvalue); - } - - while (iplace > 0) { - outch(iconvert[--iplace]); - } - - -#ifdef DEBUG_SNPRINTF - printf("fmtfp: fplace=%d zpadlen=%d\n", fplace, zpadlen); -#endif - - /* - * Decimal point. This should probably use locale to find the correct - * char to print out. - */ - if (max > 0) { - outch('.'); - while (fplace > 0) { - outch(fconvert[--fplace]); - } - } - - while (zpadlen > 0) { - outch('0'); - --zpadlen; - } - - while (padlen < 0) { - outch(' '); - ++padlen; - } - return currlen; -} -#endif /* FP_OUTPUT */ - - -#ifdef TEST_PROGRAM - -#ifndef LONG_STRING -#define LONG_STRING 1024 -#endif -int main(void) -{ - char buf1[LONG_STRING]; - char buf2[LONG_STRING]; - -#ifdef FP_OUTPUT - char *fp_fmt[] = { - "%-1.5f", - "%1.5f", - "%123.9f", - "%10.5f", - "% 10.5f", - "%+22.9f", - "%+4.9f", - "%01.3f", - "%4f", - "%3.1f", - "%3.2f", - "%.0f", - "%.1f", - NULL - }; - double fp_nums[] = { -1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996, - 0.9996, 1.996, 4.136, 6442452944.1234, 0 - }; -#endif - char *int_fmt[] = { - "%-1.5d", - "%1.5d", - "%123.9d", - "%5.5d", - "%10.5d", - "% 10.5d", - "%+22.33d", - "%01.3d", - "%4d", - "%-1.5ld", - "%1.5ld", - "%123.9ld", - "%5.5ld", - "%10.5ld", - "% 10.5ld", - "%+22.33ld", - "%01.3ld", - "%4ld", - NULL - }; - long int_nums[] = { -1, 134, 91340, 341, 0203, 0 }; - - char *ll_fmt[] = { - "%-1.8lld", - "%1.8lld", - "%123.9lld", - "%5.8lld", - "%10.5lld", - "% 10.8lld", - "%+22.33lld", - "%01.3lld", - "%4lld", - NULL - }; - int64_t ll_nums[] = { -1976, 789134567890LL, 91340, 34123, 0203, 0 }; - - char *s_fmt[] = { - "%-1.8s", - "%1.8s", - "%123.9s", - "%5.8s", - "%10.5s", - "% 10.3s", - "%+22.1s", - "%01.3s", - "%s", - "%10s", - "%3s", - "%3.0s", - "%3.s", - NULL - }; - char *s_nums[] = { "abc", "def", "ghi", "123", "4567", "a", "bb", "ccccccc", NULL}; - - - int x, y; - int fail = 0; - int num = 0; - - printf("Testing snprintf format codes against system sprintf...\n"); - -#ifdef FP_OUTPUT - for (x = 0; fp_fmt[x] != NULL; x++) - for (y = 0; fp_nums[y] != 0; y++) { - bsnprintf(buf1, sizeof(buf1), fp_fmt[x], fp_nums[y]); - sprintf(buf2, fp_fmt[x], fp_nums[y]); - if (strcmp(buf1, buf2)) { - printf - ("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf = %s\n", - fp_fmt[x], buf1, buf2); - fail++; - } - num++; - } -#endif - - for (x = 0; int_fmt[x] != NULL; x++) - for (y = 0; int_nums[y] != 0; y++) { - int pcount, bcount; - bcount = bsnprintf(buf1, sizeof(buf1), int_fmt[x], int_nums[y]); - printf("%s\n", buf1); - pcount = sprintf(buf2, int_fmt[x], int_nums[y]); - if (bcount != pcount) { - printf("bsnprintf count %d doesn't match sprintf count %d\n", - bcount, pcount); - } - if (strcmp(buf1, buf2)) { - printf - ("bsnprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf = %s\n", - int_fmt[x], buf1, buf2); - fail++; - } - num++; - } - - for (x = 0; ll_fmt[x] != NULL; x++) { - for (y = 0; ll_nums[y] != 0; y++) { - int pcount, bcount; - bcount = bsnprintf(buf1, sizeof(buf1), ll_fmt[x], ll_nums[y]); - printf("%s\n", buf1); - pcount = sprintf(buf2, ll_fmt[x], ll_nums[y]); - if (bcount != pcount) { - printf("bsnprintf count %d doesn't match sprintf count %d\n", - bcount, pcount); - } - if (strcmp(buf1, buf2)) { - printf - ("bsnprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf = %s\n", - ll_fmt[x], buf1, buf2); - fail++; - } - num++; - } - } - - for (x = 0; s_fmt[x] != NULL; x++) { - for (y = 0; s_nums[y] != 0; y++) { - int pcount, bcount; - bcount = bsnprintf(buf1, sizeof(buf1), s_fmt[x], s_nums[y]); - printf("%s\n", buf1); - pcount = sprintf(buf2, s_fmt[x], s_nums[y]); - if (bcount != pcount) { - printf("bsnprintf count %d doesn't match sprintf count %d\n", - bcount, pcount); - } - if (strcmp(buf1, buf2)) { - printf - ("bsnprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf = %s\n", - s_fmt[x], buf1, buf2); - fail++; - } - num++; - } - } - - - printf("%d tests failed out of %d.\n", fail, num); -} -#endif /* TEST_PROGRAM */ - -#endif /* USE_BSNPRINTF */ diff --git a/bacula/src/lib/bsys.c b/bacula/src/lib/bsys.c index 67c163242b..d41d971077 100644 --- a/bacula/src/lib/bsys.c +++ b/bacula/src/lib/bsys.c @@ -216,8 +216,6 @@ void *bcalloc (size_t size1, size_t size2) return buf; } -/* Code now in src/lib/bsnprintf.c */ -#ifndef USE_BSNPRINTF #define BIG_BUF 5000 /* @@ -261,7 +259,6 @@ int bvsnprintf(char *str, int32_t size, const char *format, va_list ap) return len; #endif } -#endif /* USE_BSNPRINTF */ #ifndef HAVE_LOCALTIME_R diff --git a/bacula/src/stored/askdir.c b/bacula/src/stored/askdir.c index b9f4340b6c..08176ce3a9 100644 --- a/bacula/src/stored/askdir.c +++ b/bacula/src/stored/askdir.c @@ -477,7 +477,7 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) stat = wait_for_sysop(dcr); if (dev->poll) { - Dmsg1(000, "Poll timeout in create append vol on device %s\n", dev->print_name()); + Dmsg1(400, "Poll timeout in create append vol on device %s\n", dev->print_name()); continue; } @@ -486,7 +486,7 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) Mmsg(dev->errmsg, _("Max time exceeded waiting to mount Storage Device %s for Job %s\n"), dev->print_name(), jcr->Job); Jmsg(jcr, M_FATAL, 0, "%s", dev->errmsg); - Dmsg1(000, "Gave up waiting on device %s\n", dev->print_name()); + Dmsg1(400, "Gave up waiting on device %s\n", dev->print_name()); return false; /* exceeded maximum waits */ } continue; @@ -503,7 +503,7 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) Jmsg(jcr, M_WARNING, 0, _("pthread error in mount_next_volume stat=%d ERR=%s\n"), stat, be.strerror(stat)); } - Dmsg1(000, "Someone woke me for device %s\n", dev->print_name()); + Dmsg1(400, "Someone woke me for device %s\n", dev->print_name()); /* If no VolumeName, and cannot get one, try again */ P(dev->mutex); @@ -531,7 +531,7 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) } set_jcr_job_status(jcr, JS_Running); dir_send_job_status(jcr); - Dmsg0(000, "leave dir_ask_sysop_to_mount_create_appendable_volume\n"); + Dmsg0(400, "leave dir_ask_sysop_to_mount_create_appendable_volume\n"); return true; } diff --git a/bacula/src/stored/bextract.c b/bacula/src/stored/bextract.c index 92fcbd7618..a882a883d3 100644 --- a/bacula/src/stored/bextract.c +++ b/bacula/src/stored/bextract.c @@ -293,7 +293,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) if (file_is_included(ff, attr->fname) && !file_is_excluded(ff, attr->fname)) { attr->data_stream = decode_stat(attr->attr, &attr->statp, &attr->LinkFI); - if (!is_restore_stream_supported(attr->data_stream)) { + if (!is_stream_supported(attr->data_stream)) { if (!non_support_data++) { Jmsg(jcr, M_ERROR, 0, _("%s stream not supported on this Client.\n"), stream_to_ascii(attr->data_stream)); diff --git a/bacula/src/stored/dev.c b/bacula/src/stored/dev.c index 7dc108cab7..b01c670383 100644 --- a/bacula/src/stored/dev.c +++ b/bacula/src/stored/dev.c @@ -359,25 +359,24 @@ void DEVICE::open_tape_device(DCR *dcr, int omode) /* Use system open() */ while ((fd = ::open(dev_name, mode+nonblocking, MODE_RW)) < 0) { berrno be; - dev_errno = errno; - Dmsg5(050, "Open omode=%d mode=%x nonblock=%d error errno=%d ERR=%s\n", - omode, mode, nonblocking, errno, be.strerror()); - if (dev_errno == EINTR || dev_errno == EAGAIN) { + Dmsg2(100, "Open error errno=%d ERR=%s\n", errno, be.strerror()); + if (errno == EINTR || errno == EAGAIN) { Dmsg0(100, "Continue open\n"); continue; } /* Busy wait for specified time (default = 5 mins) */ - if (dev_errno == EBUSY && timeout-- > 0) { + if (errno == EBUSY && timeout-- > 0) { Dmsg2(100, "Device %s busy. ERR=%s\n", print_name(), be.strerror()); bmicrosleep(1, 0); continue; } /* IO error (no volume) try 10 times every 6 seconds */ - if (dev_errno == EIO && ioerrcnt-- > 0) { + if (errno == EIO && ioerrcnt-- > 0) { bmicrosleep(5, 0); Dmsg0(100, "Continue open\n"); continue; } + dev_errno = errno; Mmsg2(errmsg, _("Unable to open device %s: ERR=%s\n"), print_name(), be.strerror(dev_errno)); /* Stop any open timer we set */ diff --git a/bacula/src/version.h b/bacula/src/version.h index f8c64a1678..08d3fef49a 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -3,9 +3,9 @@ */ #undef VERSION -#define VERSION "1.39.0" -#define BDATE "13 November 2005" -#define LSMDATE "13Nov05" +#define VERSION "1.38.1" +#define BDATE "14 November 2005" +#define LSMDATE "14Nov05" /* Debug flags */ #undef DEBUG @@ -15,7 +15,7 @@ #define TRACE_FILE 1 /* If this is set stdout will not be closed on startup */ -#define DEVELOPER 1 +/* #define DEVELOPER 1 */ /* #define USE_BSNPRINTF */ diff --git a/bacula/updatedb/kes-1.38 b/bacula/updatedb/kes-1.38 new file mode 100644 index 0000000000..a6c7fff92e --- /dev/null +++ b/bacula/updatedb/kes-1.38 @@ -0,0 +1,19 @@ + Technical notes on version 1.38 + Kern Sibbald + +General: + +Changes to 1.38.0: +- Modify configure.in to add execute option to sqlite3 catalog + scripts. +- Create update_xxx_table_8_to_9 scripts for updatedb +- Fix wrong variable in bpipe.c debug output reported by user. +- Fix improper placement of encode_and_send_attributes() in + FD backup.c causing first file of non-portable Win32 backup + to have wrong stream. Reported by Thorsten. +- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in + autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. +- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested + by user. Fixes bug #456. + +Released 1.38.0 (28Oct05): 31 October 2005 diff --git a/regress/.cvsignore b/regress/.cvsignore deleted file mode 100644 index 16455a941f..0000000000 --- a/regress/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -build -bin -test.out -weird-files -weird-files2 -diff -tmp -working -Makefile -test1.out -time.out diff --git a/regress/Makefile.in b/regress/Makefile.in deleted file mode 100644 index d5d82a5053..0000000000 --- a/regress/Makefile.in +++ /dev/null @@ -1,72 +0,0 @@ -# -# Makefile for Bacula regression testing -# -# Note, Makefile is built from Makefile.in, which you should not really -# need to change, by envoking: -# -# ./config -# e.g. -# -# ./config kern.conf -# -# - -# suck in user's configuration -@CONFIG@ - -first_rule: all - -all: - -setup: bacula - -# -# Some machines cannot handle the sticky bit and other garbage that -# is in weird-files, so we load and run it only on Linux machines. -# -bacula: all sed - @rm -rf bin build weird-files tmp - (if test x`uname` = xLinux -o x`uname` = xFreeBSD ; then \ - tar xfz weird-files.tar.gz ;\ - fi) - rm -rf tmp working - mkdir tmp working - echo "Doing: scripts/setup ${BACULA_SOURCE} ${EMAIL} ${WHICHDB} ${TCPWRAPPERS}" - scripts/setup ${BACULA_SOURCE} ${EMAIL} ${WHICHDB} ${TCPWRAPPERS} ${SMTP_HOST} - -sed: - echo "Doing: scripts/do_sed ${EMAIL} ${TAPE_DRIVE} ${AUTOCHANGER} ${AUTOCHANGER_PATH} ${TAPE_DRIVE1} ${SMTP_HOST}" - scripts/do_sed ${EMAIL} ${TAPE_DRIVE} ${AUTOCHANGER} ${AUTOCHANGER_PATH} ${TAPE_DRIVE1} ${SMTP_HOST} - -# Run all non-root userid tests -test: - ./all-non-root-tests - -# run all file and tape tests -full_test: - ./all-tape-and-file-tests - -# These tests require you to run as root -root_test: - ./all-root-tests - -clean: - scripts/cleanup - rm -f /tmp/file-list - rm -f tmp/* working/* - rm -f test.out - rm -f diff - rm -f 1 2 3 scripts/1 scripts/2 scripts/3 tests/1 tests/2 tests/3 - @find . -name .#* -exec $(RMF) {} \; - -# Reset our userid after running as root -reset: - chown -R ${USER}:${USER} . tmp working - scripts/cleanup - rm -f /tmp/file-list tmp/file-list - rm -f tmp/* working/* - -distclean: clean - rm -rf bin build weird-files weird-files weird-files2 tmp working - rm -f scripts/*.conf - diff --git a/regress/README b/regress/README deleted file mode 100644 index 96b9ce57e9..0000000000 --- a/regress/README +++ /dev/null @@ -1,98 +0,0 @@ - Bacula Regression - Kern Sibbald - -This is Bacula's regression script directory. - -To set it up, create your personal configuration file, by -copying prototype.conf to xxx.conf or simply editing prototype.conf -directly. - -Then edit your conf file and define appropriate values -for the variables that are in that file. If you want to see -a real example, look at kern.conf, but please don't use my -email address! - -Make sure that depkgs is pre-built if it isn't -already: (cd your-depkgs; make sqlite). - -Then do: - - ./config xxx.conf - make setup - -You run the above one time. This will build a Makefile from -Makefile.in and your xxx.conf file, copy the Bacula source, -configure, build it, and configure all the Bacula scripts -and conf files. If you change your source, you will need to -redo this command. - -Then you can run any of the tests in the tests subdirectory. -Each test whose name ends in -root requires you to be root for -a resonable run. Each test is totally independent of any other -test. Aside from the required "make setup", each test is totally -self-initalizing and should clean up after itself. - -Not all the tests yet report OK. This is simply because there are -some spurious differences that I haven't yet taken the time to -eliminate. The working scrips as of 24 Apr 03 are: - -backup-bacula-test -sparse-test -compressed-test -sparse-compressed-test -two-jobs-test -wierd-files-test -verify-vol-test - -The tests expect you to execute them from the main regress -directory! - -You can run them individually as: - - tests/two-jobs-test - -or all non-root tests (my normal testing under my account) - - ./all-non-root-tests - -or all tests (I only run these before a production release): - - su - ./all-tests - - -after running the root tests, while still root, it is a good idea -to do: - - make reset - -this cleans up any files that may be created with root permissions. - -If you want to add more tests, do so by putting the shell script -in the tests subdirectory. Be careful when adding (or better not) -new clients, pools, and such to the test-bacula-dir.conf.in file -as it may invalidate a good number of tests, which respond to -questions by answering with a number (i.e. the order of the selection -list is known). It might be better to add your own testb-bacula... -configuration file. - -To avoid re-doing a make setup if you have made a change to the -conf files, and you do not need a new copy of the source, you can simply do: - - make sed - -Debugging failed tests: -The simplest thing to do is to edit tests/xxxx where xxxx is the name of -a or the test that is failing and change all: - - @output - -to - - @tee - -re-run the test. The output will display on your terminal. In rare cases, -for example to get bacula debug output, you might want to remove the -"2>&1 >/dev/null" from the end of the bin/bacula call or from the end -of the diff call, assuming you want to "see" the diff output. - diff --git a/regress/all-non-root-2tape-tests b/regress/all-non-root-2tape-tests deleted file mode 100755 index 5201731263..0000000000 --- a/regress/all-non-root-2tape-tests +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Run all tape tests -# -tests/test0 -tests/two-volume-tape -tests/incremental-2tape -echo " " -echo " " -echo "2 Tape Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-non-root-tape-tests b/regress/all-non-root-tape-tests deleted file mode 100755 index 5a64aad4c3..0000000000 --- a/regress/all-non-root-tape-tests +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# -# Run all tape tests -# -cp test.out test1.out -tests/test0 -tests/backup-bacula-tape -tests/bscan-tape -tests/btape-fill-tape -tests/fixed-block-size-tape -tests/four-concurrent-jobs-tape -tests/four-jobs-tape -tests/incremental-tape -tests/relabel-tape -tests/restore-by-file-tape -tests/small-file-size-tape -tests/truncate-bug-tape -echo " " -echo " " -echo "Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-non-root-tests b/regress/all-non-root-tests deleted file mode 100755 index be1bf01045..0000000000 --- a/regress/all-non-root-tests +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -tests/test0 -echo " " -tests/auto-label-test -tests/backup-bacula-test -tests/bextract-test -tests/bscan-test -tests/bsr-opt-test -tests/compressed-test -tests/concurrent-jobs-test -tests/differential-test -tests/four-concurrent-jobs-test -tests/four-jobs-test -tests/incremental-test -tests/query-test -tests/recycle-test -tests/restore2-by-file-test -tests/restore-by-file-test -tests/restore-disk-seek-test -tests/six-vol-test -tests/span-vol-test -tests/sparse-compressed-test -tests/sparse-test -tests/two-jobs-test -tests/two-vol-test -tests/verify-vol-test -tests/weird-files2-test -tests/weird-files-test -echo " " -echo "Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-root-tests b/regress/all-root-tests deleted file mode 100755 index 3f077bba4c..0000000000 --- a/regress/all-root-tests +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# Run all root tests -# -rm -f test.out -tests/dev-test-root -tests/etc-test-root -tests/lib-test-root -tests/usr-tape-root -cat test.out -scripts/cleanup diff --git a/regress/all-tape-and-file-tests b/regress/all-tape-and-file-tests deleted file mode 100755 index 9235dc996b..0000000000 --- a/regress/all-tape-and-file-tests +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -./all-non-root-tests -./endtime -if [ ! -e bin/tape_options ] ; then - touch bin/tape_options -fi -./all-non-root-tape-tests diff --git a/regress/all-tests b/regress/all-tests deleted file mode 100755 index b1b2b35e86..0000000000 --- a/regress/all-tests +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -./all-non-root-tests -./all-root-tests -cat test.out -scripts/cleanup diff --git a/regress/config b/regress/config deleted file mode 100755 index 4bc4f52703..0000000000 --- a/regress/config +++ /dev/null @@ -1,9 +0,0 @@ -#/bin/sh -# -# First argument is expected to be a user's configuration file -# -if ! test -e $1 ; then - echo "Arg1 must specify a config file (e.g. prototype.conf)" - exit 1 -fi -sed -e "/@CONFIG@/r $1" -e "s/@CONFIG@//" Makefile.in >Makefile diff --git a/regress/do_all b/regress/do_all deleted file mode 100755 index ba1ad3f83a..0000000000 --- a/regress/do_all +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -/home/kern/bacula/bin/startmysql -make setup -./starttime -if [ ! -e bin/tape_options ] ; then - touch bin/tape_options -fi -./all-tape-and-file-tests -./endtime -if [ ! -e bin/tape_options ] ; then - touch bin/tape_options -fi -./all-non-root-2tape-tests -./endtime diff --git a/regress/do_all_tapes b/regress/do_all_tapes deleted file mode 100755 index dd07d2ec99..0000000000 --- a/regress/do_all_tapes +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -make setup -./all-non-root-tape-tests diff --git a/regress/do_file b/regress/do_file deleted file mode 100755 index 5fe0a82ecb..0000000000 --- a/regress/do_file +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# /home/kern/bacula/bin/startmysql -make setup -./starttime -./all-non-root-tests -./endtime diff --git a/regress/endtime b/regress/endtime deleted file mode 100755 index faf419f70d..0000000000 --- a/regress/endtime +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -from time import time as now - -t = now() -fn = open('time.out', 'r') -s = fn.readline() -fn.close() -diff = t - float(s) -h = int(diff / 3600) -m = int((diff - h * 3600) / 60) -sec = diff - h * 3600 - m * 60 -print 'Total time = %d:%02d:%02d or %d secs' % (h, m, sec, t - float(s)) diff --git a/regress/file b/regress/file deleted file mode 100755 index 8f2089051b..0000000000 --- a/regress/file +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./all-non-root-tests diff --git a/regress/freebsd.conf b/regress/freebsd.conf deleted file mode 100644 index 3d41bd0f1e..0000000000 --- a/regress/freebsd.conf +++ /dev/null @@ -1,26 +0,0 @@ -# Where to get the source to be tested -# BACULA_SOURCE="${HOME}/bacula/branch-1.36.2" -BACULA_SOURCE="${HOME}/bacula/k" - -# Where to send email !!!!! Change me !!!!!!! -EMAIL=kern@sibbald.com -SMTP_HOST="matou.sibbald.com" - -# Full "default" path where to find sqlite (no quotes!) -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -TAPE_DRIVE="/dev/nsa0" -# if you don't have an autochanger set AUTOCHANGER to /dev/null -AUTOCHANGER="/dev/sg0" -# For two drive tests -- set to /dev/null if you do not have it -TAPE_DRIVE1="/dev/null" - -# This must be the path to the autochanger including its name -AUTOCHANGER_PATH="/usr/local/sbin/mtx" - -# Set your database here -WHICHDB?="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql=${HOME}/mysql" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" diff --git a/regress/kern.conf b/regress/kern.conf deleted file mode 100644 index e497babd4c..0000000000 --- a/regress/kern.conf +++ /dev/null @@ -1,28 +0,0 @@ -# Where to get the source to be tested -# BACULA_SOURCE="${HOME}/bacula/branch-1.36.2" -BACULA_SOURCE="${HOME}/bacula/k" - -# Where to send email !!!!! Change me !!!!!!! -EMAIL=kern@sibbald.com -SMTP_HOST="localhost" - -# Full "default" path where to find sqlite (no quotes!) -#SQLITE_DIR=${HOME}/bacula/depkgs/sqlite3 -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -TAPE_DRIVE="/dev/nst0" -# if you don't have an autochanger set AUTOCHANGER to /dev/null -AUTOCHANGER="/dev/sg0" -# For two drive tests -- set to /dev/null if you do not have it -TAPE_DRIVE1="/dev/nst1" - -# This must be the path to the autochanger including its name -AUTOCHANGER_PATH="/usr/sbin/mtx" - -# Set your database here -#SQLITE_DIR=${HOME}/bacula/depkgs/sqlite3 -WHICHDB?="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql=${HOME}/mysql" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" diff --git a/regress/misc-tests b/regress/misc-tests deleted file mode 100644 index dd2734c56b..0000000000 --- a/regress/misc-tests +++ /dev/null @@ -1,2 +0,0 @@ -tests/btape-fill-full-tape -tests/eot-fail-tape diff --git a/regress/prototype.conf b/regress/prototype.conf deleted file mode 100644 index 28f5d3ee5e..0000000000 --- a/regress/prototype.conf +++ /dev/null @@ -1,46 +0,0 @@ -# -# Prototype personal configuration file for the regression -# scripts. Either edit this file directly, or better copy -# it elsewhere so it won't get overwritten. -# - -# -# Where to get the source to be tested -# -BACULA_SOURCE= - -# Where to send email messages -# -EMAIL= -SMTP_HOST=localhost - -# Full "default" path where to find sqlite. -# This is only used if you do not specify a database override on the -# make command. -# -# N.B. DON'T PUT QOUTES AROUND THE PATH. -# -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -# -# The device name of your tape drive if you have one -# -TAPE_DRIVE=/dev/nst0 -TAPE_DRIVE1=/dev/null - -# -# if you don't have an autochanger set AUTOCHANGER to /dev/null -# -AUTOCHANGER=/dev/sg0 - -# -# This must be the path to the autochanger including its name -# -AUTOCHANGER_PATH=/bin/mtx - -# Set your database here -WHICHDB?="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql=${HOME}/mysql" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" diff --git a/regress/run b/regress/run deleted file mode 100755 index d48e2623c6..0000000000 --- a/regress/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -bin/bacula start -bin/bconsole -c bin/bconsole.conf diff --git a/regress/scripts/.cvsignore b/regress/scripts/.cvsignore deleted file mode 100644 index 306c3a6c70..0000000000 --- a/regress/scripts/.cvsignore +++ /dev/null @@ -1,22 +0,0 @@ -new-test-bacula-dir.conf -bacula-dir.conf -bacula-fd.conf -bacula-sd.conf -console.conf -bconsole.conf -test-bacula-dir.conf -test-bacula-fd.conf -test-bacula-sd.conf -test-console.conf -testa-bacula-dir.conf -bacula-dir-tape.conf -bacula-sd-tape.conf -bacula-sd-2tape.conf -cleanup-tape -cleanup-2tape -prepare-two-tapes -cleanup-2drive -bacula-sd-2drive.conf -bacula-sd-win32-tape.conf -bacula-sd-2drive.conf -bacula-dir-win32-tape.conf diff --git a/regress/scripts/bacula-dir-tape.conf.in b/regress/scripts/bacula-dir-tape.conf.in deleted file mode 100644 index 37de8ad3c1..0000000000 --- a/regress/scripts/bacula-dir-tape.conf.in +++ /dev/null @@ -1,163 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.33 -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # where we listen for UA connections - QueryFile = "@scriptdir@/query.sql" - WorkingDirectory = "@working_dir@" - PidDirectory = "@piddir@" - Maximum Concurrent Jobs = 4 - Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" - Messages = Daemon -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = DDS-4 - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData = yes -} - - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = DDS-4 - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = &1 >/dev/null -@output tmp/dir.out -status dir -@output tmp/fd.out -status client -@output tmp/sd.out -status $1 -@output -quit -END_OF_DATA -grep "No Jobs running." tmp/dir.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in Director !!!!" - echo " !!!! Zombie Jobs in Director !!!!" >>test.out - echo " " -fi -grep "No Jobs running." tmp/fd.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in File daemon !!!!" - echo " !!!! Zombie Jobs in File daemon !!!!" >>test.out - echo " " -fi -grep "No Jobs running." tmp/sd.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in Storage daemon !!!!" - echo " !!!! Zombie Jobs in Storage daemon !!!!" >>test.out - echo " " -fi -grep "ERROR" tmp/log*.out 2>&1 >/dev/null -if [ $? = 0 ] ; then - echo " " - echo " !!!! ERROR in log output !!!!" - echo " !!!! ERROR in log output !!!!" >>test.out - echo " " -fi -grep "Fatal Error" tmp/log*.out 2>&1 >/dev/null -if [ $? = 0 ] ; then - echo " " - echo " !!!! Fatal Error in log output !!!!" - echo " !!!! Fatal Error in log output !!!!" >>test.out - echo " " -fi - diff --git a/regress/scripts/cleanup b/regress/scripts/cleanup deleted file mode 100755 index bca32b328d..0000000000 --- a/regress/scripts/cleanup +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -rm -rf /tmp/TestVolume001 /tmp/bacula-restores /tmp/Small* -rm -rf tmp/original tmp/bacula-restores tmp/Small* tmp/TestVolume* -rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out -rm -rf /tmp/sed_tmp /tmp/file-list -rm -rf tmp/build tmp/restore-list tmp/restore2-list -rm -rf tmp/fd.out tmp/dir.out tmp/sd.out -rm -rf working/log tmp/TEST-* -rm -rf working/*restore*.bsr - -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges >/dev/null 2>&1 -cd .. diff --git a/regress/scripts/cleanup-2drive.in b/regress/scripts/cleanup-2drive.in deleted file mode 100755 index 32b27c019e..0000000000 --- a/regress/scripts/cleanup-2drive.in +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -if test x@autochanger@ != x/dev/null; then - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1` - echo "Slot $slot in drive 1" - if test x$slot != x0 ; then - echo "unload slot $slot in drive 1" - bin/mtx-changer @autochanger@ unload $slot @tape_drive1@ 1 - fi - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive@ 0` - echo "Slot $slot in drive 0" - if test x$slot != x0 ; then - echo "unload slot $slot in drive 0" - bin/mtx-changer @autochanger@ unload $slot @tape_drive@ 0 - fi - - - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1` - if test x$slot != x2; then - echo "load slot 2 in drive 1" - bin/mtx-changer @autochanger@ load 2 @tape_drive1@ 1 - fi - echo "WEOF drive 1" - mt -f @tape_drive1@ rewind - mt -f @tape_drive1@ weof - echo "unload slot 2 in drive 1" - bin/mtx-changer @autochanger@ unload 2 @tape_drive1@ 1 - - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive@ 0` - echo "Slot $slot in drive 0" - if test x$slot != x1; then - echo "load slot 1 in drive 0" - bin/mtx-changer @autochanger@ load 1 @tape_drive@ 0 - fi - echo "WEOF drive 0" - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof - echo "unload slot 1 from drive 0" - bin/mtx-changer @autochanger@ unload 1 @tape_drive@ 0 -fi diff --git a/regress/scripts/cleanup-2tape.in b/regress/scripts/cleanup-2tape.in deleted file mode 100755 index 647c4b9660..0000000000 --- a/regress/scripts/cleanup-2tape.in +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -if test x@autochanger@ != x/dev/null; then - drive=`bin/mtx-changer @autochanger@ loaded` - if test x${drive} != x2; then - bin/mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin/mtx-changer @autochanger@ load 2 @tape_drive@ 0 - fi - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof -fi - - -# -# If we have an autochanger always load tape in slot 1 -# -if test x@autochanger@ != x/dev/null; then - drive=`bin/mtx-changer @autochanger@ loaded` - if test x${drive} != x1; then - bin/mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin/mtx-changer @autochanger@ load 1 @tape_drive@ 0 - fi -fi - -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/scripts/cleanup-tape.in b/regress/scripts/cleanup-tape.in deleted file mode 100755 index 98ed537766..0000000000 --- a/regress/scripts/cleanup-tape.in +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/scripts/copy-2drive-confs b/regress/scripts/copy-2drive-confs deleted file mode 100755 index d25a351fa2..0000000000 --- a/regress/scripts/copy-2drive-confs +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2drive.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf -touch bin/tape_options diff --git a/regress/scripts/copy-2tape-confs b/regress/scripts/copy-2tape-confs deleted file mode 100755 index a08161757b..0000000000 --- a/regress/scripts/copy-2tape-confs +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf -touch bin/tape_options diff --git a/regress/scripts/copy-confs b/regress/scripts/copy-confs deleted file mode 100755 index d1e6cc1c36..0000000000 --- a/regress/scripts/copy-confs +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/bconsole.conf bin/bconsole.conf diff --git a/regress/scripts/copy-tape-confs b/regress/scripts/copy-tape-confs deleted file mode 100755 index b9565193ca..0000000000 --- a/regress/scripts/copy-tape-confs +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -touch bin/tape_options diff --git a/regress/scripts/copy-test-confs b/regress/scripts/copy-test-confs deleted file mode 100755 index 61b120f610..0000000000 --- a/regress/scripts/copy-test-confs +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/new-test-bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf diff --git a/regress/scripts/copy-testa-confs b/regress/scripts/copy-testa-confs deleted file mode 100755 index 6b5f30c3ef..0000000000 --- a/regress/scripts/copy-testa-confs +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/testa-bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf diff --git a/regress/scripts/copy-win32-confs b/regress/scripts/copy-win32-confs deleted file mode 100755 index 61483fa15f..0000000000 --- a/regress/scripts/copy-win32-confs +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/win32-bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/win32-bacula-sd-tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/win32-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -touch bin/tape_options diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed deleted file mode 100755 index 3315e38e29..0000000000 --- a/regress/scripts/do_sed +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# -if test $# != 6 ; then - echo "First arg must be email name" - echo " and the second must be a tape drive" - echo " and the third must be a tape control name or /dev/null" - echo " and the fourth must be the full path to the mtx program" - echo " and the fifth must be tape drive 1 or /dev/null" - echo " and the sixth must be the smtp or email host" - exit 1 -fi -out="/tmp/sed_tmp" -cwd=`pwd` -host=`hostname | tr '.' ' ' | cut -f 1 -d ' '` -if test x$host = x ; then - host=localhost -fi -host="localhost" -# Create sed command script -echo "s%@sbindir@%${cwd}/bin%g" >${out} -echo "s%@scriptdir@%${cwd}/bin%g" >>${out} -echo "s%@working_dir@%${cwd}/working%g" >>${out} -echo "s%@piddir@%${cwd}/working%g" >>${out} -echo "s%@subsysdir@%${cwd}/working%g" >>${out} -echo "s%@job_email@%${1}%g" >>${out} -echo "s%@tape_drive@%${2}%g" >>${out} -echo "s%@autochanger@%${3}%g" >>${out} -echo "s%@tmpdir@%${cwd}/tmp%g" >>${out} -echo "s%@hostname@%${host}%g" >>${out} -echo "s%@changer_path@%${4}%g" >>${out} -echo "s%@tape_drive1@%${5}%g" >>${out} -echo "s%@smtp_host@%${6}%g" >>${out} - -# process .in files with sed script -sed -f ${out} ${cwd}/scripts/test-bacula-dir.conf.in >${cwd}/scripts/test-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/new-test-bacula-dir.conf.in >${cwd}/scripts/new-test-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/testa-bacula-dir.conf.in >${cwd}/scripts/testa-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/test-bacula-fd.conf.in >${cwd}/scripts/test-bacula-fd.conf -sed -f ${out} ${cwd}/scripts/test-bacula-sd.conf.in >${cwd}/scripts/test-bacula-sd.conf -sed -f ${out} ${cwd}/scripts/test-console.conf.in >${cwd}/scripts/test-console.conf -sed -f ${out} ${cwd}/scripts/bacula-dir-tape.conf.in >${cwd}/scripts/bacula-dir-tape.conf -sed -f ${out} ${cwd}/scripts/win32-bacula-dir-tape.conf.in >${cwd}/scripts/win32-bacula-dir-tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-tape.conf.in >${cwd}/scripts/bacula-sd-tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2tape.conf.in >${cwd}/scripts/bacula-sd-2tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2drive.conf.in >${cwd}/scripts/bacula-sd-2drive.conf -sed -f ${out} ${cwd}/scripts/cleanup-tape.in >${cwd}/scripts/cleanup-tape -sed -f ${out} ${cwd}/scripts/cleanup-2tape.in >${cwd}/scripts/cleanup-2tape -sed -f ${out} ${cwd}/scripts/cleanup-2drive.in >${cwd}/scripts/cleanup-2drive -sed -f ${out} ${cwd}/scripts/prepare-two-tapes.in >${cwd}/scripts/prepare-two-tapes -cp ${cwd}/bin/bacula-sd.conf /tmp/bac$$ -sed s%/tmp%${cwd}/tmp%g /tmp/bac$$ >${cwd}/bin/bacula-sd.conf -chmod 777 ${cwd}/scripts/cleanup-*tape ${cwd}/scripts/cleanup-*drive ${cwd}/scripts/prepare-two-tapes -rm -f /tmp/bac$$ -cp ${cwd}/bin/mtx-changer /tmp/bac$$ -sed "s%^MTX.*$%MTX=${4}%g" /tmp/bac$$ >${cwd}/bin/mtx-changer -chmod 777 ${cwd}/bin/mtx-changer - -# get proper SD tape definitions -touch ${cwd}/bin/tape_options -if test x`uname` = xLinux ; then - cp -f ${cwd}/scripts/linux_tape_options ${cwd}/bin/tape_options -fi -if test x`uname` = xFreeBSD ; then - cp -f ${cwd}/scripts/freebsd_tape_options ${cwd}/bin/tape_options -fi - -rm -f ${out} -rm -f /tmp/bac$$ diff --git a/regress/scripts/exclude-dev-test b/regress/scripts/exclude-dev-test deleted file mode 100644 index 4165ea1ae7..0000000000 --- a/regress/scripts/exclude-dev-test +++ /dev/null @@ -1,5 +0,0 @@ -dev/ptmx -dev/pts -dev/rd/c5d2 -dev/rd -dev/shm diff --git a/regress/scripts/exclude-etc-test b/regress/scripts/exclude-etc-test deleted file mode 100644 index f59ca8df2a..0000000000 --- a/regress/scripts/exclude-etc-test +++ /dev/null @@ -1 +0,0 @@ -etc/mail/statistics diff --git a/regress/scripts/exclude-lib-test b/regress/scripts/exclude-lib-test deleted file mode 100644 index 5be32f443b..0000000000 --- a/regress/scripts/exclude-lib-test +++ /dev/null @@ -1,5 +0,0 @@ -lib/ld-2.2.5.so -lib/libtermcap.so.2.0.8 -lib/libc-2.2.5.so -lib/libnsl-2.2.5.so -lib/libnss_files-2.2.5.so diff --git a/regress/scripts/flist b/regress/scripts/flist deleted file mode 100644 index 019eb57a0f..0000000000 --- a/regress/scripts/flist +++ /dev/null @@ -1,22 +0,0 @@ -/build/configure -/build/src/stored/bextract -/build/src/tools/testfind -/build/Makefile.in -/build/src/dird/bacula-dir -/build/src/console/bconsole -/build/src/filed/bacula-fd -/build/src/findlib/find_one.c -/build/src/jcr.h -/build/platforms/Makefile.in -/build/platforms/redhat/Makefile.in -/build/scripts/Makefile.in -/build/src/filed/win32/winservice.cpp -/build/src/filed/restore.c -/build/autoconf/configure.in -/build/examples/afs-bacula -/build/src/win32/winbacula.nsi.in -/build/autoconf/configure.in -/build/src/version.h -/build/src/lib/message.c -/build/src/lib/bnet_server.c -/build/src/lib/libbac.a diff --git a/regress/scripts/freebsd_tape_options b/regress/scripts/freebsd_tape_options deleted file mode 100644 index 05be3449c4..0000000000 --- a/regress/scripts/freebsd_tape_options +++ /dev/null @@ -1,8 +0,0 @@ -# -# FreeBSD tape drive options -# -Hardware End of Medium = no -Fast Forward Space File = no -BSF at EOM = yes -Backward Space Record = no -TWO EOF = yes diff --git a/regress/scripts/linux_osst_tape_options b/regress/scripts/linux_osst_tape_options deleted file mode 100644 index 5def0c08cb..0000000000 --- a/regress/scripts/linux_osst_tape_options +++ /dev/null @@ -1,7 +0,0 @@ - Minimum Block Size = 32768 - Maximum Block Size = 32768 - Hardware End of Medium = yes - BSF at EOM = yes - Fast Forward Space File = yes - Two EOF = no - diff --git a/regress/scripts/linux_tape_options b/regress/scripts/linux_tape_options deleted file mode 100644 index 601eb82aa5..0000000000 --- a/regress/scripts/linux_tape_options +++ /dev/null @@ -1 +0,0 @@ -# nothing needed for Linux diff --git a/regress/scripts/new-test-bacula-dir.conf.in b/regress/scripts/new-test-bacula-dir.conf.in deleted file mode 100644 index a91b7c4390..0000000000 --- a/regress/scripts/new-test-bacula-dir.conf.in +++ /dev/null @@ -1,312 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.33 -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # where we listen for UA connections - QueryFile = "@scriptdir@/query.sql" - WorkingDirectory = "@working_dir@" - PidDirectory = "@piddir@" - SubSysDirectory = "@subsysdir@" - Maximum Concurrent Jobs = 4 - Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" # Console password - Messages = Standard -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData=yes -} - -Job { - Name = "MonsterSave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File1 - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "VerifyVolume" - Type = Verify - Level = VolumeToCatalog - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "SparseTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "CompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="CompressedSet" - Storage = File - Messages = Standard - Pool = Default - Maximum Concurrent Jobs = 4 - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "SparseCompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseCompressedSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -# Backup the catalog database (after the nightly save) -Job { - Name = "BackupCatalog" - Type = Backup - Client=@hostname@-fd - FileSet="Catalog" -# Schedule = "WeeklyCycleAfterBackup" - Storage = File - Messages = Standard - Pool = Default - # This creates an ASCII copy of the catalog - RunBeforeJob = "@sbindir@/make_catalog_backup -u bacula" - # This deletes the copy of the catalog - RunAfterJob = "@sbindir@/delete_catalog_backup" - Write Bootstrap = "@working_dir@/BackupCatalog.bsr" -} - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = &1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/copy-2drive-confs -scripts/cleanup-2drive -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting 2drive-incremental-2tape test ===" -echo " === Starting 2drive-incremental-2tape test ===" >>working/log -echo " " - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=1 -run job=NightlySave yes -run job=NightlySave yes -wait -status storage=DDS-4 -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -status storage=DDS-4 -@#setdebug level=400 storage=DDS-4 -run level=Incremental job=NightlySave yes -wait -status storage=DDS-4 -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! 2drive-incremental-2tape test Bacula source failed!!! !!!!! " - echo " !!!!! 2drive-incremental-2tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== 2drive-incremental-2tape test Bacula source OK ===== " - echo " ===== 2drive-incremental-2tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/auto-label-test b/regress/tests/auto-label-test deleted file mode 100755 index 2e020e766b..0000000000 --- a/regress/tests/auto-label-test +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh -# -# Test if Bacula can automatically create a Volume label. -# - -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-dir.conf ${cwd}/tmp/1 -sed "s%# Label Format% Label Format%" ${cwd}/tmp/1 >${cwd}/bin/bacula-dir.conf - -echo " " -echo " " -echo " === Starting auto-label-test at `date +%R:%S` ===" -echo " === Starting auto-label-test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -status all -status all -list pools -messages -@$out tmp/log1.out -run job=CompressedTest storage=File yes -list pools -list volumes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -count -ls * -dir * -find Makefile -pwd -lsmark -estimate -? -help -done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! auto-label-test failed!!! !!!!! " - echo " !!!!! auto-label-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== auto-label-test OK ===== " - echo " ===== auto-label-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/backup-bacula-tape b/regress/tests/backup-bacula-tape deleted file mode 100755 index 1c6f5826c9..0000000000 --- a/regress/tests/backup-bacula-tape +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting Backup Bacula tape test at `date +%R:%S` ===" -echo " === Starting Backup Bacula tape test at `date +%R:%S` ===" >>working/log -echo " " - -# Write out bconsole commands -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -purge volume=TestVolume001 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume001 volume=TestVolume002 slot=0 -purge volume=TestVolume002 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume002 volume=TestVolume001 slot=0 -run job=NightlySave yes -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -bin/bacula stop 2>&1 >/dev/null -# -# Now do a second backup after making a few changes -# -touch ${cwd}/build/src/dird/*.c -echo "test test" > ${cwd}/build/src/dird/xxx - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave yes -wait -messages -@# -@# now do a second restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=DDS-4 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Backup Bacula tape test failed!!! !!!!! " - echo " !!!!! Backup Bacula tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== Backup Bacula tape test OK ===== " - echo " ===== Backup Bacula tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/backup-bacula-test b/regress/tests/backup-bacula-test deleted file mode 100755 index 3b33a17c5a..0000000000 --- a/regress/tests/backup-bacula-test +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-confs -scripts/cleanup - -echo " " -echo " " -echo " === Starting Backup Bacula Test at `date +%R:%S` ===" -echo " === Starting Backup Bacula Test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label volume=TestVolume001 -run job=Client1 yes -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Backup Bacula Test failed!!! !!!!! " - echo " !!!!! Backup Bacula Test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== Backup Bacula Test OK ===== " - echo " ===== Backup Bacula Test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/bextract-test b/regress/tests/bextract-test deleted file mode 100755 index b51f48f533..0000000000 --- a/regress/tests/bextract-test +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes, then build a BSR with -# the restore command and use bextract to restore the files. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting bextract-test at `date +%R:%S` ===" -echo " === Starting bextract-test at `date +%R:%S` ===" >working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=NightlySave storage=File1 yes -wait -messages -@# -@# now build the bsr file -@# -@$out tmp/log2.out -restore bootstrap=${cwd}/working/restore.bsr where=${cwd}/tmp/bacula-restores select all storage=File1 done -no -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -mkdir -p ${cwd}/tmp/bacula-restores -bin/bextract -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! bextract-test Bacula source failed!!! !!!!! " - echo " !!!!! bextract-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== bextract-test Bacula source OK ===== " - echo " ===== bextract-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/bscan-tape b/regress/tests/bscan-tape deleted file mode 100755 index 6fe38d0bb2..0000000000 --- a/regress/tests/bscan-tape +++ /dev/null @@ -1,178 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then -# do a bscan and restore. -# It should require at least 4 different bsrs. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting bscan-tape at `date +%R:%S` ===" -echo " === Starting bscan-tape at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -estimate job=NightlySave listing -estimate job=NightlySave listing -estimate job=NightlySave listing -messages -@$out tmp/log1.out -setdebug level=2 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -wait -run job=NightlySave level=Full yes -wait -run job=NightlySave level=Full yes -wait -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -#echo "abc" > ${cwd}/build/src/lib/dummy -# -# run a fourth job -# - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 4 done" -# -# now drop and recreate the database -# -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -bin/bacula stop 2>&1 >/dev/null -echo "volume=TestVolume001" >tmp/bscan.bsr -bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 2>&1 >/dev/null -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -rm -f ${cwd}/build/src/lib/dummy -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! bscan-tape Bacula source failed!!! !!!!! " - echo " !!!!! bscan-tape failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== bscan-tape Bacula source OK ===== " - echo " ===== bscan-tape OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/bscan-test b/regress/tests/bscan-test deleted file mode 100755 index cff1a52022..0000000000 --- a/regress/tests/bscan-test +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes then bscan it -# into the catalog after the backup. It also to a limited -# extent tests the purge volume and delete volume commands. -# - -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting bscan-test at `date +%R:%S` ===" -echo " === Starting bscan-test at `date +%R:%S` ===" >working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=NightlySave storage=File1 -yes -wait -messages -@$out /dev/null -@# -@# now purge the Volume -@# -purge volume=TestVolume001 -purge volume=TestVolume002 -delete volume=TestVolume001 -yes -delete volume=TestVolume002 -yes -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -echo "volume=TestVolume001|TestVolume002" >tmp/bscan.bsr -bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp 2>&1 >/dev/null -#bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -#bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! bscan-test Bacula source failed!!! !!!!! " - echo " !!!!! bscan-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== bscan-test Bacula source OK ===== " - echo " ===== bscan-test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/bsr-opt-test b/regress/tests/bsr-opt-test deleted file mode 100755 index e2bf556bee..0000000000 --- a/regress/tests/bsr-opt-test +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes, then restore -# files on only one of the volumes and ensure that -# the other volume is not used. I.e. bsr optimization -# works. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting bsr-opt-test at `date +%R:%S` ===" -echo " === Starting bsr-opt-test at `date +%R:%S` ===" >working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=NightlySave storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore bootstrap=${cwd}/working/restore.bsr where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -cd ${cwd}/build/src/cats -mark * -ls -done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -# -# This test is not really reliable. What we want to do is -# to select files on only one Volume, then insure here -# that only one Volume is chosen. -# -grep TestVolume002 working/restore.bsr 2>&1 >/dev/null -bsrstat=$? -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build/src/cats tmp/bacula-restores${cwd}/build/src/cats 2>&1 >/dev/null -if [ $? != 0 -o $bsrstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! bsr-opt-test Bacula source failed!!! !!!!! " - echo " !!!!! bsr-opt-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - elif [ $bsrstat != 0 ] ; then - echo " !!!!! Volume selection error !!!!! " - echo " !!!!! Volume selection error !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== bsr-opt-test Bacula source OK ===== " - echo " ===== bsr-opt-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/btape-fill-full-tape b/regress/tests/btape-fill-full-tape deleted file mode 100755 index c61e5ddc3d..0000000000 --- a/regress/tests/btape-fill-full-tape +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo " " -echo " " -echo " === Starting btape fill test at `date +%R:%S` ===" -echo " === Starting btape fill test at `date +%R:%S` ===" >>working/log -echo " " - -bin/btape -c bin/bacula-sd.conf DDS-4 <&1 >tmp/log1.out -fill -s - -quit -END_OF_DATA - - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/btape-fill-tape b/regress/tests/btape-fill-tape deleted file mode 100755 index c97fd11f2b..0000000000 --- a/regress/tests/btape-fill-tape +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# MaximumVolumeSize% MaximumVolumeSize%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting btape fill test at `date +%R:%S` ===" -echo " === Starting btape fill test at `date +%R:%S` ===" >>working/log -echo " " -exit -bin/btape -c bin/bacula-sd.conf DDS-4 <&1 >tmp/log1.out -fill -s - -quit -END_OF_DATA - - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/compressed-test b/regress/tests/compressed-test deleted file mode 100755 index c373a58785..0000000000 --- a/regress/tests/compressed-test +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore it. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting compressed-test at `date +%R:%S` ===" -echo " === Starting compressed-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -exit -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@tee /dev/null -status all -status all -messages -@tee tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest storage=File yes -wait -messages -@# -@# now do a restore -@# -@tee tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@tee -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! compressed-test Bacula source failed!!! !!!!! " - echo " !!!!! compressed-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== compressed-test Bacula source OK ===== " - echo " ===== compressed-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/concurrent-jobs-test b/regress/tests/concurrent-jobs-test deleted file mode 100755 index dafddc5880..0000000000 --- a/regress/tests/concurrent-jobs-test +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh -# -# Run two jobs at the same time -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/largefile" >/tmp/file-list -if test -c /dev/urandom ; then -# Create 56MB file with random data - echo "Creating a 56MB file with random data ..." - dd if=/dev/urandom of=${cwd}/tmp/largefile bs=1024 count=55000 -else - echo "Creating a 56MB file with bacula-dir data ..." - dd if=bin/bacula-dir of=${cwd}/tmp/1 bs=1024 count=1000 - cat ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 >${cwd}/tmp/2 - rm -f ${cwd}/tmp/1 - cat ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 >>${cwd}/tmp/3 - rm -f ${cwd}/tmp/2 - cat ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 >${cwd}/tmp/largefile - rm -f ${cwd}/tmp/3 -fi - -echo "largefile created" - -echo " " -echo " " -echo " === Starting concurrent-jobs-test at `date +%R:%S` ===" -echo " === Starting concurrent-jobs-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null 2>&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest level=Full yes -run job=CompressedTest level=Full yes -run job=CompressedTest level=Full yes -run job=CompressedTest level=Full yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff tmp/largefile tmp/bacula-restores${cwd}/tmp/largefile 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! concurrent-jobs-test Bacula source failed!!! !!!!! " - echo " !!!!! concurrent-jobs-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== concurrent-jobs-test Bacula source OK ===== " - echo " ===== concurrent-jobs-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/dev-test-root b/regress/tests/dev-test-root deleted file mode 100755 index a03287550f..0000000000 --- a/regress/tests/dev-test-root +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! dev-test-root not run !!!! ===== " - echo " ===== !!!! dev-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "/dev" >/tmp/file-list - -echo " " -echo " " -echo " === Starting dev-test-root test ===" -echo " " -echo " === Note, this test can fail for trivial ===" -echo " === reasons on non-Linux systems. ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/restored -cd ${cwd}/tmp -# -# Use sed to cut out parts that *always* change -# -cat >sed.scr <1 -sed -f sed.scr 1 | sort >original -# -mv -f restored 1 -sed -f sed.scr 1 | sort >restored -rm -f sed.scr -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! dev-test-root failed !!!! ===== " - echo " ===== !!!! dev-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== dev-test-root OK ===== " - echo " ===== dev-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/differential-test b/regress/tests/differential-test deleted file mode 100755 index 3182e98cb7..0000000000 --- a/regress/tests/differential-test +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do a differential and restore those two files. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting differential-test at `date +%R:%S` ===" -echo " === Starting differential-test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume002 -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force differential on the second Volume -update volume=TestVolume002 VolStatus=Used -run level=differential job=CompressedTest yes -wait -messages -@$out -END_OF_DATA - -if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run level=incremental job=CompressedTest yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restore the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! differential-test Bacula source failed!!! !!!!! " - echo " !!!!! differential-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== differential-test Bacula source OK ===== " - echo " ===== differential-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/eot-fail-tape b/regress/tests/eot-fail-tape deleted file mode 100755 index 049b745c92..0000000000 --- a/regress/tests/eot-fail-tape +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -out="tmp/sed_tmp" -echo "s%# Maximum File Size% Maximum File Size%g" >${out} -cp -f ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed -f ${out} ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting eot-fail-tape test at `date +%R:%S` ===" -echo " === Starting eot-fail-tape test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start -d100 -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@tee /dev/null -messages -@tee tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@tee tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@tee -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! eot-fail-tape test Bacula source failed!!! !!!!! " - echo " !!!!! eot-fail-tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== eot-fail-tape test Bacula source OK ===== " - echo " ===== eot-fail-tape test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/etc-test-root b/regress/tests/etc-test-root deleted file mode 100755 index 859745edf3..0000000000 --- a/regress/tests/etc-test-root +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! etc-test-root not run !!!! ===== " - echo " ===== !!!! etc-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -echo " " -echo " " -echo " === Starting /etc save/restore test ===" -echo " " -echo " " -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "/etc" >/tmp/file-list - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/1 -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/2 -sort <${cwd}/tmp/1 >${cwd}/tmp/original -sort <${cwd}/tmp/2 >${cwd}/tmp/restored -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! etc-test-root failed !!!! ===== " - echo " ===== !!!! etc-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== etc-test-root OK ===== " - echo " ===== etc-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/fixed-block-size-tape b/regress/tests/fixed-block-size-tape deleted file mode 100755 index 69982162c2..0000000000 --- a/regress/tests/fixed-block-size-tape +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where we set the minimum and maximum block -# sizes. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -echo "s%# Maximum Block Size% Maximum Block Size%" >${cwd}/tmp/2 -echo "s%# Minimum Block Size% Minimum Block Size%" >>${cwd}/tmp/2 -sed -f ${cwd}/tmp/2 ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf -if [ $? != 0 ] ; then - echo " " - echo " " - echo "!!!! sed problem in Fixed Block Size test !!!!!" - echo " " - exit 1 -fi -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 - -echo " " -echo " " -echo " === Starting Fixed Block Size test at `date +%R:%S` ===" -echo " === Starting Fixed Block Size test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=DDS-4 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Fixed Block Size test Bacula source failed!!! !!!!! " - echo " !!!!! Fixed Block Size test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== Fixed Block Size test Bacula source OK ===== " - echo " ===== Fixed Block Size test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/four-concurrent-jobs-tape b/regress/tests/four-concurrent-jobs-tape deleted file mode 100755 index 9831c6686f..0000000000 --- a/regress/tests/four-concurrent-jobs-tape +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# Run two jobs at the same time -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting four-concurrent-jobs-tape at `date +%R:%S` ===" -echo " === Starting four-concurrent-jobs-tape at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave level=Full Storage=DDS-4 yes -run job=NightlySave level=Full Storage=DDS-4 yes -run job=NightlySave level=Full Storage=DDS-4 yes -run job=NightlySave level=Full Storage=DDS-4 yes -@sleep 2 -status dir -@sleep 5 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! four-concurrent-jobs-tape Bacula source failed!!! !!!!! " - echo " !!!!! four-concurrent-jobs-tape failed!!! !!!!! " >>test.out - echo " " - exit 1 -else - echo " ===== four-concurrent-jobs-tape Bacula source OK ===== " - echo " ===== four-concurrent-jobs-tape OK ===== " >>test.out - scripts/cleanup - exit 0 -fi diff --git a/regress/tests/four-concurrent-jobs-test b/regress/tests/four-concurrent-jobs-test deleted file mode 100755 index 95d1368525..0000000000 --- a/regress/tests/four-concurrent-jobs-test +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -# -# Run two jobs at the same time -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting four-concurrent-jobs-test at `date +%R:%S` ===" -echo " === Starting four-concurrent-jobs-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=100000000 -@#50000000 -@#12 -run job=NightlySave level=Full Storage=File1 -yes -reload -run job=NightlySave level=Full Storage=File1 -yes -reload -run job=NightlySave level=Full Storage=File1 -yes -reload -run job=NightlySave level=Full Storage=File1 -yes -reload -reload -reload -reload -@sleep 2 -status dir -reload -@sleep 5 -messages -reload -reload -wait -reload -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -reload -reload -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File1 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! four-concurrent-jobs-test Bacula source failed!!! !!!!! " - echo " !!!!! four-concurrent-jobs-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " - exit 1 -else - echo " ===== four-concurrent-jobs-test Bacula source OK ===== " - echo " ===== four-concurrent-jobs-test OK ===== " >>test.out -# scripts/cleanup - exit 0 -fi diff --git a/regress/tests/four-jobs-tape b/regress/tests/four-jobs-tape deleted file mode 100755 index 92e2e95765..0000000000 --- a/regress/tests/four-jobs-tape +++ /dev/null @@ -1,175 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting four-jobs-tape at `date +%R:%S` ===" -echo " === Starting four-jobs-tape at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -estimate job=NightlySave listing -estimate job=NightlySave listing -estimate job=NightlySave listing -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a fourth job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=NightlySave level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 4 done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! four-jobs-tape Bacula source failed!!! !!!!! " - echo " !!!!! four-jobs-tape failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== four-jobs-tape Bacula source OK ===== " - echo " ===== four-jobs-tape OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/four-jobs-test b/regress/tests/four-jobs-test deleted file mode 100755 index ec9eb53648..0000000000 --- a/regress/tests/four-jobs-test +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting four-jobs-test at `date +%R:%S` ===" -echo " === Starting four-jobs-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -estimate job=CompressedTest listing -estimate job=CompressedTest listing -estimate job=CompressedTest listing -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run job=CompressedTest -yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a fourth job -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "Backup 4 done" -# -# now do several restores to ensure we cleanup between jobs -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! four-jobs-test Bacula source failed!!! !!!!! " - echo " !!!!! four-jobs-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== four-jobs-test Bacula source OK ===== " - echo " ===== four-jobs-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/incremental-2tape b/regress/tests/incremental-2tape deleted file mode 100755 index 086f28aa52..0000000000 --- a/regress/tests/incremental-2tape +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -# This script uses the autochanger and two tapes -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/copy-2tape-confs -scripts/cleanup-2tape -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting incremental-2tape test ===" -echo " === Starting incremental-2tape test ===" >>working/log -echo " " - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=0 -run job=NightlySave yes -wait -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! incremental-2tape test Bacula source failed!!! !!!!! " - echo " !!!!! incremental-2tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== incremental-2tape test Bacula source OK ===== " - echo " ===== incremental-2tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/incremental-tape b/regress/tests/incremental-tape deleted file mode 100755 index 4b827d7eb7..0000000000 --- a/regress/tests/incremental-tape +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -cwd=`pwd` - -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting incremental-tape test at `date +%R:%S` ===" -echo " === Starting incremental-tape test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! incremental-tape test Bacula source failed!!! !!!!! " - echo " !!!!! incremental-tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== incremental-tape test Bacula source OK ===== " - echo " ===== incremental-tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/incremental-test b/regress/tests/incremental-test deleted file mode 100755 index b7345e95d3..0000000000 --- a/regress/tests/incremental-test +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting incremental-test at `date +%R:%S` ===" -echo " === Starting incremental-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -# -# Now create two new files to be restored later -# -sleep 1 -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -cp -f ${cwd}/tmp/build/dird.c ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Differential job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -cd ${cwd}/tmp/build -cp -f ficheriro2.txt 1 -sed "s%a%b%g" 1 >ficheriro2.txt -rm -f 1 -cd ${cwd} -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Differential job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=CompressedTest yes -wait -messages -quit -END_OF_DATA -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=Incremental job=CompressedTest yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! incremental-test Bacula source failed!!! !!!!! " - echo " !!!!! incremental-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== incremental-test Bacula source OK ===== " - echo " ===== incremental-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/lib-tape-root b/regress/tests/lib-tape-root deleted file mode 100755 index 8701602d4e..0000000000 --- a/regress/tests/lib-tape-root +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /lib directory -# then restore it. -# -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/copy-tape-confs -scripts/cleanup-tape -echo "/lib" >/tmp/file-list -echo " " -echo " " -echo " === Starting lib-tape-root test ===" -echo " " -echo " " -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== lib-tape-root failed!!! ===== " - echo " ===== lib-tape-root failed!!! ===== " >>test.out - echo " " -else - echo " ===== lib-tape-root OK ===== " - echo " ===== lib-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/lib-test-root b/regress/tests/lib-test-root deleted file mode 100755 index 7efeb34779..0000000000 --- a/regress/tests/lib-test-root +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! lib-test-root not run !!!! ===== " - echo " ===== !!!! lib-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "/lib" >/tmp/file-list - -echo " " -echo " " -echo " === Starting /lib save/restore test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! lib-test-root failed !!!! ===== " - echo " ===== !!!! lib-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== lib-test-root OK ===== " - echo " ===== lib-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/query-test b/regress/tests/query-test deleted file mode 100755 index 20c459e62a..0000000000 --- a/regress/tests/query-test +++ /dev/null @@ -1,130 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do a Decremental then a bunch of query commands -# and finally restore the two files. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting query-test at `date +%R:%S` ===" -echo " === Starting query-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -@# Force decremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=decremental job=CompressedTest yes -wait -messages -@output -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run level=incremental job=CompressedTest yes -wait -messages -@# -@# Now do the queries -@# -query -1 -query -2 -ficheriro1.txt -query -3 -${cwd}/tmp/build/ -ficheriro1.txt -Client1 -query -7 -TestVolume001 -query -8 -1 -query -9 -Client1 -query -10 -Default -query -11 -query -12 -query -13 -1 -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! query-test Bacula source failed!!! !!!!! " - echo " !!!!! query-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== query-test Bacula source OK ===== " - echo " ===== query-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/recycle-test b/regress/tests/recycle-test deleted file mode 100755 index fd1c383d84..0000000000 --- a/regress/tests/recycle-test +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# create three volumes and do six backups causing the -# volumes to be recycled, and cycling through the volumes -# twice. Tests maxvoljobs and volretention. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting recycle-test at `date +%R:%S` ===" -echo " === Starting recycle-test at `date +%R:%S` ===" >working/log -echo " " - -#bin/bacula start 2>&1 >/dev/null -bin/bacula start -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume003 -update Volume=TestVolume001 volretention=10s -update Volume=TestVolume001 maxvoljobs=1 -update Volume=TestVolume002 volretention=10s -update Volume=TestVolume002 maxvoljobs=1 -update Volume=TestVolume003 volretention=10s -update Volume=TestVolume003 maxvoljobs=1 -list volumes -run job=NightlySave storage=File1 level=full yes -wait -messages -list volumes -run job=NightlySave storage=File1 level=full yes -wait -messages -list volumes -run job=NightlySave storage=File1 level=full yes -wait -messages -list volumes -@sleep 10 -run job=NightlySave storage=File1 level=full yes -wait -messages -list volumes -run job=NightlySave storage=File1 level=full yes -wait -messages -@output tmp/log1.out -list volumes -run job=NightlySave storage=File1 level=full yes -wait -messages -list volumes -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! recycle-test Bacula source failed!!! !!!!! " - echo " !!!!! recycle-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== recycle-test Bacula source OK ===== " - echo " ===== recycle-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/relabel-tape b/regress/tests/relabel-tape deleted file mode 100755 index 295c279065..0000000000 --- a/regress/tests/relabel-tape +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting relabel-tape at `date +%R:%S` ===" -echo " === Starting relabel-tape at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave level=Full yes -wait -messages -add pool=Default -0 -TestVolume002 -0 -no -update volume=TestVolume001 -1 -4 -. -run job=NightlySave level=Full yes -@sleep 20 -unmount -unmount -purge volume=TestVolume001 -relabel oldvolume=TestVolume001 volume=TestVolume003 slot=0 pool=Default -list volumes -messages -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -echo "Backup done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -dstat=$? -if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! relabel-tape Bacula source failed!!! !!!!! " - echo " !!!!! relabel-tape failed!!! !!!!! " >>test.out - echo "diff=$dstat backup=$bstat restore=$rstat" - echo " " -else - echo " ===== relabel-tape Bacula source OK ===== " - echo " ===== relabel-tape OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/restore-by-file-tape b/regress/tests/restore-by-file-tape deleted file mode 100755 index 647c204e89..0000000000 --- a/regress/tests/restore-by-file-tape +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# then restore a few files from it. Note, by setting the maximum -# file size to 1M, it runs very slow. There are about 64 files that -# are created during each of the two backups. -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list -sed s%\^%${cwd}% ${cwd}/scripts/flist >${cwd}/tmp/restore2-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting restore-by-file-tape test at `date +%R:%S` ===" -echo " === Starting restore-by-file-tape test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave level=Full yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 file=<${cwd}/tmp/restore2-list -yes -wait -messages -@output -quit -END_OF_DATA -dstat=0 -scripts/check_for_zombie_jobs storage=DDS-4 -# -# We need to stop and start Bacula to -# test appending to a previously written tape -# -bin/bacula stop 2>&1 >/dev/null -bin/bacula start 2>&1 >/dev/null -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore-by-file-tape test Bacula source failed!!! !!!!! " - echo " !!!!! restore-by-file-tape test failed!!! !!!!! " >>test.out - echo " " - bin/bacula stop 2>&1 >/dev/null - exit 1 -else - echo " First of two restores OK " -fi -rm -rf ${cwd}/tmp/bacula-restores -# -# Now do a second backup and restore -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run job=NightlySave level=Full yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore2-list - -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore-by-file-tape test Bacula source failed!!! !!!!! " - echo " !!!!! restore-by-file-tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== restore-by-file-tape test Bacula source OK ===== " - echo " ===== restore-by-file-tape test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/restore-by-file-test b/regress/tests/restore-by-file-test deleted file mode 100755 index b4a39c963b..0000000000 --- a/regress/tests/restore-by-file-test +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore it. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp/build -ls >../1 -cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list -rm -f 1 -cd ${cwd} - -echo " " -echo " " -echo " === Starting restore-by-file-test at `date +%R:%S` ===" -echo " === Starting restore-by-file-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore-by-file-test Bacula source failed!!! !!!!! " - echo " !!!!! restore-by-file-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== restore-by-file-test Bacula source OK ===== " - echo " ===== restore-by-file-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/restore-disk-seek-test b/regress/tests/restore-disk-seek-test deleted file mode 100755 index 9dd157abc2..0000000000 --- a/regress/tests/restore-disk-seek-test +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh -# -# Run a backup of the full bacula build directory, but with the -# Maximum File Size set. Then do a restore of a few files to kick in -# disk seeking (not yet enabled), and ensure that the restored files -# match. Even though disk seeking is not yet enabled, this is a good test, -# and once it is enabled, this will test it. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/tmp/build" >/tmp/file-list -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -# Copy only the .c files (to be restored) -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp/build -ls >../1 -cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list -# At this point restore-list contains the list -# of files we will restore -rm -f 1 -cd ${cwd} -# Now backup *everything* -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -cp -fp ${cwd}/build/src/dird/* ${cwd}/tmp/build -# Enable MaximumFileSize -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting restore-disk-seek-test at `date +%R:%S` ===" -echo " === Starting restore-disk-seek-test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -sql -select * from JobMedia; - -restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores storage=File -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -# Now setup a control directory of only what we *should* restore -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore-disk-seek-test Bacula source failed!!! !!!!! " - echo " !!!!! restore-disk-seek-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== restore-disk-seek-test Bacula source OK ===== " - echo " ===== restore-disk-seek-test OK ===== " >>test.out -# scripts/cleanup -# rm -rf ${cwd}/tmp/build -fi diff --git a/regress/tests/restore2-by-file-test b/regress/tests/restore2-by-file-test deleted file mode 100755 index cfbf2cbc83..0000000000 --- a/regress/tests/restore2-by-file-test +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore a few selected files. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list -sed s%\^%${cwd}% ${cwd}/scripts/flist >${cwd}/tmp/restore2-list - -echo " " -echo " " -echo " === Starting restore2-by-file-test at `date +%R:%S` ===" -echo " === Starting restore2-by-file-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore2-list -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -dstat=0 -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done -if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! restore2-by-file-test Bacula source failed!!! !!!!! " - echo " !!!!! restore2-by-file-test failed!!! !!!!! " >>test.out - echo " " - echo "Backup term status = $bstat" - echo "Restore term status = $rstat" - echo "Diff status = $dstat" - echo " " -else - echo " ===== restore2-by-file-test Bacula source OK ===== " - echo " ===== restore2-by-file-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/six-vol-test b/regress/tests/six-vol-test deleted file mode 100755 index bdf6f846dc..0000000000 --- a/regress/tests/six-vol-test +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# -# Create a 60MB file with random bytes. Back it up to 6 Volumes -# each constrained to 10MB using the automatic labeling feature. -# - -if test ! -c /dev/urandom ; then - echo "No random device. Test skipped.\n" - exit 0 -fi -cwd=`pwd` -scripts/copy-testa-confs -scripts/cleanup -echo "${cwd}/tmp/largefile" >/tmp/file-list -# Create 56MB file with random data -echo "Creating a 56MB file with random data ..." -dd if=/dev/urandom of=${cwd}/tmp/largefile bs=1024 count=55000 -echo "largefile created" - -echo " " -echo " " -echo " === Starting six-vol-test at `date +%R:%S` ===" -echo " === Starting six-vol-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run job=MultiVol storage=File yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff tmp/largefile tmp/bacula-restores${cwd}/tmp/largefile 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! six-vol-test Bacula source failed!!! !!!!! " - echo " !!!!! six-vol-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== six-vol-test Bacula source OK ===== " - echo " ===== six-vol-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/small-file-size-tape b/regress/tests/small-file-size-tape deleted file mode 100755 index 4f8b0115d5..0000000000 --- a/regress/tests/small-file-size-tape +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting Small File Size test at `date +%R:%S` ===" -echo " === Starting Small File Size test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -setdebug level=2 storage=DDS-4 -run job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Small File Size test Bacula source failed!!! !!!!! " - echo " !!!!! Small File Size test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== Small File Size test Bacula source OK ===== " - echo " ===== Small File Size test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/span-vol-test b/regress/tests/span-vol-test deleted file mode 100755 index dd9f08d9fd..0000000000 --- a/regress/tests/span-vol-test +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into four volumes, two of which are -# totally full. I.e. make sure that bsr selects all tapes -# including those fully spanned. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting span-vol-test at `date +%R:%S` ===" -echo " === Starting span-vol-test at `date +%R:%S` ===" >working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume004 -label storage=File1 volume=TestVolume003 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume004 MaxVolBytes=3000000 -update Volume=TestVolume003 MaxVolBytes=3000000 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=NightlySave storage=File1 yes -wait -list volumes -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! span-vol-test Bacula source failed!!! !!!!! " - echo " !!!!! span-vol-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== span-vol-test Bacula source OK ===== " - echo " ===== span-vol-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/sparse-compressed-test b/regress/tests/sparse-compressed-test deleted file mode 100755 index dde29ece61..0000000000 --- a/regress/tests/sparse-compressed-test +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the Sparse option -# then restore it. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list -bin/bacula stop 2>&1 >/dev/null - -echo " " -echo " " -echo " === Starting sparse-compressed-test at `date +%R:%S` ===" -echo " === Starting sparse-compressed-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=SparseCompressedTest yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! sparse-compressed-test Bacula source failed!!! !!!!! " - echo " !!!!! sparse-compressed-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== sparse-compressed-test Bacula source OK ===== " - echo " ===== sparse-compressed-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/sparse-test b/regress/tests/sparse-test deleted file mode 100755 index 0e01188d6c..0000000000 --- a/regress/tests/sparse-test +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the Sparse option -# then restore it. -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting sparse-test at `date +%R:%S` ===" -echo " === Starting sparse-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=SparseTest yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! sparse-test Bacula source failed!!! !!!!! " - echo " !!!!! sparse-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== sparse-test Bacula source OK ===== " - echo " ===== sparse-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/test0 b/regress/tests/test0 deleted file mode 100755 index 0d0edd0b85..0000000000 --- a/regress/tests/test0 +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -echo " " >test.out -rm -f bin/working/* diff --git a/regress/tests/truncate-bug-tape b/regress/tests/truncate-bug-tape deleted file mode 100755 index 040540d2ad..0000000000 --- a/regress/tests/truncate-bug-tape +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh -# -# Test for a tape truncation bug. -# -cwd=`pwd` - -scripts/copy-tape-confs -scripts/cleanup-tape -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting truncate-bug-tape test at `date +%R:%S` ===" -echo " === Starting truncate-bug-tape test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -@# do a bunch of saves so we have 12 files on the tape -run job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -run level=Full job=NightlySave yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -3 -@# select JobId=4 (i.e. file five on the tape) -4 -cd ${cwd}/build -@# mark a single file -mark configure -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log2.out -run level=Full job=NightlySave yes -wait -messages -quit -END_OF_DATA -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Backup OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! truncate-bug-tape test Bacula source failed!!! !!!!! " - echo " !!!!! truncate-bug-tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== truncate-bug-tape test Bacula source OK ===== " - echo " ===== truncate-bug-tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/two-jobs-test b/regress/tests/two-jobs-test deleted file mode 100755 index 8768362464..0000000000 --- a/regress/tests/two-jobs-test +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup a second time and finally restore it -# -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting two-jobs-test at `date +%R:%S` ===" -echo " === Starting two-jobs-test at `date +%R:%S` ===" >>working/log -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -setdebug level=15 storage=File -@output /dev/null -messages -@output /dev/null -estimate job=CompressedTest listing -estimate job=CompressedTest listing -estimate job=CompressedTest listing -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=CompressedTest yes -wait -messages -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -echo "Backup 1 done" -touch ${cwd}/build/src/dird/*.c -# -# run a second job -# -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null -messages -@output tmp/log1.out -run job=CompressedTest -yes -wait -messages -@# -@# now do several restores to ensure we cleanup between jobs -@# -@output /dev/null -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! two-jobs-test Bacula source failed!!! !!!!! " - echo " !!!!! two-jobs-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== two-jobs-test Bacula source OK ===== " - echo " ===== two-jobs-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/two-vol-test b/regress/tests/two-vol-test deleted file mode 100755 index 876b8fa011..0000000000 --- a/regress/tests/two-vol-test +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting two-vol-test at `date +%R:%S` ===" -echo " === Starting two-vol-test at `date +%R:%S` ===" >working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=NightlySave storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=File1 done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=File1 -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! two-vol-test Bacula source failed!!! !!!!! " - echo " !!!!! two-vol-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== two-vol-test Bacula source OK ===== " - echo " ===== two-vol-test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/two-volume-tape b/regress/tests/two-volume-tape deleted file mode 100755 index fc7d9fa15a..0000000000 --- a/regress/tests/two-volume-tape +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# Note, this test simulates the tape filling and writing to -# the next tape. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-2tape-confs -scripts/prepare-two-tapes - -echo "${cwd}/build" >/tmp/file-list - -outf="tmp/sed_tmp" -echo "s%# Maximum File Size% Maximum File Size%g" >${outf} -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed -f ${outf} ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -echo " " -echo " " -echo " === Starting Two Volume Tape test at `date +%R:%S` ===" -echo " === Starting Two Volume Tape test at `date +%R:%S` ===" >>working/log -echo " " -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0 -update Volume=TestVolume001 MaxVolBytes=3000000 pool=Default drive=0 -@#setdebug level=1000 client -run job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=DDS-4 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Two Volume Tape test Bacula source failed!!! !!!!! " - echo " !!!!! Two Volume Tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== Two Volume Tape test Bacula source OK ===== " - echo " ===== Two Volume Tape test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/usr-tape-root b/regress/tests/usr-tape-root deleted file mode 100755 index 0f5002d928..0000000000 --- a/regress/tests/usr-tape-root +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /usr directory -# then restore it. -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "/usr" >/tmp/file-list - -echo " " -echo " " -echo " === Starting usr-tape-root test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! usr-tape-root failed !!!! ===== " - echo " ===== !!!! usr-tape-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== usr-tape-root OK ===== " - echo " ===== usr-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/verify-vol-test b/regress/tests/verify-vol-test deleted file mode 100755 index 2df75d62f8..0000000000 --- a/regress/tests/verify-vol-test +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then verify the catalog. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting verify Volume Test at `date +%R:%S` ===" -echo " === Starting verify Volume Test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -setdebug level=1 storage=File sd -label storage=File volume=TestVolume001 -run job=NightlySave yes -wait -messages -@# -@# now do a verify volume -@# -@$out ${cwd}/tmp/original -run job=VerifyVolume -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -sleep 2 -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Verify OK" ${cwd}/tmp/original 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Verify Volume failed!!! !!!!! " - echo " !!!!! Verify Volume failed!!! !!!!! " >>test.out - if [ $bstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== Verify Volume Test OK ===== " - echo " ===== Verify Volume Test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/weird-files-test b/regress/tests/weird-files-test deleted file mode 100755 index c8d10aea70..0000000000 --- a/regress/tests/weird-files-test +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -if test ! -d weird-files ; then - echo " " - echo "Weird files not configured. Test not run." - exit 0 -fi -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -# -# Note, we save the weird-files directory twice on purpose -# because this causes problems with hard linked files -# that are only saved once. In 1.33, Bacula now deals -# with this situation. -# -echo "${cwd}/weird-files" >/tmp/file-list -echo "${cwd}/weird-files" >>/tmp/file-list - -echo " " -echo " " -echo " === Starting weird filenames test at `date +%R:%S` ===" -echo " === Starting weird filenames test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File -TestVolume001 -run job=NightlySave -yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/original -cd tmp/bacula-restores${cwd} -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/restored -cd ${cwd} -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Weird files test failed!!! !!!!! " - echo " !!!!! Weird files test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== Weird files test OK ===== " - echo " ===== Weird files test OK ===== " >>test.out - cd ${cwd} - scripts/cleanup -fi diff --git a/regress/tests/weird-files2-test b/regress/tests/weird-files2-test deleted file mode 100755 index fe5a50c972..0000000000 --- a/regress/tests/weird-files2-test +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -if test ! -d weird-files ; then - echo " " - echo "weird files not configured. Test not run." - exit 0 -fi -cwd=`pwd` -scripts/copy-test-confs -scripts/cleanup -rm -rf weird-files2 -cp -Rp weird-files weird-files2 -echo "${cwd}/weird-files2" >/tmp/file-list - -echo " " -echo " " -echo " === Starting weird-files2 test at `date +%R:%S` ===" -echo " === Starting weird-file2 test at `date +%R:%S` ===" >>working/log -echo " " - -bin/testls weird-files2 >${cwd}/tmp/original - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=NightlySave yes -wait -messages -@$out -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=File -# -# Now mess up the a hard link, and a soft link -# -cd weird-files2 -rm -f hard-file2 -ln hard-file3 hard-file2 -rm -f soft-file2 -ln -s soft-file3 soft-file2 -cd ${cwd} -cat <tmp/bconcmds -@$out /dev/null -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where= storage=File -5 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -scripts/check_for_zombie_jobs storage=File -bin/bacula stop 2>&1 >/dev/null -bin/testls weird-files2 >${cwd}/tmp/restored -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Weird files2 test failed!!! !!!!! " - echo " !!!!! Weird files2 test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== Weird files2 test OK ===== " - echo " ===== Weird files2 test OK ===== " >>test.out - cd ${cwd} - scripts/cleanup - rm -rf weird-files2 -fi diff --git a/regress/tests/win32-backup-tape b/regress/tests/win32-backup-tape deleted file mode 100755 index f51252e8b0..0000000000 --- a/regress/tests/win32-backup-tape +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -debug=1 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi - -cwd=`pwd` -scripts/copy-win32-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -echo " " -echo " " -echo " === Starting Win32 Backup tape test at `date +%R:%S` ===" -echo " === Starting Win32 Backup tape test at `date +%R:%S` ===" >>working/log -echo " " - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default drive=0 -run job=NightlySave yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=c:/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 - -bin/bacula stop 2>&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! Win32 Backup tape test failed!!! !!!!! " - echo " !!!!! Win32 Backup tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== Win32 Backup tape test OK ===== " - echo " ===== Win32 Backup tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/weird-files.tar.gz b/regress/weird-files.tar.gz deleted file mode 100644 index f84d1c0a6de310a1caa2fa48237b2eeda3be9bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1699 zcmaLW`#;nB0|#&xaSo5KOA@EcB)(FM$g$G+Y;<;#xh%zswd0(_p@`08-xMFWFLiP) z>^NKDtbc)2M4ebxF9kpMqbohpgPyp~w@}o0sLIZwfHn1=^xOUT-#6_h zPGjg>e)-~y?iXwBcYS<`tBcV7N9q8FHLJjD%}(oE@@=xN@3&koDWrXD8T#7u$j*r( zS@AcX-Z8islPmSR-rd9Hc9~6&P7{z}&2&9PRS=L~oMWNJtoK;@FZk29jEZml+2eL( z&>KE&on>xok~sdd{NA=J-&mY;{9c1I-3=9a9vaaWc!^4805k6c9ue1X@3(ISFL8{T zW=->`D;GeP!0}B9u;&dR2j6FXD+8uhbgN?jLhllFBIe;D4hF4tLugJH% z{~BrJnIPG0JQ#f-G&4MqNw>(XeacCm?lYu?DqsdY8Ou7@*qOkIBgLWOw{%oYM;*#q zj29pshY2WaiQm2gH*U$l{sf6gW2ym1>-@XBW&dSgT?CkN`x$hihS32=mW6rbFPESJ zn3sAchR8&$&HkE(nJ-V2CmPA&S>SIweAN0p0z)VpfyozQkw72gfHYJZMxa!!4*e@i zw`+MkCcGMAyX4)zy6K$W9Bg_C5%0QjQW|*f>KMx{9~?{2B#A5(d*>T;5!S-E9Z!0Z zK%odC2Rh&mJj!mYc)!|^Vq5{RX$``=5ztnPd#&4gU6*1@37HbGv2hZPEA4!Q{3;az z%SpH^LhEcO12a+as6%fLW%AM7g|v|cKt~yQU|%O)6X-(;2yX@}Z(*aCG1WDB;Pr<~ zjdo8}y060vdx2i&DmDXAL0>liRKXq1=|uRlVnDwfx6jfI3+%Z;QlQ*rv-WvE0zPgW zw~xx+h^CZTBXxPMk~6@*h-x>-49W*Va$ryy0CR7xGR2u+P4#uDu!IbikW}*mTu4B6 zgiQC5fDNGzb_snx+ay!77onp;G_YBZ0eoFMAMbp2XWq*PKJxaksBts+;hJ=rkwh)? zA;R&9QocqDJn1|^0SA%D1D2E>9Ni4yBbx!iH~pCpXoUFY+Eo*eOg1Uzn(YA}I%|sjt9f zMmkE`ISDr47nMmFV-=%H1!-sK`X&GD?Bpg_VnM|5woT98nDfQU(1v;-ZqCv|hLalj zqQYPm7`^=yD8!`(7)cLELYt<9XF$Q{TS2mk`{$8m; z#ljnJGh6>3epu?=UqSS2ljewQ_yTDUSJTl zChgC~fIZ_s#inw^rTp_wPN)FEx}$={aT}D?XDh@S#w+0sUWtQsTsu0O|qYN3$^VeT~Nd+d6$sXyZ2U1ddU{vznEGS5lDk*l~iZ zf;d7D%><_rJQr-t%8|e|sJTtZdg<)unZ#UNIgPvn`6CQO1d}l8oVFqC`D5e_h~u4Q l*!&Z$EKh`rk97O1{J8qr8l>}oGQStB^T*zNtW%+*^AD9Qop}HN -- 2.39.2