X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FReleaseNotes;h=fe281432e7b52a794e99ec775404f98b8e6fbf25;hb=1e32b9b18aa40e516767aae2503fe3d8620ef286;hp=42cb27e695de13464cbe5a6332cfc23924690d0e;hpb=dca54838ee8d080535e0349705238fa749b5a812;p=bacula%2Fbacula diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 42cb27e695..fe281432e7 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,151 +1,177 @@ - Release Notes for Bacula 1.37.2 + Release Notes for Bacula 3.0.2 + + Bacula code: Total files = 1,009 Total lines = 205,726 (Using SLOCCount) + +Note, if you are not already running 3.0.x, read the 3.0.x release notes +below. Important!!! + +Version 3.0.2 is primarily a important bug fix update to version 3.0.1 with +some enhancements (see below). + +Changes since 3.0.1: + +Bug fixes: + 1029, 1285, 1298, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1311, 1315 + 1317, 1318, 1323, 1325, 1331, 1333, 1335 + +Fixed: + - Fix problem with the Postgresql driver that sometime displays values + - Cleanup old job records when starting the Director + - Fix bugs in xattr code + - Fix encoding problem with Postgresql + - Fix that prevents restore by file selection from using Copy job + +Enhancements: + - Security enhancement for the File Daemon + - New directive to specify source address for outgoing connexions + - Show volume availability in autochanger when doing restore. + This is project 31 in the projects file. + - Add accurate=yes/no option to estimate command + - Add --with-hostname, --with-bsrdir, --with-logdir to ./configure + - Add a restore menu that contructs a full restore when entering a JobId. + This is project 2 in the projects file. + - Add new Nagios plugin + +Compatibility: +Like always, both the Director and Storage daemon must be upgraded at +the same time. + +Older 3.0.x and possibly 2.4.x File Daemons are compatible with the 3.0.2 +Director and Storage daemons. It should be no need to upgrade older File +Daemon. + +============ Documentation improvements needed ================== + +Note!!!!! The 3.0.0+ documentation needs rather extensive modifications in the +following areas: + +1. Missing documentation. +2. Correction of links within various manuals -- most fail. +3. Integration of the new features into the main documents. +4. Much more. + +The documentation will not be completed in the near future due to lack +manpower. If you are unhappy with this situation as we are, we suggest +you help by submitting patches to the documentation. Thanks. +===== + +================== 3.0.1 Release Notes ======================== + +Version 3.0.1 is primarily a minor bug fix update to version 3.0.0 with +one enhancement. + +================== 3.0.0 Release Notes ======================== + +The diff between 2.4.4 and 2.5.x is 208,340 lines, so this release +represents an enormous effort. + +This Director and Storage daemon must be upgraded at the same time, +but they should be compatible with all 2.4.x File daemons, unless you +use some of the new features that affect the FD. In other words, you should +not have to upgrade all your File daemons when you upgrade. However, any +release of version 2.5.40 or greater requires a database upgrade. + +================== Warning !!!!!! ========================== - Bacula code: Total files = 398 Total lines = 117,151 (*.h *.c *.in) +New Catalog format in version 3.0.0 (2.5.40 or later) +----------------------------------------------------- + +This release of Bacula uses a new catalog format. We provide a set of +scripts that permit to convert a 2.4.x (version 10) catalog to 3.0.0 (version +11). The Bacula project rpms distributed on Source Forge will automatically +detect the database change and do the upgrade for you. We strongly +recommend that you save a copy of your existing database before upgrading +using rpms. + +The simplest way to upgrade the database assuming you are building from +source: +1. Stop any current version of Bacula from running. +2. Save a copy of your existing database. +3. Configure, build, and install the 3.0.0 version of Bacula + Note the new ./configure options in the manuals see the link + at the bottom of this file. +4. cd +5. ./update_bacula_tables +6. If you have multiple catalogs, edit the update_bacula_tables + script and put the name of another database, and then + execute the script again. Repeat this until all Bacula + catalogs have been updated. +7. Start the new Bacula. If everything worked, it should + not print any error messages. + +The upgrade operation will convert the FileId index field of the File table +from 32 bits to 64 bits. This operation will take TIME and will *temporarily* +DOUBLE THE SIZE of your catalog. Bacula must be shutdown during this update, +so, won't be able to run jobs during this period. For example, a 3 million files +catalog will take 2 mins to upgrade on a normal machine. Don't forget to +backup it before executing the script. + +If you start from scratch, you don't need to run the update_bacula_tables +script because the create_bacula_tables script automatically creates the new +table format. However, if you are using a version of Bacula older than 2.5.40 +(e.g. 2.4.4) then you need to run the update_bacula_tables script that will +be found in the /src/cats directory after you run the ./configure +command. As mentioned above, before running this script, please backup your +catalog database, and when you do running it, be sure shutdown Bacula and be +aware that running the script can take some time depending on your database +size. + + +Important New configure options : +---------------------- + +This release of Bacula 3.0.0 uses libtool by default +to generate the Bacula libraries as shared objects rather than +being directly linked in as in prior versions. This means that +the Bacula shared objects, must either be in a shared object +directory known to the loader or they must be in the directory +where the Bacula binaries are installed. It is also possible +to explicitly specify the libraries directory on the ./configure +line (--libdir=/full-path/dir), but this should not be necessary. + ./configure --libdir= -Major Changes: -- Preliminary Python Event support has been added. See below for - configuration. - A Python script will be called at particular points or conditions - in Bacula called Events. The currently defined Events are called: +If you have problems with libtool or you wish to use the old +way of building libraries and linking them into Bacula, you +can do so by disabling libtool on the configure command line with: - StartJob, EndJob, NewVolume - - Where StartJob is called before the RunBeforeJob, EndJob is called - after RunAfterJob, and NewVolume, is called before all other - "methods" of obtaining a new Volume name, when one is needed. - - The Python script of the same name as the Event name (but with a .py) - is called from the Scripts Directory (a directive defined in the - Director resource). Note, both the Filename, and the name of - the function in the file must correspond to the Event name. - - Once the Python script gets control, it can have access to Bacula - variables by doing: - - import bacula - - The script is called with one argument, typically called j. This - argument *must* be passed unchanged to each bacula function. The - format of the call is slightly different for reading Bacula - variable and for writing bacula variables. See below. - - Bacula variables can be read with: - - bacula.get(j, "Variable-name") - - where j is the argument passed to the function, and Variable-name - is on of the following: - - JobId, Client, Pool, Storage, Catalog, MediaType, NumVols, DirName, - Level, Type, Job, JobName, JobStatus - - Bacula varibles can be set using Python keyword arguments: - - bacula.set(jcr=j, VolumeName="xyz") - - The two currently implemented writable "variables" are: - - VolumeName and JobReport - - It is possible to submit a Bacula run command with the following: - - bacula.run(j, "run kernsave client=Matou storage=File") - - this function returns the JobId of the job that was started. If - there is an error, the return value is zero. - - Example: - -== File EndJob.py === -import bacula - -def EndJob(j): - jobid = bacula.get(j, "JobId") - client = bacula.get(j, "Client") - bacula.set(jcr=j, JobReport="EndJob output: JobId=%d Client=%s.\n" % (jobid, client)) - if (jobid < 5) : - startid = bacula.run(j, "run kernsave") - print "Python started jobid=", startid - - return 1 -==== - -== File NewVolume.py === -import bacula - -def NewVolume(j): - jobid = bacula.get(j, "JobId") - print "JobId=", jobid - client = bacula.get(j, "Client") - print "Client=" + client - numvol = bacula.get(j, "NumVols"); - print "NumVols=", numvol - bacula.set(jcr=j, JobReport="New Volume set for Job.\n") - bacula.set(jcr=j, VolumeName="TestA-001") - return 1 -==== -- Part files support: File volumes can now be splitted in multiple - files, called "parts". -- DVD writing support, using parts, and a lot of new directives in - the Device resource of the Storage configuration file. - -New Directives: -- Scripts Directory = name. Defines the directory from - which Bacula scripts will be called for events. In fact, Bacula - appends this name to the standard Python list of search directories, - so the script could also be in any of the Python system directories. -- In FileSet, you can exclude backing up of hardlinks (if you have - a lot, it can be very expensive), by using: - HardLinks = no - in the Options section. Patch supplied by David R Bosso. Thanks. -- MaximumPartSize = bytes (SD, Device resource) - Defines the maximum part size. -- Requires Mount = Yes/No (SD, Device resource) - Defines if the device require to be mounted to be read, and if it - must be written in a special way. If it set, the following directives - must be defined in the same Device resource: - + Mount Point = directory - Directory where the device must be mounted. - + Mount Command = name-string - Command that must be executed to mount the device. Before the command - is executed, %a is replaced with the Archive Device, and %m with the - Mount Point. - + Unmount Command = name-string - Command that must be executed to unmount the device. Before the - command is executed, %a is replaced with the Archive Device, and - %m with the Mount Point. - + Write Part Command = name-string - Command that must be executed to write a part to the device. Before - the command is executed, %a is replaced with the Archive Device, %m - with the Mount Point, %n with the current part number (0-based), - and %v with the current part filename. - + Free Space Command = name-string - Command that must be executed to check how much free space is left - on the device. Before the command is executed, %a is replaced with - the Archive Device, %m with the Mount Point, %n with the current part - number (0-based), and %v with the current part filename. -- Write Part After Job = Yes/No (DIR, Job Resource, and Schedule Resource) - If this directive is set to yes (default no), a new part file will be - created after the job is finished. - -New Commands: -- "python restart" restarts the Python interpreter. Rather brutal, make - sure no Python scripts are running. This permits you to change - a Python script and get Bacula to use the new script. - -Items to note!!! -- You must add --with-python=[DIR] to the configure command line - if you want Python support. Python 2.2 and 2.3 should be automatically - detected if in the standard place. -- With Python 2.2 version, the link of the Director gets a few linker - warnings due to the fact that Python pulls in some old non-secure - libraries. -- With Python 2.3, there are a few compiler warnings. - -Other Items: -- 2 new scripts, dvd-writepart and dvd-freespace, in the scripts directory, - which are designed to be used as parameters to Write Part Command and - Free Space Command. They need the dvd+rw-tools to be installed - (http://fy.chalmers.se/~appro/linux/DVD+RW/). + ./configure --disable-libtool + +During the installation of Bacula 3.0.0, it will now install +bat help files (if you have configured bat). These files +are placed in /usr/share/doc/bacula/html by default. If you +want to put them elsewhere use: + + ./configure --htmldir= + +During the installation of Bacula, it will now install the +ReleaseNotes, License, technotes, ChangeLog, and similar +files in /usr/share/doc/bacula by default. If you +want to put them elsewhere use: + + ./configure --docdir= + +During the installation of Bacula, any plugins will be +installed in the plugindir, which is by default the +same as libdir (/usr/lib). You can specify an alternate +location with: + + ./configure --with-plugindir= + +============================================================== + +This release includes large number of new features and changes. +It should be more or less compatible with previous xx.conf files +and File daemons providing that you are not using any of the new +features. + +Please see the New Features chapter of the new manual, which documents +some but not all the new features (we are still working on it): + +http://www.bacula.org/manuals/en/concepts/concepts/New_Features.html + + + + +The ChangeLog has more details.