-Kern;;;2007/1/4;;;14:30
+Kern;;;2006/10/30;;;14:30
-Bacula Version 2.0.0 has been released to Source Forge.
-There is an English Press Kit, written by Dan Langille at:
-
- http://www.bacula.org/about/press/presskit200.html.en
+ Release Notes for Bacula 1.38.11
-and a German version, translated by Arno Lehmann at:
+ Bacula code: Total files = 423 Total lines = 139,479 (*.h *.c *.in)
- http://www.bacula.org/about/press/presskit200.html.de
+Warning for version 1.38.8 and greater:
+- The Windows FD no longer automatically folds the case
+ in wild-card comparions. To get the same behavior as before,
+ you must explicitly use "Ignore Case = yes" in your FileSet.
+- Backslashes are no longer permitted in File directives
+ (typical error for Windows users), unless the string is
+ enclosed in double quotes, in which case, the backslashes
+ must be doubled.
-;;;
+Major Changes for 1.38.11
+- Add test for IRIX64 as OS
+- Fix scheduler hang during clock shift (due to missing unlock())
+- Minor tweaks to bregex.c
+- Fix to block.c to correctly check for DVD number of parts.
+- Fix to dev.c to permit DVD seeking in spool file. Corrects
+ label rewriting problems.
+- Clarify license for techlogs (GPL). I consider them "part" of
+ the source code of Bacula.
+- Use FDL license for developer's manual, French translation, German
+ translation, bimagemgr manuals (same as the main manual), and
+ the web site.
+
+New features for 1.38.11:
+- None
+
+====================================================================
+
+Major Changes for 1.38.10:
+- This is a primarily a bug fix release, with the following bugs being
+ resolved #570, 609, 611, 613, 614, 617 as well as other bugs not
+ reported in the bugs database. See below for details.
+- The bconsole "reload" command should now work properly in virtually
+ all situations thanks to the efforts of a number of people (Eric,
+ Christopher, and myself).
+- There is an untested fix to eliminate the scheduling problems (either
+ no job run or the same job run twice) during sudden clock shifts (daylight
+ savings time change).
+- The manual has been released under the GNU Free Documentation License (FDL).
+ The major difference is that this removes the prior restriction on
+ commercial reproduction of the manual.
+- Fixed a race condition (thanks to Christopher) on dual processor machines
+ that caused jobs to block when starting with the SD.
+
+New features for 1.38.10:
+- None
+
+Fixes for 1.38.10:
+08Jun06
+- Modify setting ACLs to suppress error message if the file is a
+ symbolic link since the file linked to may not yet be created,
+ and symbolic links really should not have attributes ...
+06Jun06
+- Complete implementation of acl.c error message during restore.
+ During backups, errors getting acls are silently ignored, as was
+ previously the case.
+04Jun06
+- Modify configure.in to check for typeof().
+- Better detection of postgresql installation if pg_conf works.
+- Fix RescheduleTimes = 0 bug (should not reschedule).
+- Down port from 1.39: fixes for reload, autochanger error messages,
+ scheduler fixes for reload and day light savings change,
+01Jun06
+- Implement partial error messages for src/filed/acl.c
+- Fix return code to fail when doing update barcodes and
+ Pool resource is not found. This previously caused Volumes
+ to be labeled as cleaning tapes.
+- Small updates to projects file.
+26May06
+- Prevent DVD code from rewriting label if the device cannot be
+ opened read/write.
+- Fix Dir/SD run race in migrate.c, verify.c, and restore.c
+- Update projects file.
+24May06
+- Applied patch posted by Jaime Ventura to bug #570 to correct failure
+ of restarted jobs to complete (due to a destroyed pthreads conditional
+ variable used by the message thread).
+- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes
+ set to zero.
+- Apply patch from John Goerzen bug #611 to fix bad manual links in the code.
+- Apply patch from Rudolf Cejka bug #614 to removed trailing
+ colons in query.sql file.
+- Apply patch from Rudolf Cejka bug #613 to correct prunning of files
+ not to create orphans.
+- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime
+ in restore long listing.
+- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead
+ of incorrect MarkedId.
+- Apply patch from adioso bug #616 to correct text in manual (replace
+ Director with File daemon).
+21May06
+- Move DIR "run" command to SD before starting the message thread
+ as suggested by Cristopher Hull to avoid a race deadlock from
+ two threads using the bsock structure.
+- Modify LICENSE to correct some problems pointed out by Debian.
+05May06
+- Correct EOF with no \n lex.c problem.
+- Add additional INFO messages if autochanger cannot be used.
+- Add Eric Bollengier's lex error handler fix, which corrects most
+ of the reload problems.
+
+
+New features for 1.38.9:
+- A "Dir Status" button in the Gnome console.
+
+Fixes:
+This is mainly a bug fix release containing a collection of
+ minor fixes for 1.38.8.
+- Added code to strip backslashes from Windows filenames during
+ a restore.
+- Corrected Win32 License to use the correct LICENSE file.
+- Corrected the buffer count and bytes reported in the heap
+ statistics.
+- Fix a number of incorrect strings marked for translation, when
+ they should not be (e.g. commands).
+- Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob
+ Patches supplied by user in bugs #608 and #599.
+- Use most recent of st_ctime and st_mtime in restore tree DIR
+ listing. This fixes some problems with Win32 printing incorrect
+ values.
+- Correct the clock shift comm time calculation between the DIR
+ and the FD. It was added rather than subtracted.
+- Strip all backslashes in filenames to be restored on Win32
+ machines -- the names should all be in Unix format, and if
+ there are any backslashes it is most likely due to an improper
+ FileSet definition, and the files will not otherwise be
+ restorable.
+- Delete src/win32/License.txt
+- Modify installer to install LICENSE
+- Add back ua_label barcode fix from Rufolf Cejka.
+- Add 'Dir Status' button to the gnome console.
+- Display heap stats in Storage daemon without debug level.
+- Implement using pg_config for finding PostgreSQL files.
+ Fixes bug #600. Patch supplied by user.
+- Remove -t option from mktemp in mtx_changer.in and use
+ working directory. Fixes bug #578.
+- Update job start time after the any run before job so that
+ files created by the script are only backed up once. Fixes
+ bug #599.
+- Strip trailing newline only from filenames entered in
+ the restore command when reading a file. This permits
+ the user to enter filenames with trailing spaces. Fixes
+ bug #549. The user supplied a patch that I modified slightly.
+- Use the most recent time (st_mtime, st_ctime) in the dir
+ command in restore. This gives the user a better idea of what
+ the newest file really is. This fixes bug #574. The fix
+ was suggested by the user.
+- Remove the -f option from the chown in Makefile.in for more
+ portability.
+- Change setting the group in Makefile.in to use chgrp for
+ more portability.
+- Implement a Bacula read/write lock for Python rather
+ than using the Python lock to avoid recursive problems.
+- Correct the uninstall directory names in filed/Makefile.in
+ as reported by a user.
+
+
+New features for 1.38.8:
+- Regex, RegexFile, and RegexDir are now implemented in the
+ Win32 FD. However, this is new experimental code that is
+ largely untested. It may not work, it may cause memory
+ leaks, or it may even crash the FD. Please test carefully
+ before using.
+- On Linux/Unix systems there are two new programs, bregex
+ and bwild that allow you to test regular expressions and
+ wild-cards. These programs are installed with the other
+ binaries. They are not available on Win32 systems.
+
+Fixes:
+- See below.
+
+New Features from pre-1.38.8 releases:
+- For autochanger get Scratch tape if in autochanger if
+ no appendable Volumes are available.
+- New virtual disk autochanger. See scripts/disk-changer for
+ documentation.
+- New optional Device resource directive in SD. 'Device Type =',
+ which may have types: File, DVD, Tape, or FIFO. This can
+ be useful for writing DVDs on FreeBSD where Bacula cannot
+ correctly detect the DVD.
+- Faster restore tree building and uses less memory.
+- The command line keyword job (or jobname) now refers to the
+ name of the job specified in the Job resource; jobid refers
+ as before to the non-unique numeric jobid; and ujobid refers
+ to the unique job identification that Bacula creates for each
+ job.
+- The job report for Backups has a few more user friendly ways
+ of displaying the information.
+- The wait command can now be made to wait for jobids.
+- New command line keywords are permitted in update volume. They
+ are Inchanger=yes/no, slot=nn.
+- Add two new console commands: enable job=<job-name> and
+ disable job=<job-name>. When a job is disabled, it will not
+ be started by the scheduler. If you disable a job and restart
+ Bacula or reload the .conf file, the job will be re-enabled.
+- Add a new Job resource directive "enable = yes|no".
+- There is a new program named regex in the tools directory that
+ allows you to try regular expressions on your system.
+
+Major bug fixes:
+- Fix race condition in multiple-drive autochangers where
+ both drives want the same Volume.
+- Do not allow opening default catalog for restricted console
+ if it is not in ACL.
+- Writable FIFOs now work for restore.
+- ACLs are now checked in all dot commands.
+- Multiple drive autochangers and multiple different autochangers
+ should now work correctly (no race conditions for Volume names,
+ update slots use correct StorageId).
+- Fix bug where drive was always reserved if a restore job failed
+ while in the reservation process.
-Kern;;;2007/1/4;;;14:31
-
- Release Notes for Bacula 2.0.0
-
- Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
-
-==== IMPORTANT Catalog update required =====
-- The database format has been updated from what was used in
- Bacula 1.38.x. You must manually update your database before
- running Bacula 1.39.x or higher. If you are using Bacula supplied
- RPMs this is not necessary as the RPM does it automatically.
- Please backup your previous version of the database before
- running the update. The update script will be automatically
- installed in your scripts directory, or can also be found in
- <bacula-source>/src/cats. It is called:
-
- ./update_bacula_tables
-
- It is necessary to run it only once the first time you move to
- a 2.0.0. Upgrading the Bacula version thereafter does not
- require updating the database again. Depending on the size of
- your database the script make take a bit of time, to run, but
- in general, it should be very fast.
-
-==== IMPORTANT new Win32 install procedure =====
- For Win32 migrations from versions prior to 1.39.0 nothing special
- needs to be done to upgrade. Everything should be taken care of
- automatically. The only thing not done is to delete the old C:\bacula
- directory mostly out of paranoia.
-
-==== IMPORTANT miscellaneous ====
-- The Gnome console program (gconsole) no longer functions as it
- should.More importantly, in restore mode, the restore tree is
- no longer shown in the left pane. I suspect this is due to
- incompatible changes in the GTK+ API, and hence have given up
- on gnome and gtk+, as this has already happened several times
- previously. At some point there will be a new GUI console.
-- The bacula-dir.conf directive Accept Any Volume has been
- removed because it was never implemented. You must delete all
- occurrence of this directive for the Director to run. The Storage
- daemon will automatically accept any valid Volume that you mount.
-- The --mandir ./configure option now points to the top level man
- directory. The man files will be installed under mandir/man8 and
- mandir/man1 as appropriate.
-- You *should* be able to use 1.38.x FDs with version 2.0.0 Director
- and SD providing you do not use any of the new features (runscript,
- data encryption). It seems to work here, but we do not guarantee it.
-- Your Director and SD must be simultaneously upgraded.
-- The restore command no longer uses the MediaType as the primary method
- of finding a suitable Storage device. Normally it will select the last
- device used to write a Volume. If no storage device is defined, it
- will use the old algorithm which selects the first Storage resource
- with the correct MediaType.
-- The MD5/SHA1 hash codes kept in the database are now kept in a binary
- format compatible with the rest of the world. If you are running verify
- jobs, you *must* do an InitCatalog or all files will show an MD5
- difference. Also, authentication uses the new algorithm by
- default, but *should* accept connections from older components (FD) using
- the old non-compatible algorithm. This has been tested, but more
- more testing is still needed.
-- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
- the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
- kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
- This problem may also be present in certain Fedora FC5 kernels.
-- If you have been using the data encryption feature of 1.39.x, please
- be aware that certain combinations of encryption and other options
- with version 1.39.0 through 1.39.26 created Volume data that cannot
- be restored. We strongly recommend that anyone using encryption
- carefully review his/her backups and at a minium do a Full backup
- with 1.39.28 of all encrypted data. Robert Nelson has identified
- and fixed it as follows:
- As of 1.39.27:
- No filters = Works fine
- Sparse = Works fine
- Compression = Works fine
- Encryption = Works fine
- Sparse + Compression = Works fine
-
- Sparse + Encryption = Restore broken
- Sparse + Compression + Encryption = Restore broken
- Compression + Encryption = Restore broken
-
- As of 1.39.28:
- Most combinations work, but some encrypted files are
- not properly restored.
-
- As of 1.39.30:
- All combinations work fine except Sparse+Encryption.
-
- Bottom line, if you are using data encryption, please test restoring
- data to be sure it all works correctly.
-- The current Volume format written by 1.39.22 is different from
- the format written by previous versions. The two formats
- are not compatible. Thus any DVDs written prior to 1.39.22 will
- be unreadable by version 1.39.22.
-- If you previously run a Bacula version prior to 1.39.30, the JobMedia
- data may not be correct for disk Volumes. This can cause incorrect
- seeking in versions after 1.39.30. If you experience what appears to
- be data I/O or integrity errors during restores, please add the
- following directive to your disk DEVICE resource in the Storage
- daemon conf file:
-
- Block Positioning = no
-
- This will turn off all seek requests during restores and avoid
- this problem.
-- VSS for Windows clients is now enabled by default.
-- Do not unload autochanger when doing "update slots"
-- Implement mount command for autochanger, see manual.
-
-New Features in 2.0.0:
-- Turn on disk seek code for restores.
-- There is a partial but reasonable translation of the Bacula
- messages for French. To install it, first configure and build
- Bacula, then as root run:
-
- cd <bacula-source>/po
- make install
-
- If you have your locale set properly you will get the translated
- messages.
-- Bacula now support Migration jobs that are documented in a new
- Migration chapter in the manual
- http://www.bacula.org/dev-manual/Migration.html
-- Data encryption is now implemented and is documented in
- a new chapter of the manual at:
- http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html
-- Additional support for removable devices. See the
- Requires Mount, Mount Point, Mount Command, and Unmount
- Commands in the Storage daemon configuration chapter:
- http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html
- Also see the Edit Codes for Mount and Unmount Directives in the
- same chapter.
-- Switch the Win32 build from using Microsoft C++ to using mingw32
- cross-compiling. The initial work was done by Howard Thomson,
- then tweaked by me. Robert Nelson then totally reworked the
- cross-compiling code so that it not only cross-compiles, but
- also compiles on Visual Studio, and at the same time, he added
- all the current Unix features to the FD, such as selection on
- drives, encryption support, building *all* the tools, ...
-- The Director and Storage daemon have now been ported to Win32.
- This code is working but should still be tested carefully
- before putting into production.
-- Bacula restore and bextract can now extract non-portable Win32 data to
- any client (including Unix/Linux clients). Of course, in doing so,
- the Microsoft specific permissions and ACLs will be lost. Thanks
- to Thorsten Engel for this code.
-- The 260 character limitation for Win32 paths name lengths is now
- eliminated thanks to Thorsten Engel. However, if you are using
- Volume Shadow Copy, please be careful to specify all the paths
- in the bacula-fd.conf file using a full path notation including
- the drive letter.
-- Eric Bollengier wrote new RunScript directives that includes
- the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
- plus a *lot* more, allowing you to control just about every aspect
- of running scripts. See the manual for detailed documentation.
- http://www.bacula.org/dev-manual/Configuring_Director.html#5227
-- SunOS ACLs should now work thanks to a patch from David Duchscher.
-- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
- If this patch is applied, the number of days can be specified with
- "list nextvol days=xx"
- or
- "status dir days=xx"
- This can be used to preview the next scheduled job (and the
- next tape to be used) on Fridays if there are no scheduled jobs during
- the weekend.
-- From Eric Bollengier. One can now using the bconsole wait command do:
- wait (wait for all jobs to stop)
- wait jobid=nn
- wait jobuid=unique id
- wait job=job-name
-- Volumes can now be set to Enable, Disable, or Archive. If they
- are not enabled, Volumes will not be mounted.
- Implement update volume enable=(on|off|true|false|archived|0|1|2)
-- Add Catalog message destination in Messages resource that puts the
- job report in the Log database table.
-- Writing/reading DVD Volumes is much more stable -- to the point
- of being useful. Thanks to Richard Mortimer.
-- Add enable/disable job=<job-name>. This command prevents
- the specified job from being scheduled. Even when disabled,
- the job can be manually started from the console.
-- The database Id records should be 32/64 bit independent now. 64 bits
- can be enabled by changing one define and changing the appropriate
- table variable. Normally, you need 64 bits only for FileId.
-- Relative path specifications (i.e. ../xxx) are now permitted in
- the restore cd command.
-- When running multiple simultaneous jobs, most jobs that use spooling
- will now finish faster due to a mutex optimization made by Eric
- Bollengier.
-- Conf files containing UTF-8 marker at the head of the file as well as
- conf files containing Window cr/lf and Mac cr line termination characters
- are now accepted thanks to Robert Nelson.
-- Windows tray status windows are scrollable and resizable.
-- Win32 external script execution is much more flexible -- handles
- spaces in names better, ...
-- Lots of DVD fixes -- writing DVDs is now reported to work.
-- Fix opening of database in a restricted console to respect
- any Catalog ACL.
-- Much better automatic handling of multiple database catalogs in
- the restore command.
-- Permit multiple console/director resources in bconsole.conf.
- patch from Carsten Paeth calle@calle.in-berlin.de
-- Character substitution in Job/JobDefs WriteBootStrap.
- from Eric Bollengier.
-- Apply patch supplied in bug #656 to pass priority field
- in the run dialog to the Director in gnome console.
-- Add support of encrypted data stream to bscan from Eric.
- display data_len instead of data content (may be binary).
-- Add Enabled=xxx on update slots command.
-- Add host:port to connect failure messages to FD and SD from Dir/
-- Add WhereACL to console ACL list. If nothing is specified, only
- the default is permitted for restore. Otherwise, *all* allows any
- path, or you can specify permitted paths. This should allow control
- over where users can restore files. This is untested.
-- Install man pages with 'make install'.
-- Add Media.Enabled flag to client backups for dotcmds.c
-- Enforce Media.Enabled=1 for a current restore to work
-- Require restore case 3 to have sqlquery permission to work.
-- Add -n option to bconsole to turn off conio -- used in bweb.
-- The bytes field in the terminated jobs part of the status
- command now reports in KB, MB, ... units.
-- When not descending into a directory, print the File= name that
- triggered it -- makes why not descending a bit clearer
-- Do not unload autochanger when doing "update slots"
-- Implement mount command for autochanger
-- Fix bug #462 incorrect error message printed when client script called
- from File= was not found.
-- Fix bug #558 (waiting for feedback) where Bacula needs too much time to
- do a rewind on Solaris when no tape is in the drive (Solaris does not
- have the detailed errno found on Linux). Added Solaris specific code.
- Note, this may apply to other OSes as well.
-- The examples directory has a new bacula_mail_summary.sh file that
- creates a single email summary of any number of jobs. Submitted by
- Andrew J. Millar.
-- Add nagios plugin to the examples directory. Submitted by
- Christian Masopust.
-- Modify most restore error messages to be queued so that they
- appear at the end of the job rather than mixed with the restore
- listing where they could be "lost".
-- Apply patch supplied by user (slightly modified) to fix
- correct detection of holes in block devices and FIFOs.
- Bug # 506.
-- Added a report.pl program to the examples directory from Jonas Bjorklund.
-- Add two new queries to query.sql provided by Arno. One
- list volumes known to the Storage device, and the other
- lists volumes possibly needing replacement (error, ...).
-- Implement new code for changing userid and group at startup. This
- should get Bacula into the correct groups.
-- Implement support for removable filesystems -- device type directive
- and mount, unmount directives.
-- Transfer rates are now presented in a more readable format thanks
- to a user submission.
-- SD is now aware of what volumes are mounted. More information is printed
- in the Status report. You must take much more care now to unmount
- devices prior to removing tapes that Bacula has open or prior to
- changing a magazine. Don't forget to do a mount afterwards or the
- device will be blocked.
-- The Pool Maximum Volumes directive is now respected in all places.
-- A Storage device can now be specified in a Pool resource. It will override
- all other Storage specifications.
-- Most but not all directives accept true/false in place of yes/no.
-- A patch from Karl Hakimian that reads JobIds, FileIndexes
- from a database table for restore.
-- There are a number of new tables. Some such as the Location table are
- designed for user use in doing Volume Management software.
-- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
- accept time qualifiers.
-- Implement jobuid to replace old usage of job in keywords as
- suggested by Eric Bollengier.
-- Implement write variables for Python to set Priority (anytime), and
- Job Level, only during JobInit event.
-- Use the keyword ujobid to mean the unique job id; job or jobname
- to mean the Job name given on the Name directive, and jobid to
- be the numeric (non-unique) job id.
-- Allow the SD to use multiple drives during a backup/restore (only
- one at a time).
-- Integrate addition of line count limitation to bsmtp -l from
- Sebastian Stark <stark at tuebingen.mpg.de>
+
+Minor bug fixes:
+- See below:
+
+Release 1.38.8 (14Apr06)
+14Apr06
+- Correct Makefile for Solaris /bin/sh
+- Correct mtx-changer.in for Solaris /bin/sh
+- Abort if a conf resource does not have a Name =
+12Apr06
+- Change the name of the regex program to bregex.
+- Add the bwild program to the tools directory. It is similar
+ to the bregex program.
+- Implement create bregex.h and bregex.c in src/lib from the
+ Python regexp program.
+- Use the new bregex.c to implement Regex expressions on Win32.
+11Apr06
+- Modify Makefile to change the permissions on Working Directory
+ to 770 if the directory is created.
+- Do not fail the Makefile if changing the permissions or
+ owner/group on WorkingDir fails.
+- Correct the old recycling algorithm so that Scratch Volumes
+ are selected when looking for a Volume in the changer.
+- Correct a typo in the Verify SQL reported by Joe Park.
+10Apr06
+- Remove automatic case folding on Windows FDs. You must
+ explictly use the 'Ignore Case = yes' option.
+- Remove the code added to 1.38.6 and 1.38.7 that pulls a
+ scratch volume in an Autochanger early in the 'recycling'
+ algorithm.
+08Apr06
+- Tweak license to include Microsoft restrictions.
+- Move mysql.reconnect to after real_connect(). Thanks to
+ Frank Sweetser for the patch.
+- Disallow a backslash in a File = directive (Windows junk)
+ unless the string is quoted.
+- Apply Eric's patch to ua_label.c so that daemon protocol
+ is not translated.
+
+Release 1.38.7 (06Apr06) released 07Apr06
+06Apr06
+- Remove timed wait for VSS on Win2K3 as it is not yet
+ implemented.
+- Correct bacula.in script to reference bacula-ctl-xx in the
+ sysconfig directory rather than the bin directory.
+
+Release 1.38.6 (28Mar06) released 29Mar06
+28Mar06
+- Back port from 1.39 fixes to lib/jcr.c to use foreach_jcr()
+ and new jcr chain locking.
+26Mar06
+- Fix a long standing bug in the bacula start/stop scripts.
+- Attempt to add the new bacula-ctl-* files to the rpm.
+- Switch to using typeof() for list traversing to avoid
+ as many FC5 g++ compiler warnings as possible.
+25Mar06
- Split the bacula start/start script into four files:
bacula -- starts and stops calling other scripts
bacula-ctl-dir -- starts/stops the director
bacula-ctl-fd -- starts/stops the File daemon
bacula-ctl-sd -- starts/stops the Storage daemon
-- Remove automatic case folding on Windows FDs. You must
- explicitly use the 'Ignore Case = yes' option.
-- Implement wild program in tools directory for testing
- wild-cards. Almost identical to the regex program.
-- Use the new bregex.c to implement Regex expressions on Win32.
-- Apply patch from Christopher Hull
- - Allow multiple connections to database with different
- parameters.
- - Invalidate the scheduler when doing a reload. Fixes seg
- fault, but still 60 second window.
- - Additional info in Reschedule message.
- - Use set_jcr_job_status() everywhere to prevent loss of
- cancel, error.
- - Display peer IP in FD if error from connecting DIR.
- - Don't increment file count for DIRBEGIN.
- - Replace illegal characters in Win32 filename by _.
- - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
- - Hash hard link filenames rather than linked list (performance).
- - Fix for security failure in chdir on Win32.
- - Add CreateDirectoryA/W win32 API entry points.
-- programs to duplicate Bacula's base64 algorithm using standard
- routines. This fixes bugs #296, and 565. Patch submitted by
- author of bug #565.
-- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
- Hull.
-- Modify LICENSE to correct some problems pointed out by Debian.
-- Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support.
- O_NOATIME is a open() flag which makes it possible to read a file without
- updating the inode atime (and also without the inode ctime update which
- happens if you try to set the atime back to its previous value). It also
- prevents a race condition when two programs are reading the same file, but
- only one does not want to change the atime. It's most useful for backup
- programs and file integrity checkers (and bacula can fit on both
- categories).
- You enable it in the Bacula FileSet Options resource by setting:
- noatime = yes
- The effect of this option is similar to the keepatime option except
- it is more efficient and avoids modifying ctime.
-- Implement a pile of new man pages contributed by Jose Tallon.
-- Modify the database format for handling Migration jobs:
- Add PriorJobId, RealEndTime to Job table
- Delete MAC table
- Remove Stripe from JobMedia record (not used, wasting space)
- Add ScratchPoolId, RecyclePoolId, Enabled to Media record
- Add Cost to Location table.
- Enabled to Media table and Location table.
-- Security: harden authentication failure in FD by single threading errors
- and forcing a 6 second wait.
-- If using GCC (actually g++) add the following compiler flags
- -fno-strict-aliasing -fno-exceptions -fno-rtti
-- Turn on new bsnprintf() code. The reason for this code is to
- eliminate the security problems associated with using the
- system libraries print routines.
-- Implement job report that indicates where Storage and Pool
- came from -- with overrides and Pool storage and NextPool,
- it is all very complicated.
-- Add more detail (Storage, Device) to list of volumes printed
- for restore.
-- Add new VOLMGMT message class. No messages are yet sent with this
- class.
-- Improved Bacula rescue procedures -- see the Disaster Recovery
- chapter of the manual
-- Add spooling/despooling info in status output of SD.
-- Add Comment field to llist of a volume.
-- Allow true/false in many but not all yes/no directives.
-- The Bacula source code is now copyrighted by the Free Software
- Foundation Europe. The Developer's Guide documents the new procedures,
- and the LICENSE file has been updated.
-- Apply Jaime Ventura's patch that implements the Messages resource
- Mail On Success directive.
-- The Client returns its Version string, which is printed in the Job
- report.
-- The Client returns whether or not VSS and Encryption are used, which
- are printed in the Job report.
-
-Additional Features Added for Win32:
-- Added DriveType directive to the Director's Include Option FileSet
- resource. Allowed values are: fixed, removable, cdrom, and remote. There
- is only an implementation for Windows because it is the only platform that
- has the concept of drives.
-
-- Adds EnhancedWild directive to the Director's Include Option FileSet
- resource. Allowed values are: yes and no.
-
- When EnhancedWild is enabled then the processing of the
- Wild, WildDir and WildFile is changed in the following ways.
-
- Patterns conform to Posix
- \ is not a special character in character classification []
- To match a - it must be the first or last character
- To match a ] it must be the first character
-
- fnmatch option FNM_FILE_NAME is specified * doesn't match a /
- so it won't match multiple directory levels in a path
-
-- Relative WildFile patterns (ones without a leading /) match
- against the filename portion. This in combination with the
- FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
- abc*.def work as expected.
-
-- Adds support for the shell's feature of brace expansion.
+- Create datestyle fix for PostgreSQL. Fixes bug #574.
+- Correct editing of JobId from int to int64 in fd_cmds.c
+- Eliminate FileSet name race with bash_spaces() and multiple
+ threads by bashing in a local.
+- Fix error return from 'use storage' to print a correct error
+ message rather than nothing.
+- Correct false re-read last block error message when two jobs
+ are simultaneously writing at the end of a tape.
+- Simplify exit conditions in the reserve.c code to avoid
+ possible non-release of reservation_lock().
+- Suffle lock order in reserve to avoid deadlock between
+ reservation lock and device mutex.
+- Add Thorsten's VSS timeout code to 1.38 branch.
+- Initialize jcr mutex before first use. Thanks to Thorsten for
+ tracking this down for me !!!! as it broke the Win32 build.
+- Integrate addition of line count limitation to bsmtp -l from
+ Sebastian Stark <stark at tuebingen.mpg.de>
+- Implement regex test program in tools directory.
+- Attempt to fix time problem with bsmtp with foreign langs.
+- Add strip_trailing_newline() submitted by user.
+
+Release 1.38.6 beta6 16Mar06
+- Fix bug #537 to allow arbitrary time to mount a volume for
+ restore, if polling is turned on.
+- Disallow multiple storage specifications for a job. Should fix Arno's
+ problem.
+- Add back a missing store of poolid in jr.poolid.
+- If dir_user or dir-group is specified in ./configure apply it to
+ the working-dir. Fixes bug #533.
+- If rescheduling a job cancel the previous incarnation with the SD.
+ Fixes bugs #566 and 557.
+- Fix bug #567 do_message() definition type conflict.
+
+Release 1.38.6 beta5 14Mar06
+- Add more jcr methods and make mutex and use_count private.
+- Create lock/unlock methods for jcr.
+- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading
+ records to get to seek position.
+- Integrate patch from bug #561 to correct conio.c signal definitions.
+- Fix Rescheduling failed Jobs. Ensure that SD message thread
+ terminates correctly by doing pthread_kill(). Do not destroy
+ SD cond wait variable between executions of the job. Use local
+ mutex for cond variable to avoid blocking jcr chain. Fix poor
+ use of jcr use count in jobq.c for restarted jobs.
+- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in
+ lib/jcr.c -- prevents locking the jcr chaing.
+- Apply patch from bug #564, which corrects listing volumes with
+ multiple autochangers. Apply same fix to next volume list.
+- Fix bug #562 where restore bootstrap file is not unique.
+- Use new routine lock_reservations() to lock the reservations
+ system, and call it while looking for a volume in askdir.c.
+ This could possibly fix bug #543.
+- Stop SD command loop if job is canceled.
+
+Release 1.38.6 beta3 4Mar06
+04Mar06
+- The po files should now be current.
+- Fix new sql_use_result() code to properly release the
+ buffers in all cases.
+- Convert to using new Python class definitons with (object).
+- Use the keyword ujobid to mean the unique job id; job or jobname
+ to mean the Job name given on the Name directive, and jobid to
+ be the numeric (non-unique) job id.
+- Allow listing by any of the above.
+- Add the user friendly job report code for reporting job elapsed time
+ and rates with suffexes.
+- Add Priority and JobLevel as Python settable items.
+- Use TEMPORARY table creation where the table is created by
+ Bacula.
+- Add new code submitted by Eric for waiting on specific jobid.
+- Add ACL checking for the dot commands.
+- Fix restore of writable FIFOs.
+- Fix a bug in bpipe where the string was freed too early.
+
+26Feb06
+- Fix bug reported by Arno listing blocks with bls
+- Update the po files at Eric's request.
+
+Release 1.38.6-beta2 25Feb06
+25Feb06
+- Add sql_use_result() define.
+
+Changes to 1.38.6-beta1
+- Don't open default catalog if not in ACL.
+- Add virtual disk autochanger code.
+- Add user supplied bug fix to make two autochangers work
+ correctly using StorageId with InChanger checks.
+- Correct new/old_jcr confusion in copy_storage().
+- Remove & from Job during scan in msgchan.c -- probably
+ trashed the stack.
+- When getting the next Volume if no Volume in Append mode
+ exists and we are dealing with an Autochanger, search
+ for a Scratch Volume.
+- Check for missing value in dot commands -- bug fix.
+- Fix bug in update barcodes command line scanning.
+- Make sure Pool Max Vols is respected.
+- Check that user supplied a value before referencing
+ it in restore -- pointed out by Karl Hakimian.
+- Add Karl Hakimian's table insert code.
+- Don't ask user to select a specific Volume when
+ updating all volumes in a Pool.
+- Remove reservation if set for read when removing dcr.
+- Lock code that requests next appendable volume so that
+ two jobs to get the same Volume at the same time.
+- Add new Device Type = xxx code. Values are file, tape,
+ dvd, and fifo.
+- Preserve certain modes (ST_LABEL|ST_APPEND|ST_READ) across
+ a re-open to change read/write permission on a device.
+- Correct a misplaced double quote in certain autochanger
+ scripts.
+- Make make_catalog_backup.in a bit more portable.
+- Implement Karl Hakimian's sql_use_result(), which speeds
+ up restore tree building and reduces the memory load.
+- Correct a number of minor bugs in getting a Volume from
+ the Scratch Pool.
+- Implement additional command line options for update Volume.
+- Don't require user to enter a Volume name when updating
+ all Volumes in a pool.
+
+Release 1.38.5 released 19Jan06:
+- Apply label barcodes fix supplied by Rudolf Cejka.
+- Modify standard rpm installation to set SD group to disk
+ so that SD will by default have access to tape drives.
+- Allow users to specify user/group and start options
+ for each daemon in /etc/sysconf/bacula file.
+
+Changes to 1.38.4 released 17Jan06:
+- The main changes are to the Director and the Storage daemon,
+ thus there is no need to update your File daemons. Just the
+ same, I do recommend running with the release 1.38.3 Win32
+ FD or later.
+- Add two new queries to query.sql provided by Arno. One
+ list volumes known to the Storage device, and the other
+ lists volumes possibly needing replacement (error, ...).
+- Add periodic (every 24 hours) garbage collection of memory
+ pool by releasing free buffers.
+- Correct bug counting sized (for display only) in smartall.c
+- Print FD mempool stats if debug > 0 rather than 5.
+- Correct bug in alist.c that re-allocated the list if the
+ number of items goes to zero.
+- Move the reservation system thread locking to the top level
+ so that one job at a time tries all possible drives before
+ waiting.
+- Implement a reservation 'fail' message queue that is built
+ and destroyed on each pass through the reservation system.
+ These messages are displayed in a 'Jobs waiting to reserve
+ a drive' list during a 'status storage='. Note, multiple
+ messages will generally print for each JobId because they
+ represent the different problems with either the same drive
+ or different drives. If this output proves too confusing
+ of voluminous, I will display it only when debug level 1
+ or greater is enabled in the SD.
+- Add enable/disable job=<job-name>. This command prevents
+ the specified job from being scheduled. Even when disabled,
+ the job can be manually started from the console.
+- During 'update slots' clear all InChanger flags where the
+ StorageId is zero (old Media records).
+- Fix autochanger code to strip leading spaces from returned
+ slots number. Remove bc from chio-changer.
+- Back port a bit of 1.39 crypto code to reduce diffs.
+- Fix first call to autochanger that missed close()ing the
+ drive. Put close() just before each run_program(). Fixes
+ Arno's changer bug.
+- Add PoolId to Job record when updating it at job start time.
+- Pull in more code from 1.39 so that there are fewer file
+ differences (the new ua_dotcmds.c, base64.h, crypto.h
+ hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c
+ util.c. Aside from ua_dotcmds.c these are mostly crypto
+ upgrades.
+- Implement new method of walking the jcr chain. The
+ incr/dec of the use_count is done within the walking
+ routines. This should prevent a jcr from being freed
+ from under the walk routines.
+
+
+Changes to 1.38.3 released 05Jan06:
+- This is mainly a bug release fix. In addition, the multiple drive
+ reservation algorithm has been rewritten.
+- In addition, the method of handling waiting for tapes to be
+ mounted and the mount messages has been modified.
+ (the above two items are a potential source of problems).
+- Simplify code in askdir.c that waits for creating an appendable
+ volume so that it can handle multiple returns from the wait code.
+- Modify the wait code to permit multiple returns.
+- Return a zero when 'autochanger drives' is called and
+ it is not an autochanger.
+- Make rewind_dev() a method taking a DCR as an argument.
+ This permits closing and reopening the drive if the
+ rewind fails as happens if the drive was loaded while the
+ file descriptor was open. This refreshes the file descriptor.
+- Remove the ST_OPENED flag and always rely on fd < 0 for knowing
+ if the device is open or not. This should eliminate
+ Arnos problem.
+- Return error if reserve cannot find at least one suitable device.
+- Make wait_for_sysop() return correct state information.
+- Fix Win32 state file problem. write was not using compat
+ code. This should fix bug #500.
+- Modify gui on command to set only GUI mode and not batch.
+- Modify .messages command to always print messages regardless
+ of the mode.
+- If GUI mode is on, suppress automatic printing of
+ You have messages.
+- Modify restore command in wx-console to set gui on and to use
+ only .messages instead of messages. Hopefully this fixes bug
+ #514.
+- Implement load balancing code with multiple drive autochangers.
+- Rewrite reservation algorithm again. Rename variables to be
+ more logical, add HEARTBEAT with Director, allow cancel of
+ jobs stuck in reservation, add last resourt any_drive.
+- Fix seg fault if user labels a drive directly bug #513
+- Remove quotes around Version as it breaks things.
+- Merge in Aleksandar Milivojevic's mods to the spec file.
+- Apply sparse code fix for raw drives and fifos. Bug 506
+- Thorsten fixed Unicode cd problem with wx-console bug 505.
+- Correct reservation system to do a last ditch try
+ for any mounted volume, then anyone anywhere.
+- Updates to ssh-tunnel from Joshua Kugler.
+- Added a report.pl program from Jonas Bjorklund.
+- Simplify the O_NONBLOCK open() code for tape drives,
+ and always open nonblocking.
+- Do not wait for open() if EIO returned (shouldn't happen).
+- Eliminate 3 argument to tape open().
+- Correct the slot # edited in the 3995 Bad autochanger unload
+ message.
+- With -S on bscan (show progress) do not divide by zero.
+- Make cancel pthread_cond_signal() pthread_cond_broadcast().
+- When dcr is freed, also broadcast dev->wait_next_vol signal.
+- Remove unused code in wait_for_device.
+- Make wait_for_device() always return after 60 seconds of wait.
+- Use localhost if no network configured
+- Eliminated duplicate MaxVolBytes in cat update -- bug 509.
+- Update specs to include mysql4 define.
+- Return rec->FileIndex in dcr->VolLastIndex for normal
+ and partial records in read_record(). This allows bscan
+ to get FileIndex at EOT correct.
+- Fix butil.c to correctly set dcr -- fixes seg fault in bls.
+- Apply patch supplied by user (slightly modified) to fix
+ correct detection of holes in block devices and FIFOs.
+ Bug # 506.
+- Apply patch supplied by user (slightly modified)
+ to fix SD hang with multiple pools and bad client
+ IP. Fixes bug # 508.
+- Add nagios plugin to the examples directory. Submitted by
+ Christian Masopust.
+- Remove warning message about multiple saves of hardlinked files
+ from find_one.c as it can generate too many warning messages.
+- Reset timeout values before select() per patch from
+ Frank Sweetser for problems with non-blocking sockets.
+- Unlink the state file if either reading or writing it gets
+ errors. Hopefully this will fix Win32 exit problems.
+- Get next volume from Scratch pool before creating a volume.
+- Set new Pool defaults in Vol when moved from Scratch Pool.
+- Remove argument from create_bacula_database for SQLite as it
+ caused an error.
+- Fix reservation so that mutexes are properly applied.
+- Rework reservation algorithm so that two drives can be used
+ at the same time.
+- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
+ If this patch is applied, the number of days can be specified with
+ 'list nextvol days=xx'
+ or
+ 'status dir days=xx'
+ My use case is to be able to preview the next scheduled job (and the
+ next tape to be used) on fridays if there are no scheduled jobs during
+ the weekend.
+- Fix font code in gnome2 console user patch. Fixes bug #501.
+- Fix malformatted bnet error message that caused seg fault
+ fixes bug 502
+- Applied user patch to improve README.vc8 in src/win32.
+- Ensure that StorageId is stored in Media record when ever possible.
+- Remove old code from winservice.cpp
+- Break on error in scan.
+- Fix typo in signal.c
+- Separate read/write DCR in SD. Add jcr->read_dcr.
+- Cleanup how find_device() works.
+- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491.
+
+Changes to 1.38.2:
+- Fix crash in tray-monitor when daemon disconnects. Bug #479.
+- Fix bnet-server bug found on OpenBSD. Bug #486
+- Fix cancel failure bug. Bug #481
+- Fix failure when Pool name has spaces. Bug #487
+- Fix SD crash in autochanger code. Mutex failure. Bug #488
+- Fix a couple of free()s in src/filed/acl.c
+- Fix memory overrun in bfile.c in building OS X resource
+ fork filename. Bug #489
+- Add Pool name to SD status output.
+- Add Python install dir for Solaris to configure. Bug #492
+
+Changes to 1.38.1:
+- Corrected ACL for Solaris (David Duchscher and Attila Fulop).
+- Add bacula_mail_summary.sh to examples directory. It makes
+ a single email summary of any number of jobs. Submitted
+ by Adrew J. Millar.
+- Unmount command now unloads autochanger.
+- Fix hang in FD (Martin Simmons)
+- Fix Win98 stat() problem in FD (Thorsten Engel)
+- Fix update slots which did not clear missing tapes.
+- Fix autostart install for FreeBSD (user reported)
+- Fix several problems with PostgreSQL scripts (Eric Bollinger)
+- Critical: allow restore of the first file of non-portable Win32 backup.
+- Important: with muliple concurrent jobs the autochanger could get
+ confused because of a missing mutex.
+- Fix accessing last slot in label and update slots.
+- Modify configure.in to add execute option to sqlite3 catalog
+ scripts.
+- Create update_xxx_table_8_to_9 scripts for updatedb
+- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in
+ autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457.
+- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested
+ by user. Fixes bug #456.
+- AMD64 users see compiler bug warning below!!!!!!!!!
+
+Major Changes in 1.38:
+- Fixed out of order Volumes in restore.
+- Improved algorithm for reserving drives in multiple drive
+ autochangers. Autochange users MUST use the new Autochanger
+ resource in the Storage daemon.
+- There is a new database format that is not compatible
+ with previous databases. You must upgrade if converting
+ from 1.36.x. No changes from version 1.37.30.
+- The Director, Storage daemon, and File daemons are
+ Deamons are not compatible with prior versions.
+ All FDs must be upgraded at the same time.
+- Support for ANSI/IBM labels.
+- Faster database inserts due to combining the MD5/SHA1 into
+ the attributes record, eliminating one INSERT/file backed up.
+- Python Event support has been added. See below for
+ configuration and details. The implementation is somewhat minimal,
+ so the functionality is not complete. The Python interface
+ has not been extensively tested, so please consider it BETA.
+- DVD writing support, using parts, and some new directives in
+ the Device resource of the Storage configuration file thanks
+ to Nicolas Boichat. Please note that this code is still
+ BETA and should be carefully tested before using in
+ production.
+- Seven new options keywords in a FileSet resource:
+ ignorecase, fstype, hfsplussupport, wilddir, wildfile, regexdir,
+ and regexfile thanks to Pruben Guldberg). See below for details.
+- Restore of all files for a Job or set of jobs even if the file
+ records have been removed from the catalog.
+- Restore of a directory (non-recursive, i.e. only one level).
+- Support for TLS (ssl) between all the daemon connections thanks
+ to Landon Fuller.
+- Any Volume in the Pool named Scratch may be reassigned to any
+ other Pool when a new Volume is needed.
+- You may clone a Job and thus write (almost) the same data
+ to multiple Volumes simultaneously (see below). Actually,
+ any Job may start any other Job with this mechanism, so it
+ also be used to group jobs.
+- Unicode filename support for Win32 (thanks to Thorsten Engel)
+- Volume Shadow Copy support for Win32 thus the capability to
+ backup exclusively opened files (thanks to Thorsten Engel).
+ A VSS enabled Win32 FD is available. You must explicitly
+ turn on VSS with 'Enable VSS = yes' in your FileSet resource.
+- New manual format with an index (thanks to Karl Cunningham).
+- New Web site format (thanks to Michael Scherer).
+- SQLite3 support.
+- Web-bacula, previously a separate project by Juan Luis Frances,
+ is now included in the Bacula GUI release. This is a management
+ level tool for reporting the state of Bacula jobs.
+- The code is now Internationalized so that it can be localized
+ in native languages. Thanks to Nicolas Boichat.
+
+New Directives:
+- New Job directive 'Prefer Mounted Volumes = yes|no' causes the
+ SD to select either an Autochanger or a drive with a valid
+ Volume already mounted in preference. If none is available,
+ it will select the first available drive.
+- New Run directive in Job resource of DIR. It permits
+ cloning of jobs. To clone a copy of the current job, use
+ Run = 'job-name level=%l since=\'%s\''
+ Note, job-name is normally the same name as the job that
+ is running but there is no restriction on what you put. If you
+ want to start the job by hand and use job overrides such as
+ storage=xxx, realize that the job will be started with the
+ default storage values not the overrides. The level=%l guarantees
+ that the chosen level of the job is the same, and the since=...
+ ensures that the job uses *exactly* the same time/date for incremental
+ and differential jobs. The since=... is ignored when level=Full.
+ A cloned job will not start additional clones, so it is not possible
+ to recurse.
+- New Options keywords in a FileSet directive (backported to 1.36.3):
+ - WildDir xxx
+ Will do a wild card match against directories (files will not
+ be matched).
+ - WildFile xxx
+ Will do a wild card match against files (directories will not
+ be matched).
+ - RegexDir xxx
+ Will do a regular expression match against directories (files
+ will not be matched).
+ - RegexFile xxx
+ Will do a regular expression match against files( directories
+ will not be matched).
+ - IgnoreCase = yes | no
+ Will ignore case in wild card and regular expression matches.
+ This is handy for Windows where filename case is not significant.
+ - FsType = string
+ where string is a filesystem type: ext2, jfs, ntfs, proc,
+ reiserfs, xfs, usbdevfs, sysfs, smbfs, iso9660. For ext3
+ systems, use ext2. You may have multiple fstype directives
+ and thus permit multiple filesystem types. If the type
+ specified on the fstype directive does not match the
+ filesystem for a particular directive, that directory will
+ not be backed up. This directive can be used to prevent
+ backing up non-local filesystems.
+ - HFS Plus Support = yes | no
+ If set, Mac OS X resource forks will be saved and restored.
+- Label Type = ANSI | IBM | Bacula
+ Implemented in Director Pool resource and in SD Device resource.
+ If it is specified in the SD Device resource, it will take
+ precedence over the value passed from the Director to the SD.
+- Check Labels = yes | no
+ Implemented in the SD Device resource. If you intend to read
+ ANSI or IBM labels, this *must* be set. Even if the volume
+ is not ANSI labeled, you can set this to yes, and Bacula will
+ check the label type.
+- Scripts Directory = <directory> name. Defines the directory from
+ which Bacula scripts will be called for events. In fact, Bacula
+ appends this name to the standard Python list of search directories,
+ so the script could also be in any of the Python system directories.
+- In FileSet, you can exclude backing up of hardlinks (if you have
+ a lot, it can be very expensive), by using:
+ HardLinks = no
+ in the Options section. Patch supplied by David R Bosso. Thanks.
+- MaximumPartSize = bytes (SD, Device resource)
+ Defines the maximum part size.
+- Requires Mount = Yes/No (SD, Device resource)
+ Defines if the device require to be mounted to be read, and if it
+ must be written in a special way. If it set, the following directives
+ must be defined in the same Device resource:
+ + Mount Point = directory
+ Directory where the device must be mounted.
+ + Mount Command = name-string
+ Command that must be executed to mount the device. Before the command
+ is executed, %a is replaced with the Archive Device, and %m with the
+ Mount Point.
+ + Unmount Command = name-string
+ Command that must be executed to unmount the device. Before the
+ command is executed, %a is replaced with the Archive Device, and
+ %m with the Mount Point.
+ + Write Part Command = name-string
+ Command that must be executed to write a part to the device. Before
+ the command is executed, %a is replaced with the Archive Device, %m
+ with the Mount Point, %n with the current part number (0-based),
+ and %v with the current part filename.
+ + Free Space Command = name-string
+ Command that must be executed to check how much free space is left
+ on the device. Before the command is executed, %a is replaced with
+ the Archive Device, %m with the Mount Point, %n with the current part
+ number (0-based), and %v with the current part filename.
+- Write Part After Job = Yes/No (DIR, Job Resource, and Schedule Resource)
+ If this directive is set to yes (default no), a new part file will be
+ created after the job is finished.
+- A pile of new Directives to support TLS. Please see the TLS chapter
+ of the manual.
+
+New Commands:
+- 'python restart' restarts the Python interpreter. Rather brutal, make
+ sure no Python scripts are running. This permits you to change
+ a Python script and get Bacula to use the new script.
+
+New configure options:
+- --with-libintl-prefix for defining alternate locations for
+ the NLS internationalization libraries. Not normally required.
+- --datadir for defining where the language files will be installed
+ required only if you do not want the default /usr/share.
+
+Items to note!!!
+- The Storage daemon now keeps track of what tapes it is using
+ (was not the case in 1.36.x). This means that you must be much
+ more careful when removing tapes and putting up a new one. In
+ general, you should always do a 'unmount' prior to removing a
+ tape, and a 'mount' after putting a new one into the drive.
+- If you use an Autochanger, you MUST update your SD conf file
+ to use the new Autochanger resource. Otherwise, certain commands
+ such as 'update slots' may not work.
+- You must add --with-python=[DIR] to the configure command line
+ if you want Python support. Python 2.2, 2.3 and 2.4 should be
+ automatically detected if in the standard place.
+- When linking with --with-python, there are a few warnings that
+ can be ignored.
+- You must either create a new catalog database or upgrade your
+ old database. After installation, run from your scripts
+ directory:
+
+ ./upgrade_bacula_tables
+
+ You can also find this script in the <bacula-source>/src/cats
+ directory.
+- The Director, Storage daemon, and File daemons are
+ Deamons are not compatible with prior versions.
+ All FDs must be upgraded at the same time.
+- You must add --with-openssl to the configure command line if
+ you want TLS communications encryption support.
+- Disk seeking during restores does not yet work correctly in
+ all cases, so it is turned off.
+- Note, with gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5) on an
+ AMD64 CPU running 64 bit CentOS4, there is a compiler bug that
+ generates bad code that causes Bacula to segment fault.
+ Typically you will see this in the Storage daemon first. The
+ solution is to compile Bacula ensuring that no optimization is
+ turned on (normally it is -O2).
+ This same compiler bug has been reported and confirmed with
+ gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) running on
+ an AMD64 CPU. This for the moment, I would recommend that all
+ users of GCC 4.0.1 or greater turn off all optimization when
+ compiling.
- Here is an example where braces allow 24 lines to be expressed in 5.
- # Exclude directories full of lots and lots of useless little files
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files"
+Other Items Fixed:
+- Security fixes for temp files created in mtx-changer, during
+ ./configure, and during making of Rescue disk.
+- A new script, dvd-handler, in the scripts directory,
+ which is designed to be used as parameters to Write Part Command and
+ Free Space Command. They need the dvd+rw-tools to be installed
+ (http://fy.chalmers.se/~appro/linux/DVD+RW/) AND, the growisofs
+ program must be patched using the
+ <bacula-source>/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch
+ You must have Python installed to run the scripts.
+- Part files support: File volumes can now be split into multiple
+ files, called 'parts'.
+- For the details of the Python scripting support, please see the new
+ Python Scripting chapter in the manual.
+- The default user/group for the Director and Storage daemon installed
+ by rpms is bacula/bacula, thus you may need to add additional permissions
+ to your database, or modify the permissions of the tape drive. If
+ all else fails, change to using user=root. However, it is more secure
+ to use user=bacula.
;;;
--- /dev/null
+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 <sleemburg@jvc.nl> for
+ improper scanning of schedule resource:
+ Run = Level=Full Pool=Catalog daily at 1:20
+- Apply patch from Chris Lee <labmonkey42@gmail.com> 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 <kreios@gmail.com> 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 <freebsd@paped.com>
+- Apply Unicode fixes for Win32 from "Thorsten Engel"
+ <thorsten.engel@matrix-computer.com>
+- 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 <olivier.mehani@linbox.com>
+- 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 <hson@ludd.luth.se>
+ 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 <calle@calle.in-berlin.de>
+ 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 <peppe@wielders.org>'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 <peppe@wielders.org>
+ 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 <peppe@wielders.org>
+ alist fix patch.
+- Remove duplicate code from chksum.h (mentioned by Preben).
+13Dec04
+- Integrate Tim Oberfoell <oberfoell@web.de> patch to ACLs
+ to handle both the "standard" and "default" ACLs.
+12Dec04
+- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
+ three cleanup patches (btest, verify, find).
+- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
+ three cleanup patches (backup, chksum, and verify)
+09Dec04
+- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
+ patch to avoid doing MTIOCGET on OSes that do not support
+ it such as OpenBSD.
+- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
+ patch to add filesystem type matching to FileSets in the
+ Options resource.
+- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
+ 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 <peppe@wielders.org>
+ 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 <jamieff@inline.net>
+ 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 <dbosso@lsit.ucsb.edu>
+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 <bacula-src/src/dird/bacula-dir.conf file.
+- Made a nicer column oriented listing of scheduled jobs for "status dir".
+02Jan03
+- Added backup/restore of raw partitions.
+- Corrected restoration of files in root directory (problem with
+ splitting path from file).
+01Jan03
+- Finally decided to cleanup handling of splitting path and filenames
+ in the cats directory. Now the code is in one place sql.c and it
+ is done using Pool memory, so there are no length restrictions.
+31Dec02
+- Add start of Solaris bare metal recovery
+- Add Site Visit usage statistics to Web page
+- Got Bacula listed on www.backupcentral.com
+30Dec02
+- Retest bare metal recovery on Linux 2 times with verify
+- Cleanup printout of verify differences using proper casting to
+ handle shorts and long longs.
+29Dec02
+- Added --enable-client-only to ./configure
+- Modified --enable-static-sd to work better and documented it.
+- Fixed Restore options (never,ifnewer, ...). They now work.
+- Moved the stored.c Resource lock into the allocation thread so
+ that the same thread sets/clears it. This created a problem on
+ FreeBSD.
+28Dec02
+- Added more rescue documentation.
+- Did a spell check of the Bacula doc.
+- Modified bscan to use the working directory as specified in the
+ configuration file as the default.
+25Dec02
+- Fixed an important bug reported by George Motter that caused only
+ the last option on an Include record to be used (all previous options
+ were lost).
+24Dec02
+- Chase down some inconsistencies in creating Media records from
+ the Pool defaults, and in updating/creating the Pool from the
+ resource. Also fixed the cats DB routines to include all
+ fileds (VolUseDuration was missing for example).
+21Dec02
+- Added building static versions of daemon static-bacula-dir, ...
+- Fine tuned the rescue (bare metal) code including support for grub.
+- Added skeleton freebsd rescue
+- Corrected SQL syntax error in autoprune code (JobType => 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 <bacula-src>/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