Fix plugin install into right directory.
Try top make the NDMP docs somewhat more failsafe.

After some feedback this should make things somewhat more understandable
when trying to configure NDMP. Some better documentation needs to be
written but we leave that to a true technical writer.
Allow an UAcontext to have two database connections.

For some operations we want to use a private database connection as they
are either long running or may interfere with each other. We now keep
track of the normal shared database connection and a private database
connection used for these kind of operations that can run over a
dedicated database connection without leading to synchronization
problems in the data. Things like BVFS, restore, prune, purge etc can
all use this private database connection so they no longer block others
and for restore also don't lead to race conditions. These connections
we keep lingering until a close_db() call is done on the UA.
Plugin to do backup of Microsoft Sql Server (mssql) server

Implement a native backup plugin for MSSQL based on the
Virtual Device Interface (VDI) which uses the native MSSQL
backup tooling but instead of writing it to a tape or disk
directly it will save it to a so called virtual device from
which the plugin reads the data on restore we restore to
a virtual device and the native MSSQL software recovers
the database from that.

This is based on the mssql-fd found on sourceforge from 2010
but with a lot of changes to adhere to the Bareos coding style
and to be able to compile it with mingw instead of Visual C.

We also rewrote it to use pthreads instead of the windows threading,
and the whole code is made somewhat more modular using inline
functions which handle certain logic operations.

We also implemented the ability to overwrite the plugin options
which can be passed in via the Plugin Options method from the
restore menu.

Currently we allow on restore to restore to a so called
Point In Time (PIT) using the normal MSSQL STOPBEFORMARK, STOPAT
and STOPATMARK which allow you to rollback to a certain time
or specific LSN (Log Sequence Number). This should all make
sense to MSSQL DBA's who are used to using the native backup
tooling to make disk backups.

Fixes #199: Plugin to do backup of Microsoft Sql Server (mssql) server
Add the new mssqlvdi plugin to the windows installer.

Fixes #199: Plugin to do backup of Microsoft Sql Server (mssql) server
Allow upgrade on windows

Now we check if bareos is already installed on the windows machine.
If so, we call the uninstaller of the previous version and install
ourselves afterwards.

The newer uninstaller keep the configuration files as the uninstaller is
called accordingly.

The dialogs for parametrizing the configuration and the dialog
for the config snipped are not shown, as the existing configuration
files will be used.

Still the user has to choose the same components during the upgrade
as were installed before.

fixes #225: Windows installer can't upgrade in place
Bwlimit not working in Windows 64bits client

The nanosleep implementation in compat.c for windows if of poor quality.
Try using the fallback to the pthread_cond_timedwait() in bsys.c by
no longer claiming in the mingwconfig.h that we have a working nanosleep()
and remove the poor implementation. There are a couple of ways of sleeping
in a somewhat portable way e.g. select(), poll() or pthread_cond_timedwait().
So for as we use pthreads anyway everywhere we leave the pthread_cond_timedwait()
method.

Also check if bmicrosleep() returns early in the bandwidth limiting code
and if it does schedule an new bmicrosleep() of the sleep time remaining.

Fixes #226: Bwlimit not working in Windows 64bits client
Fix job pruning.

We added different types of job pruning some time ago but it seems that
the JobType argument to prune_jobs() is just ignored and only Backup
jobs are pruned. This is a first attempt at really implementing pruning
of different Job types.
Fix two compile errors on AIX.
Merge branch 'mvw/pruning'
Fix windows installer.

Explicitly do SetOutPath to the right directory for all sections
so files end up in the right directory and not in the last set output
dir. Also autoselect the install of the plugins. And some cleanup of
old debug and unneeded comments.
Fix error.
Fix some complains by NSIS.

And document why we have two libgcc names (32/64 bits).
Get ride of the dreaded my_compare function.

Give the function a somewhat better name so you at least get a clue as
to what its doing.
Config engine redesign Phase 1

This whole wad is the first phase of a bigger full overhaul of the config
engine. The following is in here:

1)
   Instead of using function pointers for storing the config parser function
   to call use integer types which are translated at runtime to the correct
   function to call. This should work around hardening being performed on
   shared libraries on some Linux platforms. On those platforms the actual
   comparing of the function pointers fail, using integers for the different
   data types makes it also possible to use an elegant switch to jump to the
   correct parsing function instead of using an endless set of ifs needed when
   comparing memory addresses of functions.

   An extra side effect of not using function pointers is that the store functions
   don't need to be global so the parse_conf.c in the shared library only exports
   10 instead of 32 symbols and also the daemon specific store function can be
   local only functions. The only thing needed is a callback to a dispatch function
   in the daemon when it uses non standard config items which are not of a generic
   type (e.g. not bool, integer etc but things like protocol etc.) which leads to a
   very small extra payload which is probably not even measurable.

2)
   Bring config engine to 2013 and don't polute namespace.

   Implement a TODO from June 2008 and get ride of a slack of global
   variables used by the config engine. The code seems to be have been
   refactored in 2008 to access most configfile parsing via the CONFIG
   class and it already has most of the needed structures which also were
   kept as global variables. From now on the config engine is accessed via
   the CONFIG class and only res_all is left as global variable. As a side
   effect the config CLASS is now available as my_config and is a global
   variable.

   Global variable introduced:

   - CLASS CONFIG *my_config (Global configuration)

   Global variables removed:

   - res_all_size
   - r_first
   - r_last
   - resources
   - res_head

   It should be possible also to get ride of res_all but that needs some
   more testing. And is currently not very high on our urgency map.

3)
   Fix long standing TODO to remove the MAXSTRING definition.
   Use POOLMEM and POOL_MEM to replace the fixed sized buffers.

4)
   First basic part of printing config information out from the internal
   tables. We will enhance this in the second phase to be more generic
   and to allow it to write out the config maybe in different formats.
   (JSON/XML comes to mind).

Fixes #59: bareos failed to start when linked with hardening linker flags LDFLAGS
Fixes #164: Remove MAXSTRING variable
Fixes #202: Config engine redesign
Rebuild configure and config.h.in
Updated version to 13.4.0
Enable __builtin_va_copy on mingw.
Fix problems in qt programs with new config engine.
Fix to get ride of last MAXSTRING variables.

And fixes to make testfind work again after some time. As no one
probably uses this ever it was broken for some time already.