]> git.sur5r.net Git - bacula/bacula/blob - bacula/technotes-1.39
23b7e81c5500540578f15ffa70cad4f10bd6ed61
[bacula/bacula] / bacula / technotes-1.39
1               Technical notes on version 1.39  
2
3 General:
4 06Aug06
5 kes  Defined BUILDING_CATS in src/cats/cats.h so that *nix builds.
6 dsb  Updated rpm spec for 1.39 - updatedb 9 to 10, add new man pages,
7      fix bug 648 - update sqlite script patches, lock out gnome2console
8      builds for platforms with gtk+ < 2.4.
9      Updated build_rpm.sh - add remote source directory, add switch for 
10      signing, refine file names
11 05Aug06
12 rbn  Fixed the Windows Makefiles so that they won't accidently try and
13      pickup binaries for the Unix build.  This allows both the Unix
14      build and the Windows build to be built in the same tree without
15      interfering with each other.
16 rbn  Fixed error handling and cleaned up mtx-changer.cmd.
17 rbn  Added the rest of the database scripts.  These are installed but are
18      not yet editted for variable replacement.
19 rbn  Broke out the cats functionality from bacula.dll and put into new
20      separate dlls for each database type.  At installation time the
21      correct one is copied to bacula_cats.dll.
22 rbn  Eliminate the need to install the mysql.dll on client only builds.
23 rbn  Moved dird/sql_cmds.c into the cats directory so all the database
24      specific #ifdefs were in the cats directory.
25 rbn  Added a new sql_cmds.h with all the declarations for the variables
26      exported from sql_cmds.c.
27 rbn  Moved catalog_db[] from lib/message.c to a new routine db_get_type()
28      which is implemented in bdb.c, mysql.c, postgresql.c and sqlite.c in
29      src/cats.
30 kes  Correct improperly formated list command output reported by Dan.
31 04Aug06
32 kes  Correct despool time calculation.
33 03Aug06
34 kes  Remove previous changes to compat.cpp as they create problems.
35 kes  Use old style MD5 for FileSets to avoid Full saves on every Job.
36 kes  Attempt to fix problems with the msg_queue crashing on Solaris
37      when Bacula is terminating, but problems remain.
38 kes  Add WIN32_VSS to HAVES in src/Makefile.inc.in to correct VSS
39      name editing problems with too many \\?\es.
40 kes  Fix some Bacula source code stlye problems in compat.cpp.
41 kes  Add debug code to compat.cpp and convert non-Bacula debug code
42      to Bacula style.
43 02Aug06
44 kes  Change the name of the technical notes file from kes-1.39 to
45      technotes-1.39.  Prefix my messages with 'kes  '.
46 kes  Allow dequeue_messages() to be called twice. Should fix bug  
47      # 649.
48 kes  Add Job type to bscan Job information output.
49 01Aug06
50 kes  Update copyright date in program files, and for the most part
51      put it on a #define.
52 kes  Implement %q in bsnprintf.c apparently I forgot it.
53 31Jul06
54 kes  Make disk-changer sed command compatible with FreeBSD.
55 kes  Make a first cut at a ReleaseNotes and ChangeLog for a 
56      beta release.
57 kes  Make make clean decend into the src/win32 directory.
58 kes  Fix some #ifdefing so that Solaris and FreeBSD compile 
59      sys/stat.h was turned off.
60 kes  Use suffix editing for new transfer rate messages.
61 kes  Attempt to come up with a workaround which seems to be an OS
62      bug where write() returns EBUSY.  IMO this should not happen.
63      It triggered in truncatebug test. The workaround retries using
64      a 100 ms wait.
65 kes  Eliminate a strerror() call in a class method that failed with
66      older C++ compilers.
67 kes  Use rm -rf rather than rmdir to delete the src/win32/release
68      directory during make clean.
69 30Jul06
70 kes  Make bscan ignore ACL streams.
71 kes  Update projects files with new Feature Requests.
72 kes  Generate current English and French manuals and upload
73      them to the site.
74 kes  Update the home page to include the new British/French flags to
75      switch between translations. Work done by Alexandre Baron.
76 kes  Make disk-changer script print an error message if the changer
77      directory is not defined.
78 kes  Create a generic DB routine for getting an int (32/64 bit) from
79      the DB.
80 kes  Add more migration code.
81 kes  Add a few more files to .cvsignore here and there.
82 kes  Minor fixes for SD write rate and despooling rate.
83 kes  Turn off new test code in src/console.c
84
85 Version 1.39.18
86 29Jul06
87 kes  Incremented the version number to signify that all of Robert's code
88      for Win32 that was in the branch is now integrated into the HEAD,
89      and that Eric has submitted code that we hope will provide limited
90      backward compatibility with 1.38 file daemons (more testing to be
91      done).
92 kes  I rationalized a few of the names of the variables (mainly jcr names)
93      that are used during migration as keeping three different jcrs at the
94      same time clear in one's head is not easy.
95
96 Version 1.39.17
97 28Jul06
98 eb   Tweak new runscript feature to work with 1.38.x FDs. 
99 eb   Correct crypto.c to fix segfault when restoring an encrypted stream 
100      on fd which don't use rsa keys.
101 eb   Add yes/no english keywords on localised yes/no questions.
102 27Jul06
103 kes  Several important commits from Robert Nelson for code cleanup and
104      Win32 build.
105 kes  Modify console.c so that when conio is enabled, it converts \n to
106      \n\r before outputting to the console.  Hopefully this will fix
107      the problems with expect in Perl that Eric saw.
108 24Jul06
109 kes  Change cats/sql.c to elimate %-*s format, which I think is turned
110      off in bsnprintf.
111 kes  Add Comment field to llist of a volume.
112 kes  Allow true/false in some yes/no questions.
113 kes  Implement update volume enable=(on|off|true|false|archived|0|1|2)
114 kes  Remove a few /n's when scanning commands from another daemon. This
115      permits adding additional fields later.
116 kes  Modify dbcheck to handle ctl-d and to delete Log table entries.
117 kes  Update README.mingw
118 22Jul06
119 kes  Tweak authentication to work with 1.38.x FDs. 
120 kes  Tweak catalog make scripts.
121 kes  Fix catalog upgrade scripts so that they work.
122 kes  Correct despooling debug code to eliminate race condition.
123 19Jul06
124 kes  Add additional fields as specified by Arno to LocationLog.
125 kes  Add comment field to the Media record.
126 kes  Add Time field to the Log record.
127 kes  Correct migration SQL (thanks to Bill Moran) so that it
128      runs with PostgreSQL also.
129 kes  Add spooling/despooling info in status output of SD.
130 17Jul06
131 kes  Spend a lot of time integrating mkcdrec with the rescue disk.
132 kes  Add VOLMGMT message class for volume management messages (none yet).
133 kes  Add CATALOG as a destination.     It goes into the LOG table.
134 kes  Implement the Log table in the DB.
135 kes  Implement the Location Log table in the DB (for user use).
136 kes  At Eric's request add a run_scripts() just after blast_data in
137      src/filed/job.c
138 10Jul06
139 kes  Add Enabled column to Location, correct some typos in DB schemas.
140 kes  Correct bug I introduced into RunScripts enum.
141 kes  Add log table to Catalog
142 kes  Purge original job migrated if the migration terminates normally.
143 kes  Cleanup purging of files/jobs so that it is done only in a 
144      single subroutine.
145 kes  Add new VOLMGMT message class.
146 kes  Add Catalog message destination (user conf code remains to be written).
147 09Jul06
148 kes  Modify read_record and friends to properly deal with migration         
149      needs.
150 kes  Update debug code in read_record.       
151 08Jul06
152      ======================= Warning ==========================
153      Separate read and write storage in Jobs in the Director. This
154      is a major rewrite of some of the low level code and hence has
155      a high probability of introducing bugs.
156      ==========================================================
157
158 kes  Move the job init code up to *before* the job is put into
159      the job queue (resource allocation queue). This permits the
160      job to establish whether it will read or write or do both.
161 kes  Add name() methods to all the resource classes.
162 kes  Implement separate read and write storage resource 
163      allocation/deallocation in jobq.c
164
165      ======================= Warning ==========================
166      Implemented new method of getting the default Storage from the Media
167      record rather than from the MediaType for restore.  As a fall
168      back, if no Storage is defined, use the MediaType.  This
169      eliminates most all prompts if there are multiple MediaTypes
170      used. This is an important and fundamental change.
171      ==========================================================
172
173 kes  Add more detail (Storage, Device) to list of volumes printed
174      for restore.
175 kes  More code in migrate. In particular start multiple jobs if
176      migrating a volume.
177 kes  Probably overkill, but ensure that the bsr is unique even within a 
178      job in FD and SD.
179 kes  Rework bsys.c drop() so that it now should work as expected.
180 kes  Update a bunch of old copyrights -kes  particularly in .h files.
181 kes  Remove src/lib/bshm.c/h
182 05Jul06
183 kes  Migration fixes
184 04Jul06
185      ======================= Warning ==========================
186         All hash codes in the database are now kept in world
187         compatible base64 format (no = filling). This means that
188         all FileSets will be updated and if you are running
189         verify jobs, you must do an InitCatalog.
190         Authentication uses the new algorithm, but should be
191         backward compatible with 1.38.x
192      ===========================================================
193
194 kes  Modify the authentication routines so that the 1.39.15 Director
195      always runs with the compatible binary to base64 code (same as
196      the rest of the world).  It will however detect if an SD or
197      FD is running the old code and if that is the case, will use
198      the old algorithm for authentication.  However, all consoles must
199      use the compatible algorithm, and all data entered into the database
200      (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will
201      use the compatible algorithm.
202 kes  Rename the cram_md5 routine names to be slightly more appropriate
203      to what they are doing (challenge and respond).
204 kes  Robert committed his #ifdef and header cleanup.
205 30Jun06
206 kes  Fix a complier warning in files/backup.c
207 kes  Cleanup NOT NULL vs DEFALT 0 in database creation.
208 kes  Tweak btape.
209 kes  Robert committed his low impact changes.
210 kes  I removed a size_t from the jcr.h definition.
211 kes  Update the tape regression scripts (still to be tested).
212 kes  Add gcc and gcc-c++ requires to srm as suggested by a user.
213 kes  Require done or quit to exit from in memory tree restore.
214 26Jun06
215 kes  Write install/uninstall of new manpages. There are now a
216      pile of man pages. Some of which need a lot of work.
217
218      ======================= Warning ==========================
219         The --mandir ./configure option now points to the top level
220         man directory.  The man files will be installed under
221         mandir/man8 and mandir/man1 as appropriate.
222      ==========================================================
223
224 kes  Add complete text of GPL to LICENSE.
225 kes  Implement job report that indicates where Storage and Pool
226      came from -kes  with overrides and Pool storage and NextPool,
227      it is all very complicated.
228 kes  Create a few common subroutines for backup.c and migrate.c
229 kes  Eliminate warning messages from tray-monitor.c
230 25Jun06
231 kes  Apply fix for scheduler for missing unlock_jobs().
232 kes  Clean out autoconf caches before rebuilding configure
233 kes  Fix the FreeBSD pthreads lib define updated by Dan.
234 kes  Add missing semicolon in src/console/console.c
235 kes  Add Robert's enhanced version of build-win32-cross-tools
236      as well as his patch file.
237 kes  Note, the new gcc options are likely to break building of
238      wx-console or the tray-monitor ...
239 24Jun06
240 kes  Implement Robert's suggestion to suppress printing compile lines.
241 kes  Detect GCC correctly (I hope)
242 kes  If using GCC (actually g++) add the following compiler flags
243      -fno-strict-aliasing -fno-exceptions -fno-rtti
244
245      ===================== Warning =============================
246      Turn on new bsnprintf() code.  This could cause print output
247      to look different.
248      ===========================================================
249
250 kes  Fix crypto when not using openssl. I previously overlooked this.
251 kes  Eliminate crypto type punning problems by eliminating void * and
252      using uint8_t * instead.
253 kes  Harden authentication failure in FD by single threading errors
254      and forcing a 6 second wait.
255
256      ===================== Warning =============================
257           Removed  "Accept Any Volume" directive.
258      ===========================================================
259
260 kes  Major cleanup and simplification of regress using shell functions
261      (more tests to be converted to new format)   
262 kes  Add detection of 64 bit Irix as indicated by user.
263 kes  Increment catalog database id from 9 to 10.
264 kes  Add a few of the new database fields to the various C++
265      structures.
266 kes  Implement code to fill in the most important new fields (e.g.
267      Media Enable).
268 kes  Ensure that most of the new fields are in create/get/insert/update.
269      More work to be done.
270 22Jun06
271 kes  Update some very old licenses in src/cats.
272 kes  Modify the database format for handling Migration jobs:
273       Add PriorJobId, RealEndTime to Job table
274       Delete MAC table
275       Remove Stripe from JobMedia record (not used, wasting space)
276       Add ScratchPoolId, RecyclePoolId, Enabled to Media record
277       Add Cost to Location table.
278 kes  Delete mac_record subroutines.
279 kes  Add new table values to create/update/get routines as appropriate.
280 kes  Update the update_tables and make_tables scripts.
281 kes  Make a first cut in using a union where multiple pointers (actually
282      pointers to pointers) are stored.
283 kes  Make some changes to base64.c suggested by Robert and others and add
284      a small amount of documentation.
285 kes  Add some changes suggested by Peter for Solaris (bregex...)
286 kes  Make runscript.h always built because it needs to be pulled into
287      more places.  In particular its RES was left out of a union.
288 kes  Renumber the enum{} list in runscript.h to avoid starting from zero.
289      This makes it slightly easier to detect uninitialized variables.
290 14Jun06
291 kes  Remove xpg4 lib from FreeBSD build as it is no longer needed and
292      sometimes creates install problems.
293 kes  Change a couple of %T in strftime to %H:%M:%S as seen in Robert
294      Nelson's code.  More to do.
295 kes  Convert a few store_bit to store_bool in filed_conf.c.       
296 kes  DVD tweak to block.c as supplied by Uwe Muessel.
297 04Jun06
298 kes  Modify configure.in to check for typeof().
299 kes  In findlib/attribs.c use typeof instead of templates if possible.
300 01Jun06
301 kes  Implement partial error messages for src/filed/acl.c
302 kes  Fix return code to fail when doing update barcodes and
303      Pool resource is not found. This previously caused Volumes
304      to be labeled as cleaning tapes.
305 kes  Small updates to projects.
306 27May06
307 kes  Add Eric Bollengier patch for new RunScript directive. It breaks
308      compatibility between dird and fd.
309 26May06
310 kes  Prevent DVD code from rewriting label if the device cannot be
311      opened read/write.
312 kes  Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to
313      fix Debian build bug.
314 kes  Fix Dir/SD run race in migrate.c, verify.c, and restore.c
315 kes  Integrate manpages contributed by Jose Luis.
316 kes  Update projects file.
317 kes  Add manpages Makefile.in to configure.in
318 kes  Remove installation of bacula.8 in scripts directory.
319 24May06
320 kes  Implement patch submitted by cesarb in bug #606 to implement O_NOATIME
321      support.
322        O_NOATIME is a open() flag which makes it possible to read a file without
323        updating the inode atime (and also without the inode ctime update which
324        happens if you try to set the atime back to its previous value). It also
325        prevents a race condition when two programs are reading the same file, but
326        only one does not want to change the atime. It's most useful for backup
327        programs and file integrity checkers (and bacula can fit on both
328        categories).
329
330        Recent versions of the Linux kernel and glibc have support for it (the
331        glibc support being mostly copying the O_NOATIME definition to
332        bits/fcntl.h). If there's no support for it on the kernel, trying to use
333        it does nothing (since the kernel ignores unknown flags).
334
335        If the kernel has support for it, trying to use it either works, fails
336        silently (mostly in remote filesystems), or returns errno=EPERM (if you
337        are not either the owner of the file or root). A simple way to prevent the
338        failure is to open the file without the flag and set it later with
339        fcntl(F_SETFL), ignoring any EPERM errors.
340 kes  Applied patch posted by Jaime Ventura to bug #570 to correct failure
341      of restarted jobs to complete (due to a destroyed pthreads conditional
342      variable used by the message thread).
343 kes  Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes
344      set to zero. 
345 kes  Apply patch from John Goerzen bug #611 to fix bad manual links in the code.
346 kes  Apply patch from Rudolf Cejka bug #614 to removed trailing
347      colons in query.sql file.
348 kes  Apply patch from Rudolf Cejka bug #613 to correct prunning of files
349      not to create orphans.
350 kes  Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime
351      in restore long listing.
352 kes  Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead
353      of incorrect MarkedId.
354 kes  Apply patch from adioso bug #616 to correct text in manual (replace
355      Director with File daemon).
356 kes  Rework a few of the zlib changes so that they build properly.
357
358 21May06
359 kes  Move DIR "run" command to SD before starting the message thread
360      as suggested by Cristopher Hull to avoid a race deadlock from
361      two threads using the bsock structure.
362 kes  Modify LICENSE to correct some problems pointed out by Debian.
363 05May06
364 kes  Correct EOF with no \n lex.c problem.
365 kes  Tweak compat.h compat.cpp and merge with apcupsd
366 kes  Add additional INFO messages if autochanger cannot be used.
367
368 02May06
369 kes  Simplify Win32 Makefile
370 kes  Correct count of buffers/bytes used by smartall.c
371 kes  Updated compat.h after porting apcupsd to MinGW.
372 01May06
373 kes  Work on getting wx-console building on MinGW. wxWidgets now builds
374      started adding Makefile ...
375 kes  Moved MinGW library objects to src/win32/lib to reduce clutter.
376 30Apr06
377 kes  Reloading a bad configuration file doesn't kill director any more.
378      Thanks to fix from Eric Bollengier.
379 29Apr06
380 kes  Fix problem of accents with new Win32 code.
381 kes  Integrate Howard's VSS patch. Tweak it a bit. VSS now
382      works in the MinGW build with the exception that there
383      is a problem with accented characters -kes  i.e. there is
384      some mapping problem with wide characters.
385 kes  The code no longer compiles with Microsoft VC++.
386 28Apr06
387 kes  Start implementing Christopher's St.Bernard code.
388 kes  Add Christopher's mods for opening files.
389 kes  Strip \r \n from Win32 error messages (Christopher)
390 kes  Add more info about Win32 system if unknown (Christopher)
391 kes  Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp
392 kes  Fix a number of incorrect strings marked for translation, when
393      they should not be (e.g. commands).
394 kes  Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob
395      Patches supplied by user in bugs #608 and #599.
396 kes  Use most recent of st_ctime and st_mtime in restore tree DIR
397      listing. This fixes some problems with Win32 printing incorrect
398      values.
399 kes  Correct the clock shift comm time calculation between the DIR
400      and the FD. It was added rather than subtracted.
401 kes  Strip all backslashes in filenames to be restored on Win32
402      machines -kes  the names should all be in Unix format, and if
403      there are any backslashes it is most likely due to an improper
404      FileSet definition, and the files will not otherwise be 
405      restorable.
406 kes  Remove lib/regex.c (replaced by bregex.c).
407 kes  Delete src/win32/License.txt
408 kes  Modify installer to install LICENSE
409 26Apr06
410 kes  Fix bug in build-win32-cross-tools script reported by Howard
411 kes  Implement cross compiled bconsole
412 25Apr06
413 kes  Fix barcode test, eliminate BOOL (doesn't exist on Linux).
414 kes  Write first cut of README.mingw32
415 kes  Add back ua_label barcode fix from Rufolf Cejka.
416 kes  Integrate the majority of the Mingw cross-tools submission
417      made by Howard Thomson. Everything compiles, with zlib, openssl,
418      and VSS turned off. Linking needs a pthreads library ...
419 23Apr06
420 kes  Add 'Dir Status' button to the gnome console.
421 kes  More work on migration.
422 kes  Restore non-compatible base64 coding to permit compatibility.
423 kes  Display heap stats in Storage daemon without debug level.
424 22Apr06
425 kes  Integrate most of the MinGW changes -kes  more to do.
426 21Apr06
427 kes  Implement using pg_config for finding PostgreSQL files.
428      Fixes bug #600. Patch supplied by user.
429 kes  Remove -t option from mktemp in mtx_changer.in and use
430      working directory. Fixes bug #578.
431 kes  Update job start time after the any run before job so that
432      files created by the script are only backed up once. Fixes
433      bug #599.
434 kes  Strip trailing newline only from filenames entered in
435      the restore command when reading a file. This permits
436      the user to enter filenames with trailing spaces. Fixes
437      bug #549. The user supplied a patch that I modified slightly.
438 kes  Use the most recent time (st_mtime, st_ctime) in the dir
439      command in restore. This gives the user a better idea of what
440      the newest file really is. This fixes bug #574. The fix
441      was suggested by the user.
442 kes  Implement a compatible version of base64. This permits external
443      programs to duplicate Bacula's base64 algorithm using standard
444      routines. This fixes bugs #296, and 565. Patch submitted by   
445      author of bug #565.  
446      ================= Note ========================
447      Previous Signatures stored in the database are no longer
448      compatible with this. The main downside is for Verify jobs,
449      and doing an InitCatalog run will fix the problem. Also, the
450      authentication between the deamons is changed, so all daemons
451      must be simultaneously upgraded.
452      ==============================================
453      If you don't like this fix, set:
454        const bool compatible = true;
455      to
456        const bool compatible = false;
457      in src/lib/base64.c
458 20Apr06
459 kes  Ensure that DB signature is never NULL.
460 kes  Ensure that DB table names are not translated.
461 kes  Fix scheduler to handle time skew (eg daylight savings).
462 kes  Fix scheduler to use lock_jobs() to avoid most problems
463      with reload. Window is now milliseconds.
464 19Apr06
465 kes  Apply patch from Christopher Hull
466      kes  Allow multiple connections to database with different
467        parameters.
468      kes  Invalidate the scheduler when doing a reload. Fixes seg
469        fault, but still 60 second window.
470      kes  Additional info in Reschedule message.
471      kes  Use set_jcr_job_status() everywhere to prevent loss of
472        cancel, error.
473      kes  Display peer IP in FD if error from connecting DIR.
474      kes  Don't increment file count for DIRBEGIN.
475      kes  Replace illegal characters in Win32 filename by _.
476      kes  Add SE_CREATE_PERMANENT_NAME privilege in Win32.
477      kes  Hash hard link filenames rather than linked list.
478      kes  Fix for security failure in chdir on Win32.
479      kes  Add CreateDirectoryA/W win32 API entry points.
480 kes  Add /silent option to Win32 FD for Install/Remove service.
481 kes  Always print Heap statistics in FD.
482 18Apr06
483 kes  Remove the -f option from the chown in Makefile.in for more
484      portability.
485 kes  Change setting the group in Makefile.in to use chgrp for
486      more portability.
487 kes  Implement a write_store and read_store to replace
488      dirstore in reserve.c
489 kes  Implement a Bacula read/write lock for Python rather
490      than using the Python lock to avoid recursive problems.
491 kes  Correct the uninstall directory names in filed/Makefile.in
492      as reported by a user.
493 17Apr06
494 kes  Correct some problems with database creation (new tables).
495 kes  Replace a bunch of old 0x%x by %p.
496 kes  Get first cut of Migration with Job selection working.
497 16Apr06
498 kes  Change store_bit() to store_bool() for the Spooling in 
499      dird_conf.c -kes  bug reported by Robert Nelson.
500 15Apr06
501 kes  Correct Makefile bug found by Dan Langille.
502 14Apr06
503 kes  Correct Makefile for Solaris /bin/sh
504 kes  Correct mtx-changer.in for Solaris /bin/sh
505 kes  Abort if a conf resource does not have a Name =
506 12Apr06
507 kes  Change the name of the regex program to bregex.
508 kes  Add the bwild program to the tools directory. It is similar
509      to the bregex program.
510 kes  Implement create bregex.h and bregex.c in src/lib from the
511      Python regexp program.  
512 kes  Use the new bregex.c to implement Regex expressions on Win32.
513 11Apr06
514 kes  More work on migration.
515 kes  Implement wild program in tools directory for testing
516      wild-cards. Almost identical to the regex program.
517 kes  Up port VSS single thread locking code.
518 kes  Replace N_(..) by NT_(...) to inhibit translation of
519      commands.
520 kes  Modify Makefile to change the permissions on Working Directory
521      to 770 if the directory is created.
522 kes  Do not fail the Makefile if changing the permissions or 
523      owner/group on WorkingDir fails.
524 kes  Remove early selection of Scratch Volumes in the recycling
525      algorithm.
526 kes  Correct the old recycling algorithm so that Scratch Volumes
527      are selected when looking for a Volume in the changer.
528 kes  Correct a typo in the Verify SQL reported by Joe Park.
529 10Apr06
530 kes  Remove automatic case folding on Windows FDs. You must
531      explictly use the 'Ignore Case = yes' option.
532 kes  Remove the code added to 1.38.6 and 1.38.7 that pulls a
533      scratch volume in an Autochanger early in the 'recycling'
534      algorithm.  
535 09Apr06
536 kes  Make weof() and clrerror() methods of class DEVICE.
537 08Apr06
538 kes  Tweak license to include Microsoft restrictions.
539 kes  Move mysql.reconnect to after real_connect().     Thanks to
540      Frank Sweetser for the patch.
541 kes  Disallow a backslash in a File = directive (Windows junk)
542      unless the string is quoted.                     
543 kes  Apply Eric's patch to ua_label.c so that daemon protocol
544      is not translated.
545 kes  Add NT_ definition for strings that should not be translated.
546 kes  Apply NT_() to ua_label.c
547 kes  Remove timed wait for VSS on Win2K3 as it is not yet
548      implemented.
549 kes  Correct bacula.in script to reference bacula-ctl-xx in the
550      sysconfig directory rather than the bin directory.
551 26Mar06
552 kes  Fix a long standing bug in the bacula start/stop scripts.
553 kes  Attempt to add the new bacula-ctl-* files to the rpm.
554 kes  Switch to using typeof() for list traversing to avoid
555      as many FC5 g++ compiler warnings as possible.
556 25Mar06
557 kes  Split the bacula start/start script into four files:
558       bacula         -kes  starts and stops calling other scripts
559       bacula-ctl-dir -kes  starts/stops the director
560       bacula-ctl-fd  -kes  starts/stops the File daemon
561       bacula-ctl-sd  -kes  starts/stops the Storage daemon
562 24Mar06
563 kes  Create datestyle fix for PostgreSQL. Fixes bug #574.
564 kes  Correct editing of JobId from int to int64 in fd_cmds.c
565 kes  Eliminate FileSet name race with bash_spaces() and multiple
566      threads by bashing in a local.
567 kes  Fix error return from 'use storage' to print a correct error
568      message rather than nothing.
569 kes  Correct false re-read last block error message when two jobs 
570      are simultaneously writing at the end of a tape.
571 kes  Simplify exit conditions in the reserve.c code to avoid     
572      possible non-release of reservation_lock().
573 kes  Suffle lock order in reserve to avoid deadlock between
574      reservation lock and device mutex.
575 21Mar06
576 kes  Initialize jcr mutex before first use. Thanks to Thorsten for
577      tracking this down for me !!!! as it broke the Win32 build.
578 20Mar06
579 kes  Integrate addition of line count limitation to bsmtp -l from
580      Sebastian Stark <stark at tuebingen.mpg.de>
581 17Mar06
582 kes  Implement regex test program in tools directory.
583 kes  Attempt to fix time problem with bsmtp with foreign langs.
584 kes  Add strip_trailing_newline() submitted by user.
585 kes  Implement regex matching in migrate.c
586 16Mar06
587 kes  Fix bug #537 to allow arbitrary time to mount a volume for
588      restore, if polling is turned on.     
589 kes  If dir_user or dir-group is specified in ./configure apply it to
590      the working-dir. Fixes bug #533.
591 kes  If rescheduling a job cancel the previous incarnation with the SD.
592      Fixes bugs #566 and 557.
593 kes  Fix bug #567 do_message() definition type conflict.
594
595 14Mar06
596 kes  Add more jcr methods and make mutex and use_count private.
597 kes  Create lock/unlock methods for jcr.
598 kes  Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading
599      records to get to seek position.
600 kes  Integrate patch from bug #561 to correct conio.c signal definitions.
601 kes  Fix Rescheduling failed Jobs. Ensure that SD message thread 
602      terminates correctly by doing pthread_kill(). Do not destroy
603      SD cond wait variable between executions of the job. Use local
604      mutex for cond variable to avoid blocking jcr chain. Fix poor 
605      use of jcr use count in jobq.c for restarted jobs.
606 kes  Fix obsolete usage of foreach_dlist() to use foreach_jcr() in
607      lib/jcr.c -kes  prevents locking the jcr chaing.
608 kes  Apply patch from bug #564, which corrects listing volumes with
609      multiple autochangers. Apply same fix to next volume list.
610 kes  Fix bug #562 where restore bootstrap file is not unique.
611 kes  More details in implementing David's migration syntax proposal.
612 kes  Save and restore dcr when swapping drives so that if we have
613      a write dcr it is not lost.
614 kes  Use new routine lock_reservations() to lock the reservations
615      system, and call it while looking for a volume in askdir.c.
616      This could possibly fix bug #543.
617 kes  Stop SD command loop if job is canceled.
618
619 08Mar06
620 kes  Remove old code from findlib/create_file.c
621 kes  Rename mac.c migrate.c
622 kes  Add user friendly display of VolBytes in job report.
623 kes  Rename target... to previous... to make it a bit easier to
624      understand.
625 kes  Add selection type and selection pattern to Migration (idea
626      given by David Boyes). 
627
628 04Mar06
629 kes  The po files should now be current.
630 kes  Fix new sql_use_result() code to properly release the
631      buffers in all cases.
632 kes  Use the keyword ujobid to mean the unique job id; job or jobname
633      to mean the Job name given on the Name directive, and jobid to
634      be the numeric (non-unique) job id.
635 kes  Allow listing by any of the above.
636 kes  Add the user friendly job report code for reporting job elapsed time
637      and rates with suffexes from John Kodis <kodis at comcast.net>.
638 kes  Add Priority and JobLevel as Python settable items.
639 kes  Use TEMPORARY table creation where the table is created by
640      Bacula.
641 kes  Add new code submitted by Eric for waiting on specific jobid.
642 kes  Add ACL checking for the dot commands.
643 kes  Fix restore of writable FIFOs.
644 kes  Fix a bug in bpipe where the string was freed too early.
645 27Feb06
646 kes  Modify the Python class examples to inherit object -kes  new way
647      of defining classes. Patch from Felix Schwarz.
648 kes  Implement jobuid to replace old usage of job in keywords as
649      suggested by Eric Bollengier.
650 kes  Apply patch for enhancing wait from Eric Bollengier. On can now:
651       wait  (wait for all jobs to stop)
652       wait jobid=nn
653       wait jobuid=unique id
654       wait job=job-name
655 kes  Implement write variables for Python to set Priority (anytime), and
656      Job Level, only during JobInit event.
657 26Feb06
658 kes  Fix the block listing bug pointed out by Arno.
659 kes  Update the po files at Eric's request.
660 24Feb06
661 kes  Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to 
662      accept time qualifiers.
663 kes  Make catalog respect ACL.
664 kes  Add recycle count to Media record.
665
666 Changes to 1.39.6-beta1 24Feb04
667 23Feb06
668 kes  Add Rudolf Cejka's new rc-chio-changer.
669 kes  Implement pulling Volume from Scratch Pool if the
670      Volume is in the autochanger.
671 kes  Implement additional command arguments for update Volume.
672
673 Changes to 1.39.5 
674 22Feb06
675 kes  Back port changes to 1.38.5
676 kes  Fix recycle SQL for StorageId.
677 kes  Fix misplaced quote in mtx-changer script.
678 20Feb06
679 kes  Note. Your database must be updated, or you must create 
680      a new database. I have not yet incremented the database level.
681 kes  Add Location table. 
682 kes  Add LocationId, DeviceId, and MediaTypeId to Media record.
683 18Feb06
684 kes  Implement create/get mac record in database for adding extended
685      Migration data to the job record.
686 kes  Add new MAC table to update/make database scripts.
687 kes  Return Storage name used when getting VolumeNames for a job.
688 kes  Change bsr file keyword Storage to Device, which is more accurate.
689 kes  Ensure that Mac records are pruned/purged.
690 kes  Tweak SD tools to deal with changing media type.
691 kes  Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...)
692 kes  Pass pointer to dcr pointer to acquire_device_for_read() so
693      that the subroutine can switch devices, and hence dcrs.
694 kes  Modify the multiple MediaType read code to re-use the same
695      dcr when switching devices. This makes the code much more
696      robust.
697 kes  Integrate patch from Karl Hakimian that reads JobIds, FileIndexes
698      from a table for restore.
699 kes  Add Storage name to VolParams, but it really should be Device.
700 14Feb06
701 kes  Add disk-changer to scripts directory + configure/Makefile
702 kes  Eliminate PoolId from jcr -kes  it is in jcr->jr.PoolId
703 kes  Implement store_bit scanner to replace store_yesno.     Mostly done.
704 kes  Implement new store_bool that stores in a bool. 
705 kes  Add true/false to yes/no conf directives.
706 kes  Make first cut at changing appropriate store_yesno to store_bool.
707 kes  Complete implementation of Pool storage devices.
708 kes  Move starting clones to job.c
709 kes  Move create_restore_bootstrap_file() to job.c
710 kes  Make copy_storage() more general to be able to handle
711      Pool storage.
712 kes  Cleanup a lot of migration code for manual running, including
713      using Pool storage.
714 kes  Move getting a scratch Volume into a subroutine.
715 kes  Make all places a Volume that is added to a pool to 
716      respect max vols.
717 kes  Fix bug in autochanger recycle code (improper edit 64 bit).
718 kes  Fix segfault in restore command when no value specified.
719 kes  Start adding code to handle multiple MediaTypes in restore.
720 kes  Eliminate race condition in getting Volume name for
721      two drive autochanger.
722 kes  More debug code in autochanger.
723 kes  Add storage keyword to bootstrap file, add parsing.
724 kes  Move slot in bsr file into Volume record as there will be
725      a different slot for each Volume.
726 kes  Create reserve.h
727 07Feb06
728 kes  Implement Pool storage overrides.
729 06Feb06
730 kes  Implement first cut of Migration.
731 kes  Implement mysql_use_result() from patch by Karl Hakimian.
732      This reduces significantly the memory consumption during
733      the restore tree building, and hence runs faster too.
734 kes  Implement StorageId patch supplied by user (reggie) in bug
735      #536.  This should permit Bacula to work correctly with two
736      autochangers.
737 kes  Implement Job listing variations suggested by a user.
738 kes  Move updating bootstrap code in backup.c to subroutine
739      update_bootstrap_file().
740 kes  Add new job status elapsed time and bytes written user
741      friendly job report output patch sent by John Kodis
742      <kodis at comcast.ne>.
743 kes  Implement a storage list in Pools.
744 kes  Separate out setup_job() code from run_job().
745 kes  Get migration working -kes  lots of changes in mac.c in both
746      DIR and SD.
747 kes  Apply patch from user (Eric Bollengier I think) that fixes a     
748      DIR crash when no arguments are supplied to a dot command.
749 kes  Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin.
750 kes  Fix command arg name->volume in label command of gnome-console.
751 kes  Fix SD acquire.c to release correct DCR by explicitly testing
752      on the dcr address rather than trying to devine if it is a read
753      or write dcr.  This failed in error conditions when the device was
754      not fully setup.
755  
756 30Jan06
757 kes  Apply user supplied patch for more readable rate output
758      in job report.
759 kes  Continue implementing migration.
760 kes  Implement support for removable filesystems in SD.
761 kes  Ensure that btraceback scripts can be read by anyone.
762 kes  Replace dvd-freespace and dvd-writepart by dvd-handler.
763 kes  Correct bug where canceling restore before the FD contacts
764      the SD causes the drive to be left in read mode.
765 kes  Move ofline_or_rewind into DEVICE::close().
766 kes  Eliminate close_device.
767 kes  Convert several dev subroutines to methods (e.g. bsf,
768      eod, ...)
769 kes  Eliminate force_close_device().
770 kes  Implement Device Type directive in Device resource that
771      can have values File, Tape, Fifo, DVD, or Prog.
772 kes  Add has_cap() method to Device.
773 Changes to 1.39.4
774 17Jan06
775 kes  Add patch from bug #527 to allow RedHat user to specify
776      options/user/group for starting each daemon in      
777      /etc/sysconf/bacula.
778 16Jan06
779 kes  Add two new queries to query.sql provided by Arno. One
780      list volumes known to the Storage device, and the other
781      lists volumes possibly needing replacement (error, ...).
782 15Jan06
783 kes  Add periodic (every 24 hours) garbage collection of memory 
784      pool by releasing free buffers.
785 14Jan06
786 kes  Correct bug counting sized (for display only) in smartall.c
787 kes  Print FD mempool stats if debug > 0 rather than 5.
788 12Jan06
789 kes  Make db_lock() mutex error fail the job rather than abort
790      Bacula.  Canceling the job caused the mutex to fail.
791 kes  Correct bug in alist.c that re-allocated the list if the
792      number of items goes to zero.
793 kes  Move the reservation system thread locking to the top level
794      so that one job at a time tries all possible drives before
795      waiting.
796 kes  Implement a reservation 'fail' message queue that is built            
797      and destroyed on each pass through the reservation system.
798      These messages are displayed in a 'Jobs waiting to reserve
799      a drive' list during a 'status storage='.  Note, multiple
800      messages will generally print for each JobId because they
801      represent the different problems with either the same drive
802      or different drives.  If this output proves too confusing
803      of voluminous, I will display it only when debug level 1
804      or greater is enabled in the SD.
805 11Jan06
806 kes  Add enable/disable job=<job-name>.     This command prevents
807      the specified job from being scheduled. Even when disabled,
808      the job can be manually started from the console.
809 kes  During 'update slots' clear all InChanger flags where the
810      StorageId is zero (old Media records).
811
812 Beta release 1.38.4:
813 09Jan06
814 kes  Fix autochanger code to strip leading spaces from returned
815      slots number. Remove bc from chio-changer.
816 kes  Back port a bit of 1.39 crypto code to reduce diffs.
817 kes  Fix first call to autochanger that missed close()ing the
818      drive. Put close() just before each run_program().  Fixes
819      Arno's changer bug.
820 07Jan06
821 kes  Add PoolId to Job record when updating it at job start time.
822 06Jan06
823 kes  Pull in more code from 1.39 so that there are fewer file
824      differences (the new ua_dotcmds.c, base64.h, crypto.h
825      hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c 
826      util.c. Aside from ua_dotcmds.c these are mostly crypto
827      upgrades.
828 kes  Implement new method of walking the jcr chain. The
829      incr/dec of the use_count is done within the walking
830      routines.  This should prevent a jcr from being freed
831      from under the walk routines.
832
833
834 Changes to 1.39.3:
835 04Jan06
836 kes  Start implementing Verify list output.
837 kes  Move the suitable_drive flag to a better place to prevent
838      premature termination of the reservation if all drives
839      are busy -kes  should fix Arno's diff/inc pool failures.
840 26Dec05
841 kes  Add mutex to single thread VSS code in Win32.
842 22Dec05
843 kes  Simplify code in askdir.c that waits for creating an appendable
844      volume so that it can handle multiple returns from the wait
845      code.
846 kes  Modify the wait code to permit multiple returns.
847 kes  Return a zero when "autochanger drives" is called and
848      it is not an autochanger.
849 kes  Make rewind_dev() a method taking a DCR as an argument.
850      This permits closing and reopening the drive if the
851      rewind fails as happens if the drive was loaded while the
852      file descriptor was open. This refreshes the file descriptor.
853 kes  Remove the ST_OPENED flag and always rely on fd < 0 for knowing
854      if the device is open or not.  This should eliminate
855      Arnos problem.
856 kes  Return error if reserve cannot find at least one suitable device.
857 kes  Make wait_for_sysop() return correct state information.
858 kes  Fix Win32 state file problem. write was not using compat
859      code. This should fix bug #500.
860 21Dec05
861 kes  Modify gui on command to set only GUI mode and not batch.
862 kes  Modify .messages command to always print messages regardless
863      of the mode.
864 kes  If GUI mode is on, suppress automatic printing of 
865      You have messages. 
866 kes  Delete old bnet packet code.
867 kes  Ignore new BNET_START_SELECT and BNET_END_SELECT signals in
868      wx-console. -kes  not implemented because bconsole must be updated.
869 kes  Modify restore command in wx-console to set gui on and to use
870      only .messages instead of messages.  Hopefully this fixes bug
871      #514.
872 kes  Fix seg fault in exit of acquire when canceling a job --
873      reported by Wolfgang Denk
874 kes  Pull in latest reservation system changes from 1.38
875 kes  Make .messages command always print messages regardless
876      of the automessages flag.
877 17Dec05
878 kes  Fix seg fault if user labels a drive directory bug #513
879 kes  Remove quotes around Version as it breaks things.
880 16Dec05
881 kes  Merge in Aleksandar Milivojevic's mods to the spec file.
882 kes  Apply sparse code fix for raw drives and fifos. Bug 506
883 kes  Thorsten fixed Unicode cd problem with wx-console bug 505.
884 14Dec05
885 kes  Correct reservation system to do a last ditch try
886      for any mounted volume, then anyone anywhere.
887 kes  Add quotes around table Version because of
888      error in MySQL 4.1.15 -kes  bug report submitted.
889 kes  Correct some minor problems with btape in the fill
890      command.
891 kes  Updates to ssh-tunnel from Joshua Kugler.
892 kes  Added a report.pl program from Jonas Bjorklund.               
893 kes  Simplify the O_NONBLOCK open() code for tape drives,
894      and always open nonblocking.
895 kes  Do not wait for open() if EIO returned (shouldn't happen).
896 kes  Eliminate 3 argument to tape open().
897 kes  Correct the slot # edited in the 3995 Bad autochanger unload
898      message.
899 kes  With -S on bscan (show progress) do not divide by zero.
900 13Dec05
901 kes  Make cancel pthread_cond_signal() pthread_cond_broadcast().
902 kes  When dcr is freed, also broadcast dev->wait_next_vol signal.
903 kes  Remove unused code in wait_for_device.     
904 kes  Make wait_for_device() always return after 60 seconds of wait.
905
906 Changes to 1.39.2:
907 13Dec05
908 kes  Add stubs for non-crypto build.
909 12Dec05
910 kes  Use localhost if no network configured
911 11Dec05
912 kes  Eliminated duplicate MaxVolBytes in cat update -kes  bug 509.
913 kes  Remove debug print.
914 kes  Add bail_out in error during state file reading.
915 10Dec05
916 kes  Merge changes made to 1.38.3 into HEAD
917 kes  Add stubs for pygtk-console code
918 kes  Create Makefile.in for pygtk-console code
919 09Dec05
920 kes  Merge updates into 1.38 branch
921 kes  Update specs to include mysql4 define.
922 kes  Fix when attributes are sent, must be after binit().
923 kes  Stop read_record() if status not ok in second loop.
924 kes  Return rec->FileIndex in dcr->VolLastIndex for normal
925      and partial records in read_record().  This allows bscan
926      to get FileIndex at EOT correct.
927 kes  Fix butil.c to correctly set dcr -kes  fixes seg fault in bls.
928 08Dec05
929 kes  Fix Win32 built to work with new crypto code.
930 kes  Apply patch supplied by user (slightly modified) to fix
931      correct detection of holes in block devices and FIFOs. 
932      Bug # 506.
933 kes  Apply patch supplied by user (slightly modified) 
934      to fix SD hang with multiple pools and bad client
935      IP. Fixes bug # 508.
936 07Dec05
937 kes  Add nagios plugin to the examples directory. Submitted by
938      Christian Masopust.
939 kes  Remove warning message about multiple saves of hardlinked files
940      from find_one.c as it can generate too many warning messages.
941 kes  Modify most restore error messages to be queued so that they
942      appear at the end of the job rather than mixted with the restore
943      listing where they could be "lost".
944 06Dec05
945 kes  Reset timeout values before select() per patch from 
946      Frank Sweetser for problems with non-blocking sockets.
947 kes  Unlink the state file if either reading or writing it gets
948      errors.  Hopefully this will fix Win32 exit problems.
949 kes  Add sanity check in append.c to ensure that dcr is not NULL.
950      This can happen if multiple drive autochanger SCSI control
951      channel and drive indicies do not correspond.
952 05Dec05
953 kes  Get next volume from Scratch pool before creating a volume.
954 kes  Set new Pool defaults in Vol when moved from Scratch Pool.
955 kes  Remove argument from create_bacula_database for SQLite as it
956      caused an error.
957 kes  Add back index code so that two drive autochangers can get
958      a second tape.
959 kes  Change a bunch of debug levels to aid debugging autochangers.
960 kes  Fix reservation so that mutexes are properly applied.
961 kes  Rework reservation algorithm so that two drives can be used
962      at the same time.
963 04Dec05
964 kes  Landon merged his data encription changes into the HEAD
965 kes  Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at 
966      If this patch is applied, the number of days can be specified with
967      "list nextvol days=xx"
968      or
969      "status dir days=xx"
970      My use case is to be able to preview the next scheduled job (and the 
971      next tape to be used) on fridays if there are no scheduled jobs during 
972      the weekend.
973 Changes to 1.39.1:
974 03Dec05
975 kes  Fix font code in gnome2 console user patch. Fixes bug #501.
976 kes  Fix malformatted bnet error message that caused seg fault
977      fixes bug 502
978 kes  Applied user patch to improve README.vc8 in src/win32.
979 29Nov05
980 kes  Add Migrate, Copy, Archive Job types (some where there)
981 kes  Correct some more editing of JobId's (for 64 bit compatibility).
982 kes  Ensure that StorageId is stored in Media record when ever possible.
983 kes  Add Migration Job to Job.
984 kes  Add Migration Time, Migration High Bytes, Migration Low Bytes
985      Next Pool to Pool resource.
986 kes  Add more code to mac.c (migration archive copy).
987 kes  Change Start Storage daemon job to require read and write storage
988      pointers.
989 kes  Pass read storage data to SD as well as write storage data.
990 kes  Remove old code from winservice.cpp
991 kes  Break on error in scan.
992 kes  Fix typo in signal.c
993 kes  Separate read/write DCR in SD.     Add jcr->read_dcr.
994 kes  Cleanup how find_device() works.
995 kes  Add read output to Status in SD.
996 Changes to 1.39.0:
997 23Nov05
998 kes  Add red-black btree routines
999 21Nov05
1000 kes  Remove abs() in bfile.c so that it compiles on Solaris. 
1001      Bug #491.
1002 20Nov05
1003 kes  Fix crash in tray-monitor when daemon disconnects. Bug #479.
1004 kes  Fix bnet-server bug found on OpenBSD. Bug #486
1005 kes  Fix cancel failure bug. Bug #481
1006 kes  Fix failure when Pool name has spaces. Bug #487      
1007 kes  Fix SD crash in autochanger code. Mutex failure. Bug #488
1008 kes  Fix a couple of free()s in src/filed/acl.c
1009 kes  Fix memory overrun in bfile.c in building OS X resource
1010      fork filename. Bug #489 
1011 kes  Add Pool name to SD status output.
1012 14Nov05
1013 kes  Apply SunOS patch for ACLs submitted by David Duchscher.                     
1014 kes  Make sure to set storage before trying to set drive.
1015 kes  Add bacula_mail_summary.sh to examples directory. It makes
1016      a single email summary of any number of jobs. Submitted
1017      by Adrew J. Millar.
1018 kes  Make sure when we do a mount to unblock the device even
1019      if the drive could not be opened.  
1020 13Nov05
1021 kes  Remove the USE_WIN32STREAMEXTRACTION #defines (always on)
1022      and correct a few minor problems to make it build on Linux.
1023 10Nov05
1024 kes  Remove delete of CVS from all Makefiles
1025 kes  Fix seg fault when clicking on Add button in wx-console
1026      restore panel.  Bug #470.
1027 kes  Fix copyright date and URL typo -kes  bug #468.
1028 kes  Change autostart install for FreeBSD to look for rc.conf     
1029      rather than rc.local as suggested fix for bug #466.
1030 kes  Apply patch supplied by Eric Bollengier to fix PostgreSQL       
1031      grant on status. Bug #465
1032 kes  Apply patch supplied by Eric Bollengier to fix PostgreSQL
1033      update script. Bug #464
1034 kes  Tweak #ifdefing a bit in new Win32 stream code.
1035 kes  Fix #ifdeffing for FD_NO_SEND_TEST.
1036 kes  Add documentation of performance #defines