Robert Nelson [Fri, 14 Jul 2006 18:33:46 +0000 (18:33 +0000)]
Rewrite msvcrt localtime kludge so it doesn't used undocumented functions and compiles on MinGW.
Fix an "ifndef" to "if defined" typo in message.c.
Add FsType support to WIN32 - example types are: ntfs, fat, fat32, cdfs.
- Correct bug I introduced into RunScripts enum.
- Add log table to Catalog
- Purge original job migrated if the migration terminates normally.
- Cleanup purging of files/jobs so that it is done only in a
single subroutine.
- Add new VOLMGMT message class.
- Add Catalog message destination (user conf code remains to be written).
======================= Warning ==========================
Separate read and write storage in Jobs in the Director. This
is a major rewrite of some of the low level code and hence has
a high probability of introducing bugs.
==========================================================
- Move the job init code up to *before* the job is put into
the job queue (resource allocation queue). This permits the
job to establish whether it will read or write or do both.
- Add name() methods to all the resource classes.
- Implement separate read and write storage resource
allocation/deallocation in jobq.c
======================= Warning ==========================
Implemented new method of getting the default Storage from the Media
record rather than from the MediaType for restore. As a fall
back, if no Storage is defined, use the MediaType. This
eliminates most all prompts if there are multiple MediaTypes
used. This is an important and fundamental change.
==========================================================
- Add more detail (Storage, Device) to list of volumes printed
for restore.
- More code in migrate. In particular start multiple jobs if
migrating a volume.
- Probably overkill, but ensure that the bsr is unique even within a
job in FD and SD.
- Rework bsys.c drop() so that it now should work as expected.
- Update a bunch of old copyrights -- particularly in .h files.
- Remove src/lib/bshm.c/h
======================= Warning ==========================
All hash codes in the database are now kept in world
compatible base64 format (no = filling). This means that
all FileSets will be updated and if you are running
verify jobs, you must do an InitCatalog.
Authentication uses the new algorithm, but should be
backward compatible with 1.38.x
===========================================================
- Modify the authentication routines so that the 1.39.15 Director
always runs with the compatible binary to base64 code (same as
the rest of the world). It will however detect if an SD or
FD is running the old code and if that is the case, will use
the old algorithm for authentication. However, all consoles must
use the compatible algorithm, and all data entered into the database
(all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will
use the compatible algorithm.
- Rename the cram_md5 routine names to be slightly more appropriate
to what they are doing (challenge and respond).
- Robert committed his #ifdef and header cleanup.
Robert Nelson [Mon, 3 Jul 2006 07:51:06 +0000 (07:51 +0000)]
Fix header file includes.
Move externs from source files to header files.
Fix the old mingw Makefile so it builds with the new dependencies.
Replace #ifdef'ed InitWinAPIWrapper with OSDependentInit macro.
Kern Sibbald [Fri, 30 Jun 2006 09:55:57 +0000 (09:55 +0000)]
- I removed a size_t from the jcr.h definition.
- Update the tape regression scripts (still to be tested).
- Add gcc and gcc-c++ requires to srm as suggested by a user.
- Require done or quit to exit from in memory tree restore.
Kern Sibbald [Mon, 26 Jun 2006 19:52:15 +0000 (19:52 +0000)]
- Write install/uninstall of new manpages. There are now a
pile of man pages. Some of which need a lot of work.
============= Warning ==================================
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.
===========================================================
Kern Sibbald [Mon, 26 Jun 2006 16:00:29 +0000 (16:00 +0000)]
- Add complete text of GPL to LICENSE.
- Implement job report that indicates where Storage and Pool
came from -- with overrides and Pool storage and NextPool,
it is all very complicated.
- Create a few common subroutines for backup.c and migrate.c
- Eliminate warning messages from tray-monitor.c
Kern Sibbald [Sun, 25 Jun 2006 13:58:36 +0000 (13:58 +0000)]
25Jun06
- Apply fix for scheduler for missing unlock_jobs().
- Clean out autoconf caches before rebuilding configure
- Fix the FreeBSD pthreads lib define updated by Dan.
- Add missing semicolon in src/console/console.c
- Add Robert's enhanced version of build-win32-cross-tools
as well as his patch file.
- Note, the new gcc options are likely to break building of
wx-console or the tray-monitor ...
24Jun06
- Implement Robert's suggestion to suppress printing compile lines.
- Detect GCC correctly (I hope)
- If using GCC (actually g++) add the following compiler flags
-fno-strict-aliasing -fno-exceptions -fno-rtti
- Turn on new bsnprintf() code.
- Fix crypto when not using openssl. I previously overlooked this.
- Eliminate crypto type punning problems by eliminating void * and
using uint8_t * instead.
- Harden authentication failure in FD by single threading errors
and forcing a 6 second wait.
Kern Sibbald [Sat, 24 Jun 2006 07:53:36 +0000 (07:53 +0000)]
- ========= Remove Accept Any Volume ========= directive.
- Major cleanup and simplification of regress using shell functions
(more tests to be converted to new format)
- Add detection of 64 bit Irix as indicated by user.
- Increment catalog database id from 9 to 10.
- Add a few of the new database fields to the various C++
structures.
- Implement code to fill in the most important new fields (e.g.
Media Enable).
- Ensure that most of the new fields are in create/get/insert/update.
More work to be done.
Kern Sibbald [Thu, 22 Jun 2006 09:55:43 +0000 (09:55 +0000)]
- Update some very old licenses in src/cats.
- 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.
- Delete mac_record subroutines.
- Add new table values to create/update/get routines as appropriate.
- Update the update_tables and make_tables scripts.
- Make a first cut in using a union where multiple pointers (actually
pointers to pointers) are stored.
- Make some changes to base64.c suggested by Robert and others and add
a small amount of documentation.
- Add some changes suggested by Peter for Solaris (bregex...)
- Make runscript.h always built because it needs to be pulled into
more places. In particular its RES was left out of a union.
- Renumber the enum{} list in runscript.h to avoid starting from zero.
This makes it slightly easier to detect uninitialized variables.
Kern Sibbald [Wed, 14 Jun 2006 13:06:41 +0000 (13:06 +0000)]
- Remove xpg4 lib from FreeBSD build as it is no longer needed and
sometimes creates install problems.
- Change a couple of %T in strftime to %H:%M:%S as seen in Robert
Nelson's code. More to do.
- Convert a few store_bit to store_bool in filed_conf.c.
- DVD tweak to block.c as supplied by Uwe Muessel.
Kern Sibbald [Thu, 1 Jun 2006 08:08:30 +0000 (08:08 +0000)]
- Implement partial error messages for src/filed/acl.c
- Fix return code to fail when doing update barcodes and
Pool resource is not found. This previously caused Volumes
to be labeled as cleaning tapes.
- Small updates to projects.
Kern Sibbald [Fri, 26 May 2006 21:02:29 +0000 (21:02 +0000)]
26May06
- Prevent DVD code from rewriting label if the device cannot be
opened read/write.
- Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to
fix Debian build bug.
- Fix Dir/SD run race in migrate.c, verify.c, and restore.c
- Integrate manpages contributed by Jose Luis.
- Update projects file.
- Add manpages Makefile.in to configure.in
- Remove installation of bacula.8 in scripts directory.
24May06
- Implement 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).
Recent versions of the Linux kernel and glibc have support for it (the
glibc support being mostly copying the O_NOATIME definition to
bits/fcntl.h). If there's no support for it on the kernel, trying to use
it does nothing (since the kernel ignores unknown flags).
If the kernel has support for it, trying to use it either works, fails
silently (mostly in remote filesystems), or returns errno=EPERM (if you
are not either the owner of the file or root). A simple way to prevent the
failure is to open the file without the flag and set it later with
fcntl(F_SETFL), ignoring any EPERM errors.
- Applied patch posted by Jaime Ventura to bug #570 to correct failure
of restarted jobs to complete (due to a destroyed pthreads conditional
variable used by the message thread).
- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes
set to zero.
- Apply patch from John Goerzen bug #611 to fix bad manual links in the code.
- Apply patch from Rudolf Cejka bug #614 to removed trailing
colons in query.sql file.
- Apply patch from Rudolf Cejka bug #613 to correct prunning of files
not to create orphans.
- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime
in restore long listing.
- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead
of incorrect MarkedId.
- Apply patch from adioso bug #616 to correct text in manual (replace
Director with File daemon).
- Rework a few of the zlib changes so that they build properly.