X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FReleaseNotes;h=e1282c023f432d253e5ddddc2964091df0c09ce0;hb=52e19b9755c7140e581802e08be15baf560d39eb;hp=c5a9b9990b79bda56722c501818ce29c96f2d7e4;hpb=bf625de424e5a6c9af6b2ac2a2355448b6d34154;p=bacula%2Fbacula diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index c5a9b9990b..e1282c023f 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,430 +1,390 @@ - Release Notes for Bacula 1.34.5 - - Bacula code: Total files = 364 Total lines = 103,481 (*.h *.c *.in) - -Changes for 1.34.5: -Major Changes: -- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). - Caused fd leak in Win32 for each connection. -- Fix a number of places in query.sql where multiple JobIds are - printed (due to JobMedia records). -- Abort configure if Internal is selected as the database. -- Close socket in SD when connection rejected. Caused fd leaks. - -Items to note!!!! -- If you are upgrading from 1.32, please be sure to see the database - upgrade procedure under the 1.34.0 notes. - -Other Items: -- Fixed Gnome crash on up/down arrow with no history. -- Fixed btape "fill" crash with multiple tape option. -- Add new query: List jobs on Volume given Volume name. -- Remove vol labeled test in askdir update_volume_info so that non-labeled - Volume in catalog can be marked in error. -- 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. -- Eliminate printing INFO message in UpdateDB (cats) -- it generates - "false" error messages. -- Eliminate some GTK error messages when running the Gnome2 console. -- Apply Peter Eriksson's lib file order changes in linking for IRIX. -- 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. -- 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. -- Correct a typo in the FreeBSD SD autostart install. -- New bacula.spec.in from Scott. -- Use /usr/lib/sendmail instead of mail if no mail program is configured. - Submitted by Peter Eriksson. This *should* be more portable. - - -Changes for 1.34.4: -Major Changes/Features: -- Implement | and < in FD for new FileSet files. -- Implement simplistic attribute spooling statistics in status. -- Make storage=xxx on restore override the restore default. -- 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! -- In SD mount.c, if get I/O error or read label error on non-removable - Volume, mark the volume in error and retry. -- Apply Tim Oberfoell's ACL patch. - -Items to note!!!! -- If you are upgrading from 1.32, please be sure to see the database - upgrade procedure under the 1.34.0 notes. -- If your system has a libacl in the standard location, acl's will - be enabled, and you can turn them on with "aclsupport=yes" as an - Include or Option option. - -Other Items: -- Enhance regression scripts. -- 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. -- 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 -- Fix UpdateDB to complain if mum_rows < 1 rather than != 1. - - - - -Changes for 1.34.3: -Major Features: -- Implemented and documented the first cut of the new FileSet directives. - The first cut permits using wild-card matches for including files in - addition to excluding files. -- The Windows rescue procedure is confirmed for WinXP/2K (probably not NT). -- Modification of the PostgreSQL database creation scripts to improve - performance by removing foreign keys. -- Use trasactions on PostgreSQL to improve performance. -- Restore jobs will now not start until they can get exclusive use - of the Storage daemon Device previously they erred. -- Permit execution of more kinds of Win32 files with ClientRunxxxJob. - If an absolute path is specified, the filename must contain the correct - extention. - -Items to note!!!! -- If you are upgrading from 1.32, please be sure to see the database - upgrade procedure under the 1.34.0 notes. -- Although the daemons are compatible for all 1.34.2 features, - the new FileSet directives are not compatible with 1.34.2 daemons. -- Fixed several query.sql bugs. -- The behavior of the hourly, daily, weekly, and monthly keywords in - the Run directive have been changed to be more logical -- they only - affect the one item mentioned rather than all items. - -Other items: -- The wx-console has had significant improvements. -- Upgraded to latest autoconf files. -- Added BaculaRoadmap_v1.1.pdf in doc directory -- Fixed a crash in the btape "fill" command. -- Added a new alpha directory to platforms -- first cut. -- The mtx-changer script was broken in 1.34.2 -- it is now fixed. -- Pass all arguments on database creation scripts. -- I finally found and fixed the bug that in some cases required a double - mount to get Bacula to look at the tape again. -- Thanks to user input corrected (I think) the negative values that - sometimes occurred in the spooling statistics. -- Fixed several bsmpt bugs thanks to user input. -- Added user supplied code to read the Directors's conf file in dbcheck so - that remote databases could be contacted as well as the working directory - and other catalog parameters obtained. -- Fixed changing a Volume from one Pool to another in "update volumes". - - - - - - - - - -Changes for 1.34.2: -Major Features: -- wx-console can now be built both under GTK and Win32. It is - now part of the Win32 binary release. It has a very nice tree - oriented restore. Thanks to Nicolas Boichat for this program. -- bconsole is now included in the Win32 binary release. - -Items to note!!! -- bscan restored StartBlocks one block off resulting in loss of - data if any bscanned volumes were restored. Thanks to Gregory - for reporting this. It is fixed in this release. -- Due to an oversight, "Maximum Job Spool Size" was is not implemented. - It will be in the next release. -- To build wx-console on Linux. Download wxWidgets 2.4.2 from wxwidgets.org, - build and install it on your system, then add --enable-wx-console on - your Bacula ./configure and it will be built and installed. -- For both the Win32 and Linux GTK versions of wx-console, you must - create a wx-console.conf in the current directory. The contents are - identical to a bconsole.conf file. - -Other items: -- Make SD utility programs accept device name as well as archive device - on command line. -- Update docs -- Remove old debug code from Win32 FD. -- A new version of depkgs-win32 was released containing the Win32 - wxWidgets source code. -- Disable SIGHUP code in Director which is not yet complete. - - -Release 1.34.1: -- Autochanger users, please note you must add %d to the end of the - changer command line in your Device resource in your bacula-sd.conf - file. -- There is a new wx-console program that does restores with a - tree allowing you to visually select what files are to be restored. - It is in a preliminary stage of development, but can be easily - be built under Linux with GTK, and with just a bit more difficulty - under Win32 with MinGW. -- 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. -- Fixed crash in SD during restore. -- 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. -- 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. -- 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. -- Added new Pools chapter. Doc about using two disks. -- Attempt to keep the spool file statistics size from going - negative. -- 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. -- 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. - - - -Release 1.34.0 -Major Features: -- Data spooling which reduces tape shoe-shine during Inc backups, - and permits multiple simultaneous backups without interleaved blocks. -- Native Win32 client -- much faster and restores permissions correctly - (thanks to Christopher Hull) -- New Windows style installer for the Win32 Client. -- PostgreSQL database driver (thanks to Dan Langille). -- Polling of devices eliminating need to unmount and mount from - console. -- Improved Autochange support of Slots (update slots scan). -- Autochanger support for multiple drives (I think). -- New conio code to implement Console command line editing and history. -- JobDefs resource permits smaller .conf files for Director -- Access console lists for the Console -- Pool level overrides. -- Daemon "status" is recovered across daemon executions. -- Improved btape "test" and "fill" commands. - - -Items to note: !!!!! -- If you have a RedHat system, be sure to delete the /lib/tls - directory from your system. It contains defective pthreads code. -- The restore default is changed to have nothing selected by default. - You must either enter: "restore all" or after getting into the tree - selection prompt enter "mark *" to have everything selected. -- In previous versions the "all" keyword on the restore command caused - it to return without user interaction after selecting everything. - This function is now replaced by the "done" keyword (more logical). - The "all" keyword now causes everything to be selected by default. -- The default tape driver behavior is now to write only a single EOF - at the end of the tape. For most tape drives, this is totally - transparent and nothing needs to be done. For FreeBSD see below. -- FreeBSD users NOTE!!!!! - You may need the following two records to your SD Device resource for - tape drives. - - TWOEOF = yes - Fast Forward Space File = no - - The "Fast Forward Space File" is surely needed, and the TWOEOF - is needed on some systems and not others. Running the btape - "test" command will tell you. If you get an error with TWOEOF set - to yes, set it to no. - -- If you want either bsmtp or bconsole on Win32, you will need - to load the 1.32 version along with cygwin1.dll. Some solution - for this will be forthcoming in a future update. -- The daemon protocol has changed from version 1.32, you must update - everything at once. -- The database level has been updated. You must either re-initialize - your databases with: - - ./drop_bacula_tables - ./make_bacula_tables - - which will delete ALL prior catalog information, or you can - update your 1.32 database with: - - ./update_bacula_tables - - Please save your old database before dropping the tables or doing - an upgrade or you may regret it later. -- If you are updating versions older than 1.32, you can look in - the updatedb directory for scripts that you can use. You will need - to manually set the paths for your system. - -- smtp has now become bsmtp -- you *must* modify your .conf files. -- console has now become bconsole. -- console.conf is now bconsole.conf -- Please don't underestimate the repercussions of the bsmtp and bconsole - name changes! - - -New directives: -- "Close on Poll = yes/no" in SD Device resource. -- "Volume Poll Interval = time-interval" in SD Device resource. -- "Two EOF = yes/no" in SD Device resource. -- "Maximum Network Buffer Size = size" in SD Device resource. -- "Maximum Network Buffer Size = size" in FD FileDaemon (or Client) resource. -- "Console" new resource in Director conf file. - New directives: Name, Description, Password, JobACL, ClientACL, - StorageACL, ScheduleACL, RunACL, PoolACL, CommandACL, - FileSetACL, CatalogACL. -- "Max Run Time = duration" in Director Job resource. -- "Max Wait Time = duration" in Director Job resource (not fully implemented). -- "JobDefs = name-of-resource" in Director Job resource. -- "Jobdefs" new resource in Director. Same directives as for a Job. -- "Full Backup Pool = xxx" in Job resource in the Director. -- "Incremental Backup Pool = xxx" in Job resource in the Director. -- "Differential Backup Pool = xxx" in Job resource in the Director. -- Three new options on the Run override statement in a Schedule resource: - FullPool=xxx - IncrementalPool=xxx - DifferentialPool=xxx -- SpoolData=yes/no in DIR Job resource -- SpoolData=yes/no in Run override directive. -- MaximumSpoolSize in SD Device resource -- MaximumJobSpoolSize in SD Device resource -- SpoolDirectory in SD Device resource. -- Drive Index in SD Device resource for using two autochanger - drives. -- mtimeonly=yes/no on Include directive. -- keepatime=yes/no on Include directive. - -New Commands: -- "SetIP" -- Added "pool=xxx" to restore command line. -- Added "fileset=xxx" to restore command line. -- Fixed "storage=xxx" on restore command line. -- "markdir" command in restore tree. -- "unmarkdir" command in restore tree. -- "quit" command in restore tree. -- Trace option on "setdebug trace=1/0 ..." -- Update slots scan -- The "all" keyword on the restore command marks all files by default. -- The "done" keyword prevents user interaction with the tree -- used - mostly for batch scripting. - - -Additional changes: -- Slackware support -- On multiple ctl-c, exit from console quickly. -- Implement "delete job jobid=xxx jobid=yyy ..." -- Implement "purge volume=xxx volume=yyy ..." -- 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. -- Add a missing unlock in the jobq handler. -- 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. -- Apply Jess Guardiani's second fix to list autochanger volumes without - opening the drive (necessary on FreeBSD if no tape is in the drive). -- 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. -- 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. -- Improved btape "test" and "fill" commands. -- The ability to ask the Storage daemon on a device by device basis - to "poll" the tape drive at a given interval (minimum 1 minute). If - a tape is found, its label is read and if appropriate it is used. - This eliminates the need to do "mount" commands. -- The ability to close and re-open the device when a poll occurs. - This permits dealing with certain recalcitrant autochangers that - invalidate devices (typically on FreeBSD). -- Dan Langille has written a PostgreSQL driver for Bacula. -- Implement "update slots scan" that reads the volume label(s). -- The full form of the scan is "scan=1,2,4-5,7". With no specification, - all occupied slots are scanned. -- Turn off changer Volumes that are not current in the changer when - an "update slots" is done, or if any tape operation discovers that - the right volume is not in the slot. -- The console program will run all commands it finds in ~/.bconsolerc - at startup. -- Add Dan Langille's changes to the bacula start/stop script that - permit dropping root permissions just after startup. -- New version 1.5.5-1 Cygwin. -- Modify SD to update the catalog database when it is shutdown, - even if the job is canceled. -- Fixed seg fault in restore of multiple simultaneous jobs to - a single Volume. -- Fixed thread race problem in multiple simultaneous jobs to - a single Volume where the volume label is not in the first - tape block, so the tape is not recognized. -- Restore directory tree automatically selects all higher level - directories to be restored. -- Implement conio.c to use in console program -- mini-readline. -- Enhance "fill" command of btape -- simpler output. Use -v to - cause last block to be dumped after write and after re-read. -- Added an autochanger test to the btape "test" command. It is - automatically invoked if the autochanger is properly configured. It - is still a bit primitive but covers the essential of testing - the mtx-changer script with your autochanger. -- Select the oldest LastWritten volume during recycling. -- Added forward space file test to btape "test" command. -- All 1.32d patches applied. -- Fixed seg fault in restore of multiple simultaneous jobs to - a single Volume. -- Fixed thread race problem in multiple simultaneous jobs to - a single Volume where the volume lable is not in the first - tape block, so the tape is not recognized. + Release Notes for Bacula 1.39.26 + + Bacula code: Total files = 447 Total lines = 149,711 (*.h *.c *.in) + +Version 1.39.26 contains mainly bug fixes to 1.39.24. Please + see the ChangeLog for more details. + +==== IMPORTANT a stock SuSE 10.1 kernel may crash ===== +- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses + the tape drive. Workaround, load a Fedora kernel, which works fine, + or load the SuSE 10.2 rc5 kernel which also works fine. + +==== 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. 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 /src/cats. It is called: + + ./update_bacula_tables + + It is necessary to run it only once the first time you move to + a 1.39.x beta or to 1.40.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 DVD Volume format changed ==== +- 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. + +==== IMPORTANT miscellaneous ==== +- The Gnome console program (gconsole) no longer functions as it + should. If you have multiple catalogs, you will need to select + the catalog (this I will fix). 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 --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. +- The "Accept Any Volume" directive has been removed. It was never + implemented. Bacula will always accept any valid tape that is in + the drive for appending. +- You *should* be able to use 1.38.x FDs with version 1.39.18 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. + +==== IMPORTANT new Win32 install procedure ===== + For Win32 migrations from versions prior to the new installer 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, we can change that prior to release if + everyone is comfortable with it). + + Prior to using the current installer, if you used a prior 1.39.x + beta version, you must do one of the following three things: + + 1) Uninstall prior beta version and select the option to delete + the configuration and state files. This will get rid of the bogus + configuration files. Reinstall the new 1.39.22 version. + + 2) Manually copy the *.conf files from C:\Bacula\bin to + C:\Documents and Settings\All Users\Application Data\Bacula. + + 3) Manually edit the *.conf files in C:\Documents and + Settings\All Users\Application Data\Bacula. The links in the Bacula menu + can be used to avoid having to enter that ugly path. + + After one of these has been done the upgrade should work fine. + + If you have problems with the above, try the following + The new Win32 installer requires that you deinstall any + previous 1.39.x beta version before installing the new version. + The following is not necessary if you are upgrading from + a 1.38.x installation. + + The simplest way to do clean up a prior 1.39.x beta is in a DOS shell: + + cd c:\bacula\bin + net stop bacula + net stop baculfd + ./bacula-fd /remove + (Install the new Bacula) + + Note, one or both of the 'net stop' commands may fail. Don't + worry about it. + + If you didn't read the release notes or forgot to do those + commands, try the following: + + cd c:\bacula\bin + net stop bacula + net stop baculafd + sc delete bacula + sc delete baculafd + + Note, at least one of the 'net' commands and possibly both + will fail, and at least one of the 'sc' commands will fail. + Don't worry about it. After that, try again to install + the new Bacula. + + +New Features in 1.40.0: +- Windows tray status windows are scrollable and resizable. +- Win32 external script excution is much more flexible -- handles + spaces in names better, ... +- Lots of DVD fixes -- I think they now work! +- Fix opening of database in a restricted console to respect + any Catalog ACL. +- 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. +- The basic features of Migration are now complete. +- There is a Migration chapter in the doc. + http://www.bacula.org/dev-manual/Migration.html +- There is an Encryption chapter in the doc. + 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. +- Add -n option to bconsole to turn off conio. +- 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. +- 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, ... + Finally, he also ported the Directory and the Storage daemon to + Win32. +- Data encryption done in the Client is now supported due to code + submitted by Landon Fuller. +- 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 Thorsted Engel. +- 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 +- 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. +- SunOS ACLs should now work thanks to a patch from David Duchscher. +- The database Id records should be 32/64 bit independent now. 64 bits + can be enabled by changing one define, but this has never been tested. +- 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. This patch was probably back ported to 1.38.x +- 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 enable/disable job=. This command prevents + the specified job from being scheduled. Even when disabled, + the job can be manually started from the console. +- 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. +- 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. +- 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. +- Apply patch for enhancing wait from Eric Bollengier. One can now: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +- 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). This is not well tested. +- Integrate addition of line count limitation to bsmtp -l from + Sebastian Stark +- 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. +- Add /silent option to Win32 FD for Install/Remove service. + 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. +- Implement a number of user supplied patches for DVD writing. +- 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. This could cause print output + to look different. 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. +- Add Catalog message destination in Messages resource that puts the + job report in the Log database table. +- Spend a lot of time integrating mkcdrec with the rescue disk. +- Add spooling/despooling info in status output of SD. +- Add Comment field to llist of a volume. +- Allow true/false in some yes/no questions. +- Implement update volume enable=(on|off|true|false|archived|0|1|2) + +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. + +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" + + + +Here are some hints if you want to play with the Windows Director and/or +Storage daemon. + +Changer and Tape device names in Windows are Changer0, Changer1, etc and +Tape0, Tape1, etc. If there isn't a device driver loaded for the Changer +then you need to use the address :::. Port is the +SCSI Adapter Number, Bus is the Bus Number on the adapter (usually 0 since +most adapters only have one bus), Target is the device's Target Device ID, +Lun is the Logical Unit Number. + +You must specify DeviceType = tape in the Device resource in bacula-sd.conf +since detection doesn't currently work.