1 Technical notes on version 1.30 28Apr03
7 Changes submitted this submission:
9 - Fix command history for gnome-console (must malloc).
10 - Add two cancel points in acquire_resources(). The job will not
11 be immediately terminated in all cases.
13 - The new AutoMount code broke File archives -- fixed.
15 - Correct watchdog mutex race introduced yesterday.
16 - Add JobLevel to Admin run started by UA.
17 - Add -v to daemon startup scripts
19 - Implement bmicrosleep(sec, msec);
20 - Implement When for "run" command.
22 - Remove unsigned from socklen_t definition in hopes it will work better
24 - Remove code that attempts to set PID dir and SUBSYS dir if they
25 do not exist because it set them to sbindir!
26 - Modify mount to initially attempt to read the volume if Bacula
27 wants a tape, none is mounted, and "Automatic Mount = yes" is set.
29 - Prohibit setting --sbindir and --with-subsys-dir the same.
30 - Fix missing argument that cause Kaboom in update slots.
32 - Fix orphaned bsock when UA gets error contacting FD or SD
33 - Nearly full implementation of Win Backup API, but it does not
34 work due to lack of permission! Arggg!
36 - Implemented restoring directory permissions as they should be.
37 - Implemented reasonable regression script. It found a number of
39 - Implemented the following @ commands in the console that work directly
40 in the console rather than in the Director.
41 input - read input from a file
42 output - write output to file
43 tee - tee output to file and terminal
44 time - print current time
45 version - print current version
48 - Implemented new bfile io routines that will permit implementation of
49 Windows native APIs for reading/writing files.
50 - By default always update hard links with the prefix, but do
51 not update soft links. It seems inconsistent, but it is what
53 - Implement wait command in Console that waits until no jobs are running.
54 - Fixed the < code in Include/Excludes, which forgot to skip over the <.
55 - Do NOT attempt to chmod() a soft link as it will change the file behind
57 - OOPS! Lutz ran into a problem. In attempting to prevent string overflows,
58 I used bstrncpy() on a variable that was malloc'ed thus truncating
59 Volume names! Arrrggggg!
60 - Lots of documentation of new features.
61 - Rework Volume name scanning in console, made much more logical
62 and corrected a bug (confusion in calling sequence).
63 - Cleaned up a few error messages in cats adding more info.
64 - Add the IP address to error messages due to bad connects to servers.
65 - Implement default File output in config files so user can start
66 saving right away without a tape drive.
67 - Protect inet_ntoa() with mutex in case it is not thread safe.
68 - Eliminate termcap from use in gnome console.
69 - Remove unused SD maximum volume files and maximum volume jobs. They
70 are implemented in the Director.
71 - Make the default for Incremental and Differential saves to compare
72 against both st_mtime and st_ctime rather than just st_mtime.
73 This includes files moved or copied.
74 Thanks to Matthias Wamser for bringing this fix to our attention.
75 - On Win32 clients, make a pass through the include/exclude patterns
76 and change any back slashes to foward slashes. Prevents creating
77 unusable directory names containing both conventions.
78 - Move ls -l output on restored files to M_RESTORED class.
79 - Make gnome-console compile correctly on RH8.0
80 - label barcodes now works.
81 - Implemented "update slots".
82 - Tweak btape "test" to always print suggestion for re-read last block.
83 - Implemented "Cleaning Prefix"
84 - Update alter_mysql_tables.in
85 - More work on barcodes.
86 - Zap VolHdr in SD when attempting to label a tape that is not
87 there. Prevents false tape names the next label command.
88 - First cut of bar code reading is implemented. It doesn't do
89 anything but return the list to the Director.
90 - Implemented relabel command that relabels "Purged" Volumes.
91 - Check exit code in RunBeforeJob and err the job if it is non-zero.
92 - Remove old testsuite -- too complicated
93 - Print length when Authorization fails because of bad length.
94 - Fix problem of NumVols in Pool getting reset on startup.
95 - Implement full listing of DB records by listing them vertically
96 instead of horizontally.
97 - Make changes to mysql scripts as suggested by Lutz Kittler
98 - Fixed code to write Uname to Client record.
99 - Fixed a problem (in btape) where Pmsg() was not printing.
100 - Moved re-read last block test to last in "test" command of btape.
101 - Lots of new documentation.
102 - Fixed newvol.c to handle retrying 10 times if the volume name already exists.
103 - Removed int_least16_t from sha1.h because it does not exist on some systems.
104 - Release job in SD if canceled and waiting on a mount (better cancellation).
105 - Prompt for Client in restore if not specified.
106 - Print "Selection is empty!" if no selection list found.
107 - Add new spec files and bacula.desktop from Scott.
108 - Update client every time a job is run.
109 - Add verbose option to daemons for printing more user error info.
110 - Test if console works with readline 4.3 (yes, it is OK).
112 - Release new winbacula.
113 - Add Uname info to Client DB record.
114 - Improve error messages and make them more consistent when a non-existent
116 - Separated the -mwindows option so that only Windows programs
117 are built with it (bacula-fd, ...) the tty tools such as console
118 dbcheck, smtp, testfind, ... are now able to be run in a standard
120 - Add | and < options to Exclude the same as in Include.
121 - Add typed in input to the text window in the gnome-console.
122 - Change function that gets the entry text (previously had orphaned buffer).
123 - Fix multiple Director problem in gnome-console (thanks to Lutz Kittler).
124 - Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive.
125 There are a number of significant differences: 1. reading less than
126 the number of bytes in a record returns an I/O error. 2. ioctl(MTEOM)
127 looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM))
128 leave you positioned after the second EOF, so you must backspace file
129 to be able to append.
130 - Added BSF at EOM = yes/no to Device resource to allow proper positioning
131 at the end of a FreeBSD tape.
132 - Made btape "test" do much better testing of error conditions (i.e.
133 it now ensures that the append went well). It will automatically
134 detect problems and apply fixes and then retry the test, if it
135 finally succeeds, it clearly says what directives need changing.
136 - Add Scott Barninger's rpm changes to the build environment
137 - Add changes to mtx-changer so users can add eject and sleep for
138 certain autochangers.
139 - Implemented FreeBSD chflags (user defined flags).
140 - Turn restore errors during setting of owner and modes into
141 warning messages -- for restoring files as non-root.
142 - Fix how prefixes are handled in restoring soft links.
143 - Modified btape "test" command to do only those things that
144 Bacula actually does. There is much more explanation, ...
146 - Finally had to back up to gcc version 2 from version 3 to avoid version
148 - Final cygwin tweaks.
149 - Move start time to *after* the resource locks are acquired.
150 - Unable to duplicate Phil's disabling of Bacula with nmap, but
151 did make the authentication code a bit more conservative for
152 dealing with bad input.
153 - Added code to the query command to escape all strings input
154 before substitution and sending to the SQL engine.
155 - Escape user entered filenames for restore command.
156 - Cleaned up the waiting code a bit -- using broadcast instead
157 of signal and counting the waiters.
158 - Implement new pthreads semaphore code.
159 - #define new semaphore code rather than workq on USE_SEMAPHORE.
160 - Lots of improvements to the document to address recent support requests.
161 - Implement cycle through a set of tapes suggested by Eugeny
162 Fisher with the "RecycleOldestVolume=yes" record in the
163 Pool resource. Basically this record causes Bacula to purge
164 to oldest tape when no more tapes are found.
165 - Correct a number of small incorrect interactions between limit
166 variables during recycling.
167 - Corrected a bug in db_create_media_record() where VolMaxFiles and
168 VolMaxJobs was not written to the database.
169 - When the Director starts, the Pool record is updated in the
170 database with the current contents of the Pool resource.
171 - Corrected bnet_connect() to immediately stop (rather than looping
172 for the timeout period) if there is a fatal error (socket, or
174 - Reworked "purge" code to make purging Volumes easier.
175 - Made "list volumes" list the volumes in all pools -- also
176 "list volumes pool=Default" does not produce and error message.
177 - List Pool record after doing "update pool".
178 - Remove pid file code from Win32 -- not really necessary.
179 - Make bnet handle null jcr during cancel rather than crash.
180 - Add CygwinInstall.bat and CygwinUnInstall.bat
181 - Add db_lock() around newvol.c code to prevent race condition if multiple
182 callers want a new Volume name.
183 - Lots of cleanup to Win32 code, with additional error messages.
184 - Make Bacula work on Win95 (test for GetAttributesEx).
185 - Add better error messages when end of media is reached or volume
187 - Turned off signal catching in readline(), necessary to keep console
188 from crashing on ctl-Z with RedHat 8.0. Thanks to David Craigon for
190 - Make the 3rd and hopefully final change to the Finclude structures.
191 This new version permits multiple sets of options (more code to be
192 written) to be applied against the same set of files. Thus one can
193 have options that with match of *.gz and a different set of options
195 - Integrated GNOME Console font resource code supplied by Phil Stracchino.
196 - Check for job_cancelled() in bnet_connect() code to stop wait loop if
197 client not available.
198 - Fix early end of file scanning conf file in lex.c, which previously
199 caused ABORT -- now reports error. This could happen with an unterminated
201 - Move Maximum File Size code before write and detect error on writing EOF.
202 - Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler.
203 - Added detection for Solaris 2.6, which uses older setsockopt() calls.
204 - Defined sockopt_val_t for setsockopt() calls.
205 - Added fixes sent by Bevan Anderson that fix multiple connects to FD
206 (I zap keys for security, so must put back dummy key). Also a fix
207 to the Internal database that wrote garbage after the filename in
209 - Back out the __SVR4 changes.
210 - Add automatic configuration of socklen_t
211 - Attempt to fix problems reported by Lutz with multiple simultaneous
212 open file Volumes (experimental code). Serialized acquire. This may
213 fix the problem, but more thought and testing is necessary.
214 - Add table of "supported" autochanger models.
215 - Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz.
216 - Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker
218 - Eliminate FileOptions. Implement new Finclude and Fexclude that
219 have file options contained in it. New structure must be transmitted
221 - Split Include/Exclude into new inc_conf.c file.
222 - Cleanup new Include/Exclude and FileOptions. Structures in Director
223 now correct. Must transmit FileOptions to FD.
224 - WARNING: With the adddress and port code in the Catalog you MUST
225 remove old address= and dport= records!!!!!
226 - Added code to remove cancelled jobs from the workq -- needs testing.
227 - Added first cut AIX from output James MacLean sent me.
228 - Second cut of FileOptions.
229 - First cut of parsing FileOptions and Counters.
230 - Added address:port for MySQL as well as socket for local access.
231 - Fixed job.c in filed to properly handle excluded files. Apparently
232 I changed the daemon protocol but forgot to update the code.
233 - Enhance testfind to handle include and exclude files
234 - Fix getdomainname() prototype for Darwin
235 - Added new -u and -g options for specifying userid and groupid to
236 use when running, so that Bacula can reduce its privileges.
237 - When Bacula was hanging due to an NFS volume being down, I
238 fixed a few places in the File daemon where is should have immediately
239 terminated the connection instead of waiting for the Director to do so.
240 - Added first cut support for Darwin.
241 - Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems.
242 - Implemented O_NOFOLLOW in creating files in create_file.c to prevent
243 creating a file at the end of a symbolic link.
244 - Use chown() if lchown() does not exist (e.g. Darwin).
245 - Always close stdin on startup to avoid having /dev/console attached.
246 - Change all DATE occurrences to BDATE because it is used by Cygwin headers.
247 - Add printing of Volume names in SD status output.
248 - Display all open devices in device chain in SD status output.
249 - All changing Pool in console run command.
250 - Thanks to Eric Bollengier for pointing out that the run_program()
251 return status was not correctly generated. Now fixed (I hope).
252 - Corrected crash in Internal Database getting Volumes.
253 - Flush all daemon messages at the end of every job.
254 - Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems.
255 - Minor changes in the gnome-console directory.
256 - Integrated in my old Tcl/Tk code into src/tconsole and moved it up
257 from C to C++. Pretty crude, but it is a beginning.
258 - Close syslog() %n exploit in message.c
259 - Edit space before each line in gconsole.
260 - Added INCEXE structure so we can have FileOptions.
261 - Added support for multiple simultaneous open file volumes.
262 - Fix hard linked files so that the one saved is always restored.
263 - Add * to restore "dir" listing to indicate marked files.
264 - Add ability to make md5sum and sha1sum in lib directory.
265 - Work a bit more on the new daemon protocol.
266 - Use unmask of 022 or more restive
267 - Create File volumes with 0640 permissions
268 - Added support for SHA1 signature. Need to modify DB to have type.
270 - Work a bit on getting proper child status from bpipe calls.
271 - Added Ludwig's mtx-changer to the examples/devices directory.
272 - Added a Warning not to use the Internal Database when it is initialized.
273 - Compiled and tested sha1, and added it to the library.
274 - Added code to print the "load slot" status after autoloading.