From 64ccdd3d9316dfdf90bb648d503fe13867f7cd32 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Mon, 22 Aug 2005 08:13:00 +0000 Subject: [PATCH] Update --- docs/manual/autochangers.tex | 4 +- docs/manual/faq.tex | 10 +- docs/manual/filedconf.tex | 15 +- docs/manual/rpm-faq.tex | 32 + docs/manual/supportedchangers.tex | 1 + docs/techlogs/ChangeLog | 5590 +++++++++++++++++++++++++++++ docs/techlogs/kes-1.37 | 497 +++ docs/techlogs/nb-1.37 | 18 + 8 files changed, 6163 insertions(+), 4 deletions(-) create mode 100644 docs/techlogs/ChangeLog diff --git a/docs/manual/autochangers.tex b/docs/manual/autochangers.tex index 73e5a2ef..13df3ec6 100644 --- a/docs/manual/autochangers.tex +++ b/docs/manual/autochangers.tex @@ -887,8 +887,8 @@ specified below: \footnotesize \begin{verbatim} - Currently the changer commands used are: - loaded -- returns number of the slot that is loaded in - the drive or 0 if the drive is empty. + loaded -- returns number of the slot that is loaded, base 1, + in the drive or 0 if the drive is empty. load -- loads a specified slot (note, some autochangers require a 30 second pause after this command) into the drive. diff --git a/docs/manual/faq.tex b/docs/manual/faq.tex index 3d513577..56a1429f 100644 --- a/docs/manual/faq.tex +++ b/docs/manual/faq.tex @@ -782,7 +782,15 @@ directory, which you can examine to determine the problem. NVidia NForce 3 ethernet card with driver (4.4.2 17/05/2004). In this case, a good driver is (4.8.2.0 06/04/2005). Moral of the story, make sure you have the latest ethernet drivers - loaded. + loaded, or use the following workaround as suggested by Thomas + Simmons for Win32 machines: + + Browse to: + Start \gt{} Control Panel \gt{} Network Connections + + Right click the connection for the nvidia adapter and select properties. + Under the General tab, click "Configure...". Under the Advanced tab set + "Checksum Offload" to disabled and click OK to save the change. Lack of communications, or communications that get interrupted can also be caused by Linux firewalls where you have a rule that throttles diff --git a/docs/manual/filedconf.tex b/docs/manual/filedconf.tex index a3583858..3ecacbaa 100644 --- a/docs/manual/filedconf.tex +++ b/docs/manual/filedconf.tex @@ -104,7 +104,20 @@ Directory} as defined above. If you continue getting broken pipe error messages despite using the Heartbeat Interval, and you are using Windows, you should consider upgrading your ethernet driver. This is a known problem with NVidia - NForce 3 drivers (4.4.2 17/05/2004). + NForce 3 drivers (4.4.2 17/05/2004), or try the following workaround + suggested by Thomas Simmons for Win32 machines: + + Browse to: + Start \gt{} Control Panel \gt{} Network Connections + + Right click the connection for the nvidia adapter and select properties. + Under the General tab, click "Configure...". Under the Advanced tab set + "Checksum Offload" to disabled and click OK to save the change. + + Lack of communications, or communications that get interrupted can + also be caused by Linux firewalls where you have a rule that throttles + connections or traffic. + \item [Maximum Concurrent Jobs = \lt{}number\gt{}] \index[fd]{Maximum Concurrent Jobs } diff --git a/docs/manual/rpm-faq.tex b/docs/manual/rpm-faq.tex index 95c80230..2e9b4d2e 100644 --- a/docs/manual/rpm-faq.tex +++ b/docs/manual/rpm-faq.tex @@ -152,3 +152,35 @@ scanning for dependencies, looks at the shebang line of all packaged scripts in addition to checking shared libraries. To avoid this do not package the examples directory. \end{enumerate} + +\item {\bf Support for RHEL4, CentOS 4 and x86_64} +The examples below +explicit build support for RHEL4 (I think) and CentOS 4. Build support +for x86_64 has also been added. Test builds have been done on CentOS but +not RHEL4. + +\footnotesize +\begin{verbatim} +Build with one of these 3 commands: + +rpmbuild --rebuild \ + --define "build_rhel4 1" \ + --define "build_sqlite 1" \ + bacula-1.36.2-4.src.rpm + +rpmbuild --rebuild \ + --define "build_rhel4 1" \ + --define "build_postgresql 1" \ + bacula-1.36.2-4.src.rpm + +rpmbuild --rebuild \ + --define "build_rhel4 1" \ + --define "build_mysql 1" \ + --define "build_mysql4 1" \ + bacula-1.36.2-4.src.rpm + +For CentOS substitute '--define "build_centos4 1"' in place of rhel4. + +For 64 bit support add '--define "build_x86_64 1"' +\end{verbatim} +\normalsize diff --git a/docs/manual/supportedchangers.tex b/docs/manual/supportedchangers.tex index 5effb130..d37219fd 100644 --- a/docs/manual/supportedchangers.tex +++ b/docs/manual/supportedchangers.tex @@ -41,6 +41,7 @@ Slot). \hline {- } & {HP } & {DLT } & {A4853 DLT } & {30} & {40/70GB } \\ \hline {Linux } & {HP (Compaq) } & {DLT VI } & {Compaq TL-895 } & {96+4 import export} & {35/70GB } \\ \hline {SuSE 9.0 } & {IBM } & {LTO } & {IBM 3581 Ultrium Tape Loader } & {7} & {200/400GB } \\ + \hline {FreeBSD 5.4} & {IBM } & {DLT} & {IBM 3502-R14 -- rebranded ATL L-500} & {14} & {35/70GB } \\ \hline {Debian} & {Overland } & {LTO } & {Overland LoaderXpress LTO/DLT8000 } & {10-19} & {40-100GB } \\ \hline {Fedora} & {Overland } & {LTO } & {Overland PowerLoader LTO-2 } & {10-19} & {200/400GB } \\ \hline {FreeBSD 5.4-Stable} & {Overland} & {LTO-2} & {Overland Powerloader tape} & {17} & {100GB } \\ diff --git a/docs/techlogs/ChangeLog b/docs/techlogs/ChangeLog new file mode 100644 index 00000000..c6de0d5a --- /dev/null +++ b/docs/techlogs/ChangeLog @@ -0,0 +1,5590 @@ +Changes to 1.37.36 released 22 Aug 05 +20Aug05 +- Landon's fix for NLS detection +- Eliminate incorrect compiler warning on FreeBSD. +- Move Win32 errno message build into berrno constructor. +- Minor Win32 tweaks +19Aug05 +- A number of minor 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. +== Nicolas +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" + +Changes to 1.37.30 released 16 July 2005: +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. + +Changes to 1.37.28: +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: +- 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 from Nicolas Boichat: +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" + +Changes to 1.37.23: +- Renamed to make unique version for open_next_part() + changes. + +Changes to 1.37.23: +- Renamed to make unique version for open_next_part() + changes. + +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 (07May05): released 07May05 +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 (03May05): 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 +- 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: +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. + +Version 1.36.1 released 26Nov04: +24Nov04 +- Take Dan's fix to the fix_postgresql_tables (thanks Dan) +- Increase Maximum Concurrent Jobs to 20 in SD and FD! +- Fix improper handling of autochanger Volumes that are not + marked InChanger. +22Nov04 +- Update authentication failure message to indicate possible + problem with Maximum Concurrent Jobs. Add to doc too. +- Commit PostgreSQL BIGINT fix -- apparently some people didn't + get it. +- Do not use a slot unless it is InChanger in the autochanger + code, otherwise autochanger gets upset not finding the Volume. +21Nov04 +- Make authentication timeout compile time configurable. + The value is set in src/baconfig.h +- Fix removing items from watchdog queue, which apparently + screwed up if there was more than one item. +- Rework mediaformat part of manual to separate out old + tape format for easier reading. +- Add a lot of debug code to the authentication code. +- Add seconds to the start/end times printed in the job report. +19Nov04 +- Fix mutex deadlock in dequeue of messages. +- Add debug code to FD authorization. +18Nov04 +- Increase authentication timeouts to 10 minutes. +15Nov04 +- Fix cancel bug in FD on /lib/tls with zero pid in + pthread_kill. +- Add date/time to all messages. +- Make Qmsg use time message was queued rather than time + printed. +- Indent job output two spaces. +13Nov04 +- Fix web page links for new manual. +- Grant postgresql permission to cdimages. +- Correct crash after "list nextvol" "list media" bug 160 +12Nov04 +- Fix scripts/Makefile.in missing ;\ -- thanks Martin +- A bit of work on btape to keep if from going into infinite + loops when things do not work well, and to print a bit + better info. +11Nov04 +- JobDefs Storage resource completely overrode anything + specified in Job resource -- bug 159 -- fixed. +- Fix syntax of renaming postgresql per Dan. +- Add working_directory to be /tmp for wx_console. +10Nov04 +- Allow both a JobId and a filename or list of files to be + specified on a restore command line. +- Save old mtx-changer before installing new one: bug 156 +- Fix errors in CDROM file pointed out by Scott. +09Nov04 +- Fix exepath when Bacula executed without path. +- Move test for socket libraries for Solaris in configure.in + before tcp wrapper tests so that linking works. +- Add "make copy-static-fd" to makefile in CDROM file to + copy existing static fd to CDROM rather than building it. +08Nov04 +- More doc updates +- Fix ps command for OpenBSD +- Rework the creation of indexes for SQL -- fall back + to the old code, but document what can be added. +06Nov04 +- Add new Daemon message handler in default DIR conf. +05Nov04 +- Fix Seg Fault with -D100 in bpipe.c. +- Fix Seg Fault in run specifying a JobId. +- Make mail from daemon with a Messages Resource use + the MailCommand with editing rather than the default + sendmail. +- Replace Jmsg in dispatch_message() with Qmsg. +- Make edit_job_codes handle NULL jcr. +04Nov04 +- Add M_ALERT class and put tape alerts into it. +- Fix Verify count vs found by not double counting files + that are split across files/Volumes. +30Oct04 +- Fix count returned from write_bsr_file() to handle multiple + volumes. This fixes most cases of the Verify VolumeToCatalog. +- Cleanup a bit the make clean for the rescue cdrom and remove + unneeded files from the CVS. +28Oct04 +- Fixed acquiring a tape so that it does not block all acquires + when operator intervention is needed. +- Platform build script updates from Scott +- Doc updates +- Add patch to force Linux LD_ASSUME_KERNEL to avoid using the + new /lib/tls. This is done in the startup scripts. +- Modify mtx-changer so that it checks for ONLINE while + waiting. +- Modify make_postgresql_tables.in so that EndBlock is stored + as a bigint. Prevents job failures when a disk volume is + larger than 2GB. +24Oct04 +- Add grep ONLINE to wait_for_drive() in mtx-changer.in +- More doc. +- Rebuild Scott's new configure + +Version 1.36.0 released 21Oct04: +Changes to 1.35.9: +19Oct04 +- Modify install of make_catalog_backup and delete_catalog_backup so + that it will not overwrite any existing file. +- Additional documentation. +- Modified detection of largefiles to always set all flags regardless + of the machine. +- Modify autostart scripts to start Bacula late in the process and + terminate it early. +- Drop CDImages table in drop database tables scripts. +- Alter casting of (void *) in gnome2-console/restore.c to pass + by a (long int) so that it works with 64 bit machines. +- Add more debug to heartbeat.c in FD for problem of dropped connections. +18Oct04 +- Adjust priorities for starting/stopping daemons to be + started late and stopped early as suggested by Marc Williams. +18Oct04 +- Adjust priorities for starting/stopping daemons to be + started late and stopped early as suggested by Marc Williams. +18Oct04 +- Fix crash on exit with -t option in FD on 2.6 kernels -- + uninitialized thread id variable. +- Add additional SD and FD debug info to detect network hang. +- Fix bnet_strerror() routine not to return stack pointer. +- Put latest update routines in updatedb. +16Oct04 +- Fix error during restore error reported by Christopher Hull when + no tape in the drive (open fails). +- Add more precise error reporting to FD when a network error + occurs. +15Oct04 +- Fix empty files reported by Marin (zero file_size in dev.c). +- Update all the db update scripts to include the new multiple + key index on File proposed by Martin, and to fix up a few + minor things with PostgreSQL. +- Apply Christopher Hull's patch for getting the catalog correct + during a restore. +- Created a patch for 1.34.6 (and code in 1.35) to detect passing + the A option to the FD, which means enable ACL processing. + Submitted by Ben Vitale. +13Oct04 +- Fix syntax error in make_mysql_tables.in pointed out by Scott. +12Oct04 +- Add a kludge to detect bad date/times, which cause a seg fault in + Microsoft's version of localtime_r(). So, now we know that Microsoft + programmers do not check return codes! +- Minor update to web site (new projects page). +- Remove bigint for filenameid from postgresql table -- as demonstrated + by Martin, it has negative performance repercussions. +- Rework getuser() and getgroup() to avoid any possible race condition + by returning the value in a buffer rather than from the cached table. +- Add a bit more debug code to the FD status output. + +Changes to 1.35.8: +09Oct04 +- Documentation. +- Integrate Peter Ericksson's dbx traceback scripts into Bacula +08Oct04 +- Fix segfault in lsmark command in restore tree. +- Fix segfault in editing numbers in count command of restore tree. +- Add missing #define for IPV6 found by Martin in address_conf.c +- Use strcasecmp() instead of strcmp() in address_conf.c +07Oct04 +- Fix bug where SD crashes on label if drive is not open + (i.e. Always Open = no). +- Added "Rerun Failed Levels = yes/no" +- Made calling offline_or_rewind() non-fatal if the + device is not open. +- Added Martin's suggestion to have multiple level index on + the file table. +- Update doc +- Fix misspelled #define in mysql.c for threading pointed out + by a user. +- Fix incorrect prototype. +- Attempt to fix Solaris crash in SD during status command. +04Oct04 +- Fix backspace to first character in conio.c +- Add umount command for Phil. :-) +- Fix update volume volfrompool. +- Modify restore to print an error message if the size of a + restored file does not correspond to the saved stat packet. +- Fix count of files to be restored *not* to include + top level created directories. + +Changes to 1.35.7: +03Oct04 +- Apply Martin's patch that puts back the run pool override + code -- dumb me for removing it. + +Changes to 1.35.6: +02Oct04 +- Create patches/README and the patch summary file. +- Use different share mode when opening files on WinMe/98/95 since + SHARE_DELETE is not implemented on those systems. +- In new syntax Includes, pass *all* files through the acceptance + filter so that no error messages will be printed for files that + cannot be opened if they are excluded. +01Oct04 +- Fix bug 126 (Martin) -- prevent failed console label request from + going into fixup code and thus trying to update the catalog. +- Always fold case in fnmatch() on Win32 systems +30Sep04 +- Create patches directory +- Apply Martin's patch for fixing console modifications to Verify Jobs. +- Fix Win32 so that it can backup files that are opened by programs + such as Word (certain open system files cannot be backed up). + +Changes to 1.35.5: +29Sep04 +- Fix Storage overrides in Run directive +- Fix seg fault in AlertCommand +- Fix btape "test" and "fill" commands to work with new SD + data structures. There are still problems ... +26Sep04 +- Correct buffer length passed to inet_ntop() in address_conf.c +- Increase the debug level of a lot of messages to reduce the + debugging "noise". +- Modify how ST_APPEND is handled so that nothing is written + to the Volume if it is not set. It is now set only when + the Volume label is verified, and released when the volume + is released. This required a number of minor but rather + critical and fundamental changes. +- Improve quickly terminating a job in the SD when it errs. + More status checking and a few additional checks on + job_canceled() and check more error return statuses. +- Added a number of debug statements (to be removed later) that + check the VolCatName for a name. +- Create a single subroutine that handles terminating writing + on a Volume at the end of the volume (or after an error). +- Continued to add use of the berrno classs for strerror(). +25Sep04 +- Apply conio patches supplied by Peter Eriksson for configure.in + conio.h and conio.c to make it work better on Solaris. +- Make run_grub print manual procedure for installing grub +- Add extra setsockopt keepalive. +- Add code to set as many options as possible in the system + tape driver for different OSes. +24Sep04 +- Apply Peter Eriksson's patch to configure.in fixes finding + correct libs on Solaris to link conio -- bug 121 +- Add expected number of files to Verify VolumeToCatalog, and + if it does not equal the examined files, fail the job. + Fixes bug -- 114 +- Modify the depend section of each Makefile.in to reference $(CXX) + instead of $(CC) -- bug 118 +- Remove the word "restore" from the Volumes needed message in + dird/bsr.c since the message is used for Restore and Verify. +- Fix initialization and copying of the storage resource when + starting jobs (and in jobq.c when restarting). In some cases + jcr->store was not set causing a segfault -- bug 116 +23Sep04 +- More doc. +- Pass EndFile and EndBlock to SD. +22Sep04 +- Fixed bscan to close() drive between tapes. +- Turn on transactions for SQLite and PostgreSQL if + multiple connections are turned on. +- Removed stripping of filename in ua_tree insertion routine. +- Fix split_path_and_filename() routines to return zero length + path and files. +- Modify update_tables scripts to convert a single blank filename + into an empty filename. +- Incremented the release number because this version requires + an update to the database. + Use: + cd src/cats + ./update_bacula_tables + to update an existing database. +- Implemented EndFile and EndBlock in the Media record. This will + allow Bacula to know exactly when to stop reading a tape if the + stupid tape driver does not give a logical end of tape indication + and Bacula writes to the end of the tape getting an I/O error. +- Added new routines to update the database, and there are + new database creation routines to add the two new Media columns. +- The Media record is updated each time a JobMedia record is created. + This keeps the Media record up to date. +- Undid the code to use automatic type converions to char * in + POOL_MEM. This is due to the ugly consequences of essentially + destroying the class type nature of the class. +- Removed all the old mp_char() #define code. + +Changes to 1.35.4: +22Sep04 +- Add additional doc. +- Implement automatic POOL_MEM type conversion to char *. Thanks + to Martin Simmons for the suggestion. +- Remove some unneeded function overloading -- need removed by + automatic type conversion. +21Sep04 +- Correct segfault in message.c with debug=200 (new code). +- Fix bug 109 verify with no options prints garbage. +- Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported + by Frank Kardel, this should clear error conditions on NetBSD. +20Sep04 +- Modify the rescue script to create mount_drives with + the order specified by Philip Nash (mkdir, mount). +- Tweak install chapter of French manual to add new paragraph + from English. +- Tweak restore tree message to be a bit clearer. +- Modify watchdog to wakeup after 60 seconds, or wakeup if + there is work to do. +- Modify watchdog stop routine to "ping" watchdog so that it + stops immediately rather than after sleep time. +- Fix btape to use new dcr blocks rather than its own. +- Fix butil.c to correctly handle Volume names for the + utility routines (broke when updating to dcrs). +11-19Sep04 (vacation) +- Implement multiple Storage specifications in the Job resource + (AND) each containing multiple specifications (OR). Not yet functional. + Note, this needs more work as most things now use + job->storage[0]->first() rather than looping through devices. +- Implement "Multiple connections = yes/no" in Catalog record for + allowing multiple simultaneous connections to the database. +- Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented. +- Implement a new POOL_MEM class that automatically allocates + and deallocates a pool buffer. +- Overload a number of utility routines to permit using both + POOLMEM and POOL_MEM. +- Start converting to using POOL_MEM. +- There were a number of Bacula console ACL checks missing in + ua_run.c. It allowed users to run jobs they really should not. +- Correct a number of dates on the Copyright. +- Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM + class. +- Overload bash/unbash_spaces to handle new POOL_MEM class. +- Make a *MASSIVE* pass through the Storage daemon eliminating + all use of jcr->VolumeName and jcr->VolCatInfo in favor of + dcr->... +- Eliminate all all redundant arguments from calling sequences + in SD. This poses a number of problems due to the old way blocks + and records were allocated and released all the time. They are + now contained in the dcr. The problem is that old habits die hard + and there are still places where everything is not right. +- Implement "Block positioning = yes/no" in Device resource in SD. + +Changes to 1.35.3: +09Sep04 +- Add "Multiple Connections = yes/no" in catalog record. Only + the variable is implemented, no code yet. +- Close *all* FD unless debug on. +08Sep04 +- Add first cut of UTF-8 support to conio. It "seems" to be working + pretty well. Moving by words will definitely not work though. +- Improve detection and setting of gateway in the + network_start script. +07Sep04 +- Modify scan code so that in most places scanning will + continue across the end of a line. +05Sep04 +- Begin major phase of 1.35 documentation. +- All outstanding bugs are fixed. +- Implement changes and improvements to rescue scripts as + proposed by Gaurav. +05Sep04 +- Add correction to Phil's previous patch. +- Send all queued messages in SD and FD prior to closing down + the job. +- Send queued messages in Jobs before terminating the job + so that the messages print before the job report. +- Add a destructor so that the Console ACLs are properly + freed. +04Sep04 +- Implement isolinux boot disk. +- Integrate Phil Stracchino's code (thanks for Matt's help). + It permits lists and ranges of jobids on the delete as in: + delete job jobid=1,3,5,11-16 +03Sep04 +- Apply Mike Acar's suggestion when looking for the next volume + to check purged volumes for recycling before doing a purge. +- Make some improvements to CDROM disk. +- Take another crack at ignoring drive open() errors during + polling. +02Sep04 +- Add eliminate orphaned job records; eliminate admin records, + and eliminate restore records to dbcheck. +- replace sprintf by bsnprintf() in dbcheck. +- Added scan target to makefile in rescue cd to print scsi + devices. +- Added argument to berrno::strerror() to pass errno. +- Cleaned up a few more old strerror() calls and eliminated a + few of the now unnecessary set_errno() calls. +- Fixed a bug in the polling code that prevented more than 100 + label reads (insanity check disabled if polling). +- Ignore bad return from open_device() if polling. +- Short circuit code if fatal error return from read_label() in + mount.c +01Sep04 +- Add index file to JobId field of File records for PostgreSQL. +- Correct several bugs in the job queue scheduler concerning + rescheduled jobs: 1. The SD status was not cleared causing a + wrong status to be displayed by Dir after rescheduling. 2. All + rescheduled jobs became zombies because the jcr use_count was + not decremented properly. +- Make the Catalog resource required in Client records. +- Order the listing of where a file is (item 2 on the restore + menu) by StartTime. +- Clarify when a filename only and a full path + filename must + be entered in items 2 and 8 of the restore menu. +- Fix logic error in resolution of names on IPv4 systems. + +Changes to 1.35.2 released 01Sep04: +30Aug04 +- Inhibit printing of FileSet for a restore as it is misleading. +- Cleaned up a number of minor scripting problems with the CDROM + creation. +- Fixed a race condition causing a Director crash on termination, + if a large number of SIGHUPs were sent during a multiple concurrent + set of backups. +28Aug04 +- Completed integration of Rescue CD scripts with Bacula source. +28Aug04 +- Added Ignore FileSet Changes = yes +- Added more error checking to the spooling code. +24Aug04 +- Applied a patch from Peter Eriksson that removes a dynamic stack + allocation (replaced by alloca) and fixes some const problems. +- Fixed a free() of a static variable in the new IP code bnet.c +- Got the new Bacula Rescue CDROM booting. +- Replaced a dynamic template by a simple store when using the + native C compiler. +- Reworked some of the block.c error handling. +- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping + debug output on a user. +- Integrated patch from 1.34.6 block.c to 1.35 +17Aug04 +- Fix conio.c problem on Solaris. +- Add debug code to lock_jcr_chain(). +- Lock jcr chain around less code. +- Implement call by reference for Mmsg() and pm_strxxx() to + simplify calls. +- New IP address specification is used as follows: + [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { + [[addr|port] = [^ ]+[\n;]+] }] } + + so it could look for example like this: + SDaddresses = { ip = { + addr = 1.2.3.4; port = 1205; } + ipv4 = { + addr = 1.2.3.4; port = http; } + ipv6 = { + addr = 1.2.3.4; + port = 1205; + } + ip = { + addr = 1.2.3.4 + port = 1205 + } + ip = { + addr = 1.2.3.4 + } + ip = { + addr = 2001:220:222::2 + } + ip = { + addr = bluedot.thun.net + } + } + as a consequence, you can now specify multiple IP addresses and + ports to be used. In the case of a server, it will listen on + all those that you specify. In the case of connecting to the server, + Bacula will attempt connecting to one at a time until it succeeds. + And, in a few other special cases, Bacula will use only the first + address specified. + + The default port numbers are still the same and the services and hosts + are also resolved by name. So now you could use the real names for the + port numbers. + +Changes to 1.35.1: +14Aug04 +- Print error message if Alert Command fails in bpipe_open(). +- Doc Alert command. +- Eliminate unnecessary class in findlib/attribs.c +- Add necessary empty files to new tray-monitor directory. +13Aug04 +- Implement Class with template in findlib/attribs.c to do casting + of uint64_t into stat packet types to avoid compiler warnings. + Thanks to Meno for this idea. +- Make some modifications to satisfy VC++. +- Apply Martin Simmons' second patch to compat.cpp to fix the line + I previously missed. +- Apply Meno's fix to bnet that corrects use of ipaddr after free_addresses, + back out my kludges, and it works. +- Modified configure.in to by default add -Wall. +12Aug04 +- Found some problems with printing IP addresses -- will notify Meno. +- Added printing Pool to Job report. +- Fixed several places where dlists were not being released + (term_job_server, ...) +- Started implementing New() for dlists. Spent a lot of time, + but could not get it to work. +- Fixed a mutex deadlock between the job queue scheduler and the + watchdog. +- Made add_address() static. +- Added bsnprintf to address_conf.c +10Aug04 +- Apply Marin Simmons patch to inet_aton() in compat. +06Aug04 +- Build on Win32 -- required a few changes because of new IP code. +- Implement program reader code in Dir and FD -- not tested, and + a few corrections for writer code are needed in FD. +- Rework SQL for pruning. Add Admin pruning. Prune failed + jobs in Verify and Restore. +- Don't put commas in listing produced in restore so that users + can cut and past JobIds without having commas in the way. +- Change size_t to socklen_t in filed.c -- reindent a bit. +- Remove addr_list->size from buf size definition in bnet.c +- Create a Developer's document. +- Add prompt for Update volume from pool and update all + Volumes from pool. +05Aug04 +- Implement user friendly time duration input editing. +- Add buf len argument to edit_utime(). +- Added eliminate orphaned Client records to dbcheck. +04Aug04 +- Implement Alert Command in SD Device conf. +- Fix updating a Volume from the pool record -- it never changed + anything. +- Implement updating all Volumes from pool record. +- Add patch by Denis Shaposhnikov that fixes excludes of directories + in new style FileSets. +03Aug04 +- Merge Meno's IPv6-1 code. +- Update License to terminate rights of anyone suing a GPL licensor. +- Add Pruning doc sent by Bryce Denney +- Correct inconsistencies in restore command doc pointed out by user. +- Don't edit commas in SQL intergers if they are not stricly integer. +30Jul04 +- Update all pools in all DBs when starting the Director. +28Jul04 +- Implement final cut of berrno and update Win32 code. +- Update copyright to include a termination clause. Add copyright to + binaries. +- Implement .backups client=xxx for Nicolas. +27Jul04 +- Make first cut at implementing berrno class to handle Unix, Win32 + and bpipe errors. Bpipe still needs to be implemented. + This fixes (not yet tested) the Win32 errno problems in the compat lib. +- Fix btape compile problem reported by Martin Simmons -- thanks. +- Add ./configure detection of sys/tape.h +26Jul04 +- Apply two fixes to recent changes to dev.c submitted by + Martin Simmons. +24Jul04 +- Add checks in btape for correct size of off_t, and correct editing + of 32 and 64 bit values. +- Move supported OS/hardware into a chapter by itself. +- Fix bscan, which did not handle walking dcr list. +- Remove old attach_jcr_to_device() code. +- Fix config from Andy Wettstein's patch to use bitypes.h and detect + uint32_t, ... definitions. +- Fix a few compiler warnings because of casting pointers to int and + vise versa. +- Do some minor cosmetics to query.sql. nothing changed. +- Don't call stop_thread_timer() in backup.c if timer not started. +- Fix bug with out of order JobIds on restore. +- Make watchdog examine queues once every 10 seconds instead of once + a second. +22Jul04 +- Add more bools to dev.c +- Fix walking attached DCRs in bscan.c +21Jul04 +- Doc updates +- Start work on rescue files. Integrated RAID changes. +- Print a message when query.sql moved to query.sql.old during install. +- Move setting of FreeBSD chflags() to after utime() to avoid error + messages is immutable bit is set. +18Jul04 +- Turn off heartbeat in FD when -s is given so that we can + debug without a flood of signals. +- Close and reopen the device during an append test in + btape. This better tests appending as if Bacula stops/restarts. +- Remove old attach/detach_jcr_to_device() code +- Add new attached_dcrs code. +- Remove unnecessary subroutine for bsnprintf. +- Replace sprintf() by home-grown code in edit_uint64 ... +- Begin implementation of dev->attached_dcrs. +17Jul04 +- Remove scripts/fd.in from configure.in +- Add printing of JobId when a Job is started from the console. +16Jul04 +- Remove fd/fd.in from scripts directory. +- Fix a number of bugs in dbcheck concerning the -c option + (i.e. with a config file). +- Made RH start scripts use -u and -g options. +- Many more DCR changes. +- Add job message indicating that the job has been rescheduled + and when. +- Fix job end time so that it is always updated. Previously it + was not updated when a job was rescheduled. +- Correct SQL for restoring job by path/name. It could sometimes + pickup the wrong JobId -- submitted by a user. +- Add a number of "%s" in editing database errors -- security issue. +- Ensure that the NumVols is incremented and decremented in the + pool record when Volumes are created or deleted. +- Cleanup error handling when labeling a tape. If vol was read-only, + the device would still be marked as having found a label. +09Jul04 +- Put ftCreationTime into st_ctime of stat packet. Hopefully + this will fix the problem of noticing files have been moved + into the save path after a Full save. +- Fix bug in "status dir" where not all entries are listed. +- Cleanup some improper result printing in configure. +- Optimize a couple of insertions in binary_insert of dlists. + +Release 1.35.0 08 July 2004: +08Jul04 +- Apply Christopher Hull's const patch for PostgreSQL +- Add code to block.c to detect if block header is destroyed. +- Add debug code for memset checking for zeroing 1900-3000 bytes + which is what happened to the block headers. +- If block header is destroyed, read the next block. Probably + should return with new status similar to the SHORT block + return. +- Add more debug info to bls for bad blocks. +- More implementation of DCRs. +07Jul04 +- Eliminate argument passing in SD by using dcr. +- More int->bool conversions. +- Add file:block to a number of read/write error messages. +04Jul04 +- More int -> bool conversions. +- Modify the SD piece by piece to use DCRs everywhere. +- Cleanup some printout for query command. +- Fix typo in cats/mysql.c +- Work on cleaning up tape driver a bit (use bools, better calling + sequences). +- Attempt to fix multi-Volume disk backup. Needs to be tested. +01Jul04 +- Add Regular expressions to FileSet options. +- Correct configure.in to use ${MAKE} for doing the dependencies. +- Make MySQL and PostgreSQL try for 30 seconds to connect before + giving up. +- Correct Gnome 1.4 Makefile to build without cats library. +- Correct a crash reported (with patch) by Jonathan Soong + when attempting to backup an ACL on a symlinked file. +27Jun04 +- Fixed an off by one bug in the new resources pointer code. + res_head array was one too small. +- Added Errors to last_job list. This allows detecting jobs + that terminated in a warning. +- Implement setting the Win32 icon to yellow instead of red + when the job terminated OK but with warnings. +- Fix the Win32 makefile and VC project file. The links were + not including the Win32 dlls. +- Delete some old Win32 code that was turned off. +- Eliminate a few more Win32 compiler warnings. +- Reduce the output produced by NIS (Win32 install builder). +- Simplify some of the #ifdefing in compat.h +26Jun04 +- Rewrite spooling error handling when I/O error occurs. It is + a bit tricky, requiring to truncate the file so that a despooling + will work correctly. Needs to be tested. +- Make better subroutines for setting up for a new job. +- Start putting all DB ids on #defines (going to 64 bits). +- Fix gnome-console Makefile.in to work again. +- All "level=Incremental/Decremental" to the estimate command. This + required some re-arrangement of subroutines at a fairly low level. +25Jun04 +- Apply Piotr Jaworski's patch (patch-r-status.diff) to update the + catalog status when a backup job starts running. +24Jun04 +- Add (char*) cast to readline call in console.c for old readlines. +- Copy Makefile.in from gnome2-console to gnome-console (to eliminate + need for cats library). +- Modify spooling code to handle write error (e.g. spooling disk full) + more gracefully. Previously despooling would fail. +22Jun04 +- Reduce casting in smartall.c a bit and add counters for + bytes, max_bytes, buffers and max_buffers. +- Fixed reload algorithm to stack both job end callback and the + table id. +- Fixed the orphaned buffer after reload (job_end_push had to be + destroyed. +- Destroy cond var (jcr->term_wait) only if initialized. +21Jun04 +- Sort the Scheduled Jobs list by start-time, priority. +- Implement resources on a pointer. +- Fix Gnome console crash on up/down arrow with no history. +19Jun04 +- Finish first cut of SIGHUP code. To make really work need res + on a single pointer rather than in fixed memory. +- Fix a number of places in query.sql where multiple JobIds are + printed (due to JobMedia records). +- Add new query: List jobs on Volume given Volume name. +- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). + Caused fd leak in Win32 for each connection. +- Remove vol labeled test in askdir update_volume_info so that non-labeled + Volume in catalog can be marked in error. +- Close socket in SD when connection rejected. Caused fd leaks. +- Initialize job_start_wait cond variable after every new_jcr() otherwise + NetBSD gets error in library when trying to delete it without being inited. +- Fix typo (9 instead of 0) return status in write_new_volume_label. +- Fix mount.c to call routine that correctly marks a volume in error. +- Move code to rewrite volume label to subroutine -- a bit cleaner. +18Jun04 +- Finish implementation and testing of new restore tree code. +- Implement feedback while tree is loading. +- Eliminate printing INFO message in UpdateDB (cats) -- it generates + "false" error messages. +- Eliminate some GTK error messages when running the Gnome2 console. +16Jun04 +- Begin restructuring tree.c for inclusion of the binary_insert() + routine. +- Apply Peter Eriksson's lib file order changes in linking for IRIX. +- Abort configure if Internal is selected as the database. +- Add testimonials to the Web page +- Add the bugs list to the Web page "lists". +- Clarify the English in SuSE and Slackware when SD not running. +15Jun04 +- Applied another extern "C" patch from Peter Eriksson. +- Fixed a bunch of VC warning messages. +- Applied the patches sent by Andreas Jellinghaus: build Gnome and + wx-console in client-only build if configured; add ./configure option + to permit setting of sbin modes -- default is 0745 as before; remove + cats library from Gnome console build; remove old version from Gnome + About box. Thanks Andreas. +14Jun04 +- Applied Peter Eriksson's const changes to the source code. Thanks Peter. +- Implemented a binary_insert() method for dlists -- intended to be used + in the restore tree routines. +- Turned on my bsscanf() code, which replaces sscanf() by my routines, which + are a subset of sscanf() used by Bacula, but which have known 32/64 bit + behavior rather than vendor dependent !@#$%*. + +2004-07-30 Version 1.34.6 28Jul04 Release +28Jul04 +- Fix a restore bug where the backups could be + applied out of proper order possibly restoring an old version + of a modified file. +- Fix for restore selection of a file by name, where it was + possible to select a file from the wrong Client. +- Fix segmentation fault during backup of a symbolic link + with ACLs turned on. +- Fix a minor compile error in wx-console. +- Fix a bug in despooling when the spooling disk partition becomes + totally filed or gets I/O errors. +- Fix a memory leak in PostgreSQL, and make Bacula retry 5 times if + connecting to the DB fails. +- Retry 5 times if connect to MySQL failes. +- Fix linking the gnome-console + +2004-06-22 Version 1.34.5 21Jun04 Release +21Jun04 +- Fixed Gnome crash on up/down arrow with no history. +- Fixed btape "fill" crash with multiple tape option. +19Jun04 +- Fix a number of places in query.sql where multiple JobIds are + printed (due to JobMedia records). +- Add new query: List jobs on Volume given Volume name. +- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). + Caused fd leak in Win32 for each connection. +- Remove vol labeled test in askdir update_volume_info so that non-labeled + Volume in catalog can be marked in error. +- Close socket in SD when connection rejected. Caused fd leaks. +- Initialize job_start_wait cond variable after every new_jcr() otherwise + NetBSD gets error in library when trying to delete it without being inited. +- Fix typo (9 instead of 0) return status in write_new_volume_label. +- Fix mount.c to call routine that correctly marks a volume in error. +18Jun04 +- Eliminate printing INFO message in UpdateDB (cats) -- it generates + "false" error messages. +- Eliminate some GTK error messages when running the Gnome2 console. +16Jun04 +- Apply Peter Eriksson's lib file order changes in linking for IRIX. +- Abort configure if Internal is selected as the database. +- Add testimonials to the Web page +- Add the bugs list to the Web page "lists". +- Clarify the English in SuSE and Slackware when SD not running. +15Jun04 +- Applied the patches sent by Andreas Jellinghaus: build Gnome and + wx-console in client-only build if configured; add ./configure option + to permit setting of sbin modes -- default is 0745 as before; remove + cats library from Gnome console build; remove old version from Gnome + About box. Thanks Andreas. + +2004-06-09 Version 1.34.3 09Jun04 Release +12Jun04 +- Enhance regression scripts. +- Apply Tim Oberfoell's ACL patch. +11Jun04 +- Implement bsscanf() because sscanf on FreeBSD amd64 stores + in 64 bit words for %ld. Turned on for the moment only for + FreeBSD amd64. +- Fix all conversions of ptr to int to use (long unsigned) this + works on i386 and amd64. +- Add mtimeonly and keepatime to new Options list -- omitted before. +- Add a bit more authentication debug code. +- Start variable name/overload cleanup in SD +- Fix sscanf() in askdir.c scanning into bool to use local int. +- Make max_spool_size int to allow proper arithmetic. +- Remove trailing junk on sscanf() of "Hello Start Job" in SD. +- Make ask_sysop_to_mount_volume() always ask sysop. +- In SD mount.c, if get I/O error or read label error on non-removable + Volume, mark the volume in error and retry. +- In SD mount.c, if non-removable volume, never ask sysop to mount. We + ask sysop if there are no appendable Volumes though. +- The above 3 items fix the looping error Bacula would get if the + Volume was in the catalog but didn't exist -- or was zero bytes + long. +10Jun04 +- Implement | and < in FD for new FileSet files. +- Implement simplistic attribute spooling statistics in status. +- Make storage=xxx on restore override the restore default. +- Fix an uninitialized stack variable in append.c that caused data + corruption on amd64 machines and *could* cause the same on other + machines. +- Fix a seg fault in automatic tape labeling. +- Eliminate a PoolId=nn when zeroing the InChanger flag for a Volume. +- Add a bit more debug info to bls.c +- Clear InChanger flag during "update barcodes" if no VolName present, + i.e. no Volume in Changer. +- An update pulled in Christopher Hull's fixes to the client program + execution on Win32 to search the path and use COMSPEC. New rules + apply! +- Fix UpdateDB to complain if mum_rows < 1 rather than != 1. + + +2004-06-09 Version 1.34.3 09Jun04 Release +09Jun04 +- Add missing FT codes in new FileSet callback, which caused error + return on unchanged directories. +08Jun04 +- Fix "update volumes" move from one pool to another. +- Change default search location for PostgreSQL -- thanks + to Hans-Ulrich Schaefer. +06Jun04 +- Zero Slot if not autochanger in stored/mount.c +- As a last ditch effort to mount the next tape in mount.c, zero slot + and ask sysop. +- Win32 status was picking up the first status in the list job terminated + jobs instead of the last. +05Jun04 +- Add additional fields to llist pools +- Correct some minor label scan problems with update slots +- Ensure correct Pool is used with tape cleaning prefixes. +- Eliminate false error message in update slots (slots taken as + Storage device). +02Jun04 +- Print "Unimplemented" message if user does reload command in Console. +- Add DISTINCT to Volumes for restore in query message (user supplied fix). +- Fix crash in btape during read after fill -- important bug. +- Turn config parse ABORTs into ERROR_TERM in Storage daemon. +- Add dbcheck enhancements submitted by Mano Abels and + Jose Luis Tallon. +- Update autoconf files to latest version. +01Jun04 +- Modify jobq scheduler to require exclusive use of the Storage device + before starting it. +31May04 +- Eliminate a few compiler warnings on Win32 +- Change Win32 to use btimers instead of timers. +- Remove two returns in void subroutines in wxbconfigpanel.cpp +30May04 +- Apply Christopher Hull's check for error return from open_bpipe() + in filed/job.c +- Be sure to clear *all* bits in hourly when an hour is given. +- Apply a user fix to query.sql +- Check status code returned from _open_osfhandle in compat +28May04 +- Apply Peter Eriksson's bug fixes. +- Add Alpha (tru64) submitted by Scott Bailey. +- Update manual +- Add new Autochanger to list supported +- Cleanup src dir better after glade trashes it with junk +- Make another attempt to get hourly, daily, ... keywords working + intuitively and correctly. +- Prevent seg fault when no job name specified on "status job" +- Rename timers.h/.c in lib to prevent conflict on some machines +- Trap NULL DCR in block.c +- Add additional info to failed btape test pointing user to manual. +- Undefine DCR, which is defined on some stupid systems. +- Fix stored/dircmd.c not to quote Volume name on label query so that + "update slots scan" works right (the quotes confused it). +- Fix autochanger.c not to attempt to unload a slot if the prior loaded + request returned -1. +01May04 +- In testing for Mike Acar's problem. I *finally* found and nailed + the mount command that did not release a waiting job. The return + of a stolen lock forgot to broadcast. +- In examining Mike Acar's problems, it appears that the Bacula + block size is not always set to a multiple of 1024. I've modified + block.c to do so. +30Apr04 +- Add Excludes to new FileSet handling. +- Fix bsmtp.c to correspond to RFC-2821 by removing extra spaces. +29Apr04 +- Implement new style FileSets in both the Director and in the + File daemon. No filters yet. Both old and new styles work. +28Apr04 +- Apply the fixes Chris Hanson sent for mtx-changer and for detecting + PostgreSQL on debian. +- Rework File Options document +- Re-begin work on File Options. +- Add define for nl_langinfo in configure +- Add additional tape drives sent by Jesse. +27Apr04 +- Modify syslog in win32/compat to throw up a MessageBox(). +- Inhibit sending daemon messages to stdout if Win32 is set. +- PostgreSQL performance updates from Volker Goetz +- DB script updates suggested by Dan +- Doc updates + + +2004-04-26 Version 1.34.2 24Apr04 Release +24Apr04 +- Get production build on Win32 of wx-console working -- mostly a problem + of getting the paths right and installing and building wxWidgets. +23Apr04 +- Make SD utility programs accept device name as well as archive device + on command line. +- Update docs +22Apr04 +- Fix one off bug in StartBlock in bscan -- thanks to Gregory Brauer for + reporting this. +- Remove old debug code from Win32 FD. + +2004-04-20 Version 1.34.1 20Apr04 Release +18Apr04 +- Found and fixed SD crash during restore. +- Added FreeBSD Bare Metal Recovery documentation by Alex Torres + Molina and others. +- Added nice graphics produced by Aristedes Maniatis giving an + overall view of Bacula. +- Changed textdomain to be "bacula" in all progs. +- Fixed a major race condition in the job scheduler when multiple + simultaneous jobs is enabled. This occurred only when on job had + blocked another because of resource usage. This caused a deadlock + and CPU usage. Reported by Michel Meyers. +- Changed the backup report to indicate "Backup OK -- with warnings + if any warning messages were generated. +- Change output of restore report to indicate: + "Restore OK -- warning file count mismatch" +- Make backup report say "Backup OK with warnings" if either FD or SD + report any non-fatal errors. +- Modify bscan to print some elementary statistics (#Jobs, #Files, ...) + added to catalog. +16Apr04 +- Modify bscan to print some elementary statistics (#Jobs, #Files, ...) + added to catalog. +15Apr04 +- Added --enable-wx-console and updated Makefile.in +- Fix mtx-changer so that the calling sequence is compatible + with the previous version (the new one required arguments that + were not necessarily used). +- Document how to use stunnel with Bacula. +13Apr04 +- Fix crash in query command. +- Remove schedule from the default restore job. +- Fix data spooler to use min/max tape blocking factors. +- Automatically turn of conio if library not found instead of bombing. +- Cleaned up a lot of copyright dates. +- Try to keep spool statistics from going negative. +- Integrated wx-console code from Nicolas Boichat. +09Apr04 +- Added new Pools chapter. Doc about using two disks. +- Attempt to keep the spool file statistics size from going + negative. +-8Apr04 +- Fix the Director's Scheduled Jobs: list to have a === + termination. +- Fixed ./configure to disable readline rather than stop if + readline.h is not found +- Fixed a typo in the SQLite database update script as reported + by Robert J. Clark - thanks. +07Apr04 +- Removed src/win32/pthreads and src/win32/zlib from the source + tree. +- Created a new depkgs-win32 that has the pthreads and zlib source + code. +- Removed the JobDefs from the default Restore job as it has a + schedule. Thanks to Matt Howard for this. + + +2004-04-06 Version 1.34.0 06Apr04 Release +06Apr04 +- Turn off SIGQUIT in console. +05Apr04 +- A good number of document updates. +- Fixed the order which multiple files are accepted for + inclusion in the restore tree due to the fact that PostgreSQL + returns files in a different order from their insertion. +02Apr04 +- Fix autochanger test in btape. It used old editing routines. +- Fix run_program to return 0 if program runs and no output. +- Add more debug to run_program. +- Make signal debug print signal string. +01Apr04 +- Build console with client-only build. +- Add better error messages to some of the db_xxx routines. +- Apply Christopher Hull's patches for proper Win32 shutdown. +- Eliminate True and False in favor of true and false. +- Put correct thread id in jcr once the correct thread is running. +- Zap head and tail pointers in dlist when everything is removed. +- Rework sm_dump() so that it won't overrun a buffer when editing + and error message. +- Fix watchdog to properly remove entries while walking the + dlist chain. +- Fix termination of last_jobs list by removing broken code. +31Mar04 +- Update dbcheck to fix Paths without a trailing slash and Filenames + with a trailing slash. +30Mar04 +- Add -p option to all SD programs including bacula-sd. It causes + Bacula to proceed or forge on in case of I/O errors. It is unlikely + this will help, and it is strongly recommended against running + the daemon with this option in production. +- Tweaked the Makefile not to create the gnome directories except + when doing a gnome install. +28Mar04 +- Implement Qmsg() queuing of messages to prevent recursion especially + for bnet.c where recursion is fatal. +- Add detection of ncurses if the termcap lib is not found. +- Tweak winabout -- start cleanup. +- Fix dlist again, when list is destroyed, be sure to null head and + tail pointers. +27Mar04 +- Make the default for restore to have nothing marked. +- The "all" keyword on the restore command marks everything by + default. +- The "done" keyword on the restore command prevents user interaction + with the tree routines -- used mainly for scripting (regression ...). +- Correct a bug in the last_sibling code. +- Add alphabetic sorting of siblings so the "dir" and "ls" commands + during restore show files in alphabetic order. +25Mar04 +- Based on Mike Acar's suggestions rework tree insert routines. Improve + performance by using a last_sibling link for inserts. +24Mar04 +- Apply corrected SQL to sql_get.c supplied by Dan Langille. +- Implement "delete job jobid=xxx jobid=yyy ..." +- Implement "purge volume=xxx volume=yyy ..." +- Fix buffer overrun in query string substitution. +22Mar04 +- Fix bad format %s instead of %d for editing new slot in update volume. + Reported by Vadim Zotov. +- Better error diagnostics in ./configure for detecting termcap library. +20Mar04 +- Restore old sql.c split_path and file name since it seems to have + broken the Verify stuff. +19Mar04 +- Hunt down missing free_locked_jcr() in SD that caused zombies. +- Modify status outputs to be more consistent for zombie checking. +- Add tests to regression script for zombie jobs. +- Set EIO in dev_errno for all error returns when bad data found. This + fixes ERR=Success messages. +- Make error messages all contain ERROR for easy regression testing. +- Add sanity check in DIR for VolFiles becoming smaller. +18Mar04 +- Second cut GTK+ restore GUI. Ready for testing but much more to do. +- Phil reported an sql path length=0 message. This broke saves of + / -- fixed in scan.c +- Fixed seg fault in btape "test" due to missing allocation of dcr. +- Tweaked some btape messages. +- Sort Volume names in Job report according to the order they were + written -- user request. +17Mar04 +- First cut GTK+ restore GUI. +- Applied bsmtp patch supplied by a user. Thanks. +- Made a new split_path_and_filename() subroutine -- in lib/scan.c +15Mar04 +- Fix "typos" in RedHat install-autostart Makefile.in +13Mar04 +- Added two tar files that Phil sent for adding slackware support. + Thanks Phil and Matt Howard. +- Fix relabel command -- || should have been &&. +- Correct once more the scheduling algorithm -- this time it should + be much better. +12Mar04 +- Implement simple spool statistics printed by "status sd". +- Cleanup/add spool error messages. +- On multiple ctl-c, exit from console quickly. +- Implement code to select a different Volume in the SD if the + current Volume is busy -- requested by Patrick Cole. +- Change postgreSQL make tables to use bigint instead of integer + for StartBlock and EndBlock because + there is no unsigned integer in postgreSQL and these fields use 32 bits. +- Implement multiple drive autochanger support -- prompted by email of + Patrick Cole. +11Mar04 +- Update version and date in Win32 build. +- Fix bug in run_conf with month range zapping wday and wom. +- Correct editing of port for PQsetdbLogin in postgresql.c as reported + by J. Conroy, and do a second try. +10Mar04 +- Integrate Phil's Makefile patch. +- Add SpoolDirectory to SD Device resource. +- Add MaximumJobSpoolSize to SD Device resource. +- Add MaximumSpoolSize to SD Device resource. +- Implement the above. +- Make despooling lock the device so only it writes + to the device during despooling. +09Mar04 +- Data spooling now passes the regression tests. +- Added "Files Expected" to the restore job report. +- Implemented SpoolData = yes/no in the Job resource +- Implemented SpoolData = yes/no in the Run overrides. +- Note, you must have a 1.33.4-09Mar05 SD or later with the Director since + the DIR->SD protocol has changed to support data spooling. +- Remove the confusing "Which DBMS do you want to use (please select only one):" + messages from ./configure. +- Fix broken Jmsg with missing argument in find_one.c +08Mar04 +- Second cut data spooling code. +- Fix missing piece of yesterday's patch. +07Mar04 +- Integrate patches supplied by Jason Conroy that fix Slot numbers + getting lost. +06Mar04 +- This version contains a *major* addition to the SD structures. + Many variables have been moved out of the JCR into a new DCR + (Device Context Record). This required quite a few changes, and + introduced a bit of instability. In the end, after a few more + rounds of changes, the DCR will replace virtually all arguments + to the low level SD read/write routines. This change permits + (with a bit more code) the SD to write to multiple devices at + the same time for a single Job. It also facilitates adding the + data spooling code. +- Added a patch that fixed the port specification for postgresql. +- Fixed findlib/find_one.c so that it will complain about backing + up a hard linked file twice, which makes a restore impossible. +- Tighten up permissions on pid file. +- Attempt to avoid warnings when casting 64 bit pointers to an + integer. +- Added skeleton code for data spooling. +- Make sure spooled attributes are discarded on error. +03Mar04 +- Updated getdiskinfo in rescue/linux to handle the fact that the + sfdisk -s option now includes info on partitions. Also, before + creating the diskinfo files, clean out the old ones. +02Mar04 +- Add debug and error output to jobq.c +- Fix some minor errors in debug output of scheduler.c +- Add "trace on/off" command and modify trace code in message.c + to work off trace flag rather than #defines. +01Mar04 +- If console is found during install warn user (new name is bconsole). +- On install copy console.conf to bconsole.conf if it exists. +- Make RunAfterJob error non-fatal. +- Rework minor details in status output. +- Attempt to define all values for "consoles" in JCR to avoid + confusion. +28Feb04 +- Use net start bacula to start Bacula on WinXP/NT/2K + systems after installation. +- Change a few strcpy()s to bstrncpy()s in signal. +- Add "gui on/off" command to console to turn on gui mode, + which will adapt Bacula better to batch or gui programs. + Currently, it prevents commas from being inserted into + numbers in the list command. +- Tweak some of the Makefiles so that the install is done with + the right program (nothing really changed). +- Install logrotate in the "make autostart" of Bacula on RedHat. +- Implement SIGHUP while jobs are running. It *seems* to work but is + a bit fragile and still crashes if you push it. More work needed. +- Applied Phil's GNOME 1.4 patch. Very clean. Thanks Phil. +- Major updates to the native Win32 installer. +27Feb04 +- Restructure free of conf resources to handle job_end_push() + and SIGHUP. Lots of changes little substance. +26Feb04 +- Add mtimeonly=yes/no and keepatime=yes/no to Include list + 1.33 style. +- Allow no modifier in time and size specifications. +- Attempt to implement disk seeking. More work needed. +- Implement more in win32 installer and test it. +25Feb04 +- Implement kb, mb, and gb modifiers for size, which mean + 1,000 bytes, 1,000,000, ... bytes. +- Add Makefile to src/win32 to allow building the full + release -- it calls nmake where appropriate. +- Remove the rsi directory from win32 as suggested by Christopher +- Add Michel Meyers' nsi file to win32 and integrate it with + the build. +24Feb04 +- Add the frigging _O_BINARY to the right variable. Win32 works! +- Add debug code to state file. There is a problem with Win32 read + returning one byte less than it should. +- Implement a number of new functions for alist so that it has + equivalent functionality to dlist. It will be used for + job_end_push(). +- More work on state file. +- Added a popup message box on Windows if Bacula Aborts. +- Attempt to shutdown the FD server, but doesn't work on Windows. This + would have given a cleaner shutdown, no problem. +23Feb04 +- Update projects +- Attempt to fix state file on Win32 -- no luck. +- Add HPUX tweaks to configure.in +- Update quickstart and install.wml of doc. +- Eliminate extern int h_errno from bnet.c by including netdb.h +- Eliminate NumJobs from last_job structure so that FD and SD + correctly report what is in the state file. +22Feb04 +- Implement daemon state file, and save/restore last_jobs list. +- Fix time routines in win32 compat.cpp +- Fix a bug of not checking the bpipe_open() status in do_shell_expansion(). +21Feb04 +- Add Volker's bacula script to the SuSE directory and convert it + to bacula.in +- Make LockRes() and UnlockRes() use read/write locks and have + debug info to trace locking and unlocking. +- Begin work of implementing SIGHUP. It is now enabled for + the Director and works only if there are no jobs running, + in addition, if the new conf file is incorrect, it will + terminate Bacula. Much more work to be done. I've figured + out a scheme to implement it with running jobs without + adding individual semaphores or use counts. +- Sort "list jobs" by StartTime rather than JobId, which can + be random. +16Feb04 +- Add a lot of "const" to char * arguments to keep the native + Sun compiler happy. +- Added first cut of message queuing to prevent recursion in + low level routines. This code is not yet working. +- Spent a *huge* amount of time looking at the tape driver + code in the wake of several reports of tape labels getting + trashed. The code looks fine. +- Created a tape with an error (by writing a block at the + beginning of a tape that had valid data), and found that + Under Linux there is no way to read past an I/O error. + I tried mt; I tried my own program (btape); and I tried + using scsitape, which talks directly to the scsi driver. + This is *VERY BAD* news. +- I spent an *enormous* amount of time enhancing the btape + test program as well as making the fill command work with + both one and two tapes and the autochanger if configured. + The multiple tape fill test is now quite comprehensive. + It checks the last block on the first tape, the first block + on the second tape, and the last block (11) on the second + tape. +- Teaked the tape driver for several functions to use the + OS driver's notion of mt_file if there is an error. +13Feb04 +- Add DB update scripts retrieved by Scott to a new updatedb + directory at the top level. +- Add -p option to bcopy to allow ignoring errors on input. +- COALESCE(xx,0) does not work on PostgreSQL because the 0 is not a + correct time. Replaced by adding LastWritten IS NULL to the sort + line as was first suggested by JML. +12Feb04 +- Use COALESCE(LastWritten, 0) in sql_find.c to get NULLs to sort last. + See note above. +- Add write/read and positioning test to btape "test" program. +10Feb04 +- Fix bad printf of InChanger flag reported by Pascal Pederiva. +- Fix bad indexing off stack in authenticate.c reported by + Pascal Pederiva. +09Feb04 +- Add \n to hosts.access reject message. +- Implement security message class and make hosts.access message use + that class. +08Feb04 +- Fix check_memory bug in ua_query.c, which gives a bus error on Solaris. + This affected only the query command. +07Feb04 +- Added backup to cdwriter script to examples provided by Johan Decock. +- Fixed a bug where ls really did lsmark (just invert command table + entries). +- Fix bug where a soft linked file and a directory had the same name + by treating the soft link as a directory and putting the entries under + it. This fixes the bug reported by Alexander Mueller. +- Fix a deadlock situation in the new watchdog code where the + watchdog locks its semaphore, and attempts to lock the jcr_chain, + but another thread has locked the jcr_chain and wants to free a + watchdog, which tries to lock the watchdog semaphore -- deadlock! + Used read/write locks to solve the problem. +- Improved the error messages when I/O errors or buffer id errors + are detected, and prevent non-sense errors from being printed. +- Fix some incorrect messages in restore if no name is supplied + on the command line (e.g. pool= ). +- Add the third digit to the release version number. +04Feb04 +- Add -l option to bls that causes it to ignore tape label errors. +03Feb04 +- Correct problems with jobs scheduled at a later time by hand. + Missing unlock(), backward test on pthread_create status. +- Fix setip crash reported by Alan Brown. +- Create bacula.spec.in in SuSE directory from Scott. +- Fix missing unlock() in ua_status on access denial. +- Lots of little cleanups, improving jcr use_count debug printing. +- Add EMSG to mem_pool utilization statistics. +01Feb04 +- New bacula.spec.in file from Scott +- Add Scott's spec file to the platforms/suse directory +- Modify configure.in to make platforms/suse/bacula.spec +- Do not allow a resource name to be specified twice. + +2004-01-30 Version 1.33-30Jan04 Release +30Jan04 +- Apply Jess Guardiani's second fix to list autochanger volumes without + opening the drive (necessary on FreeBSD if no tape is in the drive). +- Added Postgresql configure search libraries recommended by Alan Brown. +29Jan04 +- Reworked the command line handler in restore to walk through the + arguments one at a time. This makes the file= entries work correctly. + Also reworked the code that takes the MediaType and finds a + storage device. +26Jan04 +- I've noticed that the backups of Rufus, my development machine, can be + "stuck" for about 12 hours, then suddenly they run. In running the + debugger, I see that it was stuck on the select() statement waiting + for the Hello. Why this happens I am not sure. I re-organized the code + a bit because it didn't seem to be as robust as it could, but I cannot + explain the problem. +- As a consequence of the above, I have implemented a new bsock timer that + can be started and stopped. This is based on Nic Bellamy's new watchdog + code. The timer is set with start_bsock_timer(bsock, timeout); If the + timeout expires, the bsock will be marked as timed_out and interrupted + with a pthread_kill() on the current thread. +- Added 5 minute bsock timers to all the opening Hello/authentication + exchanges between the various daemons. +24Jan04 +- New spec file from Scott. +- New patch file from Scott for create_sqlite_database +- Fix crash in run command if invalid pool specified on the command line + and then the user cancels the Pool prompt. +- Separate Console and ConsoleFont resources in gnome2 conf files. +- Remove possibly bad ASSERTs from bnet.c +- Remove open() of device in dircmd.c, which fails on FreeBSD with + an autoloader -- thanks to Jesse Guardiani for this fix. +20Jan04 +- Remove all "hostname -s" from configure except for RedHat. Use uname -n instead. +- Implement SetIP command. +- Implement Close On Poll in Device resource on SD. +- Implement Full, Inc, and Diff Pools. +- Implement Access control lists for Consoles. +18Jan04 +- Define default working_dir as /var/bacula/working. +- Implement setip console command to set new IP address for a Client. +17Jan04 +- Implement maximum network buffer size directives. +- Good first cut at access control lists for the console. +- Optimize restore to select only latest Differential backup after + the Full, and then all following Incremental backups. Previously + everything after Full was selected. +16Jan04 +- Organize kernstodo a bit (more to be done). +- Add client IP address to BSOCK structure. +- Use bit fields where appropriate in BSOCK structure. +- Pass UAContext to ua authenticate in Director, and make it + set the appropriate console (or NULL for none). +- Tweak restore "run" argument handling and add "files" keyword. +- Add device name or Volume name to some SD messages. +15Jan04 +- First cut multiple consoles. +14Jan04 +- Update kernstodo +- Add quit command to restore tree handler. +- Make restore tree handler remember if a hard link is present, and + in doing a mark, only get database entry if there is a hard link. + mark commands thus run at least 2 orders of magnitude faster. +- Add files=xxx field to run command submitted for restore. +- Add yes to restore run command if either yes or run is command line + argument. +- Make "yes" on command line argument skip prompt for modification of + run job. +- Add markdir and unmarkdir -- both affect only the directory in + question and do not do a recursive descent. +- Make tree command automatically mark all higher level directories to + be restored when a directory or a file is selected. Such directories + are indicated by preceding the name with a + to indicate that only + the directory entry is selected and not the whole directory tree. +- Modify a few tree commands to walk through all arguments rather than + just taking the first one. +13Jan04 +- Update copyright date on changed files. +- Make mark command in restore tree run *much* faster by accessing database only + if the file actually is hard linked -- determined at time tree it built by + keeping a has_link bit in the tree entry. +12Jan04 +- Modify findlib/makepath.c to create all parent directories with full permissions. + This should solve the access problems on restoring files on Win32 systems. +- Modify restore to report **** Restore Error **** if any error are found. + I.e. a file could not be created. +- Change a few errors into warnings -- e.g. if permissions could not be set, but + the file is actually restored. +11Jan04 +- Replace bsd_queue with dlist in lib/watchdog.c +- Add Date: header to bsmtp. Thanks to Meno Abels (abels) on SourceForge + for reporting this. +- Remove ap==NULL check in src/lib/var.c as suggested by Christoph Barbian + because ap (va_list) is a struct on the Alpha, so the code does not + compile. +10Jan04 +- Implement first cut of polling for a Volume. New Device directive + "Volume Poll Interval = xxx" where xxx is a time specification + (e.g. 5min). Default is off. +- Call pthread_cancel on SD msgchan only if the threadid is non-zero. +07Jan04 +- Change RH autostart scripts to start in Dan's order. + +2004-01-06 Version 1.33-06Jan04 Release +06Jan04 +- Correct calculation of week of month in scheduler and in scheduled + listing. +04Jan04 +- Fix cancel of job waiting on mount to be a bit cleaner. +03Jan04 +- Fix seg fault -- don't close db in db_open_database(). It must explicitly + be called. +- Doc updates +- Allow purge of a single JobId from a Volume (code untested) +- Implement fix to keep SD from looping complaining about the wrong volume + at the end of a tape -- reported by Phil, and fix confirmed by him. I cannot + seem to reproduce the bug here. +- Clean up a few more strcpy()s. +01Jan04 +- Fix configure.in FD User print per Lars. +- Doc update. +- New bacula.spec.in from Scott. Nice! +- Make RunAfterJob non-fatal if it errs since the Job has really + already completed the save. +- Replace sprintf with bsnprintf in message.c +31Dec03 +- Note, this change affects only the Win32 FD. +- Fixed Win32 FD crash due to missing argument in status command. It + always crashed if there was a job that had previously run. Thanks to + Christopher Hull for finding and diagnosing this problem. +29Dec03 +- Fix SELECT as indicated by Dan in sql_get.c for returning Volume names. +- Fix last_jobs list crash for utility programs (btape, ...). +- Correct editing of FileSet name into SQL command. +- Allow calling watchdog stop without initialization for utility programs. +- Enhance btape test by attempting to forward space past the end of the tape. +- Detect CAP_FASTFSF in btape test as possible reason for failure. +- Attempt to prevent infinite loops in fsf_dev() if device not properly + configured. +- Attempt to get correct file number on tape after backspacing at EOM. The + correction should resolve differences in OS tape driver implementations. +- Add ctl-c detection to bconsole. When reading from tty, interrupts any + output from Bacula, when reading from a file, it terminates the reading + and returns possibly exiting if it is a batch job. +- Create devel_bacula.in script and make it configure itself. Very similar + to the new bacula.in. +- Modify bacula.in to have separate file locations for each daemon -- makes + it easier to make a new devel_bacula.in when there are changes. +- Remove old config files when rebuilding configure to avoid error msgs. +- Fix btape "test" to respect TWO EOF. +- Fix fsf_dev() to use system notion of file if it is valid after bsf_dev(). +- Move btraceback.gdb to scripts directory on installl. +- Add new mandrake bacula.spec.in +28Dec03 +- Find commonset of c_iflags that work with FreeBSD tcsetattr on terminals. +- Remove comments from string concatenation -- doesn't work on FreeBSD + compiler. +- Moderately improve bpipe_close() errors. Must rethink status return. +- Eliminate some Emsgs in favor of Jmsgs. +27Dec03 +- Add optional Pool keyword on restore command line. If specified, the pool + used will be restricted to the specified pool. +- "Finish" implementation of JobDefs. +- Fix directory for chmod of cats scripts. +26Dec03 +- Implement foreach_res() #define and start replacing old code. +- Work some more on jobdefs -- more to be done. +- Implement bstrftime_nc() bstrftime with no century. +- Fix static console problem in gnome2 and gnome directories reported by Alan + Brown. +- Add code to test for valid Resource Names. Permitted characters are now + alpha, numeric, colon, period, minus, underscore, space. +- Turnoff some unused code in timers.c +- Start adding code to dev.c to prevent infinite loops if fast forward space + file (MTFSF) is configured on but not properly supported by OS. +24Nov03 +- Sort FileSet selection list by CreateTime. +- Add "lsmark", and "estimate" to tree routines. +- Doing a mark or unmark now prints how many entries were changed. +- Add command argument parsing to btape.c +- Enhance EOT to print file:block on message. +- Add repeat counts on btape bsf, fsf, bsr, fsr, and weof commands. +- Enhance btape's fill command to be much clearer and more reliable. +- Add state file to btape so that unfill command can be done any time + after a fill command. +- Use reposition_dev() to position for read back of last block. +22Nov03 +- Zap InChanger flag only if setting Slot to non-zero. +- Added new SD directive TwoEOF, default off, that tells Bacula whether + to write one or two EOFs for EOM. For the OnStream driver it must + be off, otherwise an empty file will be created. +- Cleaned up the btape "fill" command to compare the last block written + and read rather than just printing them. +21Nov03 +- Implement btape test for autochanger. +- Implement btape test for Fast Forward Space File. +- Moved up to cygwin 1.5.5-1 +- Implemented Fast Forward Space File +20Nov03 +- Add support for selecting volumes from InChanger list first, then + selecting from all available volumes. +- Ensure that Volumes are selected from oldest LastWritten data/time. +- A couple of bug fixes ensuring the proper ordering of volumes. +19Nov03 +- Return oldest LastWritten for find_next_volume. +- Remove ASSERT from stored/acquire.c that could trip when it shouldn't. +- Enhance SD status if debug_level > 1 to show details of dev status. +18Nov03 +- Create update_bacula_tables, ... scripts and modify configure and Makefiles +- Eliminate is_num() and use is_an_integer(). +- Add user slot selection code "slots=1,2-3,5,10, ..." +- Start daemons at level 90 rather than 20 so that MySQL will already + be started. +- Write alter_mysql_tables.in and alter_sqlite_tables.in +- Add Drive and InChanger to Media record. +- Update database level to 7. +- Add db_make_inchanger_unique() and call it when creating and updating + the Media record. +- Add Drive and InChanger to database code for Media record. +- Allow changing InChanger flag in update command. +- First cut at allowing the user to specify slots for updating autochanger. +- Add scan to "update slots scan". +- Add command in SD to readlabel. +15Nov03 +- In the bacula start/stop script, ordered the stop: FD SD Dir to + give the SD the best chances of updating the catalog before dying. +- Add Drive and InChanger to MEDIA_DBR record and to Volume update + from the SD. +- Reorganize the Volume info update from SD so that the Dir sends back the + current information in case the Volume status has changed by expiring. + The DIR-SD protocol is not backward compatible (must update). +- Fixed the signal handler to pass the signal to the exit_handler() + previously it passed 1. +- Modified SD so that on normal shutdown, it walks through all jcrs and + cancels them so that the Volume status will be updated in the catalog. +- Found and fixed a bug where ST_LABEL was not set in append mode + (when a different tape was accepted other than the original one + proposed by the DIR. +- Update the catalog Volume info after dev->file is incremented rather + than waiting for end of job. +12Nov03 +- Change getdomainname() prototype for Darwin. +- Add gethost_strerror() to create correct error message for + gethostbyname(). +- After doing a kill() of a stalled connection in watchdog, turn off + the timer to prevent an infinite loop. +- Allow Bacula to rewrite the label on a disk volume. +- Correct usage report printed by bsmtp. +11Nov03 +- Complete changing references to bsmtp from smtp. +- Add L_NONE for Admin and Restore jobs and update level_to_str() +- Fix segfault from double free of RestoreBootstrap in job.c +10Nov03 +- Change console to bconsole +- Change console.conf to bconsole.conf +- Change smtp to bsmtp +- Implement .bconsolerc +- Check if volume has expired when doing an update media for the SD +09Nov03 +- Implement new code that assures that a non-zero Slot is unique within + a given Pool. When setting a non-zero Slot, the Slot of all other + Volumes with the same Slot is set to zero. Redone later to add + InChanger flag +07Nov03 +- Fix bug reported by Lars where an incorrect Volume name was printed + by the "status dir" command. +06Nov03 +- Pretty up a few error messages printed by smtp. +- Make btime_t int64_t so that one can do arithmetic. +- Implement since as utime (64 bit UTC). +- Compute clock diff between Dir and FD, and adjust since time. +- Apply SQL fix from Nic Bellamy (thanks). +- Apply John's zlib #ifdefing fix. +05Nov03 +- Add Dan's with-sd-user, ... to configure.in. +- Add Dan's userid and group modifications to bacula.in +- Lots of documentation updates. +- Make console print "Enter a period to cancel a command" when starting. +- Fix the "list nextvol" command so that it doesn't try to close the + database twice, giving a segfault. +- Fix (hopefully) to dircmd.c so that a mount request does a pthread_cond_signal. + There was one path were the signal was not sent. This should fix the bug + that requires you to do two "mount" commands to free a job waiting on a mount. +- Make dir_ask_sysop_to_mount_next_volume() return immediately if a slot is + specified. +- Correct some of the messages in testfind.c (pointed out by Dan -- thanks). +- Alias fd to client, sd to storage. +- Changed order of Console commands so that short commands such as q (quit) + are more logical. + +2003-11-03 Version 1.32d 02Nov03 Release +02Nov03 +- Mainly a bug fix release. +- Do a clean of both Gnome directories. +- Require that FileSet id match when finding an Incremental + previous job. This was already the case for a Full. +- Print message if no status returned from FD. +- Correct "Do not forget to mount the drive" message. Test was + backward. +- "status dir" stopped scanning the run records on the first + one that matched giving an incomplete listing. +- Edit commas in Bytes on "estimate" command output. + +2003-10-30 Version 1.32c 30Oct03 Release +29Oct03 +- Add %v to job edit codes. It edits in the VolumeName(s). +- Add code to ensure that fds 0,1, and 2 are defined by dup'ing them + to /dev/null if necessary. Mostly for Windows that does not have them. +- Error check dir_create_jobmedia_record() 2 places in acquire.c +26Oct03 +- More doc fixes. +- Make message buffer longer for a status message that was + truncated. +- Put termination on varargs calls in gnome2-console. +- Scroll only if text sent and not for status update. +- Add all possible Status codes the jobstatus_to_ascii() +25Oct03 +- Add new spec file and cats patch from Scott. +- Optimize tree.c a bit -- turn off debug code, keep node fname + length for fast rejection, add some statistics, allocate + in 100K and 1Meg chunks, use bool, uint16_t and uint8_t to + reduce node packet size. +24Oct03 +- Eliminate ua_retention.c that was not used. +- Improve error message when closing brace missing in conf file. +- More doc updates. +- Eliminate Don't forget to mount if it is a disk file. +- Fix Gnome2 scrolling and blank screen problems. +- Eliminate multiple JobIds in restore selection list. +- Fix non-portable varargs code in var.c +- Make doc fixes/changes suggested by Dan Languille +23Oct03 +- Document new features. +- Implement mod of Verify Job at the run prompt. +- Correct SQL table definitions so that MySQL and SQLite + have all the values in the same position. +- Correct a typo in configure.in when configuring GNOME. +- In doing a "status dir" make it loop over all the run + commands in the Schedule rather than doing on the first one. +- Close all unused file descriptors in bpipe.c otherwise if + a daemon is started, it will keep our TCP/IP port open. +22Oct03 +- Print block read error (checksum, I/O, BB01, ...) once then + the number found at the end of the reading. +- Implement RunAfterFailedJob +- Change db_find_job_start_time() to require a Full save before + running an Incremental or Differential job. +- Remove has_volume_expired from code that updates vol info +21Oct03 +- Implement "delete job" +20Oct03 +- More documentation, add Marc Brueckner's tips to manual. +- Tweak gnome2-console scroll window. +- Turn off some debug info. +18Oct03 +- Modify Verify to accept VerifyJob = xx, where the last backup job + of job xxx will be verified. +- Add changing the Pool name for a Volume to "update volume" +- Write most of the code for Verify Disk to Catalog. +- Recreate the src/gnome2-console directory. +- Change all the text handling code to the Gnome 2.0 way. +- Correct the way verify filenames are returned to the Director so + that directories are in canonical form (i.e. trailing /). +- Handle casting bug in glade-2 by sed'ing support.c in gnome2-console. + +2003-10-15 Version 1.32b 14Oct03 Release +14Oct03 +- Modify configure so that if threaded MySQL client library + is not present, Bacula will link with the non-threaded + version. +- Updates to the Web pages and to the manual. +- Remove trademark symbol from title. Phil pointed out that it + does not display correctly in a title. +11Oct03 +- Implement restore by file before date. +- Change restore arguments a bit so that you can feed it + multiple jobid= specifications or multiple file= specifications. +- Pass restore with run option on to run_cmd. +- Make run-cmd not prompt if it has a "run" on the command line. +10Oct03 +- When pruning, select only old orphanned jobs to delete so that + the current job is not pruned too. +09Oct03 +- Corrected return status for bsf_dev and bsr_dev in block.c and btape.c +- dev.c used incorrect ruturn status for bsf_dev in the BSF at EOM + code. This caused all appends on FreeBSD to fail. +- Turn on fast block rejection code. +08Oct03 +- Optimize file index searches by adding a count to the bootstrap. +- Write single files/blocks to bootstrap without the second part. +- Add current Volume status to the cannot use this Volume message. +- Zero the rx->bsr in ua_restore when freeing so it doesn't get + freed twice. +- Lots of testing on the restore +- I noticed that SD and FD bootstrap files were not always + deleted, so delete them as soon as possible. +- Restore by file (or by selecting files) created some + horrible looking bsr files that defeated the forward + spacing code, so fix write_findex to work right. +- Add zlib_strerror() routine in filed/restore in case + of zlib errors. +- In filed/restore.c make sure all error returns cleanup + and close the open file descriptor. +- Make sure to set *non* over filename in attr packet + after file is found, so error messages that print the + filename don't print an old, incorrect name. +- Allow bclose() to be called after closing the file. +- Fix a number of unclear help messages, ... reported by + Phil in btape. +- Retweak stored/read_record.c so that it does forward + spacing at the beginning of every tape, not just the + first one. +- Print repositioning message if verbose is set. + +2003-10-01 Version 1.32a 03Oct03 Release +04Oct03 +- Combine the code in ua_output and ua_status that searches + the run records. +03Oct03 +- Fixed "list nextvol" to search for the correct pool in the + Schedule Run records. +- Correct an error in is_block_zero. It found a false + match if the first 1016 bytes of a 32K buffer and + the last 248 bytes are zero. Broke the sparse option. +01Oct03 +- More documentation. +- Test if multiple mail addresses works. Yes. +- Add debug Jmsg() to trigger if the file I/O packet is + not closed in the FD, i.e file descriptor leaks. +- When error occurs reading label in mount.c, start from + the very top so that the retry count is in effect. +- Zap the mode in soft links in testls.c for regression + testing. + +2003-10-01 Version 1.32 30Sep03 Release +28Sep03 +- Enhance manual faq, regression ... +- Make FreeBSD read sizes always be a multiple of 512. Needed + to read raw disks. +- Make FreeBSD accept block AND character devices for raw + disk reads. On FreeBSD there are no block devices. +27Sep03 +- Fix printing of EndTime on job report after rescheduling. +- Fix jobq.c error returns to clean up before returning. +- Make Cleaning tape aware of "unlabeled" volumes. +- If a job is rescheduled, ensure that old job is + removed from SD's jcr queue -- i.e. it is still waiting + for FD connection. +- Test rescheduling code. +- Change ./configure to detect Cygwin enviornments. + +2003-09-26 Version 1.32 26Sep03 Beta +- Add regression and GUI-interface chapters to the manual. +- Fix "label" of a volume that is already in the catalog, + but not yet labeled. +- Correct the test for spooling attributes which was backward. + This caused the creation of a spool file in the working + directory for every job run. +- Print to the job output stream when block checksum errors + occur, but continue processing. If more than one occurs, + print number at end of job. +- Remove a few unneeded tests from configure.in +- Modify configure to use -pthread on FreeBSD 4.8, + but nothing on FreeBSD 5.1 +- Clarify that bmicrosleep() takes sec and microsecs +- Apply Franc Carter's code to specify a DB host in + bscan. +- Fix sanity login length test in stored/dircmd.c +- remove old code fro stored/job.c +- Lots of work on regress so that it works on FreeBSD + and Solaris. +- Make the default gnome-console wider (console.c) +- Add \r to the items that terminate a token. + +2003-09-20 Version 1.32 20Sep03 Beta +- Replace a number strcpy() calls with bstrncpy(). +- Added code to ensure that the names for each resource + type are unique. Two resources of different types can + have the same name. +- More documentation +- Added new full length modifiers for time intervals. + Compatible with previous method EXCEPT a modifier is now + manditory. +- Completely restructured recycling. It should work now, but + in any case, the logic is much cleaner. A lot of new + code in next_vol.c +- Added a few pthread_xx_destroy() for items inited. +- Nic Bellamy pointed out that it wasn't necessary to do + destroy() of static initialized pthread variables -- fixed + watchdog. +- update VolStatus asked for the media and volume twice. +- Changed a few more strcpy() to bstrncpy(). +- Made VolBytes=1 as indicator that the Volume is labeled. +- Modified creation of Media record to include VolBytes, + same for sql_update - also set LabelDate if VolBytes = 1. +- Copy any statically linked programs to install directory. +- Change relabel flag to label in Update_media protocol Dir<->SD. +- Change a few strcpy to bstrncpy ... +- Update Media record after an automatic tape label. +- Added more debug code to bnet_server and bnet.c to attempt to + track down Alex's SD segfault (BSOCK==0) +- Add additional debug cod for authentication errors in cram-md5. +- Implement "list nextvol job=xx" and add Volume to Dir status. +- Retry waitpid if interrupted -- needed for FreeBSD! +- Move lex.c debug level to 900 +- Add new aliases SDAddress, ... +- Final changes for variable expansion +- Possible fix to Alex's SD crashes +- Correct incrementing counters not in catalog -- reported by + Chris Allen. +- Correct memory leak in core var.c code -- reported by + Chris Allen. +- Make documentation of variable substitution a bit clearer. +- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work + on both MySQL and SQLite. +- Finally fixed the .messages that was sent during prompts + in the console with no readline. +- Implement new Include/Exclude semantics. +- Fix a good number of segfaults reported by Chris Allen in + the variable expansion code. +- Print warning message if a job is blocked by user unmount. +- Fix additional variable expansion problem reported by Chris Allen. +- Fix pathconf() error status bug that caused a segfault on + a FreeBSD system -- reported by Gernot Hueber. +- Make sure the console sends ".messages" only when at the + command line prompt. +- Apply a patch from Nic Bellamy that corrects a file descriptor + leak in the Storage deamon when a job is canceled. (Thanks) +- Implement < and | in File daemon. +- Implement ClientRunBeforeJob and ClientRunAfterJob. +- Corrected BSRatEOF to be BSFatEOF in btape -- + reported by Lars Koller. +- Documented BSFatEof +- Eliminated save_level in FD replaced by JobLevel. +- Increased MAX_RES_ITEMS from 35 to 50 to handle + new ClientRunBeforeJob ... +- Add line number in error message for restore from file. +- Correct editing of jobids (misplaced comma). +- Implement restore files. +- Quickie patch to allow Purged Volumes to be mounted. + Must review algorithm. +- Eliminate a duplicated query from query.sql +- Restructure ua_restore.c so that I can add restore files. +- Correct positioning problem at beginning of a second volume + introduced with the new forward spacing code. +- Eliminated a sprintf() in the tree routines. +- Doc updates +- Added HOST_OS, DISTNAME, and DISTVER to the status output. +- Eliminated a few stray Dmsgn(000, messages making them either + debug_level 100, or Pmsg(). +- Made the default "Maximum File Size" 1Gbyte in SD. +- Cache path in tree.c to reduce calls to make_tree_path +- Documentation updates +- Implement forward space file and block when reading a bsr. +- Fixed a bug in db_find_next_volume() where the VolStatus was + not being returned. +- Rework some of the query.sql records that were incomplete. +- Fixed an ambigous SQL statement in restore. +- Fix proper sorting order in restore display last 20 jobs. +- Remove duplicate JobId's in feeding the directory tree. +- Fix an orphaned ua buffer due to a return that should have been + break so that cleanup code executed. +- Changed some strcats and sprintfs int bstrncat() ... to prevent + possible buffer overflows. +- Fix max file size code on tape so that after writing EOF, + an appropriate jobmedia record is created. +- Fix error messages in dev.c, which were copied into lots of + different subroutines without updating the text. +- Add reposition_dev(), and make more of the return statuses of + dev routine standard. +- Eliminate old semaphore and workq code. Keep only new jobq code. +- Try to get a better default size for the gnome-console +- Add code to avoid race conditions in starting/stoping the + heartbeat thread. +- Correct potential race condition in heartbeat_stop(). +- Correct segmentation fault in mysql.c if no password given. +- make pm_strcat and pm_strcpy return the string length +- Use Phil's code to get the unadorned job name. +- Move the MTIOCERRSTAT from just after a write() failure to + after writing the EOF marks on FreeBSD systems. +- Enhance packet too big error in bnet.c and add some + ASSERTs in the send code. +- Set heartbeat interval to zero by default. +- Add Recycle to list of Update Volume parameters. +- Use bget_dirmsg() wherever possible in Director. +- Split next_volume code from catreq.c to next_vol.c +- Consolidate editing job codes into a single routine. +- Add Job resource name +- Remove check for Win32 attributes in bls. It doesn't + need to read them, only print ls -l. +- Add SDConnectTimeout in FD. +- Add Scott's perlgui directory +- Upgrade from RH7.3 to RH9. New autoconf. +- Eliminate gnome2-console directory. +- Correct English in status command. +- Eliminate old shell expansion code and use BPIPE to call shell + with echo command. +- Documentation as usual. +- Add a new bacula.spec for Mandrake +- Add ownership to alist items. Default the list owns the items. +- Make record_cb return a status (preparation for internal use). +- Remove all clearing of remainder in read_record.c -- not necessary +- Write a tapetest program for FreeBSD end of tape testing. +- Modify read.c in Bacula to use read_record.c +- Implement multiple records in read_record.c. One for each session that + is open. Free the record with the EOS_LABEL is found (or at the + end of the scan). + +2003-08-02 Version 1.31a 02Aug03 Released +- Yifang Dai reported a case where he stress tested Bacula and + backed up to four volumes, but only two were selected for the + restore. This is because I forgot that the selection could + span a volume entirely. +- Added a missing CLIENT_FOUND_ROWS to the second attempt to open + the MySQL database -- this prevents UPDATE errors if nothing + actually changed. +- Applied corrections to the manual supplied by Bob Collins. Many thanks! + +2003-07-30 Version 1.31 Beta 30Jul03 +- Integrated Robert Mathews improved description of Priorities into + the manual. +- Chased down the "The data is not valid" bug on WinMe/98/95. +- Found an orphaned buffer in the set_attributs part of WinMe/98/95. +- Add sleep(1) to console when it gets a SIGTSTP signal + to prevent it from using 100% of the CPU. +- Improve description of Priorities. +- Add a bit more documentation to jobq.c +- Complete hash table routine htable.c htable.h +- Change M_INFO to M_ERROR in attribs.c for Windows errors. + +2003-07-23 Version 1.31 Beta 22Jul03 +- Apply a patch from Nic Bellamy that clarifies the error messages + during recycling volumes. +- Documentation. +- Clear VolCatInfo in askdir.c so that readbytes is zeroed. +- Add SD statistics to backup report. +- Removed old workq code. +- Fixed rescheduling after error. +- Fixed delayed starts which were not working. +- Added priority to values that can change when starting + a job. +- Complete implementation of new job scheduler. jobq.h jobq.c + This code is turned off unless specifically enabled in src/version.h +- Integrate code from Nic Bellamy to check for recycled volume in + mount.c in SD. +- Fix a couple of bugs in dlist.c +- Begin implementation of new job scheduler. +- Take serial.h provided by David Craigon, which corrects differences in + prototypes between serial.h and serial.c. +- Make db_get_media_ids() return Media Ids only for the current pool. +- Add new jobq.h and jobq.c drived from workq. +- Add JobPriority to jcr, and Priority to Job resource as well as + to the run line in a Schedule. +- Remove unused pool record from autoprune.c. +- Implement Nic Bellamy's RecycleCurrentVolume. +- Implement RecycleOldestVolume. +- Begin adding new JOB_QUEUE code to the Director. +- Create a single routine recycle_volume(). +- Retry accept(), bind() and socket() if EINTR occurs. +- Implement insert_before(), insert_after(), and empty() for dlist class. + Also require offset to be given by giving item and link address. +- Make error some messages in smtp.c a bit more explicit. + +2003-07-12 Version 1.31 Beta 14Jul03 +- Marc Brueckner reported a crash during restore (a missing tree->) +- Moved host.h.in file from filed to src. +- Update btraceback to include host os, distname, distver in output. +- Split list (in lib) into alist and dlist both with .h and .c. +- Update home page to include Project status page. + +2003-07-12 Version 1.31 Beta 10Jul03 +- Manual updates. +- Clean up some unused variables detected by the IRIX compiler. +- Test two directories on Win32 -- caused a crash. I forgot + to NULL the uid cache pointer after releasing it. +- Use bstrncpy() instead of strcpy() in find_files. +- Clear a few linked lists in the temp directory packed in find_one.c +- Eliminate an unnecessary variable in attr.c +- Clear the cache pointer after release in idcache.c +- Implement a new C++ doubly linked list class. + +2003-07-08 Version 1.31 Beta 08Jul03 +- Update document for Win32 stuff. +- Ensure VolStatus value for update is permitted. +- Fix cached_path so that it is local to the jcr, otherwise, there + are problems from job to job. +- Fixed idcache.c which was not thread safe and didn't release memory, + and didn't always edit the userid correctly. +- Correct missing pool memory allocation in update voluseduration. +- Release mutex in pool_mem.c before triggering ASSERT. +- Lock database while recycling. +- Fix a bug in editing since where I forgot to update to the new size. +- Implement all the command line update arguments. +- Modify label to use volume=xxx for the new volume and oldvolume=yyy + if doing a relable. +- Added yes to run command line arguments. +- Clear errno in editing a string to utime. +- In restore print only volumes that will actually be used. +- Fix bextract -- add appropriate breaks in new case code. +- Add a new test -- bsr-opt-test for testing bsr optimization. As usual, + it pointed out a bug where the directory tree handling code destroyed + the restore arg list. +- Many updates to the manual. +- Pass prefix links flag to FD. +- Sort list of commands for Console +- Set default FD and SD concurrent jobs to 10. +- Rework the find next volume code in catreq.c to correct some minor + but subtle logic errors and to eliminate a goto. +- Did spell check on manual. +- Removed bindtextdomain() as it conflicted with RH8.0 headers +- Fixed parse_args to pass address of POOLMEM struct. +- Constrain FileIndexes written to BSR to be within range of Volume. +- Suppress writing volumes to BSR if they are not actually referenced. +- Make FOPTS use alist for match and base entries. +- Pass prefix_links to SD. +- Add command line interface to most items in "update volume=xxx" +- Add command line interface to restore "jobid", "current", "before", "all". +- Add command line "yes" to run command to supress prompt. +- In new alist code, free only if allocated. +- Overload [] with get() code for alist. +- Fixed the code that wrote FirstIndex and LastIndex to the database. It + was not correct at the end of a volume (basically included indexes in + the second volume). +- Fixed bscan to work with the new code and to properly build JobMedia + records. +- Added code to the read end of block.c to properly track Volume bytes, + blocks, and files. I thought this was not necessary, but it is critical + for bscan to work correctly. +- Modified read_record to properly track First/LastIndex -- needed by + bscan. +- Eliminated some old Volume write code. +- Changed RecycleOldestVolume to PurgeOldestVolume +- Added what I hope are the "final" touches for Win32 stuff. There + are still a lot of annoying little problems. +- Added the "portable=yes/no" option to Include. If set, it disables + use of BackupRead/Write for Win32, so in principle, the data should + be portable. +- Pulled in more recent config.sub and config.guess from /usr/share/libtool +- Replaced the system fgets() by a Bacula version that ignores + interrupts (i.e. signals). This truncated output from child processes. +- Make file_index int32_t everywhere. +- Moved LinkFI into ATTR structure. Also integrated data_stream there too. +- Moved code that sets the stream for writing into create_file. +- Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting + the status of child processes. This allowed removing the FreeBSD + kludge to bpipe.c -- the status is now obtained correctly. +- Hand scan the stream header that arrives in append.c to avoid machine + dependencies of sscanf(). +- Implemented code to put Data stream in Attributes record. +- Check if data stream is supported, if not, ignore. +- Fix crash when multiple Includes are given (missing parens). +- Clear WroteVol in askdir.c when JobMedia record is created. +- Implement simple array list class for use in Bacula. New files + are lib/list.c lib/list.h. Probably will not use until version 1.32. + +2003-06-24 Version 1.31 Beta 22Jun03 +- Change Purging Oldest Volume message to Recycling Oldest Volume. +- Limit results from find_oldest_volume to one. +- Fix possible buffer overrun in the restore tree handling routines. +- Fixed a crash in VerifyToVolume because I moved the close_db() + down into the free_ua_context() and should not have done so. +- At a "var" command in the Console that does variable expansion and + prints it. +- Implement first cut of estimate command. +- Change find_next_volume() for oldest to use LastWritten instead of + FirstWritten -- also add Append to volumes slected. +- Do normal recycling before checking for RecycleOldestVolume. +- Implemented block rejection on read. This should make restores run + much faster. Next release will have block positioning -- even faster. +- Very preliminary support for Gnome-2.0. Text does not yet work. +- Correct buffer corruption in find_one.c with long directory names (Win32). +- Make setting owner on directories M_ERROR rather than M_WARNING. +- Fix printing of JobId in run listing for restore job. +- Reduce heartbeat read check interval to every 10 seconds on Cygwin because + there is no working pthread_kill(). +- I finally designed a test for multiple simultaneous jobs, + and sure enough it broke when the jobs are split over multiple + volumes. Now fixed and working! +- Eliminated a few "duplicate" error messages by testing for canceled. +- Add ASSERT for device use count going negative. +- Fix BlockNumber checking in stored/read.c (got first one wrong). +- If socket is timed out, do a shutdown(fd,2) instead of close(). +- Fixed return status from SD to FD by setting JobStatus in append_end() +- Add arrays to Environment variables. Elements separated by |. +- Implement Reschedule On Error, Reschedule Interval, Reschedule Times. +- Add a new pool PM_NAME -- gets a name length buffer. +- Implement fast cancel of FD blocked on writing to SD by using + pthread_cancel(). Turned off on Cygwin due to bug. +- Add code to handle EAGAIN in writing (probably not necessary). Use + select(). +- Eliminate size_t from pool control buffers. +- Complete Counter resource. +- Complete LabelFormat (except for WrapCounter) plus counter + inrementation. +- This needs a database change to eliminate PoolId from counters. +- Made a more compact format for the document index. +- Add Phil's checkhost to examples directory (thanks Phil). +- Implement generalized LabelFormat (documentation to come). +- Implement Counter resource. +- Cleanup examples/kernsconfig +- Implement restore to a specific date. +- Fixed a but in automatic labeling (and use durations expiring) analysed + and reported by Rob Proffitt (thanks!). +- Cleaned up a few Cygwin compile problems. +- Made a 10Jun03 release (it is in production here) +- Finally took the big plunge and fixed restoration of links and other + files that have been changed between the backup and restore. Basically + if the file exists, it is deleted, then re-created. +- Purge only Volumes marked Append, Full, Used, or Error. +- Allow pruning of volumes marked Append, in addition to Full and Used. + + +2003-06-10 Version 1.31 Beta 10Jun03 +- Eliminated all plain email addresses and replaced them with " at " in + place of @ to reduce havesting by spammers. Doc + Web Site. +- Started working on making POOLMEM a struct rather than a char. Lots of + work to do. +- Fixed bscan to handle -V option. +- Fixed bscan to handle two File volumes. +- Corrected a misplaced comma it get_fileset() in cats pointed out by bscan. +- Added two Volume bscan test to regression scripts -- write two volumes, + purge and delete everything, bscan the tapes, and do a restore. It works! +- Reorganized the backup/restore code to move the attribute information into + an ATTR packet, which is passed in place of tons of arguments. Moved some + code into lib/attr.c and lib/attr.h. Then eliminated all the duplicate + attribute code. +- Moved FT_ types into baconfig.h. +- Defined FT_ types to use only 16 bits. The upper half of the word is + reserved for adding optional fields in the attributes packet. +- Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c +- Put all attribute reading code on switch() with cases instead of a big + if (restore.c, bls.c, bextract.c, bscan.c, ...) +- set_attributes() now takes ATTR packet, and thus has much fewer args. +- moved print_ls_output() into lib/attr.c +- implemented is_stream_supported(). +- create_file() now takes ATTR packet so has many fewer args. +- add mtime_only code. +- Rewrote bnet.c read and write routines to quit if bsock->terminated is + set. This will allow setting non-blocking writes and then receiving + a termination message and terminating the Job immediately rather than + waiting 2 hours for the line to timeout. +- Put catalog db name in some error messages. +- Code for restore is now much cleaner, with much of it in lib/attr.c, + and it is now common for all readers. +- Add first cut of proper support for Win32 Backup code. +- Fix bug in restore Win95/98/Me. +- Pass mtime_only flag to FD. Needs config record. + +2003-06-04 Version 1.31 Beta 04Jun03 +- Fix block.c to check errno only in case of return status -1 as + suggested by Justin Gibbs (FreeBSD). +- Implemented qfill command in btape for quick testing write/read of a tape. +- Discovered that FreeBSD pthreads re-use the same thread id, which causes + the SD to fail when a user leaves a device unmounted (old pid is reused + and lock_device() thinks the same thread is calling again leading to + inconsistent state). Set id to zero after blocking the device during + unmount. +- A lot of clean up, moving subroutines around for TermCode. +- Free ua->prompt when Job terminates. +- Add AutoPrune and Recycle to values copied from Pool resource + into Pool record on create/updated. +- Implemented bsr for Verify VolumeToCatalog. +- Improved the Verify Job report using SD and FD term codes. +- Split tree handling routines from ua_restore.c to ua_tree.c +- Split bsr routines from ua_restore.c to bsr.c and bsr.h +- Fixed clash between FD and SD returned job values. Report now contains + values from FD. Maybe I should change? or give both. +- Attempt to fix negative use_count for dev packet in SD by adding + a couple of open_dev(). This may be cause of Dan's crash. +- Clear no_wait_id when device is unblocked. This may be cause of Dan's crash. +- Eliminate old "new lock code". +- Add configure of mtx-changer for mtx path. +- Always rewind tape before releasing it (for FreeBSD). +- StartBlock was one too large for second volume. +- Fixed restore to display status from both SD and FD. +- Unified return status message for backup and restore. +- Corrected segmentation fault reported by Dan when doing "label barcodes" + on a File. +- Corrected a segmentation fault when attempting to send a JobMedia record + to the Console -- reported by Dan. +- Added MySQL documentation for using the threaded libraries. +- Added new columns and tables to Catalog database. +- Wrote alter scripts and tested them (thanks to Dan for the help) on + MySQL and SQLite. +- Started using enums where ever possible when passing flags to + subroutines. This helps make the source much more readable. +- Corrected a bug where a vertical database listing was being used in + the query command. +- Added new argument to parse_args() to prevent command arg overflow. +- Renamed ua_db_query.c ua_query.c. +- Split scan.c out of lib/util.c +- Perhaps I have *finally* fixed the command line history in gnome-console. +- Added support for smartalloc for any global new or delete command + by overloading the global operators. +- Made the default time with no qualifier day rather than seconds. +- Fixed a bug in the store_size() routine that improperly converted from + double to uint32_t. +- Started using "bool" where possible. +- Zap SD session key once it is used. +- Added *lots* more checking for strcpy -- bstrncpy(), ... +- Added CreateTime field to FileSet record and print it to distinguish + FileSets. +- Print an information message when a new FileSet is created. +- Include the FileSet date/time in the Job report. +- Indicate if a Job is upgraded in the Job report and from what previous level. +- Incremented the database version. +- Ensure that any DB error message is printed if the start_time of a previous + save is not found. +- Free orphaned buffer in ua_restore.c in case of database error. +- Implement enum for response DISPLAY_ERROR and NO_DISPLAY +- Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE). +- Make sure FileSets printed in restore are in order. +- Add a number of bstrncat, and other protected string operations. +- Clean up old structs in dird_conf.h +- Remove all Slot invalidation code. +- Add Automatic choice message to all do_prompt() calls. +- Eliminate JobId from restore if not used. +- Clean up a few error messages. +- Make fill/unfill commands work correctly in btape. +- Enhance btape fill and unfill commands. +- Implement real Pmsg() code so that negative levels work in Dmsg() +- Implement block number check -- had to turn it off because it doesn't + work. Need to verify that it is the correct block and that block + numbers are properly written. +- Moved readline from depkgs1 to depkgs. +- Reworked the configure code to handle readline correctly. This was broken + mostly due to the fact that the readline routines are nested down one + directory. Also, I missed one header file that was needed (possibly added + in a later version). +- Put correct include on the dependencies make for Console readline. +- Remove JobMediaId from VOL_PARAMS (no longer needed). +- Sort VOL_PARAMS by JobMediaId using SQL in cats. +- Add jcr as argument to block.c read_block... routines so that error + messages are immediately displayed. +- Make bsr_dev() edit an error message if it is turned off and return 0. +- Add checking for the BlockNumber in the read routines -- lots of + false matches are found -- much check writing end. +- Now sort bsr volumes by JobMediaId -- produces better results. +- It turns out that under certain circumstances, when doing a restore, the + Volumes will not be written to the BSR in the correct order. I don't + know exactly why, but many thanks to Dan Langille for reporting this. + The solution is to sort the Vol_Params within each bsr (done), and to + sort the bsr chain (not yet implemented). Note, the bsr chain should + always be in order unless the user explicitly specifies the JobIds in + a different order. +- Began implementing C++ structs rather than typedef structs as in C. +- Added volatile to a lot of variables that are used in two threads at + the same time. This should prevent improper optimization. +- Fixed a missing space in the "run job=xxx where=" the where was + glued to the end of the previous stuff (bootstrap filename). +- I *finally* found the cause of the mysterious failure of shell expansion. + It was due to the read() getting interrupted! That's what opening up + SIGCHLD will do! +- Remove unused default tape drive names. +- Create a new status.c file in stored and split the status code out of dircmd.c + +2003-05-22 Version 1.31 Beta 22May03 +- I discovered that C++ permits "prototyping" structures e.g. struct A; is + a valid statement. This permitted me to eliminate all the void *jcr, in + favor of JCR *jcr, which pointed out a number of bugs in block.c. +- Change lib/bmisc.c to bsys.c (system routines). +- Add set_working_directory() to lib/util.c +- Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...) + already sets it. +- Do not increment jcr->Errors for Fatal errors -- they represent non-fatal + errors. +- Fix a few more places in FD where Errors was not incremented. +- Print unexpected (or incorrect) termination message returned from FD. +- Use switch() instead of giant if statement in verify_vol.c +- Protect overrun from do_shell_expansion() by passing max length. + +2003-05-20 Version 1.31 Beta 20May03 +- Add mandrake to platforms +- Suppress error messages if no bytes written to tape. +- Suck up bootstrap file even on error so that Dir sees our error message. +- Pretty much finish off the Win32 backup code. +- Add DESTDIR code to autostart for creating non-root rpms +- Echo input read from a script in Console. +- Clarify error message for VerifyToCatalog +- Add error counts in restore for M_NOTSAVED. +- Adapt bfile.c to handle both Win95 files as well as WinXP files. +- Add MTIOCERRSTAT for FreeBSD (clear error status). +- Correct double jobmedia record when cancel at EOM reported by Phil. +- Correct possible write at beginning of tape during cancel at EOM + as reported by Phil. +- Document in detail how Incremental and Differential jobs work. +- Add non-fatal error count on backup and restore Job reports. +- Remove a couple uses of lld -- now prefer to edit and use %s. +- Fix directory could not be accessed on Win32. +- Improve message indicating that last Full backup not found. +- Fix free() too early in directory traversal code. +- Prune Jobs with no JobFiles or that have JobStatus!='T' +- Add a few more command line scans for prune/purge. +- Restrict valid characters in a Volume name, and document it. +- Make new Win32 save/restore work. Still a bit more to do. +- Use reentrant version of mysqlclient library. +- Use more machine independent way of finding gcc version. +- Fix race condition in sql_list where messages edited before locking. +- Lots of testing saving/restoring 6GB files. +- Add where to restore where=/tmp +- Complete implementation of Win32 streams in FD. Must test. Also, + must implement new streams in SD. +- Make termination of daemons more "error" tolerant. +- Make default "duration" days rather than seconds if there is no modifier. +- Install bcopy. +- Add detection of available Win API's so that a single binary will + work on all Windows systems. Reference those APIs through a pointer. +- Remove use_win_backup_api and enable it in bfile.c if system supports it. +- Modify dev.c so that it works if MTEOM is not defined (BSDI). +- Change MT_xxx to BMT_xxx to prevent conflicts with BSDI. +- Detect strtoll() in configure. +- Implement replacement for strtoll() for BSDI. +- Add platform files for BSDI. +- Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c +- Use Jmsg() in write_block_to_dev() so that no messages are lost. +- Rework autochanger code in restore to handle case of cassette not in magazine. +- Implement Windows BackupRead/Write(). I now have permissions right!!!! +- Additions to the manual (Purging, Autopruning). +- Add doc to code in autoprune. +- Begin adding Level = Base. +- Make Jmsg recognize console and direct messages directly back to it. +- Hopefully fix mess in mount.c when a tape expires. +- Fix restore bug recently introduced due to Unix backwards status convention. +- New bacula.spec from Scott +- Add globals for database name and version and print them in traceback. +- Eliminate SubSysDirectory in each daemon conf file. +- Implement get_yesno() and get_pint() in UA. +- Make Jmsg aware of console. Messages now sent directly to Console. +- Created a single bacula.spec.in for by the MySQL and SQLite builds. +- Added proper configuration to console.in and gconsole.in +- Start adding textdomain() code for translating. +- A number of minor code cleanups. +- Rework shell expansion just a bit. +- Add rewind() when releasing a tape before acquiring the next one. +- Implement addition of Description in Service entry for Win32. +- Update manual to eliminate unclear autochanger points as mentioned + by Dan Langille. +- Implement DESTDIR everywhere. +- Rework spec files for 1.31 and combine the main spec and the client + only spec making a client package. At the same time, rename the packages + so it is a bit clearer to the user. Also fix the build to work + as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT). +- Correct Auto Changers and all other forms to Autochangers in the + manual. +- John reported needing to do two "mount" requests, and indeed that + was the case. It turns out that pthread_cond_timedwait() does not + always return zero when awaken by a pthread_cond_signal(). +- Include RunBeforeJob and RunAfterJob output in job output report. +- Implement a "real" Admin job that prints a mini-job report. +- Clean up a few error messages in findlib and filed. +- Recent changes to gnome-console caused initial output to be + lost -- now fixed. +- The Win32 version crashed after each job. After hours, it turns out + that when running with LocalSystem privilege (and not as a user), when + Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault. +- Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to + stored.c. So now bget_msg() can be used by both the SD and FD. +- Changed Director's bget_msg() to be called bget_dirmsg() to avoid + any possible confusion. +- Implemented bget_msg() in general everywhere in the FD except for + job.c where the Dir and FD are communicating. +- Implemented a Director only heartbeat in the FD for the cases where + there is either no connection to the SD or the FD is already reading + from the SD. start_dir_heartbeat() ... +- Add heartbeat to restore and verify volume. +- Add "Heartbeat Interval" to Storage resource, which sets interval the + SD sends heartbeats to the FD and DIR, 0 disables heartbeats. +- Add "Heartbeat Interval" to FileDaemon resource, which sets the interval + the FD sends heartbeats to the DIR, 0 disables heartbeats. +- Added heartbeat from FD to Dir every HB_TIME rather than forwarding + SD heartbeats. +- First cut label dialog. +- Turn on new semaphore code for simultaneous Jobs. +- Fix cancel trying to release semaphore's not acquired. +- Implement get_pint() and get_yesno() for UA. +- Implement find_arg_with_value() for UA. +- All command line "slot" to be specified for label command. +- Rework heartbeat code in FD to correctly terminate. +- Fix btraceback to use smtp and to eliminate double // +- Fix "storage" command to include ssl for verify and restores. +- Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins + to keep stateful firewalls from timing out the connections. +- Fix src/stored/Makefile.in typo causing problems in statically linking + btape. Thanks to Lutz for reporting this. +- Create an is_client_alive script for checking if a client is alive. + Using this script prevents generating error messages. +- Added corrections and updates to manual provided by Phil -- thanks. +- Added RequireSSL to each program/daemon configuration. +- Added EnableSSL to each correspondent for each program. +- Added the Console resource to the Director (need to + implement individual Console authorization). + +2003-04-28 Version 1.30 released +- Fix command history for gnome-console (must malloc). +- Add two cancel points in acquire_resources(). The job will not + be immediately terminated in all cases. +- The new AutoMount code broke File archives -- fixed. +- Correct watchdog mutex race introduced yesterday. +- Add JobLevel to Admin run started by UA. +- Add -v to daemon startup scripts +- Implement bmicrosleep(sec, msec); +- Implement When for "run" command. +- Remove unsigned from socklen_t definition in hopes it will work better + with older systems. +- Remove code that attempts to set PID dir and SUBSYS dir if they + do not exist because it set them to sbindir! +- Modify mount to initially attempt to read the volume if Bacula + wants a tape, none is mounted, and "Automatic Mount = yes" is set. +- Prohibit setting --sbindir and --with-subsys-dir the same. +- Fix missing argument that cause Kaboom in update slots. +- Fix orphaned bsock when UA gets error contacting FD or SD +- Nearly full implementation of Win Backup API, but it does not + work due to lack of permission! Arggg! +- Implemented restoring directory permissions as they should be. +- Implemented reasonable regression script. It found a number of + restore errors. +- Implemented the following @ commands in the console that work directly + in the console rather than in the Director. + input - read input from a file + output - write output to file + tee - tee output to file and terminal + time - print current time + version - print current version + exit - quit + quit - quit +- Implemented new bfile io routines that will permit implementation of + Windows native APIs for reading/writing files. +- By default always update hard links with the prefix, but do + not update soft links. It seems inconsistent, but it is what + cp does. +- Implement wait command in Console that waits until no jobs are running. +- Fixed the < code in Include/Excludes, which forgot to skip over the <. +- Do NOT attempt to chmod() a soft link as it will change the file behind + the link! +- OOPS! Lutz ran into a problem. In attempting to prevent string overflows, + I used bstrncpy() on a variable that was malloc'ed thus truncating + Volume names! Arrrggggg! +- Lots of documentation of new features. +- Rework Volume name scanning in console, made much more logical + and corrected a bug (confusion in calling sequence). +- Cleaned up a few error messages in cats adding more info. +- Add the IP address to error messages due to bad connects to servers. +- Implement default File output in config files so user can start + saving right away without a tape drive. +- Protect inet_ntoa() with mutex in case it is not thread safe. +- Eliminate termcap from use in gnome console. +- Remove unused SD maximum volume files and maximum volume jobs. They + are implemented in the Director. +- Make the default for Incremental and Differential saves to compare + against both st_mtime and st_ctime rather than just st_mtime. + This includes files moved or copied. + Thanks to Matthias Wamser for bringing this fix to our attention. +- On Win32 clients, make a pass through the include/exclude patterns + and change any back slashes to foward slashes. Prevents creating + unusable directory names containing both conventions. +- Move ls -l output on restored files to M_RESTORED class. +- Make gnome-console compile correctly on RH8.0 +- label barcodes now works. +- Implemented "update slots". +- Tweak btape "test" to always print suggestion for re-read last block. +- Implemented "Cleaning Prefix" +- Update alter_mysql_tables.in +- More work on barcodes. +- Zap VolHdr in SD when attempting to label a tape that is not + there. Prevents false tape names the next label command. +- First cut of bar code reading is implemented. It doesn't do + anything but return the list to the Director. +- Implemented relabel command that relabels "Purged" Volumes. +- Check exit code in RunBeforeJob and err the job if it is non-zero. +- Remove old testsuite -- too complicated +- Print length when Authorization fails because of bad length. +- Fix problem of NumVols in Pool getting reset on startup. +- Implement full listing of DB records by listing them vertically + instead of horizontally. +- Make changes to mysql scripts as suggested by Lutz Kittler +- Fixed code to write Uname to Client record. +- Fixed a problem (in btape) where Pmsg() was not printing. +- Moved re-read last block test to last in "test" command of btape. +- Lots of new documentation. +- Fixed newvol.c to handle retrying 10 times if the volume name already exists. +- Removed int_least16_t from sha1.h because it does not exist on some systems. +- Release job in SD if canceled and waiting on a mount (better cancellation). +- Prompt for Client in restore if not specified. +- Print "Selection is empty!" if no selection list found. +- Add new spec files and bacula.desktop from Scott. +- Update client every time a job is run. +- Add verbose option to daemons for printing more user error info. +- Test if console works with readline 4.3 (yes, it is OK). +- Release new depkgs +- Release new winbacula. +- Add Uname info to Client DB record. +- Improve error messages and make them more consistent when a non-existent + Device is requested. +- Separated the -mwindows option so that only Windows programs + are built with it (bacula-fd, ...) the tty tools such as console + dbcheck, smtp, testfind, ... are now able to be run in a standard + Windows DOS box. +- Add | and < options to Exclude the same as in Include. +- Add typed in input to the text window in the gnome-console. +- Change function that gets the entry text (previously had orphaned buffer). +- Fix multiple Director problem in gnome-console (thanks to Lutz Kittler). +- Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive. + There are a number of significant differences: 1. reading less than + the number of bytes in a record returns an I/O error. 2. ioctl(MTEOM) + looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM)) + leave you positioned after the second EOF, so you must backspace file + to be able to append. +- Added BSF at EOM = yes/no to Device resource to allow proper positioning + at the end of a FreeBSD tape. +- Made btape "test" do much better testing of error conditions (i.e. + it now ensures that the append went well). It will automatically + detect problems and apply fixes and then retry the test, if it + finally succeeds, it clearly says what directives need changing. +- Add Scott Barninger's rpm changes to the build environment +- Add changes to mtx-changer so users can add eject and sleep for + certain autochangers. +- Implemented FreeBSD chflags (user defined flags). +- Turn restore errors during setting of owner and modes into + warning messages -- for restoring files as non-root. +- Fix how prefixes are handled in restoring soft links. +- Modified btape "test" command to do only those things that + Bacula actually does. There is much more explanation, ... +- Update manual. +- Finally had to back up to gcc version 2 from version 3 to avoid version + 3 nightmares. +- Final cygwin tweaks. +- Move start time to *after* the resource locks are acquired. +- Unable to duplicate Phil's disabling of Bacula with nmap, but + did make the authentication code a bit more conservative for + dealing with bad input. +- Added code to the query command to escape all strings input + before substitution and sending to the SQL engine. +- Escape user entered filenames for restore command. +- Cleaned up the waiting code a bit -- using broadcast instead + of signal and counting the waiters. +- Implement new pthreads semaphore code. +- #define new semaphore code rather than workq on USE_SEMAPHORE. +- Lots of improvements to the document to address recent support requests. +- Implement cycle through a set of tapes suggested by Eugeny + Fisher with the "RecycleOldestVolume=yes" record in the + Pool resource. Basically this record causes Bacula to purge + to oldest tape when no more tapes are found. +- Correct a number of small incorrect interactions between limit + variables during recycling. +- Corrected a bug in db_create_media_record() where VolMaxFiles and + VolMaxJobs was not written to the database. +- When the Director starts, the Pool record is updated in the + database with the current contents of the Pool resource. +- Corrected bnet_connect() to immediately stop (rather than looping + for the timeout period) if there is a fatal error (socket, or + hostname to ip). +- Reworked "purge" code to make purging Volumes easier. +- Made "list volumes" list the volumes in all pools -- also + "list volumes pool=Default" does not produce and error message. +- List Pool record after doing "update pool". +- Remove pid file code from Win32 -- not really necessary. +- Make bnet handle null jcr during cancel rather than crash. +- Add CygwinInstall.bat and CygwinUnInstall.bat +- Add db_lock() around newvol.c code to prevent race condition if multiple + callers want a new Volume name. +- Lots of cleanup to Win32 code, with additional error messages. +- Make Bacula work on Win95 (test for GetAttributesEx). +- Add better error messages when end of media is reached or volume + capacity execed. +- Turned off signal catching in readline(), necessary to keep console + from crashing on ctl-Z with RedHat 8.0. Thanks to David Craigon for + testing this. +- Make the 3rd and hopefully final change to the Finclude structures. + This new version permits multiple sets of options (more code to be + written) to be applied against the same set of files. Thus one can + have options that with match of *.gz and a different set of options + for *.c, ... +- Integrated GNOME Console font resource code supplied by Phil Stracchino. +- Check for job_cancelled() in bnet_connect() code to stop wait loop if + client not available. +- Fix early end of file scanning conf file in lex.c, which previously + caused ABORT -- now reports error. This could happen with an unterminated + string for example. +- Move Maximum File Size code before write and detect error on writing EOF. +- Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler. +- Added detection for Solaris 2.6, which uses older setsockopt() calls. +- Defined sockopt_val_t for setsockopt() calls. +- Added fixes sent by Bevan Anderson that fix multiple connects to FD + (I zap keys for security, so must put back dummy key). Also a fix + to the Internal database that wrote garbage after the filename in + the database. +- Back out the __SVR4 changes. +- Add automatic configuration of socklen_t +- Attempt to fix problems reported by Lutz with multiple simultaneous + open file Volumes (experimental code). Serialized acquire. This may + fix the problem, but more thought and testing is necessary. +- Add table of "supported" autochanger models. +- Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz. +- Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker + for the patch. +- Eliminate FileOptions. Implement new Finclude and Fexclude that + have file options contained in it. New structure must be transmitted + to FD. +- Split Include/Exclude into new inc_conf.c file. +- Cleanup new Include/Exclude and FileOptions. Structures in Director + now correct. Must transmit FileOptions to FD. +- WARNING: With the adddress and port code in the Catalog you MUST + remove old address= and dport= records!!!!! +- Added code to remove cancelled jobs from the workq -- needs testing. +- Added first cut AIX from output James MacLean sent me. +- Second cut of FileOptions. +- First cut of parsing FileOptions and Counters. +- Added address:port for MySQL as well as socket for local access. +- Fixed job.c in filed to properly handle excluded files. Apparently + I changed the daemon protocol but forgot to update the code. +- Enhance testfind to handle include and exclude files +- Fix getdomainname() prototype for Darwin +- Added new -u and -g options for specifying userid and groupid to + use when running, so that Bacula can reduce its privileges. +- When Bacula was hanging due to an NFS volume being down, I + fixed a few places in the File daemon where is should have immediately + terminated the connection instead of waiting for the Director to do so. +- Added first cut support for Darwin. +- Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems. +- Implemented O_NOFOLLOW in creating files in create_file.c to prevent + creating a file at the end of a symbolic link. +- Use chown() if lchown() does not exist (e.g. Darwin). +- Always close stdin on startup to avoid having /dev/console attached. +- Change all DATE occurrences to BDATE because it is used by Cygwin headers. +- Add printing of Volume names in SD status output. +- Display all open devices in device chain in SD status output. +- All changing Pool in console run command. +- Thanks to Eric Bollengier for pointing out that the run_program() + return status was not correctly generated. Now fixed (I hope). +- Corrected crash in Internal Database getting Volumes. +- Flush all daemon messages at the end of every job. +- Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems. +- Minor changes in the gnome-console directory. +- Integrated in my old Tcl/Tk code into src/tconsole and moved it up + from C to C++. Pretty crude, but it is a beginning. +- Close syslog() %n exploit in message.c +- Edit space before each line in gconsole. +- Added INCEXE structure so we can have FileOptions. +- Added support for multiple simultaneous open file volumes. +- Fix hard linked files so that the one saved is always restored. +- Add * to restore "dir" listing to indicate marked files. +- Add ability to make md5sum and sha1sum in lib directory. +- Work a bit more on the new daemon protocol. +- Use unmask of 022 or more restive +- Create File volumes with 0640 permissions +- Added support for SHA1 signature. Need to modify DB to have type. +- Document SHA1. +- Work a bit on getting proper child status from bpipe calls. +- Added Ludwig's mtx-changer to the examples/devices directory. +- Added a Warning not to use the Internal Database when it is initialized. +- Compiled and tested SHA1, and added it to the library. +- Added code to print the "load slot" status after autoloading. + +============================================================================= +2003-01-24 Version 1.29 released +23Jan03 +- Tightened up permissions on all .conf files to be 640 so they are not + world readable. +22Jan03 +- Added prefixlinks=yes/no Job record to specify applying the Where + prefix to absolute soft links. Code is not yet passed to FD, because + FD would then be incompatible with version 1.28. +- Added skeleton of installation for Gentoo release for Patrick Naubert. +- Add timer on open() for reading or writing a FIFO file. +- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution, + but at least dumps will work). +20Jan03 +- Added "append" all messages to a log to default bacula-dir.conf +- Added WriteBootstrap to default bacula-dir.conf +- Made smartall.c print "Out of memory" if malloc() fails. +- Added pthread btimer routines. +- Added timer to FIFO open statement +- George was still having problems with VolUseDuration failing. + On looking into it, one line of code subtracting 1900 was + mysteriously missing from the source -- bizarre. +18Jan03 +- Yesterday's version corrects all the problems I was + previously having, and my production jobs are now completing + properly. +- Added a #define dev_cap() to test the capabilities bits. I just + makes the code a bit shorter and a bit simpler. +- Added phase 1 support for an output fifo device. The big + difference here is that it is a STREAM device, which means that + Bacula will only write to it and not read. Thus, Bacula assumes + that the correct "Volume" is mounted and will construct a valid + label (without needing the Volume to be prelabeled), and write + to the device. +- Added phase 1 support for input from fifo device (suppress re-read, + add empty buffer flag). +17Jan03 +- Improve printout of dbcheck with # files/path fixing. +- Zap SD authorization code after use. +- Added <> back to smtp (think about this some) +- Doc +16Jan03 +- Massive change to add jcr as the first argument to nearly + every db_ call. This is because I was storing the jcr in the + db structure, which will not work because everyone shares + exactly the same structure. +- More cleanups of error termination status in filed. +- Found another bug in message.c where %s was missing in JmsgN. A lot + of cleanup in message.c +- Found places where filename listing was made (restore, verify + vol) where the buffer could possibly overrun. +- Chain include files on the end of the list so that the + order will be correct. +- Rewrote mtx-changer to output one slot per line terminated by + a colon followed by an optional Volume Tag for the "list" command. + Preparation for handling Volume Tags. +- My production crash remains elusive. Adding debug code or running + under the debugger eliminates the problem. I found a case in + message.c where I was extending the message string by two + characters to send it to the console. VERY BAD. Rewritten. +- Started implementing fifo and program handlers (i.e. streams) + in the Storage daemon. Lots to do. +- Added a trace capability where trace statements are written + to a file. Tmsg(). Hopefully this won't be used much. +- Running lots of "production" saved by scheduling a few minutes + after the current time -- slow process ... +15Jan03 +- Removed <> on From and To in smtp.c as suggested by James MacLean. +- Added code to suppress spurious error messages during cancel, + but I was unable to eliminate all errors -- to be worked + on later. +- Up size of print buffer from 2000 to 5000. +- My production run failed again. I'm beginnig to suspect + hardware problems because running by hand or under the + debugger always works -- we will see. +- Added Update Volume VolFiles to reset correct tape files + a bit dangerous. +- Use the mysql_escape_string() rather than internal version. +14Jan03 +- Cleanup handling of JobStatus by creating a subroutine. +- Fix a number of minor things with JobStatus. +- Print FD and SD JobStatus on backup report. +- Add JCR to findlib -- so now FD stops normally when cancelled. +- My production Director segment faulted during the second Job. + I haven't been able to track it down. After rebuilding, all + jobs finished correctly. +- In investigating the duplicated Paths, I found that there + were 10,552 of them -- only Path records. After checking the + code, I do not see the reason, but I've enhanced the code to + print the full path name. +- I made a few improvements to tools/dbcheck. Mostly it provides + a bit more feedback with verbose mode on when eliminating + duplicate filenames or paths. +13Jan03 +- During four simultaneous backups, the File daemon started + detecting buffer corruptions. It turns out to be due to the + fact that the smartall.c routines were not thread safe. They + are now. +- Based on input from James MacLean and team, I eliminated a number + of places where printf could be recursively called by using "%s". +- It turns out that because of an error of my understanding of + mysql_escape_string(), the last argument was taken as the length + of the string to be escaped rather than the maximum length. I've + now corrected all my code -- Thanks James. +12Jan03 +- George Motter reported problems with UseDurations, and it seems + that there were a number of inconsistencies and problems with + FirstWritten and LastWritten. Hopefully for the most part they + are now corrected. Also fixed LabelDate if done through Console. +- Try to chase down reasons why there would be buffer overruns. + Added P & V around referencing last_fname for status. + Rewrote find_one.c with MEMPOOL, but not yet tested enough + to commit. +10Jan03 +- Give extra margin to converting filenames from Unix to Windows + in attribs.c of findlib -- dumb cygwin API doesn't provide for + a length. +- Added file:line traceback to size_of_pool_memory, check... and + realloc in an attept to get closer to the memory overrun reported + by James MacLean. +09Jan03 +- Made yet another fix to quoted string -- paths! Thanks to + Scott Medlock for reporting this. +- Made | and < work. +- Implemented FIFO reading/writing. To do so, simply explicitly mention + the fifo file (named pipe) in the Include AND add the new option + readfifo=yes +08Jan03 +- Started implementing | and < on Include names. +- Changed source to . in cats directory as requested by Andrew Kokarev. + +============================================================================= +2003-01-05 Version 1.28b released +- Corrected a typo of working_directory in bacula-dir.conf + reported by James MacLean. +- Fixed the fact that path and filenames in some cases were not + being quoted before going into the database. Many thanks to + James MacLean for reporting this. + +============================================================================= +2003-01-05 Version 1.28a released +- Corrected a missing quote in bacula-dir.conf reported by James MacLean + +============================================================================= +2003-01-05 Version 1.28 released +General: +- Implemented Bare Metal Recovery for Linux and manual procedures for Solaris +- Now using only a single technotes file kes-1.28 and will add to + it as the development goes on. +- Wrote a general purpose bi-directional pipe command. This replaces + previous use of pipes as well as the run_program previously used. +- Make BSRs stop if no more matches are possible. +- Allow unliminted number of devices in Storage daemon. +- Allow connections to Storage daemon before all devices are initialized. +- Better documentation (and btape test command) on using fixed block + tape drivers. + +Changes submitted this submission: +04Jan03 +- Add cygreadline5.dll to Win32 release -- needed for console +03Jan03 +- Add scripts make_catalog_backup and delete_catalog_backup that makes and + deletes an ASCII copy of the catalog for backup. An example of how + to use it is in the Type). +- Added error messages for SQL errors in autopruning. +19Dec02 +- Documented Bare Metal Recovery +- Create new "rescue" directory containg the Bare Metal Recovery code. +- Fiddle with SQL a bit for pruning as apparently the last InitCatalog + was pruned after the expiration date eventhough it was the ONLY copy! + I'm not sure this is fixed yet. +18Dec02 +- Allow Director to pass a NUL where string to FD (fix in FD). +- Fix installation mv of query.sql. +- Make sure btraceback.gdb is not wiped on "make distclean" +- Corrected a bug in mod of replace options pointed out by Dave Anderson. +16Dec02 +- Started adding FileOptions ... +- Fixed and incorrect print out of the number of files restored (Jarif). +- Finally fixed EndBlock (and file address for Files) in catalog! +- Added hostname to tape header as always planned. +- Removed Level code (will not implement unless strong demand exists). +- Tweaked bscan to print number of errors ignored before first SOS. +- Enhanced btape "fill" to permit using one tape and to dump last + block before writing and upon read back. +- Make fsf_dev() return 0 on fail and 1 on success. +- Use new db_get_job_volume_parameters() to enhance Write Bootstrap to + contain more info (start/end file/block, file indexes). +- Added --enable-static-fd, sd, and dir to configuration to enable making + static versions of the daemons. +13Dec02 +- The btape test program was indicating errors on Adrian's machine + using the ATAPI (ide-scsi) tape drive. It turns out that this + is a fixed block driver as a consequence, Bacula must be setup + to write fixed blocks. btape was not always using the fixed + blocks defined in the Bacula config, so that has been updated. + It now works fine. A lot of tips added to the Bacula test command + to help guide the user. +- Documentation of the above significantly improved in the manual. +12Dec02 +- Added code in watchdog to permit setting and clearing child timers. If + the timer expires, the child process is killed. +- Modified restore to handle differential jobs. +- Added a new test to the btape "test" command +09Dec02 +- More documentation of new features (week position in scheduler, bsr). +- Re-read last block written on full tape to verify it. +- Fix segmentation fault with btape fill command due to missing FileSet MD5. +07Dec02 +- Created better SQL input editing routines str_to_int64 and str_to_uint64() +- Pull Client from database in Console restore command. +- Create a Unique list of Volumes to be mounted (previously had repeats). +- Made many of the SQL searches better by using the ClientId rather than the name + in the restore Console command. +- Modified reading of a tape to include the VolFile info. Once the + tape is past the specified file, reading stops. The BSR now includes + both the VolFile and VolBlock. Currently VolBlock is not used. +- Handle multiple volumes better by creating a real volume list with all + parameters in it. +- Display "At prompt waiting for input" in gnome console when at subcommand + prompt. +- Broke ascii to internal and internal to string editing routines out into + new lib/edit.c file. +02Dec02 +- Added a readme and an afs-bacula script to the examples directory + that permits Bacula to backup an AFS filesystem. Thanks to + Lucas Mingarro for the submission. +- Added A Sun-desktop autoloader script and Device definition to the + examples/devices subdirectory. Thanks to Lucas Mingarro for the + submission. +- If the WriteBootStrap fails, the job will now be marked in error. +- Added a week position to the scheduler syntax that allows you to + specify 1st, 2nd, 3rd, 4th, or 4th, or first, ... fifth as a week + position specification in front of a day. So if you say + + 1st sun ... + + the scheduler will start only on the first sunday of the month. The + day specification can also be a day range e.g. sun-fri. + This code is untested. +- Implemented bpipe.h and bpipe.c in src/lib, which defines a bi-directional + pipe. This allows executing other programs and sending them information + as well as getting info from them. +- Replaced the previous pipe usage with bpipes in RunBeforeJob and + RunAfterJob. +- The mail program now uses bpipes rather than pipes, which means that any + error output will appear in the job output (truly bi-directional). +- Modified BSR to handle counts and to stop when no more matches are possible. + This is untested. +- Improved error messages in smtp. + +============================================================================= +2002-12-12 Version 1.27d +- This is a minor update that fixes a segmentation fault in btape + as well as reduces non-important error messages in bscan. + +2002-11-29 Version 1.27c +- Yet another silly error duplicating a column name in the SQLite + make tables. No code change, just a make file. + +2002-11-29 Version 1.27b +- Set DB version to 5 in DB make files. + +2002-11-28 Version 1.27a +- Use g++ instead of gcc for testfind in tools + +2002-11-27 Version 1.27 (26Nov02) released 28 November 2002 + +General: from kes25Nov02 +- Mostly Cygwin changes + +Changes submitted this submission: +- Updated bdb_find.c to have new calling sequence for db_find_job_start_time +- dird/catreq.c edit in Volume name in error messages to SD +- attribs.c switch to using the cygwin API to convert from POSIX paths + to Win32 paths. This now permits Win32 path specifications in Include + statements (all combinations not yet tested). It also avoids the large + number of errors seen by Lutz if a Win32 path is specified in the Dir. +- Update testfind help and remove set_attribsEx debug code. +- Build testfind as default. +- Turn off debug message in stored/askdir.c + +General: from kes21Nov02 +- Another change in the database. You MUST either re-initialize + your database or use the appropriate ./alter_xxx_tables in + the src/cats directory. + +Changes submitted this submission: +- Additional documentation. +- Added MaxVolFiles to the database (not yet implemented in code). +- Increased the database version from 3 to 4. +- Change VolMaxBytes to MaxVolBytes, which is much more descriptive. +- Compressed unnecessary spaces out of a lot of SQL statements. +- Changed many %d to %u where unsigned integers are used. +- Added the Bacula version and build date to each backup output. + This will help knowing what version of Bacula was used. +- Implemented VolUseDuration MaxVolBytes, MaxVolFiles, and MaxVolJobs + based on maximums set in the Volume (Media) record rather than in the + resource. This means the values can be individually set on a Volume basis. +- Allow commas separating Include options (this was a subtle bug). +- Added maximum string length argments to a number of subroutines to + prevent buffer overflows. Most notably was do_prompt(). +- Replaced MANY occurrences of strcpy() with bstrncpy(), which guarantees + both that the length is not exceeded and that the string is properly terminated. + This has a risk of a certain destabilization -- as does the changes to + the SQL noted above. +- In cram-md5 routine use my_name if gethostname() returns an error. +- Increase timeout from 2 minutes to 3 minutes in authorization code. +- Check the full string including \n in authorization. +- Throw away any response longer than MAXSTRING. +- Added a number of additional error checks on subroutine return statuses. +- Replaced as many lld's with edit_uint64 as I could find. +22Nov02: +- Added MaxVolBytes to Pool record - had forgotten it. Updated DB version. +23Nov02 +- Update manual to document new Pool/Volume attributes +- Correct make_sqlite_tables (typo, plus missing value in Pool) +- Fix bizarre behavior in gnome-console and console when auth fails. +- Add Pool attribute query +- Add a few more error messages in askdir.c +- More strcpy() conversions to bstrncpy(). + +General: from kes18Nov02 +- Did a number of cleanups of string copying to limit the length + and prevent buffer overflows. + +Changes submitted this submission: +- Added a mutex arount the gethostbyname() so that multiple simultaneous + jobs get the correct address. +- Added the MaxVolJobs to the Media alter tables script for MySQL (forgot it). +- Changed arg to db_find_job_start_time to be POOLMEM for returning the string. +- Add the new VolUseDuration and MaxVolJobs to all the db_ routines. +- Use bstrncpy() in most places in the db_ routines to prevent a bad + database from crashing Bacula (self protection). + +General: from kes13Nov02 +- You MUST either re-initialize your databases or use the + ./alter_mysql_tables + or + ./alter_sqlite_tables + in the /src/cats directory to modify your database tables. +- Major improvements to dbcheck including an interactive mode. + +Changes submitted this submission: +- Implemented VolumeUseDuration and MaximumVolumeJobs which control + when a tape can be marked Used. +- New tape status "Used" means it was used and cannot be used any more. +- Defined utime_t which is 64 bit epoch time in seconds. btime_t is + 64 bit epoch time in microseconds. +- Created alter_xxx_tables to add new columns (VolUseDuration, MaxVolJobs) to + database. Incremented db version. +- Changed a few subroutine names concerning dates to be more descriptive. +- Fixed several places where the last filename was not stored in JCR in + FD verify_vol.c and restore.c +- Major update to dbcheck. Unfortunately I used subselects, which work + perfectly fine in SQLite, but not at all in MySQL. I must now rework + it for MySQL. What a pain! +- Removed "Database found" from configure output. It was no longer used or valid. +- Corrected doc --working-dir => --with-working-dir Thanks to Tuck for + reporting this. +- Added the database name to the error message for mismatched DB version. +- Commented out GMP and CWEB from configure as they are not currently used. + +General: from kes09Nov02 +- Converted the manual over to a new format written in wml. This + gives navigation buttons on the top and bottom of each page + as well as a standard page size. +- Updated the main Web site, providing a menu bar to the left + and much better organization and presentation of the information. +- Added code to recognize a Volume written with a larger block + size than specified. The code automatically adjusts. + +Changes submitted this submission: +- Created a new scripts directory and moved most of the scripts + previously in the main directory there. This cleans things up + quite a bit. +- Moved the randpass stuff into autoconf. +- ensure that the generic make_bacula_tables and drop_bacula_tables + are installed. +- Added code to filed to allow it to be run from inetd. Just add the + -i option. I have not tested it. + +General: from kes30Oct02 +- Alex found a problem with GZIP compression -- fixed. +- bacula stript fixes. +- Segment fault in Director fixed. +- Added openbsd to platforms + +Changes submitted this submission: +- GZIP compression was broken for large files due to a variable that + is changed during the compression. This was relatively easy to fix. + However, there were a number of fixes required to make GZIP and SPARSE + files work together. Found one more place in bextract where SPARSE_GZIP + testing was missing. +- During testing of the above, I ran into the restore problem of multiple + FileSet records. Fixed by including the FileSetId and the MD5 on the + selection string, then always using the FileSetId. It is a bit + confusing for the user, but ... +- Francis found a problem with bacula.in (fixed - thanks) +- I found another problem with bacula.in, so now it REALLY should work + on most systems. +- Added the Replace options code for restores. Not tested. +- Fixed an ugly stack overrun bug in reading the config file + that has been in for a long time. I found this in testing on FreeBSD + where the Director seg faulted. + +General: from kes29Oct02 +- Major change to the bnet communications routines. + +Changes submitted this submission: +- Modified the bacula script to use pid files, so this script should + now work on more platforms. Updated devel_bacula as well. +- Added the full GNU hostname on the configuration print output. +- Added gettimeofday() to configure, and tweaked a few variables for + OpenBSD. +- Added a chapter to the manual on Porting Bacula to other platforms. +- Documented in Tips how to use the WriteBootstrap record. +- Modified bc_types.h to error if 64 bit types are not found. +- Pass replace option for restore to the FD (no code to use it yet). +- Modify the FD to pass back the GNU OS string as well as the DISTNAME + and DISTVER. This needs to be put in the Client record in the catalog. +- Major reworking of the bnet routines to eliminate the zero length which + previously indicated a signal. This risks to create some subtle communications + bugs. The changes now permit blank lines to be sent from the user to the + Director. +- Found and corrected a few more places where the Win32 attributes were not + being recognized. +- Permit spaces in the Where string (restore) by bashing/unbashing them. +- Handle quotes correctly in the Console program (actually Dir ua code). + Previously they were not handled in the middle of a string. +- Corrected two error message (error reading file), which previously stated + it was a network error. +- Reworked the files in the binary Windows release. Removed unused programs + and added a README with the copyright as suggested by John. Also added + console.exe to the release. +- Found and corrected an autoloader mount problem where the wrong tape + was specified. Previously it looped, then gave up. Now it correctly + detects the volume is not correct and zaps the Slot in the catalog. + +General: from kes23Oct02 +- I have mainly worked on getting all the details of a Restore + to work correctly (new tape format, support for Win32 + attributes, ...) +- Trademarked name Bacula. +- Implement Bacula tape format 11 (1.0 Immortal). This format + will be maintained forever. +- Accept Any Volume is yes by default. This modifies Bacula's behavior + when writing tapes. + +Changes submitted this submission: +- Corrected a bug on FreeBSD where CFLAGS would get a "yes". I was + unable to reproduce this, but a user confirmed the correction. + It was a problem with detection of largefile support, which FreeBSD + has by default. +- Added a new "license" chapter in the manual. Re-licensed a number of + library routines (bnet.c, hmac.c md5.c, cram-md5, ...) with LGPL so that they + can be used in proprietary software to access Bacula if so desired. +- Move Director's AutoChanger doc to correct location (in Storage + resource). +- Document why trademark (to protect compatibility). +- Implement and turned on Bacula tape format 11 (also BB02). This + format moves the VolSessionId and VolSessionTime from each record + header into the Block header. This is MUCH more efficient when reading + records as now whole blocks can be skipped. + Also added JobStatus in End Of Session record, and added MD5 for + FileSet, which is necessary to insure uniqueness. +- Implement a new Bacula time format for btime_t. It is Epoch time + in microseconds (i.e. base 1 Jan 1970 in microseconds). + This replaces previous floating point times. +- Added Win32 extended attributes. In doing so, I moved all attribute + handling from src/lib into src/findlib. Added new streams for + Win32 attributes and for GZIP Win32 attributes. +- Modified "Accept Any Volume" so that it really permits any volume + in the pool to be mounted. +- Removed "Mount Anonymous Volumes" from Storage daemon config. +- Implemented sparse files. You must add "sparse=yes" on the include line + for it to be enabled. +- Print "None" in backup summary rather than 0.0% if there is no compression + enabled. +- Improved error checking in daemon connection/authentication code to prevent + garbage data from harming a Bacula daemon. +- All daemon tools MUST have a config file. +- Completely strip drive specification on Win32 if a Where prefix is specified. +- Corrected DB info for writing to files. Now the File Address is stored + in File-Block variables in the catalog. +- All Storage daemon tools now use common code for acquiring/reading + Volumes. +- If a device is unmounted, report it even if the device is not open. This + will help inform users who have BLOCKED Bacula by unmounting a drive. + + +============================================================================= +2002-10-12 Version 1.26 (10Oct02) +General: from kes10Oct02 +- Changed Job name conventions to avoid : which is an illegal + character on Windows. + +Changes submitted this submission: +- Added check for inet_pton to configure.in. If it does not + exist (e.g. Windows) use inet_aton +- Documentation on GZIP. +- Another restore doc example. +- Documented btape fill command. +- Set default restore directory from /tmp to /tmp/bacula-restores +- Add additional no find error messages to sql_get.c +- Creating a bootstrap file on Windows failed because the Job name + contained colons which are illegal on Windows. Replaced the + colons with periods. This corrects the Windows restore problem. +- Print number of files to be restored in "restore" command. +- On Windows systems, if there is a prefix, completely eliminate + any drive: at the beginning of a path. +- Minor corrections to the tree routines to handle Windows + files such as c:/ better. Previously it insisted on /c:/, which + would then not be found in the catalog for a "dir" command. +- Modified cd command in restore to try /c: if c: fails. +- Add a new S_ISWIN32 bit to the st_mode word so that low level + routines that create files do not print error messages. +- More work must be done to restore all Windows files correctly. + Currently the following bits are not handled: + Archive + Hidden + System + Also, all the dates are not properly restored. + +General: from kes09Oct02 +- More documentation. +- Implemented new fill command in btape that permits filling + a tape and then reading it back to ensure that it works + with Bacula. + +Changes submitted this submission: +- Added ReadBytes to JCR, which contains Job bytes read by + FD, JobBytes contains compressed output of FD. +- Modified FD to pass back JobStatus, ReadBytes, JobBytes, ... + for backup jobs. This is upward compatible. +- Modified backup termination status report to contain the + compression ratio 100 * (1 - compressed-bytes/uncompressed-bytes) + This will always be zero if no software compression was + done, or if you are using a version 1.25 or older FD. +- Pickup Job termination status of FD in backup, so now + the termination status represents the state of all three + daemons. +- Implemented new fill command in btape that permits filling + a tape and then reading it back to ensure that it works + with Bacula. + +General: From kes06Oct02 +- Implemented first major cut of bscan -- program to scan a tape + and recreate a Bacula catalog. +- Fixed lseek() relative negative seek that prevented writing multiple + jobs to a File volume. +- Implemented BB02 tape format -- currently turned off for writing. + +Changes submitted this submission: +- Updated README +- Implemented new BB02 tape format, which moves the VolSessionId and + VolSessionTime from the record headers into the Block header. It + is currently turned off. +- Implemented new btime time/date format on the tape. This is currently + turned off. +- Added JobStatus to EOS tape label. This is currently turned off. +- Changed start_block, ... to StartBlock in JCR for uniformity. +- Print a message telling which tables were dropped/made with + ./drop_bacula_tables. +- Return JobType and JobLevel in db_get_job_record(). +- Implemented get_current_btime(), which returns btime_t. +- Bump debug message max size to 2000 bytes. +- Add btime_t serial/unserial routines. +- Rework all tape label routines to integrate btime and other + label format changes (currently turned off -- for writing). +- Fix lseek() to always be positive -- block.c +- Consolidate record, block, and label major #defines in block.h. +- Major implementation of bscan. Some more minor tweaking will be + necessary. E.g. add multiple records for multiple simultaneous + Jobs. +- Cleanup lseek() to always use off_t as second argument. +- Add new "created" tape label (EOT_LABEL). This generates a callback + to the read_records() routine when the final end of all tapes is + reached allowing proper termination and updating of the media records. + +General: From kes25Sep02 +- Added means to bind servers to specific address. +- Documentation + +Changes submitted this submission: +- Added DirAddress, FDAddress, and SDAddress records to the corresponding + resources that allow the server to bind to a specific address + rather than any address. This security improvement was suggested by + a user -- thank you. +- Eliminated deprecated "Address" record from all sample Storage resources. +- Made quite a lot of improvements to the bscan program. Much more + to do. Aside from details, it is able to recreate a database + from which you can do a restore. +- The s option is not accepted on all versions of ar, so replaced it + by an explicit ranlib call. +- Fixed a bug that caused the Director to crash if you rudely bring + down the console program in the middle of an SQL command. +- Fixed a bug (missing break) that caused scheduled Admin jobs to + be listed as "Unknown type". +- Removed old code from Storage daemon that used a separate FD port. + +General: From kes14Sep02 +- Better key generation on non OpenSSL systems. +- 64 bit file address support if available. +- Implement autochanger for reading +- Lots of cleanup of tape reading code. +- Automatically create all Pool resources when Bacula starts. +- Implement bscan.c +- Implement autochanger use via the Console commands "add" and "label" +- Begin implementation of a regression script +- Write bootstrap after ever job + +Changes submitted this submission: +- After noticing that the non OpenSSL random key generator was + not good on Solaris, John wrote a very nice randpass generator. +- Integrated John's makeSessionKey for generating the FD->SD + authorization. +- Statically link tools (doesn't work on Solaris). +- Document how to debug Bacula (new chapter in the manual) +- Remove unneeded printing of error message in sql_get.c +- Free SD description config record (previous oversight) +- Bash spaces when sending Director names, and unbash them when + received. +- Ensure no divide by zero in rate computation in backup.c +- Implement WriteBootstrap in backup.c +- Allow tape reading to request volume information for any + volume. +- Create all Pool resources at startup. +- Show only Backup jobs in Restore listing of last 20 Jobs. +- Handle 64 bit stat packets in restore. +- Don't do shell expansion on store_dir in config if string + starts with |. This is used for piping the program for the + WriteBootstrap. +- Ignore SIGHUP -- DéjàGnu was triggering this. +- Implement autochanger for reading, many changes to + acquire_device_for_read() +- Implement callback for reading Volume. Implement in bextract, + bls, and bscan. +- Implement bscan +- Add count to bsr. +- Fix Volume in bsr. +- Move autochanger code to new subroutine in mount.c + +============================================================================= +2002-09-05 Version 1.25a (05Sep02) Released +- Fix unitialized stack variable in bextract so it + will always read the currently mounted tape. + +============================================================================= +2002-09-04 Version 1.25 (01Sep02) Released + General: +- Added .cvsignore files in each directory to cut down on the + CVS output when scanning directories and finding Makefiles + and such which are not part of the CVS tree. + + Changes submitted this submission: +- Cleaned up a lot of the error messages in Verify, including + indenting. +- Had to remove some of the "automatic" error message printing + in the DB because they are in fact things that come up + for Verify but not really errors. + + + 2002-08-30 Version 1.25 (30Aug02) Beta + From kes30Aug02 +- Fixed a bug where only the first file was restored if + it is hard linked. The other links were lost. +- In some cases of restoring to alternate directories, softlinks + were not properly restored. + + From kes28Aug02 + General: +- Bacula backups now run up to 12 times faster than version 1.24 +- Bacula can run multiple simultaneous Jobs. +- Had to turn off TRANSACTIONS in SQLite because it doesn't work + with multiple simultaneous jobs (I'm working on this). +- Added a better Job printout for Restore Jobs. +- Added a save/restore Rate to backup and restore jobs. This + does not yet subtract out operator wait time so it will be + underestimated it the Job waits on the tape (mount/label). +- Fixed a major bug caused by free()ing a buffer twice in + the Restore code. This made the SD more or less useless after + any restore Job. Arrggg! +- DIR - SD protocol changed, both must be updated at the same time. +- DIR - FD protocol changed in upward compatible way. Upgrade of + FD not required, but recommended. + + Changes submitted this submission: +- Added bell to "make" when errors are detected. +- Changed default compile option from -g to -g -O2 +- Additional documentation as usual -- much based on questions or + feedback from users. Thanks. +- Fixed example config files to use new syntax and to have a + Restore Job. +- Define ETIME to ETIMEOUT for Irix +- Added JCR filed to DB structure permitting direct printing error + messages from within the Database subroutines. + Some error messages may be printed twice as a consequence. + When I see them or someone reports them, I will remove the double. +- Added JCR to the bsock structure. This allows direct printing + of network errors from within the network code. +- Made most "trivial" debug messages have level 100 or greater. This + allows for easier debugging of new code using the range below 100. +- Began replacing all Emsg() with Jmsg() using a NULL as the JCR in + Jmsg() is the same as Emsg(). +- Fixed several crashes in the Director because of malformed config files. +- Added SpoolAttributes to Job resource. +- Pass CatalogFiles to SD. If set to no, the attributes are dropped + within the SD rather than being sent to the DIR. +- Cleaned up a number of information/error messages in user interface. + This includes eliminating the "pretty please" response in favor of + "yes/no" to delete volumes and pools. +- Cleaned up quite a number of uninitialized variables reported when going + to -O2, most were harmless, but a couple could cause problems. +- The cd command in restore was not working correctly (it didn't allow some + legal cds). +- Fixed a segmentation violation in the directory tree handling code in + the restore command. +- Handle a few error conditions in the restore command better. +- Permit "Where" to be set to nul in modification of a run command. +- Clarified the error message for Verify if an InitCatalog has not previously + been done -- thanks Chuck. +- Add MaximumConcurrentJobs to FD. +- Added code to mem_pool to die if a buffer is released twice. +- Lots of work done on SD for multiple simultaneous jobs. Split device.c + into device.c, mount.c and acquire.c +- Started writing new lock code for SD, but may back it out -- needs more + thought. Current code works, but is too complicated. Maybe can simplify it. +- Cleaned up the SD tools code quite a bit. Added bootstrap to all tools. +- Ensure that tape session labels are not split across two blocks. This makes + reading them back much easier. +- Fixed another restore bug concerning tape labels on multi-volume saves. + +============================================================================= +2002-08-14 Version 1.24 + From kes12Aug02 +- Made a new tools directory. +- Moved smtp into the tools directory. +- Created a dbcheck program in the tools directory that + checks for certain database errors and if requested fixes them. +- Put the database link flags on DB_LIBS so that it now only is + on binaries that actually need it. +- Document dbcheck and testfind programs. +- Move testfind to tools directory. +- Check for FileSet after getting Client name in Restore command. + Modify all necessary SQL commands to accept FileSetId. +- Add a db_get_fileset_record in cats directory. +- Correct list last 20 files concatenation to be MySQL + dependent. They aren't SQL standard. Use SQL standard || for + other SQL programs. +- Modify dir command in file selection to produce a long form + listing of the file/directory name. +- Add platforms/irix/*.in files to CVS +- Make Console command scanner accept quoted value fields. +- If after selecting Client to restore, there are multiple + FileSets, ask user to select one. +- After obtaining JobIds for restore, ensure that there is only + one MediaType, and select a Storage resource to be used. + + From kes11Aug02 +- Made restore actually work. +- Made console and gconsole be configured (requested by Chuck) +- Updated kernstodo +- changed fs in Job record to fileset for clarity +- The console run command was not properly picking up the command + line arguments. Fixed! +- Changed add/remove/rm to mark/unmark +- Volume keyword VolumeName was wrong, changed to Volume (in restore bsr). +- Pass jcr to parse_bsr, and if non-NULL, it will output error messages + to Job stream rather than Emsg. +- Modified lexical scanner to include caller context so that jcr can + be stored in lex context allowing error messages to be properly + routed. +- Renamed the Job message chain to be jcr_msgs. This eliminated the + previous confusion with the default value, now named jcr->messages. +- Implemented multi-volume bsr records. +- Implemented pm_strcat() and pm_strcpy() to cat/add to memory pool + buffers in same way as strcat/strcpy, but expanding buffer. +- Modified db_get_volume_names to handle arbitrarily long Volume list. + + From kes07Aug02 +- If the Console program terminated during the printing of messages, + the message file was left locked. This was corrected by using the + new read-write lock code. +- Implemented Pw() and Vw() for obtaining and releasing a write lock + using the rwl_xxx routines. +- Deleted some old pthread_mutex code from mysql.c +- In making the Irix port, I previously corrected the base64 routine so + they were not sensitive to the machine definition of char. This made + them incompatible with previous versions invalidating MD5 signatures + which are in base64 format. I have now corrected this, making the + routines compatible with the previous version but also insensitive + to the default definition of char. +- Removed some unnecessary NPRT() usage in signal.c (pointed out by + the Irix compiler). +- Add back BNET_NONO for compatibility with older File daemons. +- Implement runing a restore Job in the restore command. +- Make installation of query.sql unconditional. To prevent you own file + from being overwritten, give it a different name. +- Made parse_command_args() in ua take command from ua->cmd, this + simplifies it and allows usage in other places -- e.g. building + arguments for created run command in restore. +- Cleaned the naming of s_full_ctx to be s_jobids. +- Write the bsr created in restore to "working-directory"/restore.bsr +- Fix bugs in command line scanner in run command -- also some misplaced + breaks! +- Eliminate static cmd in ua_server.c +- Eliminate segmentation fault when using the Run command in the + Console -- forgot to init_msgs(). + + From kes06Aug02 +- Did a good amount of documentation. +- Added sql_cmds.c to CVS, forgot, pointed out by Chuck. +- Added new platforms/irix directory to CVS +- Turn off transaction debug code in sql.c +- Reworked the scheduler so that it handles the same Job starting + twice in the same hour. Previously it took one or the other. +- Tightened up the "slop" in the timings that I programmed to ensure + that the same job isn't run twice or that no job was missed. +- Increase the sleep time. +- Used job_type_to_str() in status so that Admin jobs are correctly reported. +- Add internationalization message chars to a number of routines + in util.c +- Make the watchdog timer clear the mutex when it exits. +- Some tweaks to the Restore command. It needs fixing when a Job spans + two or more volumes. + + From kes05Aug02 +- Initial cut at adding Irix File daemon support. +- Lots of work on the restore command. +- Take a stab at eliminating the "broken pipe message" + when the console program prematurely terminates. +- Reimplemented transactions for SQLite by keeping + them all in the same thread. +- quit in the Console program now waits for Bacula to + quit. To immediately quit, you must enter .quit +- Eliminated BNET_EOF -- this COULD have some negative consequences + on interdaemon communications. +- Define Job termination status for Admin jobs. +- Write new bstrncpy() function that guarantees that strcpy is + properly terminated. +- Fixed command input in ua_input.c to accept quoted items as a + single field. + + From kes01Aug02 +- The changes that added indexes to the SQLite database were + lost -- thanks to Chuck for pointing this out. Redone. +- Fixed a problem quoting strings in SQLite. This showed up + as database errors with files containing ' or " in the filename. +- Implemente restore command -- still in progress. +- Added indexes to all fields in SQLite that exist in MySQL. +- Moved unused immortal files from src/lib to src/immortal. + This will permit splitting depkgs. +- Started work on adding embedded MySQL. Cannot get the tables + to work for the moment. Please don't try to use this option. +- Convert to using single quotes for enclosing all strings. +- Implement correct quoting algorithm for SQLite strings. + Is dequoting needed? +- Started centralizing SQL statments in the Director in sql_cmds.c +- Changed a number of M_ABORTs to M_ERROR_TERM so that program terminates + but does not produce a dump. +- Allow wild-card matches in bsr for Client name, and Job. +- Change OflineOnUnmount=no as default. +- Fixed improper printing of filenames containing a space in bls.c + Thanks to Carlos for reporting this. + +=========================================================================== +2002-07-26 Release 1.23a +- Fix segmentation fault is FD status. +- Turn off TRANSACTIONs for SQLite. + +=========================================================================== +2002-07-23 Release 1.23 + From kes22Jul02 +- Updated Bacula to handle some minor differences in MySQL 4.0.2 + (still works with older MySQLs). +- Updated MySQL documentation to correct some minor errors. +- Added kernstodo to CVS +- Fixed create_mysql_database, which I recently accidently broke. +- Disallow zero length volume names in Console program. +- Create alter_mysql_tables and alter_sqlite_tables for conversion + from 1.22 table format to 1.23 table format. + + From kes20Jul02 +- Investigation of SQLite performace problems reported by Chuck. +- Updated ChangeLog +- Updated README +- made root@localhost the default email address because many smtp + servers reject root but accept root@localhost +- Added an autochangers chapter to the manual. +- Documented most of the new features in 1.23 +- Modified the SQLite interface code to start a transaction at the + beginning of a job and commit it at the end of the job. It + also commits it after 10000 changes. Hopefully this will + improve performance. +- Set the default cache pages from 2000 to 10000 for SQLite (i.e. + about 15Megs of memory) hoping to improve performance. +- Terminate last filename referenced in FD prior to copy to + avoid race problem with multiple threads and no locking. +- Enhanced the status output to include the JobType +- Print an error message if the email program terminates in error. +- If your machine has an MTUNLOCK, do it before doing an OFFLINE to + ensure that the door is unlocked. +- Added code to stored/append.c to spool attributes. This is in + a testing stage and must be explicitly enabled. +- Added a no_attributes variable to stored/append.c that prevents + the attributes from being sent to the Director. As yet, no way + to turn it on. +- Modified SQLite code so that after 10000 updates any transaction + is committed, then restarted. This keeps it from using too much + memory. +- Set the default cache size to 10000 pages (previously 2000). +- Fixed a segmentation fault on Sun due to no default value for + the JobStatus. +- Added the same indexes to SQLite that I exist in MySQL. This + VASTLY reduces CPU usage for lots of inserts. +- Added spooling to bnet_send(). + + From kes18Jul02 +- The following two changes were prompted by questions/suggestions + from A Morgan. +- If you have "AlwaysOpen = no" in your SD Device + resource, Bacula will free() the drive when it + is finished with the Job. +- If you have "Offline On Unmount = yes", in your + SD Device resource, Bacula will offline (or eject) + the tape prior to freeing it. +- Added Maximum Open Wait to allow open() to wait if drive is busy. +- Added RunBeforeJob and RunAfterJob records to Job records. + This permits running an external program with the following editing + codes: + %% = % + %c = Client's name + %d = Director's name + %i = JobId + %e = Job Exit + %j = Job + %l = Job Level + %n = Job name + %t = Job type + + From kes17Jul02 +- Added autochanger support to devices.c +- Allow user to change Slot in the Volume record. +- Implemented code in lib to run an external program + (tape changer) +- Implemented a changer script for mtx. +- Currently the changer commands used are: + loaded -- returns number of slot loaded or 0 + load -- loads a specified slot + unload -- unloads the device (returns casette to slot) +- Other changer commands defined but not yet used: + list -- returns list of slots containing a cassette + slots -- returns total number of slots +- Implemented ChangerCommand, specified in the SD Device + resource, permits editing of: + %% = % + %a = archive device name + %c = changer device name + %f = Client's name + %j = Job name + %o = command + %s = Slot base 0 + %S = Slot base 1 + %v = Volume name +- Implemented MaximumChangerWait default 120 seconds. It is + specified in the SD Device resource. + + From kes15Jul02 +- Moved techlogs from main directory to be subdirectory of doc +- Added code for strerror_r, and detection of gethostbyname_r(). +- The protocol between the Director and the SD has changed. +- Major rework of SD tape mounting to prepare for Changer commands. +- Separated Update Media record and Create JobMedia record. These + are done from the SD by calling the Director. Need separate Create + JobMedia so that when a Job spans a volume, all other Jobs writing + the same volume will also have JobMedia records created. +- Added message to user indicating selection aborted if he enters . + to a Console selection request. +- Create a jobstatus_to_ascii() routine for use in status commands. + This makes a single routine from three separate pieces of code. + Updated the code to properly handle more (all) termination statuses. +- Tried to fix the gnome-console to handle history a bit better. There + are still some problems with focus not being properly set to the edit + box after history replacement. +- Removed the shutdown() from bnet_close() hoping to fix Console termination + errors that are occassionally seen -- no luck. +- Moved add_str() to lib/util and renamed it add_str_to_pool_mem() so that + it can be used to edit Job termination codes and Changer command codes. +- Reworked how the SD mounts tapes (in device.c) so that control passes through + only a single routine. The logic is much simpler than previously, and now + adding AutoChanger code is straight forward. +- Made SD tape mounting much more fault tolerant -- more cases retry instead + of terminating the Job. +- Wrote code to edit_device_codes() for Changer commands. Not yet fully + implemented. +- Added a ChangerDevice directive to the Device resource. Still need to add + ChangerCommand. + + From kes07Jul02 +- This documents what I did while on vacation. +- A fair amount of documentation. +- Implemented Verify Volume to Catalog (needs renaming) +- Modified the database to include new MarkId field as + well as Counters. Database level is incremented from 1 to 2. +- Added first cut of managing autochangers by implementing Slot in DB. +- Fixed a good number of M_ERROR messages to be M_FATAL where appropriate. + Also converted a number of Emsg() to Jmsg() permitting better Job error + messages. +- First cut at implementing a general packet passing mechanism for bsock + to replace printf and sscanf for passing data. +- Made make_xxx_tables and drop_xxx_tables and create_xxx_database + for bdb as well as sqlite. With this each database has the + same set of scripts (with the exception that MySQL has grant_privileges). +- Modified Makefile to only install the database scripts for the + database that you are using. +- Updated the pdf script to include all the html files. +- Did quite a lot of documentation. +- Made Bacula compile correctly with DEBUG turned off. +- Implemented Pmsg() macros that permit using the debug print + routines even with DEBUG off. +- Updated job_cancelled() macro to handle JS_FatalError. +- Changed db_find_last_full_verify() to db_find_last_jobid(). This + permits working with Verify Volume to Catalog. +- Removed TRANSACTION code from incrementing NextId for SQLite. +- Implemented quick and dirty (not fully functional code) so that + console program does not die if ctl-Z is entered. +- Cleaned up backup.c a bit adding a bail_out goto to ensure proper + handling of errors with minimum code. +- Added passing Slot back and forth to Storage daemon with Volume info. +- Implemented Slot in Media record in DB. +- Implemented first cut of Counter resource in dird_conf.c. A counter + resource is part of the Pool resource. +- Implemented necessary database record. However, the resource doesn't + yet create a DB record. +- Implemented onefs (One File System) and recurse options on Include + resource. +- Implemented autopruning of Verify and Restore Jobs. +- Did a better job of calculating thread_concurrency() for Sun systems. + This permits better multi-threading allowing all the threads to run + at the same time. +- Implemented a wait_for_storage_daemon_termination(), which is used by + backup and verify volume. +- Clarified a number of UA prompts, and add feedback where certain commands + completed but printed nothing. (More work to be done here). +- Added a pile of new code to implement Verify Volume to Catalog. It is sort + of a hybrid of "restore" and "verify" in that it actually reads the tape, + then compares it to the catalog. Need Verify Volume to Client. +- Added a good number of checks for job_cancelled() this should permit + quicker and more reliable cancelling of jobs. +- Fixed one bug in restore where I used ofile instead of lname, which means + that if the lname was too long, the memory was not properly reallocated. +- Cleaned up find_one.c in findlib quite a bit. +- Link smtp static so that it works even if the libraries are messed up. +- If mail host is not found, retry with local host in smtp. +- Added slot and stream to the bootstrap record processing. +- Do offline on tape cartrige for unmount command. This can be turned off + by the user in the config file. OffLineOnUnmount in Device resource. +- Implemented AutoChanger = yes/no in Device resource. + +=========================================================================== +2002-07-07 Release 1.22 +- All the basic Restore code to handle the boostrap file is + now implemented with the exception of the Console Restore command. +- Retained compatibility with previous Restore providing no + bootstrap file is specified. However, the old code (JobId based) + will go away in a future release. +- Fixed a number of segmentation faults in the Console program due + to printing of NULL pointers -- thanks to Chuck and his Sun for + finding and reporting them -- mostly in ua_output.c. + + From kes25Jun02 +- Null pointers now are printed as *None* if NPRT() is used. +- At the request of Phil, all resources are now chained in in the + order they appear in the config file. +- Implement Bootstrap record in the Director's config file, which + allows you to specify a predefined bootstrap file for Restore Jobs. +- Allow Bootstrap on the Restore record. This is deprecated. +- Implemented code to pass the Bootstrap file, if defined, to the + File daemon, then from the File daemon to the Storage daemon. +- Added ability to set Bootstrap file in the Console when running a Restore. +- Allow scan_error() routine to be passed to lex_open_file(). This permits + using lex in the Storage daemon without worrying that it will ABORT on + a syntax error. More work is needed to direct the error messages correctly. +- Improved error messages a bit when config syntax errors are found. +- Tested and corrected some errors in match_bsr.c +- Removed askdir.c from bls and bextract by defining dummy entry points. +- bextract now has bootstrap pretty well integrated. +- Changed bextract ABORTs into FATAL and exit(1) or ERROR_TERMINATE. + More user friendly. +- Eliminated at least one lld and replaced it by edit_uint64() +- Eliminated a few more _PROTO()s. +- Corrected a problem with the SQL for in query.sql for + Listing Volumes to Restore All Files + + From kes22Jun02 +- Additional documentation. +- Reduce the time the jcr mutex is locked in lib/jcr.c +- More null pointer printing fixes in lib/parse_conf.c (debug output only). +- Added daemon filename to Kaboom message so I know what daemon died. +- Fix big bad bug introduced in watchdog.c last update that caused + a segmentation violation (forgot to check for NULL pointer). +- Add a bit more info to bad returns from Stored when starting + a job fails. + + From kes21Jun02 +- Fixed scan_to_eol +- Fixed backup scanning forgot one T_STRING -> T_UNQUOTED_STRING +- changed all rwlock_t to brwlock_t to avoid conflicts with + Solaris library. +- Added NPRT() macro to allow printing of NULL pointers, which + segment fault on Solaris. +- Cast printing of pid_t to int for Solaris compiler. + + From kes20Jun02 +- Added expect argment to lex_get_token(). +- Added tree.c and tree.h to lib directory. + + From kes19Jun02 +- Improvements to the bootstrap compiler +- Implemented first cut of bootstrap code in the Storage daemon +- Modified the authentication code to be more explicit during + failures. +- Added a few more debug message numbers with more arguments (Dmsg10, ...) +- Added more and more precise error messages when authentication fails. +- Implemented new "expect" codes in the lexical scanner that allows + the caller to specify what he wants. +- Added integer, positive integer, 64 bit integer, and integer ranges, + and name scanning to lex. +- Implemented new lex code in parse_conf.c, this reduces significantly + the code. +- Hopefully fixed a watchdog race bug that caused the watchdog to time + out a line after 1 hour rather than 6 days. + + From kes15Jun02 +- Implemented a Bootstrap file parser and matcher. +- Implemented first cut of bootstrap code in bextract +- Started clarifying different termination codes. +- Added M_ERROR_TERM to immediately terminate the daemon -- no dump. + Also changed a few termination codes as appropriate. +- Fixed create_jobmedia_record() to include all the fields such as + StartFile/EndFile, StartBlock/EndBlock. +- Print user friendly message when query mode ends. +- Fixed ls style print routines (bextract, bls, restore) to check + buffer size, to print the link if any, and to used edit_uint64() + instead of %lld. +- Moved scan_to_eol() and s_err() to lex.c to avoid dragging in + parse_conf.c for new bsr scanning code. +- New files: bsr.h, parse_bsr.c and match_bsr.c. parse_bsr.c parses + a Bootstrap file, and match_bsr.c matches a bsr against a tape. +- use strcasecmp() in several places instead of lcase(). +- Add first cut of bootstrap to bextract. +- Added File Size limit -- writes EOF after limit exeeded. + +=========================================================================== +2002-06-12 Release 1.21 +- Fixed several problems with filenames being truncated if + they contain spaces. Thanks to the user that reported this. +- N.B. To get the new queries, after the "make" and + "make install" you must explicitly replace the + existing query.sql by query.sql.new. query.sql is a + user configuration file, so it is not overwritten. +- Added GZIP compression of Included files. +- Added additional fields to tape SOS record permitting better + recovery with no database. +- Be sure to remove any !terminate statements you may have + in your config files. +- MUST UPDATE ALL DAEMONS due to protocol change to handle new + tape format. + + From kes11Jun02: +- Updated examples directory with my most recent config files. +- Modified the M_TERM meaning to mean that Bacula has + terminated in error without producing a dump. Previously, + it meant that Bacula terminate (with or without error). + You should remove any !terminate from your messages + resources. +- Changed the order of the libraries in the link so that + tcp wrappers link properly. Thanks Phil for reporting this. +- A user reported that filenames containing spaces were truncated + in bextract. This was indeed the case. They were also truncated + in Restore as well as in Verify. They are, hopefully, all fixed + now. +- Made a few error conditions in Verify non-fatal. +- Modified the Console "query" command to permit multiple SQL + statements per command. +- Implemented three new "query" options: + List last 10 Full Backups for a Client + List Volumes used by selected JobId + List Volumes to Restore All Files + To use them, simply type "query" to the Console program, and + select the one you want. +- Modified bextract to default to extracting all files (i.e. /). +- Cleaned up the code in bextract a bit. + + From kes03Jun02: +- Improve Verify command to include files examined. +- Eliminate fcntl() locking of the console file and replaced + it with a pthreads mutex. +- Note Director - SD protocol is changed to handle new tape + information (Fileset, JobType, JobLevel). +- Create config.out that contains a summary of ./configure + to see what you previously configured: "cat config.out" +- Implemented GZIP compression. Added addition syntax to + Include { } resource to permit setting of any GZIP compression + level: + compression=GZIP + compression=GZIP1 + ... + compression=GZIP9 + + Level 1 is minimum compression and level 9 is maximum. Using just + GZIP gives the default (level 6). +- Enhanced the tape format to include the unique Job name, FileSetName, + JobType, and JobLevel in the Start/End of Session records. The code + detects that tape level difference and acts accordingly. You can + add data in the new format to old tapes. +- Fixed an incorrect display message in the prune command. +- Began implementation of Verify Volume and Verify Data. +- Cleaned up File daemon restore.c a bit ensuring that termination + cleanup is done and all possible Emsgs are converted to Jmsgs. +- Modify bls.c to use common setup routines. This reduced the big + code duplication that creeped in when I added different listing + options. Also, changing tapes is now handled uniformily in a subroutine. + +=========================================================================== +2002-05-27 Release 1.20 +- Started documenting Catalog Pruning and Recycling. + Added catmaintenance.html and recycling.html +- Fixed the query command bug. +- Implemented PID files to prevent two copies of Bacula + from running at the same time. Be sure you --with-pid-dir + points to a working directory. +- Modified ASSERT() to cause a segmentation violation. This + permits a core dump. +- Worked on gnome-console. It paints better, it tells you if it + is ready to accept a command or processing one, and it is + almost entirely GTK+ (rather than GNOME, I'm removing GNOME + a bit at a time). +- Limit to 100 the number of tape labeling errors in a single Job. +- Add some additional ASSERT()s to the database routines. I don't + like ASSERTs but they do catch bugs. +- Tested and debugged recycling of Volumes. Needed to change + the Director-SD protocol slightly. +- Removed the experimental SIGHUP in the Director as it is a + potential source of errors. +- Added Level, Pool, Messages, and Storage keyword/value scanning + to the Schedule Run record. +- Improved printing of Schedule resources with "show schedules" +- Do not autoprune Jobs/Files if the Job errs. +- Updated newvol() to pass back the updated Media record. +- Fixed the "update pool" command, which was broken during a much + earlier code reorganization. +- Improved a few of the pruning messages. +- Removed readline inclusions from gnome-console (hang over from console). +- Make Jmsg use daemon message handler if no message handler is defined. + This is always the case in the SD and FD. +- Started removing __PROTO(). With C++ prototypes are manditory, so why + keep around legacy code. +- Added a good deal of message internationalization -- more to be done. +- Move cached Path into mdb structure and use POOLMEM. +- Fix verify bug introduced last update causing incorrect diffs + by turning off autopruning. +- Started adding code to distinguish Errors from Fatal Errors. +- Errors are now counted in message.c for a Job. +- More POOLMEM cleanups. +- Implemented Automatic pruning. +- Implemented Automatic recycling of Volumes. +- Added PruneJobs/Files/Volumes=yes or no to Job resource. If set, + it forces the specified pruning. +- Modified rwlock to accept multiple nested write lock + requests. +- Modified the cats directory to use the new rwlock mechanism + in place of P() and V(). +- Defined db_lock(mdb) and db_unlock(mdb). They are in effect + transaction locks. +- Add CVS Id's to most files. +- Made first cut at AutoPrune +- Added new autoprune file that is called at the end of + each Job. It then decides when and what to prune and + calls the UA prune routines. +- Modified Run (in Schedule resource) to permit overrides of + Level, Pool, Storage, and Messages. (not tested). +- Added more POOLMEM in place of char. +- Implemented daemon pid files. This prevents multiple + daemons from running simultaneously. You can run multiple + daemons if they listen on different ports. +- Documented the Schedule resource a bit better. +- Began gently adding a POOLMEM type (perviously void). + For the moment it is a #define to char, but long term + it should be its own typedef. +- Corrected a bit of spacing on the status bar of gnome-console +- Added Admin and Archive Job types. +- Implemented multiple Messages resources. Each daemon has + its own message resource, which defaults if not defined. + Jobs may now have different message handlers. +- Cleaned up a bit of duplicate code in backup, verify, and + restore by creating appropriate subroutines in job.c +- Added Type, Client, FileSet, and Level resource record + definitions to the Director. These can be used in place + of the Backup = ..., Verify = ..., ... commands. This needs + documenting. +- Corrected an incorrect message in the prune code and added + the number of Files pruned in the message. +- Corrected several paint problems with gnome-console. +- Added a bit of printout in signal handler during traceback. +- Cleaned up most of sm_check() to be turned on/off by define + in version.h + +=========================================================================== +2002-05-10 Release 1.19 +- Allow the user to select a new period for pruning. +- Lots of additions to the manual -- prune and purge + commands documented. +- Applied Phil's configure.in fix for --prefix, ... +- Fixed bug found by Phil (patch supplied) in updating + MD5 signatures (revert to 32 bit FileId, move "static" + variables into JCR) (catreq.c fd-cmds.c). +- Reverted to using INTEGER for FileId in make_sql_tables + due to a bug in MySQL. +- Change editing code to %d for FileId. +- Remove sqlite in make distclean in cats directory. +- Remove console.conf in console during make distclean. +- Remove gnome-console.conf during make distclean. +- Remove bacula-dir.conf during make distclean. +- Set default level when using Console if none specified. + Bug reported by Phil. +- A simple . command from Console is ignored. +- Change program named from filed to bacual-fd in winmain.cpp +- Change default config file for Win32 in winmain.cpp +- Free namebuf on early return from find_one.c. Bug reported by Phil. +- Modify testfind.c to dump orphaned buffers. +- Removed terabytes from parse_conf.c because of problems with + older gcc compilers. +- Turn off gnome options in gnome-console by constructing empty argv. +- Fixes to Verify when only MD5 differs. +- Insert 0 for MD5 as default rather than space. +- Allow .messages "transparent" command while reading input + in UserAgent server. +- In dird/verify.c ensure that correct filename is printed if only + the MD5 differs. Minor reindenting caused large diff. +- Delete unused code from backup.c +- In filed/verify.c ensure that same algorithm as backup.c is used + to pass back MD5 signatures -- especially for directories and files + that cannot be read. Change dummy filename from X to *MD5-id*. + This dummy value should never be printed. +- Make gnome-console poll Director every 5 seconds for output. + This means that queued up messages are displayed at reasonable + intervals. Delete some unused code hanging around from the tty + console program. +- Begin implementation of prune commands. +- Add command line history to gnome-console. Not yet saved across sessions. +- Fixed some broken URLs in the manual. +- Added JobId type. +- Wrote first cut of "prune files" and "prune jobs". +- Added command line history to gnome-console 2500 lines max. +- Widened store_time() and associated variables to 64 bits using + new btime_t definition. +- Removed GNOME about box and replaced it with + a somewhat crude Gtk+ about box in the gnome-console. +- Widened StartDay in the Job DB record to be 64 bits. +- Changed edit_uint_ to edit_uint64_ everywhere. Much more + descriptive of what is done. +- Removed most llds and replaced them with %s and edit_uint64. + This makes the code a bit easier to read for beginners. +- Added a btime_t typedef which is 64 bits wide. +- Added most of the code needed to do Purge and Prune of + database. Not yet tested. Please do not use. +- Additional config options for Console. +- Started adding code for Automatic Recycling of Volumes. +- Allow arbitrary length filenames in Verify code. +- Fix incorrect filename in Verify code. +- Significant enhancement to number scanning in config parser. +- Requires initializing MySQL tables, or applying cats/alter.sql + to modify Media table. +- Modified Makefile to printer a much more visible + message if the make ends in error. +- Added the Purge value to the VolStatus in the Media table. + This value is set if the Volume is purged. +- Enhanced the db_delete_media_record() routine to delete + all associated records in the database. +- Modified Console to always write to the variable "output" + rather than stdout. This will permit directing output to a file. +- Enhanced the Console configuration file to have a Console + resource. This will allow us to add an rcfile and history file. +- Modified Find_next_vol in catreq.c to search for "Recycle" + volumes if there are none marked Append. Also made Get_Vol_info + return the VolStatus to the Storage daemon. +- Allow upper/lower case match on job level names. +- Added another warning message to the Console "delete media" command. +- Corrected a number of FileId types from uint64_t to FileId_t in + ua_retention.c. +- In ua server close database before freeing JCR (because pointer is + kept in ua and jcr structures). +- parse all numbers as doubles. Do lots of checking for valid number + formats. Allow numbers in scientific form (e.g. 1.5e+10). +- Remove terabyte modifier as it doesn't work in some compilers. +- Fix bug in handling some modifiers. +- Added all necessary code for Recycle to Storage daemon. A Volume + marked Recycle will now be overwritten. +- Filled out the prune command a bit and did some testing. +- Make console accept redirected input. +- Altered the Table definitions to include Recycle, + FileRetention, JobRetention, and AutoPrune. +- Widened StartDay to 64 bits. +- Use JobId_t in more places. +- Added the new table fields to the database record definitions. +- Changed Recycle from string to a binary quantity. +- Added a Version table with a VersionId to detect. + future changes in the database. This should prevent + a Bacula from working with a database that is not in sync. +- Modify Console to accept input from a file. This will permit + the .read command and allow reading a .rc file. +- Added new retention and recycle variables to the Director's configuration. +- The UA subroutines or commands can now be called from core + code because the output routines detect the absence of a + UA socket and direct output to the Job. +- Added a verbose flage to the ua packet to permit reduction of + output while running a UA command (prune) from a Job. +- Did a fair amount of work on the prune command. Prune Volume now works. +- Purge Volume now works. +- Made last changes for integrating prune and purge commands. +- Add -ltermcap to CONS_LIBS when readline is configured. + More work to be done to search for termcap. +- Added cats/drop_sqlite_tables.in, which will delete the SQLite database. +- Got CWEB working so that we can compile filesys.w and immortal.w +- Modified depkgs to include cweb. +- Note, CWEB is not yet used by the core Bacula code. +- Made cats/alter.sql, which alters an old database to bring it + up to the new format. This only works with MySQL since SQLite does + not have the ALTER SQL command. +- Changed the old StartDay field in the db to be JobTDate, which is + the latest time/date in widened Unix time format that the Job ran. + This value is used when doing pruning. +- Added code in cats/sql.c to verify that the database internal version + corresponds to the db version compiled in Bacula. It is set to 1 currently. +- Lots of changes to cats to bring the SQL up to date with the new + retention period changes. +- Added Console command code to permit changing a Volume's retention period. +- Removed old code that used date_encode() and replaced it with widened + Unix time(). +- Started modifying Message resource scanner so that we can have multiple + message resources. Much more work to be done. +- Moved scanning for time into new library routine string_to_btime(). + +=========================================================================== +2002-04-22 Release 1.18 +- Applied Phil's configure.in fix for --prefix, ... +- Fixed bug found by Phil (patch supplied) in updating + MD5 signatures (revert to 32 bit FileId, move "static" + variables into JCR) (catreq.c fd-cmds.c). +- Reverted to using INTEGER for FileId in make_sql_tables + due to a bug in MySQL. +- Change editing code to %d for FileId. +- Remove sqlite in make distclean in cats directory. +- Remove console.conf in console during make distclean +- Remove gnome-console.conf during make distclean +- Remove bacula-dir.conf during make distclean +- Set default level when using Console if none specified. + Bug reported by Phil. +- A simple . command from Console is ignored. +- Change program named from filed to bacual-fd in winmain.cpp +- Change default config file for Win32 in winmain.cpp +- Free namebuf on early return from find_one.c. Bug reported by + Phil. +- Modify testfind.c to dump orphaned buffers. +- Removed terabytes from parse_conf.c because of problems with + older gcc compilers. +- Turn off gnome options in gnome-console by constructing empty + argv. + +=========================================================================== +2002-04-18 Release 1.17 Kern Sibbald +- Ensure that platforms Makefiles are called for clean + and distclean. +- Hide a lot of Makefile messages with @ +- Applied Phil's configure.in patch. Thanks. +- Doc updates, many to clarify points brought up by Phil. +- Applied Phil's make_mysql_tables.in patch. Thanks. +- Made authenticate.c in dird test bnet_send status. +- Make label a bit more friendly with extra info message. +- Add level 200 to debug info in run command. +- Remove old code from findlib/testfind.c so that it compiles. +- Add two minute max wait to cram-md5 authentication. Hopefully, + this will catch non-responding WinNT daemons. +- Allow time and size modifiers to be upper or lower case. +- Turn off old CYGWIN patch for pthread_cond_timedwait() bug that + now causes File daemon hangs on WinNT. +- Fix mount messages for restore. Previous updates to save + broke the restore code. +- By default write fixed block sizes rather than variable block + sizes. My Sony DAT simply does not work (reread failures) with + variable block sizes. +- Data split across tapes was not being correctly restored + (at least on DAT tapes). +- Implement MaximumBlockSize and MinumBlockSize statements in + Storage daemon so user can specify variable block sizes if + desired. +- Return error if block checksum error on read (previously + ignored). +- Fixed some error messages in bls, and in some cases exit(1) + rather than ABORT. There remain ABORTs to be examined. +- Made a local copy of tcpd.h and corrected the function + prototype problem for C++. + +=========================================================================== +2002-04-14 First public release 1.16 Kern Sibbald + - Many intervening changes/updates. + +2001-09-29 Release 1.0 Kern Sibbald + - Fixes to problems found at John's installation. + - See techlogs/kes25Sep01 for details + +2001-09-25 Release 1.0 Kern Sibbald + - Helped John install at his site. + He is backing up one Linux machine and + one Win2000 machine. + +2001-mm-dd Many releases + - Released internally. + +2000-04-09 Release 0.4 Kern Sibbald + - Added a lot of Director configuration code. In + part (a small part), the Director now uses the + bacula.conf file to know what to do. There still + remains a lot to do. + - The file search code is now integrated into the + MySQL database routines, and Bacula is now hooked + into the MySQL database (if so configured). Thus + all the database records are being created, though + there still remains some work in getting all the + details into the records (such as the Storage + coordinates). + - I've defined how Volume pools work (see manual). + - I've defined error message handling though no code + is yet written. + - The following resources and records are implemented + in the Director configuration file (bacula.conf): + + Director + Name (passed to Storage daemon) + Client + Name, Address, Port + Password (not yet used) + Storage + Name, Address, Port, Password, MediaType + Job + Name + Type (not yet used) + Backup (only one permitted) + Client, FileSet + Storage + Schedule, Messages, Pool (not used) + FileSet + Name + Include (options ignored) + Exclude (no options) + Schedule (not used) + Name + Messages (not used) + Name + Debug, syslog, mail, append (not used) + Catalog + Name + Address, Port, Password (not used) + Pool (not used) + Name + PoolType, MediaType (not used) + + - Added Storage configuration routines. + Director + Name, password (verified against those sent by Director) + Storage + Name, Address, Port (address, port must correspond to Director's values) + Password, MediaType + Device + Name, MediaType (must correspond to those sent by Director) + Archive Device (defines device name) + + +2000-03-10 Release 0.3 Kern Sibbald + - Implemented new base64 encoding for attributes. + This eliminates some of the error messages in the + sprintfs on the Solaris due to different stat() sizes. + - Implemented the first cut of the file search routines for + the File daemon. The exclusion lists work including wild + cards. There is a lot of work to be done, but the basic + structure is now in place (wild cards do not yet work for + the include). + - Completed writing the memory pool code. Now I must + implement it in the daemons. + - Modified the bacula start/stop script so that it has a + better chance of working on SGI and Solaris. + - The catalog code has not been converted to the new file + search code. + +2000-03-06 Release 0.2 Kern Sibbald + - Integrated John's fixes. + - Made Makefiles self configuring when Makefile.in is changed. + - Added a runit script in the top level that runs bacula + - Added a "bacula" script in the top level directory that + starts and stops the File daemon and the Storage daemon. + +2000-03-03 Release 0.1 Kern Sibbald + - Basic Director, File, and Storage daemons. + Standalone Catalog services using MySQL + +2000-01-22 Kern Sibbald + * Setup basic file structure with ./configure diff --git a/docs/techlogs/kes-1.37 b/docs/techlogs/kes-1.37 index 8272bfc7..21090459 100644 --- a/docs/techlogs/kes-1.37 +++ b/docs/techlogs/kes-1.37 @@ -3,7 +3,504 @@ General: +Changes to 1.37.36: +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. diff --git a/docs/techlogs/nb-1.37 b/docs/techlogs/nb-1.37 index 8df6fb5d..c9715dec 100644 --- a/docs/techlogs/nb-1.37 +++ b/docs/techlogs/nb-1.37 @@ -4,6 +4,24 @@ General: Changes to 1.37.*: +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 -- 2.39.5