]> git.sur5r.net Git - bacula/docs/commitdiff
Reorg
authorKern Sibbald <kern@sibbald.com>
Fri, 25 Jan 2008 15:59:15 +0000 (15:59 +0000)
committerKern Sibbald <kern@sibbald.com>
Fri, 25 Jan 2008 15:59:15 +0000 (15:59 +0000)
60 files changed:
docs/home-page/de/news.txt [new file with mode: 0644]
docs/home-page/donations.txt [deleted file]
docs/home-page/en/donations.txt [new file with mode: 0644]
docs/home-page/en/inc/footer.php [new file with mode: 0644]
docs/home-page/en/inc/header.php [new file with mode: 0644]
docs/home-page/en/index.php [new file with mode: 0644]
docs/home-page/en/news.txt [new file with mode: 0644]
docs/home-page/en/pages/bugs.php [new file with mode: 0644]
docs/home-page/en/pages/documentation.php [new file with mode: 0644]
docs/home-page/en/pages/donations.php [new file with mode: 0644]
docs/home-page/en/pages/feature-request.php [new file with mode: 0644]
docs/home-page/en/pages/fsfe.php [new file with mode: 0644]
docs/home-page/en/pages/home.php [new file with mode: 0644]
docs/home-page/en/pages/license.php [new file with mode: 0644]
docs/home-page/en/pages/listlic.php [new file with mode: 0644]
docs/home-page/en/pages/login.php [new file with mode: 0644]
docs/home-page/en/pages/logout.php [new file with mode: 0644]
docs/home-page/en/pages/maillists.php [new file with mode: 0644]
docs/home-page/en/pages/makedonation.php [new file with mode: 0644]
docs/home-page/en/pages/news.php [new file with mode: 0644]
docs/home-page/en/pages/presentations.php [new file with mode: 0644]
docs/home-page/en/pages/presskits.php [new file with mode: 0644]
docs/home-page/en/pages/professional.php [new file with mode: 0644]
docs/home-page/en/pages/projects.php [new file with mode: 0644]
docs/home-page/en/pages/requirements.php [new file with mode: 0644]
docs/home-page/en/pages/support.php [new file with mode: 0644]
docs/home-page/en/pages/testimonial.php [new file with mode: 0644]
docs/home-page/en/pages/testimonials.php [new file with mode: 0644]
docs/home-page/en/pages/vote.php [new file with mode: 0644]
docs/home-page/en/pages/what.php [new file with mode: 0644]
docs/home-page/en/pages/wxconsole.php [new file with mode: 0644]
docs/home-page/fr/footer.php [deleted file]
docs/home-page/inc/footer.php [deleted file]
docs/home-page/inc/header.php [deleted file]
docs/home-page/index.php [deleted file]
docs/home-page/news.txt [deleted file]
docs/home-page/pages/bugs.php [deleted file]
docs/home-page/pages/documentation.php [deleted file]
docs/home-page/pages/donations.php [deleted file]
docs/home-page/pages/feature-request.php [deleted file]
docs/home-page/pages/fsfe.php [deleted file]
docs/home-page/pages/home.php [deleted file]
docs/home-page/pages/license.php [deleted file]
docs/home-page/pages/listlic.php [deleted file]
docs/home-page/pages/login.php [deleted file]
docs/home-page/pages/logout.php [deleted file]
docs/home-page/pages/maillists.php [deleted file]
docs/home-page/pages/makedonation.php [deleted file]
docs/home-page/pages/news.php [deleted file]
docs/home-page/pages/presentations.php [deleted file]
docs/home-page/pages/presskits.php [deleted file]
docs/home-page/pages/professional.php [deleted file]
docs/home-page/pages/projects.php [deleted file]
docs/home-page/pages/requirements.php [deleted file]
docs/home-page/pages/support.php [deleted file]
docs/home-page/pages/testimonial.php [deleted file]
docs/home-page/pages/testimonials.php [deleted file]
docs/home-page/pages/vote.php [deleted file]
docs/home-page/pages/what.php [deleted file]
docs/home-page/pages/wxconsole.php [deleted file]

diff --git a/docs/home-page/de/news.txt b/docs/home-page/de/news.txt
new file mode 100644 (file)
index 0000000..45b4e64
--- /dev/null
@@ -0,0 +1,963 @@
+Kern;;;9 Jan 2008;;20:30
+Bacula version BETA 2.2.8 Released
+Bacula version 2.2.8 source tar files as well as the Win32
+binaries are available in the bacula-beta and
+Win32-beta release areas of Source Forge
+
+Version BETA 2.2.8 is a bug fix to version 2.2.7:
+- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
+  Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
+;;;
+
+Kern;;;24 Dec 2007;;20:30
+Bacula version 2.2.7 Released
+Bacula version 2.2.7 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge
+
+Version 2.2.7 has several new features and several important bug fixes
+  since version 2.2.6:
+- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
+  1007, 1008.  For more details, please see the technotes-2.1 file.
+- Fixed a seg fault reported by Frank Sweetser that depended on
+  exact path lengths, but the problem was in bsnprintf.c
+- Double quoting include filenames (@xxx) in Bacula conf files is now
+  possible, thanks to a patch by Michael Stapelberg.
+- You can pipe input to include filenames (@|prog) by using a vertical
+  bar, thanks to the above patch.
+- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
+  Nerijus Baliunas.
+- Marc Cousins submitted a patch that permits building the PostgreSQL
+  driver with version 8.3.
+- The configure option --archivedir has been changed to --with-archivedir
+;;;
+Kern;;;9 Nov 2007;;15:25
+Bacula version 2.2.6 Released
+Bacula version 2.2.6 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge.
+
+This release is a minor fix upgrade to version 2.2.5,
+and we recommend that all users upgrade when they can.
+
+Version 2.2.6 is a minor bug fix realease to version 2.2.5
+- It fixes bugs: #1003, 942, 982, 990(response only), 991,
+  993, 986, 976.
+  - Fix bat crash wen it cannot connect to Director.
+  - Fix joblist failure bug in bat.
+;;;
+Kern;;;9 Oct 2007;;15:25
+Bacula version 2.2.5 Released
+Despite the fact that the Release Notes are rather short, the bug
+fixes represent quite a lot of work:
+
+Version 2.2.5 is a major bug fix release to version 2.2.4
+- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
+  964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
+  957, 908, 958, and 955.
+- It also improves listing performance problems in bat pointed
+  out by Chris Howells.
+;;;
+Kern;;;29 Sept 2007;;20:30
+A serious data loss bug in Bacula version 2.2.4 found and fixed
+
+This bug was very elusive and time consuming to track down.  It
+turned out to be a race condition that can lose the last one or
+two blocks of a Job, which can happen in rare cases only when
+running multiple simultaneous jobs when a volume fills and one
+Job finishes receiving the last data from the FD and at the same
+time a second job detects the end of the Volume.  The bug was
+introduced in version 2.0.0 and did not exist in version 1.38.x.
+If the bug is triggered, the data is lost (not written to the
+Volume), and it can occur for any backup job of any level under
+the conditions noted above.
+
+The bug is reported in the bugs database as bug #964, and just
+this morning I found and tested a fix, which is attached as a patch
+to the bug report.  The patch (2.2.4-lost-block.patch) is also
+uploaded to the bacula-patches 2.2.x release area.  This bug may
+also be part of the problems reported in bug #935 and possibly
+#903.
+
+Also in the bacula-patches 2.2.x area, you will find other
+patches that fixes bugs #953, 966, 967, 965, 958, 908, and
+955. Please refer to bugs.bacula.org for the details.
+
+Though this bug quite serious (data loss), it should be rare.
+However, we recommend everyone to apply the patch.
+;;;
+Kern;;;2007/9/14;;;14:30 
+Bacula version 2.2.4 Released 
+
+This version of Bacula is a minor bug release to version 2.2.3.
+It contains the following fixes:
+
+- Possible fix for authorization problems bug #953.
+- Possible fix for bug #908.
+- Add waits to multiple exit detection code to try to force pid
+  file to always be deleted.
+- Restore good dev.tar.gz to rescue set appropriate binary property.
+  This fixes bug #950.
+- Fix seg fault in error exit of acquire_for_read after unsuccessfully
+  trying to switch drives by checking for blocking before unblocking.
+  Fixes bug #906.
+- Cancel storage daemon in all cases where FD reports error. This
+  should fix virtually all cases of bug #920 and will ensure that Devices
+  are released as soon as possible.
+- Fix error message that was clobbered when Dir tells SD it does not
+  have write permission on Volume.  This should fix a minor point
+  in bug #942, but not the main problem.
+- Fix migration code to get correct Volume name with multiple volumes 
+  by skipping |.  Fixes bug #936.
+- Implement patch supplied by Landon to fix bug #944 where using
+  TLS with bconsole uses 99+% of the CPU.
+- Fix bug #946 about "bacula-dir -t" which doesn't works
+  as expected.
+- Using "m" in bconsole will show messages as in prior versions
+  and not memory usage.
+
+- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
+  program.
+;;;
+Kern;;;2007/9/9;;;14:30
+I regret to announce that there is a rather serious bug in Bacula.
+
+Bacula bug #935 reports that during a restore, a large number of files are 
+missing and thus not restored.  This is really quite surprising because we 
+have a fairly extensive regression test suite that explicitly tests for this 
+kind of problem many times.
+
+Despite our testing, there is indeed a bug in Bacula that has the following 
+characteristics:
+
+1. It happens only when multiple simultaneous Jobs are run (regardless of
+whether or not data spooling is enabled), and happens only when the
+Storage daemon is changing from one Volume to another  -- i.e. the
+backups span multiple volumes, and it only happens for Jobs writing
+to the same volume.
+
+2. It has only been observed on disk based backup, but not on tape.
+
+3. Under the right circumstances (timing), it could and probably does happen
+on tape backups.
+
+4. It seems to be timing dependent, and requires multiple clients to
+reproduce, although under the right circumstances, it should be reproducible
+with a single client doing multiple simultaneous backups.
+
+5. Analysis indicates that it happens most often when the clients are slow
+(e.g. doing Incremental backups).
+
+6. It has been verified to exist in versions 2.0.x and 2.2.x.
+
+7. It should also be in version 1.38, but could not be reproduced in testing,
+perhaps due to timing considerations or the fact that the test FD daemons
+were version 2.2.2.
+
+8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
+records are stored in the database.  (the JobMedia record generated during
+the Volume change contains the index of the new Volume rather than the
+previous Volume).  This will be described in more detail below.
+
+9. You can prevent the problem from occurring by either turning off multiple
+simultaneous Jobs or by ensuring that while running multiple simultaneous
+Jobs that those Jobs do not span Volumes.  E.g. you could manually mark
+Volumes as full when they are sufficiently large.
+
+10. If you are not running multiple simultaneous Jobs, you will not be
+affected by this bug.
+
+11. If you are running multiple simultaneous Jobs to tapes, I believe there is
+a reasonable probability that this problem could show up when Jobs are split
+across tapes.
+
+12. If you are running multiple simultaneous Jobs to disks, I believe there is
+a high probability that this problem will show up when Jobs are split across
+disks Volumes.
+
+13. The bug concerns only the Storage daemon so there is no need to update
+the clients, though I do recommend updating the Director when installing
+an updated Storage daemon.
+
+I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
+version 2.2.0, 2.2.1, and 2.2.2.  The patch has been tested only on version
+2.2.2 and passes all regression tests as well as the specific test that
+reproduced the problem. 
+
+The patch has now been confirmed to fix the problem reported, and Bacula
+version 2.2.3 has been released to Source Forge.
+
+For the technical details of the bug, please see: 
+
+  http://www.bacula.org/downloads/bug-935.txt
+
+;;;
+
+Kern;;;2007/8/11;;;14:30
+
+Bacula Version 2.2.0 has been released to Source Forge.         
+
+          Release Notes for Bacula 2.2.0 
+
+  Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
+  82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
+
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.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. There is
+no database upgrade needed from version 2.0.x to 2.2.0.
+
+Areas requiring caution or testing:
+- You must have the thread safe version of MySQL client libraries loaded
+  to build with MySQL enabled.
+- Volumes are pruned only when absolutely necessary -- this may cause
+  your database to grow compared to prior Bacula versions.
+- Solaris door and even port files are no longer restored (equivalent
+    to what we do with sockets).
+- SQLite is no longer supported for Solaris -- it fails too often with
+  bus errors.  SQLite3 should work on Solaris.
+- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
+  This makes it run 30 times faster, but increases the possiblity
+  of a corrupted database if your server shuts down unexpectedly.
+  The default behavior can be changed in src/version.h
+- Restore on Win32, and in particular on Vista is untested. Please
+  test before relying on it.  It should backup and restore reparse
+  points.
+- Win32 servers are untested, and very likely not to work.
+
+The major new features are:
+- Much faster insertion of attributes (somewhere around 10 times),
+  many thanks to Eric Bollengier and Marc Cousin. 
+- First release of bat (Bacula Administration Tool).  Note to build
+  bat you must explicitly enable it on the ./configure line, you
+  must have the Qt4 version 4.2 or later libraries loaded, the qwt
+  (Qt Graphics) package loaded, and qmake and the other Qt4 tools 
+  must be available. Most of the implementation was done by Dirk Bartley.
+- Red/Black restore in memory tree (500 times faster loading).
+- The Regex Where code to allow easier relocation of restored files 
+  thanks to Eric.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance reduces
+  swapping due to opening/reading lots of files. Win32 equivalent
+  implemented.
+- Much improved Volume reservation code that should eliminate most
+  conflicts experienced in multiple drive autochangers.
+- Simpler locking in the SD in the reservation system.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature -- thanks to Eric.
+- Efficient implementation of very large include/exclude lists.
+- Volumes are no longer pruned during 'status dir'
+- Pruning is now more efficient, and if a Volume is purged,
+  during pruning, it is immediately discovered.
+- License is now GPL v2 without modifications, fix a few copyright
+  mistakes made when adding FSFE copyright notice.
+
+New ./configure options:
+- --enable-bwx-console    
+- --enable-bat
+- --with-qwt=
+- --with-db-name=
+- --with-db-user=
+- --enable-batch-insert
+
+New bconsole commands:
+- exec
+- memory
+- update recyclepool
+- .sql
+- .api
+- .pwd (in restore tree)
+- restoreclient (keyword)
+- backupclient  (keyword)
+- regexwhere    (keyword)
+- update jobid  (new command)
+- recyclepool   (keyword) 
+
+New directives:
+- Heartbeat Interval (bconsole.conf)
+- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
+- TLS Allowed CN     (bacula-dir.conf in Client)
+- Regex Where        (bacula-dir.conf in Job)
+- Strip Prefix       (bacula-dir.conf in Job)
+- Add Prefix         (bacula-dir.conf in Job)
+- Add Suffex         (bacula-dir.conf in Job)
+- Recycle Pool       (bacula-dir.conf in Pool)
+- FailJobOnError     (bacula-dir.conf in RunScript)
+- CheckFileChanges   (bacula-dir.conf in FileSet)
+- StripPath          (bacula-dir.conf in FileSet)
+
+Other features or bug fixes:
+- Fixed bugs: 916, 910, 917, 914, 906, 907, 
+  842, 830, 893, 861, 888, 886, 807, 877, 872
+  885, 887, 864, 874, 882, 881, 863, 859, 
+  856, 854, 845, 847, 846, 809, 772, 
+  822, 825, 824, 808, 802, 797, 798, 795, 789, 791, 
+  788, 780, 763, 782, 612, 767, 775, 621, 772, 764, 
+  766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
+- Configure bat with --enable-bat. Define qwt libraries with
+  --with-qwt=<dir>. See Installation chapter of manual for details.
+- Create a depkgs-qt package that has both Qt4 and qwt, which are
+  needed to build bat. Most modern Linux systems will have both
+  these packages in the distro.
+- Storage overrides delete all previous storage definitions instead
+  of prepending.
+- One should be able to mount and unmount removable devices if the
+  Device resource has Removeable Media set and the mount and unmount
+  directives are defined.
+- ./configure will do a better job of searching for qwt libraries.
+- The Win32 version can no longer be shutdown from the tray monitor.
+  Use the command line or the Services panne.
+- Keep prune_volumes() from pruning the whole Scratch pool.
+- More debug output in status storage.
+- Correct moving a Scratch volume from pool to pool (some
+  critical columns were lost).
+- Different locking in reservations and despooling systems,
+  which means more micro-locking and less macro-locking, which
+  should give a lot more concurrency at the expense of slightly
+  (<0.1%) more overhead due to more locking/unlocking, but     
+  concurrent jobs should run much faster.
+- Additional drive reservation algorithm that should solve a lot of
+  the problems experienced with multiple drive autochangers.
+- Storage daemon status command enhanced to more clearly show Volume,
+  pool and media type when a job is waiting.
+- Made bsmtp work with more strict SMTP servers.
+- Detect doubly freed buffers in smartall.c
+- wx-console renamed to bwx-console (Fedora request)
+- gnome-console renamed to bgnome-console (Fedora request)
+- Migration preserves original job's FileSetId
+- Spooling implemented for migration jobs.
+- Config files can be read through a pipe, by specifying a leading |
+  in front of the configuration path/filename.
+- New memory command (bconsole) that will print the current Director's
+  memory usage, and an in use buffer dump.
+- Console name changed from *Console* to -Console- to accomodate Win32
+  filename restrictions.  
+- Corrected the Win32 ftruncate bug.
+- Additional version information added to Job reports.
+- New -8 option for bsmtp to specify UTF-8 encoding type.
+- bsmtp will no longer add < > to target (from, to, cc) if there
+  is already a < in the target.
+- Prefer Mounted Volumes extended to mean a volume that is being
+  mounted by another job.
+- Runscript timing set to same as version 1.38.11
+- New TLS Allowed CN directive(s) permitted.
+- New bconsole 'exec' command to run external script/command.
+- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+- Drop from root done before database is opened.
+- Database user and name can be configured with:
+  --with-db-name=name --with-db-user=user
+- Turn on wait_for_drive in mtx-changer script.
+- Rework how bar codes are handled in mtx-changer script.
+  This appears to have been an unreported bug.
+- Updated nagios plugin supplied by Christian Masopust
+- Better restricted console ACL checking.
+- New Client Connect Wait directive in Storage daemon so that
+  users can configure how long SD waits for FD connection.
+- Bacula will no longer permit pruning of the currently running
+  job (note, if other jobs are running, they may be pruned).
+- Sockets are no longer restored.
+- dbcheck works in 300K chunks so will typically run faster.
+- Include/Exclude lists can now be efficiently handled for quite
+  large sizes -- tens of thousands of entries.
+- Several memory leaks in migration and database usage were fixed.
+- New console keyword restoreclient, which specifies the client to
+  which the restore will be sent. The client keyword specifies 
+  the backup client. The restoreclient keyword is optional if it is
+  not specified, the backup client will also be the restore client.
+- The disk file size is now checked to ensure that it agrees with the
+  catalog value before Bacula will append to the disk (same as tape
+  and DVD).
+
+;;;
+
+Kern;;;2007/3/6;;;14:30
+
+Bacula Version 2.0.3 has been released to Source Forge.
+This is a bug fix release to version 2.0.2.  If you are upgrading from
+a version older than 2.0.0, please be sure to read the important notes
+below.
+
+Also, please check the patches directory in the current SVN or the
+patches release section on Source Forge for important bug fixes to   
+this version.
+
+5Mar07
+kes  File migrate bug with Pool Occupancy using mediaid instead
+     of jobids.  Fixes bug #795.
+kes  Fix orphaned buffers in filed backup and verify due to
+     crypto buffers not freed during errors.  Fixes bug #789.
+04Mar07
+kes  Add smartctl call to bacula-sd.conf as an example of getting
+     tape alert info.
+02Mar07
+kes  Add Client Connect Wait to Storage daemon to permit users to
+     modify the time the SD waits for a FD connection.
+28Feb07 
+kes  Apply Command ACL filter to JobId list in restore command.
+kes  Correct typeo in var.c patch.
+27Feb07
+kes  Don't let Bacula prune File or Job records for the current Job.
+kes  Fix variable substitution pad + inc bug reported (with patch)
+     in bug #791.
+26Feb07
+kes  Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl  Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
+22Feb07
+kes  Fix a few places in lib/message.c where the open fd may
+     not be zeroed.
+21Feb07
+kes  Add LANG=C to autoconf/randpass so it works with languages other
+     than English.  Fixes bug #788.
+20Feb07
+ebl  Revert ClientRunBeforeJob as it was in 1.38.x
+     This fixes bug #780
+     You will not be able to generate Include/Exclude list any more.
+     If you want to use this, you can apply 
+     trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes  Restore of sockets created false error messages because Bacula
+     no longer restores sockets, but the code was still trying to
+     set the attributes on a non-existent file. Reported by a user.
+16Feb07
+kes  Fix encryption deblocking bug, which caused some restored files
+     to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
+kes  Add FD event sequence order prepared by Eric -- for RunScripts.
+kes  Fix 12am/pm bug as reported in bug #782.
+15Feb07
+kes  Add quick disconnect FD code from 2.1.4 to 2.0.3.  This code
+     causes the SD to release the FD as soon as the FD has sent
+     all the data to the SD. After that the SD will do any final
+     despooling (data and attributes) that are necessary. This
+     allows laptops to disconnect much quicker from the network 
+     after a backup.
+13Feb07
+kes  Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+11Feb07
+kes  Optimize the use of the database a bit in the Status dir command.
+     Only open it when needed, ensure that if any previous database
+     was opened, it is closed.
+10Feb07
+kes  Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+     and File records in 300K chunks to be more efficient. This
+     idea came from Juan Luis Frances (if I remember right).
+09Feb07
+kes  Update projects list.
+08Feb07
+kes  Fix dird/ua_cmds.c so that a cancel command checks if the
+     console is authorized to cancel the job.  This fixes bug 
+     #767.
+kes  Modify SD so that the VolCatJobs medium record is updated
+     at the beginning of a Job rather than the end.  This
+     fixes bug #775 where exceeding MaxVolJobs caused jobs
+     to fail.
+kes  Added a mutex around getting and setting Volume information
+     so that multiple simultaneous jobs will single thread.
+07Feb07
+     Switch to using Subversion
+kes  Remove src/pygtk-console/ from configure
+06Feb07
+kes  Delete src/lib/btree.c from win32 build, then add rblist.c
+     plus the entrypoints.
+kes  Apply patch supplied that corrects debug print
+     in canceling jobs for max run time.  Supplied as
+     part of bug #621, which was previously fixed.
+05Feb07
+kes  Test on job_canceled() and sd_msg_thread_done inside
+     loop starting the message thread to avoid a race condition.
+     Fixes bug #771.
+kes  Remove rl_catch_signal from console.c as it conflicted
+     with the header definition. Fixes bug #765.
+ebl  Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes  Clarify some stored/acquire messages to indicate if the
+     problem is with read or append.
+02Feb07
+kes  Fix memory leak with storage ids in cats/sql_get.c
+kes  Terminate watchdog earlier to avoid reference to released
+     memory -- reported by Jason Austin.
+kes  Move closing the database from jobq.c to the director daemon
+     termination routine. This fixes memory leaks for shadow jobs
+     (i.e. migration jobs).
+kes  Free up the unique jobid chain items in migrate.c.  This fixes
+     a memory leak problem.
+kes  Convert some ugly looking for statements to use foreach_alist
+     in findlib/find.c.  This will facilitate converting the structures
+     to use dlist (for large include/exclude lists).
+kes  Fix a bug in the btree.c and btree.h routines, then rename them
+     rblist and add them to be built in src/lib.  Include some new
+     methods written by Rudolf Cejka that make the code more readable
+     (hides some of the ugly casting).
+26Jan07 (back port)
+kes  Implement item #12 on project list -- quick release of FD by
+     the SD. This is noted in more detail above.
+
+;;;
+
+Kern;;;2007/1/28;;;14:30
+
+Bacula Version 2.0.2 released:
+28Jan08
+kes  Fix maxruntime bug #621.
+27Jan07
+kes  Get current main CVS .specs for RedHat, SuSE, Mandrake.
+26Jan07
+ebl  Implement the include JobID in spool file name project.
+kes  Reorder projects file in order determined by Jan 2007 vote.
+kes  Fix open of SQLite3 db where user does not have write permission
+     so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes  Change 'Device not configured to autolabel' from INFO
+     to WARNING.
+kes  Fix jobq.c to restart failed jobs when Reschedule Times = 0
+     which should restart an indefinite # of times.
+kes  Fix configure --help to print --with-mysql[=DIR]. Same for
+     other DIR specifications.
+23Jan07
+rn   Fix msvc build problems. Fix bacula.dll exports for msvc build.
+     Fix path quoting in SQLite scripts.
+     Fix problems with SHGetFolderPath.
+19Jan07
+kes  Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes  Fix Job restart on error bug that promotes an Inc to a Full
+     backup.  This should fix bug #755.
+kes  Add qt-console and first cut of code.
+
+;;;
+
+Kern;;;2007/1/13;;;14:30
+
+Bacula Version 2.0.1 has been released to Source Forge.
+This is bug fix update to version 2.0.0 and contains
+the following fixes:
+
+-    Fix Bacula->Documentation link on Win32 to point to index.html
+     instead of bacula.html. Fixed bug #750.
+-    Return JobId in db_get_job_record() when JobId==0. This should
+     fix bug #741.
+-    Do not release source pointers when restarting a failed job.
+-    Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+     This *should* fix bug #747.
+-    Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+     bug #742.
+-    Modify USTORE constructor to set an empty store_source string, 
+     and don't copy the store_source string in a cancel.  Hopefully
+     this will fix Arno's seg fault, bug #744.
+-    Add back code to disable conio in configure. Fixes bug #743.
+-    Correct the Options scanner in the FD to correctly handle  
+     SHA1 option, which was eating the next option.  Reported by    
+     Sebastien Guilbaud.
+-    Add code to indicate when the SD is spooling, spool wait, and 
+     despooling as requested by Alan Brown.
+
+;;;
+
+Kern;;;2007/1/4;;;14:30
+
+Bacula Version 2.0.0 has been released to Source Forge.
+
+There is an English Press Kit, written by Dan Langille at:
+   
+   http://www.bacula.org/about/press/presskit200.html.en
+
+and a German version, translated by Arno Lehmann at:
+
+   http://www.bacula.org/about/press/presskit200.html.de
+
+;;;
+   
+Kern;;;2007/1/4;;;14:31
+
+          Release Notes for Bacula 2.0.0
+
+  Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
+
+==== 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.  If you are using Bacula supplied
+  RPMs this is not necessary as the RPM does it automatically.
+  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
+  <bacula-source>/src/cats.  It is called:
+
+     ./update_bacula_tables
+
+  It is necessary to run it only once the first time you move to
+  a 2.0.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 new Win32 install procedure =====
+  For Win32 migrations from versions prior to 1.39.0 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.
+
+==== IMPORTANT miscellaneous ====
+- The Gnome console program (gconsole) no longer functions as it
+  should.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 Storage
+  daemon will automatically accept any valid Volume that you mount.
+- 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.
+- You *should* be able to use 1.38.x FDs with version 2.0.0 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.  
+- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
+  the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
+  kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
+  This problem may also be present in certain Fedora FC5 kernels.
+- If you have been using the data encryption feature of 1.39.x, please
+  be aware that certain combinations of encryption and other options
+  with version 1.39.0 through 1.39.26 created Volume data that cannot
+  be restored. We strongly recommend that anyone using encryption 
+  carefully review his/her backups and at a minium do a Full backup
+  with 1.39.28 of all encrypted data.  Robert Nelson has identified 
+  and fixed it as follows:
+     As of 1.39.27:
+        No filters = Works fine
+        Sparse = Works fine
+        Compression = Works fine
+        Encryption = Works fine
+        Sparse + Compression = Works fine
+
+        Sparse + Encryption = Restore broken
+        Sparse + Compression + Encryption = Restore broken
+        Compression + Encryption = Restore broken
+
+     As of 1.39.28:
+        Most combinations work, but some encrypted files are
+        not properly restored.
+
+     As of 1.39.30:
+        All combinations work fine except Sparse+Encryption.
+
+  Bottom line, if you are using data encryption, please test restoring
+  data to be sure it all works correctly.
+- 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.
+- If you previously run a Bacula version prior to 1.39.30, the JobMedia
+  data may not be correct for disk Volumes. This can cause incorrect
+  seeking in versions after 1.39.30. If you experience what appears to
+  be data I/O or integrity errors during restores, please add the
+  following directive to your disk DEVICE resource in the Storage
+  daemon conf file:
+
+    Block Positioning = no
+
+  This will turn off all seek requests during restores and avoid
+  this problem.
+- VSS for Windows clients is now enabled by default.
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger, see manual.
+
+New Features in 2.0.0:
+- Turn on disk seek code for restores.
+- There is a partial but reasonable translation of the Bacula
+  messages for French.  To install it, first configure and build
+  Bacula, then as root run:
+
+    cd <bacula-source>/po
+    make install
+
+  If you have your locale set properly you will get the translated
+  messages.
+- Bacula now support Migration jobs that are documented in a new
+  Migration chapter in the manual
+  http://www.bacula.org/dev-manual/Migration.html
+- Data encryption is now implemented and is documented in
+  a new chapter of the manual at:
+  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.
+- 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, ...
+- The Director and Storage daemon have now been ported to Win32.
+  This code is working but should still be tested carefully
+  before putting into production.
+- 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 Thorsten Engel. However, if you are using
+  Volume Shadow Copy, please be careful to specify all the paths
+  in the bacula-fd.conf file using a full path notation including
+  the drive letter.
+- 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
+- SunOS ACLs should now work thanks to a patch from David Duchscher.
+- 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"
+  This can be used to preview the next scheduled job (and the
+  next tape to be used) on Fridays if there are no scheduled jobs during
+  the weekend.
+- From Eric Bollengier. One can now using the bconsole wait command do:
+   wait  (wait for all jobs to stop)
+   wait jobid=nn
+   wait jobuid=unique id
+   wait job=job-name
+- Volumes can now be set to Enable, Disable, or Archive. If they
+  are not enabled, Volumes will not be mounted.             
+  Implement update volume enable=(on|off|true|false|archived|0|1|2)
+- Add Catalog message destination in Messages resource that puts the
+  job report in the Log database table.
+- Writing/reading DVD Volumes is much more stable -- to the point
+  of being useful. Thanks to Richard Mortimer.
+- Add enable/disable job=<job-name>.  This command prevents
+  the specified job from being scheduled. Even when disabled,
+  the job can be manually started from the console.
+- The database Id records should be 32/64 bit independent now. 64 bits
+  can be enabled by changing one define and changing the appropriate
+  table variable. Normally, you need 64 bits only for FileId.
+- Relative path specifications (i.e. ../xxx) are now permitted in
+  the restore cd command.
+- When running multiple simultaneous jobs, most jobs that use spooling
+  will now finish faster due to a mutex optimization made by Eric
+  Bollengier.
+- Conf files containing UTF-8 marker at the head of the file as well as
+  conf files containing Window cr/lf and Mac cr line termination characters 
+  are now accepted thanks to Robert Nelson.
+- Windows tray status windows are scrollable and resizable.
+- Win32 external script execution is much more flexible -- handles
+  spaces in names better, ...
+- Lots of DVD fixes -- writing DVDs is now reported to work.
+- Fix opening of database in a restricted console to respect     
+  any Catalog ACL.
+- Much better automatic handling of multiple database catalogs in
+  the restore command.
+- 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.
+- Add -n option to bconsole to turn off conio -- used in bweb.
+- 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.
+- 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.
+- 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 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 -- device type directive
+  and mount, unmount directives.
+- 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. You must take much more care now to unmount
+  devices prior to removing tapes that Bacula has open or prior to
+  changing a magazine. Don't forget to do a mount afterwards or the
+  device will be blocked.
+- 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.
+- 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).
+- Integrate addition of line count limitation to bsmtp -l from
+  Sebastian Stark <stark at tuebingen.mpg.de>
+- 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.
+- 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.
+- 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.  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.
+- Improved Bacula rescue procedures -- see the Disaster Recovery
+  chapter of the manual
+- Add spooling/despooling info in status output of SD.
+- Add Comment field to llist of a volume.
+- Allow true/false in many but not all yes/no directives.
+- The Bacula source code is now copyrighted by the Free Software 
+  Foundation Europe. The Developer's Guide documents the new procedures,
+  and the LICENSE file has been updated.
+- Apply Jaime Ventura's patch that implements the Messages resource
+  Mail On Success directive.
+- The Client returns its Version string, which is printed in the Job
+  report.
+- The Client returns whether or not VSS and Encryption are used, which
+  are printed in the Job report.
+
+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"
+
+;;;
diff --git a/docs/home-page/donations.txt b/docs/home-page/donations.txt
deleted file mode 100644 (file)
index 2c038c8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Kern;;;2006/08/04;;;12:30 
-Donations Received
-
-The following people or organizations have made 
-donations or supplied finacial development support
-to the Bacula project and have specifically requested
-that their names appear here:
-
-
-
-Many thanks to the many Bacula listed and non-listed
-supporters have provided support or made donations.
-Names listed here are by specific request. If you have
-made a donation or provided financial support and wish
-to appear in this list, please send an email to 
-kern at sibbald dot com.
-
-;;;
diff --git a/docs/home-page/en/donations.txt b/docs/home-page/en/donations.txt
new file mode 100644 (file)
index 0000000..2c038c8
--- /dev/null
@@ -0,0 +1,18 @@
+Kern;;;2006/08/04;;;12:30 
+Donations Received
+
+The following people or organizations have made 
+donations or supplied finacial development support
+to the Bacula project and have specifically requested
+that their names appear here:
+
+
+
+Many thanks to the many Bacula listed and non-listed
+supporters have provided support or made donations.
+Names listed here are by specific request. If you have
+made a donation or provided financial support and wish
+to appear in this list, please send an email to 
+kern at sibbald dot com.
+
+;;;
diff --git a/docs/home-page/en/inc/footer.php b/docs/home-page/en/inc/footer.php
new file mode 100644 (file)
index 0000000..286806a
--- /dev/null
@@ -0,0 +1,10 @@
+         <div>
+            <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
+              <?
+               if($_SESSION['user'] == "bukdebug")
+                  print_r($_SERVER);
+              ?>
+         </div>
+      </div>
+   </body>
+</html>
diff --git a/docs/home-page/en/inc/header.php b/docs/home-page/en/inc/header.php
new file mode 100644 (file)
index 0000000..c8839ae
--- /dev/null
@@ -0,0 +1,197 @@
+<?
+   /**
+    * grab parms from URL
+    *
+    */
+   parse_str($_SERVER['QUERY_STRING']);
+
+   /**
+    * some settings
+    *
+    */
+   isset($page) || $page   = "home";               // default page to show
+   $page_directory  = "pages";              // directory with pages
+   $page_current    = "$page_directory/$page.php";
+
+
+   /**
+    * Login
+    *
+    */
+   session_start();
+   if(isset($_POST['username']) and isset($_POST['password'])) {
+           $user = $_POST['username'];
+           $pass = $_POST['password'];
+
+           if($user == $pass) {
+                   $_SESSION['user'] = $user;
+                   $_SESSION['logged_in'] = true;
+           }
+   }
+
+   /**
+    * Prepare links
+    */
+   $spath = dirname($_SERVER['SCRIPT_NAME']);
+   if(strlen($spath) < 2)
+           $spath = "";
+
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict //EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+   <head>
+      <title> Bacula, the Network Backup Tool for Linux, Unix, and Windows </title>
+      <link rel="stylesheet" type="text/css" href="bacula.css" title="blueish">
+      <meta name="Description" content="Bacula a network backup and restore program">
+      <meta name="Keywords" content="Bacula, backup, restore, file backup">
+      <meta name="Copyright" content="Copyright (C) 2000-2007 Kern Sibbald">
+      <meta name="Trademark" content="Bacula (R) is a registered trademark of John Walker">
+   </head>
+
+   <body>
+
+   <!-- Top Search Bar -->
+   <div class="searchBar">
+   <table class="searchBar">
+   <tr>
+       <td style="text-align: left; vertical-align: middle; width: 50%">
+               Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows.
+       </td>
+       <td style="text-align: left; vertical-align: middle">
+           <img alt="English" src="images/english-flag.jpg">
+           &nbsp;&nbsp;&nbsp;
+         <a href='/fr'>
+           <img alt="Fran&ccedil;ais" src="images/french-flag.jpg">
+         </a>&nbsp;&nbsp;&nbsp;
+         <a href='/de'>
+           <img alt="Deutsch" src="images/german-flag.jpg">
+         </a>
+
+       </td>
+       <FORM method=GET  target="_blank" action=http://www.google.com/search>
+       <td style="text-align: right; vertical-align: middle">
+           <INPUT id="text" class="searchBar" type="text" name="q" size=20
+             maxlength=255 value="">
+          <INPUT id="button" class="searchBar" type="submit" name="sa" VALUE="Search">
+          <input type="hidden" name="domains" value="www.bacula.org">
+          <input type="hidden" name="sitesearch" value="www.bacula.org">
+       </td>
+       </FORM>
+   </tr>
+   </table>
+   </div>
+
+   <!-- Logo Bar -->
+   <div class="pageLogo">
+       <table class="pageLogo">
+         <tr>
+           <td style="text-align: left; vertical-align: middle">
+               <img alt="Bacula Logo" src="images/bacu_logo-red.jpg">
+           </td>
+         </tr>
+       </table>
+   </div>
+
+   <!-- User Bar - if logged in -->
+   <?
+   if($_SESSION['logged_in']) {
+      printf('<div class="userBar">');
+      printf('Welcome %s, <a style="color: white; text-decoration: none" href="/?page=logout">logout here</a>.', $_SESSION['user']);
+      printf('</div>');
+   }
+   ?>
+
+   <!-- Menu Left -->
+   <div class="menuLeft">
+
+        <!-- General -->
+        <div class="menuHead"> General </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=news"> News </a></li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=home"> Bacula Home </a></li>
+           <li class="menuItem"> <a href="dev-manual/What_is_Bacula.html"> What is Bacula? </a> </li>
+           <li class="menuItem"> <a href="dev-manual/Current_State_Bacula.html"> Current State of Bacula </a> </li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=testimonials"> Testimonials</a> </li>
+           <li class="menuItem"> <a href="http://sourceforge.net/projects/bacula"> SF Project Page </a> </li>
+           <li class="menuItem"> <a href="dev-manual/System_Requirements.html"> Requirements </a> </li>
+           <li class="menuItem"> <a href="dev-manual/Supported_Operating_Systems.html"> Operating&nbsp;Systems </a> </li>
+           <li class="menuItem"> <a href="dev-manual/Supported_Tape_Drives.html"> Tapedrives </a> </li>
+           <li class="menuItem"> <a href="dev-manual/Supported_Autochangers.html"> Autochangers </a> </li>
+           <li class="menuItem"> <a href="dev-manual/Bacula_Copyri_Tradem_Licens.html"> License </a> </li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=fsfe"> FSFE License </a></li>
+           </ul>
+        </div>
+
+        <!-- Documentation -->
+        <!-- files need a version -->
+        <div class="menuHead"> Documentation </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=documentation"> Documentation </a></li>
+           <li class="menuItem"> <a href="http://wiki.bacula.org">Wiki </a></li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=presentations"> Presentations </a></li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=presskits"> Press Kits </a></li>
+           </ul>
+        </div>
+
+        <!-- Downloads -->
+        <div class="menuHead"> Downloads </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727"> Current Files </a> </li>
+           <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727#files"> All Files </a> </li>
+           <li class="menuItem"> <a href="http://sourceforge.net/svn/?group_id=50727"> SVN Repository </a> </li>
+           </ul>
+        </div>
+
+        <!-- Support -->
+        <div class="menuHead"> Support </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=support"> Getting Support </a> </li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=bugs"> Bug Reports </a> </li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=professional"> Professional </a></li>
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=feature-request"> Feature Requests </a></li>
+           </ul>
+        </div>
+
+        <!-- Projects -->
+        <div class="menuHead"> Projects </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=projects"> Projects </a> </li>
+  <!--
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=vote"> Project Vote </a> </li>
+  -->
+           </ul>
+        </div>
+
+        <div class="menuHead"> Donations </div>
+        <div class="menuItem">
+           <ul class="menuitem">
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=makedonation"> Make a Donation </a> </li>
+  <!--
+           <li class="menuItem"> <a href="<? echo $spath ?>/?page=donations"> Donations Received </a> </li>
+  -->
+           </ul>
+        </div>
+        <div class="menuHead">
+        <div class="icons">
+           <a href="http://www.ukfast.net"><img src="images/bacula_ukfast_logo.gif" alt="www.ukfast.net"></a>
+           <!-- a href="http://validator.w3.org/check?uri=referer"><img src="images/valid-xhtml10.png" alt="valix w3c logo"></a -->
+           <!-- a href="http://jigsaw.w3.org/css-validator/validator?uri=<? echo $_SERVER['HTTP_REFERER']; ?>"><img src="images/vcss.png" alt="valid css logo"></a-->
+        </div>
+
+
+        </div>
+
+   </div>
+   
+   <div class="pageTopRight">
+           It comes by night and sucks the vital essence from your computers.
+   </div>
+
+   <div class="pageContent">
diff --git a/docs/home-page/en/index.php b/docs/home-page/en/index.php
new file mode 100644 (file)
index 0000000..804203d
--- /dev/null
@@ -0,0 +1,32 @@
+<?
+
+/**
+ * load header, menu 
+ *
+ */
+require_once("inc/header.php");
+
+
+/**
+ * load content
+ *
+ */
+if(is_file($page_current)) {
+        include_once($page_current);
+} else {
+   printf('
+      &nbsp;
+      An <b>ERROR</b> occurred:<br>
+      <p class="error">
+      The page <b>%s</b> isn\'t available.
+      </p>', $page);
+}
+
+
+/**
+ * load footer
+ *
+ */
+require_once("inc/footer.php");
+
+?>
diff --git a/docs/home-page/en/news.txt b/docs/home-page/en/news.txt
new file mode 100644 (file)
index 0000000..45b4e64
--- /dev/null
@@ -0,0 +1,963 @@
+Kern;;;9 Jan 2008;;20:30
+Bacula version BETA 2.2.8 Released
+Bacula version 2.2.8 source tar files as well as the Win32
+binaries are available in the bacula-beta and
+Win32-beta release areas of Source Forge
+
+Version BETA 2.2.8 is a bug fix to version 2.2.7:
+- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
+  Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
+;;;
+
+Kern;;;24 Dec 2007;;20:30
+Bacula version 2.2.7 Released
+Bacula version 2.2.7 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge
+
+Version 2.2.7 has several new features and several important bug fixes
+  since version 2.2.6:
+- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
+  1007, 1008.  For more details, please see the technotes-2.1 file.
+- Fixed a seg fault reported by Frank Sweetser that depended on
+  exact path lengths, but the problem was in bsnprintf.c
+- Double quoting include filenames (@xxx) in Bacula conf files is now
+  possible, thanks to a patch by Michael Stapelberg.
+- You can pipe input to include filenames (@|prog) by using a vertical
+  bar, thanks to the above patch.
+- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
+  Nerijus Baliunas.
+- Marc Cousins submitted a patch that permits building the PostgreSQL
+  driver with version 8.3.
+- The configure option --archivedir has been changed to --with-archivedir
+;;;
+Kern;;;9 Nov 2007;;15:25
+Bacula version 2.2.6 Released
+Bacula version 2.2.6 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge.
+
+This release is a minor fix upgrade to version 2.2.5,
+and we recommend that all users upgrade when they can.
+
+Version 2.2.6 is a minor bug fix realease to version 2.2.5
+- It fixes bugs: #1003, 942, 982, 990(response only), 991,
+  993, 986, 976.
+  - Fix bat crash wen it cannot connect to Director.
+  - Fix joblist failure bug in bat.
+;;;
+Kern;;;9 Oct 2007;;15:25
+Bacula version 2.2.5 Released
+Despite the fact that the Release Notes are rather short, the bug
+fixes represent quite a lot of work:
+
+Version 2.2.5 is a major bug fix release to version 2.2.4
+- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
+  964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
+  957, 908, 958, and 955.
+- It also improves listing performance problems in bat pointed
+  out by Chris Howells.
+;;;
+Kern;;;29 Sept 2007;;20:30
+A serious data loss bug in Bacula version 2.2.4 found and fixed
+
+This bug was very elusive and time consuming to track down.  It
+turned out to be a race condition that can lose the last one or
+two blocks of a Job, which can happen in rare cases only when
+running multiple simultaneous jobs when a volume fills and one
+Job finishes receiving the last data from the FD and at the same
+time a second job detects the end of the Volume.  The bug was
+introduced in version 2.0.0 and did not exist in version 1.38.x.
+If the bug is triggered, the data is lost (not written to the
+Volume), and it can occur for any backup job of any level under
+the conditions noted above.
+
+The bug is reported in the bugs database as bug #964, and just
+this morning I found and tested a fix, which is attached as a patch
+to the bug report.  The patch (2.2.4-lost-block.patch) is also
+uploaded to the bacula-patches 2.2.x release area.  This bug may
+also be part of the problems reported in bug #935 and possibly
+#903.
+
+Also in the bacula-patches 2.2.x area, you will find other
+patches that fixes bugs #953, 966, 967, 965, 958, 908, and
+955. Please refer to bugs.bacula.org for the details.
+
+Though this bug quite serious (data loss), it should be rare.
+However, we recommend everyone to apply the patch.
+;;;
+Kern;;;2007/9/14;;;14:30 
+Bacula version 2.2.4 Released 
+
+This version of Bacula is a minor bug release to version 2.2.3.
+It contains the following fixes:
+
+- Possible fix for authorization problems bug #953.
+- Possible fix for bug #908.
+- Add waits to multiple exit detection code to try to force pid
+  file to always be deleted.
+- Restore good dev.tar.gz to rescue set appropriate binary property.
+  This fixes bug #950.
+- Fix seg fault in error exit of acquire_for_read after unsuccessfully
+  trying to switch drives by checking for blocking before unblocking.
+  Fixes bug #906.
+- Cancel storage daemon in all cases where FD reports error. This
+  should fix virtually all cases of bug #920 and will ensure that Devices
+  are released as soon as possible.
+- Fix error message that was clobbered when Dir tells SD it does not
+  have write permission on Volume.  This should fix a minor point
+  in bug #942, but not the main problem.
+- Fix migration code to get correct Volume name with multiple volumes 
+  by skipping |.  Fixes bug #936.
+- Implement patch supplied by Landon to fix bug #944 where using
+  TLS with bconsole uses 99+% of the CPU.
+- Fix bug #946 about "bacula-dir -t" which doesn't works
+  as expected.
+- Using "m" in bconsole will show messages as in prior versions
+  and not memory usage.
+
+- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
+  program.
+;;;
+Kern;;;2007/9/9;;;14:30
+I regret to announce that there is a rather serious bug in Bacula.
+
+Bacula bug #935 reports that during a restore, a large number of files are 
+missing and thus not restored.  This is really quite surprising because we 
+have a fairly extensive regression test suite that explicitly tests for this 
+kind of problem many times.
+
+Despite our testing, there is indeed a bug in Bacula that has the following 
+characteristics:
+
+1. It happens only when multiple simultaneous Jobs are run (regardless of
+whether or not data spooling is enabled), and happens only when the
+Storage daemon is changing from one Volume to another  -- i.e. the
+backups span multiple volumes, and it only happens for Jobs writing
+to the same volume.
+
+2. It has only been observed on disk based backup, but not on tape.
+
+3. Under the right circumstances (timing), it could and probably does happen
+on tape backups.
+
+4. It seems to be timing dependent, and requires multiple clients to
+reproduce, although under the right circumstances, it should be reproducible
+with a single client doing multiple simultaneous backups.
+
+5. Analysis indicates that it happens most often when the clients are slow
+(e.g. doing Incremental backups).
+
+6. It has been verified to exist in versions 2.0.x and 2.2.x.
+
+7. It should also be in version 1.38, but could not be reproduced in testing,
+perhaps due to timing considerations or the fact that the test FD daemons
+were version 2.2.2.
+
+8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
+records are stored in the database.  (the JobMedia record generated during
+the Volume change contains the index of the new Volume rather than the
+previous Volume).  This will be described in more detail below.
+
+9. You can prevent the problem from occurring by either turning off multiple
+simultaneous Jobs or by ensuring that while running multiple simultaneous
+Jobs that those Jobs do not span Volumes.  E.g. you could manually mark
+Volumes as full when they are sufficiently large.
+
+10. If you are not running multiple simultaneous Jobs, you will not be
+affected by this bug.
+
+11. If you are running multiple simultaneous Jobs to tapes, I believe there is
+a reasonable probability that this problem could show up when Jobs are split
+across tapes.
+
+12. If you are running multiple simultaneous Jobs to disks, I believe there is
+a high probability that this problem will show up when Jobs are split across
+disks Volumes.
+
+13. The bug concerns only the Storage daemon so there is no need to update
+the clients, though I do recommend updating the Director when installing
+an updated Storage daemon.
+
+I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
+version 2.2.0, 2.2.1, and 2.2.2.  The patch has been tested only on version
+2.2.2 and passes all regression tests as well as the specific test that
+reproduced the problem. 
+
+The patch has now been confirmed to fix the problem reported, and Bacula
+version 2.2.3 has been released to Source Forge.
+
+For the technical details of the bug, please see: 
+
+  http://www.bacula.org/downloads/bug-935.txt
+
+;;;
+
+Kern;;;2007/8/11;;;14:30
+
+Bacula Version 2.2.0 has been released to Source Forge.         
+
+          Release Notes for Bacula 2.2.0 
+
+  Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
+  82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
+
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.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. There is
+no database upgrade needed from version 2.0.x to 2.2.0.
+
+Areas requiring caution or testing:
+- You must have the thread safe version of MySQL client libraries loaded
+  to build with MySQL enabled.
+- Volumes are pruned only when absolutely necessary -- this may cause
+  your database to grow compared to prior Bacula versions.
+- Solaris door and even port files are no longer restored (equivalent
+    to what we do with sockets).
+- SQLite is no longer supported for Solaris -- it fails too often with
+  bus errors.  SQLite3 should work on Solaris.
+- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
+  This makes it run 30 times faster, but increases the possiblity
+  of a corrupted database if your server shuts down unexpectedly.
+  The default behavior can be changed in src/version.h
+- Restore on Win32, and in particular on Vista is untested. Please
+  test before relying on it.  It should backup and restore reparse
+  points.
+- Win32 servers are untested, and very likely not to work.
+
+The major new features are:
+- Much faster insertion of attributes (somewhere around 10 times),
+  many thanks to Eric Bollengier and Marc Cousin. 
+- First release of bat (Bacula Administration Tool).  Note to build
+  bat you must explicitly enable it on the ./configure line, you
+  must have the Qt4 version 4.2 or later libraries loaded, the qwt
+  (Qt Graphics) package loaded, and qmake and the other Qt4 tools 
+  must be available. Most of the implementation was done by Dirk Bartley.
+- Red/Black restore in memory tree (500 times faster loading).
+- The Regex Where code to allow easier relocation of restored files 
+  thanks to Eric.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance reduces
+  swapping due to opening/reading lots of files. Win32 equivalent
+  implemented.
+- Much improved Volume reservation code that should eliminate most
+  conflicts experienced in multiple drive autochangers.
+- Simpler locking in the SD in the reservation system.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature -- thanks to Eric.
+- Efficient implementation of very large include/exclude lists.
+- Volumes are no longer pruned during 'status dir'
+- Pruning is now more efficient, and if a Volume is purged,
+  during pruning, it is immediately discovered.
+- License is now GPL v2 without modifications, fix a few copyright
+  mistakes made when adding FSFE copyright notice.
+
+New ./configure options:
+- --enable-bwx-console    
+- --enable-bat
+- --with-qwt=
+- --with-db-name=
+- --with-db-user=
+- --enable-batch-insert
+
+New bconsole commands:
+- exec
+- memory
+- update recyclepool
+- .sql
+- .api
+- .pwd (in restore tree)
+- restoreclient (keyword)
+- backupclient  (keyword)
+- regexwhere    (keyword)
+- update jobid  (new command)
+- recyclepool   (keyword) 
+
+New directives:
+- Heartbeat Interval (bconsole.conf)
+- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
+- TLS Allowed CN     (bacula-dir.conf in Client)
+- Regex Where        (bacula-dir.conf in Job)
+- Strip Prefix       (bacula-dir.conf in Job)
+- Add Prefix         (bacula-dir.conf in Job)
+- Add Suffex         (bacula-dir.conf in Job)
+- Recycle Pool       (bacula-dir.conf in Pool)
+- FailJobOnError     (bacula-dir.conf in RunScript)
+- CheckFileChanges   (bacula-dir.conf in FileSet)
+- StripPath          (bacula-dir.conf in FileSet)
+
+Other features or bug fixes:
+- Fixed bugs: 916, 910, 917, 914, 906, 907, 
+  842, 830, 893, 861, 888, 886, 807, 877, 872
+  885, 887, 864, 874, 882, 881, 863, 859, 
+  856, 854, 845, 847, 846, 809, 772, 
+  822, 825, 824, 808, 802, 797, 798, 795, 789, 791, 
+  788, 780, 763, 782, 612, 767, 775, 621, 772, 764, 
+  766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
+- Configure bat with --enable-bat. Define qwt libraries with
+  --with-qwt=<dir>. See Installation chapter of manual for details.
+- Create a depkgs-qt package that has both Qt4 and qwt, which are
+  needed to build bat. Most modern Linux systems will have both
+  these packages in the distro.
+- Storage overrides delete all previous storage definitions instead
+  of prepending.
+- One should be able to mount and unmount removable devices if the
+  Device resource has Removeable Media set and the mount and unmount
+  directives are defined.
+- ./configure will do a better job of searching for qwt libraries.
+- The Win32 version can no longer be shutdown from the tray monitor.
+  Use the command line or the Services panne.
+- Keep prune_volumes() from pruning the whole Scratch pool.
+- More debug output in status storage.
+- Correct moving a Scratch volume from pool to pool (some
+  critical columns were lost).
+- Different locking in reservations and despooling systems,
+  which means more micro-locking and less macro-locking, which
+  should give a lot more concurrency at the expense of slightly
+  (<0.1%) more overhead due to more locking/unlocking, but     
+  concurrent jobs should run much faster.
+- Additional drive reservation algorithm that should solve a lot of
+  the problems experienced with multiple drive autochangers.
+- Storage daemon status command enhanced to more clearly show Volume,
+  pool and media type when a job is waiting.
+- Made bsmtp work with more strict SMTP servers.
+- Detect doubly freed buffers in smartall.c
+- wx-console renamed to bwx-console (Fedora request)
+- gnome-console renamed to bgnome-console (Fedora request)
+- Migration preserves original job's FileSetId
+- Spooling implemented for migration jobs.
+- Config files can be read through a pipe, by specifying a leading |
+  in front of the configuration path/filename.
+- New memory command (bconsole) that will print the current Director's
+  memory usage, and an in use buffer dump.
+- Console name changed from *Console* to -Console- to accomodate Win32
+  filename restrictions.  
+- Corrected the Win32 ftruncate bug.
+- Additional version information added to Job reports.
+- New -8 option for bsmtp to specify UTF-8 encoding type.
+- bsmtp will no longer add < > to target (from, to, cc) if there
+  is already a < in the target.
+- Prefer Mounted Volumes extended to mean a volume that is being
+  mounted by another job.
+- Runscript timing set to same as version 1.38.11
+- New TLS Allowed CN directive(s) permitted.
+- New bconsole 'exec' command to run external script/command.
+- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+- Drop from root done before database is opened.
+- Database user and name can be configured with:
+  --with-db-name=name --with-db-user=user
+- Turn on wait_for_drive in mtx-changer script.
+- Rework how bar codes are handled in mtx-changer script.
+  This appears to have been an unreported bug.
+- Updated nagios plugin supplied by Christian Masopust
+- Better restricted console ACL checking.
+- New Client Connect Wait directive in Storage daemon so that
+  users can configure how long SD waits for FD connection.
+- Bacula will no longer permit pruning of the currently running
+  job (note, if other jobs are running, they may be pruned).
+- Sockets are no longer restored.
+- dbcheck works in 300K chunks so will typically run faster.
+- Include/Exclude lists can now be efficiently handled for quite
+  large sizes -- tens of thousands of entries.
+- Several memory leaks in migration and database usage were fixed.
+- New console keyword restoreclient, which specifies the client to
+  which the restore will be sent. The client keyword specifies 
+  the backup client. The restoreclient keyword is optional if it is
+  not specified, the backup client will also be the restore client.
+- The disk file size is now checked to ensure that it agrees with the
+  catalog value before Bacula will append to the disk (same as tape
+  and DVD).
+
+;;;
+
+Kern;;;2007/3/6;;;14:30
+
+Bacula Version 2.0.3 has been released to Source Forge.
+This is a bug fix release to version 2.0.2.  If you are upgrading from
+a version older than 2.0.0, please be sure to read the important notes
+below.
+
+Also, please check the patches directory in the current SVN or the
+patches release section on Source Forge for important bug fixes to   
+this version.
+
+5Mar07
+kes  File migrate bug with Pool Occupancy using mediaid instead
+     of jobids.  Fixes bug #795.
+kes  Fix orphaned buffers in filed backup and verify due to
+     crypto buffers not freed during errors.  Fixes bug #789.
+04Mar07
+kes  Add smartctl call to bacula-sd.conf as an example of getting
+     tape alert info.
+02Mar07
+kes  Add Client Connect Wait to Storage daemon to permit users to
+     modify the time the SD waits for a FD connection.
+28Feb07 
+kes  Apply Command ACL filter to JobId list in restore command.
+kes  Correct typeo in var.c patch.
+27Feb07
+kes  Don't let Bacula prune File or Job records for the current Job.
+kes  Fix variable substitution pad + inc bug reported (with patch)
+     in bug #791.
+26Feb07
+kes  Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl  Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
+22Feb07
+kes  Fix a few places in lib/message.c where the open fd may
+     not be zeroed.
+21Feb07
+kes  Add LANG=C to autoconf/randpass so it works with languages other
+     than English.  Fixes bug #788.
+20Feb07
+ebl  Revert ClientRunBeforeJob as it was in 1.38.x
+     This fixes bug #780
+     You will not be able to generate Include/Exclude list any more.
+     If you want to use this, you can apply 
+     trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes  Restore of sockets created false error messages because Bacula
+     no longer restores sockets, but the code was still trying to
+     set the attributes on a non-existent file. Reported by a user.
+16Feb07
+kes  Fix encryption deblocking bug, which caused some restored files
+     to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
+kes  Add FD event sequence order prepared by Eric -- for RunScripts.
+kes  Fix 12am/pm bug as reported in bug #782.
+15Feb07
+kes  Add quick disconnect FD code from 2.1.4 to 2.0.3.  This code
+     causes the SD to release the FD as soon as the FD has sent
+     all the data to the SD. After that the SD will do any final
+     despooling (data and attributes) that are necessary. This
+     allows laptops to disconnect much quicker from the network 
+     after a backup.
+13Feb07
+kes  Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+11Feb07
+kes  Optimize the use of the database a bit in the Status dir command.
+     Only open it when needed, ensure that if any previous database
+     was opened, it is closed.
+10Feb07
+kes  Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+     and File records in 300K chunks to be more efficient. This
+     idea came from Juan Luis Frances (if I remember right).
+09Feb07
+kes  Update projects list.
+08Feb07
+kes  Fix dird/ua_cmds.c so that a cancel command checks if the
+     console is authorized to cancel the job.  This fixes bug 
+     #767.
+kes  Modify SD so that the VolCatJobs medium record is updated
+     at the beginning of a Job rather than the end.  This
+     fixes bug #775 where exceeding MaxVolJobs caused jobs
+     to fail.
+kes  Added a mutex around getting and setting Volume information
+     so that multiple simultaneous jobs will single thread.
+07Feb07
+     Switch to using Subversion
+kes  Remove src/pygtk-console/ from configure
+06Feb07
+kes  Delete src/lib/btree.c from win32 build, then add rblist.c
+     plus the entrypoints.
+kes  Apply patch supplied that corrects debug print
+     in canceling jobs for max run time.  Supplied as
+     part of bug #621, which was previously fixed.
+05Feb07
+kes  Test on job_canceled() and sd_msg_thread_done inside
+     loop starting the message thread to avoid a race condition.
+     Fixes bug #771.
+kes  Remove rl_catch_signal from console.c as it conflicted
+     with the header definition. Fixes bug #765.
+ebl  Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes  Clarify some stored/acquire messages to indicate if the
+     problem is with read or append.
+02Feb07
+kes  Fix memory leak with storage ids in cats/sql_get.c
+kes  Terminate watchdog earlier to avoid reference to released
+     memory -- reported by Jason Austin.
+kes  Move closing the database from jobq.c to the director daemon
+     termination routine. This fixes memory leaks for shadow jobs
+     (i.e. migration jobs).
+kes  Free up the unique jobid chain items in migrate.c.  This fixes
+     a memory leak problem.
+kes  Convert some ugly looking for statements to use foreach_alist
+     in findlib/find.c.  This will facilitate converting the structures
+     to use dlist (for large include/exclude lists).
+kes  Fix a bug in the btree.c and btree.h routines, then rename them
+     rblist and add them to be built in src/lib.  Include some new
+     methods written by Rudolf Cejka that make the code more readable
+     (hides some of the ugly casting).
+26Jan07 (back port)
+kes  Implement item #12 on project list -- quick release of FD by
+     the SD. This is noted in more detail above.
+
+;;;
+
+Kern;;;2007/1/28;;;14:30
+
+Bacula Version 2.0.2 released:
+28Jan08
+kes  Fix maxruntime bug #621.
+27Jan07
+kes  Get current main CVS .specs for RedHat, SuSE, Mandrake.
+26Jan07
+ebl  Implement the include JobID in spool file name project.
+kes  Reorder projects file in order determined by Jan 2007 vote.
+kes  Fix open of SQLite3 db where user does not have write permission
+     so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes  Change 'Device not configured to autolabel' from INFO
+     to WARNING.
+kes  Fix jobq.c to restart failed jobs when Reschedule Times = 0
+     which should restart an indefinite # of times.
+kes  Fix configure --help to print --with-mysql[=DIR]. Same for
+     other DIR specifications.
+23Jan07
+rn   Fix msvc build problems. Fix bacula.dll exports for msvc build.
+     Fix path quoting in SQLite scripts.
+     Fix problems with SHGetFolderPath.
+19Jan07
+kes  Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes  Fix Job restart on error bug that promotes an Inc to a Full
+     backup.  This should fix bug #755.
+kes  Add qt-console and first cut of code.
+
+;;;
+
+Kern;;;2007/1/13;;;14:30
+
+Bacula Version 2.0.1 has been released to Source Forge.
+This is bug fix update to version 2.0.0 and contains
+the following fixes:
+
+-    Fix Bacula->Documentation link on Win32 to point to index.html
+     instead of bacula.html. Fixed bug #750.
+-    Return JobId in db_get_job_record() when JobId==0. This should
+     fix bug #741.
+-    Do not release source pointers when restarting a failed job.
+-    Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+     This *should* fix bug #747.
+-    Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+     bug #742.
+-    Modify USTORE constructor to set an empty store_source string, 
+     and don't copy the store_source string in a cancel.  Hopefully
+     this will fix Arno's seg fault, bug #744.
+-    Add back code to disable conio in configure. Fixes bug #743.
+-    Correct the Options scanner in the FD to correctly handle  
+     SHA1 option, which was eating the next option.  Reported by    
+     Sebastien Guilbaud.
+-    Add code to indicate when the SD is spooling, spool wait, and 
+     despooling as requested by Alan Brown.
+
+;;;
+
+Kern;;;2007/1/4;;;14:30
+
+Bacula Version 2.0.0 has been released to Source Forge.
+
+There is an English Press Kit, written by Dan Langille at:
+   
+   http://www.bacula.org/about/press/presskit200.html.en
+
+and a German version, translated by Arno Lehmann at:
+
+   http://www.bacula.org/about/press/presskit200.html.de
+
+;;;
+   
+Kern;;;2007/1/4;;;14:31
+
+          Release Notes for Bacula 2.0.0
+
+  Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
+
+==== 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.  If you are using Bacula supplied
+  RPMs this is not necessary as the RPM does it automatically.
+  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
+  <bacula-source>/src/cats.  It is called:
+
+     ./update_bacula_tables
+
+  It is necessary to run it only once the first time you move to
+  a 2.0.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 new Win32 install procedure =====
+  For Win32 migrations from versions prior to 1.39.0 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.
+
+==== IMPORTANT miscellaneous ====
+- The Gnome console program (gconsole) no longer functions as it
+  should.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 Storage
+  daemon will automatically accept any valid Volume that you mount.
+- 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.
+- You *should* be able to use 1.38.x FDs with version 2.0.0 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.  
+- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
+  the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
+  kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
+  This problem may also be present in certain Fedora FC5 kernels.
+- If you have been using the data encryption feature of 1.39.x, please
+  be aware that certain combinations of encryption and other options
+  with version 1.39.0 through 1.39.26 created Volume data that cannot
+  be restored. We strongly recommend that anyone using encryption 
+  carefully review his/her backups and at a minium do a Full backup
+  with 1.39.28 of all encrypted data.  Robert Nelson has identified 
+  and fixed it as follows:
+     As of 1.39.27:
+        No filters = Works fine
+        Sparse = Works fine
+        Compression = Works fine
+        Encryption = Works fine
+        Sparse + Compression = Works fine
+
+        Sparse + Encryption = Restore broken
+        Sparse + Compression + Encryption = Restore broken
+        Compression + Encryption = Restore broken
+
+     As of 1.39.28:
+        Most combinations work, but some encrypted files are
+        not properly restored.
+
+     As of 1.39.30:
+        All combinations work fine except Sparse+Encryption.
+
+  Bottom line, if you are using data encryption, please test restoring
+  data to be sure it all works correctly.
+- 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.
+- If you previously run a Bacula version prior to 1.39.30, the JobMedia
+  data may not be correct for disk Volumes. This can cause incorrect
+  seeking in versions after 1.39.30. If you experience what appears to
+  be data I/O or integrity errors during restores, please add the
+  following directive to your disk DEVICE resource in the Storage
+  daemon conf file:
+
+    Block Positioning = no
+
+  This will turn off all seek requests during restores and avoid
+  this problem.
+- VSS for Windows clients is now enabled by default.
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger, see manual.
+
+New Features in 2.0.0:
+- Turn on disk seek code for restores.
+- There is a partial but reasonable translation of the Bacula
+  messages for French.  To install it, first configure and build
+  Bacula, then as root run:
+
+    cd <bacula-source>/po
+    make install
+
+  If you have your locale set properly you will get the translated
+  messages.
+- Bacula now support Migration jobs that are documented in a new
+  Migration chapter in the manual
+  http://www.bacula.org/dev-manual/Migration.html
+- Data encryption is now implemented and is documented in
+  a new chapter of the manual at:
+  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.
+- 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, ...
+- The Director and Storage daemon have now been ported to Win32.
+  This code is working but should still be tested carefully
+  before putting into production.
+- 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 Thorsten Engel. However, if you are using
+  Volume Shadow Copy, please be careful to specify all the paths
+  in the bacula-fd.conf file using a full path notation including
+  the drive letter.
+- 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
+- SunOS ACLs should now work thanks to a patch from David Duchscher.
+- 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"
+  This can be used to preview the next scheduled job (and the
+  next tape to be used) on Fridays if there are no scheduled jobs during
+  the weekend.
+- From Eric Bollengier. One can now using the bconsole wait command do:
+   wait  (wait for all jobs to stop)
+   wait jobid=nn
+   wait jobuid=unique id
+   wait job=job-name
+- Volumes can now be set to Enable, Disable, or Archive. If they
+  are not enabled, Volumes will not be mounted.             
+  Implement update volume enable=(on|off|true|false|archived|0|1|2)
+- Add Catalog message destination in Messages resource that puts the
+  job report in the Log database table.
+- Writing/reading DVD Volumes is much more stable -- to the point
+  of being useful. Thanks to Richard Mortimer.
+- Add enable/disable job=<job-name>.  This command prevents
+  the specified job from being scheduled. Even when disabled,
+  the job can be manually started from the console.
+- The database Id records should be 32/64 bit independent now. 64 bits
+  can be enabled by changing one define and changing the appropriate
+  table variable. Normally, you need 64 bits only for FileId.
+- Relative path specifications (i.e. ../xxx) are now permitted in
+  the restore cd command.
+- When running multiple simultaneous jobs, most jobs that use spooling
+  will now finish faster due to a mutex optimization made by Eric
+  Bollengier.
+- Conf files containing UTF-8 marker at the head of the file as well as
+  conf files containing Window cr/lf and Mac cr line termination characters 
+  are now accepted thanks to Robert Nelson.
+- Windows tray status windows are scrollable and resizable.
+- Win32 external script execution is much more flexible -- handles
+  spaces in names better, ...
+- Lots of DVD fixes -- writing DVDs is now reported to work.
+- Fix opening of database in a restricted console to respect     
+  any Catalog ACL.
+- Much better automatic handling of multiple database catalogs in
+  the restore command.
+- 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.
+- Add -n option to bconsole to turn off conio -- used in bweb.
+- 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.
+- 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.
+- 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 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 -- device type directive
+  and mount, unmount directives.
+- 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. You must take much more care now to unmount
+  devices prior to removing tapes that Bacula has open or prior to
+  changing a magazine. Don't forget to do a mount afterwards or the
+  device will be blocked.
+- 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.
+- 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).
+- Integrate addition of line count limitation to bsmtp -l from
+  Sebastian Stark <stark at tuebingen.mpg.de>
+- 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.
+- 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.
+- 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.  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.
+- Improved Bacula rescue procedures -- see the Disaster Recovery
+  chapter of the manual
+- Add spooling/despooling info in status output of SD.
+- Add Comment field to llist of a volume.
+- Allow true/false in many but not all yes/no directives.
+- The Bacula source code is now copyrighted by the Free Software 
+  Foundation Europe. The Developer's Guide documents the new procedures,
+  and the LICENSE file has been updated.
+- Apply Jaime Ventura's patch that implements the Messages resource
+  Mail On Success directive.
+- The Client returns its Version string, which is printed in the Job
+  report.
+- The Client returns whether or not VSS and Encryption are used, which
+  are printed in the Job report.
+
+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"
+
+;;;
diff --git a/docs/home-page/en/pages/bugs.php b/docs/home-page/en/pages/bugs.php
new file mode 100644 (file)
index 0000000..0e0de72
--- /dev/null
@@ -0,0 +1,87 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+        Bug Reporting
+        </td>
+</tr>
+<tr>
+    <td class="content">
+    Before reporting a bug, please be sure it is a bug and
+    not a request for support (see the Support tab to
+    the left).
+    <p>
+    Bacula now has a Mantis bug reporting system
+    implemented by Dan Langille and hosted on his computer. It is web based,
+    easy to use, and we recommend you give it a try. You can submit a bug
+    or review the list of open or closed bugs by visiting:
+
+<p style="text-align: center; font-size: 24px">
+        <a href="http://bugs.bacula.org">http://bugs.bacula.org</a>
+</p>
+
+To view the bug reports, you can login as user <b>anonymous</b> and
+password <b>anonymous</b>. The advantage of actually being subscribed
+is that you will be notified by email of any serious bugs and their
+resolution.
+
+To submit bug reports, you must create an account.  You must also use a
+browser running a US ASCII code page or UTF-8.  Some users running Win32
+IE with Windows Eastern European code pages have experienced problems
+interfacing with the system.
+
+<p>
+Most Bacula problems are questions of support, so if you are not
+sure if a problem you are having is a bug, see the support page
+on this site for links to the email lists.  However, once you have
+determined that a problem is a bug, you must either submit a bug
+report to the bugs database or send an email to the bacula-devel
+list, otherwise it is possible that the developers will never know
+about your bug and thus it will not get fixed.
+
+You should expect two things to be slightly different in our Bugs
+handling than many other Open Source projects.  First, we unfortunately
+cannot give support or handle feature requests via the bugs database,
+and second, we close bugs very quickly to avoid being overwhelmed.
+Please don't take this personally.  If you want to add a note to the bug
+report after it is closed, you can do so by reopening the bug, adding a
+bug note, then closing the bug report again, or for really simple
+matters, you can send an email to the bacula-devel email list.  If a
+developer closes a bug report and after everything considered, you are
+convinced there really *is* a bug and you have new information, you can
+always reopen the bug report.
+
+<h3>Information Needed in a Bug Report</h3>
+For us to respond to a bug report, we normally need the following
+as the minimum information, which you should enter into the appropriate
+fields of the bug reporting system:
+<ul>
+<li>Your operating system</li>
+<li>The version of Bacula you are using</li>
+<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
+<li>If you say &quot;it crashes&quot;, &quot;it doesn't work&quot; or something
+  similar, you should include some output from Bacula that shows this.</li>
+</ul>
+If you are having tape problems, please include:
+<ul>
+ <li>The kind of tape drive you have </li>
+ <li>Have you run the <b>btape</b> &quot;test&quot; command?</li>
+
+</ul>
+The first two of these items can be fulfilled by sending us a copy of
+your <b>config.out</b> file, which is in the main <b>Bacula</b> source
+directory after you have done your <b>./configure</b>.
+
+<p>In addition, we will sometimes need a copy of your Bacula
+configuration files (especially bacula-dir.conf).  If you think it is a
+configuration problem, please don't hesitate to send them if
+necessary.</td>
+</tr>
+<tr>
+   <td style="font-size: 14px; padding: 0px 20px 0px 20px">
+   Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
+   </td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/documentation.php b/docs/home-page/en/pages/documentation.php
new file mode 100644 (file)
index 0000000..36f952d
--- /dev/null
@@ -0,0 +1,67 @@
+<? require_once("inc/header.php"); ?>
+<table>
+  <tr>
+   <td class="contentTopic">
+   Bacula Documentation
+   </td>
+   </tr>
+   
+  <tr>
+   <td class="content">
+   <ul>
+   <li> <a href="dev-manual/Brief_Tutorial.html">Tutorial</a>
+    <br>(start here after installing Bacula)
+   </ul>
+   </td>
+   <td class="content">
+   <ul>
+         <li> <a href="<? echo $spath ?>/?page=news"> News </a>What's New in Bacula</a>
+           <br>(changes since the last major release)
+   </ul>
+   </td>
+   </tr>
+     
+   <tr>
+     <td class="content">
+   <ul>
+   <li> <a href="rel-manual/index.html" >HTML User's Manual</a>
+    <br>(released version of the User's Manual)<br></li>
+   <li> <a href="<? echo $spath ?>/rel-bacula.pdf">PDF User's Manual</a>
+    <br>(released version of the User's Manual)<br></li>
+   </ul>
+   </td>
+   <td class="content">
+   <ul>
+   <li> <a href="dev-manual/index.html" >HTML Development Manual</a>
+    <br>(User's manual for code under development)<br></li>
+   <li> <a href="<? echo $spath ?>/bacula.pdf">PDF Development Manual</a>
+    <br>(User's Manual for code under development)</li>
+   </ul>
+   </td>
+   </tr>
+   
+   <tr>
+     <td class="content">
+      <ul>
+      <li><a href="bacula-web/index.html">Bacula-web Guide</a>
+      <br>(Guide for the Bacula-web GUI application)</li>
+      </ul>
+     </td>
+
+     <td class="content">
+      <ul>
+      <li><a href="developers/index.html">HTML Developer's Guide</a>
+      <br>(Guide for Bacula developers)</li>
+      <li> <a href="<? echo $spath ?>/developers.pdf">PDF Developer's Guide</a>
+      <br>(Guide for Bacula developers)</li>
+      <li><a href="<? echo $spath ?>/FLA-bacula.en.pdf">PDF FLA</a>
+      <br>(Developer's Fiduciary License Agreement)</li>
+      </ul>
+     </td>
+   </tr>
+
+
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/donations.php b/docs/home-page/en/pages/donations.php
new file mode 100644 (file)
index 0000000..b38f7c1
--- /dev/null
@@ -0,0 +1,64 @@
+<? require_once("inc/header.php"); ?>
+
+<table width="100%">
+<tr>
+        <td class="contentTopic">
+                Donations Received
+        </td>
+</tr>
+</table>
+<table width="90%" align="center">
+<tr>
+        <td class="content">
+        <table class="news" style="width: 99%">
+<?
+
+$max_news = 5;
+$news_counter = 0;
+
+// read file into an array and revert that
+// revert cause array_pop always gets the last element
+//
+$file = "donations.txt";
+$lines = array_reverse(file($file)) or
+        die("No newsfile!");
+
+// as long as there are lines ...
+//
+while(count($lines) > 0 && $news_counter < $max_news) {
+        // next line
+        $line = array_pop($lines);
+
+        // start of news
+        if(eregi("^[a-z0-9]+;;;", $line)) {
+                // news header
+                list($author,$date,$time) = explode(";;;",$line);
+
+                // news subject
+                $subject = array_pop($lines);
+                printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
+                printf('<tr><td class="newsContent"><pre class="newsContent">');
+
+                continue;
+        }
+
+        // end of news
+        if(eregi("^;;;", $line)) {
+                printf('</pre></td></tr>');
+                printf('<tr>');
+                printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
+                printf('</tr>');
+                printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
+                $news_counter++;
+                continue;
+        }
+
+        // news content
+        printf('%s', $line);
+}
+?>
+        </table>
+        </td>
+</tr>
+</table>
+<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/en/pages/feature-request.php b/docs/home-page/en/pages/feature-request.php
new file mode 100644 (file)
index 0000000..b9f3e19
--- /dev/null
@@ -0,0 +1,94 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+   <td class="contentTopic"> Feature Requests </td>
+</tr>
+<tr>
+   <td class="content">
+
+In the past, users informally submitted feature requests by email, and 
+I (Kern) collected them, then once a version was released, I would publish the
+list for users to vote on.
+<p>
+Now that Bacula has become a bigger project, this process has been 
+formalized a bit more. The main change is for users
+to carefully think about their feature, and submit it on a feature
+request form. A mostly empty form is shown below along with an 
+example of an actual filled in form. A text copy of the form can
+be found in the <b>projects</b> file in the main source directory
+of the Bacula release. That file also contains a list of all the
+currently approved projects and their status.
+<p>
+The best time to submit a Feature Request is just after a release when
+I officially request feature requests for the next version. The worst
+time to submit a feature request is just prior to a new release (we are
+very busy at that time).  To actually submit the Feature request,
+fill out the form, and submit it to both the bacula-users and
+the bacula-devel email lists. It will then be openly discussed.
+<p>
+Once the Feature Request has beeen adequately discussed, I will
+either reject it, approve it, or possibly request some
+modifications.  If you plan to implement the feature or donate
+funds to have it implemented, this is important to note,
+otherwise, the feature, even if approved, may wait a long time
+for someone to implement it.
+<p>
+Once the Feature request is approved, I'll add it to the projects
+file, which contains a list of all open Feature Requests.  The projects
+file is updated from time to time
+<p>
+The current (though possibly somewhat old) list of projects can also
+be found on the Web site by clicking on the Projects menu item.
+                     
+
+<h3>Feature Request Form</h3>
+<pre>
+Item n:   One line summary ...
+  Origin: Name and email of originator.
+  Date:   Date submitted (e.g. 28 October 2005)
+  Status:
+
+  What:   More detailed explanation ...
+
+  Why:    Why it is important ...
+
+  Notes:  Additional notes or features ...
+
+</pre>
+
+<h3>An Example Feature Request</h3>
+<pre>
+Item 1:   Implement a Migration job type that will move the job
+          data from one device to another.
+  Date:   28 October 2005
+  Origin: Sponsored by Riege Sofware International GmbH. Contact:
+          Daniel Holtkamp <holtkamp at riege dot com>
+  Status: Partially coded in 1.37 -- much more to do. Assigned to
+          Kern.
+
+  What:   The ability to copy, move, or archive data that is on a
+          device to another device is very important.
+
+  Why:    An ISP might want to backup to disk, but after 30 days
+          migrate the data to tape backup and delete it from
+          disk.  Bacula should be able to handle this
+          automatically.  It needs to know what was put where,
+          and when, and what to migrate -- it is a bit like
+          retention periods.  Doing so would allow space to be
+          freed up for current backups while maintaining older
+          data on tape drives.
+
+  Notes:  Migration could be triggered by:
+           Number of Jobs
+           Number of Volumes
+           Age of Jobs
+           Highwater size (keep total size)
+           Lowwater mark
+
+</pre>
+
+</td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/fsfe.php b/docs/home-page/en/pages/fsfe.php
new file mode 100644 (file)
index 0000000..ce2dd46
--- /dev/null
@@ -0,0 +1,56 @@
+<? require_once("inc/header.php"); ?>
+<table>
+  <tr>
+   <td class="contentTopic">
+   The Free Software Foundation Europe License
+   </td>
+   </tr>
+
+   
+   <tr>
+     <td class="content">
+
+   The Bacula project has assigned its copyright to the Free Software Foundation
+   Europe e.V. in a fiduciary relationship that permits the FSFE to
+   safeguard the Bacula software against abuse while allowing the project
+   to continue without the administrative burden of maintaining the
+   copyright paper work.
+   <p>
+   If you contribute more than a few lines of code or documentation to the
+   Bacula project, we ask you to complete the copyright Fiduciary License
+   Agreement (link provided below).  This is the same agreement that I (Kern)
+   and the other developers have signed to transfer our copyrights to the
+   FSFE.
+   <p>
+   Filling it out is really quite simple.  Please make two copies,
+   then put your name and mailing address on the first page and
+   date it.
+   <p>
+   On the third page after &quot;the author&quot; put your name and the
+   other information requested. This is simply to uniquely identify
+   you.  
+   <p>
+   If you are employed and you do Bacula work while at work
+   or your employer has the rights to your work (often the case),
+   please put your employer's information here.
+   <p>
+   On the fourth page, you can simply put &quot;All code and documentation
+   contributed to the Bacula.org project&quot; or if you wish to be more
+   specific please do so.
+   <p>
+   Thanks for taking the time to complete and send the FLA in.
+   <p>
+   <ul>
+   <li> <a href="FLA-bacula.en.pdf" >PDF of FSFE Fiduciary License Agreement</a>
+    </li>
+   </ul>
+   </td>
+   <td class="content">
+   <ul>
+   </ul>
+   </td>
+   </tr>
+   
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/home.php b/docs/home-page/en/pages/home.php
new file mode 100644 (file)
index 0000000..8ec65ae
--- /dev/null
@@ -0,0 +1,58 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+   <td class="contentTopic">
+      Bacula&reg; - The Network Backup Solution
+   </td>
+</tr>
+<tr>
+  <td class="content">
+     <b>Bacula</b> is a set of computer programs that permit you
+     (or the system administrator) to manage backup, recovery,
+     and verification of computer data across a network of
+     computers of different kinds.<br>
+
+     <br>     
+     <b>Serious Bug</b> - All users should read <a href="?page=news">
+     the news item</a> regarding a serious bug found in version 2.2.4 and
+     fixed with a patch the 29th of Sept 2007.  The patch is in all
+     subsequent releases. Please subscribe to the 
+     <a href="?page=maillists">announce mailing list</a> to be kept informed.<br>
+
+     <br>
+     In technical terms, it is a <b>network based backup program</b>.<br>
+
+     <br>
+     Bacula is relatively easy to use and efficient, while
+     offering many advanced storage management features that make
+     it easy to find and recover lost or damaged files.<br> 
+
+     <br>
+     Most of the <b>Bacula</b> source code is released under the
+     <b>GPL</b> version 2 license.  If you wish additional
+     details, please follow the License link to your left.<br>
+
+     <br>The Documentation link takes you to a page where you
+     can access all the available Bacula documentation (HTML,
+     PDF, and TGZ) both for the officially released version 
+     and for the current code under development in the Source
+     Forge SVN. The development version of the manual typically has
+     more documentation, but may also document new features that are
+     not in the released version.  The Developer's Guide
+     presents important information for users who want to
+     contribute to the Bacula project.<br>  
+        
+     <br> Bacula is Hosted on
+     SourceForge at <a href="http://sourceforge.net/projects/bacula">
+     http://sourceforge.net/projects/bacula </a> where you can
+     download the software.<br> <br> You may also use
+     the links on the left side of this page for more
+     information.  In particular, Current Files link takes
+     you to the currently available downloads, and the All
+     Downloads link takes you to a list of all files ever
+     released to SourceForge.
+  </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/license.php b/docs/home-page/en/pages/license.php
new file mode 100644 (file)
index 0000000..9cb6e68
--- /dev/null
@@ -0,0 +1,41 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                Bacula Copyright, Trademark, and Licenses
+        </td>
+</tr>
+<tr>
+  <td class="content">
+     There are a number of different licenses that are used in
+     Bacula.
+     <h3>GPL</h3>
+     The vast bulk of the code is released under the
+
+     <a href="rel-manual/gpl.html">GNU General Public License version 2.</a>
+     Most of this code is copyrighted:
+     Copyright (C) 2000-2007 Free Software Foundation Europe, e.V.
+     <p>Portions may be copyrighted by other people (ATT, the
+     Free Software Foundation, ...).
+     <h3>LGPL</h3>
+     Some of the Bacula library source code is released under the
+     <a href="rel-manual/lesser.html">GNU Lesser General Public License.</a>
+     This permits third parties to use these parts of our code in
+     their proprietary programs to interface to Bacula.
+     <h3>Public Domain</h3>
+     Some of the Bacula code has been released to the public domain.
+     E.g. md5.c, SQLite.
+     <h3>Trademark</h3>
+     Bacula<sup>&reg;</sup>is a registered trademark of John
+     Walker.
+
+     <p>We have done this to ensure that any variant of Bacula will
+     be exactly compatible with the program that we have released.
+     The use of the name <b>Bacula</b> is restricted to software systems
+     that agree exactly with the program presented here.
+     </p>
+  </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/listlic.php b/docs/home-page/en/pages/listlic.php
new file mode 100644 (file)
index 0000000..217dad0
--- /dev/null
@@ -0,0 +1,32 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                Professional Support for Bacula
+        </td>
+</tr>
+<tr>
+  <td class="content">
+    The people listed are <b>independent contractors</b>.<br>
+    We can't take responsibility for their actions when you hire them,
+    but we would appreciate feedback positive or negative.<br>
+    <br>
+    Listing on the Bacula Professional page is offered as a
+    <b>service</b>, <b>without</b> any guarantees.<br>
+    <br>
+    We reserve the right to decide with reason who is
+    added/removed from the web page.<br> 
+    To be listed, you must have some tangible connection with and
+    knowledge of Bacula (i.e. developer, contributed
+    code/patches, Bacula user and subscribed to bacula-users, or
+    bacula-devel, and preferably a Web site ...).<br>
+    <br>
+    People listed here agree to update their contact information
+    on a regular basis.<br> Anyone listed with incorrect
+    information is subject to removal.<br> <br> If you want to be
+    listed on the page, please get in contact with Kern
+    Sibbald.<br>
+  </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/login.php b/docs/home-page/en/pages/login.php
new file mode 100644 (file)
index 0000000..31690ee
--- /dev/null
@@ -0,0 +1,24 @@
+<? require_once("inc/header.php"); ?>
+
+<?
+?>
+
+<div class="login">
+<form action="/?page=login" method="post">
+       <table cellpadding="5px" style="background: #749aba; color:white; border: 15px #002244 solid; padding: 15px" align="center">
+       <tr>
+               <td>User:</td>
+               <td><input type="text" name="username" size="10" maxsize="10"></td>
+       </tr>
+       <tr>
+               <td>Pass: </td>
+               <td><input type="password" name="password" size="10" maxsize="10"></td>
+       </tr>
+       <tr>
+               <td style="text-align: right" colspan="2"> <input style="border: 1px dotted white" type="submit" value="Login"> </td>
+       </tr>
+       </table>
+</form>
+</div>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/logout.php b/docs/home-page/en/pages/logout.php
new file mode 100644 (file)
index 0000000..63bd3f8
--- /dev/null
@@ -0,0 +1,12 @@
+<? require_once("inc/header.php"); ?>
+
+<?
+?>
+
+<div class="login">
+       <? session_destroy(); ?>
+       <META HTTP-EQUIV=Refresh CONTENT="2; URL=/">
+       You have officially been pimp^Wlogged out.
+</div>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/maillists.php b/docs/home-page/en/pages/maillists.php
new file mode 100644 (file)
index 0000000..c65fcc8
--- /dev/null
@@ -0,0 +1,150 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                Email Lists
+        </td>
+</tr>
+<tr>
+        <td class="content">
+
+<b>Bacula</b> has a number of email lists which are described below with
+links to subscribe, unsubscribe, or modify your account.
+For general information subscribing to or unsubscribing from these lists, please see
+<a href="http://sourceforge.net/mail/?group_id=50727">Bacula Mailing Lists at SourceForge</a>.
+<p>For email archives see the bottom of this page.</p>
+
+Source Forge has rather strict email requirements in order to
+try to minimize the large quantity of spam that the lists receive every day.
+These are mesures that they have implemented, and over which we have no
+control.
+<p>
+If you are having problems subscribing or sending email to a Bacula list,
+please, read the following: <a href="http://sourceforge.net/docman/display_doc.php?docid=6695&group_id=1">
+SourceForge.net: Email Problems: Spam, Bounces, Unreceived Messages</a>, then
+if you are still having problems send a support request to Source Forge.
+Source Forge requires the person affected submit his/her own support request;
+the Bacula project is not permitted to do so on your behalf.  
+<p>
+One item they do not mention in the above referenced document is grey listing.
+If you are using grey listing, you are likely to have problems with the Source
+Forge email lists.  The solution is to whitelist their sending IPs.  You might
+want to whitelist their whole zone (66.35.250.0/24) as I (Kern) have done, but
+if you are more conservative, I found only two of their IPs were sending email
+(66.35.250.225 and 66.35.250.206).  If you grey list individual Source Forge
+IP addresses, please be sure to check your logs to verify the addresses they
+use for you.
+
+<h3>bacula-announce</h3>
+The <b>bacula-announce</b> list is a read only low volume list for those
+users who wish to be notified when there are important events
+(important bugs, new releases, ...). We recommend that all
+users subscribe to this list. Do so by following the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-announce">
+Bacula Announce List Subscription/Unsubscription/Modification</a>.
+Please do not send email directly to this list.
+
+<p>It is also possible to get email notification whenever a new package
+is released on SourceForge. This is accomplished by going to
+the <a href="http://sourceforge.net/projects/bacula">Bacula SourceForge
+Project</a> page and clicking on the little letter or mail icon
+<img src="images/mail16d.png" alt="" width="15" height="15"> under the heading <b>Monitor</b> in the
+row corresponding to the package you want to monitor.
+</p>
+
+<h3>bacula-users</h3>
+The <b>bacula-users</b> list is the general forum to
+ask questions about Bacula or respond to questions
+from other users. The volume on this list is generally
+moderate, but can vary. All users are encouraged to subscribe
+and to participate.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-users">Bacula Users List Subscription/Unsubscription/Modification</a>.
+<p>
+To send an email to the Bacula Users List, use the following
+address: <b>bacula-users at lists.sourceforge.net</b>.
+The previous address was modified to prevent easy use by spammers. To use it,
+you must replace the <b>at</b> with an @ symbol.
+</p>
+
+<h3>bacula-devel</h3>
+The <b>bacula-devel</b> list is for those users who wish to
+communicate directly with the developers. The email volume
+is usually quite low (several emails per day), but can vary.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe, please follow this link:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-devel">
+Bacula Developers List Subscription/Unsubscription/Modification</a>.
+<p>
+To send an email to the Bacula Developers List, use the following
+address: <b>bacula-devel at lists.sourceforge.net</b>.
+The previous
+address was modified to prevent easy use by spammers. To use it,
+you must replace the <b>at</b> with an @ symbol.
+</p>
+
+<h3>bacula-bugs</h3>
+The <b>bacula-bugs</b> list is a read only
+list for those users who wish to be notified about new bugs
+registered at: <a href="http://bugs.bacula.org">
+http://bugs.bacula.org</a>. Please do not send email directly
+to this list bug file a bug report in the bugs database mentioned
+above. All email to this list other than from the bugs system itself
+is automatically discarded.
+
+To subscribe, follow follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-bugs">
+http://lists.sourceforge.net/lists/listinfo/bacula-bugs</a>.
+
+<h3>bacula-beta</h3>
+The <b>bacula-beta</b> list is a read only
+list for those packagers or users who wish to be notified
+when a new release is in preparation or is ready.
+This list is also used for discussions on running regression
+scripts.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe, follow follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-beta">
+http://lists.sourceforge.net/lists/listinfo/bacula-beta</a>.
+
+
+<h3>bacula-commits</h3>
+The <b>bacula-commits</b> list is a read only
+list for those users who wish to be receive a diff of each
+commit to the SVN. Please do not email directly to this list.
+If you do commits, please subscribe your Source Forge name to this 
+list.  Any mail from non-subscribed users is automatically discarded.
+
+You may subscribe by following the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-commits">
+http://lists.sourceforge.net/lists/listinfo/bacula-commits</a>.
+
+
+<h3>Archives</h3>
+Most of the above email lists are archived on Source Forge, but they are
+also archived on Gmane, which has better search facilities. The
+Gmane archives are at: <a href="http://news.gmane.org/search.php?match=bacula">
+http://news.gmane.org/search.php?match=bacula</a>.
+
+<p>
+The lists are also archived at
+<a href="http://marc.info/">Mailing list ARChives (MARC)</a>.
+<ul>
+<li><a href="http://marc.info/?l=bacula-announce&r=1&w=2">Announce</a></li>
+<li><a href="http://marc.info/?l=bacula-beta&r=1&w=2">BETA</a></li>
+<li><a href="http://marc.info/?l=bacula-bugs&r=1&w=2">Bugs</a></li>
+<li><a href="http://marc.info/?l=bacula-commits&r=1&w=2">Commits</a></li>
+<li><a href="http://marc.info/?l=bacula-devel&r=1&w=2">Devel</a></li>
+<li><a href="http://marc.info/?l=bacula-users&r=1&w=2">Users</a></li>
+</ul>
+        </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/makedonation.php b/docs/home-page/en/pages/makedonation.php
new file mode 100644 (file)
index 0000000..5802591
--- /dev/null
@@ -0,0 +1,102 @@
+
+<? require_once("inc/header.php"); ?>
+
+<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_xclick">
+<input type="hidden" name="business" value="projects@bacula.org">
+<input type="hidden" name="tax" value="0">
+<input type="hidden" name="bn" value="PP-DonationsBF">
+<input type="hidden" name="lc" value="US">
+<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+</form>
+
+<table>
+<tr>
+        <td class="contentTopic">
+        Contributing to the Bacula Project
+        </td>
+</tr>
+<tr>
+    <td class="content">
+    Although one talks about Free Software, in fact, Open Software such
+    as Bacula was not developed without some cost. The software
+    may be free for the user, but it wasn't free for the developer
+    or developers, either in terms of time or in terms of financial
+    cost.
+
+    For example, since beginning work on the Bacula project in
+    January 2000 until now (August 2006), I (Kern) have spent
+    approximately $8000 per year for computers, tape drives,
+    communications expenses, electricity, software licenses, and
+    other expenses.  I am not complaining and am pleased to have
+    been able to afford these expenditures.  In addition, have no
+    desire to have my past expenses reimbursed.
+
+    Bacula is now a fairly mature product, and to ensure its long
+    term survival, I believe it is time that Bacula begins to
+    stand on its own, both financially and for the development, 
+    which is why we began accepting donations or project support
+    in November 2005.
+    <p>
+    There are ways you can contribute to the Bacula
+    project, some of which are: ideas, user support,
+    documentation review, translation, programming and
+    contributing code, testing the new releases, hosting
+    services, testing machines, donating needed equipment, and
+    financial support.
+
+    Previously all but the last one (financial support) were possible.
+    It is now possible for you to contribute financial aid
+    the Bacula project.  All funds collected will be used to help
+    further the Bacula project by covering out of pocket expenses
+    incurred by the project (no salaries).  Examples are, administrative
+    fees, hardware, software licenses (yes Micro$oft), and possibly a
+    portion of travel/conference expenses.
+
+    <p>
+    Contributions may not be US tax deductible as Bacula is
+    based in Switzerland. 
+    <p>
+    If you are a government or for-profit corporation and cannot
+    make &quot;donations&quot;, please consider paying a (non-obligatory)
+    binary license fee for any Bacula built binaries that you download.
+    By making these pre-built, pre-tested binaries available, we are
+    providing users who download them with an extra service, which merits
+    careful consideration for making a contribution or paying a 
+    &quot;license fee&quot;.
+    <p>
+    If you are a corporation and cannot make donations and don't want
+    to pay a binary license fee, you can request an invoice for
+    Bacula Project development.  Please see below for how to do this.
+
+    <p>
+    To make a contribution, please click on the donate button at
+    the top of the screen, and your transaction will be secured
+    and confirmed directly by PayPal.  If you contribute, or have
+    any questions, please send me an email directly: kern at
+    sibbald dot com.
+
+    <p>
+    If you need an invoice, I can send you one, but in order to limit my
+    administrative work, I kindly request you to make a donation of at least
+    $200 before requesting an invoice. To obtain one, simply email me the exact
+    name to appear on the invoice as well as the mailing address, the amount
+    you want to contribute, and the project you are supporting (or simply
+    Bacula development).
+
+    <p>
+    The Bacula web site has a &quot;Donations Received&quot; page where
+    you can have your company name, your name, and the amount (or any
+    combination of those) listed. You must explicitly request to be listed. 
+    Do so by sending an email to: kern at sibbald dot com after you have
+    made the payment.
+
+    <p>Although there is one link to our ISP, who we thank for providing the
+    hosting service, we do not provide any links to other sites other than
+    on the Professional page.
+                                    
+<p>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/news.php b/docs/home-page/en/pages/news.php
new file mode 100644 (file)
index 0000000..9aab65e
--- /dev/null
@@ -0,0 +1,64 @@
+<? require_once("inc/header.php"); ?>
+
+<table width="100%">
+<tr>
+       <td class="contentTopic">
+               News
+       </td>
+</tr>
+</table>
+<table width="90%" align="center">
+<tr>
+       <td class="content">
+       <table class="news" style="width: 99%">
+<?
+
+$max_news = 5;
+$news_counter = 0;
+
+// read file into an array and revert that
+// revert cause array_pop always gets the last element
+//
+$file = "news.txt";
+$lines = array_reverse(file($file)) or
+       die("No newsfile!");
+
+// as long as there are lines ...
+//
+while(count($lines) > 0 && $news_counter < $max_news) {
+       // next line
+       $line = array_pop($lines);
+
+       // start of news
+       if(eregi("^[a-z0-9]+;;;", $line)) {
+               // news header
+               list($author,$date,$time) = explode(";;;",$line);
+
+               // news subject
+               $subject = array_pop($lines);
+               printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
+               printf('<tr><td class="newsContent"><pre class="newsContent">');
+
+               continue;
+       }
+
+       // end of news
+       if(eregi("^;;;", $line)) {
+               printf('</pre></td></tr>');
+               printf('<tr>');
+               printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
+               printf('</tr>');
+               printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
+               $news_counter++;
+               continue;
+       }
+
+       // news content
+       printf('%s', $line);
+}
+?>
+       </table>
+       </td>
+</tr>
+</table>
+<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/en/pages/presentations.php b/docs/home-page/en/pages/presentations.php
new file mode 100644 (file)
index 0000000..248570e
--- /dev/null
@@ -0,0 +1,24 @@
+<? require_once("inc/header.php"); ?>
+<table>
+  <tr>
+   <td class="contentTopic">
+   Bacula Presentations
+   </td>
+   </tr>
+   
+   <tr>
+     <td class="content">
+   <ul>
+   <li> <a href="presentations/Bacula-FOSDEM-talk-25Feb07.pdf" >PDF FOSDEM Slide Show</a>
+    <br>Slide Show Presented at FOSDEM 2007<br></li>
+   </ul>
+   </td>
+   <td class="content">
+   <ul>
+   </ul>
+   </td>
+   </tr>
+   
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/presskits.php b/docs/home-page/en/pages/presskits.php
new file mode 100644 (file)
index 0000000..63d137d
--- /dev/null
@@ -0,0 +1,31 @@
+<? require_once("inc/header.php"); ?>
+<table>
+  <tr>
+   <td class="contentTopic">
+   Bacula 2.2.0 Press Information
+   </td>
+   </tr>
+
+   <tr>
+   <td class="content">
+
+   <h3>Bacula 2.2.0 Press Information</h3>   
+   <ul>
+   <li> <a href="about/press/presskit220.html.en" >Press Kit</a></li>
+   <li> <a href="/rel-manual/Bacula_Freque_Asked_Questi.html" >Frequently Asked Questions</a></li>
+   </ul>
+
+   <h3>Press Kit in Other Languages</h3>
+
+   <ul>
+   <li> <a href="about/press/presskit220.html.en" >Catalan</a></li>
+   <li> <a href="about/press/presskit200.html.fr" >French</a></li>
+   <li> <a href="about/press/presskit200.html.de" >German</a></li>
+   <li> <a href="about/press/presskit200.html.es" >Spanish</a></li>
+   </ul>
+   </td>
+   </tr>
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/professional.php b/docs/home-page/en/pages/professional.php
new file mode 100644 (file)
index 0000000..a795a19
--- /dev/null
@@ -0,0 +1,460 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+    <td class="contentTopic">
+       Professional Support for Bacula
+    </td>
+</tr>
+<tr>
+    <td class="content">
+       The following people are independent contractors. Each has worked
+       with Bacula, and we are pleased to list their names here as a service, but
+       without any guarantees.<br>
+       <br>
+       Please read that short 'license' for further details: <a href="?page=listlic">Listing license</a><br>
+       All names have been reviewed and approved. <br>
+       <br>
+       All email-addresses are extended with a 'NOSPAM'-tag, please remove it before sending an email.<br>
+    </td>
+</tr>
+<tr>
+   <td class="content">
+   <table align="center">
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Alixen
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@alixen.fr">Gilles Polart-Donat</a><br>
+                 20 rue Jean Rostand<br>
+                 91400 Orsay, France<br>
+                 +33 01 60 19 72 31<br>
+                 <br>
+                 <a href="http://www.alixen.fr">http://www.alixen.fr</a>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Arden Group Inc
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:rberryNOSPAM@ardengrp.com">Roger Berry</a><br>
+                 5026 NE Clackamas<br>
+                 Portland, OR 97213 USA<br>
+                 +1(971)223-3987<br>
+                 <br>
+                 <a href="http://www.ardengrp.com">http://www.ardengrp.com</a><br>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Axiom Networking
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:ajordanNOSPAM@draftathome.com">Angus Jordan</a><br>
+                 9235 215th St, Langley BC, Canada<br>
+                 +1-604-888-6162<br>
+                 <br>
+                 We offer all types of IT related support services.  Platform support:  Linux,<br>
+                 Windows 2000/2003 etc.  Lots of experience with Bacula, DBMail, Nagios,<br>
+                 Postfix, Qmail, qpopper, BIND (8/9), and MANY others.<br>
+                 <br>
+                 <a href="http://www.axiomnetworking.ca">http://www.axiomnetworking.ca</a><br>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Bayer Technology Group
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:jbayerNOSPAM@BayerTechnologyGroup.com"> Jonathan B Bayer</a><br>
+                Bayer Technology Group, 23 Exeter Rd., East Windsor, NJ 08520 USA<br>
+                 +1 (609) 632-1200<br>
+                 +1 (609) 658-9408 (mobile)<br>
+                 <br>
+                 Our focus is on assisting and providing high
+                 quality IT services to individuals, small businesses and
+                 organizations with computer and information technology needs,
+                 but who often don't need or have a budget for a full time IT
+                 staff.  We specialize in Desktop systems, Local Area Network
+                 (LAN), Internet, Computer Systems Security and Disaster
+                 Recovery Planning and Implementation using Microsoft and
+                 Linux based solutions.  <br> <br> <a
+                 href="http://www.BayerTechnologyGroup.com">http://www.BayerTechnologyGroup.com</a><br>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      BSDCan
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:danNOSPAM@langille.org">Dan Langille</a><br>
+                 Suite 474<br>
+                 900 Greenbank Road<br>
+                 Ottawa, ON K2J 4P6<br>
+                 +1 215 882 0565<br>
+                 <br>
+                 Dan has been a Bacula developer since early 2004 when he wrote
+                 the PostgreSQL plugin.  He is also the Bacula maintainer for
+                 FreeBSD and has been writing and speaking about Bacula for 
+                 several years.  As a consultant, his Bacula speciality is
+                 design, installation, and configuration of new systems.  He is
+                 available for consulting on any project.
+                 
+                 <br>
+                 Reference available upon request.
+                 
+                 <br>
+                 <a href="http://www.langille.org/">http://www.langille.org/</a>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      dass IT GmbH
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNSPAM@dass-it.de">dass IT GmbH</a><br>
+                 H&auml;ndelstra&#223;e 25-29<br>
+                 50674 K&ouml;ln<br>
+                 Germany<br>
+                 Tel: +49 221 35 65 666 - 0<br>
+                 Fax: +49 221 35 65 666 - 10<br>
+                 <br>
+                 dass IT provides professional services and
+                 support using mainly open source tools.  Our
+                 focus lies on system management for a large
+                 number of systems (servers and desktops).  We
+                 provide services and solutions mainly for Linux
+                 based IT infrastructures.  
+                 <br> 
+                 <a href="http://www.dass-it.de/">http://www.dass-it.de/</a>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                     Heitor Faria
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:heitorfariaNOSPAM@hotmail.com">Heitor Faria</a><br>
+                 Consultoria em Software Libre (Brazil)<br>
+                 <br>
+                 Telephone +55 71 9196-5270<br>
+                 <br>
+                 <br>
+                 Bacula training, installation and support.
+                 <br>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                     HEXONET Support GmbH
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@hexonet.com">Hexonet</a><br>
+                 Alexander Biehl<br>
+                 Talstrasse 27<br>
+                 66424 Homburg<br>
+                 Germany 
+                 <br>
+                 Tel: +49 6841 95961-70<br>
+                 Fax: +49 6841 95961-79<br>
+                 <br>
+                 HEXONET Support GmbH provides professional IT services and support. We 
+                 are specialized in OpenSource products.
+                 <br>
+                 <a href="http://www.hexonet.com">http://www.hexonet.com</a><br>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Instant Root HB
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@instant-root.com">Info-Mail</a><br>
+                 Box 1823 <br>
+                 SE-58117 Link&ouml;ping, Sweden<br>
+                 <br>
+                 Instant Root HB is a company specialized in Unix systems administration, network
+                 design and implementation, as well as education in various computer-related fields.<br> 
+                 <br>
+                 <a href="http://www.instant-root.com">http://www.instant-root.com</a><br>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      IT-Service Lehmann
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@its-lehmann.de">Arno Lehmann</a><br>
+                  Sandstr. 6<br>
+                  49080 Osnabr&uuml;ck</br>
+                  Germany<br>
+                  +49 (0) 541 5803396<br>
+                  +49 (0) 160 92008971 (mobile)<br>
+                  <br>
+                  Storage, Communication, Backup and Monitoring using 
+                  Open-Source solutions.  Services from
+                  network design to system administration and
+                  user education, with a focus on Small
+                  Businesses looking for cost-effective solutions.
+                  <br>
+                  <a href="http://www.its-lehmann.de">http://www.its-lehmann.de</a>
+               </td>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                 KDB Konsult AB
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:matsNOSPAM@kdb.se">Mats Vilhelmsson</a><br>
+                 Tel: +46 708 901042<br>
+                 <br>
+                 Backup hosting - Internet backups, Bacula training, installations and support.<br>
+                 <br>
+                 <a href="http://www.kdb.se">http://www.kdb.se</a><br>
+              </td>
+      </tr>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      L. Strappazon
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:l.strappazonNOSPAM@free.fre">Ludovic Strappazon</a><br>
+                 Strasbourg, France<br>
+                 +33 685 27 93 39<br>
+                 <br>
+                 I offer engineering services and training around storage and Backup. 
+                 Planning and scaling of your hardware installation, Bacula implementation.
+              </td>
+      </tr>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                  MATRIX-Computer
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                  MATRIX-Computer GmbH<br>
+                  Dachauer Str. 44<br>
+                  80335 M&uuml;nchen<br>
+                  Germany<br>
+
+                  +49-89-922 996 80<br>
+                  <br>
+                  We are a team of software developers with experience in C++, Windows, PHP, 
+                  Linux and more. We have done lots of the Think Tools software.<br>
+                  <br>
+                  <a href="http://www.matrix-computer.com">http://www.matrix-computer.com</a><br>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                     NETWAYS GmbH
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@netways.de">NETWAYS GmbH</a><br>
+                 Deutschherrnstrasse 47a<br>
+                 90429 N&uuml;rnberg<br>
+                 Germany<br>
+                 <br>
+                 Telephone +49 911 92885-0<br>
+                 Fax +49 911 92885-77<br>
+                 <br>
+                 <br>
+                 We support our customers managing complex and
+                 heterogeneous networks.  Our services and
+                 solutions, based on Open Source software, help
+                 you run your servers and applications
+                 failure-free.  Special focus on Nagios, Bacula,
+                 Request Tracker, and cluster solutions.  <br> 
+                 <br>
+                 <a href="http://www.netways.de">http://www.netways.de</a><br>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                     raptus ag
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@raptus.com">raptus ag</a><br>
+                 moderne kommunikation<br>
+                 burgweg 1<br>
+                 2563 ipsach -- switzerland<br>
+                 <br>
+                 Telephone +41 (0)32 332 9200<br>
+                 Fax +41 (0)32 332 9201<br>
+                 <br>
+                 <br>
+                 Modern communications, Internet projects and IT services since 1996!
+                 Specialized in heterogeneous networks (linux, mac, windows) and open 
+                 source solutions.<br>
+                 <br>
+                 <a href="http://www.raptus.com">http://www.raptus.com</a><br>
+              </td>
+      </tr>
+
+
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Sine Nomine Associates
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@sinenomine.net">Services Sales Dept.</a><br>
+                 US:<br>
+                 &nbsp;&nbsp;43596 Blacksmith Square <br>
+                 &nbsp;&nbsp;Ashburn, VA 20147 USA <br>
+                 &nbsp;&nbsp;+1 703 723 6673<br>
+                 <br>
+                 EMEA:<br>
+                 &nbsp;&nbsp;Na Dvorcich 17/Na Vrasni 18<br>
+                 &nbsp;&nbsp;CZ - Praha 4, 14000 <br>
+                 &nbsp;&nbsp;Czech Republic<br>
+                 <br>
+                 Design and implementation of system management tools and infrastructure,<br>
+                 from small systems to enterprise-wide implementations on global scale.<br>
+                 Special focus on Bacula for enterprise-class systems and mainframe.<br>
+                 <br>
+                 <a href="http://www.sinenomine.net">http://www.sinenomine.net</a><br>
+              </td>
+      </tr>
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      Thinxsolutions 
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:infoNOSPAM@thinxsolutions.com">
+                 M&uuml;ller, Bender, Guth GbR</a><br>
+                 &nbsp;&nbsp;Maarweg 139 <br>
+                 &nbsp;&nbsp;50825 Cologne, Germany <br>
+                 <br>
+                 &nbsp;&nbsp;+49 221 35503530<br>
+                 <br>
+                 We implement and manage corporate networks for our customers
+                 and offer consulting and professional support for various open source
+                 software solutions.<br>
+                 <br>
+                 <a href="http://www.thinxsolutions.com">http://www.thinxsolutions.com</a><br>
+              </td>
+      </tr>
+
+
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr>
+              <td style="font-weight: bold">
+                      WinFix.IT
+              </td>
+              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+              <td>
+                 <a href="mailto:JoNOSPAM@WinFix.IT">Jo at WinFix.IT</a><br>
+                 <br>
+                 &nbsp;&nbsp;In and around Leuven and Brussels (Belgium)
+                 <br>
+                 &nbsp;&nbsp;+32 (0)478-33 76 27<br>
+                 <br>
+                 Set up of SAMBA File and Print servers/domain controllers, mail
+                 servers (Postfix) with spam/virus killers 
+                 (Spamassassin/Amavis/Clamav/BitDefender)
+                 and backup (with Bacula of course). Network monitoring with Nagios.
+                 <br>
+                 <br>
+                 <a href="http://www.WinFix.IT">http://www.WinFix.IT</a><br>
+              </td>
+      </tr>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+      <tr> <td colspan="3"><hr></td>
+      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+
+
+   </table>
+   </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/projects.php b/docs/home-page/en/pages/projects.php
new file mode 100644 (file)
index 0000000..dd818cd
--- /dev/null
@@ -0,0 +1,1292 @@
+<? require_once("inc/header.php"); ?>
+<table>
+</tr>
+<tr>
+        <td class="content">
+
+<pre>
+                
+                
+                
+Projects:
+                     Bacula Projects Roadmap 
+                    Status updated 7 July 2007
+                   After re-ordering in vote priority
+
+Items Completed:
+Item:   2   Implement a Bacula GUI/management tool.
+Item:  18   Quick release of FD-SD connection after backup.
+Item:  23   Implement from-client and to-client on restore command line.
+Item:  25   Implement huge exclude list support using dlist   
+Item:  41   Enable to relocate files and directories when restoring
+Item:  42   Batch attribute inserts (ten times faster)
+Item:  43   More concurrency in SD using micro-locking
+Item:  44   Performance enhancements (POSIX/Win32 OS file access hints).
+Item:  40   Include JobID in spool file name
+
+Summary:
+Item:   1   Accurate restoration of renamed/deleted files
+Item:   2*  Implement a Bacula GUI/management tool.
+Item:   3   Allow FD to initiate a backup
+Item:   4   Merge multiple backups (Synthetic Backup or Consolidation).
+Item:   5   Deletion of Disk-Based Bacula Volumes
+Item:   6   Implement Base jobs.
+Item:   7   Implement creation and maintenance of copy pools
+Item:   8   Directive/mode to backup only file changes, not entire file
+Item:   9   Implement a server-side compression feature
+Item:  10   Improve Bacula's tape and drive usage and cleaning management.
+Item:  11   Allow skipping execution of Jobs
+Item:  12   Add a scheduling syntax that permits weekly rotations
+Item:  13   Archival (removal) of User Files to Tape
+Item:  14   Cause daemons to use a specific IP address to source communications
+Item:  15   Multiple threads in file daemon for the same job
+Item:  16   Add Plug-ins to the FileSet Include statements.
+Item:  17   Restore only file attributes (permissions, ACL, owner, group...)
+Item:  18*  Quick release of FD-SD connection after backup.
+Item:  19   Implement a Python interface to the Bacula catalog.
+Item:  20   Archive data
+Item:  21   Split documentation
+Item:  22   Implement support for stacking arbitrary stream filters, sinks.
+Item:  23*  Implement from-client and to-client on restore command line.
+Item:  24   Add an override in Schedule for Pools based on backup types.
+Item:  25*  Implement huge exclude list support using hashing.
+Item:  26   Implement more Python events in Bacula.
+Item:  27   Incorporation of XACML2/SAML2 parsing
+Item:  28   Filesystem watch triggered backup.
+Item:  29   Allow inclusion/exclusion of files in a fileset by creation/mod times
+Item:  30   Tray monitor window cleanups
+Item:  31   Implement multiple numeric backup levels as supported by dump
+Item:  32   Automatic promotion of backup levels
+Item:  33   Clustered file-daemons
+Item:  34   Commercial database support
+Item:  35   Automatic disabling of devices
+Item:  36   An option to operate on all pools with update vol parameters
+Item:  37   Add an item to the restore option where you can select a pool
+Item:  38   Include timestamp of job launch in "stat clients" output
+Item:  39   Message mailing based on backup types
+Item:  40*  Include JobID in spool file name
+Item:  41*  Enable to relocate files and directories when restoring
+Item:  42*  Batch attribute inserts (ten times faster)
+Item:  43*  More concurrency in SD using micro-locking
+Item:  44*  Performance enhancements (POSIX/Win32 OS file access hints).
+
+Item  1:  Accurate restoration of renamed/deleted files
+  Date:   28 November 2005
+  Origin: Martin Simmons (martin at lispworks dot com)
+  Status: Robert Nelson will implement this
+
+  What:   When restoring a fileset for a specified date (including "most
+          recent"), Bacula should give you exactly the files and directories
+          that existed at the time of the last backup prior to that date.
+
+          Currently this only works if the last backup was a Full backup.
+          When the last backup was Incremental/Differential, files and
+          directories that have been renamed or deleted since the last Full
+          backup are not currently restored correctly.  Ditto for files with
+          extra/fewer hard links than at the time of the last Full backup.
+
+  Why:    Incremental/Differential would be much more useful if this worked.
+
+  Notes:  Merging of multiple backups into a single one seems to
+          rely on this working, otherwise the merged backups will not be
+          truly equivalent to a Full backup.  
+
+          Kern: notes shortened. This can be done without the need for 
+          inodes. It is essentially the same as the current Verify job,
+          but one additional database record must be written, which does 
+          not need any database change.
+
+          Kern: see if we can correct restoration of directories if
+          replace=ifnewer is set.  Currently, if the directory does not
+          exist, a "dummy" directory is created, then when all the files
+          are updated, the dummy directory is newer so the real values
+          are not updated.
+
+Item  2:  Implement a Bacula GUI/management tool.
+  Origin: Kern
+  Date:   28 October 2005
+  Status: In progress
+
+  What:   Implement a Bacula console, and management tools
+          probably using Qt3 and C++.
+
+  Why:    Don't we already have a wxWidgets GUI?  Yes, but
+          it is written in C++ and changes to the user interface
+          must be hand tailored using C++ code. By developing
+          the user interface using Qt designer, the interface
+          can be very easily updated and most of the new Python       
+          code will be automatically created.  The user interface
+          changes become very simple, and only the new features
+          must be implement.  In addition, the code will be in
+          Python, which will give many more users easy (or easier)
+          access to making additions or modifications.
+
+ Notes:   There is a partial Python-GTK implementation
+          Lucas Di Pentima <lucas at lunix dot com dot ar> but
+          it is no longer being developed.
+
+Item  3:  Allow FD to initiate a backup
+  Origin: Frank Volf (frank at deze dot org)
+  Date:   17 November 2005
+  Status:
+
+   What:  Provide some means, possibly by a restricted console that
+          allows a FD to initiate a backup, and that uses the connection
+          established by the FD to the Director for the backup so that
+          a Director that is firewalled can do the backup.
+
+   Why:   Makes backup of laptops much easier.
+
+
+Item  4:  Merge multiple backups (Synthetic Backup or Consolidation).
+  Origin: Marc Cousin and Eric Bollengier 
+  Date:   15 November 2005
+  Status: Waiting implementation. Depends on first implementing 
+          project Item 2 (Migration) which is now done.
+
+  What:   A merged backup is a backup made without connecting to the Client.
+          It would be a Merge of existing backups into a single backup.
+          In effect, it is like a restore but to the backup medium.
+
+          For instance, say that last Sunday we made a full backup.  Then
+          all week long, we created incremental backups, in order to do
+          them fast.  Now comes Sunday again, and we need another full.
+          The merged backup makes it possible to do instead an incremental
+          backup (during the night for instance), and then create a merged
+          backup during the day, by using the full and incrementals from
+          the week.  The merged backup will be exactly like a full made
+          Sunday night on the tape, but the production interruption on the
+          Client will be minimal, as the Client will only have to send
+          incrementals.
+
+          In fact, if it's done correctly, you could merge all the
+          Incrementals into single Incremental, or all the Incrementals
+          and the last Differential into a new Differential, or the Full,
+          last differential and all the Incrementals into a new Full
+          backup.  And there is no need to involve the Client.
+
+  Why:    The benefit is that :
+          - the Client just does an incremental ;
+          - the merged backup on tape is just as a single full backup,
+            and can be restored very fast.
+
+          This is also a way of reducing the backup data since the old
+          data can then be pruned (or not) from the catalog, possibly
+          allowing older volumes to be recycled
+
+Item  5:  Deletion of Disk-Based Bacula Volumes
+  Date:   Nov 25, 2005
+  Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (edited
+          by Kern)
+  Status:         
+
+   What:  Provide a way for Bacula to automatically remove Volumes
+          from the filesystem, or optionally to truncate them.
+          Obviously, the Volume must be pruned prior removal.
+
+  Why:    This would allow users more control over their Volumes and
+          prevent disk based volumes from consuming too much space.
+
+  Notes:  The following two directives might do the trick:
+
+          Volume Data Retention = <time period>
+          Remove Volume After = <time period>
+
+          The migration project should also remove a Volume that is
+          migrated. This might also work for tape Volumes.
+
+Item  6:  Implement Base jobs.
+  Date:   28 October 2005
+  Origin: Kern
+  Status: 
+  
+  What:   A base job is sort of like a Full save except that you 
+          will want the FileSet to contain only files that are
+          unlikely to change in the future (i.e.  a snapshot of
+          most of your system after installing it).  After the
+          base job has been run, when you are doing a Full save,
+          you specify one or more Base jobs to be used.  All
+          files that have been backed up in the Base job/jobs but
+          not modified will then be excluded from the backup.
+          During a restore, the Base jobs will be automatically
+          pulled in where necessary.
+
+  Why:    This is something none of the competition does, as far as
+          we know (except perhaps BackupPC, which is a Perl program that
+          saves to disk only).  It is big win for the user, it
+          makes Bacula stand out as offering a unique
+          optimization that immediately saves time and money.
+          Basically, imagine that you have 100 nearly identical
+          Windows or Linux machine containing the OS and user
+          files.  Now for the OS part, a Base job will be backed
+          up once, and rather than making 100 copies of the OS,
+          there will be only one.  If one or more of the systems
+          have some files updated, no problem, they will be
+          automatically restored.
+
+  Notes:  Huge savings in tape usage even for a single machine.
+          Will require more resources because the DIR must send
+          FD a list of files/attribs, and the FD must search the
+          list and compare it for each file to be saved.
+
+Item  7:  Implement creation and maintenance of copy pools
+  Date:   27 November 2005
+  Origin: David Boyes (dboyes at sinenomine dot net)
+  Status:
+
+  What:   I would like Bacula to have the capability to write copies
+          of backed-up data on multiple physical volumes selected
+          from different pools without transferring the data
+          multiple times, and to accept any of the copy volumes
+          as valid for restore.
+
+  Why:    In many cases, businesses are required to keep offsite
+          copies of backup volumes, or just wish for simple
+          protection against a human operator dropping a storage
+          volume and damaging it. The ability to generate multiple
+          volumes in the course of a single backup job allows
+          customers to simple check out one copy and send it
+          offsite, marking it as out of changer or otherwise
+          unavailable. Currently, the library and magazine
+          management capability in Bacula does not make this process
+          simple.
+
+          Restores would use the copy of the data on the first
+          available volume, in order of copy pool chain definition.
+
+          This is also a major scalability issue -- as the number of
+          clients increases beyond several thousand, and the volume
+          of data increases, transferring the data multiple times to
+          produce additional copies of the backups will become
+          physically impossible due to transfer speed
+          issues. Generating multiple copies at server side will
+          become the only practical option. 
+
+  How:    I suspect that this will require adding a multiplexing
+          SD that appears to be a SD to a specific FD, but 1-n FDs
+          to the specific back end SDs managing the primary and copy
+          pools.  Storage pools will also need to acquire parameters
+          to define the pools to be used for copies. 
+
+  Notes:  I would commit some of my developers' time if we can agree
+          on the design and behavior. 
+
+Item  8:  Directive/mode to backup only file changes, not entire file
+  Date:   11 November 2005
+  Origin: Joshua Kugler <joshua dot kugler at uaf dot edu>
+          Marek Bajon <mbajon at bimsplus dot com dot pl>
+  Status: 
+
+  What:   Currently when a file changes, the entire file will be backed up in
+          the next incremental or full backup.  To save space on the tapes
+          it would be nice to have a mode whereby only the changes to the
+          file would be backed up when it is changed.
+
+  Why:    This would save lots of space when backing up large files such as 
+          logs, mbox files, Outlook PST files and the like.
+
+  Notes:  This would require the usage of disk-based volumes as comparing 
+          files would not be feasible using a tape drive.
+
+Item  9:  Implement a server-side compression feature
+  Date:   18 December 2006
+  Origin: Vadim A. Umanski , e-mail umanski@ext.ru
+  Status:
+  What:   The ability to compress backup data on server receiving data
+          instead of doing that on client sending data.
+  Why:    The need is practical. I've got some machines that can send
+          data to the network 4 or 5 times faster than compressing
+          them (I've measured that). They're using fast enough SCSI/FC
+          disk subsystems but rather slow CPUs (ex. UltraSPARC II).
+          And the backup server has got a quite fast CPUs (ex. Dual P4
+          Xeons) and quite a low load. When you have 20, 50 or 100 GB
+          of raw data - running a job 4 to 5 times faster - that
+          really matters. On the other hand, the data can be
+          compressed 50% or better - so losing twice more space for
+          disk backup is not good at all. And the network is all mine
+          (I have a dedicated management/provisioning network) and I
+          can get as high bandwidth as I need - 100Mbps, 1000Mbps...
+          That's why the server-side compression feature is needed!
+  Notes:
+
+Item 10:  Improve Bacula's tape and drive usage and cleaning management.
+  Date:   8 November 2005, November 11, 2005
+  Origin: Adam Thornton <athornton at sinenomine dot net>,
+          Arno Lehmann <al at its-lehmann dot de>
+  Status:
+
+  What:   Make Bacula manage tape life cycle information, tape reuse
+          times and drive cleaning cycles.
+
+  Why:    All three parts of this project are important when operating
+          backups.
+          We need to know which tapes need replacement, and we need to
+          make sure the drives are cleaned when necessary.  While many
+          tape libraries and even autoloaders can handle all this
+          automatically, support by Bacula can be helpful for smaller
+          (older) libraries and single drives.  Limiting the number of
+          times a tape is used might prevent tape errors when using
+          tapes until the drives can't read it any more.  Also, checking
+          drive status during operation can prevent some failures (as I
+          [Arno] had to learn the hard way...)
+
+  Notes:  First, Bacula could (and even does, to some limited extent)
+          record tape and drive usage.  For tapes, the number of mounts,
+          the amount of data, and the time the tape has actually been
+          running could be recorded.  Data fields for Read and Write
+          time and Number of mounts already exist in the catalog (I'm
+          not sure if VolBytes is the sum of all bytes ever written to
+          that volume by Bacula).  This information can be important
+          when determining which media to replace.  The ability to mark
+          Volumes as "used up" after a given number of write cycles
+          should also be implemented so that a tape is never actually
+          worn out.  For the tape drives known to Bacula, similar
+          information is interesting to determine the device status and
+          expected life time: Time it's been Reading and Writing, number
+          of tape Loads / Unloads / Errors.  This information is not yet
+          recorded as far as I [Arno] know.  A new volume status would
+          be necessary for the new state, like "Used up" or "Worn out".
+          Volumes with this state could be used for restores, but not
+          for writing. These volumes should be migrated first (assuming
+          migration is implemented) and, once they are no longer needed,
+          could be moved to a Trash pool.
+
+          The next step would be to implement a drive cleaning setup.
+          Bacula already has knowledge about cleaning tapes.  Once it
+          has some information about cleaning cycles (measured in drive
+          run time, number of tapes used, or calender days, for example)
+          it can automatically execute tape cleaning (with an
+          autochanger, obviously) or ask for operator assistance loading
+          a cleaning tape.
+
+          The final step would be to implement TAPEALERT checks not only
+          when changing tapes and only sending the information to the
+          administrator, but rather checking after each tape error,
+          checking on a regular basis (for example after each tape
+          file), and also before unloading and after loading a new tape.
+          Then, depending on the drives TAPEALERT state and the known
+          drive cleaning state Bacula could automatically schedule later
+          cleaning, clean immediately, or inform the operator.
+
+          Implementing this would perhaps require another catalog change
+          and perhaps major changes in SD code and the DIR-SD protocol,
+          so I'd only consider this worth implementing if it would
+          actually be used or even needed by many people.
+
+          Implementation of these projects could happen in three distinct
+          sub-projects: Measuring Tape and Drive usage, retiring
+          volumes, and handling drive cleaning and TAPEALERTs.
+
+Item 11:  Allow skipping execution of Jobs
+  Date:   29 November 2005
+  Origin: Florian Schnabel <florian.schnabel at docufy dot de>
+  Status:
+
+    What: An easy option to skip a certain job  on a certain date.
+     Why: You could then easily skip tape backups on holidays.  Especially
+          if you got no autochanger and can only fit one backup on a tape
+          that would be really handy, other jobs could proceed normally
+          and you won't get errors that way.
+
+Item 12:  Add a scheduling syntax that permits weekly rotations
+   Date:  15 December 2006
+  Origin: Gregory Brauer (greg at wildbrain dot com)
+  Status:
+
+   What:  Currently, Bacula only understands how to deal with weeks of the
+          month or weeks of the year in schedules.  This makes it impossible
+          to do a true weekly rotation of tapes.  There will always be a
+          discontinuity that will require disruptive manual intervention at
+          least monthly or yearly because week boundaries never align with
+          month or year boundaries.
+
+          A solution would be to add a new syntax that defines (at least)
+          a start timestamp, and repetition period.
+
+   Why:   Rotated backups done at weekly intervals are useful, and Bacula
+          cannot currently do them without extensive hacking.
+
+   Notes: Here is an example syntax showing a 3-week rotation where full
+          Backups would be performed every week on Saturday, and an
+          incremental would be performed every week on Tuesday.  Each
+          set of tapes could be removed from the loader for the following
+          two cycles before coming back and being reused on the third
+          week.  Since the execution times are determined by intervals
+          from a given point in time, there will never be any issues with
+          having to adjust to any sort of arbitrary time boundary.  In
+          the example provided, I even define the starting schedule
+          as crossing both a year and a month boundary, but the run times
+          would be based on the "Repeat" value and would therefore happen
+          weekly as desired.
+
+
+          Schedule {
+              Name = "Week 1 Rotation"
+              #Saturday.  Would run Dec 30, Jan 20, Feb 10, etc.
+              Run {
+                  Options {
+                      Type   = Full
+                      Start  = 2006-12-30 01:00
+                      Repeat = 3w
+                  }
+              }
+              #Tuesday.  Would run Jan 2, Jan 23, Feb 13, etc.
+              Run {
+                  Options {
+                      Type   = Incremental
+                      Start  = 2007-01-02 01:00
+                      Repeat = 3w
+                  }
+              }
+          }
+
+          Schedule {
+              Name = "Week 2 Rotation"
+              #Saturday.  Would run Jan 6, Jan 27, Feb 17, etc.
+              Run {
+                  Options {
+                      Type   = Full
+                      Start  = 2007-01-06 01:00
+                      Repeat = 3w
+                  }
+              }
+              #Tuesday.  Would run Jan 9, Jan 30, Feb 20, etc.
+              Run {
+                  Options {
+                      Type   = Incremental
+                      Start  = 2007-01-09 01:00
+                      Repeat = 3w
+                  }
+              }
+          }
+
+          Schedule {
+              Name = "Week 3 Rotation"
+              #Saturday.  Would run Jan 13, Feb 3, Feb 24, etc.
+              Run {
+                  Options {
+                      Type   = Full
+                      Start  = 2007-01-13 01:00
+                      Repeat = 3w
+                  }
+              }
+              #Tuesday.  Would run Jan 16, Feb 6, Feb 27, etc.
+              Run {
+                  Options {
+                      Type   = Incremental
+                      Start  = 2007-01-16 01:00
+                      Repeat = 3w
+                  }
+              }
+          }
+
+Item 13:  Archival (removal) of User Files to Tape
+  Date:   Nov. 24/2005 
+  Origin: Ray Pengelly [ray at biomed dot queensu dot ca
+  Status: 
+
+  What:   The ability to archive data to storage based on certain parameters
+          such as age, size, or location.  Once the data has been written to
+          storage and logged it is then pruned from the originating
+          filesystem. Note! We are talking about user's files and not
+          Bacula Volumes.
+
+  Why:    This would allow fully automatic storage management which becomes
+          useful for large datastores.  It would also allow for auto-staging
+          from one media type to another.
+
+          Example 1) Medical imaging needs to store large amounts of data.
+          They decide to keep data on their servers for 6 months and then put
+          it away for long term storage.  The server then finds all files
+          older than 6 months writes them to tape.  The files are then removed
+          from the server.
+
+          Example 2) All data that hasn't been accessed in 2 months could be
+          moved from high-cost, fibre-channel disk storage to a low-cost
+          large-capacity SATA disk storage pool which doesn't have as quick of
+          access time.  Then after another 6 months (or possibly as one
+          storage pool gets full) data is migrated to Tape.
+
+Item 14:  Cause daemons to use a specific IP address to source communications
+ Origin:  Bill Moran <wmoran@collaborativefusion.com>
+ Date:    18 Dec 2006
+ Status:
+ What:    Cause Bacula daemons (dir, fd, sd) to always use the ip address
+          specified in the [DIR|DF|SD]Addr directive as the source IP
+          for initiating communication.
+ Why:     On complex networks, as well as extremely secure networks, it's
+          not unusual to have multiple possible routes through the network.
+          Often, each of these routes is secured by different policies
+          (effectively, firewalls allow or deny different traffic depending
+          on the source address)
+          Unfortunately, it can sometimes be difficult or impossible to
+          represent this in a system routing table, as the result is
+          excessive subnetting that quickly exhausts available IP space.
+          The best available workaround is to provide multiple IPs to
+          a single machine that are all on the same subnet.  In order
+          for this to work properly, applications must support the ability
+          to bind outgoing connections to a specified address, otherwise
+          the operating system will always choose the first IP that
+          matches the required route.
+ Notes:   Many other programs support this.  For example, the following
+          can be configured in BIND:
+          query-source address 10.0.0.1;
+          transfer-source 10.0.0.2;
+          Which means queries from this server will always come from
+          10.0.0.1 and zone transfers will always originate from
+          10.0.0.2.
+
+Item 15:  Multiple threads in file daemon for the same job
+  Date:   27 November 2005
+  Origin: Ove Risberg (Ove.Risberg at octocode dot com)
+  Status:
+
+  What:   I want the file daemon to start multiple threads for a backup
+          job so the fastest possible backup can be made.
+
+          The file daemon could parse the FileSet information and start
+          one thread for each File entry located on a separate
+          filesystem.
+
+          A confiuration option in the job section should be used to
+          enable or disable this feature. The confgutration option could
+          specify the maximum number of threads in the file daemon.
+
+          If the theads could spool the data to separate spool files
+          the restore process will not be much slower.
+
+  Why:    Multiple concurrent backups of a large fileserver with many
+          disks and controllers will be much faster.
+
+Item 16:  Add Plug-ins to the FileSet Include statements.
+  Date:   28 October 2005
+  Origin:
+  Status: Partially coded in 1.37 -- much more to do.
+
+  What:   Allow users to specify wild-card and/or regular
+          expressions to be matched in both the Include and
+          Exclude directives in a FileSet.  At the same time,
+          allow users to define plug-ins to be called (based on
+          regular expression/wild-card matching).
+
+  Why:    This would give the users the ultimate ability to control
+          how files are backed up/restored.  A user could write a
+          plug-in knows how to backup his Oracle database without
+          stopping/starting it, for example.
+
+Item 17:  Restore only file attributes (permissions, ACL, owner, group...)
+  Origin: Eric Bollengier
+  Date:   30/12/2006
+  Status:
+
+  What:   The goal of this project is to be able to restore only rights
+          and attributes of files without crushing them.
+
+  Why:    Who have never had to repair a chmod -R 777, or a wild update
+          of recursive right under Windows? At this time, you must have
+          enough space to restore data, dump attributes (easy with acl,
+          more complex with unix/windows rights) and apply them to your 
+          broken tree. With this options, it will be very easy to compare
+          right or ACL over the time.
+
+  Notes:  If the file is here, we skip restore and we change rights.
+          If the file isn't here, we can create an empty one and apply
+          rights or do nothing.
+
+Item 18:  Quick release of FD-SD connection after backup.
+  Origin: Frank Volf (frank at deze dot org)
+  Date:   17 November 2005
+  Status: Done -- implemented by Kern -- in CVS 26Jan07
+
+   What:  In the Bacula implementation a backup is finished after all data
+          and attributes are successfully written to storage.  When using a
+          tape backup it is very annoying that a backup can take a day,
+          simply because the current tape (or whatever) is full and the
+          administrator has not put a new one in.  During that time the
+          system cannot be taken off-line, because there is still an open
+          session between the storage daemon and the file daemon on the
+          client.
+
+          Although this is a very good strategy for making "safe backups"
+          This can be annoying for e.g.  laptops, that must remain
+          connected until the backup is completed.
+
+          Using a new feature called "migration" it will be possible to
+          spool first to harddisk (using a special 'spool' migration
+          scheme) and then migrate the backup to tape.
+
+          There is still the problem of getting the attributes committed.
+          If it takes a very long time to do, with the current code, the
+          job has not terminated, and the File daemon is not freed up.  The
+          Storage daemon should release the File daemon as soon as all the
+          file data and all the attributes have been sent to it (the SD).
+          Currently the SD waits until everything is on tape and all the
+          attributes are transmitted to the Director before signaling
+          completion to the FD. I don't think I would have any problem
+          changing this.  The reason is that even if the FD reports back to
+          the Dir that all is OK, the job will not terminate until the SD
+          has done the same thing -- so in a way keeping the SD-FD link
+          open to the very end is not really very productive ...
+
+   Why:   Makes backup of laptops much faster.
+
+Item 19:  Implement a Python interface to the Bacula catalog.
+  Date:   28 October 2005
+  Origin: Kern
+  Status: 
+
+  What:   Implement an interface for Python scripts to access
+          the catalog through Bacula.
+
+  Why:    This will permit users to customize Bacula through
+          Python scripts.
+
+Item 20:  Archive data
+  Date:   15/5/2006
+  Origin: calvin streeting calvin at absentdream dot com
+  Status:
+
+  What:   The abilty to archive to media (dvd/cd) in a uncompressed format
+          for dead filing (archiving not backing up)
+
+    Why:  At my works when jobs are finished and moved off of the main file
+          servers (raid based systems) onto a simple linux file server (ide based
+          system) so users can find old information without contacting the IT
+          dept.
+
+          So this data dosn't realy change it only gets added to,
+          But it also needs backing up.  At the moment it takes
+          about 8 hours to back up our servers (working data) so
+          rather than add more time to existing backups i am trying
+          to implement a system where we backup the acrhive data to
+          cd/dvd these disks would only need to be appended to
+          (burn only new/changed files to new disks for off site
+          storage).  basialy understand the differnce between
+          achive data and live data.
+
+  Notes:  Scan the data and email me when it needs burning divide
+          into predifind chunks keep a recored of what is on what
+          disk make me a label (simple php->mysql=>pdf stuff) i
+          could do this bit ability to save data uncompresed so
+          it can be read in any other system (future proof data)
+          save the catalog with the disk as some kind of menu
+          system 
+
+Item 21:  Split documentation
+  Origin: Maxx <maxxatworkat gmail dot com>
+  Date:   27th July 2006
+  Status:
+
+  What:   Split documentation in several books
+
+  Why:    Bacula manual has now more than 600 pages, and looking for
+          implementation details is getting complicated.  I think
+          it would be good to split the single volume in two or
+          maybe three parts:
+
+          1) Introduction, requirements and tutorial, typically
+             are useful only until first installation time
+
+          2) Basic installation and configuration, with all the
+             gory details about the directives supported 3)
+             Advanced Bacula: testing, troubleshooting, GUI and
+             ancillary programs, security managements, scripting,
+             etc.
+
+
+Item 22:  Implement support for stacking arbitrary stream filters, sinks.
+Date:     23 November 2006
+Origin:   Landon Fuller <landonf@threerings.net>
+Status:   Planning. Assigned to landonf.
+
+  What:   Implement support for the following:
+          - Stacking arbitrary stream filters (eg, encryption, compression,  
+            sparse data handling))
+          - Attaching file sinks to terminate stream filters (ie, write out  
+            the resultant data to a file)
+          - Refactor the restoration state machine accordingly
+
+   Why:   The existing stream implementation suffers from the following:
+           - All state (compression, encryption, stream restoration), is  
+             global across the entire restore process, for all streams. There are  
+             multiple entry and exit points in the restoration state machine, and  
+             thus multiple places where state must be allocated, deallocated,  
+             initialized, or reinitialized. This results in exceptional complexity  
+             for the author of a stream filter.
+           - The developer must enumerate all possible combinations of filters  
+             and stream types (ie, win32 data with encryption, without encryption,  
+             with encryption AND compression, etc).
+
+  Notes:  This feature request only covers implementing the stream filters/ 
+          sinks, and refactoring the file daemon's restoration implementation  
+          accordingly. If I have extra time, I will also rewrite the backup  
+          implementation. My intent in implementing the restoration first is to  
+          solve pressing bugs in the restoration handling, and to ensure that  
+          the new restore implementation handles existing backups correctly.
+
+          I do not plan on changing the network or tape data structures to  
+          support defining arbitrary stream filters, but supporting that  
+          functionality is the ultimate goal.
+
+          Assistance with either code or testing would be fantastic.
+
+Item 23:  Implement from-client and to-client on restore command line.
+   Date:  11 December 2006
+  Origin: Discussion on Bacula-users entitled 'Scripted restores to
+          different clients', December 2006 
+  Status: New feature request
+  What:   While using bconsole interactively, you can specify the client
+          that a backup job is to be restored for, and then you can
+          specify later a different client to send the restored files
+          back to. However, using the 'restore' command with all options
+          on the command line, this cannot be done, due to the ambiguous
+          'client' parameter. Additionally, this parameter means different
+          things depending on if it's specified on the command line or
+          afterwards, in the Modify Job screens.
+     Why: This feature would enable restore jobs to be more completely
+          automated, for example by a web or GUI front-end.
+   Notes: client can also be implied by specifying the jobid on the command
+          line
+
+Item 24:  Add an override in Schedule for Pools based on backup types.
+Date:     19 Jan 2005
+Origin:   Chad Slater <chad.slater@clickfox.com>
+Status: 
+                                                
+  What:   Adding a FullStorage=BigTapeLibrary in the Schedule resource
+          would help those of us who use different storage devices for different
+          backup levels cope with the "auto-upgrade" of a backup.
+
+  Why:    Assume I add several new device to be backed up, i.e. several
+          hosts with 1TB RAID.  To avoid tape switching hassles, incrementals are
+          stored in a disk set on a 2TB RAID.  If you add these devices in the
+          middle of the month, the incrementals are upgraded to "full" backups,
+          but they try to use the same storage device as requested in the
+          incremental job, filling up the RAID holding the differentials.  If we
+          could override the Storage parameter for full and/or differential
+          backups, then the Full job would use the proper Storage device, which
+          has more capacity (i.e. a 8TB tape library.
+
+Item 25:  Implement huge exclude list support using hashing (dlists).
+  Date:   28 October 2005
+  Origin: Kern
+  Status: Done in 2.1.2 but was done with dlists (doubly linked lists
+          since hashing will not help. The huge list also supports
+          large include lists).
+
+  What:   Allow users to specify very large exclude list (currently
+          more than about 1000 files is too many).
+
+  Why:    This would give the users the ability to exclude all
+          files that are loaded with the OS (e.g. using rpms
+          or debs). If the user can restore the base OS from
+          CDs, there is no need to backup all those files. A
+          complete restore would be to restore the base OS, then
+          do a Bacula restore. By excluding the base OS files, the
+          backup set will be *much* smaller.
+
+Item 26:  Implement more Python events in Bacula.
+  Date:   28 October 2005
+  Origin: Kern
+  Status: 
+
+  What:   Allow Python scripts to be called at more places 
+          within Bacula and provide additional access to Bacula
+          internal variables.
+
+  Why:    This will permit users to customize Bacula through
+          Python scripts.
+
+  Notes:  Recycle event
+          Scratch pool event
+          NeedVolume event
+          MediaFull event
+           
+          Also add a way to get a listing of currently running
+          jobs (possibly also scheduled jobs).
+
+
+Item 27:  Incorporation of XACML2/SAML2 parsing
+   Date:   19 January 2006
+   Origin: Adam Thornton <athornton@sinenomine.net>
+   Status: Blue sky
+
+   What:   XACML is "eXtensible Access Control Markup Language" and  
+          "SAML is the "Security Assertion Markup Language"--an XML standard  
+          for making statements about identity and authorization.  Having these  
+          would give us a framework to approach ACLs in a generic manner, and  
+          in a way flexible enough to support the four major sorts of ACLs I  
+          see as a concern to Bacula at this point, as well as (probably) to  
+          deal with new sorts of ACLs that may appear in the future.
+
+   Why:    Bacula is beginning to need to back up systems with ACLs  
+          that do not map cleanly onto traditional Unix permissions.  I see  
+          four sets of ACLs--in general, mutually incompatible with one  
+          another--that we're going to need to deal with.  These are: NTFS  
+          ACLs, POSIX ACLs, NFSv4 ACLS, and AFS ACLS.  (Some may question the  
+          relevance of AFS; AFS is one of Sine Nomine's core consulting  
+          businesses, and having a reputable file-level backup and restore  
+          technology for it (as Tivoli is probably going to drop AFS support  
+          soon since IBM no longer supports AFS) would be of huge benefit to  
+          our customers; we'd most likely create the AFS support at Sine Nomine  
+          for inclusion into the Bacula (and perhaps some changes to the  
+          OpenAFS volserver) core code.)
+
+          Now, obviously, Bacula already handles NTFS just fine.  However, I  
+          think there's a lot of value in implementing a generic ACL model, so  
+          that it's easy to support whatever particular instances of ACLs come  
+          down the pike: POSIX ACLS (think SELinux) and NFSv4 are the obvious  
+          things arriving in the Linux world in a big way in the near future.   
+          XACML, although overcomplicated for our needs, provides this  
+          framework, and we should be able to leverage other people's  
+          implementations to minimize the amount of work *we* have to do to get  
+          a generic ACL framework.  Basically, the costs of implementation are  
+          high, but they're largely both external to Bacula and already sunk.
+
+Item 28:  Filesystem watch triggered backup.
+  Date:   31 August 2006
+  Origin: Jesper Krogh <jesper@krogh.cc>
+  Status: Unimplemented, depends probably on "client initiated backups"
+
+  What:   With inotify and similar filesystem triggeret notification
+          systems is it possible to have the file-daemon to monitor
+          filesystem changes and initiate backup.
+
+  Why:    There are 2 situations where this is nice to have.
+          1) It is possible to get a much finer-grained backup than
+             the fixed schedules used now.. A file created and deleted
+             a few hours later, can automatically be caught.
+
+          2) The introduced load on the system will probably be
+             distributed more even on the system.
+
+  Notes:  This can be combined with configration that specifies
+          something like: "at most every 15 minutes or when changes
+          consumed XX MB".
+
+Kern Notes: I would rather see this implemented by an external program
+          that monitors the Filesystem changes, then uses the console
+          to start the appropriate job.
+
+Item 29:  Allow inclusion/exclusion of files in a fileset by creation/mod times
+  Origin: Evan Kaufman <evan.kaufman@gmail.com>
+  Date:   January 11, 2006
+  Status:
+
+  What:   In the vein of the Wild and Regex directives in a Fileset's
+          Options, it would be helpful to allow a user to include or exclude
+          files and directories by creation or modification times.
+
+          You could factor the Exclude=yes|no option in much the same way it
+          affects the Wild and Regex directives.  For example, you could exclude
+          all files modified before a certain date:
+
+   Options {
+     Exclude = yes
+     Modified Before = ####
+   }
+
+           Or you could exclude all files created/modified since a certain date:
+
+   Options {
+      Exclude = yes
+     Created Modified Since = ####
+   }
+
+           The format of the time/date could be done several ways, say the number
+           of seconds since the epoch:
+           1137008553 = Jan 11 2006, 1:42:33PM   # result of `date +%s`
+
+           Or a human readable date in a cryptic form:
+           20060111134233 = Jan 11 2006, 1:42:33PM   # YYYYMMDDhhmmss
+
+  Why:    I imagine a feature like this could have many uses. It would
+          allow a user to do a full backup while excluding the base operating
+          system files, so if I installed a Linux snapshot from a CD yesterday,
+          I'll *exclude* all files modified *before* today.  If I need to
+          recover the system, I use the CD I already have, plus the tape backup.
+          Or if, say, a Windows client is hit by a particularly corrosive
+          virus, and I need to *exclude* any files created/modified *since* the
+          time of infection.
+
+  Notes:  Of course, this feature would work in concert with other
+          in/exclude rules, and wouldnt override them (or each other).
+
+  Notes:  The directives I'd imagine would be along the lines of
+          "[Created] [Modified] [Before|Since] = <date>".
+          So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
+           or 'since'.
+
+
+Item 30:  Tray monitor window cleanups
+  Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
+  Date:   24 July 2006
+  Status:
+  What:   Resizeable and scrollable windows in the tray monitor.
+
+  Why:    With multiple clients, or with many jobs running, the displayed
+          window often ends up larger than the available screen, making
+          the trailing items difficult to read.
+
+
+Item 31:  Implement multiple numeric backup levels as supported by dump
+Date:     3 April 2006
+Origin:   Daniel Rich <drich@employees.org>
+Status:
+What:     Dump allows specification of backup levels numerically instead of just
+          "full", "incr", and "diff".  In this system, at any given level, all
+          files are backed up that were were modified since the last backup of a
+          higher level (with 0 being the highest and 9 being the lowest).  A
+          level 0 is therefore equivalent to a full, level 9 an incremental, and
+          the levels 1 through 8 are varying levels of differentials.  For
+          bacula's sake, these could be represented as "full", "incr", and
+          "diff1", "diff2", etc.
+
+Why:      Support of multiple backup levels would provide for more advanced backup
+          rotation schemes such as "Towers of Hanoi".  This would allow better
+          flexibility in performing backups, and can lead to shorter recover
+          times.
+
+Notes:    Legato Networker supports a similar system with full, incr, and 1-9 as
+          levels.
+        
+Item 32:  Automatic promotion of backup levels
+   Date:  19 January 2006
+  Origin: Adam Thornton <athornton@sinenomine.net>
+  Status: 
+
+    What: Amanda has a feature whereby it estimates the space that a  
+          differential, incremental, and full backup would take.  If the  
+          difference in space required between the scheduled level and the next  
+          level up is beneath some user-defined critical threshold, the backup  
+          level is bumped to the next type.  Doing this minimizes the number of  
+          volumes necessary during a restore, with a fairly minimal cost in  
+          backup media space.
+
+    Why:  I know at least one (quite sophisticated and smart) user  
+          for whom the absence of this feature is a deal-breaker in terms of  
+          using Bacula; if we had it it would eliminate the one cool thing  
+          Amanda can do and we can't (at least, the one cool thing I know of).
+
+Item 33:  Clustered file-daemons
+  Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
+  Date:   24 July 2006
+  Status:
+  What:   A "virtual" filedaemon, which is actually a cluster of real ones.
+
+  Why:    In the case of clustered filesystems (SAN setups, GFS, or OCFS2, etc)
+          multiple machines may have access to the same set of filesystems
+
+          For performance reasons, one may wish to initate backups from
+          several of these machines simultaneously, instead of just using
+          one backup source for the common clustered filesystem.
+
+          For obvious reasons, normally backups of $A-FD/$PATH and
+          B-FD/$PATH are treated as different backup sets. In this case
+          they are the same communal set.
+
+          Likewise when restoring, it would be easier to just specify
+          one of the cluster machines and let bacula decide which to use.
+
+          This can be faked to some extent using DNS round robin entries
+          and a virtual IP address, however it means "status client" will
+          always give bogus answers. Additionally there is no way of
+          spreading the load evenly among the servers.
+
+          What is required is something similar to the storage daemon
+          autochanger directives, so that Bacula can keep track of
+          operating backups/restores and direct new jobs to a "free"
+          client.
+
+   Notes:
+
+Item 34:  Commercial database support
+  Origin: Russell Howe <russell_howe dot wreckage dot org>
+  Date:   26 July 2006
+  Status:
+
+  What:   It would be nice for the database backend to support more 
+          databases. I'm thinking of SQL Server at the moment, but I guess Oracle, 
+          DB2, MaxDB, etc are all candidates. SQL Server would presumably be 
+          implemented using FreeTDS or maybe an ODBC library?
+
+  Why:    We only really have one database server, which is MS SQL Server 
+          2000. Maintaining a second one for the backup software (we grew out of 
+          SQLite, which I liked, but which didn't work so well with our database 
+          size). We don't really have a machine with the resources to run 
+          postgres, and would rather only maintain a single DBMS. We're stuck with 
+          SQL Server because pretty much all the company's custom applications 
+          (written by consultants) are locked into SQL Server 2000. I can imagine 
+          this scenario is fairly common, and it would be nice to use the existing 
+          properly specced database server for storing Bacula's catalog, rather 
+          than having to run a second DBMS.
+
+Item 35:  Automatic disabling of devices
+   Date:  2005-11-11
+  Origin: Peter Eriksson <peter at ifm.liu dot se>
+  Status:
+
+   What:  After a configurable amount of fatal errors with a tape drive
+          Bacula should automatically disable further use of a certain
+          tape drive. There should also be "disable"/"enable" commands in
+          the "bconsole" tool.
+
+   Why:   On a multi-drive jukebox there is a possibility of tape drives
+          going bad during large backups (needing a cleaning tape run,
+          tapes getting stuck). It would be advantageous if Bacula would
+          automatically disable further use of a problematic tape drive
+          after a configurable amount of errors has occurred.
+
+          An example: I have a multi-drive jukebox (6 drives, 380+ slots)
+          where tapes occasionally get stuck inside the drive. Bacula will
+          notice that the "mtx-changer" command will fail and then fail
+          any backup jobs trying to use that drive. However, it will still
+          keep on trying to run new jobs using that drive and fail -
+          forever, and thus failing lots and lots of jobs... Since we have
+          many drives Bacula could have just automatically disabled
+          further use of that drive and used one of the other ones
+          instead.
+
+Item 36:  An option to operate on all pools with update vol parameters
+  Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
+   Date:  16 August 2006
+  Status:
+
+   What:  When I do update -> Volume parameters -> All Volumes
+          from Pool, then I have to select pools one by one.  I'd like
+          console to have an option like "0: All Pools" in the list of
+          defined pools.
+
+   Why:   I have many pools and therefore unhappy with manually
+          updating each of them using update -> Volume parameters -> All
+          Volumes from Pool -> pool #.
+
+Item 37:  Add an item to the restore option where you can select a pool
+  Origin: kshatriyak at gmail dot com
+    Date: 1/1/2006
+  Status:
+
+    What: In the restore option (Select the most recent backup for a
+          client) it would be useful to add an option where you can limit
+          the selection to a certain pool.
+
+     Why: When using cloned jobs, most of the time you have 2 pools - a
+          disk pool and a tape pool.  People who have 2 pools would like to
+          select the most recent backup from disk, not from tape (tape
+          would be only needed in emergency).  However, the most recent
+          backup (which may just differ a second from the disk backup) may
+          be on tape and would be selected.  The problem becomes bigger if
+          you have a full and differential - the most "recent" full backup
+          may be on disk, while the most recent differential may be on tape
+          (though the differential on disk may differ even only a second or
+          so).  Bacula will complain that the backups reside on different
+          media then.  For now the only solution now when restoring things
+          when you have 2 pools is to manually search for the right
+          job-id's and enter them by hand, which is a bit fault tolerant.
+
+Item 38:  Include timestamp of job launch in "stat clients" output
+  Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
+  Date:   Tue Aug 22 17:13:39 EDT 2006
+  Status:
+
+  What:   The "stat clients" command doesn't include any detail on when
+          the active backup jobs were launched.
+
+  Why:    Including the timestamp would make it much easier to decide whether
+          a job is running properly. 
+
+  Notes:  It may be helpful to have the output from "stat clients" formatted 
+          more like that from "stat dir" (and other commands), in a column
+          format. The per-client information that's currently shown (level,
+          client name, JobId, Volume, pool, device, Files, etc.) is good, but
+          somewhat hard to parse (both programmatically and visually), 
+          particularly when there are many active clients.
+
+
+Item 39:  Message mailing based on backup types
+ Origin:  Evan Kaufman <evan.kaufman@gmail.com>
+   Date:  January 6, 2006
+ Status:
+
+   What:  In the "Messages" resource definitions, allowing messages
+          to be mailed based on the type (backup, restore, etc.) and level
+          (full, differential, etc) of job that created the originating
+          message(s).
+
+ Why:     It would, for example, allow someone's boss to be emailed
+          automatically only when a Full Backup job runs, so he can
+          retrieve the tapes for offsite storage, even if the IT dept.
+          doesn't (or can't) explicitly notify him.  At the same time, his
+          mailbox wouldnt be filled by notifications of Verifies, Restores,
+          or Incremental/Differential Backups (which would likely be kept
+          onsite).
+
+ Notes:   One way this could be done is through additional message types, for example:
+
+   Messages {
+     # email the boss only on full system backups
+     Mail = boss@mycompany.com = full, !incremental, !differential, !restore, 
+            !verify, !admin
+     # email us only when something breaks
+     MailOnError = itdept@mycompany.com = all
+   }
+
+
+Item 40:  Include JobID in spool file name ****DONE****
+  Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
+  Date:   Tue Aug 22 17:13:39 EDT 2006
+  Status: Done. (patches/testing/project-include-jobid-in-spool-name.patch)
+          No need to vote for this item.
+
+  What:   Change the name of the spool file to include the JobID
+
+  Why:    JobIDs are the common key used to refer to jobs, yet the 
+          spoolfile name doesn't include that information. The date/time
+          stamp is useful (and should be retained).
+
+============= New Freature Requests after vote of 26 Jan 2007 ========
+Item  41: Enable to relocate files and directories when restoring
+  Date:   2007-03-01
+  Origin: Eric Bollengier <eric@eb.homelinux.org>
+  Status: Done.
+
+  What:   The where= option is not powerful enough. It will be
+          a great feature if bacula can restore a file in the
+          same directory, but with a different name, or in 
+          an other directory without recreating the full path.
+
+  Why:    When i want to restore a production environment to a
+          development environment, i just want change the first
+          directory. ie restore /prod/data/file.dat to /rect/data/file.dat.
+          At this time, i have to move by hand files. You must have a big
+          dump space to restore and move data after.
+
+          When i use Linux or SAN snapshot, i mount them to /mnt/snap_xxx
+          so, when a restore a file, i have to move by hand
+          from /mnt/snap_xxx/file to /xxx/file. I can't replace a file
+          easily.
+
+          When a user ask me to restore a file in its personal folder,
+          (without replace the existing one), i can't restore from
+          my_file.txt to my_file.txt.old witch is very practical.
+
+          
+  Notes:  I think we can enhance the where= option very easily by
+          allowing regexp expression. 
+
+          Since, many users think that regexp are not user friendly, i think
+          that bat, bconsole or brestore must provide a simple way to
+          configure where= option (i think to something like in
+          openoffice "search and replace").
+
+          Ie, if user uses where=/tmp/bacula-restore, we keep the old
+          fashion.
+
+          If user uses something like where=s!/prod!/test!, files will
+          be restored from /prod/xxx to /test/xxx.
+
+          If user uses something like where=s/$/.old/, files will
+          be restored from /prod/xxx.txt to /prod/xxx.txt.old.
+
+          If user uses something like where=s/txt$/old.txt/, files will
+          be restored from /prod/xxx.txt to /prod/xxx.old.txt
+
+          if user uses something like where=s/([a-z]+)$/old.$1/, files will
+          be restored from /prod/xxx.ext to /prod/xxx.old.ext
+
+Item n:   Implement Catalog directive for Pool resource in Director
+configuration 
+  Origin: Alan Davis adavis@ruckus.com
+  Date:   6 March 2007
+  Status: Submitted
+  What:   The current behavior is for the director to create all pools
+          found in the configuration file in all catalogs.  Add a
+          Catalog directive to the Pool resource to specify which
+          catalog to use for each pool definition.
+  Why:    This allows different catalogs to have different pool
+          attributes and eliminates the side-effect of adding
+          pools to catalogs that don't need/use them.
+  Notes:  
+
+
+Item n:   Implement NDMP protocol support
+  Origin: Alan Davis
+  Date:   06 March 2007
+  Status: Submitted
+
+  What:   Network Data Management Protocol is implemented by a number of
+          NAS filer vendors to enable backups using third-party
+          software.
+
+  Why:    This would allow NAS filer backups in Bacula without incurring
+          the overhead of NFS or SBM/CIFS.
+
+  Notes:  Further information is available:
+          http://www.ndmp.org
+          http://www.ndmp.org/wp/wp.shtml
+          http://www.traakan.com/ndmjob/index.html
+
+          There are currently no viable open-source NDMP
+          implementations.  There is a reference SDK and example
+          app available from ndmp.org but it has problems
+          compiling on recent Linux and Solaris OS'.  The ndmjob
+          reference implementation from Traakan is known to
+          compile on Solaris 10.
+
+  Notes (Kern): I am not at all in favor of this until NDMP becomes
+          an Open Standard or until there are Open Source libraries
+          that interface to it.
+
+Item n: make changing "spooldata=yes|no" possible for
+        manual/interactive jobs
+
+Origin: Marc Schiffbauer <marc@schiffbauer.net>
+
+Date:   12 April 2007)
+
+Status: NEW
+
+What:   Make it possible to modify the spooldata option
+        for a job when being run from within the console.
+        Currently it is possible to modify the backup level
+        and the spooldata setting in a Schedule resource.
+        It is also possible to modify the backup level when using
+        the "run" command in the console. 
+        But it is currently not possible to to the same 
+        with "spooldata=yes|no" like:
+
+        run job=MyJob level=incremental spooldata=yes
+
+Why:    In some situations it would be handy to be able to switch
+        spooldata on or off for interactive/manual jobs based on
+        which data the admin expects or how fast the LAN/WAN
+        connection currently is.
+
+Notes:  ./.
+
+============= Empty Feature Request form ===========
+Item  n:  One line summary ...
+  Date:   Date submitted 
+  Origin: Name and email of originator.
+  Status: 
+
+  What:   More detailed explanation ...
+
+  Why:    Why it is important ...
+
+  Notes:  Additional notes or features (omit if not used)
+============== End Feature Request form ==============
+
+</pre>
+
+        </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/requirements.php b/docs/home-page/en/pages/requirements.php
new file mode 100644 (file)
index 0000000..5bd5332
--- /dev/null
@@ -0,0 +1,57 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                System Requirements
+        </td>
+</tr>
+<tr>
+   <td class="content">
+
+   <ul class="hardware">
+      <li><b>Bacula</b> has been compiled and run on Linux, FreeBSD,
+              and Solaris systems.</li>
+      <li>It requires GNU C++ version 2.95 or higher to compile.  You can try
+              with other compilers and older versions, but you are on your
+              own.  We have successfully compiled and used Bacula on
+              RH8.0/RH9/RHEL 3.0 with GCC 3.2.  Note, in general GNU C++ is a
+              separate package (e.g.  RPM) from GNU C, so you need them both
+              loaded.  On RedHat systems, the C++ compiler is part of the
+              <b>gcc-c++</b> rpm package.  </li>
+      <li>There are certain third party packages that Bacula needs.
+              Except for MySQL and PostgreSQL, they can all be found in the
+              <b>depkgs</b> and <b>depkgs1</b> releases.</li>
+      <li>If you want to build the Win32 binaries, you should know
+              that they are cross-compiled on a Linux machine. For
+              more information, please see the src/win32/README.mingw32
+              file in the source distribution.
+              Although we document it, we do not support building the
+              Win32 binaries. Only the Win32 File daemon is officially
+              supported, though the other daemons are available in the
+              binary release.</li>
+      <li><b>Bacula</b> requires a good implementation of pthreads to work.
+              This is not the case on some of the BSD systems.</li>
+      <li>The source code has been written with portability in mind and is
+              mostly POSIX compatible. Thus porting to any POSIX compatible
+              operating system should be relatively easy.</li>
+      <li>The GNOME Console program is developed and tested under GNOME 2.x.
+              </li>
+      <li>The wxWidgets Console program is developed and tested with the
+              latest stable version of <a
+              href="http://www.wxwidgets.org/">wxWidgets</a> (2.6).  It
+              works fine with the Windows and GTK+-2.x version of wxWidgets,
+              and should also works on other platforms supported by
+              wxWidgets.</li>
+      <li>The Tray Monitor program is developed for GTK+-2.x. It needs
+              Gnome &gt;=2.2, KDE &gt;=3.1 or any window manager supporting the
+              <a href="http://www.freedesktop.org/Standards/systemtray-spec">
+              FreeDesktop system tray standard</a>.</li>
+      <li>If you want to enable command line editing and history, you will
+              need to have /usr/include/termcap.h and either the termcap or the
+              ncurses library loaded (libtermcap-devel or ncurses-devel).</li>
+   </ul>
+
+   </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/support.php b/docs/home-page/en/pages/support.php
new file mode 100644 (file)
index 0000000..64b1c40
--- /dev/null
@@ -0,0 +1,113 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+   <td class="contentTopic"> Support for Bacula </td>
+</tr>
+<tr>
+   <td class="content">
+
+   Please keep in mind that we are not getting paid for this.
+   Nevertheless, our desire is to see as many people using
+   <b>Bacula</b> as possible. So we are very willing to
+   provide a reasonable level of email support.
+
+   <p>Before asking for help, it could be useful to check against the
+   email archive as often solution to your problem has been discussed
+   or a patch has been released. Please see:
+   <a href="http://news.gmane.org/search.php?match=bacula">
+   http://news.gmane.org/search.php?match=bacula</a>.
+
+   Also, if you are using Bacula in production, we highly recommend
+   subscribing to the bugs database at: <a href="http://bugs.bacula.org">
+   http://bugs.bacula.org</a> to keep informed of problems and 
+   patches.
+
+   <p>For support, send an email to
+   <b>bacula-users at lists.sourceforge.net</b>, and if you are
+   specific enough, some kind Bacula user will help you. Please
+   note that if you don't at least specify what version of Bacula
+   and what platform you are using, it will not be easy to get a
+   valid answer.  The email address noted above
+   was modified to prevent easy use by spammers.
+   To use it, you must replace the <b>at</b> with an @ symbol. Due
+   to the increasing volumes of spam on the list, you must 
+   be subscribed to it to be able to send and email to it.  The
+   link to your left entitled <b>Email Lists</b> provides links
+   to where you can subscribe to each of the Bacula email lists.
+    
+   The users constantly monitor this list and will generally provide
+   support. Please see <b>Information Needed</b> below for what to
+   include in your support request. If you don't supply the necessary
+   information, it will take longer to respond to your request, and
+   users may be afraid to try to respond,
+   if your request is too complicated or not well formulated.
+
+
+   <p>I (Kern) get a number of &quot;off-list&quot; emails sent
+   directly to me. Unfortunately, I am no longer able to provide
+   direct user support. However, I do read all the email sent and
+   occasionally provide a tip or two. If you do send email to me,
+   please always copy the appropriate list, if you
+   do not copy the list, I may not answer you, or I will answer by copying
+   the list. If you <em>really</em> have something confidential,
+   please clearly indicate it.</p>
+
+   <p>If you send a bug report or minor enhancement request because of a
+   problem to the bacula-devel list, and you do not provide the information
+   requested below, particularly the Bacula version, it is <b>very</b>
+   frustrating for us, because it is quite often the case that your problem is
+   version dependent, and likely already fixed.  In such case, we will note
+   the problem, but you will be unlikely to get a response, especially if we
+   are busy, because it forces us to first ask you what version you are using
+   (or other information), then deal with your response, thus doubling the
+   time for us.  If we do ask you for information, please include <b>all</b>
+   the previous correspondence in each email, otherwise you force us to search
+   the archives to find what you previously wrote.  In short, if you want a
+   response, please see &quot;Information Needed&quot; below.
+
+   <p>If you are looking for live-support you might check out our irc-channel
+   in the <a href="http://www.freenode.net">Freenode</a> net, called #bacula.
+
+<h3>Information Needed</h3>
+For us to respond to a bug report, we normally need the following
+as the minimum information, which you can enter into the appropriate
+fields of the bug reporting system:
+<ul>
+<li>Your operating system</li>
+<li>The version of Bacula you are using</li>
+<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
+<li>If you say &quot;it crashes&quot;, &quot;it doesn't work&quot; or something
+  similar, you should include some output from Bacula that shows this.</li>
+<li>If we respond to your email, and you answer, possibly supplying more
+  information, please be sure to include the <b>full</b> text of previous
+  emails so that we have all the information in one place.</li>
+</ul>
+If you are having tape problems, please include:
+<ul>
+ <li>The kind of tape drive you have </li>
+ <li>Have you run the <b>btape</b> &quot;test&quot; command?</li>
+</ul>
+
+If you are having database problems, please include:
+<ul>
+ <li>The database you are using: MySQL, PostgreSQL, SQLite, SQLite3 </li>
+ <li>The version of the database you are using</li>
+</ul>
+
+The first two of these items can be fulfilled by sending
+us a copy of your <b>config.out</b> file, which is in the
+main <b>Bacula</b> source directory after you have done
+your <b>./configure</b>.
+<p>In addition, we will sometimes need a copy of your Bacula
+configuration files (especially bacula-dir.conf). If you
+think it is a configuration problem, please don't hesitate
+to send them if necessary.</td>
+</tr>
+<tr>
+   <td style="font-size: 14px; padding: 0px 20px 0px 20px">
+   Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
+   </td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/testimonial.php b/docs/home-page/en/pages/testimonial.php
new file mode 100644 (file)
index 0000000..d9458c3
--- /dev/null
@@ -0,0 +1,917 @@
+<? require_once("inc/header.php"); ?>
+<?
+$dat_dir = '../testimonials';
+
+$org_type_lst = array(
+       '0'   => "SELECT ONE",
+       '15'  => "Church / Religious Organization",
+       '3'   => "Corporation",
+       '14'  => "Educational Institution",
+       '5'   => "Government",
+       '6'   => "Military",
+       '13'  => "Non-Profit Organization",
+       '10'  => "Other",
+       '4'   => "Small Business"
+);
+
+$version_lst = array(
+       '0'   => "SELECT ONE",
+       '1'   => "1.36.x",
+       '2'   => "1.38.x",
+       '3'   => "2.0.x",
+       '4'   => "2.2.x",
+       '5'   => "SVN version"
+);
+
+$catalog_lst = array(
+       '0'   => "SELECT ONE",
+       '1'   => "MySQL",
+       '2'   => "PostgreSQL",
+       '3'   => "SqLite"
+);
+
+$org_industry_lst = array(
+   '0'   => 'SELECT ONE',                               '25'  => 'Aerospace / Aeronautical',
+   '11'  => 'Agriculture / Farming',                    '38'  => 'Architecture / Design',
+   '44'  => 'Arts',                                     '5'   => 'ASP',
+   '54'  => 'Banking',
+   '42'  => 'Church / Religious Organization',          '45'  => 'Coaching',
+   '10'  => 'Construction',                             '22'  => 'Consulting (General)',
+   '21'  => 'Consulting (Information Technology)',      '31'  => 'Defense Industry',
+   '51'  => 'Education / Training',                     '37'  => 'Energy Industry',
+   '46'  => 'Engineering',                              '35'  => 'Entertainment (Film)',
+   '34'  => 'Entertainment (Music)',                    '36'  => 'Entertainment (Other)',
+   '47'  => 'Event Management / Conferences',           '7'   => 'Finance / Banking / Accounting',
+   '12'  => 'Food Service Industry',                    '29'  => 'Government',
+   '3'   => 'Healthcare / Medicine',                    '8'   => 'Higher Education',
+   '6'   => 'Insurance',                                '4'   => 'Internet Service Provider',
+   '2'   => 'K-12 Education',                           '48'  => 'Law Enforcement / Emergency Management',
+   '14'  => 'Legal',                                    '24'  => 'Manufacturing (Computer Equipment)',
+   '23'  => 'Manufacturing (General)',                  '53'  => 'Media (Publishing, Broadcasting, etc)',
+   '30'  => 'Military',                                 '9'   => 'Mining',
+   '18'  => 'Natural Resources / Environment',          '15'  => 'Pharmaceuticals',
+   '49'  => 'Public Relations / Advertising',           '13'  => 'Real Estate',
+   '41'  => 'Retail / Consumer Goods',                  '52'  => 'Sales / Marketing',
+   '32'  => 'Scientific Research',                      '33'  => 'Sports / Recreation',
+   '43'  => 'Technical College / Trade School',         '40'  => 'Telecommunications',
+   '27'  => 'Transportation Industry (Air)',            '28'  => 'Transportation Industry (General)',
+   '26'  => 'Transportation Industry (Marine)',         '50'  => 'Travel / Tourism / Lodging',
+   '17'  => 'Travel Industry',                          '39'  => 'Utilities / Public Works',
+   '16'  => 'Other'                             
+);
+
+$os_lst = array(
+   '0'  =>  'SELECT ONE',                       '20' =>  'AIX',
+   '21' =>  'FreeBSD',                          '14' =>  'HP-UX',
+   '2'  =>  'Linux (Debian)',                   '27' =>  'Linux (Fedora)',
+   '25' =>  'Linux (Gentoo)',                   '4'  =>  'Linux (Mandrake)',
+   '5'  =>  'Linux (Other)',                    '1'  =>  'Linux (RedHat)',
+   '26' =>  'Linux (Slackware)',                '3'  =>  'Linux (Suse)',
+   '18' =>  'Mac OS X',                         '22' =>  'NetBSD',
+   '23' =>  'OpenBSD',                          '24' =>  'Other',
+   '13' =>  'Solaris',                          '15' =>  'Windows 2000',
+   '16' =>  'Windows 2003',                     '17' =>  'Windows XP'
+); 
+
+$country_lst = array(
+   '0'   =>  'SELECT ONE',              '1'   =>  'Afghanistan',
+   '2'   =>  'Albania',                 '3'   =>  'Algeria',
+   '4'   =>  'American Samoa',          '5'   =>  'Andorra',
+   '6'   =>  'Angola',                  '7'   =>  'Anguilla',
+   '8'   =>  'Antarctica',              '9'   =>  'Antigua and Barbuda',
+   '10'  =>  'Argentina',               '11'  =>  'Armenia',
+   '12'  =>  'Aruba',                   '13'  =>  'Australia',
+   '14'  =>  'Austria',                 '15'  =>  'Azerbaijan',
+   '16'  =>  'Bahamas',                 '17'  =>  'Bahrain',
+   '18'  =>  'Bangladesh',              '19'  =>  'Barbados',
+   '20'  =>  'Belarus',                 '21'  =>  'Belgium',
+   '22'  =>  'Belize',                  '23'  =>  'Benin',
+   '24'  =>  'Bermuda',                 '25'  =>  'Bhutan',
+   '26'  =>  'Bolivia',                 '27'  =>  'Bosnia and Herzegovina',
+   '28'  =>  'Botswana',                '29'  =>  'Bouvet Island',
+   '30'  =>  'Brazil',                  '31'  =>  'Brunei Darussalam',
+   '32'  =>  'Bulgaria',                '33'  =>  'Burkina Faso',
+   '34'  =>  'Burundi',                 '35'  =>  'Cambodia',
+   '36'  =>  'Cameroon',                '37'  =>  'Canada',
+   '38'  =>  'Cape Verde',              '39'  =>  'Cayman Islands',
+   '40'  =>  'Central African Republic','41'  =>  'Chad',
+   '42'  =>  'Chile',                   '43'  =>  'China',
+   '44'  =>  'Christmas Island',        '45'  =>  'Colombia',
+   '46'  =>  'Comoros',                 '47'  =>  'Congo',
+   '48'  =>  'Cook Islands',            '49'  =>  'Costa Rica',
+   '54'  =>  "Ivory Coast",             '50'  =>  'Croatia',
+   '51'  =>  'Cuba',                    '52'  =>  'Cyprus',
+   '53'  =>  'Czech Republic',          '55'  =>  'Denmark',
+   '56'  =>  'Djibouti',                '57'  =>  'Dominica',
+   '58'  =>  'Dominican Republic',      '59'  =>  'East Timor',
+   '60'  =>  'Ecuador',                 '61'  =>  'Egypt',
+   '62'  =>  'El Salvador',             '63'  =>  'Equatorial Guinea',
+   '64'  =>  'Eritrea',                 '65'  =>  'Estonia',
+   '66'  =>  'Ethiopia',                '67'  =>  'Falkland Islands',
+   '68'  =>  'Faroe Islands',           '69'  =>  'Fiji',
+   '70'  =>  'Finland',                 '71'  =>  'France',
+   '72'  =>  'French Guiana',           '73'  =>  'French Polynesia',
+   '74'  =>  'Gabon',                   '75'  =>  'Gambia',
+   '76'  =>  'Georgia',                 '77'  =>  'Germany',
+   '78'  =>  'Ghana',                   '79'  =>  'Gibraltar',
+   '80'  =>  'Greece',                  '81'  =>  'Greenland',
+   '82'  =>  'Grenada',                 '83'  =>  'Guadeloupe',
+   '84'  =>  'Guam',                    '85'  =>  'Guatemala',
+   '86'  =>  'Guinea',                  '87'  =>  'Guinea-Bissau',
+   '88'  =>  'Guyana',                  '89'  =>  'Haiti',
+   '90'  =>  'Honduras',                '91'  =>  'Hong Kong',
+   '92'  =>  'Hungary',                 '93'  =>  'Iceland',
+   '94'  =>  'India',                   '95'  =>  'Indonesia',
+   '96'  =>  'Iran',                    '97'  =>  'Iraq',
+   '98'  =>  'Ireland',                 '99'  =>  'Israel',
+   '100' =>  'Italy',                   '101' =>  'Jamaica',
+   '102' =>  'Japan',                   '103' =>  'Jordan',
+   '104' =>  'Kazakstan',               '105' =>  'Kenya',
+   '106' =>  'Kiribati',                '107' =>  'Kuwait',
+   '108' =>  'Kyrgystan',               '109' =>  'Lao',
+   '110' =>  'Latvia',                  '111' =>  'Lebanon',
+   '112' =>  'Lesotho',                 '113' =>  'Liberia',
+   '232' =>  'Libya',                   '114' =>  'Liechtenstein',
+   '115' =>  'Lithuania',               '116' =>  'Luxembourg',
+   '117' =>  'Macau',                   '118' =>  'Macedonia (FYR)',
+   '119' =>  'Madagascar',              '120' =>  'Malawi',
+   '121' =>  'Malaysia',                '122' =>  'Maldives',
+   '123' =>  'Mali',                    '124' =>  'Malta',
+   '125' =>  'Marshall Islands',        '126' =>  'Martinique',
+   '127' =>  'Mauritania',              '128' =>  'Mauritius',
+   '129' =>  'Mayotte',                 '130' =>  'Mexico',
+   '131' =>  'Micronesia',              '132' =>  'Moldova',
+   '133' =>  'Monaco',                  '134' =>  'Mongolia',
+   '135' =>  'Montserrat',              '136' =>  'Morocco',
+   '137' =>  'Mozambique',              '138' =>  'Myanmar',
+   '139' =>  'Namibia',                 '140' =>  'Nauru',
+   '141' =>  'Nepal',                   '142' =>  'Netherlands',
+   '143' =>  'Netherlands Antilles',    '144' =>  'Neutral Zone',
+   '145' =>  'New Caledonia',           '146' =>  'New Zealand',
+   '147' =>  'Nicaragua',               '148' =>  'Niger',
+   '149' =>  'Nigeria',                 '150' =>  'Niue',
+   '151' =>  'Norfolk Island',          '152' =>  'North Korea',
+   '153' =>  'Northern Mariana Islands','154' =>  'Norway',
+   '155' =>  'Oman',                    '156' =>  'Pakistan',
+   '157' =>  'Palau',                   '158' =>  'Panama',
+   '159' =>  'Papua New Guinea',        '160' =>  'Paraguay',
+   '161' =>  'Peru',                    '162' =>  'Philippines',
+   '163' =>  'Pitcairn',                '164' =>  'Poland',
+   '165' =>  'Portugal',                '166' =>  'Puerto Rico',
+   '167' =>  'Qatar',                   '168' =>  'Reunion',
+   '169' =>  'Romania',                 '170' =>  'Russian Federation',
+   '171' =>  'Rwanda',                  '172' =>  'Saint Helena',
+   '173' =>  'Saint Kitts and Nevis',   '174' =>  'Saint Lucia',
+   '175' =>  'Saint Pierre and Miquelon','231' =>  'Saint Vincent and the Grenadines',
+   '176' =>  'Samoa',                   '177' =>  'San Marino',
+   '178' =>  'Sao Tome and Principe',   '179' =>  'Saudi Arabia',
+   '180' =>  'Senegal',                 '227' =>  'Serbia and Montenegro',
+   '181' =>  'Seychelles',              '182' =>  'Sierra Leone',
+   '183' =>  'Singapore',               '184' =>  'Slovakia',
+   '185' =>  'Slovenia',                '186' =>  'Solomon Islands',
+   '187' =>  'Somalia',                 '188' =>  'South Africa',
+   '189' =>  'South Georgia',           '190' =>  'South Korea',
+   '191' =>  'Spain',                   '192' =>  'Sri Lanka',
+   '193' =>  'Sudan',                   '194' =>  'Suriname',
+   '195' =>  'Swaziland',               '196' =>  'Sweden',
+   '197' =>  'Switzerland',             '198' =>  'Syria',
+   '199' =>  'Taiwan',                  '200' =>  'Tajikistan',
+   '201' =>  'Tanzania',                '202' =>  'Thailand',
+   '203' =>  'Togo',                    '204' =>  'Tokelau',
+   '205' =>  'Tonga',                   '206' =>  'Trinidad and Tobago',
+   '207' =>  'Tunisia',                 '208' =>  'Turkey',
+   '209' =>  'Turkmenistan',            '210' =>  'Turks and Caicos Islands',
+   '211' =>  'Tuvalu',                  '212' =>  'Uganda',
+   '213' =>  'Ukraine',                 '214' =>  'United Arab Emirates',
+   '215' =>  'United Kingdom',          '216' =>  'United States of America',
+   '217' =>  'Uruguay',                 '218' =>  'Uzbekistan',
+   '219' =>  'Vanuatu',                 '233' =>  'Vatican City',
+   '220' =>  'Venezuela',               '221' =>  'Vietnam',
+   '222' =>  'Virgin Islands (British)','223' =>  'Virgin Islands (U.S.)',
+   '224' =>  'Wallis and Futuna Islands','225' =>  'Western Sahara',
+   '226' =>  'Yemen',                   '228' =>  'Zaire',
+   '229' =>  'Zambia',                  '230' =>  'Zimbabwe'
+);
+
+if ($_REQUEST['btnSubmit'] == 'Add' or $_REQUEST['btnSubmit'] == 'Modify')
+{
+
+?>
+<table>
+<tr>
+        <td class="contentTopic">
+                <? echo $_REQUEST['btnSubmit'] ?> Testimonial
+        </td>
+</tr>
+<tr>
+        <td class="content">
+
+Want to let others know you're using Bacula? Submit a user profile!  Your
+submission will be reviewed before being made publicly available.  We reserve
+the right to edit your submission for spelling, grammar, etc. You will receive
+an email when your profile has been approved for public viewing. Note that
+while your contact name and email address are required (to verify
+information if necessary), you can choose to have them not be published along
+with your profile information.  
+<br/><br/>
+Fields marked with a * are required. Read the privacy notice below for
+information about how this data will be used.
+
+        </td>
+</tr>
+
+<tr>
+        <td class="content">
+<form enctype="multipart/form-data" method='post' action='?page=testimonial'>
+<input type='hidden' name='page' value='testimonial'>
+<table border='0' class='Content'>
+
+<td class='ItemName'>
+<font color='red'>*</font>Contact Name:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' id='contact_name' 
+name='contact_name' size='30' maxlength='100' value=''></td>
+<td class='ItemName'>Publish Contact Name?</td>
+<td class='ItemValue'><select name='publish_contact' class='ItemValue'>
+<option id='publish_contact_0'  value='0' SELECTED>No
+<option id='publish_contact_1' value='1'>Yes
+</select></td>
+</tr>
+
+<tr>
+<td class='ItemName'><font color='red'>*</font>Email Address:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='email_address' 
+id='email_address' size='30' maxlength='150' value=''></td>
+<td class='ItemName'>Publish Email Address?</td><td class='ItemValue'>
+<select name='publish_email' class='ItemValue'>
+<option value='0' id='publish_email_0' SELECTED>No
+<option value='1' id='publish_email_1' >Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'>Job Description/Title:</td>
+<td class='ItemValue'>
+<input type='text' name='title' id='title' size='30' maxlength='100' value=''></td></tr>
+<tr><td colspan=4><br></td></tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Name:</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' name='org_name' id='org_name' 
+size='30' maxlength='100' value=''>
+</td><td class='ItemName'>Publish Org Name?</td><td class='ItemValue'>
+<select name='publish_orgname' class='ItemValue'>
+<option value='0' id='publish_orgname_0' >No
+<option value='1' id='publish_orgname_1' SELECTED>Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Type:</td>
+<td class='ItemValue' colspan='3'>
+<select name='orgtype_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($org_type_lst))
+{
+ echo "<option id='orgtype_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Industry/Function:</td>
+<td class='ItemValue' colspan='3'>
+<select name='orgindustry_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($org_industry_lst))
+{
+ echo "<option id='orgindustry_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td class='ItemName'>
+<font color='red'>*</font>Approx. Organization Size (# of Users):</td>
+<td class='ItemValue'>
+<input type='text' id='org_size' class='ItemValue' name='org_size' 
+size='4' maxlength='6' value=''></td>
+<td class='ItemName'>Publish Org Size?</td><td class='ItemValue'><select name='publish_orgsize' class='ItemValue'>
+<option id='publish_orgsize_0' value='0' >No
+<option id='publish_orgsize_1' value='1' SELECTED>Yes
+</select></td>
+</tr>
+<tr>
+
+<td class='ItemName'>Website URL:</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='website' name='website' size='30'
+ maxlength='150' value=''></td>
+<td class='ItemName'>Publish Website?</td><td class='ItemValue'>
+<select name='publish_website' class='ItemValue'>
+<option id='publish_website_0' value='0' >No
+<option id='publish_website_1' value='1' SELECTED>Yes
+</select></td>
+</tr>
+
+<tr>
+<td class='ItemName'>Organization Logo :</td>
+<td class='ItemValue'>
+<input type="file" name="org_logo" title="png, gif or jpeg file only please"/>
+</td><td><i>max width 150px. png, gif or jpeg only</i></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Country:</td>
+<td class='ItemValue'>
+<select name='country_id' class='ItemValue'>
+<?
+while(list ($key, $val) = each ($country_lst))
+{
+ echo "<option id='country_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td colspan=4><br></td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Bacula version:</td>
+<td class='ItemValue'>
+<select name='bacula_version' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($version_lst))
+{
+ echo "<option id='bacula_version_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Director OS:</td>
+<td class='ItemValue'>
+<select name='ostype_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($os_lst))
+{
+ echo "<option id='ostype_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Catalog DB:</td>
+<td class='ItemValue'>
+<select name='catalog_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($catalog_lst))
+{
+ echo "<option id='catalog_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr>
+<td class='ItemName'><font color='red'>*</font>Redundant/Failover Backup Setup?</td>
+<td class='ItemValue'><select name='redundant_setup' class='ItemValue'>
+<option value='0' id='redundant_setup_0' SELECTED>No
+<option value='1' id='redundant_setup_1' >Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Number of Clients (Running bacula-fd):</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='number_fd' name='number_fd' 
+ size='5' maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'>
+<font color='red'>*</font>Number of Storage Daemons (Running bacula-sd):</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='number_sd' name='number_sd' size='5' 
+ maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Total # of GB saved every month:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='month_gb' size='5' 
+ id='month_gb' maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Number # of Files:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='number_files'
+ id='number_files' title='select count(1) from File;' size='10' maxlength='15' value=''></td>
+</tr>
+<tr>
+
+<td class='ItemName'>Need professional support:</td>
+<td class='ItemValue'>
+<select name='support' class='ItemValue'>
+<option id='support_0' value='0' SELECTED>No
+<option id='support_1' value='1'>Yes
+</select></td>
+</tr>
+
+<tr><td colspan=4><br></td></tr>
+
+<tr><td class='ItemName' valign='top'>Applicable Hardware and Network Information:</td>
+<td class='ItemValue' colspan='3'>
+<textarea name='hardware_comments' wrap='virtual' rows='4' id='hardware_comments'
+ cols='60' class='ItemValue'>Loader Description:
+Barcode Reader: Yes/No
+Number of Storage Elements:
+Number of Import/Export Elements:
+--
+Nics: 
+...
+</textarea>
+</tr>
+
+<tr><td class='ItemName' valign='top'>General Comments:</td>
+<td class='ItemValue' colspan='3'>
+<textarea name='comments' id='comments' wrap='virtual' rows='4' cols='60' 
+ class='ItemValue'></textarea></tr>
+
+<tr><td></td><td>
+<?
+ if ($_REQUEST['btnSubmit'] == 'Modify') {
+  echo "<input type='text' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
+  echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Save'>";
+  echo "<input type='submit' name='btnSubmit' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
+  echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
+
+} else {  
+  echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Review Profile Submission'>";
+}
+?>
+
+</td></tr>
+</table>
+</form>
+
+</td>
+</tr>
+<tr>
+
+        <td class="content">
+        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Privacy Notice </h3>
+
+The following information is required, but you may choose to not have it
+published for public viewing if you wish: contact name, email address,
+organization name. We may use this information to verify the data you submit if
+we find the need.
+        </td>
+</tr>
+
+
+</table>
+<?
+
+}
+
+if ($_REQUEST['btnSubmit'] == 'Modify') {
+   $filename = get_file_from_id();
+
+   if (!$filename) {
+       return (0);
+   }
+
+   $formul = load_formul($filename);
+
+   echo "<script type='text/javascript' language='JavaScript'>\n";
+   $attribs = array('contact_name','email_address', 'org_name','title','website',
+                    'month_gb','number_files', 'number_fd','number_sd',
+                    'org_size','comments', 'hardware_comments', 'id');
+   foreach ($attribs as $arr) {
+           form_set_value($formul, $arr);
+   }
+
+   $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
+                    'orgindustry_id', 'publish_orgsize','publish_website', 'bacula_version',
+                    'country_id','ostype_id', 'redundant_setup', 'catalog_id', 'support');
+   foreach ($attribs as $arr) {
+        form_set_selection($formul, $arr);
+   }
+
+   echo "</script>\n";
+
+} elseif ($_REQUEST['btnSubmit'] == 'Review Profile Submission') {
+
+        $form = get_formul();
+        if (!$form) {
+                echo "Sorry, something is missing, I cannot accept your submission";
+        } else {
+                $token = uniqid(md5(rand()), true);
+                $filename = "$dat_dir/profile.$token";
+        
+                $form['filename'] = $filename;  
+                $form['id'] = $token;
+                save_formul($form);
+
+                send_email($form['id'], $form['email_address']);
+                echo "You can modify your profile <a href='?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "'>here</a> (keep this link as bookmark)<br><br>";
+                print_formul($form);
+        }
+
+} elseif ($_REQUEST['btnSubmit'] == 'View') {
+       
+       $file = get_file_from_id();
+
+       if ($file) {
+            print_formul_file($filename,true);
+       }
+
+} elseif ($_REQUEST['btnSubmit'] == 'Delete') {
+
+       $filename = get_file_from_id();
+
+       if (!$filename) {
+           return (0);
+       }
+
+        $form = load_formul($filename);
+        
+        if ($form['org_logo'] && file_exists($form['org_logo'])) {
+            unlink($form['org_logo']);
+        }
+        if (file_exists($filename)) {
+            unlink($filename);
+            echo "Profile deleted";
+        }
+
+} elseif ($_REQUEST['btnSubmit'] == 'Accept' && is_admin()) {
+
+       $filename = get_file_from_id();
+        
+       if (!$filename) {
+           return (0);
+       }
+
+        $form = load_formul($filename);
+
+       $hide = $_REQUEST['hide'];
+
+        if ($hide) {
+                $form['visible']=0;
+        } else {
+               $form['visible']=1;
+       }
+        save_formul($form);
+        echo $form['id'] . " is now " . ($hide?"un":"") . "visible";
+        print_formul($form);
+
+} elseif ($_REQUEST['btnSubmit'] == 'Save') {
+       
+       $filename = get_file_from_id();
+
+       if (!$filename) {
+           return (0);
+       }
+
+        $form = get_formul();
+
+        $form['filename'] = $filename;  
+        $form['id'] = $_REQUEST['id'];  // id is clean
+//      $form['visible'] = false;
+
+        if (!$form['org_logo']) {
+            $form_old = load_formul($filename);
+            $form['org_logo'] = $form_old['org_logo'];
+        }
+
+        save_formul($form);
+
+        echo "Your profile has been modified.<br>";
+        print_formul($form);
+
+} elseif ($_REQUEST['btnSubmit'] == 'Admin' && is_admin()) {
+
+
+    $pass = $_REQUEST['passwd']; // passwd is clean
+    $waiting = $_REQUEST['waiting'];
+    
+    if ($waiting) {
+       print '<a href="?page=testimonial&btnSubmit=Admin&passwd=' . $pass . '"> View all</a><br>';
+       print "<h1>View all waiting testimonials</h1>";
+    } else {
+       print '<a href="?page=testimonial&btnSubmit=Admin&waiting=1&passwd=' . $pass . '"> View Waiting</a><br>';
+       print "<h1>View all testimonials</h1>";
+    }
+
+    if ($handle = opendir($dat_dir)) {
+    /* Ceci est la facon correcte de traverser un dossier. */
+            while (false !== ($file = readdir($handle))) {
+                if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
+                     $form = load_formul("$dat_dir/$file") ;
+                       // on affiche ceux qui sont en attente ou bien tous
+                    if (!$waiting || !$form['visible']) {
+                       print_formul($form);
+                       if ($form['visible']) {
+                          print "<a href=\"?page=testimonial&btnSubmit=Accept&hide=1&passwd=" . $pass . "&id=" . $form['id'] . "\"> Hide </a> | \n";
+                       } else {
+                          print "<a href=\"?page=testimonial&btnSubmit=Accept&passwd=" . $pass . "&id=" . $form['id'] . "\"> Accept </a> | \n";
+                       }
+                       print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "\"> Modify </a> | \n";
+                       print "<a href=\"?page=testimonial&btnSubmit=AdminExport&passwd=" . $pass . "&id=" . $form['id'] . "\"> Export </a><br><br>\n";
+
+                    }
+                }
+            } 
+            closedir($handle);
+    } 
+
+} elseif (!$_REQUEST['btnSubmit'] || $_REQUEST['btnSubmit'] == 'ViewAll') {
+
+    $limit = $_REQUEST['limit'];
+    $offset = $_REQUEST['offset'];
+
+    $limit = is_int($limit)?$limit:10;
+    $offset = is_int($offset)?$limit:0;
+
+    $admin = is_admin();
+
+    if ($limit > 20) { $limit = 20 ;}
+
+    echo "<a href='?page=testimonial&btnSubmit=Add'>Add a testimonial</a><br><br>";
+
+    if ($handle = opendir($dat_dir)) {
+    /* Ceci est la facon correcte de traverser un dossier. */
+            $i = 0 ;
+            while (false !== ($file = readdir($handle))) {
+                if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
+                    if ($i >= $offset && $i < ($offset + $limit)) {
+                        $i += print_formul_file("$dat_dir/$file",$admin);
+                    }
+
+                    if ($i > ($offset + $limit)) {
+                        break;
+                    }
+                }
+            } 
+            closedir($handle);
+    }
+
+} elseif ($_REQUEST['btnSubmit'] == 'AdminExport' && is_admin()) {
+
+   $file = get_file_from_id();
+   if (!$file) {
+       return 0;
+   }
+   $form = load_formul($file);
+   if ($form) {
+       export_form($form);
+   }
+} else {
+       print "Invalid btnSubmit<br>";
+}
+
+function export_form($formul)
+{
+        global $country_lst, $org_type_lst, $org_industry_lst, $os_lst, $catalog_lst;
+
+        $attribs = array('contact_name','email_address', 'org_name','title','website',
+                        'hardware_comments','comments',
+                        'publish_contact','publish_email', 'publish_orgname','org_size','redundant_setup',
+                        'date','visible', 'support',
+                        'number_fd','number_sd','month_gb','number_files','publish_orgsize','publish_website');
+       print "<pre>\n";
+        foreach ($attribs as $arr) {
+               print "$arr = " . $formul[$arr] . "\n";
+        }
+
+       print "orgtype = " . $org_type_lst[$formul['orgtype_id']] . "\n";
+       print "orgindustry = " . $org_industry_lst[$formul['orgindustry_id']] . "\n";
+       print "bacula_version = " . $version_lst[$formul['bacula_version']] . "\n";
+       print "country = " . $country_lst[$formul['country_id']] . "\n";
+       print "ostype = " . $os_lst[$formul['ostype_id']] . "\n";
+       print "catalog = " . $catalog_lst[$formul['catalog_id']] . "\n";
+
+       print "<pre>\n";
+}
+
+function get_file_from_id()
+{
+    global $dat_dir;
+    $id = $_REQUEST['id'];
+
+    if (!ereg('^[a-zA-Z0-9\.]+$',$id)) {
+         return(0) ;
+    }
+
+    $filename="$dat_dir/profile.$id";
+
+    if (!file_exists($filename)) {
+         echo "Can't verify your id";
+         return (0);
+    }       
+
+    return $filename;
+}
+
+function send_email($id, $email)
+{
+        // Your email address
+        $from = 'kern@sibbald.com';
+//        $from = 'eric@eb.homelinux.org';
+
+        // The subject
+        $subject = "[BACULA] New testimonial";
+
+        // The message
+        $message = "Hello, 
+You can modify your new testimonial at http://www.bacula.org/?page=testimonial&btnSubmit=Modify&id=$id
+
+Best regards.
+";
+
+        mail($email, $subject, $message, "From: Bacula WebMaster <$from>");
+        mail($from, $subject, $message, "From: Bacula WebMaster <$from>");
+        mail('eric@eb.homelinux.org', $subject, $message, "From: Bacula WebMaster <$from>");
+
+        echo "The email has been sent for approval.<br/>";
+}
+
+function save_formul($form)
+{
+        $fp = fopen($form['filename'], 'w'); 
+        fwrite($fp, serialize($form));
+        fclose($fp);
+}
+
+function get_formul()
+{
+        global $dat_dir;
+        $formul = array();
+        $attribs = array('contact_name','email_address', 'org_name');
+        foreach ($attribs as $arr) {
+                if (!$_REQUEST[$arr]) {
+                        echo "Can't get $arr<br/>";
+                        return '';
+                }
+                $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
+        }
+
+        $attribs = array('title','website','hardware_comments','comments');
+        foreach ($attribs as $arr) {
+                $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@ -]/', " ", $_REQUEST[$arr]);
+        }
+
+        $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
+                         'orgindustry_id','org_size', 'publish_orgsize','publish_website', 'bacula_version',
+                         'country_id','ostype_id', 'redundant_setup','number_fd','number_sd','support',
+                         'month_gb','number_files','catalog_id');
+        foreach ($attribs as $arr) {
+                if (preg_match("/^[0-9]+$/", $_REQUEST[$arr])) {
+                        $formul[$arr] = $_REQUEST[$arr];
+                }
+        }
+
+        $attribs = array('orgtype_id', 'orgindustry_id', 'org_size', 'country_id','bacula_version',
+                         'catalog_id', 'ostype_id','number_fd','number_sd', 'month_gb','number_files');
+        foreach ($attribs as $arr) {
+                if (!$formul[$arr]) {
+                        echo "Can't get $arr<br/>";
+                        return '';
+                }
+        }
+
+        if ($_FILES['org_logo']) {
+                $token = uniqid(md5(rand()), true);
+                $image = "upload/$token";
+
+                if (preg_match("/(jpg|jpeg)$/i", $_FILES['org_logo']['name'])) {
+                        $image = "$image.jpg";
+                } elseif (preg_match("/png$/i", $_FILES['org_logo']['name'])) {
+                        $image = "$image.png";
+                } elseif (preg_match("/gif$/i", $_FILES['org_logo']['name'])) {
+                        $image = "$image.gif";
+                } else {
+                        $image = '';
+                }
+                if ($image) {
+                        $ret=move_uploaded_file($_FILES['org_logo']['tmp_name'], $image);
+                        $formul['org_logo'] = $image;
+                }
+        }
+        $formul['date'] = time();
+        $formul['visible'] = false;
+
+        return $formul;
+}
+
+function form_set_value($formul,$val)
+{
+ echo "document.getElementById('$val').value = '" . $formul[$val] . "';\n";
+}
+
+function form_set_selection($formul,$val)
+{
+ echo "document.getElementById('${val}_" . $formul[$val] . "').selected =true;\n";
+}
+
+// passwd file must exist in dat directory
+function is_admin()
+{
+        global $dat_dir;
+        $id = $_REQUEST['passwd'];
+
+        if (!ereg('^[a-zA-Z]+$',$id)) {
+            return(false) ;
+        }
+        
+        if (file_exists("$dat_dir/$id")) {
+            return true;
+        } else {
+            return false;
+        }
+}
+
+function load_formul($filename)
+{
+        if (!file_exists($filename)) {
+                return array();
+        }
+
+        if (!filesize($filename) || filesize($filename) > 10*1024*1024) {
+            return undef;
+        }
+        $fp = fopen($filename, 'r');
+        $contents = fread ($fp, filesize ($filename));
+        fclose ($fp);
+
+        $formul = unserialize($contents);
+        if (!is_array($formul)) {
+            return undef;
+        }
+
+        return $formul;
+}
+
+function print_formul_file($filename, $admin) {
+
+        $formul = load_formul($filename);
+        if (!$formul) {
+                return 0;
+        }
+        
+        if (!$admin) {
+                if (!$formul['visible']) {
+                        return 0;
+                }
+        } else {
+               print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $formul['id'] . "\">Modify</a><br>\n";
+       }
+
+       return print_formul($formul);
+}
+
+function print_formul($formul)
+{
+   global $country_lst, $org_type_lst, $org_industry_lst, $os_lst,$catalog_lst;
+
+   ?>
+   <table width="80%">
+   <td>
+   <b><? echo ($formul['publish_orgname'])?$formul['org_name']:'N/A' ?></b><br>
+   <table>
+   <tr><td> Location: </td><td><? $a = $formul['country_id'] ; echo $country_lst[$a] ?> </td></tr>
+   <tr><td> Organization Type: </td><td><? echo $org_type_lst[$formul['orgtype_id']] ?> </td></tr>
+   <tr><td> Industry/Function: </td><td><? echo $org_industry_lst[$formul['orgindustry_id']] ?> </td></tr>
+
+   <? if ($formul['publish_orgsize']) { ?>
+        <tr><td> Organisation Size: </td><td><? echo $formul['org_size'] ?> </td></tr>
+   <? } ?>
+
+   <? if ($formul['publish_website']) { ?>
+        <tr><td> Website: </td><td><? echo $formul['website'] ?> </td></tr>
+   <? } ?>
+
+   <? if ($formul['number_fd'] > 1) { ?>
+        <tr><td> Number of fd: </td><td><? echo $formul['number_fd'] ?> </td></tr>
+   <? } ?>
+
+   <? if ($formul['month_gb'] > 1) { ?>
+        <tr><td> GB/Month: </td><td><? echo $formul['month_gb'] ?> </td></tr>
+   <? } ?>
+
+   <tr><td> Comments: </td><td width='450'><i><? echo $formul['comments'] ?> </i></td></tr>
+   <? if ($formul['publish_contact']) { ?>
+        <tr align='right'><td></td><td><i><? echo $formul['contact_name'] ?> </i></td></tr>
+   <? } ?>
+   </table>
+   </td>
+   <td>
+   <? if ($formul['org_logo']) { ?>
+        <a href="<? echo $formul['org_logo'] ?>" ><img width='150' src="<? echo $formul['org_logo'] ?>"></a>
+   <? } ?>
+   </td>
+   </table>
+<?
+   return 1;
+}
+
+?>
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/testimonials.php b/docs/home-page/en/pages/testimonials.php
new file mode 100644 (file)
index 0000000..c92e21d
--- /dev/null
@@ -0,0 +1,123 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                Testimonials
+        </td>
+</tr>
+<tr>
+        <td class="content">
+        Below, you will find excerpts from email that users have sent us.
+        The purpose is to give you some idea of what kinds of
+        sites are running Bacula and how they are using it.
+        These testimonials are used with permission of the author.
+        </td>
+</tr>
+
+<tr>
+        <td class="content">
+        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Norm Dressler - 2004/06/15 </h3>
+        Bacula has been awesome for us. We used to use Ar**** but I
+        have always hated the interface. And the cost was outrageous.
+        Then I found bacula and wow! Everything in Ar**** and then
+        some! The console is easy to use, easy to understand once you
+        get the hang of it, and I usually don't have any problems
+        restoring files! :)
+        <br>
+        I have 15+ machines I backup with Bacula
+        with an autoloader, and I'm extremely happy with the product.
+        Whenever someone asks me about what to use, I point them at
+        Bacula.
+        <p> Norm Dressler, Senior Network Architect</p>
+        </td>
+</tr>
+
+<tr>
+        <td class="content">
+        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Michael Scherer - 2005/02/09 </h3>
+        Our former backup-system was ARGHserve running on NT4.
+        Due to the fact that we replaced most of our servers with
+        Linux machines we had to find some other solution.<br> At
+        first we tried ARGHserve on Linux, without much comfort.
+        Database updates took days to complete, the database
+        itself grew enormously large, ...  not really something
+        you except from such an expensive piece of software.<br>
+        I began the quest for a new backup-solution, testing
+        almost anything I could find on Sourceforge and Freshmeat
+        and finally decided to go with Bacula.<br> It's perfectly
+        maintained by Kern and many others, is an (very) active
+        project with good support through maillists and an
+        irc-channel, which can be found on Freenode.<br>
+        <br>
+        Today we run Bacula on a SuSE based x86 machine with a
+        2.6 kernel, some RAID5-Systems and IBM Ultrium
+        Tapelibrary.  Without any issues and without more work
+        than changing two tapes in the morning.<br>
+        <br>
+        Recoveries aren't complicated as well, you either choose
+        a jobid to restore from or let Bacula find the correct
+        jobid for a file or directory you need to recover.  You
+        mark everything you need, Bacula tells you which tapes it
+        needs, done.<br>
+        You don't even have to wait for any daemon to finish
+        database updates for backuped files, you can start with
+        the recovery right after the backup-job is done.
+        Perfect.  <br>
+
+        <br>
+        <p> Michael Scherer, some admin </p>
+        </td>
+</tr>
+<tr>
+        <td class="content">
+        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Ludovicz Strappazon - 2005/03/05</h3>
+                I had previously used Veritas Netbackup, but it was really too expensive
+                for our University. Bacula permitted us to buy a library. Now, we use
+                Bacula since 10/2002 with an ADIC Scalar 24 library and LTO ultrium,
+                without any problems. I think it can do anything Netbackup could do with our
+                configuration. We backup seven Linux servers, one NT server, four
+                Windows 2003 servers and a few XP workstations. Some of these servers
+                are backed up across a firewall using ssh; some others are on a private
+                network. We tried succesfully the disaster recovery procedure on Linux
+                and had some good results in restoring Windows "from bare metal". What do I
+                like in Bacula ?  It is very flexible and reliable. With its light
+                interface console, I can manage the backups from everywhere. A few words
+                about the support : it is free but efficient. I don't have to cross a
+                level 1, level 2 helpdesk to have some help, I never felt alone, and the
+                bacula-users mailing list is a mix of courtesy and honest speech. At
+                last, you don't need to be a big company to have your features requests
+                heard.<br>
+                Thanks to Kern Sibbald and the others who give so much work and time
+                for this project.<br>
+                <br>
+                Ludovic Strappazon<br>
+                University Marc Bloch de Strasbourg.<br>
+        </td>
+</tr>
+
+<tr>
+  <td class="content">
+  <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Jeff Richards - 2006/08/26</h3>
+      I used Bacula at my previous employer to backup:  Linux, OpenBSD, Windows 2000,XP,2003, and AIX 5.1 
+      <br>  <br>
+      Bacula provided a solution when I had no budget for backup
+      software.  The Linux systems (about 30) acted as Tivoli (TMF)
+      gateways.  The Linux systems were commodity PCs, so when the IDE
+      HDs failed it took hours (usually at least 4) to clean up the
+      Tivoli environment and rebuild the failed gateway.  Using Bacula
+      and mkCDrec I cut that time down to under an hour, and most of
+      that time was not spent doing anything except waiting for the
+      restore to finish.  I recovered 2 failed Linux systems with
+      Bacula.
+      <br>     
+      I would like to thank you and the entire Bacula team for an
+      excellent piece of software.
+         <br> <br>
+         Jeff Richards<br>
+         Consultant<br>
+  </td>
+</tr>
+
+</table>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/vote.php b/docs/home-page/en/pages/vote.php
new file mode 100644 (file)
index 0000000..db055aa
--- /dev/null
@@ -0,0 +1,12 @@
+<? require_once("inc/header.php"); ?>
+<table>
+</tr>
+<tr>
+        <td class="content">
+        <p>
+        <img src="images/1.39-wishlist-votes.png">
+        </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/en/pages/what.php b/docs/home-page/en/pages/what.php
new file mode 100644 (file)
index 0000000..2924cab
--- /dev/null
@@ -0,0 +1,453 @@
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+        <td class="contentTopic">
+                What is Bacula?
+        </td>
+</tr>
+<tr>
+        <td class="content">
+
+<b>Bacula</b> is a set of computer programs that permit you (or the
+system administrator) to manage backup, recovery, and verification of
+computer data across a network of computers of different kinds. In
+technical terms, it is a network Client/Server based backup program.
+Bacula is relatively easy to use and efficient, while offering many
+advanced storage management features that make it easy to find and
+recover lost or damaged files. Due to its modular design, Bacula is
+scalable from small single computer systems to systems consisting of
+hundreds of computers located over a large network.
+<h3>Who Needs Bacula?</h3>
+If you are currently using a program such as <b>tar</b>, <b>dump</b>, or
+<b>bru</b> to backup your computer data, and you would like a network
+solution, more flexibility, or catalog services, Bacula will most
+likely provide the additional features you want. However, if you are
+new to Unix systems or do not have offsetting experience with a sophisticated
+backup package, we do not recommend using Bacula as it is
+much more difficult to setup and use than <b>tar</b> or <b>dump</b>.
+<p>If you are running <b>Amanda</b> and would like a backup program that
+can write to multiple volumes (i.e. is not limited by your tape drive
+capacity), Bacula can most likely fill your needs. In addition,
+quite a number of our users report that Bacula is simpler to
+setup and use than other equivalent programs.
+<p>If you are
+currently using a sophisticated commercial package such as Legato
+Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested
+in Bacula, which provides many of the same features, and is free
+software available under the GNU Version 2 software license.
+
+<h3>Bacula Components or Services</h3>
+Bacula is made up of the following five major components or services:
+<p style="text-align: center; font-size: small">
+        <img src="images/manual/bacula-applications.png" alt="" width="576" height="734"><br>
+        thanks to Aristedes Maniatis for this graphic and the one below
+</p>
+<p>
+<ul>
+<li><a name="DirDef"></a>
+    <b>Bacula Director</b> service consists of the program that
+     supervises all the backup, restore, verify and archive operations.
+     The system administrator uses the Bacula Director to schedule
+     backups and to recover files. For more details see the <a
+     href="rel-manual/director.html">Director Services Daemon Design Document</a>.
+     The Director runs as a daemon or a service (i.e. in the background).
+</li>
+<li><a name="UADef"></a>
+    <b>Bacula Console</b> services is the program that allows the
+    administrator or user to communicate with the <b>Bacula Director</b>
+    (see above). Currently, the Bacula Console is available in three
+    versions. The first and simplest is to run the Console program in a
+    shell window (i.e. TTY interface). Most system administrators will
+    find this completely adequate. The second version is a GNOME GUI
+    interface that for the moment (23 November 2003) is far from complete,
+    but quite functional as it has most the capabilities of the shell
+    Console. The third version is a wxWidgets GUI with an interactive file
+    restore. It also has most the capabilities of the shell console,
+    allows command completion with tabulation, and gives you instant
+    help about the command you are typing. For more details see the
+    <a href="rel-manual/console.html">Bacula Console Design Document</a>.
+</li>
+<li><a name="FDDef"></a>
+    <b>Bacula File</b> services (or Client program) is the software
+    program that is installed on the machine to be backed up. It is
+    specific to the operating system on which it runs and is responsible
+    for providing the file attributes and data when requested by the
+    Director. The File services are also responsible for the file
+    system dependent part of restoring the file attributes and data
+    during a recovery operation. For more details see the <a
+    href="rel-manual/file.html">File Services Daemon Design Document</a>. This
+    program runs as a daemon on the machine to be backed up, and in some
+    of the documentation, the File daemon is referred to as the Client
+    (for example in Bacula's configuration file). In addition to
+    Unix/Linux File daemons, there is a Windows File daemon (normally
+    distributed in binary format). The Windows File daemon runs on
+    all currently known Windows versions (95, 98, Me, NT, 2000, XP).
+</li>
+<li><a name="SDDef"></a>
+    <b>Bacula Storage</b> services consist of the software programs that
+    perform the storage and recovery of the file attributes and data to
+    the physical backup media or volumes. In other words, the Storage daemon
+    is responsible for reading and writing your tapes (or other
+    storage media, e.g. files). For more details see the <a
+    href="rel-manual/storage.html">Storage Services Daemon Design Document</a>.
+    The Storage services runs as a daemon on the machine that has the
+    backup device (usually a tape drive).
+</li>
+<li><a name="DBDefinition"></a>
+    <b>Catalog</b> services are comprised of the software programs
+    responsible for maintaining the file indexes and volume databases for
+    all files backed up. The Catalog services permit the System
+    Administrator or user to quickly locate and restore any desired
+    file. The Catalog services sets Bacula apart from simple backup
+    programs like tar and bru, because the catalog maintains a record
+    of all Volumes used, all Jobs run, and all Files saved, permitting
+    efficicient restoration and Volume management.
+   Bacula currently supports three different databases, MySQL,
+    PostgreSQL, and SQLite, one of which must be chosen when building
+    <b>Bacula</b>. There also exists an Internal database, but it is no
+    longer supported.
+    <p>
+    The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
+    provide quite a number of features,
+    including rapid indexing, arbitrary queries, and security. Although
+    we plan to support other major SQL databases, the current
+    Bacula implementation interfaces only to MySQL, PostgreSQL and SQLite.
+    For more details see the <a href="rel-manual/catalog.html">Catalog Services
+    Design Document</a>.
+    <p>The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat release,
+    or building it from the source is quite easy, see the
+    <a href="rel-manual/mysql.html"> Installing and Configuring MySQL</a> chapter
+    of this document for the details. For more information on MySQL,
+    please see: <a href="http://www.mysql.com">www.mysql.com</a>.
+    Or see the <a href="rel-manual/postgresql.html"> Installing and Configuring
+    PostgreSQL</a> chapter of this document for the details. For more
+    information on PostgreSQL, please see: <a
+    href="http://www.postgresql.org">www.postgresql.org</a>.
+    <p>Configuring and building SQLite is even easier. For the details
+    of configuring SQLite, please see the <a href="rel-manual/sqlite.html">
+    Installing and Configuring SQLite</a> chapter of this document.
+</li>
+<li><a name="MonDef"></a>
+    <b>Bacula Monitor</b> services is the program that allows the
+    administrator or user to watch current status of <b>Bacula Directors</b>,
+    <b>Bacula File Daemons</b> and <b>Bacula Storage Daemons</b>
+    (see above). Currently, only a GTK+ version is available, which
+    works with Gnome and KDE (or any window manager that supports the
+    FreeDesktop.org system tray standard).
+</li>
+</ul>
+To perform a successful save or restore, the following four daemons
+must be configured and running: the Director daemon, the File daemon,
+the Storage daemon, and MySQL, PostgreSQL or SQLite.
+
+<h3>Bacula Configuration</h3>
+In order for Bacula to understand your system, what clients you
+want backed up, and how, you must create a number of configuration
+files containing resources (or objects). The following presents an
+overall picture of this:
+<p style="text-align: center">
+        <img src="images/manual/bacula-objects.png" alt="" width="576" height="734">
+</p>
+
+<h3>Conventions Used in this Document</h3>
+<b>Bacula</b> is in a state of evolution, and as a consequence,
+this manual will not always agree with the code. If an
+item in this manual is preceded by an asterisk (*), it indicates
+that the particular feature is not implemented. If it is preceded
+by a plus sign (+), it indicates that the feature may be partially
+implemented.
+<p>If you are reading this manual as supplied in a released version
+of the software, the above paragraph holds true. If you are reading
+the online version of the manual, <a href="/dev-manual">
+http://www.bacula.org/rel-manual</a>, please bear in mind that this version
+describes the current version in development (in the SVN) that may
+contain features not in the released version. Just the same,
+it generally lags behind the code a bit.
+<h3>Quick Start</h3>
+To get Bacula up and running quickly, we recommend that you first
+scan the Terminology section below, then quickly review the next chapter
+entitled <a href="rel-manual/state.html">The Current State of Bacula</a>, then the
+<a href="rel-manual/quickstart.html">Quick Start Guide to Bacula</a>, which will
+give you a quick overview of getting Bacula running. After
+which, you should proceed to the
+chapter on <a href="rel-manual/install.html"> Installing Bacula</a>, then <a
+href="rel-manual/configure.html">How to Configure Bacula</a>,
+and finally the chapter on <a href="rel-manual/running.html">
+Running Bacula</a>.
+
+<h3>Terminology</h3>
+To facilitate communication about this project, we provide here
+the definitions of the terminology that we use.
+<dl>
+        <dt>Administrator</dt>
+        <dd>The person or persons responsible for administrating the Bacula system.</dd>
+
+        <dt>Backup</dt>
+        <dd>We use the term <b>Backup</b> to refer to a Bacula Job that saves files. </dd>
+
+        <dt>Bootstrap File</dt>
+        <dd>The bootstrap file is an ASCII file
+    containing a compact form of commands that allow Bacula or
+    the stand-alone file extraction utility (<b>bextract</b>) to
+    restore the contents of one or more Volumes, for example, the
+    current state of a system just backed up. With a bootstrap file,
+    Bacula can restore your system without a Catalog. You can
+    create a bootstrap file from a Catalog to extract any file or
+    files you wish.</dd>
+
+        <dt>Catalog</dt>
+        <dd>The Catalog is used to store summary information
+    about the Jobs, Clients, and Files that were backed up and on
+    what Volume or Volumes. The information saved in the Catalog
+    permits the administrator or user to determine what jobs were
+    run, their status as well as the important characteristics
+    of each file that was backed up. The Catalog is an online resource,
+    but does not contain the data for the files backed up. Most of
+    the information stored in the catalog is also stored on the
+    backup volumes (i.e. tapes). Of course, the tapes will also have
+    a copy of the file in addition to the File Attributes (see below).
+    <p>The catalog feature is one part of Bacula that distinguishes
+    it from simple backup and archive programs such as <b>dump</b>
+    and <b>tar</b>.
+    </dd>
+        
+        <dt>Client</dt>
+        <dd>In Bacula's terminology, the word Client
+    refers to the machine being backed up, and it is synonymous
+    with the File services or File daemon, and quite often, we
+    refer to it as the FD. A Client is defined in a configuration
+    file resource. </dd>
+        
+        <dt>Console</dt>
+        <dd>The program that interfaces to the Director allowing
+    the user or system administrator to control Bacula.</dd>
+        
+        <dt>Daemon</dt>
+        <dd>Unix terminology for a program that is always present in
+    the background to carry out a designated task. On Windows systems, as
+    well as some Linux systems, daemons are called <b>Services</b>.</dd>
+        
+        <dt>Directive</dt>
+        <dd>The term directive is used to refer to a statement
+    or a record within a Resource in a configuration file that
+    defines one specific thing. For example, the <b>Name</b> directive
+    defines the name of the Resource.</dd>
+        
+        <dt>Director</dt>
+        <dd>The main Bacula server daemon that schedules and directs all
+    Bacula operations. Occassionally, we refer to the Director as DIR.</dd>
+        
+        <dt>Differential</dt>
+        <dd>A backup that includes all files changed since the last
+    Full save started. Note, other backup programs may define this differently.</dd>
+
+        <dt>File Attributes</dt>
+        <dd>The File Attributes are all the information
+    necessary about a file to identify it and all its properties such as
+    size, creation date, modification date, permissions, etc. Normally, the
+    attributes are handled entirely by Bacula so that the user never
+    needs to be concerned about them. The attributes do not include the
+    file's data.
+
+        <dt>File Daemon</dt>
+        <dd>The daemon running on the client
+    computer to be backed up. This is also referred to as the File
+    services, and sometimes as the Client services or the FD.
+        
+        <dt><a name="FileSetDef"></a> FileSet</dt>
+        <dd>A FileSet is a Resource contained in a configuration
+    file that defines the files to be backed up. It consists
+    of a list of included files or directories, a list of excluded files, and
+    how the file is to be stored (compression, encryption, signatures).
+    For more details, see the
+        <a href="rel-manual/director.html#FileSetResource">FileSet Resource definition</a>
+    in the Director chapter of this document.</dd>
+
+        <dt>Incremental</dt>
+        <dd>A backup that includes all files changed since the
+    last Full, Differential, or Incremental backup started. It is normally
+    specified on the <b>Level</b> directive within the Job resource
+    definition, or in a Schedule resourc. </dd>
+        
+        <dt><a name="JobDef"></a>Job</dt>
+        <dd>A Bacula Job is a configuration resource that defines
+    the work that Bacula must perform to backup or restore a particular
+    Client. It consists of the <b>Type</b> (backup, restore, verify,
+    etc), the <b>Level</b> (full, incremental,...), the <b>FileSet</b>,
+    and <b>Storage</b> the files are to be backed up (Storage device,
+    Media Pool). For more details, see the 
+        <a href="rel-manual/director.html#JobResource">Job Resource definition</a>
+        in the Director chapter of this document. </dd>
+
+        <dt>Monitor</dt>
+        <dd>The program that interfaces to the all the daemons
+    allowing the user or system administrator to monitor Bacula status.</dd>
+        
+        <dt>Resource</dt>
+        <dd>A resource is a part of a configuration file that
+    defines a specific unit of information that is available to Bacula.
+    For example, the <b>Job</b> resource defines all the properties of
+    a specific Job: name, schedule, Volume pool, backup type, backup
+    level, ...</dd>
+        
+        <dt>Restore</dt>
+        <dd>A restore is a configuration resource that
+    describes the operation of recovering a file (lost or damaged) from
+    backup media. It is the inverse of a save, except that in most
+    cases, a restore will normally have a small set of files to restore,
+    while normally a Save backs up all the files on the system. Of
+    course, after a disk crash, Bacula can be called upon to do
+    a full Restore of all files that were on the system. </dd>
+        
+        <dt>Schedule</dt>
+        <dd>A Schedule is a configuration resource that
+     defines when the Bacula Job will be scheduled for
+     execution. To use the Schedule, the Job resource will refer to
+     the name of the Schedule. For more details, see the <a
+     href="rel-manual/director.html#ScheduleResource">Schedule Resource
+     definition</a> in the Director chapter of this document. </dd>
+         
+        <dt>Service</dt>
+        <dd>This is Windows terminology for a <b>daemon</b> -- see
+    above. It is now frequently used in Unix environments as well.</dd>
+        
+        <dt>Storage Coordinates</dt>
+        <dd>The information returned from the
+    Storage Services that uniquely locates a file on a backup medium. It
+    consists of two parts: one part pertains to each file saved, and the
+    other part pertains to the whole Job. Normally, this information is
+    saved in the Catalog so that the user doesn't need specific knowledge
+    of the Storage Coordinates. The Storage Coordinates include the
+    File Attributes (see above) plus the unique location of the information on
+    the backup Volume. </dd>
+        
+        <dt>Storage Daemon</dt>
+        <dd>The Storage daemon, sometimes referred to as
+    the SD, is the code that writes the attributes and data to a storage
+    Volume (usually a tape or disk).</dd>
+        
+        <dt>Session</dt>
+        <dd>Normally refers to the internal conversation between
+    the File daemon and the Storage daemon. The File daemon opens a
+    <b>session</b> with the Storage daemon to save a FileSet, or to restore
+    it. A session has a one to one correspondence to a Bacula Job (see
+    above). </dd>
+        
+        <dt>Verify</dt>
+        <dd>A verify is a job that compares the current file
+    attributes to the attributes that have previously been stored in the
+    Bacula Catalog. This feature can be used for detecting changes to
+    critical system files similar to what <b>Tripwire</b> does. One
+    of the major advantages of using Bacula to do this is that
+    on the machine you want protected such as a server, you can run
+    just the File daemon, and the Director, Storage daemon, and Catalog
+    reside on a different machine. As a consequence, if your server is
+    ever compromised, it is unlikely that your verification database
+    will be tampered with.
+    <p>Verify can also be used to check that the most recent Job
+    data written to a Volume agrees with what is stored in the Catalog
+    (i.e. it compares the file attributes), *or it can check the
+    Volume contents against the original files on disk. </dd>
+        
+        <dt>*Archive</dt>
+        <dd>An Archive operation is done after a Save, and it
+    consists of removing the Volumes on which data is saved from active
+    use. These Volumes are marked as Archived, and many no longer be
+    used to save files. All the files contained on an Archived Volume
+    are removed from the Catalog. NOT YET IMPLEMENTED. </dd>
+        
+        <dt>*Update</dt>
+        <dd>An Update operation causes the files on the remote
+    system to be updated to be the same as the host system. This is
+    equivalent to an <b>rdist</b> capability. NOT YET IMPLEMENTED.
+    </dd>
+
+        <dt>Retention Period</dt>
+        <dd>There are various kinds of retention
+    periods that Bacula recognizes. The most important are the
+    <b>File</b> Retention Period, <b>Job</b> Retention Period, and the
+    <b>Volume</b> Retention Period. Each of these retention periods
+    applies to the time that specific records will be kept in the
+    Catalog database. This should not be confused with the time that
+    the data saved to a Volume is valid. <p>The File Retention Period
+    determines the time that File records are kept in the catalog
+    database. This period is important because the volume of the
+    database File records by far use the most storage space in the
+    database. As a consequence, you must ensure that regular
+    &quot;pruning&quot; of the database file records is done. (See
+    the Console <b>retention</b> command for more details on this
+    subject). <p>The Job Retention Period is the length of time that
+    Job records will be kept in the database. Note, all the File
+    records are tied to the Job that saved those files. The File
+    records can be purged leaving the Job records. In this case,
+    information will be available about the jobs that ran, but not the
+    details of the files that were backed up. Normally, when a Job
+    record is purged, all its File records will also be purged. <p>The
+    Volume Retention Period is the minimum of time that a Volume will be
+    kept before it is reused. Bacula will normally never
+    overwrite a Volume that contains the only backup copy of a file.
+    Under ideal conditions, the Catalog would retain entries for all
+    files backed up for all current Volumes. Once a Volume is
+    overwritten, the files that were backed up on that Volume are
+    automatically removed from the Catalog. However, if there is a very
+    large pool of Volumes or a Volume is never overwritten, the Catalog
+    database may become enormous. To keep the Catalog to a manageable
+    size, the backup information should removed from the Catalog after
+    the defined File Retention Period. Bacula provides the
+    mechanisms for the catalog to be automatically pruned according to
+    the retention periods defined. </dd>
+
+        <dt>Scan</dt>
+        <dd>A Scan operation causes the contents of a Volume or a
+    series of Volumes to be scanned. These Volumes with the information
+    on which files they contain are restored to the Bacula Catalog.
+    Once the information is restored to the Catalog, the files contained
+    on those Volumes may be easily restored. This function is
+    particularly useful if certain Volumes or Jobs have exceeded
+    their retention period and have been pruned or purged from the
+    Catalog. Scanning data from Volumes into the Catalog is done
+    by using the <b>bscan</b> program. See the <a href="rel-manual/progs.html#bscan">
+    bscan section</a> of the Bacula Utilities Chapter of this manual
+    for more details.</dd>
+
+        <dt>Volume</dt>
+        <dd>A Volume is an archive unit, normally a tape or
+    a named disk file where Bacula stores the data from one or more
+    backup jobs. All Bacula Volumes have a software label written to
+    the Volume by Bacula so that it identify what Volume it is really
+    reading. (Normally there should be no confusion with disk files,
+    but with tapes, it is easy to mount the wrong one).</dd>
+</dl>
+
+<h3>What Bacula is Not</h3>
+<b>Bacula</b> is a backup, restore and verification program and is not a
+complete disaster recovery system in itself, but it can be a key part
+of one if you plan carefully and follow the instructions included in the <a
+href="rel-manual/rescue.html"> Disaster Recovery</a> Chapter of this manual.
+<p>
+With proper planning, as mentioned in the Disaster Recovery chapter
+<b>Bacula</b> can be a central component of your disaster recovery
+system. For example, if you have created an emergency boot disk, a
+Bacula Rescue disk to save the current partitioning information of your
+hard disk, and maintain a complete Bacula backup, it is possible to
+completely recover your system from &quot;bare metal&quot;.
+<p>
+If you have used the <b>WriteBootstrap</b> record in your job or some
+other means to save a valid bootstrap file, you will be able to use it
+to extract the necessary files (without using the catalog or manually
+searching for the files to restore).
+
+<h3>Interactions Between the Bacula Services</h3>
+The following block diagram shows the typical interactions
+between the Bacula Services for a backup job. Each block
+represents in general a separate process (normally a daemon).
+In general, the Director oversees the flow of information. It also
+maintains the Catalog.
+<p style="text-align: center">
+        <img src="images/manual/flow.jpeg" border="0" alt="Interactions between Bacula Services" width="480" height="370">
+</p>
+        </td>
+</tr>
+</table>
+
+<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/en/pages/wxconsole.php b/docs/home-page/en/pages/wxconsole.php
new file mode 100644 (file)
index 0000000..b544c95
--- /dev/null
@@ -0,0 +1,3 @@
+<? require_once("inc/header.php"); ?>
+TODO!
+<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/fr/footer.php b/docs/home-page/fr/footer.php
deleted file mode 100644 (file)
index 286806a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-         <div>
-            <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
-              <?
-               if($_SESSION['user'] == "bukdebug")
-                  print_r($_SERVER);
-              ?>
-         </div>
-      </div>
-   </body>
-</html>
diff --git a/docs/home-page/inc/footer.php b/docs/home-page/inc/footer.php
deleted file mode 100644 (file)
index 286806a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-         <div>
-            <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
-              <?
-               if($_SESSION['user'] == "bukdebug")
-                  print_r($_SERVER);
-              ?>
-         </div>
-      </div>
-   </body>
-</html>
diff --git a/docs/home-page/inc/header.php b/docs/home-page/inc/header.php
deleted file mode 100644 (file)
index c8839ae..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<?
-   /**
-    * grab parms from URL
-    *
-    */
-   parse_str($_SERVER['QUERY_STRING']);
-
-   /**
-    * some settings
-    *
-    */
-   isset($page) || $page   = "home";               // default page to show
-   $page_directory  = "pages";              // directory with pages
-   $page_current    = "$page_directory/$page.php";
-
-
-   /**
-    * Login
-    *
-    */
-   session_start();
-   if(isset($_POST['username']) and isset($_POST['password'])) {
-           $user = $_POST['username'];
-           $pass = $_POST['password'];
-
-           if($user == $pass) {
-                   $_SESSION['user'] = $user;
-                   $_SESSION['logged_in'] = true;
-           }
-   }
-
-   /**
-    * Prepare links
-    */
-   $spath = dirname($_SERVER['SCRIPT_NAME']);
-   if(strlen($spath) < 2)
-           $spath = "";
-
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict //EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
-   <head>
-      <title> Bacula, the Network Backup Tool for Linux, Unix, and Windows </title>
-      <link rel="stylesheet" type="text/css" href="bacula.css" title="blueish">
-      <meta name="Description" content="Bacula a network backup and restore program">
-      <meta name="Keywords" content="Bacula, backup, restore, file backup">
-      <meta name="Copyright" content="Copyright (C) 2000-2007 Kern Sibbald">
-      <meta name="Trademark" content="Bacula (R) is a registered trademark of John Walker">
-   </head>
-
-   <body>
-
-   <!-- Top Search Bar -->
-   <div class="searchBar">
-   <table class="searchBar">
-   <tr>
-       <td style="text-align: left; vertical-align: middle; width: 50%">
-               Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows.
-       </td>
-       <td style="text-align: left; vertical-align: middle">
-           <img alt="English" src="images/english-flag.jpg">
-           &nbsp;&nbsp;&nbsp;
-         <a href='/fr'>
-           <img alt="Fran&ccedil;ais" src="images/french-flag.jpg">
-         </a>&nbsp;&nbsp;&nbsp;
-         <a href='/de'>
-           <img alt="Deutsch" src="images/german-flag.jpg">
-         </a>
-
-       </td>
-       <FORM method=GET  target="_blank" action=http://www.google.com/search>
-       <td style="text-align: right; vertical-align: middle">
-           <INPUT id="text" class="searchBar" type="text" name="q" size=20
-             maxlength=255 value="">
-          <INPUT id="button" class="searchBar" type="submit" name="sa" VALUE="Search">
-          <input type="hidden" name="domains" value="www.bacula.org">
-          <input type="hidden" name="sitesearch" value="www.bacula.org">
-       </td>
-       </FORM>
-   </tr>
-   </table>
-   </div>
-
-   <!-- Logo Bar -->
-   <div class="pageLogo">
-       <table class="pageLogo">
-         <tr>
-           <td style="text-align: left; vertical-align: middle">
-               <img alt="Bacula Logo" src="images/bacu_logo-red.jpg">
-           </td>
-         </tr>
-       </table>
-   </div>
-
-   <!-- User Bar - if logged in -->
-   <?
-   if($_SESSION['logged_in']) {
-      printf('<div class="userBar">');
-      printf('Welcome %s, <a style="color: white; text-decoration: none" href="/?page=logout">logout here</a>.', $_SESSION['user']);
-      printf('</div>');
-   }
-   ?>
-
-   <!-- Menu Left -->
-   <div class="menuLeft">
-
-        <!-- General -->
-        <div class="menuHead"> General </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=news"> News </a></li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=home"> Bacula Home </a></li>
-           <li class="menuItem"> <a href="dev-manual/What_is_Bacula.html"> What is Bacula? </a> </li>
-           <li class="menuItem"> <a href="dev-manual/Current_State_Bacula.html"> Current State of Bacula </a> </li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=testimonials"> Testimonials</a> </li>
-           <li class="menuItem"> <a href="http://sourceforge.net/projects/bacula"> SF Project Page </a> </li>
-           <li class="menuItem"> <a href="dev-manual/System_Requirements.html"> Requirements </a> </li>
-           <li class="menuItem"> <a href="dev-manual/Supported_Operating_Systems.html"> Operating&nbsp;Systems </a> </li>
-           <li class="menuItem"> <a href="dev-manual/Supported_Tape_Drives.html"> Tapedrives </a> </li>
-           <li class="menuItem"> <a href="dev-manual/Supported_Autochangers.html"> Autochangers </a> </li>
-           <li class="menuItem"> <a href="dev-manual/Bacula_Copyri_Tradem_Licens.html"> License </a> </li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=fsfe"> FSFE License </a></li>
-           </ul>
-        </div>
-
-        <!-- Documentation -->
-        <!-- files need a version -->
-        <div class="menuHead"> Documentation </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=documentation"> Documentation </a></li>
-           <li class="menuItem"> <a href="http://wiki.bacula.org">Wiki </a></li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=presentations"> Presentations </a></li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=presskits"> Press Kits </a></li>
-           </ul>
-        </div>
-
-        <!-- Downloads -->
-        <div class="menuHead"> Downloads </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727"> Current Files </a> </li>
-           <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727#files"> All Files </a> </li>
-           <li class="menuItem"> <a href="http://sourceforge.net/svn/?group_id=50727"> SVN Repository </a> </li>
-           </ul>
-        </div>
-
-        <!-- Support -->
-        <div class="menuHead"> Support </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=support"> Getting Support </a> </li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=bugs"> Bug Reports </a> </li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=professional"> Professional </a></li>
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=feature-request"> Feature Requests </a></li>
-           </ul>
-        </div>
-
-        <!-- Projects -->
-        <div class="menuHead"> Projects </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=projects"> Projects </a> </li>
-  <!--
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=vote"> Project Vote </a> </li>
-  -->
-           </ul>
-        </div>
-
-        <div class="menuHead"> Donations </div>
-        <div class="menuItem">
-           <ul class="menuitem">
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=makedonation"> Make a Donation </a> </li>
-  <!--
-           <li class="menuItem"> <a href="<? echo $spath ?>/?page=donations"> Donations Received </a> </li>
-  -->
-           </ul>
-        </div>
-        <div class="menuHead">
-        <div class="icons">
-           <a href="http://www.ukfast.net"><img src="images/bacula_ukfast_logo.gif" alt="www.ukfast.net"></a>
-           <!-- a href="http://validator.w3.org/check?uri=referer"><img src="images/valid-xhtml10.png" alt="valix w3c logo"></a -->
-           <!-- a href="http://jigsaw.w3.org/css-validator/validator?uri=<? echo $_SERVER['HTTP_REFERER']; ?>"><img src="images/vcss.png" alt="valid css logo"></a-->
-        </div>
-
-
-        </div>
-
-   </div>
-   
-   <div class="pageTopRight">
-           It comes by night and sucks the vital essence from your computers.
-   </div>
-
-   <div class="pageContent">
diff --git a/docs/home-page/index.php b/docs/home-page/index.php
deleted file mode 100644 (file)
index 804203d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?
-
-/**
- * load header, menu 
- *
- */
-require_once("inc/header.php");
-
-
-/**
- * load content
- *
- */
-if(is_file($page_current)) {
-        include_once($page_current);
-} else {
-   printf('
-      &nbsp;
-      An <b>ERROR</b> occurred:<br>
-      <p class="error">
-      The page <b>%s</b> isn\'t available.
-      </p>', $page);
-}
-
-
-/**
- * load footer
- *
- */
-require_once("inc/footer.php");
-
-?>
diff --git a/docs/home-page/news.txt b/docs/home-page/news.txt
deleted file mode 100644 (file)
index 45b4e64..0000000
+++ /dev/null
@@ -1,963 +0,0 @@
-Kern;;;9 Jan 2008;;20:30
-Bacula version BETA 2.2.8 Released
-Bacula version 2.2.8 source tar files as well as the Win32
-binaries are available in the bacula-beta and
-Win32-beta release areas of Source Forge
-
-Version BETA 2.2.8 is a bug fix to version 2.2.7:
-- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
-  Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
-;;;
-
-Kern;;;24 Dec 2007;;20:30
-Bacula version 2.2.7 Released
-Bacula version 2.2.7 source tar files as well as the Win32
-binaries are available in the Bacula release area of Source Forge
-
-Version 2.2.7 has several new features and several important bug fixes
-  since version 2.2.6:
-- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
-  1007, 1008.  For more details, please see the technotes-2.1 file.
-- Fixed a seg fault reported by Frank Sweetser that depended on
-  exact path lengths, but the problem was in bsnprintf.c
-- Double quoting include filenames (@xxx) in Bacula conf files is now
-  possible, thanks to a patch by Michael Stapelberg.
-- You can pipe input to include filenames (@|prog) by using a vertical
-  bar, thanks to the above patch.
-- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
-  Nerijus Baliunas.
-- Marc Cousins submitted a patch that permits building the PostgreSQL
-  driver with version 8.3.
-- The configure option --archivedir has been changed to --with-archivedir
-;;;
-Kern;;;9 Nov 2007;;15:25
-Bacula version 2.2.6 Released
-Bacula version 2.2.6 source tar files as well as the Win32
-binaries are available in the Bacula release area of Source Forge.
-
-This release is a minor fix upgrade to version 2.2.5,
-and we recommend that all users upgrade when they can.
-
-Version 2.2.6 is a minor bug fix realease to version 2.2.5
-- It fixes bugs: #1003, 942, 982, 990(response only), 991,
-  993, 986, 976.
-  - Fix bat crash wen it cannot connect to Director.
-  - Fix joblist failure bug in bat.
-;;;
-Kern;;;9 Oct 2007;;15:25
-Bacula version 2.2.5 Released
-Despite the fact that the Release Notes are rather short, the bug
-fixes represent quite a lot of work:
-
-Version 2.2.5 is a major bug fix release to version 2.2.4
-- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
-  964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
-  957, 908, 958, and 955.
-- It also improves listing performance problems in bat pointed
-  out by Chris Howells.
-;;;
-Kern;;;29 Sept 2007;;20:30
-A serious data loss bug in Bacula version 2.2.4 found and fixed
-
-This bug was very elusive and time consuming to track down.  It
-turned out to be a race condition that can lose the last one or
-two blocks of a Job, which can happen in rare cases only when
-running multiple simultaneous jobs when a volume fills and one
-Job finishes receiving the last data from the FD and at the same
-time a second job detects the end of the Volume.  The bug was
-introduced in version 2.0.0 and did not exist in version 1.38.x.
-If the bug is triggered, the data is lost (not written to the
-Volume), and it can occur for any backup job of any level under
-the conditions noted above.
-
-The bug is reported in the bugs database as bug #964, and just
-this morning I found and tested a fix, which is attached as a patch
-to the bug report.  The patch (2.2.4-lost-block.patch) is also
-uploaded to the bacula-patches 2.2.x release area.  This bug may
-also be part of the problems reported in bug #935 and possibly
-#903.
-
-Also in the bacula-patches 2.2.x area, you will find other
-patches that fixes bugs #953, 966, 967, 965, 958, 908, and
-955. Please refer to bugs.bacula.org for the details.
-
-Though this bug quite serious (data loss), it should be rare.
-However, we recommend everyone to apply the patch.
-;;;
-Kern;;;2007/9/14;;;14:30 
-Bacula version 2.2.4 Released 
-
-This version of Bacula is a minor bug release to version 2.2.3.
-It contains the following fixes:
-
-- Possible fix for authorization problems bug #953.
-- Possible fix for bug #908.
-- Add waits to multiple exit detection code to try to force pid
-  file to always be deleted.
-- Restore good dev.tar.gz to rescue set appropriate binary property.
-  This fixes bug #950.
-- Fix seg fault in error exit of acquire_for_read after unsuccessfully
-  trying to switch drives by checking for blocking before unblocking.
-  Fixes bug #906.
-- Cancel storage daemon in all cases where FD reports error. This
-  should fix virtually all cases of bug #920 and will ensure that Devices
-  are released as soon as possible.
-- Fix error message that was clobbered when Dir tells SD it does not
-  have write permission on Volume.  This should fix a minor point
-  in bug #942, but not the main problem.
-- Fix migration code to get correct Volume name with multiple volumes 
-  by skipping |.  Fixes bug #936.
-- Implement patch supplied by Landon to fix bug #944 where using
-  TLS with bconsole uses 99+% of the CPU.
-- Fix bug #946 about "bacula-dir -t" which doesn't works
-  as expected.
-- Using "m" in bconsole will show messages as in prior versions
-  and not memory usage.
-
-- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
-  program.
-;;;
-Kern;;;2007/9/9;;;14:30
-I regret to announce that there is a rather serious bug in Bacula.
-
-Bacula bug #935 reports that during a restore, a large number of files are 
-missing and thus not restored.  This is really quite surprising because we 
-have a fairly extensive regression test suite that explicitly tests for this 
-kind of problem many times.
-
-Despite our testing, there is indeed a bug in Bacula that has the following 
-characteristics:
-
-1. It happens only when multiple simultaneous Jobs are run (regardless of
-whether or not data spooling is enabled), and happens only when the
-Storage daemon is changing from one Volume to another  -- i.e. the
-backups span multiple volumes, and it only happens for Jobs writing
-to the same volume.
-
-2. It has only been observed on disk based backup, but not on tape.
-
-3. Under the right circumstances (timing), it could and probably does happen
-on tape backups.
-
-4. It seems to be timing dependent, and requires multiple clients to
-reproduce, although under the right circumstances, it should be reproducible
-with a single client doing multiple simultaneous backups.
-
-5. Analysis indicates that it happens most often when the clients are slow
-(e.g. doing Incremental backups).
-
-6. It has been verified to exist in versions 2.0.x and 2.2.x.
-
-7. It should also be in version 1.38, but could not be reproduced in testing,
-perhaps due to timing considerations or the fact that the test FD daemons
-were version 2.2.2.
-
-8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
-records are stored in the database.  (the JobMedia record generated during
-the Volume change contains the index of the new Volume rather than the
-previous Volume).  This will be described in more detail below.
-
-9. You can prevent the problem from occurring by either turning off multiple
-simultaneous Jobs or by ensuring that while running multiple simultaneous
-Jobs that those Jobs do not span Volumes.  E.g. you could manually mark
-Volumes as full when they are sufficiently large.
-
-10. If you are not running multiple simultaneous Jobs, you will not be
-affected by this bug.
-
-11. If you are running multiple simultaneous Jobs to tapes, I believe there is
-a reasonable probability that this problem could show up when Jobs are split
-across tapes.
-
-12. If you are running multiple simultaneous Jobs to disks, I believe there is
-a high probability that this problem will show up when Jobs are split across
-disks Volumes.
-
-13. The bug concerns only the Storage daemon so there is no need to update
-the clients, though I do recommend updating the Director when installing
-an updated Storage daemon.
-
-I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
-version 2.2.0, 2.2.1, and 2.2.2.  The patch has been tested only on version
-2.2.2 and passes all regression tests as well as the specific test that
-reproduced the problem. 
-
-The patch has now been confirmed to fix the problem reported, and Bacula
-version 2.2.3 has been released to Source Forge.
-
-For the technical details of the bug, please see: 
-
-  http://www.bacula.org/downloads/bug-935.txt
-
-;;;
-
-Kern;;;2007/8/11;;;14:30
-
-Bacula Version 2.2.0 has been released to Source Forge.         
-
-          Release Notes for Bacula 2.2.0 
-
-  Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
-  82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
-
-This Director and Storage daemon must be upgraded at the same time,
-but they should be compatible with all 2.0.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. There is
-no database upgrade needed from version 2.0.x to 2.2.0.
-
-Areas requiring caution or testing:
-- You must have the thread safe version of MySQL client libraries loaded
-  to build with MySQL enabled.
-- Volumes are pruned only when absolutely necessary -- this may cause
-  your database to grow compared to prior Bacula versions.
-- Solaris door and even port files are no longer restored (equivalent
-    to what we do with sockets).
-- SQLite is no longer supported for Solaris -- it fails too often with
-  bus errors.  SQLite3 should work on Solaris.
-- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
-  This makes it run 30 times faster, but increases the possiblity
-  of a corrupted database if your server shuts down unexpectedly.
-  The default behavior can be changed in src/version.h
-- Restore on Win32, and in particular on Vista is untested. Please
-  test before relying on it.  It should backup and restore reparse
-  points.
-- Win32 servers are untested, and very likely not to work.
-
-The major new features are:
-- Much faster insertion of attributes (somewhere around 10 times),
-  many thanks to Eric Bollengier and Marc Cousin. 
-- First release of bat (Bacula Administration Tool).  Note to build
-  bat you must explicitly enable it on the ./configure line, you
-  must have the Qt4 version 4.2 or later libraries loaded, the qwt
-  (Qt Graphics) package loaded, and qmake and the other Qt4 tools 
-  must be available. Most of the implementation was done by Dirk Bartley.
-- Red/Black restore in memory tree (500 times faster loading).
-- The Regex Where code to allow easier relocation of restored files 
-  thanks to Eric.
-- Socket level heartbeat for all connections (untested).
-- posix_fadvise() use in the FD to improve performance reduces
-  swapping due to opening/reading lots of files. Win32 equivalent
-  implemented.
-- Much improved Volume reservation code that should eliminate most
-  conflicts experienced in multiple drive autochangers.
-- Simpler locking in the SD in the reservation system.
-- Detection of file size/date change during backup if enabled.
-- New Recycle Pool feature -- thanks to Eric.
-- Efficient implementation of very large include/exclude lists.
-- Volumes are no longer pruned during 'status dir'
-- Pruning is now more efficient, and if a Volume is purged,
-  during pruning, it is immediately discovered.
-- License is now GPL v2 without modifications, fix a few copyright
-  mistakes made when adding FSFE copyright notice.
-
-New ./configure options:
-- --enable-bwx-console    
-- --enable-bat
-- --with-qwt=
-- --with-db-name=
-- --with-db-user=
-- --enable-batch-insert
-
-New bconsole commands:
-- exec
-- memory
-- update recyclepool
-- .sql
-- .api
-- .pwd (in restore tree)
-- restoreclient (keyword)
-- backupclient  (keyword)
-- regexwhere    (keyword)
-- update jobid  (new command)
-- recyclepool   (keyword) 
-
-New directives:
-- Heartbeat Interval (bconsole.conf)
-- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
-- TLS Allowed CN     (bacula-dir.conf in Client)
-- Regex Where        (bacula-dir.conf in Job)
-- Strip Prefix       (bacula-dir.conf in Job)
-- Add Prefix         (bacula-dir.conf in Job)
-- Add Suffex         (bacula-dir.conf in Job)
-- Recycle Pool       (bacula-dir.conf in Pool)
-- FailJobOnError     (bacula-dir.conf in RunScript)
-- CheckFileChanges   (bacula-dir.conf in FileSet)
-- StripPath          (bacula-dir.conf in FileSet)
-
-Other features or bug fixes:
-- Fixed bugs: 916, 910, 917, 914, 906, 907, 
-  842, 830, 893, 861, 888, 886, 807, 877, 872
-  885, 887, 864, 874, 882, 881, 863, 859, 
-  856, 854, 845, 847, 846, 809, 772, 
-  822, 825, 824, 808, 802, 797, 798, 795, 789, 791, 
-  788, 780, 763, 782, 612, 767, 775, 621, 772, 764, 
-  766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
-- Configure bat with --enable-bat. Define qwt libraries with
-  --with-qwt=<dir>. See Installation chapter of manual for details.
-- Create a depkgs-qt package that has both Qt4 and qwt, which are
-  needed to build bat. Most modern Linux systems will have both
-  these packages in the distro.
-- Storage overrides delete all previous storage definitions instead
-  of prepending.
-- One should be able to mount and unmount removable devices if the
-  Device resource has Removeable Media set and the mount and unmount
-  directives are defined.
-- ./configure will do a better job of searching for qwt libraries.
-- The Win32 version can no longer be shutdown from the tray monitor.
-  Use the command line or the Services panne.
-- Keep prune_volumes() from pruning the whole Scratch pool.
-- More debug output in status storage.
-- Correct moving a Scratch volume from pool to pool (some
-  critical columns were lost).
-- Different locking in reservations and despooling systems,
-  which means more micro-locking and less macro-locking, which
-  should give a lot more concurrency at the expense of slightly
-  (<0.1%) more overhead due to more locking/unlocking, but     
-  concurrent jobs should run much faster.
-- Additional drive reservation algorithm that should solve a lot of
-  the problems experienced with multiple drive autochangers.
-- Storage daemon status command enhanced to more clearly show Volume,
-  pool and media type when a job is waiting.
-- Made bsmtp work with more strict SMTP servers.
-- Detect doubly freed buffers in smartall.c
-- wx-console renamed to bwx-console (Fedora request)
-- gnome-console renamed to bgnome-console (Fedora request)
-- Migration preserves original job's FileSetId
-- Spooling implemented for migration jobs.
-- Config files can be read through a pipe, by specifying a leading |
-  in front of the configuration path/filename.
-- New memory command (bconsole) that will print the current Director's
-  memory usage, and an in use buffer dump.
-- Console name changed from *Console* to -Console- to accomodate Win32
-  filename restrictions.  
-- Corrected the Win32 ftruncate bug.
-- Additional version information added to Job reports.
-- New -8 option for bsmtp to specify UTF-8 encoding type.
-- bsmtp will no longer add < > to target (from, to, cc) if there
-  is already a < in the target.
-- Prefer Mounted Volumes extended to mean a volume that is being
-  mounted by another job.
-- Runscript timing set to same as version 1.38.11
-- New TLS Allowed CN directive(s) permitted.
-- New bconsole 'exec' command to run external script/command.
-- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
-- Drop from root done before database is opened.
-- Database user and name can be configured with:
-  --with-db-name=name --with-db-user=user
-- Turn on wait_for_drive in mtx-changer script.
-- Rework how bar codes are handled in mtx-changer script.
-  This appears to have been an unreported bug.
-- Updated nagios plugin supplied by Christian Masopust
-- Better restricted console ACL checking.
-- New Client Connect Wait directive in Storage daemon so that
-  users can configure how long SD waits for FD connection.
-- Bacula will no longer permit pruning of the currently running
-  job (note, if other jobs are running, they may be pruned).
-- Sockets are no longer restored.
-- dbcheck works in 300K chunks so will typically run faster.
-- Include/Exclude lists can now be efficiently handled for quite
-  large sizes -- tens of thousands of entries.
-- Several memory leaks in migration and database usage were fixed.
-- New console keyword restoreclient, which specifies the client to
-  which the restore will be sent. The client keyword specifies 
-  the backup client. The restoreclient keyword is optional if it is
-  not specified, the backup client will also be the restore client.
-- The disk file size is now checked to ensure that it agrees with the
-  catalog value before Bacula will append to the disk (same as tape
-  and DVD).
-
-;;;
-
-Kern;;;2007/3/6;;;14:30
-
-Bacula Version 2.0.3 has been released to Source Forge.
-This is a bug fix release to version 2.0.2.  If you are upgrading from
-a version older than 2.0.0, please be sure to read the important notes
-below.
-
-Also, please check the patches directory in the current SVN or the
-patches release section on Source Forge for important bug fixes to   
-this version.
-
-5Mar07
-kes  File migrate bug with Pool Occupancy using mediaid instead
-     of jobids.  Fixes bug #795.
-kes  Fix orphaned buffers in filed backup and verify due to
-     crypto buffers not freed during errors.  Fixes bug #789.
-04Mar07
-kes  Add smartctl call to bacula-sd.conf as an example of getting
-     tape alert info.
-02Mar07
-kes  Add Client Connect Wait to Storage daemon to permit users to
-     modify the time the SD waits for a FD connection.
-28Feb07 
-kes  Apply Command ACL filter to JobId list in restore command.
-kes  Correct typeo in var.c patch.
-27Feb07
-kes  Don't let Bacula prune File or Job records for the current Job.
-kes  Fix variable substitution pad + inc bug reported (with patch)
-     in bug #791.
-26Feb07
-kes  Correct SQLite log table index as reported by Luca Berra.
-24Feb07
-ebl  Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
-22Feb07
-kes  Fix a few places in lib/message.c where the open fd may
-     not be zeroed.
-21Feb07
-kes  Add LANG=C to autoconf/randpass so it works with languages other
-     than English.  Fixes bug #788.
-20Feb07
-ebl  Revert ClientRunBeforeJob as it was in 1.38.x
-     This fixes bug #780
-     You will not be able to generate Include/Exclude list any more.
-     If you want to use this, you can apply 
-     trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
-19Feb07
-kes  Restore of sockets created false error messages because Bacula
-     no longer restores sockets, but the code was still trying to
-     set the attributes on a non-existent file. Reported by a user.
-16Feb07
-kes  Fix encryption deblocking bug, which caused some restored files
-     to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
-kes  Add FD event sequence order prepared by Eric -- for RunScripts.
-kes  Fix 12am/pm bug as reported in bug #782.
-15Feb07
-kes  Add quick disconnect FD code from 2.1.4 to 2.0.3.  This code
-     causes the SD to release the FD as soon as the FD has sent
-     all the data to the SD. After that the SD will do any final
-     despooling (data and attributes) that are necessary. This
-     allows laptops to disconnect much quicker from the network 
-     after a backup.
-13Feb07
-kes  Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
-11Feb07
-kes  Optimize the use of the database a bit in the Status dir command.
-     Only open it when needed, ensure that if any previous database
-     was opened, it is closed.
-10Feb07
-kes  Modify dbcheck to handle orphaned JobMedia, Path, Filename,
-     and File records in 300K chunks to be more efficient. This
-     idea came from Juan Luis Frances (if I remember right).
-09Feb07
-kes  Update projects list.
-08Feb07
-kes  Fix dird/ua_cmds.c so that a cancel command checks if the
-     console is authorized to cancel the job.  This fixes bug 
-     #767.
-kes  Modify SD so that the VolCatJobs medium record is updated
-     at the beginning of a Job rather than the end.  This
-     fixes bug #775 where exceeding MaxVolJobs caused jobs
-     to fail.
-kes  Added a mutex around getting and setting Volume information
-     so that multiple simultaneous jobs will single thread.
-07Feb07
-     Switch to using Subversion
-kes  Remove src/pygtk-console/ from configure
-06Feb07
-kes  Delete src/lib/btree.c from win32 build, then add rblist.c
-     plus the entrypoints.
-kes  Apply patch supplied that corrects debug print
-     in canceling jobs for max run time.  Supplied as
-     part of bug #621, which was previously fixed.
-05Feb07
-kes  Test on job_canceled() and sd_msg_thread_done inside
-     loop starting the message thread to avoid a race condition.
-     Fixes bug #771.
-kes  Remove rl_catch_signal from console.c as it conflicted
-     with the header definition. Fixes bug #765.
-ebl  Fixes bug #766 about RunsOnClient = Yes (case sensitive)
-04Feb07
-kes  Clarify some stored/acquire messages to indicate if the
-     problem is with read or append.
-02Feb07
-kes  Fix memory leak with storage ids in cats/sql_get.c
-kes  Terminate watchdog earlier to avoid reference to released
-     memory -- reported by Jason Austin.
-kes  Move closing the database from jobq.c to the director daemon
-     termination routine. This fixes memory leaks for shadow jobs
-     (i.e. migration jobs).
-kes  Free up the unique jobid chain items in migrate.c.  This fixes
-     a memory leak problem.
-kes  Convert some ugly looking for statements to use foreach_alist
-     in findlib/find.c.  This will facilitate converting the structures
-     to use dlist (for large include/exclude lists).
-kes  Fix a bug in the btree.c and btree.h routines, then rename them
-     rblist and add them to be built in src/lib.  Include some new
-     methods written by Rudolf Cejka that make the code more readable
-     (hides some of the ugly casting).
-26Jan07 (back port)
-kes  Implement item #12 on project list -- quick release of FD by
-     the SD. This is noted in more detail above.
-
-;;;
-
-Kern;;;2007/1/28;;;14:30
-
-Bacula Version 2.0.2 released:
-28Jan08
-kes  Fix maxruntime bug #621.
-27Jan07
-kes  Get current main CVS .specs for RedHat, SuSE, Mandrake.
-26Jan07
-ebl  Implement the include JobID in spool file name project.
-kes  Reorder projects file in order determined by Jan 2007 vote.
-kes  Fix open of SQLite3 db where user does not have write permission
-     so that DIR does not crash. Fixes bug #761.
-25Jan07
-kes  Change 'Device not configured to autolabel' from INFO
-     to WARNING.
-kes  Fix jobq.c to restart failed jobs when Reschedule Times = 0
-     which should restart an indefinite # of times.
-kes  Fix configure --help to print --with-mysql[=DIR]. Same for
-     other DIR specifications.
-23Jan07
-rn   Fix msvc build problems. Fix bacula.dll exports for msvc build.
-     Fix path quoting in SQLite scripts.
-     Fix problems with SHGetFolderPath.
-19Jan07
-kes  Create patches/2.0.1-restart.patch. Fixes bug #755.
-18Jan07
-kes  Fix Job restart on error bug that promotes an Inc to a Full
-     backup.  This should fix bug #755.
-kes  Add qt-console and first cut of code.
-
-;;;
-
-Kern;;;2007/1/13;;;14:30
-
-Bacula Version 2.0.1 has been released to Source Forge.
-This is bug fix update to version 2.0.0 and contains
-the following fixes:
-
--    Fix Bacula->Documentation link on Win32 to point to index.html
-     instead of bacula.html. Fixed bug #750.
--    Return JobId in db_get_job_record() when JobId==0. This should
-     fix bug #741.
--    Do not release source pointers when restarting a failed job.
--    Add dynamic dll entry point for SHGetFolderPath to Win32 code.
-     This *should* fix bug #747.
--    Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
-     bug #742.
--    Modify USTORE constructor to set an empty store_source string, 
-     and don't copy the store_source string in a cancel.  Hopefully
-     this will fix Arno's seg fault, bug #744.
--    Add back code to disable conio in configure. Fixes bug #743.
--    Correct the Options scanner in the FD to correctly handle  
-     SHA1 option, which was eating the next option.  Reported by    
-     Sebastien Guilbaud.
--    Add code to indicate when the SD is spooling, spool wait, and 
-     despooling as requested by Alan Brown.
-
-;;;
-
-Kern;;;2007/1/4;;;14:30
-
-Bacula Version 2.0.0 has been released to Source Forge.
-
-There is an English Press Kit, written by Dan Langille at:
-   
-   http://www.bacula.org/about/press/presskit200.html.en
-
-and a German version, translated by Arno Lehmann at:
-
-   http://www.bacula.org/about/press/presskit200.html.de
-
-;;;
-   
-Kern;;;2007/1/4;;;14:31
-
-          Release Notes for Bacula 2.0.0
-
-  Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
-
-==== 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.  If you are using Bacula supplied
-  RPMs this is not necessary as the RPM does it automatically.
-  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
-  <bacula-source>/src/cats.  It is called:
-
-     ./update_bacula_tables
-
-  It is necessary to run it only once the first time you move to
-  a 2.0.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 new Win32 install procedure =====
-  For Win32 migrations from versions prior to 1.39.0 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.
-
-==== IMPORTANT miscellaneous ====
-- The Gnome console program (gconsole) no longer functions as it
-  should.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 Storage
-  daemon will automatically accept any valid Volume that you mount.
-- 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.
-- You *should* be able to use 1.38.x FDs with version 2.0.0 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.  
-- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
-  the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
-  kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
-  This problem may also be present in certain Fedora FC5 kernels.
-- If you have been using the data encryption feature of 1.39.x, please
-  be aware that certain combinations of encryption and other options
-  with version 1.39.0 through 1.39.26 created Volume data that cannot
-  be restored. We strongly recommend that anyone using encryption 
-  carefully review his/her backups and at a minium do a Full backup
-  with 1.39.28 of all encrypted data.  Robert Nelson has identified 
-  and fixed it as follows:
-     As of 1.39.27:
-        No filters = Works fine
-        Sparse = Works fine
-        Compression = Works fine
-        Encryption = Works fine
-        Sparse + Compression = Works fine
-
-        Sparse + Encryption = Restore broken
-        Sparse + Compression + Encryption = Restore broken
-        Compression + Encryption = Restore broken
-
-     As of 1.39.28:
-        Most combinations work, but some encrypted files are
-        not properly restored.
-
-     As of 1.39.30:
-        All combinations work fine except Sparse+Encryption.
-
-  Bottom line, if you are using data encryption, please test restoring
-  data to be sure it all works correctly.
-- 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.
-- If you previously run a Bacula version prior to 1.39.30, the JobMedia
-  data may not be correct for disk Volumes. This can cause incorrect
-  seeking in versions after 1.39.30. If you experience what appears to
-  be data I/O or integrity errors during restores, please add the
-  following directive to your disk DEVICE resource in the Storage
-  daemon conf file:
-
-    Block Positioning = no
-
-  This will turn off all seek requests during restores and avoid
-  this problem.
-- VSS for Windows clients is now enabled by default.
-- Do not unload autochanger when doing "update slots"
-- Implement mount command for autochanger, see manual.
-
-New Features in 2.0.0:
-- Turn on disk seek code for restores.
-- There is a partial but reasonable translation of the Bacula
-  messages for French.  To install it, first configure and build
-  Bacula, then as root run:
-
-    cd <bacula-source>/po
-    make install
-
-  If you have your locale set properly you will get the translated
-  messages.
-- Bacula now support Migration jobs that are documented in a new
-  Migration chapter in the manual
-  http://www.bacula.org/dev-manual/Migration.html
-- Data encryption is now implemented and is documented in
-  a new chapter of the manual at:
-  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.
-- 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, ...
-- The Director and Storage daemon have now been ported to Win32.
-  This code is working but should still be tested carefully
-  before putting into production.
-- 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 Thorsten Engel. However, if you are using
-  Volume Shadow Copy, please be careful to specify all the paths
-  in the bacula-fd.conf file using a full path notation including
-  the drive letter.
-- 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
-- SunOS ACLs should now work thanks to a patch from David Duchscher.
-- 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"
-  This can be used to preview the next scheduled job (and the
-  next tape to be used) on Fridays if there are no scheduled jobs during
-  the weekend.
-- From Eric Bollengier. One can now using the bconsole wait command do:
-   wait  (wait for all jobs to stop)
-   wait jobid=nn
-   wait jobuid=unique id
-   wait job=job-name
-- Volumes can now be set to Enable, Disable, or Archive. If they
-  are not enabled, Volumes will not be mounted.             
-  Implement update volume enable=(on|off|true|false|archived|0|1|2)
-- Add Catalog message destination in Messages resource that puts the
-  job report in the Log database table.
-- Writing/reading DVD Volumes is much more stable -- to the point
-  of being useful. Thanks to Richard Mortimer.
-- Add enable/disable job=<job-name>.  This command prevents
-  the specified job from being scheduled. Even when disabled,
-  the job can be manually started from the console.
-- The database Id records should be 32/64 bit independent now. 64 bits
-  can be enabled by changing one define and changing the appropriate
-  table variable. Normally, you need 64 bits only for FileId.
-- Relative path specifications (i.e. ../xxx) are now permitted in
-  the restore cd command.
-- When running multiple simultaneous jobs, most jobs that use spooling
-  will now finish faster due to a mutex optimization made by Eric
-  Bollengier.
-- Conf files containing UTF-8 marker at the head of the file as well as
-  conf files containing Window cr/lf and Mac cr line termination characters 
-  are now accepted thanks to Robert Nelson.
-- Windows tray status windows are scrollable and resizable.
-- Win32 external script execution is much more flexible -- handles
-  spaces in names better, ...
-- Lots of DVD fixes -- writing DVDs is now reported to work.
-- Fix opening of database in a restricted console to respect     
-  any Catalog ACL.
-- Much better automatic handling of multiple database catalogs in
-  the restore command.
-- 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.
-- Add -n option to bconsole to turn off conio -- used in bweb.
-- 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.
-- 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.
-- 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 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 -- device type directive
-  and mount, unmount directives.
-- 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. You must take much more care now to unmount
-  devices prior to removing tapes that Bacula has open or prior to
-  changing a magazine. Don't forget to do a mount afterwards or the
-  device will be blocked.
-- 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.
-- 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).
-- Integrate addition of line count limitation to bsmtp -l from
-  Sebastian Stark <stark at tuebingen.mpg.de>
-- 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.
-- 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.
-- 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.  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.
-- Improved Bacula rescue procedures -- see the Disaster Recovery
-  chapter of the manual
-- Add spooling/despooling info in status output of SD.
-- Add Comment field to llist of a volume.
-- Allow true/false in many but not all yes/no directives.
-- The Bacula source code is now copyrighted by the Free Software 
-  Foundation Europe. The Developer's Guide documents the new procedures,
-  and the LICENSE file has been updated.
-- Apply Jaime Ventura's patch that implements the Messages resource
-  Mail On Success directive.
-- The Client returns its Version string, which is printed in the Job
-  report.
-- The Client returns whether or not VSS and Encryption are used, which
-  are printed in the Job report.
-
-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"
-
-;;;
diff --git a/docs/home-page/pages/bugs.php b/docs/home-page/pages/bugs.php
deleted file mode 100644 (file)
index 0e0de72..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-        Bug Reporting
-        </td>
-</tr>
-<tr>
-    <td class="content">
-    Before reporting a bug, please be sure it is a bug and
-    not a request for support (see the Support tab to
-    the left).
-    <p>
-    Bacula now has a Mantis bug reporting system
-    implemented by Dan Langille and hosted on his computer. It is web based,
-    easy to use, and we recommend you give it a try. You can submit a bug
-    or review the list of open or closed bugs by visiting:
-
-<p style="text-align: center; font-size: 24px">
-        <a href="http://bugs.bacula.org">http://bugs.bacula.org</a>
-</p>
-
-To view the bug reports, you can login as user <b>anonymous</b> and
-password <b>anonymous</b>. The advantage of actually being subscribed
-is that you will be notified by email of any serious bugs and their
-resolution.
-
-To submit bug reports, you must create an account.  You must also use a
-browser running a US ASCII code page or UTF-8.  Some users running Win32
-IE with Windows Eastern European code pages have experienced problems
-interfacing with the system.
-
-<p>
-Most Bacula problems are questions of support, so if you are not
-sure if a problem you are having is a bug, see the support page
-on this site for links to the email lists.  However, once you have
-determined that a problem is a bug, you must either submit a bug
-report to the bugs database or send an email to the bacula-devel
-list, otherwise it is possible that the developers will never know
-about your bug and thus it will not get fixed.
-
-You should expect two things to be slightly different in our Bugs
-handling than many other Open Source projects.  First, we unfortunately
-cannot give support or handle feature requests via the bugs database,
-and second, we close bugs very quickly to avoid being overwhelmed.
-Please don't take this personally.  If you want to add a note to the bug
-report after it is closed, you can do so by reopening the bug, adding a
-bug note, then closing the bug report again, or for really simple
-matters, you can send an email to the bacula-devel email list.  If a
-developer closes a bug report and after everything considered, you are
-convinced there really *is* a bug and you have new information, you can
-always reopen the bug report.
-
-<h3>Information Needed in a Bug Report</h3>
-For us to respond to a bug report, we normally need the following
-as the minimum information, which you should enter into the appropriate
-fields of the bug reporting system:
-<ul>
-<li>Your operating system</li>
-<li>The version of Bacula you are using</li>
-<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
-<li>If you say &quot;it crashes&quot;, &quot;it doesn't work&quot; or something
-  similar, you should include some output from Bacula that shows this.</li>
-</ul>
-If you are having tape problems, please include:
-<ul>
- <li>The kind of tape drive you have </li>
- <li>Have you run the <b>btape</b> &quot;test&quot; command?</li>
-
-</ul>
-The first two of these items can be fulfilled by sending us a copy of
-your <b>config.out</b> file, which is in the main <b>Bacula</b> source
-directory after you have done your <b>./configure</b>.
-
-<p>In addition, we will sometimes need a copy of your Bacula
-configuration files (especially bacula-dir.conf).  If you think it is a
-configuration problem, please don't hesitate to send them if
-necessary.</td>
-</tr>
-<tr>
-   <td style="font-size: 14px; padding: 0px 20px 0px 20px">
-   Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
-   </td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/documentation.php b/docs/home-page/pages/documentation.php
deleted file mode 100644 (file)
index 36f952d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-  <tr>
-   <td class="contentTopic">
-   Bacula Documentation
-   </td>
-   </tr>
-   
-  <tr>
-   <td class="content">
-   <ul>
-   <li> <a href="dev-manual/Brief_Tutorial.html">Tutorial</a>
-    <br>(start here after installing Bacula)
-   </ul>
-   </td>
-   <td class="content">
-   <ul>
-         <li> <a href="<? echo $spath ?>/?page=news"> News </a>What's New in Bacula</a>
-           <br>(changes since the last major release)
-   </ul>
-   </td>
-   </tr>
-     
-   <tr>
-     <td class="content">
-   <ul>
-   <li> <a href="rel-manual/index.html" >HTML User's Manual</a>
-    <br>(released version of the User's Manual)<br></li>
-   <li> <a href="<? echo $spath ?>/rel-bacula.pdf">PDF User's Manual</a>
-    <br>(released version of the User's Manual)<br></li>
-   </ul>
-   </td>
-   <td class="content">
-   <ul>
-   <li> <a href="dev-manual/index.html" >HTML Development Manual</a>
-    <br>(User's manual for code under development)<br></li>
-   <li> <a href="<? echo $spath ?>/bacula.pdf">PDF Development Manual</a>
-    <br>(User's Manual for code under development)</li>
-   </ul>
-   </td>
-   </tr>
-   
-   <tr>
-     <td class="content">
-      <ul>
-      <li><a href="bacula-web/index.html">Bacula-web Guide</a>
-      <br>(Guide for the Bacula-web GUI application)</li>
-      </ul>
-     </td>
-
-     <td class="content">
-      <ul>
-      <li><a href="developers/index.html">HTML Developer's Guide</a>
-      <br>(Guide for Bacula developers)</li>
-      <li> <a href="<? echo $spath ?>/developers.pdf">PDF Developer's Guide</a>
-      <br>(Guide for Bacula developers)</li>
-      <li><a href="<? echo $spath ?>/FLA-bacula.en.pdf">PDF FLA</a>
-      <br>(Developer's Fiduciary License Agreement)</li>
-      </ul>
-     </td>
-   </tr>
-
-
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/donations.php b/docs/home-page/pages/donations.php
deleted file mode 100644 (file)
index b38f7c1..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<? require_once("inc/header.php"); ?>
-
-<table width="100%">
-<tr>
-        <td class="contentTopic">
-                Donations Received
-        </td>
-</tr>
-</table>
-<table width="90%" align="center">
-<tr>
-        <td class="content">
-        <table class="news" style="width: 99%">
-<?
-
-$max_news = 5;
-$news_counter = 0;
-
-// read file into an array and revert that
-// revert cause array_pop always gets the last element
-//
-$file = "donations.txt";
-$lines = array_reverse(file($file)) or
-        die("No newsfile!");
-
-// as long as there are lines ...
-//
-while(count($lines) > 0 && $news_counter < $max_news) {
-        // next line
-        $line = array_pop($lines);
-
-        // start of news
-        if(eregi("^[a-z0-9]+;;;", $line)) {
-                // news header
-                list($author,$date,$time) = explode(";;;",$line);
-
-                // news subject
-                $subject = array_pop($lines);
-                printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
-                printf('<tr><td class="newsContent"><pre class="newsContent">');
-
-                continue;
-        }
-
-        // end of news
-        if(eregi("^;;;", $line)) {
-                printf('</pre></td></tr>');
-                printf('<tr>');
-                printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
-                printf('</tr>');
-                printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
-                $news_counter++;
-                continue;
-        }
-
-        // news content
-        printf('%s', $line);
-}
-?>
-        </table>
-        </td>
-</tr>
-</table>
-<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/pages/feature-request.php b/docs/home-page/pages/feature-request.php
deleted file mode 100644 (file)
index b9f3e19..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-   <td class="contentTopic"> Feature Requests </td>
-</tr>
-<tr>
-   <td class="content">
-
-In the past, users informally submitted feature requests by email, and 
-I (Kern) collected them, then once a version was released, I would publish the
-list for users to vote on.
-<p>
-Now that Bacula has become a bigger project, this process has been 
-formalized a bit more. The main change is for users
-to carefully think about their feature, and submit it on a feature
-request form. A mostly empty form is shown below along with an 
-example of an actual filled in form. A text copy of the form can
-be found in the <b>projects</b> file in the main source directory
-of the Bacula release. That file also contains a list of all the
-currently approved projects and their status.
-<p>
-The best time to submit a Feature Request is just after a release when
-I officially request feature requests for the next version. The worst
-time to submit a feature request is just prior to a new release (we are
-very busy at that time).  To actually submit the Feature request,
-fill out the form, and submit it to both the bacula-users and
-the bacula-devel email lists. It will then be openly discussed.
-<p>
-Once the Feature Request has beeen adequately discussed, I will
-either reject it, approve it, or possibly request some
-modifications.  If you plan to implement the feature or donate
-funds to have it implemented, this is important to note,
-otherwise, the feature, even if approved, may wait a long time
-for someone to implement it.
-<p>
-Once the Feature request is approved, I'll add it to the projects
-file, which contains a list of all open Feature Requests.  The projects
-file is updated from time to time
-<p>
-The current (though possibly somewhat old) list of projects can also
-be found on the Web site by clicking on the Projects menu item.
-                     
-
-<h3>Feature Request Form</h3>
-<pre>
-Item n:   One line summary ...
-  Origin: Name and email of originator.
-  Date:   Date submitted (e.g. 28 October 2005)
-  Status:
-
-  What:   More detailed explanation ...
-
-  Why:    Why it is important ...
-
-  Notes:  Additional notes or features ...
-
-</pre>
-
-<h3>An Example Feature Request</h3>
-<pre>
-Item 1:   Implement a Migration job type that will move the job
-          data from one device to another.
-  Date:   28 October 2005
-  Origin: Sponsored by Riege Sofware International GmbH. Contact:
-          Daniel Holtkamp <holtkamp at riege dot com>
-  Status: Partially coded in 1.37 -- much more to do. Assigned to
-          Kern.
-
-  What:   The ability to copy, move, or archive data that is on a
-          device to another device is very important.
-
-  Why:    An ISP might want to backup to disk, but after 30 days
-          migrate the data to tape backup and delete it from
-          disk.  Bacula should be able to handle this
-          automatically.  It needs to know what was put where,
-          and when, and what to migrate -- it is a bit like
-          retention periods.  Doing so would allow space to be
-          freed up for current backups while maintaining older
-          data on tape drives.
-
-  Notes:  Migration could be triggered by:
-           Number of Jobs
-           Number of Volumes
-           Age of Jobs
-           Highwater size (keep total size)
-           Lowwater mark
-
-</pre>
-
-</td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/fsfe.php b/docs/home-page/pages/fsfe.php
deleted file mode 100644 (file)
index ce2dd46..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-  <tr>
-   <td class="contentTopic">
-   The Free Software Foundation Europe License
-   </td>
-   </tr>
-
-   
-   <tr>
-     <td class="content">
-
-   The Bacula project has assigned its copyright to the Free Software Foundation
-   Europe e.V. in a fiduciary relationship that permits the FSFE to
-   safeguard the Bacula software against abuse while allowing the project
-   to continue without the administrative burden of maintaining the
-   copyright paper work.
-   <p>
-   If you contribute more than a few lines of code or documentation to the
-   Bacula project, we ask you to complete the copyright Fiduciary License
-   Agreement (link provided below).  This is the same agreement that I (Kern)
-   and the other developers have signed to transfer our copyrights to the
-   FSFE.
-   <p>
-   Filling it out is really quite simple.  Please make two copies,
-   then put your name and mailing address on the first page and
-   date it.
-   <p>
-   On the third page after &quot;the author&quot; put your name and the
-   other information requested. This is simply to uniquely identify
-   you.  
-   <p>
-   If you are employed and you do Bacula work while at work
-   or your employer has the rights to your work (often the case),
-   please put your employer's information here.
-   <p>
-   On the fourth page, you can simply put &quot;All code and documentation
-   contributed to the Bacula.org project&quot; or if you wish to be more
-   specific please do so.
-   <p>
-   Thanks for taking the time to complete and send the FLA in.
-   <p>
-   <ul>
-   <li> <a href="FLA-bacula.en.pdf" >PDF of FSFE Fiduciary License Agreement</a>
-    </li>
-   </ul>
-   </td>
-   <td class="content">
-   <ul>
-   </ul>
-   </td>
-   </tr>
-   
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/home.php b/docs/home-page/pages/home.php
deleted file mode 100644 (file)
index 8ec65ae..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-   <td class="contentTopic">
-      Bacula&reg; - The Network Backup Solution
-   </td>
-</tr>
-<tr>
-  <td class="content">
-     <b>Bacula</b> is a set of computer programs that permit you
-     (or the system administrator) to manage backup, recovery,
-     and verification of computer data across a network of
-     computers of different kinds.<br>
-
-     <br>     
-     <b>Serious Bug</b> - All users should read <a href="?page=news">
-     the news item</a> regarding a serious bug found in version 2.2.4 and
-     fixed with a patch the 29th of Sept 2007.  The patch is in all
-     subsequent releases. Please subscribe to the 
-     <a href="?page=maillists">announce mailing list</a> to be kept informed.<br>
-
-     <br>
-     In technical terms, it is a <b>network based backup program</b>.<br>
-
-     <br>
-     Bacula is relatively easy to use and efficient, while
-     offering many advanced storage management features that make
-     it easy to find and recover lost or damaged files.<br> 
-
-     <br>
-     Most of the <b>Bacula</b> source code is released under the
-     <b>GPL</b> version 2 license.  If you wish additional
-     details, please follow the License link to your left.<br>
-
-     <br>The Documentation link takes you to a page where you
-     can access all the available Bacula documentation (HTML,
-     PDF, and TGZ) both for the officially released version 
-     and for the current code under development in the Source
-     Forge SVN. The development version of the manual typically has
-     more documentation, but may also document new features that are
-     not in the released version.  The Developer's Guide
-     presents important information for users who want to
-     contribute to the Bacula project.<br>  
-        
-     <br> Bacula is Hosted on
-     SourceForge at <a href="http://sourceforge.net/projects/bacula">
-     http://sourceforge.net/projects/bacula </a> where you can
-     download the software.<br> <br> You may also use
-     the links on the left side of this page for more
-     information.  In particular, Current Files link takes
-     you to the currently available downloads, and the All
-     Downloads link takes you to a list of all files ever
-     released to SourceForge.
-  </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/license.php b/docs/home-page/pages/license.php
deleted file mode 100644 (file)
index 9cb6e68..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                Bacula Copyright, Trademark, and Licenses
-        </td>
-</tr>
-<tr>
-  <td class="content">
-     There are a number of different licenses that are used in
-     Bacula.
-     <h3>GPL</h3>
-     The vast bulk of the code is released under the
-
-     <a href="rel-manual/gpl.html">GNU General Public License version 2.</a>
-     Most of this code is copyrighted:
-     Copyright (C) 2000-2007 Free Software Foundation Europe, e.V.
-     <p>Portions may be copyrighted by other people (ATT, the
-     Free Software Foundation, ...).
-     <h3>LGPL</h3>
-     Some of the Bacula library source code is released under the
-     <a href="rel-manual/lesser.html">GNU Lesser General Public License.</a>
-     This permits third parties to use these parts of our code in
-     their proprietary programs to interface to Bacula.
-     <h3>Public Domain</h3>
-     Some of the Bacula code has been released to the public domain.
-     E.g. md5.c, SQLite.
-     <h3>Trademark</h3>
-     Bacula<sup>&reg;</sup>is a registered trademark of John
-     Walker.
-
-     <p>We have done this to ensure that any variant of Bacula will
-     be exactly compatible with the program that we have released.
-     The use of the name <b>Bacula</b> is restricted to software systems
-     that agree exactly with the program presented here.
-     </p>
-  </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/listlic.php b/docs/home-page/pages/listlic.php
deleted file mode 100644 (file)
index 217dad0..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                Professional Support for Bacula
-        </td>
-</tr>
-<tr>
-  <td class="content">
-    The people listed are <b>independent contractors</b>.<br>
-    We can't take responsibility for their actions when you hire them,
-    but we would appreciate feedback positive or negative.<br>
-    <br>
-    Listing on the Bacula Professional page is offered as a
-    <b>service</b>, <b>without</b> any guarantees.<br>
-    <br>
-    We reserve the right to decide with reason who is
-    added/removed from the web page.<br> 
-    To be listed, you must have some tangible connection with and
-    knowledge of Bacula (i.e. developer, contributed
-    code/patches, Bacula user and subscribed to bacula-users, or
-    bacula-devel, and preferably a Web site ...).<br>
-    <br>
-    People listed here agree to update their contact information
-    on a regular basis.<br> Anyone listed with incorrect
-    information is subject to removal.<br> <br> If you want to be
-    listed on the page, please get in contact with Kern
-    Sibbald.<br>
-  </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/login.php b/docs/home-page/pages/login.php
deleted file mode 100644 (file)
index 31690ee..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<? require_once("inc/header.php"); ?>
-
-<?
-?>
-
-<div class="login">
-<form action="/?page=login" method="post">
-       <table cellpadding="5px" style="background: #749aba; color:white; border: 15px #002244 solid; padding: 15px" align="center">
-       <tr>
-               <td>User:</td>
-               <td><input type="text" name="username" size="10" maxsize="10"></td>
-       </tr>
-       <tr>
-               <td>Pass: </td>
-               <td><input type="password" name="password" size="10" maxsize="10"></td>
-       </tr>
-       <tr>
-               <td style="text-align: right" colspan="2"> <input style="border: 1px dotted white" type="submit" value="Login"> </td>
-       </tr>
-       </table>
-</form>
-</div>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/logout.php b/docs/home-page/pages/logout.php
deleted file mode 100644 (file)
index 63bd3f8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<? require_once("inc/header.php"); ?>
-
-<?
-?>
-
-<div class="login">
-       <? session_destroy(); ?>
-       <META HTTP-EQUIV=Refresh CONTENT="2; URL=/">
-       You have officially been pimp^Wlogged out.
-</div>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/maillists.php b/docs/home-page/pages/maillists.php
deleted file mode 100644 (file)
index c65fcc8..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                Email Lists
-        </td>
-</tr>
-<tr>
-        <td class="content">
-
-<b>Bacula</b> has a number of email lists which are described below with
-links to subscribe, unsubscribe, or modify your account.
-For general information subscribing to or unsubscribing from these lists, please see
-<a href="http://sourceforge.net/mail/?group_id=50727">Bacula Mailing Lists at SourceForge</a>.
-<p>For email archives see the bottom of this page.</p>
-
-Source Forge has rather strict email requirements in order to
-try to minimize the large quantity of spam that the lists receive every day.
-These are mesures that they have implemented, and over which we have no
-control.
-<p>
-If you are having problems subscribing or sending email to a Bacula list,
-please, read the following: <a href="http://sourceforge.net/docman/display_doc.php?docid=6695&group_id=1">
-SourceForge.net: Email Problems: Spam, Bounces, Unreceived Messages</a>, then
-if you are still having problems send a support request to Source Forge.
-Source Forge requires the person affected submit his/her own support request;
-the Bacula project is not permitted to do so on your behalf.  
-<p>
-One item they do not mention in the above referenced document is grey listing.
-If you are using grey listing, you are likely to have problems with the Source
-Forge email lists.  The solution is to whitelist their sending IPs.  You might
-want to whitelist their whole zone (66.35.250.0/24) as I (Kern) have done, but
-if you are more conservative, I found only two of their IPs were sending email
-(66.35.250.225 and 66.35.250.206).  If you grey list individual Source Forge
-IP addresses, please be sure to check your logs to verify the addresses they
-use for you.
-
-<h3>bacula-announce</h3>
-The <b>bacula-announce</b> list is a read only low volume list for those
-users who wish to be notified when there are important events
-(important bugs, new releases, ...). We recommend that all
-users subscribe to this list. Do so by following the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-announce">
-Bacula Announce List Subscription/Unsubscription/Modification</a>.
-Please do not send email directly to this list.
-
-<p>It is also possible to get email notification whenever a new package
-is released on SourceForge. This is accomplished by going to
-the <a href="http://sourceforge.net/projects/bacula">Bacula SourceForge
-Project</a> page and clicking on the little letter or mail icon
-<img src="images/mail16d.png" alt="" width="15" height="15"> under the heading <b>Monitor</b> in the
-row corresponding to the package you want to monitor.
-</p>
-
-<h3>bacula-users</h3>
-The <b>bacula-users</b> list is the general forum to
-ask questions about Bacula or respond to questions
-from other users. The volume on this list is generally
-moderate, but can vary. All users are encouraged to subscribe
-and to participate.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-users">Bacula Users List Subscription/Unsubscription/Modification</a>.
-<p>
-To send an email to the Bacula Users List, use the following
-address: <b>bacula-users at lists.sourceforge.net</b>.
-The previous address was modified to prevent easy use by spammers. To use it,
-you must replace the <b>at</b> with an @ symbol.
-</p>
-
-<h3>bacula-devel</h3>
-The <b>bacula-devel</b> list is for those users who wish to
-communicate directly with the developers. The email volume
-is usually quite low (several emails per day), but can vary.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe, please follow this link:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-devel">
-Bacula Developers List Subscription/Unsubscription/Modification</a>.
-<p>
-To send an email to the Bacula Developers List, use the following
-address: <b>bacula-devel at lists.sourceforge.net</b>.
-The previous
-address was modified to prevent easy use by spammers. To use it,
-you must replace the <b>at</b> with an @ symbol.
-</p>
-
-<h3>bacula-bugs</h3>
-The <b>bacula-bugs</b> list is a read only
-list for those users who wish to be notified about new bugs
-registered at: <a href="http://bugs.bacula.org">
-http://bugs.bacula.org</a>. Please do not send email directly
-to this list bug file a bug report in the bugs database mentioned
-above. All email to this list other than from the bugs system itself
-is automatically discarded.
-
-To subscribe, follow follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-bugs">
-http://lists.sourceforge.net/lists/listinfo/bacula-bugs</a>.
-
-<h3>bacula-beta</h3>
-The <b>bacula-beta</b> list is a read only
-list for those packagers or users who wish to be notified
-when a new release is in preparation or is ready.
-This list is also used for discussions on running regression
-scripts.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe, follow follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-beta">
-http://lists.sourceforge.net/lists/listinfo/bacula-beta</a>.
-
-
-<h3>bacula-commits</h3>
-The <b>bacula-commits</b> list is a read only
-list for those users who wish to be receive a diff of each
-commit to the SVN. Please do not email directly to this list.
-If you do commits, please subscribe your Source Forge name to this 
-list.  Any mail from non-subscribed users is automatically discarded.
-
-You may subscribe by following the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-commits">
-http://lists.sourceforge.net/lists/listinfo/bacula-commits</a>.
-
-
-<h3>Archives</h3>
-Most of the above email lists are archived on Source Forge, but they are
-also archived on Gmane, which has better search facilities. The
-Gmane archives are at: <a href="http://news.gmane.org/search.php?match=bacula">
-http://news.gmane.org/search.php?match=bacula</a>.
-
-<p>
-The lists are also archived at
-<a href="http://marc.info/">Mailing list ARChives (MARC)</a>.
-<ul>
-<li><a href="http://marc.info/?l=bacula-announce&r=1&w=2">Announce</a></li>
-<li><a href="http://marc.info/?l=bacula-beta&r=1&w=2">BETA</a></li>
-<li><a href="http://marc.info/?l=bacula-bugs&r=1&w=2">Bugs</a></li>
-<li><a href="http://marc.info/?l=bacula-commits&r=1&w=2">Commits</a></li>
-<li><a href="http://marc.info/?l=bacula-devel&r=1&w=2">Devel</a></li>
-<li><a href="http://marc.info/?l=bacula-users&r=1&w=2">Users</a></li>
-</ul>
-        </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/makedonation.php b/docs/home-page/pages/makedonation.php
deleted file mode 100644 (file)
index 5802591..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-
-<? require_once("inc/header.php"); ?>
-
-<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
-<input type="hidden" name="business" value="projects@bacula.org">
-<input type="hidden" name="tax" value="0">
-<input type="hidden" name="bn" value="PP-DonationsBF">
-<input type="hidden" name="lc" value="US">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
-</form>
-
-<table>
-<tr>
-        <td class="contentTopic">
-        Contributing to the Bacula Project
-        </td>
-</tr>
-<tr>
-    <td class="content">
-    Although one talks about Free Software, in fact, Open Software such
-    as Bacula was not developed without some cost. The software
-    may be free for the user, but it wasn't free for the developer
-    or developers, either in terms of time or in terms of financial
-    cost.
-
-    For example, since beginning work on the Bacula project in
-    January 2000 until now (August 2006), I (Kern) have spent
-    approximately $8000 per year for computers, tape drives,
-    communications expenses, electricity, software licenses, and
-    other expenses.  I am not complaining and am pleased to have
-    been able to afford these expenditures.  In addition, have no
-    desire to have my past expenses reimbursed.
-
-    Bacula is now a fairly mature product, and to ensure its long
-    term survival, I believe it is time that Bacula begins to
-    stand on its own, both financially and for the development, 
-    which is why we began accepting donations or project support
-    in November 2005.
-    <p>
-    There are ways you can contribute to the Bacula
-    project, some of which are: ideas, user support,
-    documentation review, translation, programming and
-    contributing code, testing the new releases, hosting
-    services, testing machines, donating needed equipment, and
-    financial support.
-
-    Previously all but the last one (financial support) were possible.
-    It is now possible for you to contribute financial aid
-    the Bacula project.  All funds collected will be used to help
-    further the Bacula project by covering out of pocket expenses
-    incurred by the project (no salaries).  Examples are, administrative
-    fees, hardware, software licenses (yes Micro$oft), and possibly a
-    portion of travel/conference expenses.
-
-    <p>
-    Contributions may not be US tax deductible as Bacula is
-    based in Switzerland. 
-    <p>
-    If you are a government or for-profit corporation and cannot
-    make &quot;donations&quot;, please consider paying a (non-obligatory)
-    binary license fee for any Bacula built binaries that you download.
-    By making these pre-built, pre-tested binaries available, we are
-    providing users who download them with an extra service, which merits
-    careful consideration for making a contribution or paying a 
-    &quot;license fee&quot;.
-    <p>
-    If you are a corporation and cannot make donations and don't want
-    to pay a binary license fee, you can request an invoice for
-    Bacula Project development.  Please see below for how to do this.
-
-    <p>
-    To make a contribution, please click on the donate button at
-    the top of the screen, and your transaction will be secured
-    and confirmed directly by PayPal.  If you contribute, or have
-    any questions, please send me an email directly: kern at
-    sibbald dot com.
-
-    <p>
-    If you need an invoice, I can send you one, but in order to limit my
-    administrative work, I kindly request you to make a donation of at least
-    $200 before requesting an invoice. To obtain one, simply email me the exact
-    name to appear on the invoice as well as the mailing address, the amount
-    you want to contribute, and the project you are supporting (or simply
-    Bacula development).
-
-    <p>
-    The Bacula web site has a &quot;Donations Received&quot; page where
-    you can have your company name, your name, and the amount (or any
-    combination of those) listed. You must explicitly request to be listed. 
-    Do so by sending an email to: kern at sibbald dot com after you have
-    made the payment.
-
-    <p>Although there is one link to our ISP, who we thank for providing the
-    hosting service, we do not provide any links to other sites other than
-    on the Professional page.
-                                    
-<p>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/news.php b/docs/home-page/pages/news.php
deleted file mode 100644 (file)
index 9aab65e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<? require_once("inc/header.php"); ?>
-
-<table width="100%">
-<tr>
-       <td class="contentTopic">
-               News
-       </td>
-</tr>
-</table>
-<table width="90%" align="center">
-<tr>
-       <td class="content">
-       <table class="news" style="width: 99%">
-<?
-
-$max_news = 5;
-$news_counter = 0;
-
-// read file into an array and revert that
-// revert cause array_pop always gets the last element
-//
-$file = "news.txt";
-$lines = array_reverse(file($file)) or
-       die("No newsfile!");
-
-// as long as there are lines ...
-//
-while(count($lines) > 0 && $news_counter < $max_news) {
-       // next line
-       $line = array_pop($lines);
-
-       // start of news
-       if(eregi("^[a-z0-9]+;;;", $line)) {
-               // news header
-               list($author,$date,$time) = explode(";;;",$line);
-
-               // news subject
-               $subject = array_pop($lines);
-               printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
-               printf('<tr><td class="newsContent"><pre class="newsContent">');
-
-               continue;
-       }
-
-       // end of news
-       if(eregi("^;;;", $line)) {
-               printf('</pre></td></tr>');
-               printf('<tr>');
-               printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
-               printf('</tr>');
-               printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
-               $news_counter++;
-               continue;
-       }
-
-       // news content
-       printf('%s', $line);
-}
-?>
-       </table>
-       </td>
-</tr>
-</table>
-<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/pages/presentations.php b/docs/home-page/pages/presentations.php
deleted file mode 100644 (file)
index 248570e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-  <tr>
-   <td class="contentTopic">
-   Bacula Presentations
-   </td>
-   </tr>
-   
-   <tr>
-     <td class="content">
-   <ul>
-   <li> <a href="presentations/Bacula-FOSDEM-talk-25Feb07.pdf" >PDF FOSDEM Slide Show</a>
-    <br>Slide Show Presented at FOSDEM 2007<br></li>
-   </ul>
-   </td>
-   <td class="content">
-   <ul>
-   </ul>
-   </td>
-   </tr>
-   
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/presskits.php b/docs/home-page/pages/presskits.php
deleted file mode 100644 (file)
index 63d137d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-  <tr>
-   <td class="contentTopic">
-   Bacula 2.2.0 Press Information
-   </td>
-   </tr>
-
-   <tr>
-   <td class="content">
-
-   <h3>Bacula 2.2.0 Press Information</h3>   
-   <ul>
-   <li> <a href="about/press/presskit220.html.en" >Press Kit</a></li>
-   <li> <a href="/rel-manual/Bacula_Freque_Asked_Questi.html" >Frequently Asked Questions</a></li>
-   </ul>
-
-   <h3>Press Kit in Other Languages</h3>
-
-   <ul>
-   <li> <a href="about/press/presskit220.html.en" >Catalan</a></li>
-   <li> <a href="about/press/presskit200.html.fr" >French</a></li>
-   <li> <a href="about/press/presskit200.html.de" >German</a></li>
-   <li> <a href="about/press/presskit200.html.es" >Spanish</a></li>
-   </ul>
-   </td>
-   </tr>
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/professional.php b/docs/home-page/pages/professional.php
deleted file mode 100644 (file)
index a795a19..0000000
+++ /dev/null
@@ -1,460 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-    <td class="contentTopic">
-       Professional Support for Bacula
-    </td>
-</tr>
-<tr>
-    <td class="content">
-       The following people are independent contractors. Each has worked
-       with Bacula, and we are pleased to list their names here as a service, but
-       without any guarantees.<br>
-       <br>
-       Please read that short 'license' for further details: <a href="?page=listlic">Listing license</a><br>
-       All names have been reviewed and approved. <br>
-       <br>
-       All email-addresses are extended with a 'NOSPAM'-tag, please remove it before sending an email.<br>
-    </td>
-</tr>
-<tr>
-   <td class="content">
-   <table align="center">
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Alixen
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@alixen.fr">Gilles Polart-Donat</a><br>
-                 20 rue Jean Rostand<br>
-                 91400 Orsay, France<br>
-                 +33 01 60 19 72 31<br>
-                 <br>
-                 <a href="http://www.alixen.fr">http://www.alixen.fr</a>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Arden Group Inc
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:rberryNOSPAM@ardengrp.com">Roger Berry</a><br>
-                 5026 NE Clackamas<br>
-                 Portland, OR 97213 USA<br>
-                 +1(971)223-3987<br>
-                 <br>
-                 <a href="http://www.ardengrp.com">http://www.ardengrp.com</a><br>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Axiom Networking
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:ajordanNOSPAM@draftathome.com">Angus Jordan</a><br>
-                 9235 215th St, Langley BC, Canada<br>
-                 +1-604-888-6162<br>
-                 <br>
-                 We offer all types of IT related support services.  Platform support:  Linux,<br>
-                 Windows 2000/2003 etc.  Lots of experience with Bacula, DBMail, Nagios,<br>
-                 Postfix, Qmail, qpopper, BIND (8/9), and MANY others.<br>
-                 <br>
-                 <a href="http://www.axiomnetworking.ca">http://www.axiomnetworking.ca</a><br>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Bayer Technology Group
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:jbayerNOSPAM@BayerTechnologyGroup.com"> Jonathan B Bayer</a><br>
-                Bayer Technology Group, 23 Exeter Rd., East Windsor, NJ 08520 USA<br>
-                 +1 (609) 632-1200<br>
-                 +1 (609) 658-9408 (mobile)<br>
-                 <br>
-                 Our focus is on assisting and providing high
-                 quality IT services to individuals, small businesses and
-                 organizations with computer and information technology needs,
-                 but who often don't need or have a budget for a full time IT
-                 staff.  We specialize in Desktop systems, Local Area Network
-                 (LAN), Internet, Computer Systems Security and Disaster
-                 Recovery Planning and Implementation using Microsoft and
-                 Linux based solutions.  <br> <br> <a
-                 href="http://www.BayerTechnologyGroup.com">http://www.BayerTechnologyGroup.com</a><br>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      BSDCan
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:danNOSPAM@langille.org">Dan Langille</a><br>
-                 Suite 474<br>
-                 900 Greenbank Road<br>
-                 Ottawa, ON K2J 4P6<br>
-                 +1 215 882 0565<br>
-                 <br>
-                 Dan has been a Bacula developer since early 2004 when he wrote
-                 the PostgreSQL plugin.  He is also the Bacula maintainer for
-                 FreeBSD and has been writing and speaking about Bacula for 
-                 several years.  As a consultant, his Bacula speciality is
-                 design, installation, and configuration of new systems.  He is
-                 available for consulting on any project.
-                 
-                 <br>
-                 Reference available upon request.
-                 
-                 <br>
-                 <a href="http://www.langille.org/">http://www.langille.org/</a>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      dass IT GmbH
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNSPAM@dass-it.de">dass IT GmbH</a><br>
-                 H&auml;ndelstra&#223;e 25-29<br>
-                 50674 K&ouml;ln<br>
-                 Germany<br>
-                 Tel: +49 221 35 65 666 - 0<br>
-                 Fax: +49 221 35 65 666 - 10<br>
-                 <br>
-                 dass IT provides professional services and
-                 support using mainly open source tools.  Our
-                 focus lies on system management for a large
-                 number of systems (servers and desktops).  We
-                 provide services and solutions mainly for Linux
-                 based IT infrastructures.  
-                 <br> 
-                 <a href="http://www.dass-it.de/">http://www.dass-it.de/</a>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                     Heitor Faria
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:heitorfariaNOSPAM@hotmail.com">Heitor Faria</a><br>
-                 Consultoria em Software Libre (Brazil)<br>
-                 <br>
-                 Telephone +55 71 9196-5270<br>
-                 <br>
-                 <br>
-                 Bacula training, installation and support.
-                 <br>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                     HEXONET Support GmbH
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@hexonet.com">Hexonet</a><br>
-                 Alexander Biehl<br>
-                 Talstrasse 27<br>
-                 66424 Homburg<br>
-                 Germany 
-                 <br>
-                 Tel: +49 6841 95961-70<br>
-                 Fax: +49 6841 95961-79<br>
-                 <br>
-                 HEXONET Support GmbH provides professional IT services and support. We 
-                 are specialized in OpenSource products.
-                 <br>
-                 <a href="http://www.hexonet.com">http://www.hexonet.com</a><br>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Instant Root HB
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@instant-root.com">Info-Mail</a><br>
-                 Box 1823 <br>
-                 SE-58117 Link&ouml;ping, Sweden<br>
-                 <br>
-                 Instant Root HB is a company specialized in Unix systems administration, network
-                 design and implementation, as well as education in various computer-related fields.<br> 
-                 <br>
-                 <a href="http://www.instant-root.com">http://www.instant-root.com</a><br>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      IT-Service Lehmann
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@its-lehmann.de">Arno Lehmann</a><br>
-                  Sandstr. 6<br>
-                  49080 Osnabr&uuml;ck</br>
-                  Germany<br>
-                  +49 (0) 541 5803396<br>
-                  +49 (0) 160 92008971 (mobile)<br>
-                  <br>
-                  Storage, Communication, Backup and Monitoring using 
-                  Open-Source solutions.  Services from
-                  network design to system administration and
-                  user education, with a focus on Small
-                  Businesses looking for cost-effective solutions.
-                  <br>
-                  <a href="http://www.its-lehmann.de">http://www.its-lehmann.de</a>
-               </td>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                 KDB Konsult AB
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:matsNOSPAM@kdb.se">Mats Vilhelmsson</a><br>
-                 Tel: +46 708 901042<br>
-                 <br>
-                 Backup hosting - Internet backups, Bacula training, installations and support.<br>
-                 <br>
-                 <a href="http://www.kdb.se">http://www.kdb.se</a><br>
-              </td>
-      </tr>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      L. Strappazon
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:l.strappazonNOSPAM@free.fre">Ludovic Strappazon</a><br>
-                 Strasbourg, France<br>
-                 +33 685 27 93 39<br>
-                 <br>
-                 I offer engineering services and training around storage and Backup. 
-                 Planning and scaling of your hardware installation, Bacula implementation.
-              </td>
-      </tr>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                  MATRIX-Computer
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                  MATRIX-Computer GmbH<br>
-                  Dachauer Str. 44<br>
-                  80335 M&uuml;nchen<br>
-                  Germany<br>
-
-                  +49-89-922 996 80<br>
-                  <br>
-                  We are a team of software developers with experience in C++, Windows, PHP, 
-                  Linux and more. We have done lots of the Think Tools software.<br>
-                  <br>
-                  <a href="http://www.matrix-computer.com">http://www.matrix-computer.com</a><br>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                     NETWAYS GmbH
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@netways.de">NETWAYS GmbH</a><br>
-                 Deutschherrnstrasse 47a<br>
-                 90429 N&uuml;rnberg<br>
-                 Germany<br>
-                 <br>
-                 Telephone +49 911 92885-0<br>
-                 Fax +49 911 92885-77<br>
-                 <br>
-                 <br>
-                 We support our customers managing complex and
-                 heterogeneous networks.  Our services and
-                 solutions, based on Open Source software, help
-                 you run your servers and applications
-                 failure-free.  Special focus on Nagios, Bacula,
-                 Request Tracker, and cluster solutions.  <br> 
-                 <br>
-                 <a href="http://www.netways.de">http://www.netways.de</a><br>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                     raptus ag
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@raptus.com">raptus ag</a><br>
-                 moderne kommunikation<br>
-                 burgweg 1<br>
-                 2563 ipsach -- switzerland<br>
-                 <br>
-                 Telephone +41 (0)32 332 9200<br>
-                 Fax +41 (0)32 332 9201<br>
-                 <br>
-                 <br>
-                 Modern communications, Internet projects and IT services since 1996!
-                 Specialized in heterogeneous networks (linux, mac, windows) and open 
-                 source solutions.<br>
-                 <br>
-                 <a href="http://www.raptus.com">http://www.raptus.com</a><br>
-              </td>
-      </tr>
-
-
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Sine Nomine Associates
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@sinenomine.net">Services Sales Dept.</a><br>
-                 US:<br>
-                 &nbsp;&nbsp;43596 Blacksmith Square <br>
-                 &nbsp;&nbsp;Ashburn, VA 20147 USA <br>
-                 &nbsp;&nbsp;+1 703 723 6673<br>
-                 <br>
-                 EMEA:<br>
-                 &nbsp;&nbsp;Na Dvorcich 17/Na Vrasni 18<br>
-                 &nbsp;&nbsp;CZ - Praha 4, 14000 <br>
-                 &nbsp;&nbsp;Czech Republic<br>
-                 <br>
-                 Design and implementation of system management tools and infrastructure,<br>
-                 from small systems to enterprise-wide implementations on global scale.<br>
-                 Special focus on Bacula for enterprise-class systems and mainframe.<br>
-                 <br>
-                 <a href="http://www.sinenomine.net">http://www.sinenomine.net</a><br>
-              </td>
-      </tr>
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      Thinxsolutions 
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:infoNOSPAM@thinxsolutions.com">
-                 M&uuml;ller, Bender, Guth GbR</a><br>
-                 &nbsp;&nbsp;Maarweg 139 <br>
-                 &nbsp;&nbsp;50825 Cologne, Germany <br>
-                 <br>
-                 &nbsp;&nbsp;+49 221 35503530<br>
-                 <br>
-                 We implement and manage corporate networks for our customers
-                 and offer consulting and professional support for various open source
-                 software solutions.<br>
-                 <br>
-                 <a href="http://www.thinxsolutions.com">http://www.thinxsolutions.com</a><br>
-              </td>
-      </tr>
-
-
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr>
-              <td style="font-weight: bold">
-                      WinFix.IT
-              </td>
-              <td><img src="images/spacer.gif" width="50px" height="1px"></td>
-              <td>
-                 <a href="mailto:JoNOSPAM@WinFix.IT">Jo at WinFix.IT</a><br>
-                 <br>
-                 &nbsp;&nbsp;In and around Leuven and Brussels (Belgium)
-                 <br>
-                 &nbsp;&nbsp;+32 (0)478-33 76 27<br>
-                 <br>
-                 Set up of SAMBA File and Print servers/domain controllers, mail
-                 servers (Postfix) with spam/virus killers 
-                 (Spamassassin/Amavis/Clamav/BitDefender)
-                 and backup (with Bacula of course). Network monitoring with Nagios.
-                 <br>
-                 <br>
-                 <a href="http://www.WinFix.IT">http://www.WinFix.IT</a><br>
-              </td>
-      </tr>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-      <tr> <td colspan="3"><hr></td>
-      <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-
-
-   </table>
-   </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/projects.php b/docs/home-page/pages/projects.php
deleted file mode 100644 (file)
index dd818cd..0000000
+++ /dev/null
@@ -1,1292 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-</tr>
-<tr>
-        <td class="content">
-
-<pre>
-                
-                
-                
-Projects:
-                     Bacula Projects Roadmap 
-                    Status updated 7 July 2007
-                   After re-ordering in vote priority
-
-Items Completed:
-Item:   2   Implement a Bacula GUI/management tool.
-Item:  18   Quick release of FD-SD connection after backup.
-Item:  23   Implement from-client and to-client on restore command line.
-Item:  25   Implement huge exclude list support using dlist   
-Item:  41   Enable to relocate files and directories when restoring
-Item:  42   Batch attribute inserts (ten times faster)
-Item:  43   More concurrency in SD using micro-locking
-Item:  44   Performance enhancements (POSIX/Win32 OS file access hints).
-Item:  40   Include JobID in spool file name
-
-Summary:
-Item:   1   Accurate restoration of renamed/deleted files
-Item:   2*  Implement a Bacula GUI/management tool.
-Item:   3   Allow FD to initiate a backup
-Item:   4   Merge multiple backups (Synthetic Backup or Consolidation).
-Item:   5   Deletion of Disk-Based Bacula Volumes
-Item:   6   Implement Base jobs.
-Item:   7   Implement creation and maintenance of copy pools
-Item:   8   Directive/mode to backup only file changes, not entire file
-Item:   9   Implement a server-side compression feature
-Item:  10   Improve Bacula's tape and drive usage and cleaning management.
-Item:  11   Allow skipping execution of Jobs
-Item:  12   Add a scheduling syntax that permits weekly rotations
-Item:  13   Archival (removal) of User Files to Tape
-Item:  14   Cause daemons to use a specific IP address to source communications
-Item:  15   Multiple threads in file daemon for the same job
-Item:  16   Add Plug-ins to the FileSet Include statements.
-Item:  17   Restore only file attributes (permissions, ACL, owner, group...)
-Item:  18*  Quick release of FD-SD connection after backup.
-Item:  19   Implement a Python interface to the Bacula catalog.
-Item:  20   Archive data
-Item:  21   Split documentation
-Item:  22   Implement support for stacking arbitrary stream filters, sinks.
-Item:  23*  Implement from-client and to-client on restore command line.
-Item:  24   Add an override in Schedule for Pools based on backup types.
-Item:  25*  Implement huge exclude list support using hashing.
-Item:  26   Implement more Python events in Bacula.
-Item:  27   Incorporation of XACML2/SAML2 parsing
-Item:  28   Filesystem watch triggered backup.
-Item:  29   Allow inclusion/exclusion of files in a fileset by creation/mod times
-Item:  30   Tray monitor window cleanups
-Item:  31   Implement multiple numeric backup levels as supported by dump
-Item:  32   Automatic promotion of backup levels
-Item:  33   Clustered file-daemons
-Item:  34   Commercial database support
-Item:  35   Automatic disabling of devices
-Item:  36   An option to operate on all pools with update vol parameters
-Item:  37   Add an item to the restore option where you can select a pool
-Item:  38   Include timestamp of job launch in "stat clients" output
-Item:  39   Message mailing based on backup types
-Item:  40*  Include JobID in spool file name
-Item:  41*  Enable to relocate files and directories when restoring
-Item:  42*  Batch attribute inserts (ten times faster)
-Item:  43*  More concurrency in SD using micro-locking
-Item:  44*  Performance enhancements (POSIX/Win32 OS file access hints).
-
-Item  1:  Accurate restoration of renamed/deleted files
-  Date:   28 November 2005
-  Origin: Martin Simmons (martin at lispworks dot com)
-  Status: Robert Nelson will implement this
-
-  What:   When restoring a fileset for a specified date (including "most
-          recent"), Bacula should give you exactly the files and directories
-          that existed at the time of the last backup prior to that date.
-
-          Currently this only works if the last backup was a Full backup.
-          When the last backup was Incremental/Differential, files and
-          directories that have been renamed or deleted since the last Full
-          backup are not currently restored correctly.  Ditto for files with
-          extra/fewer hard links than at the time of the last Full backup.
-
-  Why:    Incremental/Differential would be much more useful if this worked.
-
-  Notes:  Merging of multiple backups into a single one seems to
-          rely on this working, otherwise the merged backups will not be
-          truly equivalent to a Full backup.  
-
-          Kern: notes shortened. This can be done without the need for 
-          inodes. It is essentially the same as the current Verify job,
-          but one additional database record must be written, which does 
-          not need any database change.
-
-          Kern: see if we can correct restoration of directories if
-          replace=ifnewer is set.  Currently, if the directory does not
-          exist, a "dummy" directory is created, then when all the files
-          are updated, the dummy directory is newer so the real values
-          are not updated.
-
-Item  2:  Implement a Bacula GUI/management tool.
-  Origin: Kern
-  Date:   28 October 2005
-  Status: In progress
-
-  What:   Implement a Bacula console, and management tools
-          probably using Qt3 and C++.
-
-  Why:    Don't we already have a wxWidgets GUI?  Yes, but
-          it is written in C++ and changes to the user interface
-          must be hand tailored using C++ code. By developing
-          the user interface using Qt designer, the interface
-          can be very easily updated and most of the new Python       
-          code will be automatically created.  The user interface
-          changes become very simple, and only the new features
-          must be implement.  In addition, the code will be in
-          Python, which will give many more users easy (or easier)
-          access to making additions or modifications.
-
- Notes:   There is a partial Python-GTK implementation
-          Lucas Di Pentima <lucas at lunix dot com dot ar> but
-          it is no longer being developed.
-
-Item  3:  Allow FD to initiate a backup
-  Origin: Frank Volf (frank at deze dot org)
-  Date:   17 November 2005
-  Status:
-
-   What:  Provide some means, possibly by a restricted console that
-          allows a FD to initiate a backup, and that uses the connection
-          established by the FD to the Director for the backup so that
-          a Director that is firewalled can do the backup.
-
-   Why:   Makes backup of laptops much easier.
-
-
-Item  4:  Merge multiple backups (Synthetic Backup or Consolidation).
-  Origin: Marc Cousin and Eric Bollengier 
-  Date:   15 November 2005
-  Status: Waiting implementation. Depends on first implementing 
-          project Item 2 (Migration) which is now done.
-
-  What:   A merged backup is a backup made without connecting to the Client.
-          It would be a Merge of existing backups into a single backup.
-          In effect, it is like a restore but to the backup medium.
-
-          For instance, say that last Sunday we made a full backup.  Then
-          all week long, we created incremental backups, in order to do
-          them fast.  Now comes Sunday again, and we need another full.
-          The merged backup makes it possible to do instead an incremental
-          backup (during the night for instance), and then create a merged
-          backup during the day, by using the full and incrementals from
-          the week.  The merged backup will be exactly like a full made
-          Sunday night on the tape, but the production interruption on the
-          Client will be minimal, as the Client will only have to send
-          incrementals.
-
-          In fact, if it's done correctly, you could merge all the
-          Incrementals into single Incremental, or all the Incrementals
-          and the last Differential into a new Differential, or the Full,
-          last differential and all the Incrementals into a new Full
-          backup.  And there is no need to involve the Client.
-
-  Why:    The benefit is that :
-          - the Client just does an incremental ;
-          - the merged backup on tape is just as a single full backup,
-            and can be restored very fast.
-
-          This is also a way of reducing the backup data since the old
-          data can then be pruned (or not) from the catalog, possibly
-          allowing older volumes to be recycled
-
-Item  5:  Deletion of Disk-Based Bacula Volumes
-  Date:   Nov 25, 2005
-  Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (edited
-          by Kern)
-  Status:         
-
-   What:  Provide a way for Bacula to automatically remove Volumes
-          from the filesystem, or optionally to truncate them.
-          Obviously, the Volume must be pruned prior removal.
-
-  Why:    This would allow users more control over their Volumes and
-          prevent disk based volumes from consuming too much space.
-
-  Notes:  The following two directives might do the trick:
-
-          Volume Data Retention = <time period>
-          Remove Volume After = <time period>
-
-          The migration project should also remove a Volume that is
-          migrated. This might also work for tape Volumes.
-
-Item  6:  Implement Base jobs.
-  Date:   28 October 2005
-  Origin: Kern
-  Status: 
-  
-  What:   A base job is sort of like a Full save except that you 
-          will want the FileSet to contain only files that are
-          unlikely to change in the future (i.e.  a snapshot of
-          most of your system after installing it).  After the
-          base job has been run, when you are doing a Full save,
-          you specify one or more Base jobs to be used.  All
-          files that have been backed up in the Base job/jobs but
-          not modified will then be excluded from the backup.
-          During a restore, the Base jobs will be automatically
-          pulled in where necessary.
-
-  Why:    This is something none of the competition does, as far as
-          we know (except perhaps BackupPC, which is a Perl program that
-          saves to disk only).  It is big win for the user, it
-          makes Bacula stand out as offering a unique
-          optimization that immediately saves time and money.
-          Basically, imagine that you have 100 nearly identical
-          Windows or Linux machine containing the OS and user
-          files.  Now for the OS part, a Base job will be backed
-          up once, and rather than making 100 copies of the OS,
-          there will be only one.  If one or more of the systems
-          have some files updated, no problem, they will be
-          automatically restored.
-
-  Notes:  Huge savings in tape usage even for a single machine.
-          Will require more resources because the DIR must send
-          FD a list of files/attribs, and the FD must search the
-          list and compare it for each file to be saved.
-
-Item  7:  Implement creation and maintenance of copy pools
-  Date:   27 November 2005
-  Origin: David Boyes (dboyes at sinenomine dot net)
-  Status:
-
-  What:   I would like Bacula to have the capability to write copies
-          of backed-up data on multiple physical volumes selected
-          from different pools without transferring the data
-          multiple times, and to accept any of the copy volumes
-          as valid for restore.
-
-  Why:    In many cases, businesses are required to keep offsite
-          copies of backup volumes, or just wish for simple
-          protection against a human operator dropping a storage
-          volume and damaging it. The ability to generate multiple
-          volumes in the course of a single backup job allows
-          customers to simple check out one copy and send it
-          offsite, marking it as out of changer or otherwise
-          unavailable. Currently, the library and magazine
-          management capability in Bacula does not make this process
-          simple.
-
-          Restores would use the copy of the data on the first
-          available volume, in order of copy pool chain definition.
-
-          This is also a major scalability issue -- as the number of
-          clients increases beyond several thousand, and the volume
-          of data increases, transferring the data multiple times to
-          produce additional copies of the backups will become
-          physically impossible due to transfer speed
-          issues. Generating multiple copies at server side will
-          become the only practical option. 
-
-  How:    I suspect that this will require adding a multiplexing
-          SD that appears to be a SD to a specific FD, but 1-n FDs
-          to the specific back end SDs managing the primary and copy
-          pools.  Storage pools will also need to acquire parameters
-          to define the pools to be used for copies. 
-
-  Notes:  I would commit some of my developers' time if we can agree
-          on the design and behavior. 
-
-Item  8:  Directive/mode to backup only file changes, not entire file
-  Date:   11 November 2005
-  Origin: Joshua Kugler <joshua dot kugler at uaf dot edu>
-          Marek Bajon <mbajon at bimsplus dot com dot pl>
-  Status: 
-
-  What:   Currently when a file changes, the entire file will be backed up in
-          the next incremental or full backup.  To save space on the tapes
-          it would be nice to have a mode whereby only the changes to the
-          file would be backed up when it is changed.
-
-  Why:    This would save lots of space when backing up large files such as 
-          logs, mbox files, Outlook PST files and the like.
-
-  Notes:  This would require the usage of disk-based volumes as comparing 
-          files would not be feasible using a tape drive.
-
-Item  9:  Implement a server-side compression feature
-  Date:   18 December 2006
-  Origin: Vadim A. Umanski , e-mail umanski@ext.ru
-  Status:
-  What:   The ability to compress backup data on server receiving data
-          instead of doing that on client sending data.
-  Why:    The need is practical. I've got some machines that can send
-          data to the network 4 or 5 times faster than compressing
-          them (I've measured that). They're using fast enough SCSI/FC
-          disk subsystems but rather slow CPUs (ex. UltraSPARC II).
-          And the backup server has got a quite fast CPUs (ex. Dual P4
-          Xeons) and quite a low load. When you have 20, 50 or 100 GB
-          of raw data - running a job 4 to 5 times faster - that
-          really matters. On the other hand, the data can be
-          compressed 50% or better - so losing twice more space for
-          disk backup is not good at all. And the network is all mine
-          (I have a dedicated management/provisioning network) and I
-          can get as high bandwidth as I need - 100Mbps, 1000Mbps...
-          That's why the server-side compression feature is needed!
-  Notes:
-
-Item 10:  Improve Bacula's tape and drive usage and cleaning management.
-  Date:   8 November 2005, November 11, 2005
-  Origin: Adam Thornton <athornton at sinenomine dot net>,
-          Arno Lehmann <al at its-lehmann dot de>
-  Status:
-
-  What:   Make Bacula manage tape life cycle information, tape reuse
-          times and drive cleaning cycles.
-
-  Why:    All three parts of this project are important when operating
-          backups.
-          We need to know which tapes need replacement, and we need to
-          make sure the drives are cleaned when necessary.  While many
-          tape libraries and even autoloaders can handle all this
-          automatically, support by Bacula can be helpful for smaller
-          (older) libraries and single drives.  Limiting the number of
-          times a tape is used might prevent tape errors when using
-          tapes until the drives can't read it any more.  Also, checking
-          drive status during operation can prevent some failures (as I
-          [Arno] had to learn the hard way...)
-
-  Notes:  First, Bacula could (and even does, to some limited extent)
-          record tape and drive usage.  For tapes, the number of mounts,
-          the amount of data, and the time the tape has actually been
-          running could be recorded.  Data fields for Read and Write
-          time and Number of mounts already exist in the catalog (I'm
-          not sure if VolBytes is the sum of all bytes ever written to
-          that volume by Bacula).  This information can be important
-          when determining which media to replace.  The ability to mark
-          Volumes as "used up" after a given number of write cycles
-          should also be implemented so that a tape is never actually
-          worn out.  For the tape drives known to Bacula, similar
-          information is interesting to determine the device status and
-          expected life time: Time it's been Reading and Writing, number
-          of tape Loads / Unloads / Errors.  This information is not yet
-          recorded as far as I [Arno] know.  A new volume status would
-          be necessary for the new state, like "Used up" or "Worn out".
-          Volumes with this state could be used for restores, but not
-          for writing. These volumes should be migrated first (assuming
-          migration is implemented) and, once they are no longer needed,
-          could be moved to a Trash pool.
-
-          The next step would be to implement a drive cleaning setup.
-          Bacula already has knowledge about cleaning tapes.  Once it
-          has some information about cleaning cycles (measured in drive
-          run time, number of tapes used, or calender days, for example)
-          it can automatically execute tape cleaning (with an
-          autochanger, obviously) or ask for operator assistance loading
-          a cleaning tape.
-
-          The final step would be to implement TAPEALERT checks not only
-          when changing tapes and only sending the information to the
-          administrator, but rather checking after each tape error,
-          checking on a regular basis (for example after each tape
-          file), and also before unloading and after loading a new tape.
-          Then, depending on the drives TAPEALERT state and the known
-          drive cleaning state Bacula could automatically schedule later
-          cleaning, clean immediately, or inform the operator.
-
-          Implementing this would perhaps require another catalog change
-          and perhaps major changes in SD code and the DIR-SD protocol,
-          so I'd only consider this worth implementing if it would
-          actually be used or even needed by many people.
-
-          Implementation of these projects could happen in three distinct
-          sub-projects: Measuring Tape and Drive usage, retiring
-          volumes, and handling drive cleaning and TAPEALERTs.
-
-Item 11:  Allow skipping execution of Jobs
-  Date:   29 November 2005
-  Origin: Florian Schnabel <florian.schnabel at docufy dot de>
-  Status:
-
-    What: An easy option to skip a certain job  on a certain date.
-     Why: You could then easily skip tape backups on holidays.  Especially
-          if you got no autochanger and can only fit one backup on a tape
-          that would be really handy, other jobs could proceed normally
-          and you won't get errors that way.
-
-Item 12:  Add a scheduling syntax that permits weekly rotations
-   Date:  15 December 2006
-  Origin: Gregory Brauer (greg at wildbrain dot com)
-  Status:
-
-   What:  Currently, Bacula only understands how to deal with weeks of the
-          month or weeks of the year in schedules.  This makes it impossible
-          to do a true weekly rotation of tapes.  There will always be a
-          discontinuity that will require disruptive manual intervention at
-          least monthly or yearly because week boundaries never align with
-          month or year boundaries.
-
-          A solution would be to add a new syntax that defines (at least)
-          a start timestamp, and repetition period.
-
-   Why:   Rotated backups done at weekly intervals are useful, and Bacula
-          cannot currently do them without extensive hacking.
-
-   Notes: Here is an example syntax showing a 3-week rotation where full
-          Backups would be performed every week on Saturday, and an
-          incremental would be performed every week on Tuesday.  Each
-          set of tapes could be removed from the loader for the following
-          two cycles before coming back and being reused on the third
-          week.  Since the execution times are determined by intervals
-          from a given point in time, there will never be any issues with
-          having to adjust to any sort of arbitrary time boundary.  In
-          the example provided, I even define the starting schedule
-          as crossing both a year and a month boundary, but the run times
-          would be based on the "Repeat" value and would therefore happen
-          weekly as desired.
-
-
-          Schedule {
-              Name = "Week 1 Rotation"
-              #Saturday.  Would run Dec 30, Jan 20, Feb 10, etc.
-              Run {
-                  Options {
-                      Type   = Full
-                      Start  = 2006-12-30 01:00
-                      Repeat = 3w
-                  }
-              }
-              #Tuesday.  Would run Jan 2, Jan 23, Feb 13, etc.
-              Run {
-                  Options {
-                      Type   = Incremental
-                      Start  = 2007-01-02 01:00
-                      Repeat = 3w
-                  }
-              }
-          }
-
-          Schedule {
-              Name = "Week 2 Rotation"
-              #Saturday.  Would run Jan 6, Jan 27, Feb 17, etc.
-              Run {
-                  Options {
-                      Type   = Full
-                      Start  = 2007-01-06 01:00
-                      Repeat = 3w
-                  }
-              }
-              #Tuesday.  Would run Jan 9, Jan 30, Feb 20, etc.
-              Run {
-                  Options {
-                      Type   = Incremental
-                      Start  = 2007-01-09 01:00
-                      Repeat = 3w
-                  }
-              }
-          }
-
-          Schedule {
-              Name = "Week 3 Rotation"
-              #Saturday.  Would run Jan 13, Feb 3, Feb 24, etc.
-              Run {
-                  Options {
-                      Type   = Full
-                      Start  = 2007-01-13 01:00
-                      Repeat = 3w
-                  }
-              }
-              #Tuesday.  Would run Jan 16, Feb 6, Feb 27, etc.
-              Run {
-                  Options {
-                      Type   = Incremental
-                      Start  = 2007-01-16 01:00
-                      Repeat = 3w
-                  }
-              }
-          }
-
-Item 13:  Archival (removal) of User Files to Tape
-  Date:   Nov. 24/2005 
-  Origin: Ray Pengelly [ray at biomed dot queensu dot ca
-  Status: 
-
-  What:   The ability to archive data to storage based on certain parameters
-          such as age, size, or location.  Once the data has been written to
-          storage and logged it is then pruned from the originating
-          filesystem. Note! We are talking about user's files and not
-          Bacula Volumes.
-
-  Why:    This would allow fully automatic storage management which becomes
-          useful for large datastores.  It would also allow for auto-staging
-          from one media type to another.
-
-          Example 1) Medical imaging needs to store large amounts of data.
-          They decide to keep data on their servers for 6 months and then put
-          it away for long term storage.  The server then finds all files
-          older than 6 months writes them to tape.  The files are then removed
-          from the server.
-
-          Example 2) All data that hasn't been accessed in 2 months could be
-          moved from high-cost, fibre-channel disk storage to a low-cost
-          large-capacity SATA disk storage pool which doesn't have as quick of
-          access time.  Then after another 6 months (or possibly as one
-          storage pool gets full) data is migrated to Tape.
-
-Item 14:  Cause daemons to use a specific IP address to source communications
- Origin:  Bill Moran <wmoran@collaborativefusion.com>
- Date:    18 Dec 2006
- Status:
- What:    Cause Bacula daemons (dir, fd, sd) to always use the ip address
-          specified in the [DIR|DF|SD]Addr directive as the source IP
-          for initiating communication.
- Why:     On complex networks, as well as extremely secure networks, it's
-          not unusual to have multiple possible routes through the network.
-          Often, each of these routes is secured by different policies
-          (effectively, firewalls allow or deny different traffic depending
-          on the source address)
-          Unfortunately, it can sometimes be difficult or impossible to
-          represent this in a system routing table, as the result is
-          excessive subnetting that quickly exhausts available IP space.
-          The best available workaround is to provide multiple IPs to
-          a single machine that are all on the same subnet.  In order
-          for this to work properly, applications must support the ability
-          to bind outgoing connections to a specified address, otherwise
-          the operating system will always choose the first IP that
-          matches the required route.
- Notes:   Many other programs support this.  For example, the following
-          can be configured in BIND:
-          query-source address 10.0.0.1;
-          transfer-source 10.0.0.2;
-          Which means queries from this server will always come from
-          10.0.0.1 and zone transfers will always originate from
-          10.0.0.2.
-
-Item 15:  Multiple threads in file daemon for the same job
-  Date:   27 November 2005
-  Origin: Ove Risberg (Ove.Risberg at octocode dot com)
-  Status:
-
-  What:   I want the file daemon to start multiple threads for a backup
-          job so the fastest possible backup can be made.
-
-          The file daemon could parse the FileSet information and start
-          one thread for each File entry located on a separate
-          filesystem.
-
-          A confiuration option in the job section should be used to
-          enable or disable this feature. The confgutration option could
-          specify the maximum number of threads in the file daemon.
-
-          If the theads could spool the data to separate spool files
-          the restore process will not be much slower.
-
-  Why:    Multiple concurrent backups of a large fileserver with many
-          disks and controllers will be much faster.
-
-Item 16:  Add Plug-ins to the FileSet Include statements.
-  Date:   28 October 2005
-  Origin:
-  Status: Partially coded in 1.37 -- much more to do.
-
-  What:   Allow users to specify wild-card and/or regular
-          expressions to be matched in both the Include and
-          Exclude directives in a FileSet.  At the same time,
-          allow users to define plug-ins to be called (based on
-          regular expression/wild-card matching).
-
-  Why:    This would give the users the ultimate ability to control
-          how files are backed up/restored.  A user could write a
-          plug-in knows how to backup his Oracle database without
-          stopping/starting it, for example.
-
-Item 17:  Restore only file attributes (permissions, ACL, owner, group...)
-  Origin: Eric Bollengier
-  Date:   30/12/2006
-  Status:
-
-  What:   The goal of this project is to be able to restore only rights
-          and attributes of files without crushing them.
-
-  Why:    Who have never had to repair a chmod -R 777, or a wild update
-          of recursive right under Windows? At this time, you must have
-          enough space to restore data, dump attributes (easy with acl,
-          more complex with unix/windows rights) and apply them to your 
-          broken tree. With this options, it will be very easy to compare
-          right or ACL over the time.
-
-  Notes:  If the file is here, we skip restore and we change rights.
-          If the file isn't here, we can create an empty one and apply
-          rights or do nothing.
-
-Item 18:  Quick release of FD-SD connection after backup.
-  Origin: Frank Volf (frank at deze dot org)
-  Date:   17 November 2005
-  Status: Done -- implemented by Kern -- in CVS 26Jan07
-
-   What:  In the Bacula implementation a backup is finished after all data
-          and attributes are successfully written to storage.  When using a
-          tape backup it is very annoying that a backup can take a day,
-          simply because the current tape (or whatever) is full and the
-          administrator has not put a new one in.  During that time the
-          system cannot be taken off-line, because there is still an open
-          session between the storage daemon and the file daemon on the
-          client.
-
-          Although this is a very good strategy for making "safe backups"
-          This can be annoying for e.g.  laptops, that must remain
-          connected until the backup is completed.
-
-          Using a new feature called "migration" it will be possible to
-          spool first to harddisk (using a special 'spool' migration
-          scheme) and then migrate the backup to tape.
-
-          There is still the problem of getting the attributes committed.
-          If it takes a very long time to do, with the current code, the
-          job has not terminated, and the File daemon is not freed up.  The
-          Storage daemon should release the File daemon as soon as all the
-          file data and all the attributes have been sent to it (the SD).
-          Currently the SD waits until everything is on tape and all the
-          attributes are transmitted to the Director before signaling
-          completion to the FD. I don't think I would have any problem
-          changing this.  The reason is that even if the FD reports back to
-          the Dir that all is OK, the job will not terminate until the SD
-          has done the same thing -- so in a way keeping the SD-FD link
-          open to the very end is not really very productive ...
-
-   Why:   Makes backup of laptops much faster.
-
-Item 19:  Implement a Python interface to the Bacula catalog.
-  Date:   28 October 2005
-  Origin: Kern
-  Status: 
-
-  What:   Implement an interface for Python scripts to access
-          the catalog through Bacula.
-
-  Why:    This will permit users to customize Bacula through
-          Python scripts.
-
-Item 20:  Archive data
-  Date:   15/5/2006
-  Origin: calvin streeting calvin at absentdream dot com
-  Status:
-
-  What:   The abilty to archive to media (dvd/cd) in a uncompressed format
-          for dead filing (archiving not backing up)
-
-    Why:  At my works when jobs are finished and moved off of the main file
-          servers (raid based systems) onto a simple linux file server (ide based
-          system) so users can find old information without contacting the IT
-          dept.
-
-          So this data dosn't realy change it only gets added to,
-          But it also needs backing up.  At the moment it takes
-          about 8 hours to back up our servers (working data) so
-          rather than add more time to existing backups i am trying
-          to implement a system where we backup the acrhive data to
-          cd/dvd these disks would only need to be appended to
-          (burn only new/changed files to new disks for off site
-          storage).  basialy understand the differnce between
-          achive data and live data.
-
-  Notes:  Scan the data and email me when it needs burning divide
-          into predifind chunks keep a recored of what is on what
-          disk make me a label (simple php->mysql=>pdf stuff) i
-          could do this bit ability to save data uncompresed so
-          it can be read in any other system (future proof data)
-          save the catalog with the disk as some kind of menu
-          system 
-
-Item 21:  Split documentation
-  Origin: Maxx <maxxatworkat gmail dot com>
-  Date:   27th July 2006
-  Status:
-
-  What:   Split documentation in several books
-
-  Why:    Bacula manual has now more than 600 pages, and looking for
-          implementation details is getting complicated.  I think
-          it would be good to split the single volume in two or
-          maybe three parts:
-
-          1) Introduction, requirements and tutorial, typically
-             are useful only until first installation time
-
-          2) Basic installation and configuration, with all the
-             gory details about the directives supported 3)
-             Advanced Bacula: testing, troubleshooting, GUI and
-             ancillary programs, security managements, scripting,
-             etc.
-
-
-Item 22:  Implement support for stacking arbitrary stream filters, sinks.
-Date:     23 November 2006
-Origin:   Landon Fuller <landonf@threerings.net>
-Status:   Planning. Assigned to landonf.
-
-  What:   Implement support for the following:
-          - Stacking arbitrary stream filters (eg, encryption, compression,  
-            sparse data handling))
-          - Attaching file sinks to terminate stream filters (ie, write out  
-            the resultant data to a file)
-          - Refactor the restoration state machine accordingly
-
-   Why:   The existing stream implementation suffers from the following:
-           - All state (compression, encryption, stream restoration), is  
-             global across the entire restore process, for all streams. There are  
-             multiple entry and exit points in the restoration state machine, and  
-             thus multiple places where state must be allocated, deallocated,  
-             initialized, or reinitialized. This results in exceptional complexity  
-             for the author of a stream filter.
-           - The developer must enumerate all possible combinations of filters  
-             and stream types (ie, win32 data with encryption, without encryption,  
-             with encryption AND compression, etc).
-
-  Notes:  This feature request only covers implementing the stream filters/ 
-          sinks, and refactoring the file daemon's restoration implementation  
-          accordingly. If I have extra time, I will also rewrite the backup  
-          implementation. My intent in implementing the restoration first is to  
-          solve pressing bugs in the restoration handling, and to ensure that  
-          the new restore implementation handles existing backups correctly.
-
-          I do not plan on changing the network or tape data structures to  
-          support defining arbitrary stream filters, but supporting that  
-          functionality is the ultimate goal.
-
-          Assistance with either code or testing would be fantastic.
-
-Item 23:  Implement from-client and to-client on restore command line.
-   Date:  11 December 2006
-  Origin: Discussion on Bacula-users entitled 'Scripted restores to
-          different clients', December 2006 
-  Status: New feature request
-  What:   While using bconsole interactively, you can specify the client
-          that a backup job is to be restored for, and then you can
-          specify later a different client to send the restored files
-          back to. However, using the 'restore' command with all options
-          on the command line, this cannot be done, due to the ambiguous
-          'client' parameter. Additionally, this parameter means different
-          things depending on if it's specified on the command line or
-          afterwards, in the Modify Job screens.
-     Why: This feature would enable restore jobs to be more completely
-          automated, for example by a web or GUI front-end.
-   Notes: client can also be implied by specifying the jobid on the command
-          line
-
-Item 24:  Add an override in Schedule for Pools based on backup types.
-Date:     19 Jan 2005
-Origin:   Chad Slater <chad.slater@clickfox.com>
-Status: 
-                                                
-  What:   Adding a FullStorage=BigTapeLibrary in the Schedule resource
-          would help those of us who use different storage devices for different
-          backup levels cope with the "auto-upgrade" of a backup.
-
-  Why:    Assume I add several new device to be backed up, i.e. several
-          hosts with 1TB RAID.  To avoid tape switching hassles, incrementals are
-          stored in a disk set on a 2TB RAID.  If you add these devices in the
-          middle of the month, the incrementals are upgraded to "full" backups,
-          but they try to use the same storage device as requested in the
-          incremental job, filling up the RAID holding the differentials.  If we
-          could override the Storage parameter for full and/or differential
-          backups, then the Full job would use the proper Storage device, which
-          has more capacity (i.e. a 8TB tape library.
-
-Item 25:  Implement huge exclude list support using hashing (dlists).
-  Date:   28 October 2005
-  Origin: Kern
-  Status: Done in 2.1.2 but was done with dlists (doubly linked lists
-          since hashing will not help. The huge list also supports
-          large include lists).
-
-  What:   Allow users to specify very large exclude list (currently
-          more than about 1000 files is too many).
-
-  Why:    This would give the users the ability to exclude all
-          files that are loaded with the OS (e.g. using rpms
-          or debs). If the user can restore the base OS from
-          CDs, there is no need to backup all those files. A
-          complete restore would be to restore the base OS, then
-          do a Bacula restore. By excluding the base OS files, the
-          backup set will be *much* smaller.
-
-Item 26:  Implement more Python events in Bacula.
-  Date:   28 October 2005
-  Origin: Kern
-  Status: 
-
-  What:   Allow Python scripts to be called at more places 
-          within Bacula and provide additional access to Bacula
-          internal variables.
-
-  Why:    This will permit users to customize Bacula through
-          Python scripts.
-
-  Notes:  Recycle event
-          Scratch pool event
-          NeedVolume event
-          MediaFull event
-           
-          Also add a way to get a listing of currently running
-          jobs (possibly also scheduled jobs).
-
-
-Item 27:  Incorporation of XACML2/SAML2 parsing
-   Date:   19 January 2006
-   Origin: Adam Thornton <athornton@sinenomine.net>
-   Status: Blue sky
-
-   What:   XACML is "eXtensible Access Control Markup Language" and  
-          "SAML is the "Security Assertion Markup Language"--an XML standard  
-          for making statements about identity and authorization.  Having these  
-          would give us a framework to approach ACLs in a generic manner, and  
-          in a way flexible enough to support the four major sorts of ACLs I  
-          see as a concern to Bacula at this point, as well as (probably) to  
-          deal with new sorts of ACLs that may appear in the future.
-
-   Why:    Bacula is beginning to need to back up systems with ACLs  
-          that do not map cleanly onto traditional Unix permissions.  I see  
-          four sets of ACLs--in general, mutually incompatible with one  
-          another--that we're going to need to deal with.  These are: NTFS  
-          ACLs, POSIX ACLs, NFSv4 ACLS, and AFS ACLS.  (Some may question the  
-          relevance of AFS; AFS is one of Sine Nomine's core consulting  
-          businesses, and having a reputable file-level backup and restore  
-          technology for it (as Tivoli is probably going to drop AFS support  
-          soon since IBM no longer supports AFS) would be of huge benefit to  
-          our customers; we'd most likely create the AFS support at Sine Nomine  
-          for inclusion into the Bacula (and perhaps some changes to the  
-          OpenAFS volserver) core code.)
-
-          Now, obviously, Bacula already handles NTFS just fine.  However, I  
-          think there's a lot of value in implementing a generic ACL model, so  
-          that it's easy to support whatever particular instances of ACLs come  
-          down the pike: POSIX ACLS (think SELinux) and NFSv4 are the obvious  
-          things arriving in the Linux world in a big way in the near future.   
-          XACML, although overcomplicated for our needs, provides this  
-          framework, and we should be able to leverage other people's  
-          implementations to minimize the amount of work *we* have to do to get  
-          a generic ACL framework.  Basically, the costs of implementation are  
-          high, but they're largely both external to Bacula and already sunk.
-
-Item 28:  Filesystem watch triggered backup.
-  Date:   31 August 2006
-  Origin: Jesper Krogh <jesper@krogh.cc>
-  Status: Unimplemented, depends probably on "client initiated backups"
-
-  What:   With inotify and similar filesystem triggeret notification
-          systems is it possible to have the file-daemon to monitor
-          filesystem changes and initiate backup.
-
-  Why:    There are 2 situations where this is nice to have.
-          1) It is possible to get a much finer-grained backup than
-             the fixed schedules used now.. A file created and deleted
-             a few hours later, can automatically be caught.
-
-          2) The introduced load on the system will probably be
-             distributed more even on the system.
-
-  Notes:  This can be combined with configration that specifies
-          something like: "at most every 15 minutes or when changes
-          consumed XX MB".
-
-Kern Notes: I would rather see this implemented by an external program
-          that monitors the Filesystem changes, then uses the console
-          to start the appropriate job.
-
-Item 29:  Allow inclusion/exclusion of files in a fileset by creation/mod times
-  Origin: Evan Kaufman <evan.kaufman@gmail.com>
-  Date:   January 11, 2006
-  Status:
-
-  What:   In the vein of the Wild and Regex directives in a Fileset's
-          Options, it would be helpful to allow a user to include or exclude
-          files and directories by creation or modification times.
-
-          You could factor the Exclude=yes|no option in much the same way it
-          affects the Wild and Regex directives.  For example, you could exclude
-          all files modified before a certain date:
-
-   Options {
-     Exclude = yes
-     Modified Before = ####
-   }
-
-           Or you could exclude all files created/modified since a certain date:
-
-   Options {
-      Exclude = yes
-     Created Modified Since = ####
-   }
-
-           The format of the time/date could be done several ways, say the number
-           of seconds since the epoch:
-           1137008553 = Jan 11 2006, 1:42:33PM   # result of `date +%s`
-
-           Or a human readable date in a cryptic form:
-           20060111134233 = Jan 11 2006, 1:42:33PM   # YYYYMMDDhhmmss
-
-  Why:    I imagine a feature like this could have many uses. It would
-          allow a user to do a full backup while excluding the base operating
-          system files, so if I installed a Linux snapshot from a CD yesterday,
-          I'll *exclude* all files modified *before* today.  If I need to
-          recover the system, I use the CD I already have, plus the tape backup.
-          Or if, say, a Windows client is hit by a particularly corrosive
-          virus, and I need to *exclude* any files created/modified *since* the
-          time of infection.
-
-  Notes:  Of course, this feature would work in concert with other
-          in/exclude rules, and wouldnt override them (or each other).
-
-  Notes:  The directives I'd imagine would be along the lines of
-          "[Created] [Modified] [Before|Since] = <date>".
-          So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
-           or 'since'.
-
-
-Item 30:  Tray monitor window cleanups
-  Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
-  Date:   24 July 2006
-  Status:
-  What:   Resizeable and scrollable windows in the tray monitor.
-
-  Why:    With multiple clients, or with many jobs running, the displayed
-          window often ends up larger than the available screen, making
-          the trailing items difficult to read.
-
-
-Item 31:  Implement multiple numeric backup levels as supported by dump
-Date:     3 April 2006
-Origin:   Daniel Rich <drich@employees.org>
-Status:
-What:     Dump allows specification of backup levels numerically instead of just
-          "full", "incr", and "diff".  In this system, at any given level, all
-          files are backed up that were were modified since the last backup of a
-          higher level (with 0 being the highest and 9 being the lowest).  A
-          level 0 is therefore equivalent to a full, level 9 an incremental, and
-          the levels 1 through 8 are varying levels of differentials.  For
-          bacula's sake, these could be represented as "full", "incr", and
-          "diff1", "diff2", etc.
-
-Why:      Support of multiple backup levels would provide for more advanced backup
-          rotation schemes such as "Towers of Hanoi".  This would allow better
-          flexibility in performing backups, and can lead to shorter recover
-          times.
-
-Notes:    Legato Networker supports a similar system with full, incr, and 1-9 as
-          levels.
-        
-Item 32:  Automatic promotion of backup levels
-   Date:  19 January 2006
-  Origin: Adam Thornton <athornton@sinenomine.net>
-  Status: 
-
-    What: Amanda has a feature whereby it estimates the space that a  
-          differential, incremental, and full backup would take.  If the  
-          difference in space required between the scheduled level and the next  
-          level up is beneath some user-defined critical threshold, the backup  
-          level is bumped to the next type.  Doing this minimizes the number of  
-          volumes necessary during a restore, with a fairly minimal cost in  
-          backup media space.
-
-    Why:  I know at least one (quite sophisticated and smart) user  
-          for whom the absence of this feature is a deal-breaker in terms of  
-          using Bacula; if we had it it would eliminate the one cool thing  
-          Amanda can do and we can't (at least, the one cool thing I know of).
-
-Item 33:  Clustered file-daemons
-  Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
-  Date:   24 July 2006
-  Status:
-  What:   A "virtual" filedaemon, which is actually a cluster of real ones.
-
-  Why:    In the case of clustered filesystems (SAN setups, GFS, or OCFS2, etc)
-          multiple machines may have access to the same set of filesystems
-
-          For performance reasons, one may wish to initate backups from
-          several of these machines simultaneously, instead of just using
-          one backup source for the common clustered filesystem.
-
-          For obvious reasons, normally backups of $A-FD/$PATH and
-          B-FD/$PATH are treated as different backup sets. In this case
-          they are the same communal set.
-
-          Likewise when restoring, it would be easier to just specify
-          one of the cluster machines and let bacula decide which to use.
-
-          This can be faked to some extent using DNS round robin entries
-          and a virtual IP address, however it means "status client" will
-          always give bogus answers. Additionally there is no way of
-          spreading the load evenly among the servers.
-
-          What is required is something similar to the storage daemon
-          autochanger directives, so that Bacula can keep track of
-          operating backups/restores and direct new jobs to a "free"
-          client.
-
-   Notes:
-
-Item 34:  Commercial database support
-  Origin: Russell Howe <russell_howe dot wreckage dot org>
-  Date:   26 July 2006
-  Status:
-
-  What:   It would be nice for the database backend to support more 
-          databases. I'm thinking of SQL Server at the moment, but I guess Oracle, 
-          DB2, MaxDB, etc are all candidates. SQL Server would presumably be 
-          implemented using FreeTDS or maybe an ODBC library?
-
-  Why:    We only really have one database server, which is MS SQL Server 
-          2000. Maintaining a second one for the backup software (we grew out of 
-          SQLite, which I liked, but which didn't work so well with our database 
-          size). We don't really have a machine with the resources to run 
-          postgres, and would rather only maintain a single DBMS. We're stuck with 
-          SQL Server because pretty much all the company's custom applications 
-          (written by consultants) are locked into SQL Server 2000. I can imagine 
-          this scenario is fairly common, and it would be nice to use the existing 
-          properly specced database server for storing Bacula's catalog, rather 
-          than having to run a second DBMS.
-
-Item 35:  Automatic disabling of devices
-   Date:  2005-11-11
-  Origin: Peter Eriksson <peter at ifm.liu dot se>
-  Status:
-
-   What:  After a configurable amount of fatal errors with a tape drive
-          Bacula should automatically disable further use of a certain
-          tape drive. There should also be "disable"/"enable" commands in
-          the "bconsole" tool.
-
-   Why:   On a multi-drive jukebox there is a possibility of tape drives
-          going bad during large backups (needing a cleaning tape run,
-          tapes getting stuck). It would be advantageous if Bacula would
-          automatically disable further use of a problematic tape drive
-          after a configurable amount of errors has occurred.
-
-          An example: I have a multi-drive jukebox (6 drives, 380+ slots)
-          where tapes occasionally get stuck inside the drive. Bacula will
-          notice that the "mtx-changer" command will fail and then fail
-          any backup jobs trying to use that drive. However, it will still
-          keep on trying to run new jobs using that drive and fail -
-          forever, and thus failing lots and lots of jobs... Since we have
-          many drives Bacula could have just automatically disabled
-          further use of that drive and used one of the other ones
-          instead.
-
-Item 36:  An option to operate on all pools with update vol parameters
-  Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
-   Date:  16 August 2006
-  Status:
-
-   What:  When I do update -> Volume parameters -> All Volumes
-          from Pool, then I have to select pools one by one.  I'd like
-          console to have an option like "0: All Pools" in the list of
-          defined pools.
-
-   Why:   I have many pools and therefore unhappy with manually
-          updating each of them using update -> Volume parameters -> All
-          Volumes from Pool -> pool #.
-
-Item 37:  Add an item to the restore option where you can select a pool
-  Origin: kshatriyak at gmail dot com
-    Date: 1/1/2006
-  Status:
-
-    What: In the restore option (Select the most recent backup for a
-          client) it would be useful to add an option where you can limit
-          the selection to a certain pool.
-
-     Why: When using cloned jobs, most of the time you have 2 pools - a
-          disk pool and a tape pool.  People who have 2 pools would like to
-          select the most recent backup from disk, not from tape (tape
-          would be only needed in emergency).  However, the most recent
-          backup (which may just differ a second from the disk backup) may
-          be on tape and would be selected.  The problem becomes bigger if
-          you have a full and differential - the most "recent" full backup
-          may be on disk, while the most recent differential may be on tape
-          (though the differential on disk may differ even only a second or
-          so).  Bacula will complain that the backups reside on different
-          media then.  For now the only solution now when restoring things
-          when you have 2 pools is to manually search for the right
-          job-id's and enter them by hand, which is a bit fault tolerant.
-
-Item 38:  Include timestamp of job launch in "stat clients" output
-  Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
-  Date:   Tue Aug 22 17:13:39 EDT 2006
-  Status:
-
-  What:   The "stat clients" command doesn't include any detail on when
-          the active backup jobs were launched.
-
-  Why:    Including the timestamp would make it much easier to decide whether
-          a job is running properly. 
-
-  Notes:  It may be helpful to have the output from "stat clients" formatted 
-          more like that from "stat dir" (and other commands), in a column
-          format. The per-client information that's currently shown (level,
-          client name, JobId, Volume, pool, device, Files, etc.) is good, but
-          somewhat hard to parse (both programmatically and visually), 
-          particularly when there are many active clients.
-
-
-Item 39:  Message mailing based on backup types
- Origin:  Evan Kaufman <evan.kaufman@gmail.com>
-   Date:  January 6, 2006
- Status:
-
-   What:  In the "Messages" resource definitions, allowing messages
-          to be mailed based on the type (backup, restore, etc.) and level
-          (full, differential, etc) of job that created the originating
-          message(s).
-
- Why:     It would, for example, allow someone's boss to be emailed
-          automatically only when a Full Backup job runs, so he can
-          retrieve the tapes for offsite storage, even if the IT dept.
-          doesn't (or can't) explicitly notify him.  At the same time, his
-          mailbox wouldnt be filled by notifications of Verifies, Restores,
-          or Incremental/Differential Backups (which would likely be kept
-          onsite).
-
- Notes:   One way this could be done is through additional message types, for example:
-
-   Messages {
-     # email the boss only on full system backups
-     Mail = boss@mycompany.com = full, !incremental, !differential, !restore, 
-            !verify, !admin
-     # email us only when something breaks
-     MailOnError = itdept@mycompany.com = all
-   }
-
-
-Item 40:  Include JobID in spool file name ****DONE****
-  Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
-  Date:   Tue Aug 22 17:13:39 EDT 2006
-  Status: Done. (patches/testing/project-include-jobid-in-spool-name.patch)
-          No need to vote for this item.
-
-  What:   Change the name of the spool file to include the JobID
-
-  Why:    JobIDs are the common key used to refer to jobs, yet the 
-          spoolfile name doesn't include that information. The date/time
-          stamp is useful (and should be retained).
-
-============= New Freature Requests after vote of 26 Jan 2007 ========
-Item  41: Enable to relocate files and directories when restoring
-  Date:   2007-03-01
-  Origin: Eric Bollengier <eric@eb.homelinux.org>
-  Status: Done.
-
-  What:   The where= option is not powerful enough. It will be
-          a great feature if bacula can restore a file in the
-          same directory, but with a different name, or in 
-          an other directory without recreating the full path.
-
-  Why:    When i want to restore a production environment to a
-          development environment, i just want change the first
-          directory. ie restore /prod/data/file.dat to /rect/data/file.dat.
-          At this time, i have to move by hand files. You must have a big
-          dump space to restore and move data after.
-
-          When i use Linux or SAN snapshot, i mount them to /mnt/snap_xxx
-          so, when a restore a file, i have to move by hand
-          from /mnt/snap_xxx/file to /xxx/file. I can't replace a file
-          easily.
-
-          When a user ask me to restore a file in its personal folder,
-          (without replace the existing one), i can't restore from
-          my_file.txt to my_file.txt.old witch is very practical.
-
-          
-  Notes:  I think we can enhance the where= option very easily by
-          allowing regexp expression. 
-
-          Since, many users think that regexp are not user friendly, i think
-          that bat, bconsole or brestore must provide a simple way to
-          configure where= option (i think to something like in
-          openoffice "search and replace").
-
-          Ie, if user uses where=/tmp/bacula-restore, we keep the old
-          fashion.
-
-          If user uses something like where=s!/prod!/test!, files will
-          be restored from /prod/xxx to /test/xxx.
-
-          If user uses something like where=s/$/.old/, files will
-          be restored from /prod/xxx.txt to /prod/xxx.txt.old.
-
-          If user uses something like where=s/txt$/old.txt/, files will
-          be restored from /prod/xxx.txt to /prod/xxx.old.txt
-
-          if user uses something like where=s/([a-z]+)$/old.$1/, files will
-          be restored from /prod/xxx.ext to /prod/xxx.old.ext
-
-Item n:   Implement Catalog directive for Pool resource in Director
-configuration 
-  Origin: Alan Davis adavis@ruckus.com
-  Date:   6 March 2007
-  Status: Submitted
-  What:   The current behavior is for the director to create all pools
-          found in the configuration file in all catalogs.  Add a
-          Catalog directive to the Pool resource to specify which
-          catalog to use for each pool definition.
-  Why:    This allows different catalogs to have different pool
-          attributes and eliminates the side-effect of adding
-          pools to catalogs that don't need/use them.
-  Notes:  
-
-
-Item n:   Implement NDMP protocol support
-  Origin: Alan Davis
-  Date:   06 March 2007
-  Status: Submitted
-
-  What:   Network Data Management Protocol is implemented by a number of
-          NAS filer vendors to enable backups using third-party
-          software.
-
-  Why:    This would allow NAS filer backups in Bacula without incurring
-          the overhead of NFS or SBM/CIFS.
-
-  Notes:  Further information is available:
-          http://www.ndmp.org
-          http://www.ndmp.org/wp/wp.shtml
-          http://www.traakan.com/ndmjob/index.html
-
-          There are currently no viable open-source NDMP
-          implementations.  There is a reference SDK and example
-          app available from ndmp.org but it has problems
-          compiling on recent Linux and Solaris OS'.  The ndmjob
-          reference implementation from Traakan is known to
-          compile on Solaris 10.
-
-  Notes (Kern): I am not at all in favor of this until NDMP becomes
-          an Open Standard or until there are Open Source libraries
-          that interface to it.
-
-Item n: make changing "spooldata=yes|no" possible for
-        manual/interactive jobs
-
-Origin: Marc Schiffbauer <marc@schiffbauer.net>
-
-Date:   12 April 2007)
-
-Status: NEW
-
-What:   Make it possible to modify the spooldata option
-        for a job when being run from within the console.
-        Currently it is possible to modify the backup level
-        and the spooldata setting in a Schedule resource.
-        It is also possible to modify the backup level when using
-        the "run" command in the console. 
-        But it is currently not possible to to the same 
-        with "spooldata=yes|no" like:
-
-        run job=MyJob level=incremental spooldata=yes
-
-Why:    In some situations it would be handy to be able to switch
-        spooldata on or off for interactive/manual jobs based on
-        which data the admin expects or how fast the LAN/WAN
-        connection currently is.
-
-Notes:  ./.
-
-============= Empty Feature Request form ===========
-Item  n:  One line summary ...
-  Date:   Date submitted 
-  Origin: Name and email of originator.
-  Status: 
-
-  What:   More detailed explanation ...
-
-  Why:    Why it is important ...
-
-  Notes:  Additional notes or features (omit if not used)
-============== End Feature Request form ==============
-
-</pre>
-
-        </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/requirements.php b/docs/home-page/pages/requirements.php
deleted file mode 100644 (file)
index 5bd5332..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                System Requirements
-        </td>
-</tr>
-<tr>
-   <td class="content">
-
-   <ul class="hardware">
-      <li><b>Bacula</b> has been compiled and run on Linux, FreeBSD,
-              and Solaris systems.</li>
-      <li>It requires GNU C++ version 2.95 or higher to compile.  You can try
-              with other compilers and older versions, but you are on your
-              own.  We have successfully compiled and used Bacula on
-              RH8.0/RH9/RHEL 3.0 with GCC 3.2.  Note, in general GNU C++ is a
-              separate package (e.g.  RPM) from GNU C, so you need them both
-              loaded.  On RedHat systems, the C++ compiler is part of the
-              <b>gcc-c++</b> rpm package.  </li>
-      <li>There are certain third party packages that Bacula needs.
-              Except for MySQL and PostgreSQL, they can all be found in the
-              <b>depkgs</b> and <b>depkgs1</b> releases.</li>
-      <li>If you want to build the Win32 binaries, you should know
-              that they are cross-compiled on a Linux machine. For
-              more information, please see the src/win32/README.mingw32
-              file in the source distribution.
-              Although we document it, we do not support building the
-              Win32 binaries. Only the Win32 File daemon is officially
-              supported, though the other daemons are available in the
-              binary release.</li>
-      <li><b>Bacula</b> requires a good implementation of pthreads to work.
-              This is not the case on some of the BSD systems.</li>
-      <li>The source code has been written with portability in mind and is
-              mostly POSIX compatible. Thus porting to any POSIX compatible
-              operating system should be relatively easy.</li>
-      <li>The GNOME Console program is developed and tested under GNOME 2.x.
-              </li>
-      <li>The wxWidgets Console program is developed and tested with the
-              latest stable version of <a
-              href="http://www.wxwidgets.org/">wxWidgets</a> (2.6).  It
-              works fine with the Windows and GTK+-2.x version of wxWidgets,
-              and should also works on other platforms supported by
-              wxWidgets.</li>
-      <li>The Tray Monitor program is developed for GTK+-2.x. It needs
-              Gnome &gt;=2.2, KDE &gt;=3.1 or any window manager supporting the
-              <a href="http://www.freedesktop.org/Standards/systemtray-spec">
-              FreeDesktop system tray standard</a>.</li>
-      <li>If you want to enable command line editing and history, you will
-              need to have /usr/include/termcap.h and either the termcap or the
-              ncurses library loaded (libtermcap-devel or ncurses-devel).</li>
-   </ul>
-
-   </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/support.php b/docs/home-page/pages/support.php
deleted file mode 100644 (file)
index 64b1c40..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-   <td class="contentTopic"> Support for Bacula </td>
-</tr>
-<tr>
-   <td class="content">
-
-   Please keep in mind that we are not getting paid for this.
-   Nevertheless, our desire is to see as many people using
-   <b>Bacula</b> as possible. So we are very willing to
-   provide a reasonable level of email support.
-
-   <p>Before asking for help, it could be useful to check against the
-   email archive as often solution to your problem has been discussed
-   or a patch has been released. Please see:
-   <a href="http://news.gmane.org/search.php?match=bacula">
-   http://news.gmane.org/search.php?match=bacula</a>.
-
-   Also, if you are using Bacula in production, we highly recommend
-   subscribing to the bugs database at: <a href="http://bugs.bacula.org">
-   http://bugs.bacula.org</a> to keep informed of problems and 
-   patches.
-
-   <p>For support, send an email to
-   <b>bacula-users at lists.sourceforge.net</b>, and if you are
-   specific enough, some kind Bacula user will help you. Please
-   note that if you don't at least specify what version of Bacula
-   and what platform you are using, it will not be easy to get a
-   valid answer.  The email address noted above
-   was modified to prevent easy use by spammers.
-   To use it, you must replace the <b>at</b> with an @ symbol. Due
-   to the increasing volumes of spam on the list, you must 
-   be subscribed to it to be able to send and email to it.  The
-   link to your left entitled <b>Email Lists</b> provides links
-   to where you can subscribe to each of the Bacula email lists.
-    
-   The users constantly monitor this list and will generally provide
-   support. Please see <b>Information Needed</b> below for what to
-   include in your support request. If you don't supply the necessary
-   information, it will take longer to respond to your request, and
-   users may be afraid to try to respond,
-   if your request is too complicated or not well formulated.
-
-
-   <p>I (Kern) get a number of &quot;off-list&quot; emails sent
-   directly to me. Unfortunately, I am no longer able to provide
-   direct user support. However, I do read all the email sent and
-   occasionally provide a tip or two. If you do send email to me,
-   please always copy the appropriate list, if you
-   do not copy the list, I may not answer you, or I will answer by copying
-   the list. If you <em>really</em> have something confidential,
-   please clearly indicate it.</p>
-
-   <p>If you send a bug report or minor enhancement request because of a
-   problem to the bacula-devel list, and you do not provide the information
-   requested below, particularly the Bacula version, it is <b>very</b>
-   frustrating for us, because it is quite often the case that your problem is
-   version dependent, and likely already fixed.  In such case, we will note
-   the problem, but you will be unlikely to get a response, especially if we
-   are busy, because it forces us to first ask you what version you are using
-   (or other information), then deal with your response, thus doubling the
-   time for us.  If we do ask you for information, please include <b>all</b>
-   the previous correspondence in each email, otherwise you force us to search
-   the archives to find what you previously wrote.  In short, if you want a
-   response, please see &quot;Information Needed&quot; below.
-
-   <p>If you are looking for live-support you might check out our irc-channel
-   in the <a href="http://www.freenode.net">Freenode</a> net, called #bacula.
-
-<h3>Information Needed</h3>
-For us to respond to a bug report, we normally need the following
-as the minimum information, which you can enter into the appropriate
-fields of the bug reporting system:
-<ul>
-<li>Your operating system</li>
-<li>The version of Bacula you are using</li>
-<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
-<li>If you say &quot;it crashes&quot;, &quot;it doesn't work&quot; or something
-  similar, you should include some output from Bacula that shows this.</li>
-<li>If we respond to your email, and you answer, possibly supplying more
-  information, please be sure to include the <b>full</b> text of previous
-  emails so that we have all the information in one place.</li>
-</ul>
-If you are having tape problems, please include:
-<ul>
- <li>The kind of tape drive you have </li>
- <li>Have you run the <b>btape</b> &quot;test&quot; command?</li>
-</ul>
-
-If you are having database problems, please include:
-<ul>
- <li>The database you are using: MySQL, PostgreSQL, SQLite, SQLite3 </li>
- <li>The version of the database you are using</li>
-</ul>
-
-The first two of these items can be fulfilled by sending
-us a copy of your <b>config.out</b> file, which is in the
-main <b>Bacula</b> source directory after you have done
-your <b>./configure</b>.
-<p>In addition, we will sometimes need a copy of your Bacula
-configuration files (especially bacula-dir.conf). If you
-think it is a configuration problem, please don't hesitate
-to send them if necessary.</td>
-</tr>
-<tr>
-   <td style="font-size: 14px; padding: 0px 20px 0px 20px">
-   Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
-   </td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/testimonial.php b/docs/home-page/pages/testimonial.php
deleted file mode 100644 (file)
index d9458c3..0000000
+++ /dev/null
@@ -1,917 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<?
-$dat_dir = '../testimonials';
-
-$org_type_lst = array(
-       '0'   => "SELECT ONE",
-       '15'  => "Church / Religious Organization",
-       '3'   => "Corporation",
-       '14'  => "Educational Institution",
-       '5'   => "Government",
-       '6'   => "Military",
-       '13'  => "Non-Profit Organization",
-       '10'  => "Other",
-       '4'   => "Small Business"
-);
-
-$version_lst = array(
-       '0'   => "SELECT ONE",
-       '1'   => "1.36.x",
-       '2'   => "1.38.x",
-       '3'   => "2.0.x",
-       '4'   => "2.2.x",
-       '5'   => "SVN version"
-);
-
-$catalog_lst = array(
-       '0'   => "SELECT ONE",
-       '1'   => "MySQL",
-       '2'   => "PostgreSQL",
-       '3'   => "SqLite"
-);
-
-$org_industry_lst = array(
-   '0'   => 'SELECT ONE',                               '25'  => 'Aerospace / Aeronautical',
-   '11'  => 'Agriculture / Farming',                    '38'  => 'Architecture / Design',
-   '44'  => 'Arts',                                     '5'   => 'ASP',
-   '54'  => 'Banking',
-   '42'  => 'Church / Religious Organization',          '45'  => 'Coaching',
-   '10'  => 'Construction',                             '22'  => 'Consulting (General)',
-   '21'  => 'Consulting (Information Technology)',      '31'  => 'Defense Industry',
-   '51'  => 'Education / Training',                     '37'  => 'Energy Industry',
-   '46'  => 'Engineering',                              '35'  => 'Entertainment (Film)',
-   '34'  => 'Entertainment (Music)',                    '36'  => 'Entertainment (Other)',
-   '47'  => 'Event Management / Conferences',           '7'   => 'Finance / Banking / Accounting',
-   '12'  => 'Food Service Industry',                    '29'  => 'Government',
-   '3'   => 'Healthcare / Medicine',                    '8'   => 'Higher Education',
-   '6'   => 'Insurance',                                '4'   => 'Internet Service Provider',
-   '2'   => 'K-12 Education',                           '48'  => 'Law Enforcement / Emergency Management',
-   '14'  => 'Legal',                                    '24'  => 'Manufacturing (Computer Equipment)',
-   '23'  => 'Manufacturing (General)',                  '53'  => 'Media (Publishing, Broadcasting, etc)',
-   '30'  => 'Military',                                 '9'   => 'Mining',
-   '18'  => 'Natural Resources / Environment',          '15'  => 'Pharmaceuticals',
-   '49'  => 'Public Relations / Advertising',           '13'  => 'Real Estate',
-   '41'  => 'Retail / Consumer Goods',                  '52'  => 'Sales / Marketing',
-   '32'  => 'Scientific Research',                      '33'  => 'Sports / Recreation',
-   '43'  => 'Technical College / Trade School',         '40'  => 'Telecommunications',
-   '27'  => 'Transportation Industry (Air)',            '28'  => 'Transportation Industry (General)',
-   '26'  => 'Transportation Industry (Marine)',         '50'  => 'Travel / Tourism / Lodging',
-   '17'  => 'Travel Industry',                          '39'  => 'Utilities / Public Works',
-   '16'  => 'Other'                             
-);
-
-$os_lst = array(
-   '0'  =>  'SELECT ONE',                       '20' =>  'AIX',
-   '21' =>  'FreeBSD',                          '14' =>  'HP-UX',
-   '2'  =>  'Linux (Debian)',                   '27' =>  'Linux (Fedora)',
-   '25' =>  'Linux (Gentoo)',                   '4'  =>  'Linux (Mandrake)',
-   '5'  =>  'Linux (Other)',                    '1'  =>  'Linux (RedHat)',
-   '26' =>  'Linux (Slackware)',                '3'  =>  'Linux (Suse)',
-   '18' =>  'Mac OS X',                         '22' =>  'NetBSD',
-   '23' =>  'OpenBSD',                          '24' =>  'Other',
-   '13' =>  'Solaris',                          '15' =>  'Windows 2000',
-   '16' =>  'Windows 2003',                     '17' =>  'Windows XP'
-); 
-
-$country_lst = array(
-   '0'   =>  'SELECT ONE',              '1'   =>  'Afghanistan',
-   '2'   =>  'Albania',                 '3'   =>  'Algeria',
-   '4'   =>  'American Samoa',          '5'   =>  'Andorra',
-   '6'   =>  'Angola',                  '7'   =>  'Anguilla',
-   '8'   =>  'Antarctica',              '9'   =>  'Antigua and Barbuda',
-   '10'  =>  'Argentina',               '11'  =>  'Armenia',
-   '12'  =>  'Aruba',                   '13'  =>  'Australia',
-   '14'  =>  'Austria',                 '15'  =>  'Azerbaijan',
-   '16'  =>  'Bahamas',                 '17'  =>  'Bahrain',
-   '18'  =>  'Bangladesh',              '19'  =>  'Barbados',
-   '20'  =>  'Belarus',                 '21'  =>  'Belgium',
-   '22'  =>  'Belize',                  '23'  =>  'Benin',
-   '24'  =>  'Bermuda',                 '25'  =>  'Bhutan',
-   '26'  =>  'Bolivia',                 '27'  =>  'Bosnia and Herzegovina',
-   '28'  =>  'Botswana',                '29'  =>  'Bouvet Island',
-   '30'  =>  'Brazil',                  '31'  =>  'Brunei Darussalam',
-   '32'  =>  'Bulgaria',                '33'  =>  'Burkina Faso',
-   '34'  =>  'Burundi',                 '35'  =>  'Cambodia',
-   '36'  =>  'Cameroon',                '37'  =>  'Canada',
-   '38'  =>  'Cape Verde',              '39'  =>  'Cayman Islands',
-   '40'  =>  'Central African Republic','41'  =>  'Chad',
-   '42'  =>  'Chile',                   '43'  =>  'China',
-   '44'  =>  'Christmas Island',        '45'  =>  'Colombia',
-   '46'  =>  'Comoros',                 '47'  =>  'Congo',
-   '48'  =>  'Cook Islands',            '49'  =>  'Costa Rica',
-   '54'  =>  "Ivory Coast",             '50'  =>  'Croatia',
-   '51'  =>  'Cuba',                    '52'  =>  'Cyprus',
-   '53'  =>  'Czech Republic',          '55'  =>  'Denmark',
-   '56'  =>  'Djibouti',                '57'  =>  'Dominica',
-   '58'  =>  'Dominican Republic',      '59'  =>  'East Timor',
-   '60'  =>  'Ecuador',                 '61'  =>  'Egypt',
-   '62'  =>  'El Salvador',             '63'  =>  'Equatorial Guinea',
-   '64'  =>  'Eritrea',                 '65'  =>  'Estonia',
-   '66'  =>  'Ethiopia',                '67'  =>  'Falkland Islands',
-   '68'  =>  'Faroe Islands',           '69'  =>  'Fiji',
-   '70'  =>  'Finland',                 '71'  =>  'France',
-   '72'  =>  'French Guiana',           '73'  =>  'French Polynesia',
-   '74'  =>  'Gabon',                   '75'  =>  'Gambia',
-   '76'  =>  'Georgia',                 '77'  =>  'Germany',
-   '78'  =>  'Ghana',                   '79'  =>  'Gibraltar',
-   '80'  =>  'Greece',                  '81'  =>  'Greenland',
-   '82'  =>  'Grenada',                 '83'  =>  'Guadeloupe',
-   '84'  =>  'Guam',                    '85'  =>  'Guatemala',
-   '86'  =>  'Guinea',                  '87'  =>  'Guinea-Bissau',
-   '88'  =>  'Guyana',                  '89'  =>  'Haiti',
-   '90'  =>  'Honduras',                '91'  =>  'Hong Kong',
-   '92'  =>  'Hungary',                 '93'  =>  'Iceland',
-   '94'  =>  'India',                   '95'  =>  'Indonesia',
-   '96'  =>  'Iran',                    '97'  =>  'Iraq',
-   '98'  =>  'Ireland',                 '99'  =>  'Israel',
-   '100' =>  'Italy',                   '101' =>  'Jamaica',
-   '102' =>  'Japan',                   '103' =>  'Jordan',
-   '104' =>  'Kazakstan',               '105' =>  'Kenya',
-   '106' =>  'Kiribati',                '107' =>  'Kuwait',
-   '108' =>  'Kyrgystan',               '109' =>  'Lao',
-   '110' =>  'Latvia',                  '111' =>  'Lebanon',
-   '112' =>  'Lesotho',                 '113' =>  'Liberia',
-   '232' =>  'Libya',                   '114' =>  'Liechtenstein',
-   '115' =>  'Lithuania',               '116' =>  'Luxembourg',
-   '117' =>  'Macau',                   '118' =>  'Macedonia (FYR)',
-   '119' =>  'Madagascar',              '120' =>  'Malawi',
-   '121' =>  'Malaysia',                '122' =>  'Maldives',
-   '123' =>  'Mali',                    '124' =>  'Malta',
-   '125' =>  'Marshall Islands',        '126' =>  'Martinique',
-   '127' =>  'Mauritania',              '128' =>  'Mauritius',
-   '129' =>  'Mayotte',                 '130' =>  'Mexico',
-   '131' =>  'Micronesia',              '132' =>  'Moldova',
-   '133' =>  'Monaco',                  '134' =>  'Mongolia',
-   '135' =>  'Montserrat',              '136' =>  'Morocco',
-   '137' =>  'Mozambique',              '138' =>  'Myanmar',
-   '139' =>  'Namibia',                 '140' =>  'Nauru',
-   '141' =>  'Nepal',                   '142' =>  'Netherlands',
-   '143' =>  'Netherlands Antilles',    '144' =>  'Neutral Zone',
-   '145' =>  'New Caledonia',           '146' =>  'New Zealand',
-   '147' =>  'Nicaragua',               '148' =>  'Niger',
-   '149' =>  'Nigeria',                 '150' =>  'Niue',
-   '151' =>  'Norfolk Island',          '152' =>  'North Korea',
-   '153' =>  'Northern Mariana Islands','154' =>  'Norway',
-   '155' =>  'Oman',                    '156' =>  'Pakistan',
-   '157' =>  'Palau',                   '158' =>  'Panama',
-   '159' =>  'Papua New Guinea',        '160' =>  'Paraguay',
-   '161' =>  'Peru',                    '162' =>  'Philippines',
-   '163' =>  'Pitcairn',                '164' =>  'Poland',
-   '165' =>  'Portugal',                '166' =>  'Puerto Rico',
-   '167' =>  'Qatar',                   '168' =>  'Reunion',
-   '169' =>  'Romania',                 '170' =>  'Russian Federation',
-   '171' =>  'Rwanda',                  '172' =>  'Saint Helena',
-   '173' =>  'Saint Kitts and Nevis',   '174' =>  'Saint Lucia',
-   '175' =>  'Saint Pierre and Miquelon','231' =>  'Saint Vincent and the Grenadines',
-   '176' =>  'Samoa',                   '177' =>  'San Marino',
-   '178' =>  'Sao Tome and Principe',   '179' =>  'Saudi Arabia',
-   '180' =>  'Senegal',                 '227' =>  'Serbia and Montenegro',
-   '181' =>  'Seychelles',              '182' =>  'Sierra Leone',
-   '183' =>  'Singapore',               '184' =>  'Slovakia',
-   '185' =>  'Slovenia',                '186' =>  'Solomon Islands',
-   '187' =>  'Somalia',                 '188' =>  'South Africa',
-   '189' =>  'South Georgia',           '190' =>  'South Korea',
-   '191' =>  'Spain',                   '192' =>  'Sri Lanka',
-   '193' =>  'Sudan',                   '194' =>  'Suriname',
-   '195' =>  'Swaziland',               '196' =>  'Sweden',
-   '197' =>  'Switzerland',             '198' =>  'Syria',
-   '199' =>  'Taiwan',                  '200' =>  'Tajikistan',
-   '201' =>  'Tanzania',                '202' =>  'Thailand',
-   '203' =>  'Togo',                    '204' =>  'Tokelau',
-   '205' =>  'Tonga',                   '206' =>  'Trinidad and Tobago',
-   '207' =>  'Tunisia',                 '208' =>  'Turkey',
-   '209' =>  'Turkmenistan',            '210' =>  'Turks and Caicos Islands',
-   '211' =>  'Tuvalu',                  '212' =>  'Uganda',
-   '213' =>  'Ukraine',                 '214' =>  'United Arab Emirates',
-   '215' =>  'United Kingdom',          '216' =>  'United States of America',
-   '217' =>  'Uruguay',                 '218' =>  'Uzbekistan',
-   '219' =>  'Vanuatu',                 '233' =>  'Vatican City',
-   '220' =>  'Venezuela',               '221' =>  'Vietnam',
-   '222' =>  'Virgin Islands (British)','223' =>  'Virgin Islands (U.S.)',
-   '224' =>  'Wallis and Futuna Islands','225' =>  'Western Sahara',
-   '226' =>  'Yemen',                   '228' =>  'Zaire',
-   '229' =>  'Zambia',                  '230' =>  'Zimbabwe'
-);
-
-if ($_REQUEST['btnSubmit'] == 'Add' or $_REQUEST['btnSubmit'] == 'Modify')
-{
-
-?>
-<table>
-<tr>
-        <td class="contentTopic">
-                <? echo $_REQUEST['btnSubmit'] ?> Testimonial
-        </td>
-</tr>
-<tr>
-        <td class="content">
-
-Want to let others know you're using Bacula? Submit a user profile!  Your
-submission will be reviewed before being made publicly available.  We reserve
-the right to edit your submission for spelling, grammar, etc. You will receive
-an email when your profile has been approved for public viewing. Note that
-while your contact name and email address are required (to verify
-information if necessary), you can choose to have them not be published along
-with your profile information.  
-<br/><br/>
-Fields marked with a * are required. Read the privacy notice below for
-information about how this data will be used.
-
-        </td>
-</tr>
-
-<tr>
-        <td class="content">
-<form enctype="multipart/form-data" method='post' action='?page=testimonial'>
-<input type='hidden' name='page' value='testimonial'>
-<table border='0' class='Content'>
-
-<td class='ItemName'>
-<font color='red'>*</font>Contact Name:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' id='contact_name' 
-name='contact_name' size='30' maxlength='100' value=''></td>
-<td class='ItemName'>Publish Contact Name?</td>
-<td class='ItemValue'><select name='publish_contact' class='ItemValue'>
-<option id='publish_contact_0'  value='0' SELECTED>No
-<option id='publish_contact_1' value='1'>Yes
-</select></td>
-</tr>
-
-<tr>
-<td class='ItemName'><font color='red'>*</font>Email Address:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='email_address' 
-id='email_address' size='30' maxlength='150' value=''></td>
-<td class='ItemName'>Publish Email Address?</td><td class='ItemValue'>
-<select name='publish_email' class='ItemValue'>
-<option value='0' id='publish_email_0' SELECTED>No
-<option value='1' id='publish_email_1' >Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'>Job Description/Title:</td>
-<td class='ItemValue'>
-<input type='text' name='title' id='title' size='30' maxlength='100' value=''></td></tr>
-<tr><td colspan=4><br></td></tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Name:</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' name='org_name' id='org_name' 
-size='30' maxlength='100' value=''>
-</td><td class='ItemName'>Publish Org Name?</td><td class='ItemValue'>
-<select name='publish_orgname' class='ItemValue'>
-<option value='0' id='publish_orgname_0' >No
-<option value='1' id='publish_orgname_1' SELECTED>Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Type:</td>
-<td class='ItemValue' colspan='3'>
-<select name='orgtype_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($org_type_lst))
-{
- echo "<option id='orgtype_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Industry/Function:</td>
-<td class='ItemValue' colspan='3'>
-<select name='orgindustry_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($org_industry_lst))
-{
- echo "<option id='orgindustry_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td class='ItemName'>
-<font color='red'>*</font>Approx. Organization Size (# of Users):</td>
-<td class='ItemValue'>
-<input type='text' id='org_size' class='ItemValue' name='org_size' 
-size='4' maxlength='6' value=''></td>
-<td class='ItemName'>Publish Org Size?</td><td class='ItemValue'><select name='publish_orgsize' class='ItemValue'>
-<option id='publish_orgsize_0' value='0' >No
-<option id='publish_orgsize_1' value='1' SELECTED>Yes
-</select></td>
-</tr>
-<tr>
-
-<td class='ItemName'>Website URL:</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='website' name='website' size='30'
- maxlength='150' value=''></td>
-<td class='ItemName'>Publish Website?</td><td class='ItemValue'>
-<select name='publish_website' class='ItemValue'>
-<option id='publish_website_0' value='0' >No
-<option id='publish_website_1' value='1' SELECTED>Yes
-</select></td>
-</tr>
-
-<tr>
-<td class='ItemName'>Organization Logo :</td>
-<td class='ItemValue'>
-<input type="file" name="org_logo" title="png, gif or jpeg file only please"/>
-</td><td><i>max width 150px. png, gif or jpeg only</i></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Country:</td>
-<td class='ItemValue'>
-<select name='country_id' class='ItemValue'>
-<?
-while(list ($key, $val) = each ($country_lst))
-{
- echo "<option id='country_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td colspan=4><br></td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Bacula version:</td>
-<td class='ItemValue'>
-<select name='bacula_version' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($version_lst))
-{
- echo "<option id='bacula_version_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Director OS:</td>
-<td class='ItemValue'>
-<select name='ostype_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($os_lst))
-{
- echo "<option id='ostype_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Catalog DB:</td>
-<td class='ItemValue'>
-<select name='catalog_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($catalog_lst))
-{
- echo "<option id='catalog_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr>
-<td class='ItemName'><font color='red'>*</font>Redundant/Failover Backup Setup?</td>
-<td class='ItemValue'><select name='redundant_setup' class='ItemValue'>
-<option value='0' id='redundant_setup_0' SELECTED>No
-<option value='1' id='redundant_setup_1' >Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Number of Clients (Running bacula-fd):</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='number_fd' name='number_fd' 
- size='5' maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'>
-<font color='red'>*</font>Number of Storage Daemons (Running bacula-sd):</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='number_sd' name='number_sd' size='5' 
- maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Total # of GB saved every month:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='month_gb' size='5' 
- id='month_gb' maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Number # of Files:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='number_files'
- id='number_files' title='select count(1) from File;' size='10' maxlength='15' value=''></td>
-</tr>
-<tr>
-
-<td class='ItemName'>Need professional support:</td>
-<td class='ItemValue'>
-<select name='support' class='ItemValue'>
-<option id='support_0' value='0' SELECTED>No
-<option id='support_1' value='1'>Yes
-</select></td>
-</tr>
-
-<tr><td colspan=4><br></td></tr>
-
-<tr><td class='ItemName' valign='top'>Applicable Hardware and Network Information:</td>
-<td class='ItemValue' colspan='3'>
-<textarea name='hardware_comments' wrap='virtual' rows='4' id='hardware_comments'
- cols='60' class='ItemValue'>Loader Description:
-Barcode Reader: Yes/No
-Number of Storage Elements:
-Number of Import/Export Elements:
---
-Nics: 
-...
-</textarea>
-</tr>
-
-<tr><td class='ItemName' valign='top'>General Comments:</td>
-<td class='ItemValue' colspan='3'>
-<textarea name='comments' id='comments' wrap='virtual' rows='4' cols='60' 
- class='ItemValue'></textarea></tr>
-
-<tr><td></td><td>
-<?
- if ($_REQUEST['btnSubmit'] == 'Modify') {
-  echo "<input type='text' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
-  echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Save'>";
-  echo "<input type='submit' name='btnSubmit' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
-  echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
-
-} else {  
-  echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Review Profile Submission'>";
-}
-?>
-
-</td></tr>
-</table>
-</form>
-
-</td>
-</tr>
-<tr>
-
-        <td class="content">
-        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Privacy Notice </h3>
-
-The following information is required, but you may choose to not have it
-published for public viewing if you wish: contact name, email address,
-organization name. We may use this information to verify the data you submit if
-we find the need.
-        </td>
-</tr>
-
-
-</table>
-<?
-
-}
-
-if ($_REQUEST['btnSubmit'] == 'Modify') {
-   $filename = get_file_from_id();
-
-   if (!$filename) {
-       return (0);
-   }
-
-   $formul = load_formul($filename);
-
-   echo "<script type='text/javascript' language='JavaScript'>\n";
-   $attribs = array('contact_name','email_address', 'org_name','title','website',
-                    'month_gb','number_files', 'number_fd','number_sd',
-                    'org_size','comments', 'hardware_comments', 'id');
-   foreach ($attribs as $arr) {
-           form_set_value($formul, $arr);
-   }
-
-   $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
-                    'orgindustry_id', 'publish_orgsize','publish_website', 'bacula_version',
-                    'country_id','ostype_id', 'redundant_setup', 'catalog_id', 'support');
-   foreach ($attribs as $arr) {
-        form_set_selection($formul, $arr);
-   }
-
-   echo "</script>\n";
-
-} elseif ($_REQUEST['btnSubmit'] == 'Review Profile Submission') {
-
-        $form = get_formul();
-        if (!$form) {
-                echo "Sorry, something is missing, I cannot accept your submission";
-        } else {
-                $token = uniqid(md5(rand()), true);
-                $filename = "$dat_dir/profile.$token";
-        
-                $form['filename'] = $filename;  
-                $form['id'] = $token;
-                save_formul($form);
-
-                send_email($form['id'], $form['email_address']);
-                echo "You can modify your profile <a href='?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "'>here</a> (keep this link as bookmark)<br><br>";
-                print_formul($form);
-        }
-
-} elseif ($_REQUEST['btnSubmit'] == 'View') {
-       
-       $file = get_file_from_id();
-
-       if ($file) {
-            print_formul_file($filename,true);
-       }
-
-} elseif ($_REQUEST['btnSubmit'] == 'Delete') {
-
-       $filename = get_file_from_id();
-
-       if (!$filename) {
-           return (0);
-       }
-
-        $form = load_formul($filename);
-        
-        if ($form['org_logo'] && file_exists($form['org_logo'])) {
-            unlink($form['org_logo']);
-        }
-        if (file_exists($filename)) {
-            unlink($filename);
-            echo "Profile deleted";
-        }
-
-} elseif ($_REQUEST['btnSubmit'] == 'Accept' && is_admin()) {
-
-       $filename = get_file_from_id();
-        
-       if (!$filename) {
-           return (0);
-       }
-
-        $form = load_formul($filename);
-
-       $hide = $_REQUEST['hide'];
-
-        if ($hide) {
-                $form['visible']=0;
-        } else {
-               $form['visible']=1;
-       }
-        save_formul($form);
-        echo $form['id'] . " is now " . ($hide?"un":"") . "visible";
-        print_formul($form);
-
-} elseif ($_REQUEST['btnSubmit'] == 'Save') {
-       
-       $filename = get_file_from_id();
-
-       if (!$filename) {
-           return (0);
-       }
-
-        $form = get_formul();
-
-        $form['filename'] = $filename;  
-        $form['id'] = $_REQUEST['id'];  // id is clean
-//      $form['visible'] = false;
-
-        if (!$form['org_logo']) {
-            $form_old = load_formul($filename);
-            $form['org_logo'] = $form_old['org_logo'];
-        }
-
-        save_formul($form);
-
-        echo "Your profile has been modified.<br>";
-        print_formul($form);
-
-} elseif ($_REQUEST['btnSubmit'] == 'Admin' && is_admin()) {
-
-
-    $pass = $_REQUEST['passwd']; // passwd is clean
-    $waiting = $_REQUEST['waiting'];
-    
-    if ($waiting) {
-       print '<a href="?page=testimonial&btnSubmit=Admin&passwd=' . $pass . '"> View all</a><br>';
-       print "<h1>View all waiting testimonials</h1>";
-    } else {
-       print '<a href="?page=testimonial&btnSubmit=Admin&waiting=1&passwd=' . $pass . '"> View Waiting</a><br>';
-       print "<h1>View all testimonials</h1>";
-    }
-
-    if ($handle = opendir($dat_dir)) {
-    /* Ceci est la facon correcte de traverser un dossier. */
-            while (false !== ($file = readdir($handle))) {
-                if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
-                     $form = load_formul("$dat_dir/$file") ;
-                       // on affiche ceux qui sont en attente ou bien tous
-                    if (!$waiting || !$form['visible']) {
-                       print_formul($form);
-                       if ($form['visible']) {
-                          print "<a href=\"?page=testimonial&btnSubmit=Accept&hide=1&passwd=" . $pass . "&id=" . $form['id'] . "\"> Hide </a> | \n";
-                       } else {
-                          print "<a href=\"?page=testimonial&btnSubmit=Accept&passwd=" . $pass . "&id=" . $form['id'] . "\"> Accept </a> | \n";
-                       }
-                       print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "\"> Modify </a> | \n";
-                       print "<a href=\"?page=testimonial&btnSubmit=AdminExport&passwd=" . $pass . "&id=" . $form['id'] . "\"> Export </a><br><br>\n";
-
-                    }
-                }
-            } 
-            closedir($handle);
-    } 
-
-} elseif (!$_REQUEST['btnSubmit'] || $_REQUEST['btnSubmit'] == 'ViewAll') {
-
-    $limit = $_REQUEST['limit'];
-    $offset = $_REQUEST['offset'];
-
-    $limit = is_int($limit)?$limit:10;
-    $offset = is_int($offset)?$limit:0;
-
-    $admin = is_admin();
-
-    if ($limit > 20) { $limit = 20 ;}
-
-    echo "<a href='?page=testimonial&btnSubmit=Add'>Add a testimonial</a><br><br>";
-
-    if ($handle = opendir($dat_dir)) {
-    /* Ceci est la facon correcte de traverser un dossier. */
-            $i = 0 ;
-            while (false !== ($file = readdir($handle))) {
-                if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
-                    if ($i >= $offset && $i < ($offset + $limit)) {
-                        $i += print_formul_file("$dat_dir/$file",$admin);
-                    }
-
-                    if ($i > ($offset + $limit)) {
-                        break;
-                    }
-                }
-            } 
-            closedir($handle);
-    }
-
-} elseif ($_REQUEST['btnSubmit'] == 'AdminExport' && is_admin()) {
-
-   $file = get_file_from_id();
-   if (!$file) {
-       return 0;
-   }
-   $form = load_formul($file);
-   if ($form) {
-       export_form($form);
-   }
-} else {
-       print "Invalid btnSubmit<br>";
-}
-
-function export_form($formul)
-{
-        global $country_lst, $org_type_lst, $org_industry_lst, $os_lst, $catalog_lst;
-
-        $attribs = array('contact_name','email_address', 'org_name','title','website',
-                        'hardware_comments','comments',
-                        'publish_contact','publish_email', 'publish_orgname','org_size','redundant_setup',
-                        'date','visible', 'support',
-                        'number_fd','number_sd','month_gb','number_files','publish_orgsize','publish_website');
-       print "<pre>\n";
-        foreach ($attribs as $arr) {
-               print "$arr = " . $formul[$arr] . "\n";
-        }
-
-       print "orgtype = " . $org_type_lst[$formul['orgtype_id']] . "\n";
-       print "orgindustry = " . $org_industry_lst[$formul['orgindustry_id']] . "\n";
-       print "bacula_version = " . $version_lst[$formul['bacula_version']] . "\n";
-       print "country = " . $country_lst[$formul['country_id']] . "\n";
-       print "ostype = " . $os_lst[$formul['ostype_id']] . "\n";
-       print "catalog = " . $catalog_lst[$formul['catalog_id']] . "\n";
-
-       print "<pre>\n";
-}
-
-function get_file_from_id()
-{
-    global $dat_dir;
-    $id = $_REQUEST['id'];
-
-    if (!ereg('^[a-zA-Z0-9\.]+$',$id)) {
-         return(0) ;
-    }
-
-    $filename="$dat_dir/profile.$id";
-
-    if (!file_exists($filename)) {
-         echo "Can't verify your id";
-         return (0);
-    }       
-
-    return $filename;
-}
-
-function send_email($id, $email)
-{
-        // Your email address
-        $from = 'kern@sibbald.com';
-//        $from = 'eric@eb.homelinux.org';
-
-        // The subject
-        $subject = "[BACULA] New testimonial";
-
-        // The message
-        $message = "Hello, 
-You can modify your new testimonial at http://www.bacula.org/?page=testimonial&btnSubmit=Modify&id=$id
-
-Best regards.
-";
-
-        mail($email, $subject, $message, "From: Bacula WebMaster <$from>");
-        mail($from, $subject, $message, "From: Bacula WebMaster <$from>");
-        mail('eric@eb.homelinux.org', $subject, $message, "From: Bacula WebMaster <$from>");
-
-        echo "The email has been sent for approval.<br/>";
-}
-
-function save_formul($form)
-{
-        $fp = fopen($form['filename'], 'w'); 
-        fwrite($fp, serialize($form));
-        fclose($fp);
-}
-
-function get_formul()
-{
-        global $dat_dir;
-        $formul = array();
-        $attribs = array('contact_name','email_address', 'org_name');
-        foreach ($attribs as $arr) {
-                if (!$_REQUEST[$arr]) {
-                        echo "Can't get $arr<br/>";
-                        return '';
-                }
-                $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
-        }
-
-        $attribs = array('title','website','hardware_comments','comments');
-        foreach ($attribs as $arr) {
-                $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@ -]/', " ", $_REQUEST[$arr]);
-        }
-
-        $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
-                         'orgindustry_id','org_size', 'publish_orgsize','publish_website', 'bacula_version',
-                         'country_id','ostype_id', 'redundant_setup','number_fd','number_sd','support',
-                         'month_gb','number_files','catalog_id');
-        foreach ($attribs as $arr) {
-                if (preg_match("/^[0-9]+$/", $_REQUEST[$arr])) {
-                        $formul[$arr] = $_REQUEST[$arr];
-                }
-        }
-
-        $attribs = array('orgtype_id', 'orgindustry_id', 'org_size', 'country_id','bacula_version',
-                         'catalog_id', 'ostype_id','number_fd','number_sd', 'month_gb','number_files');
-        foreach ($attribs as $arr) {
-                if (!$formul[$arr]) {
-                        echo "Can't get $arr<br/>";
-                        return '';
-                }
-        }
-
-        if ($_FILES['org_logo']) {
-                $token = uniqid(md5(rand()), true);
-                $image = "upload/$token";
-
-                if (preg_match("/(jpg|jpeg)$/i", $_FILES['org_logo']['name'])) {
-                        $image = "$image.jpg";
-                } elseif (preg_match("/png$/i", $_FILES['org_logo']['name'])) {
-                        $image = "$image.png";
-                } elseif (preg_match("/gif$/i", $_FILES['org_logo']['name'])) {
-                        $image = "$image.gif";
-                } else {
-                        $image = '';
-                }
-                if ($image) {
-                        $ret=move_uploaded_file($_FILES['org_logo']['tmp_name'], $image);
-                        $formul['org_logo'] = $image;
-                }
-        }
-        $formul['date'] = time();
-        $formul['visible'] = false;
-
-        return $formul;
-}
-
-function form_set_value($formul,$val)
-{
- echo "document.getElementById('$val').value = '" . $formul[$val] . "';\n";
-}
-
-function form_set_selection($formul,$val)
-{
- echo "document.getElementById('${val}_" . $formul[$val] . "').selected =true;\n";
-}
-
-// passwd file must exist in dat directory
-function is_admin()
-{
-        global $dat_dir;
-        $id = $_REQUEST['passwd'];
-
-        if (!ereg('^[a-zA-Z]+$',$id)) {
-            return(false) ;
-        }
-        
-        if (file_exists("$dat_dir/$id")) {
-            return true;
-        } else {
-            return false;
-        }
-}
-
-function load_formul($filename)
-{
-        if (!file_exists($filename)) {
-                return array();
-        }
-
-        if (!filesize($filename) || filesize($filename) > 10*1024*1024) {
-            return undef;
-        }
-        $fp = fopen($filename, 'r');
-        $contents = fread ($fp, filesize ($filename));
-        fclose ($fp);
-
-        $formul = unserialize($contents);
-        if (!is_array($formul)) {
-            return undef;
-        }
-
-        return $formul;
-}
-
-function print_formul_file($filename, $admin) {
-
-        $formul = load_formul($filename);
-        if (!$formul) {
-                return 0;
-        }
-        
-        if (!$admin) {
-                if (!$formul['visible']) {
-                        return 0;
-                }
-        } else {
-               print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $formul['id'] . "\">Modify</a><br>\n";
-       }
-
-       return print_formul($formul);
-}
-
-function print_formul($formul)
-{
-   global $country_lst, $org_type_lst, $org_industry_lst, $os_lst,$catalog_lst;
-
-   ?>
-   <table width="80%">
-   <td>
-   <b><? echo ($formul['publish_orgname'])?$formul['org_name']:'N/A' ?></b><br>
-   <table>
-   <tr><td> Location: </td><td><? $a = $formul['country_id'] ; echo $country_lst[$a] ?> </td></tr>
-   <tr><td> Organization Type: </td><td><? echo $org_type_lst[$formul['orgtype_id']] ?> </td></tr>
-   <tr><td> Industry/Function: </td><td><? echo $org_industry_lst[$formul['orgindustry_id']] ?> </td></tr>
-
-   <? if ($formul['publish_orgsize']) { ?>
-        <tr><td> Organisation Size: </td><td><? echo $formul['org_size'] ?> </td></tr>
-   <? } ?>
-
-   <? if ($formul['publish_website']) { ?>
-        <tr><td> Website: </td><td><? echo $formul['website'] ?> </td></tr>
-   <? } ?>
-
-   <? if ($formul['number_fd'] > 1) { ?>
-        <tr><td> Number of fd: </td><td><? echo $formul['number_fd'] ?> </td></tr>
-   <? } ?>
-
-   <? if ($formul['month_gb'] > 1) { ?>
-        <tr><td> GB/Month: </td><td><? echo $formul['month_gb'] ?> </td></tr>
-   <? } ?>
-
-   <tr><td> Comments: </td><td width='450'><i><? echo $formul['comments'] ?> </i></td></tr>
-   <? if ($formul['publish_contact']) { ?>
-        <tr align='right'><td></td><td><i><? echo $formul['contact_name'] ?> </i></td></tr>
-   <? } ?>
-   </table>
-   </td>
-   <td>
-   <? if ($formul['org_logo']) { ?>
-        <a href="<? echo $formul['org_logo'] ?>" ><img width='150' src="<? echo $formul['org_logo'] ?>"></a>
-   <? } ?>
-   </td>
-   </table>
-<?
-   return 1;
-}
-
-?>
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/testimonials.php b/docs/home-page/pages/testimonials.php
deleted file mode 100644 (file)
index c92e21d..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                Testimonials
-        </td>
-</tr>
-<tr>
-        <td class="content">
-        Below, you will find excerpts from email that users have sent us.
-        The purpose is to give you some idea of what kinds of
-        sites are running Bacula and how they are using it.
-        These testimonials are used with permission of the author.
-        </td>
-</tr>
-
-<tr>
-        <td class="content">
-        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Norm Dressler - 2004/06/15 </h3>
-        Bacula has been awesome for us. We used to use Ar**** but I
-        have always hated the interface. And the cost was outrageous.
-        Then I found bacula and wow! Everything in Ar**** and then
-        some! The console is easy to use, easy to understand once you
-        get the hang of it, and I usually don't have any problems
-        restoring files! :)
-        <br>
-        I have 15+ machines I backup with Bacula
-        with an autoloader, and I'm extremely happy with the product.
-        Whenever someone asks me about what to use, I point them at
-        Bacula.
-        <p> Norm Dressler, Senior Network Architect</p>
-        </td>
-</tr>
-
-<tr>
-        <td class="content">
-        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Michael Scherer - 2005/02/09 </h3>
-        Our former backup-system was ARGHserve running on NT4.
-        Due to the fact that we replaced most of our servers with
-        Linux machines we had to find some other solution.<br> At
-        first we tried ARGHserve on Linux, without much comfort.
-        Database updates took days to complete, the database
-        itself grew enormously large, ...  not really something
-        you except from such an expensive piece of software.<br>
-        I began the quest for a new backup-solution, testing
-        almost anything I could find on Sourceforge and Freshmeat
-        and finally decided to go with Bacula.<br> It's perfectly
-        maintained by Kern and many others, is an (very) active
-        project with good support through maillists and an
-        irc-channel, which can be found on Freenode.<br>
-        <br>
-        Today we run Bacula on a SuSE based x86 machine with a
-        2.6 kernel, some RAID5-Systems and IBM Ultrium
-        Tapelibrary.  Without any issues and without more work
-        than changing two tapes in the morning.<br>
-        <br>
-        Recoveries aren't complicated as well, you either choose
-        a jobid to restore from or let Bacula find the correct
-        jobid for a file or directory you need to recover.  You
-        mark everything you need, Bacula tells you which tapes it
-        needs, done.<br>
-        You don't even have to wait for any daemon to finish
-        database updates for backuped files, you can start with
-        the recovery right after the backup-job is done.
-        Perfect.  <br>
-
-        <br>
-        <p> Michael Scherer, some admin </p>
-        </td>
-</tr>
-<tr>
-        <td class="content">
-        <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Ludovicz Strappazon - 2005/03/05</h3>
-                I had previously used Veritas Netbackup, but it was really too expensive
-                for our University. Bacula permitted us to buy a library. Now, we use
-                Bacula since 10/2002 with an ADIC Scalar 24 library and LTO ultrium,
-                without any problems. I think it can do anything Netbackup could do with our
-                configuration. We backup seven Linux servers, one NT server, four
-                Windows 2003 servers and a few XP workstations. Some of these servers
-                are backed up across a firewall using ssh; some others are on a private
-                network. We tried succesfully the disaster recovery procedure on Linux
-                and had some good results in restoring Windows "from bare metal". What do I
-                like in Bacula ?  It is very flexible and reliable. With its light
-                interface console, I can manage the backups from everywhere. A few words
-                about the support : it is free but efficient. I don't have to cross a
-                level 1, level 2 helpdesk to have some help, I never felt alone, and the
-                bacula-users mailing list is a mix of courtesy and honest speech. At
-                last, you don't need to be a big company to have your features requests
-                heard.<br>
-                Thanks to Kern Sibbald and the others who give so much work and time
-                for this project.<br>
-                <br>
-                Ludovic Strappazon<br>
-                University Marc Bloch de Strasbourg.<br>
-        </td>
-</tr>
-
-<tr>
-  <td class="content">
-  <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Jeff Richards - 2006/08/26</h3>
-      I used Bacula at my previous employer to backup:  Linux, OpenBSD, Windows 2000,XP,2003, and AIX 5.1 
-      <br>  <br>
-      Bacula provided a solution when I had no budget for backup
-      software.  The Linux systems (about 30) acted as Tivoli (TMF)
-      gateways.  The Linux systems were commodity PCs, so when the IDE
-      HDs failed it took hours (usually at least 4) to clean up the
-      Tivoli environment and rebuild the failed gateway.  Using Bacula
-      and mkCDrec I cut that time down to under an hour, and most of
-      that time was not spent doing anything except waiting for the
-      restore to finish.  I recovered 2 failed Linux systems with
-      Bacula.
-      <br>     
-      I would like to thank you and the entire Bacula team for an
-      excellent piece of software.
-         <br> <br>
-         Jeff Richards<br>
-         Consultant<br>
-  </td>
-</tr>
-
-</table>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/vote.php b/docs/home-page/pages/vote.php
deleted file mode 100644 (file)
index db055aa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-</tr>
-<tr>
-        <td class="content">
-        <p>
-        <img src="images/1.39-wishlist-votes.png">
-        </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
diff --git a/docs/home-page/pages/what.php b/docs/home-page/pages/what.php
deleted file mode 100644 (file)
index 2924cab..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
-        <td class="contentTopic">
-                What is Bacula?
-        </td>
-</tr>
-<tr>
-        <td class="content">
-
-<b>Bacula</b> is a set of computer programs that permit you (or the
-system administrator) to manage backup, recovery, and verification of
-computer data across a network of computers of different kinds. In
-technical terms, it is a network Client/Server based backup program.
-Bacula is relatively easy to use and efficient, while offering many
-advanced storage management features that make it easy to find and
-recover lost or damaged files. Due to its modular design, Bacula is
-scalable from small single computer systems to systems consisting of
-hundreds of computers located over a large network.
-<h3>Who Needs Bacula?</h3>
-If you are currently using a program such as <b>tar</b>, <b>dump</b>, or
-<b>bru</b> to backup your computer data, and you would like a network
-solution, more flexibility, or catalog services, Bacula will most
-likely provide the additional features you want. However, if you are
-new to Unix systems or do not have offsetting experience with a sophisticated
-backup package, we do not recommend using Bacula as it is
-much more difficult to setup and use than <b>tar</b> or <b>dump</b>.
-<p>If you are running <b>Amanda</b> and would like a backup program that
-can write to multiple volumes (i.e. is not limited by your tape drive
-capacity), Bacula can most likely fill your needs. In addition,
-quite a number of our users report that Bacula is simpler to
-setup and use than other equivalent programs.
-<p>If you are
-currently using a sophisticated commercial package such as Legato
-Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested
-in Bacula, which provides many of the same features, and is free
-software available under the GNU Version 2 software license.
-
-<h3>Bacula Components or Services</h3>
-Bacula is made up of the following five major components or services:
-<p style="text-align: center; font-size: small">
-        <img src="images/manual/bacula-applications.png" alt="" width="576" height="734"><br>
-        thanks to Aristedes Maniatis for this graphic and the one below
-</p>
-<p>
-<ul>
-<li><a name="DirDef"></a>
-    <b>Bacula Director</b> service consists of the program that
-     supervises all the backup, restore, verify and archive operations.
-     The system administrator uses the Bacula Director to schedule
-     backups and to recover files. For more details see the <a
-     href="rel-manual/director.html">Director Services Daemon Design Document</a>.
-     The Director runs as a daemon or a service (i.e. in the background).
-</li>
-<li><a name="UADef"></a>
-    <b>Bacula Console</b> services is the program that allows the
-    administrator or user to communicate with the <b>Bacula Director</b>
-    (see above). Currently, the Bacula Console is available in three
-    versions. The first and simplest is to run the Console program in a
-    shell window (i.e. TTY interface). Most system administrators will
-    find this completely adequate. The second version is a GNOME GUI
-    interface that for the moment (23 November 2003) is far from complete,
-    but quite functional as it has most the capabilities of the shell
-    Console. The third version is a wxWidgets GUI with an interactive file
-    restore. It also has most the capabilities of the shell console,
-    allows command completion with tabulation, and gives you instant
-    help about the command you are typing. For more details see the
-    <a href="rel-manual/console.html">Bacula Console Design Document</a>.
-</li>
-<li><a name="FDDef"></a>
-    <b>Bacula File</b> services (or Client program) is the software
-    program that is installed on the machine to be backed up. It is
-    specific to the operating system on which it runs and is responsible
-    for providing the file attributes and data when requested by the
-    Director. The File services are also responsible for the file
-    system dependent part of restoring the file attributes and data
-    during a recovery operation. For more details see the <a
-    href="rel-manual/file.html">File Services Daemon Design Document</a>. This
-    program runs as a daemon on the machine to be backed up, and in some
-    of the documentation, the File daemon is referred to as the Client
-    (for example in Bacula's configuration file). In addition to
-    Unix/Linux File daemons, there is a Windows File daemon (normally
-    distributed in binary format). The Windows File daemon runs on
-    all currently known Windows versions (95, 98, Me, NT, 2000, XP).
-</li>
-<li><a name="SDDef"></a>
-    <b>Bacula Storage</b> services consist of the software programs that
-    perform the storage and recovery of the file attributes and data to
-    the physical backup media or volumes. In other words, the Storage daemon
-    is responsible for reading and writing your tapes (or other
-    storage media, e.g. files). For more details see the <a
-    href="rel-manual/storage.html">Storage Services Daemon Design Document</a>.
-    The Storage services runs as a daemon on the machine that has the
-    backup device (usually a tape drive).
-</li>
-<li><a name="DBDefinition"></a>
-    <b>Catalog</b> services are comprised of the software programs
-    responsible for maintaining the file indexes and volume databases for
-    all files backed up. The Catalog services permit the System
-    Administrator or user to quickly locate and restore any desired
-    file. The Catalog services sets Bacula apart from simple backup
-    programs like tar and bru, because the catalog maintains a record
-    of all Volumes used, all Jobs run, and all Files saved, permitting
-    efficicient restoration and Volume management.
-   Bacula currently supports three different databases, MySQL,
-    PostgreSQL, and SQLite, one of which must be chosen when building
-    <b>Bacula</b>. There also exists an Internal database, but it is no
-    longer supported.
-    <p>
-    The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
-    provide quite a number of features,
-    including rapid indexing, arbitrary queries, and security. Although
-    we plan to support other major SQL databases, the current
-    Bacula implementation interfaces only to MySQL, PostgreSQL and SQLite.
-    For more details see the <a href="rel-manual/catalog.html">Catalog Services
-    Design Document</a>.
-    <p>The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat release,
-    or building it from the source is quite easy, see the
-    <a href="rel-manual/mysql.html"> Installing and Configuring MySQL</a> chapter
-    of this document for the details. For more information on MySQL,
-    please see: <a href="http://www.mysql.com">www.mysql.com</a>.
-    Or see the <a href="rel-manual/postgresql.html"> Installing and Configuring
-    PostgreSQL</a> chapter of this document for the details. For more
-    information on PostgreSQL, please see: <a
-    href="http://www.postgresql.org">www.postgresql.org</a>.
-    <p>Configuring and building SQLite is even easier. For the details
-    of configuring SQLite, please see the <a href="rel-manual/sqlite.html">
-    Installing and Configuring SQLite</a> chapter of this document.
-</li>
-<li><a name="MonDef"></a>
-    <b>Bacula Monitor</b> services is the program that allows the
-    administrator or user to watch current status of <b>Bacula Directors</b>,
-    <b>Bacula File Daemons</b> and <b>Bacula Storage Daemons</b>
-    (see above). Currently, only a GTK+ version is available, which
-    works with Gnome and KDE (or any window manager that supports the
-    FreeDesktop.org system tray standard).
-</li>
-</ul>
-To perform a successful save or restore, the following four daemons
-must be configured and running: the Director daemon, the File daemon,
-the Storage daemon, and MySQL, PostgreSQL or SQLite.
-
-<h3>Bacula Configuration</h3>
-In order for Bacula to understand your system, what clients you
-want backed up, and how, you must create a number of configuration
-files containing resources (or objects). The following presents an
-overall picture of this:
-<p style="text-align: center">
-        <img src="images/manual/bacula-objects.png" alt="" width="576" height="734">
-</p>
-
-<h3>Conventions Used in this Document</h3>
-<b>Bacula</b> is in a state of evolution, and as a consequence,
-this manual will not always agree with the code. If an
-item in this manual is preceded by an asterisk (*), it indicates
-that the particular feature is not implemented. If it is preceded
-by a plus sign (+), it indicates that the feature may be partially
-implemented.
-<p>If you are reading this manual as supplied in a released version
-of the software, the above paragraph holds true. If you are reading
-the online version of the manual, <a href="/dev-manual">
-http://www.bacula.org/rel-manual</a>, please bear in mind that this version
-describes the current version in development (in the SVN) that may
-contain features not in the released version. Just the same,
-it generally lags behind the code a bit.
-<h3>Quick Start</h3>
-To get Bacula up and running quickly, we recommend that you first
-scan the Terminology section below, then quickly review the next chapter
-entitled <a href="rel-manual/state.html">The Current State of Bacula</a>, then the
-<a href="rel-manual/quickstart.html">Quick Start Guide to Bacula</a>, which will
-give you a quick overview of getting Bacula running. After
-which, you should proceed to the
-chapter on <a href="rel-manual/install.html"> Installing Bacula</a>, then <a
-href="rel-manual/configure.html">How to Configure Bacula</a>,
-and finally the chapter on <a href="rel-manual/running.html">
-Running Bacula</a>.
-
-<h3>Terminology</h3>
-To facilitate communication about this project, we provide here
-the definitions of the terminology that we use.
-<dl>
-        <dt>Administrator</dt>
-        <dd>The person or persons responsible for administrating the Bacula system.</dd>
-
-        <dt>Backup</dt>
-        <dd>We use the term <b>Backup</b> to refer to a Bacula Job that saves files. </dd>
-
-        <dt>Bootstrap File</dt>
-        <dd>The bootstrap file is an ASCII file
-    containing a compact form of commands that allow Bacula or
-    the stand-alone file extraction utility (<b>bextract</b>) to
-    restore the contents of one or more Volumes, for example, the
-    current state of a system just backed up. With a bootstrap file,
-    Bacula can restore your system without a Catalog. You can
-    create a bootstrap file from a Catalog to extract any file or
-    files you wish.</dd>
-
-        <dt>Catalog</dt>
-        <dd>The Catalog is used to store summary information
-    about the Jobs, Clients, and Files that were backed up and on
-    what Volume or Volumes. The information saved in the Catalog
-    permits the administrator or user to determine what jobs were
-    run, their status as well as the important characteristics
-    of each file that was backed up. The Catalog is an online resource,
-    but does not contain the data for the files backed up. Most of
-    the information stored in the catalog is also stored on the
-    backup volumes (i.e. tapes). Of course, the tapes will also have
-    a copy of the file in addition to the File Attributes (see below).
-    <p>The catalog feature is one part of Bacula that distinguishes
-    it from simple backup and archive programs such as <b>dump</b>
-    and <b>tar</b>.
-    </dd>
-        
-        <dt>Client</dt>
-        <dd>In Bacula's terminology, the word Client
-    refers to the machine being backed up, and it is synonymous
-    with the File services or File daemon, and quite often, we
-    refer to it as the FD. A Client is defined in a configuration
-    file resource. </dd>
-        
-        <dt>Console</dt>
-        <dd>The program that interfaces to the Director allowing
-    the user or system administrator to control Bacula.</dd>
-        
-        <dt>Daemon</dt>
-        <dd>Unix terminology for a program that is always present in
-    the background to carry out a designated task. On Windows systems, as
-    well as some Linux systems, daemons are called <b>Services</b>.</dd>
-        
-        <dt>Directive</dt>
-        <dd>The term directive is used to refer to a statement
-    or a record within a Resource in a configuration file that
-    defines one specific thing. For example, the <b>Name</b> directive
-    defines the name of the Resource.</dd>
-        
-        <dt>Director</dt>
-        <dd>The main Bacula server daemon that schedules and directs all
-    Bacula operations. Occassionally, we refer to the Director as DIR.</dd>
-        
-        <dt>Differential</dt>
-        <dd>A backup that includes all files changed since the last
-    Full save started. Note, other backup programs may define this differently.</dd>
-
-        <dt>File Attributes</dt>
-        <dd>The File Attributes are all the information
-    necessary about a file to identify it and all its properties such as
-    size, creation date, modification date, permissions, etc. Normally, the
-    attributes are handled entirely by Bacula so that the user never
-    needs to be concerned about them. The attributes do not include the
-    file's data.
-
-        <dt>File Daemon</dt>
-        <dd>The daemon running on the client
-    computer to be backed up. This is also referred to as the File
-    services, and sometimes as the Client services or the FD.
-        
-        <dt><a name="FileSetDef"></a> FileSet</dt>
-        <dd>A FileSet is a Resource contained in a configuration
-    file that defines the files to be backed up. It consists
-    of a list of included files or directories, a list of excluded files, and
-    how the file is to be stored (compression, encryption, signatures).
-    For more details, see the
-        <a href="rel-manual/director.html#FileSetResource">FileSet Resource definition</a>
-    in the Director chapter of this document.</dd>
-
-        <dt>Incremental</dt>
-        <dd>A backup that includes all files changed since the
-    last Full, Differential, or Incremental backup started. It is normally
-    specified on the <b>Level</b> directive within the Job resource
-    definition, or in a Schedule resourc. </dd>
-        
-        <dt><a name="JobDef"></a>Job</dt>
-        <dd>A Bacula Job is a configuration resource that defines
-    the work that Bacula must perform to backup or restore a particular
-    Client. It consists of the <b>Type</b> (backup, restore, verify,
-    etc), the <b>Level</b> (full, incremental,...), the <b>FileSet</b>,
-    and <b>Storage</b> the files are to be backed up (Storage device,
-    Media Pool). For more details, see the 
-        <a href="rel-manual/director.html#JobResource">Job Resource definition</a>
-        in the Director chapter of this document. </dd>
-
-        <dt>Monitor</dt>
-        <dd>The program that interfaces to the all the daemons
-    allowing the user or system administrator to monitor Bacula status.</dd>
-        
-        <dt>Resource</dt>
-        <dd>A resource is a part of a configuration file that
-    defines a specific unit of information that is available to Bacula.
-    For example, the <b>Job</b> resource defines all the properties of
-    a specific Job: name, schedule, Volume pool, backup type, backup
-    level, ...</dd>
-        
-        <dt>Restore</dt>
-        <dd>A restore is a configuration resource that
-    describes the operation of recovering a file (lost or damaged) from
-    backup media. It is the inverse of a save, except that in most
-    cases, a restore will normally have a small set of files to restore,
-    while normally a Save backs up all the files on the system. Of
-    course, after a disk crash, Bacula can be called upon to do
-    a full Restore of all files that were on the system. </dd>
-        
-        <dt>Schedule</dt>
-        <dd>A Schedule is a configuration resource that
-     defines when the Bacula Job will be scheduled for
-     execution. To use the Schedule, the Job resource will refer to
-     the name of the Schedule. For more details, see the <a
-     href="rel-manual/director.html#ScheduleResource">Schedule Resource
-     definition</a> in the Director chapter of this document. </dd>
-         
-        <dt>Service</dt>
-        <dd>This is Windows terminology for a <b>daemon</b> -- see
-    above. It is now frequently used in Unix environments as well.</dd>
-        
-        <dt>Storage Coordinates</dt>
-        <dd>The information returned from the
-    Storage Services that uniquely locates a file on a backup medium. It
-    consists of two parts: one part pertains to each file saved, and the
-    other part pertains to the whole Job. Normally, this information is
-    saved in the Catalog so that the user doesn't need specific knowledge
-    of the Storage Coordinates. The Storage Coordinates include the
-    File Attributes (see above) plus the unique location of the information on
-    the backup Volume. </dd>
-        
-        <dt>Storage Daemon</dt>
-        <dd>The Storage daemon, sometimes referred to as
-    the SD, is the code that writes the attributes and data to a storage
-    Volume (usually a tape or disk).</dd>
-        
-        <dt>Session</dt>
-        <dd>Normally refers to the internal conversation between
-    the File daemon and the Storage daemon. The File daemon opens a
-    <b>session</b> with the Storage daemon to save a FileSet, or to restore
-    it. A session has a one to one correspondence to a Bacula Job (see
-    above). </dd>
-        
-        <dt>Verify</dt>
-        <dd>A verify is a job that compares the current file
-    attributes to the attributes that have previously been stored in the
-    Bacula Catalog. This feature can be used for detecting changes to
-    critical system files similar to what <b>Tripwire</b> does. One
-    of the major advantages of using Bacula to do this is that
-    on the machine you want protected such as a server, you can run
-    just the File daemon, and the Director, Storage daemon, and Catalog
-    reside on a different machine. As a consequence, if your server is
-    ever compromised, it is unlikely that your verification database
-    will be tampered with.
-    <p>Verify can also be used to check that the most recent Job
-    data written to a Volume agrees with what is stored in the Catalog
-    (i.e. it compares the file attributes), *or it can check the
-    Volume contents against the original files on disk. </dd>
-        
-        <dt>*Archive</dt>
-        <dd>An Archive operation is done after a Save, and it
-    consists of removing the Volumes on which data is saved from active
-    use. These Volumes are marked as Archived, and many no longer be
-    used to save files. All the files contained on an Archived Volume
-    are removed from the Catalog. NOT YET IMPLEMENTED. </dd>
-        
-        <dt>*Update</dt>
-        <dd>An Update operation causes the files on the remote
-    system to be updated to be the same as the host system. This is
-    equivalent to an <b>rdist</b> capability. NOT YET IMPLEMENTED.
-    </dd>
-
-        <dt>Retention Period</dt>
-        <dd>There are various kinds of retention
-    periods that Bacula recognizes. The most important are the
-    <b>File</b> Retention Period, <b>Job</b> Retention Period, and the
-    <b>Volume</b> Retention Period. Each of these retention periods
-    applies to the time that specific records will be kept in the
-    Catalog database. This should not be confused with the time that
-    the data saved to a Volume is valid. <p>The File Retention Period
-    determines the time that File records are kept in the catalog
-    database. This period is important because the volume of the
-    database File records by far use the most storage space in the
-    database. As a consequence, you must ensure that regular
-    &quot;pruning&quot; of the database file records is done. (See
-    the Console <b>retention</b> command for more details on this
-    subject). <p>The Job Retention Period is the length of time that
-    Job records will be kept in the database. Note, all the File
-    records are tied to the Job that saved those files. The File
-    records can be purged leaving the Job records. In this case,
-    information will be available about the jobs that ran, but not the
-    details of the files that were backed up. Normally, when a Job
-    record is purged, all its File records will also be purged. <p>The
-    Volume Retention Period is the minimum of time that a Volume will be
-    kept before it is reused. Bacula will normally never
-    overwrite a Volume that contains the only backup copy of a file.
-    Under ideal conditions, the Catalog would retain entries for all
-    files backed up for all current Volumes. Once a Volume is
-    overwritten, the files that were backed up on that Volume are
-    automatically removed from the Catalog. However, if there is a very
-    large pool of Volumes or a Volume is never overwritten, the Catalog
-    database may become enormous. To keep the Catalog to a manageable
-    size, the backup information should removed from the Catalog after
-    the defined File Retention Period. Bacula provides the
-    mechanisms for the catalog to be automatically pruned according to
-    the retention periods defined. </dd>
-
-        <dt>Scan</dt>
-        <dd>A Scan operation causes the contents of a Volume or a
-    series of Volumes to be scanned. These Volumes with the information
-    on which files they contain are restored to the Bacula Catalog.
-    Once the information is restored to the Catalog, the files contained
-    on those Volumes may be easily restored. This function is
-    particularly useful if certain Volumes or Jobs have exceeded
-    their retention period and have been pruned or purged from the
-    Catalog. Scanning data from Volumes into the Catalog is done
-    by using the <b>bscan</b> program. See the <a href="rel-manual/progs.html#bscan">
-    bscan section</a> of the Bacula Utilities Chapter of this manual
-    for more details.</dd>
-
-        <dt>Volume</dt>
-        <dd>A Volume is an archive unit, normally a tape or
-    a named disk file where Bacula stores the data from one or more
-    backup jobs. All Bacula Volumes have a software label written to
-    the Volume by Bacula so that it identify what Volume it is really
-    reading. (Normally there should be no confusion with disk files,
-    but with tapes, it is easy to mount the wrong one).</dd>
-</dl>
-
-<h3>What Bacula is Not</h3>
-<b>Bacula</b> is a backup, restore and verification program and is not a
-complete disaster recovery system in itself, but it can be a key part
-of one if you plan carefully and follow the instructions included in the <a
-href="rel-manual/rescue.html"> Disaster Recovery</a> Chapter of this manual.
-<p>
-With proper planning, as mentioned in the Disaster Recovery chapter
-<b>Bacula</b> can be a central component of your disaster recovery
-system. For example, if you have created an emergency boot disk, a
-Bacula Rescue disk to save the current partitioning information of your
-hard disk, and maintain a complete Bacula backup, it is possible to
-completely recover your system from &quot;bare metal&quot;.
-<p>
-If you have used the <b>WriteBootstrap</b> record in your job or some
-other means to save a valid bootstrap file, you will be able to use it
-to extract the necessary files (without using the catalog or manually
-searching for the files to restore).
-
-<h3>Interactions Between the Bacula Services</h3>
-The following block diagram shows the typical interactions
-between the Bacula Services for a backup job. Each block
-represents in general a separate process (normally a daemon).
-In general, the Director oversees the flow of information. It also
-maintains the Catalog.
-<p style="text-align: center">
-        <img src="images/manual/flow.jpeg" border="0" alt="Interactions between Bacula Services" width="480" height="370">
-</p>
-        </td>
-</tr>
-</table>
-
-<? require_once("inc/header.php"); ?>
diff --git a/docs/home-page/pages/wxconsole.php b/docs/home-page/pages/wxconsole.php
deleted file mode 100644 (file)
index b544c95..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<? require_once("inc/header.php"); ?>
-TODO!
-<? require_once("inc/footer.php"); ?>