This chapter presents the new features added to the development 2.5.x
versions to be released as Bacula version 3.0.0 near the end of 2008.
-\section{Accurate}
+\section{Accurate Backup}
\index[general]{Accurate Backup}
-As with most other backup programs, Bacula decides what files to backup for
+As with most other backup programs, by default Bacula decides what files to backup for
Incremental and Differental backup by comparing the change (st\_ctime) and
modification (st\_mtime) times of the file to the time the last backup
-completed. If one of those two times is different than from last backup time,
+completed. If one of those two times is later than the last backup time,
then the file will be backed up. This does not, however, permit tracking what
files have been deleted and will miss any file with an old time that may have
-been restored or moved on the client filesystem.
+been restored to or moved onto the client filesystem.
\subsection{Accurate = \lt{}yes|no\gt{}}
If the {\bf Accurate = \lt{}yes|no\gt{}} directive is enabled (default no) in
a different Volume in a different Pool. See the Migration documentation
for additional details.
+\section{Shared objects}
+A default build of Bacula will now create the libraries as shared objects
+(.so) rather than static libraries as was previously the case.
+The shared libraries are built using {\bf libtool} so it should be quite
+portable.
+
+An important advantage of using shared objects is that on a machine with the
+Directory, File daemon, the Storage daemon, and a console, you will have only one copy
+of the code in memory rather than four copies. Also the total size of the
+binary release is smaller since the library code appears only once rather than
+once for every program that uses it; this results in significant reduction in
+the size of the binaries particularly for the utility tools.
+
+In order for the system loader to find the shared objects when loading
+the Bacula binaries, the Bacula shared objects must either be in a shared object
+directory known to the loader (typically /usr/lib) or they must be in the directory
+that may be specified on the {\bf ./configure} line using the
+{\bf {-}{-}libdir} option as:
+
+\begin{verbatim}
+ ./configure --libdir=/full-path/dir
+\end{verbatim}
+
+the default is /usr/lib. If {-}{-}libdir is specified, there should be
+no need to modify your loader configuration provided that
+the shared objects are installed in that directory (Bacula
+does this with the make install command). The shared objects
+that Bacula references are:
+
+\begin{verbatim}
+libbaccfg.so
+libbacfind.so
+libbacpy.so
+libbac.so
+\end{verbatim}
+
+These files are symbolically linked to the real shared object file,
+which has a version number to permit running multiple versions of
+the libraries if desired (not normally the case).
+
+If you have problems with libtool or you wish to use the old
+way of building static libraries, you can do so by disabling
+libtool on the configure command line with:
+
+\begin{verbatim}
+ ./configure --disable-libtool
+\end{verbatim}
+
+
\section{Virtual Backup (Vbackup)}
\index[general]{Virtual Backup}
\index[general]{Vbackup}
With this new command, Bacula will ask if you want to specify a Regex
expression for extracting only a part of the full backup.
+\subsection{Solaris ZFS/NFSv4 ACLs}
+ This is an upgrade of the previous Solaris ACL backup code
+ to the new library format, which will backup both the old
+ POSIX(UFS) ACLs as well as the ZFS ACLs.
+
+ The new code can also restore POSIX(UFS) ACLs to a ZFS filesystem
+ (it will translate the POSIX(UFS)) ACL into a ZFS/NFSv4 one) it can also
+ be used to transfer from UFS to ZFS filesystems.
+
\subsection{Virtual Tape Emulation}
We now have a Virtual Tape emulator that allows us to run though 99.9\% of