]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
win32: Fix compilation
authorEric Bollengier <eric@baculasystems.com>
Mon, 21 Mar 2022 14:22:20 +0000 (15:22 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:28 +0000 (09:03 +0100)
18 files changed:
bacula/src/win32/win32_installer/InstallType.nsh
bacula/src/win32/win32_installer/Makefile
bacula/src/win32/win32_installer/Readme.txt
bacula/src/win32/win32_installer/bacula-dir.conf.in
bacula/src/win32/win32_installer/bacula-fd.conf.in
bacula/src/win32/win32_installer/bacula-sd.conf.in
bacula/src/win32/win32_installer/bacula-tray-monitor.conf.in [new file with mode: 0644]
bacula/src/win32/win32_installer/bat.conf.in
bacula/src/win32/win32_installer/bconsole.conf.in
bacula/src/win32/win32_installer/build-installer.cmd
bacula/src/win32/win32_installer/bwx-console.conf.in
bacula/src/win32/win32_installer/winbacula.nsi
bacula/src/win32/win64_installer/InstallType.nsh
bacula/src/win32/win64_installer/Makefile
bacula/src/win32/win64_installer/Readme.txt
bacula/src/win32/win64_installer/WriteTemplates.ini
bacula/src/win32/win64_installer/winbacula.nsi
bacula/src/win32/win64_installer/x64.nsh [new file with mode: 0644]

index e4a9711df70b09b5d8ec7759516cd716b93448bc..03a6422c8ebf894e07e61a0ef31a5251a27df14e 100644 (file)
@@ -66,9 +66,6 @@ Function EnterInstallType
     ${If} ${FileExists} "$R1\bat.conf"
       IntOp $PreviousComponents $PreviousComponents | ${ComponentBatConsole}
     ${EndIf}
-    ${If} ${FileExists} "$R2\main.pdf"
-      IntOp $PreviousComponents $PreviousComponents | ${ComponentPDFDocs}
-    ${EndIf}
   ${EndIf}
 
   !InsertMacro MUI_HEADER_TEXT "$(TITLE_InstallType)" "$(SUBTITLE_InstallType)"
index 135fb04d67224355a604e8a3aab8a5811eda52d0..324e257201ac5de23b2f70e964697511b5a9d84e 100644 (file)
@@ -1,8 +1,7 @@
 #
-# Copyright (C) 2000-2018 Kern Sibbald
+# Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
-#
 # Makefile for win32 bacula executables
 # Using MinGW cross-compiler on GNU/Linux
 #
@@ -20,8 +19,10 @@ DEFINES := \
        -DVERSION=$(VERSION) \
        -DOUT_DIR=$(BUILDDIR)/release32 \
        -DSRC_DIR=release32 \
+       -DREGWIZ_SRC_DIR=$(DEPKGS)/release32 \
        -DBUILD_TOOLS=MinGW32 \
        -DWINVER=32 \
+       -DPRODUCT_PUBLISHER="Bacula Systems SA" \
        -DBUILD_BAT=$(BUILD_BAT)
 
 INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
@@ -29,7 +30,6 @@ INSTALL_EXE := $(BUILDDIR)/release32/winbacula-$(VERSION).exe
 BACULABINARIES := \
        bacula.dll \
        alldrives-fd.dll \
-       exchange-fd.dll \
        cdp-fd.dll \
        cdp-client.exe \
        bacula-fd.exe \
@@ -45,15 +45,10 @@ ifeq ($(bat),no)
        BACULA_BINARIES=$(BACULABINARIES)
        HELP=
 else
-       BACULA_BINARIES=$(BACULABINARIES) bat.exe bacula-tray-monitor.exe RegistrationWizard.exe
+       BACULA_BINARIES=$(BACULABINARIES) bat.exe bacula-tray-monitor.exe
        HELP=help
 endif
 
-EXTRA=
-
-#      bacula-sd.exe \
-
-
 DEPKGS_BINARIES := \
        libcrypto-1_1.dll \
        zlib1.dll \
@@ -70,7 +65,6 @@ DEPKGS_BINARIES := \
        libwinpthread-1.dll \
        libgcc_s_sjlj-1.dll \
        libstdc++-6.dll
-#      libgcc_s_dw2-1.dll
 
 
 NONGCC_BINARIES := 
@@ -91,6 +85,13 @@ SSL_FILES := \
 LICENSE_FILES := \
        LICENSE
 
+REGWIZARD_FILES := \
+       qwindows.dll \
+       Qt5Core.dll \
+       Qt5Gui.dll \
+       Qt5Network.dll \
+       Qt5Widgets.dll
+
 ##########################################################################
 
 # Targets
index 5068751aa9c69460a1cb2abfb4775ec334ef6470..095564f1bc93ed8268996c393992b0a975f3f89b 100755 (executable)
@@ -1,47 +1,53 @@
 Bacula - Windows Version Disclaimer\r
 ===================================\r
 \r
-Please note, only the Win32 Client (File daemon) is supported, and the other\r
-components (Director, Storage daemon, their utilities) are not provided\r
-because they have not been ported.\r
-\r
+Please note, only the Win32 Client (File daemon) and the \r
+Storage daemon backing up to disk are supported.  \r
+Currently the Director is not supported.\r
 \r
 Bacula - Windows Version Notes\r
 ==============================\r
 \r
-These notes highlight how the Windows version of Bacula differs from the \r
-other versions.  It also provides any notes additional to the documentation.\r
+These notes highlight how the Windows version of Bacula \r
+differs from the other versions.  It also provides any \r
+notes additional to the documentation.\r
 \r
-For detailed documentation on using, configuring and troubleshooting Bacula,\r
-please consult the installed documentation or the online documentation at\r
-http://www.bacula.org/?page=documentation.\r
+For detailed documentation on using, configuring and \r
+troubleshooting Bacula, please consult the installed \r
+documentation or the online documentation at\r
+http://www.bacula.org/\r
 \r
 \r
 Start Menu Items\r
 ----------------\r
-A number of menu items have been created in the Start menu under All Programs\r
-in the Bacula submenu.  They may be selected to edit the configuration files,\r
-view the documentation or run one of the console or utility programs.  The \r
-choices available will vary depending on the options you chose to install.\r
+A number of menu items have been created in the Start \r
+menu under All Programs in the Bacula submenu.  They may \r
+be selected to edit the configuration files, view the \r
+documentation or run one of the console or utility programs.  \r
+The choices available will vary depending on the options \r
+you chose to install.\r
 \r
 \r
 File Locations\r
 --------------\r
 Everything is installed in the directory \r
-"C:\Program Files\Bacula" unless a different directory was selected during\r
-installation. \r
+"C:\Program Files\Bacula" unless a different directory was\r
+selected during installation. \r
 \r
 \r
 Code Page Problems\r
 -------------------\r
-Please note that Bacula expects the contents of the configuration files to be \r
-written in UTF-8 format. Some translations of "Application Data" have accented\r
-characters, and apparently the installer writes this translated data in the\r
-standard Windows code page coding.  This occurs for the Working Directory, and \r
-when it happens the daemon will not start since Bacula cannot find the directory.\r
-The workaround is to manually edit the appropriate conf file and ensure that it\r
-is written out in UTF-8 format.\r
-\r
-The conf files can be edited with any UTF-8 compatible editor, or on most \r
-modern Windows machines, you can edit them with notepad, then choose UTF-8\r
-output encoding before saving them.\r
+Please note that Bacula expects the contents of the configuration \r
+files to be written in UTF-8 format. Some translations of \r
+"Application Data" have accented characters, and apparently \r
+the installer writes this translated data in the standard \r
+Windows code page coding.  This occurs for the Working \r
+Directory, and when it happens the daemon will not start \r
+since Bacula cannot find the directory. The workaround is \r
+to manually edit the appropriate conf file and ensure that \r
+it is written out in UTF-8 format.\r
+\r
+The conf files can be edited with any UTF-8 compatible \r
+editor, or on most modern Windows machines, you can edit \r
+them with notepad, then choose UTF-8 output encoding before \r
+saving them.\r
index d6ab408860c41daaabaa2f5fa084c13c29f20ed2..6fc47d0f7b79e51caae2450bd7d295955a11227f 100644 (file)
@@ -8,7 +8,7 @@
 #   file or directory names in the Include directive of the
 #   FileSet resource.
 #
-#  For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ @DISTVER@
+#  For Bacula Systems(R) release @VERSION@ (@DATE@) -- @DISTNAME@ @DISTVER@
 #
 #  You might also want to change the default email address
 #   from root to your address.  See the "mail" and "operator"
index 753922fc9e881ba1ce675c4ef7db24a5b02622dd..6137f5668b0aa7a259cb9c364481b1d78b3b4e34 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Default  Bacula File Daemon Configuration file
+# Default  Bacula Systems(R) File Daemon Configuration file
 #
 # Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
@@ -27,7 +27,7 @@ FileDaemon {                            # this is me
 #
 Director {
   Name = @director_name@
-  Password = "@client_password@"         # Director must know this password
+  Password = "@client_password@"        # Director must know this password
 }
 
 #
index 3dae4bf7a0691aed281063926e5aec0281e3efca..27ac5fef519e9fb06381fb6b20d1e0d137c3f1bc 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Default Bacula Storage Daemon Configuration file
+# Default Bacula Systems(R) Storage Daemon Configuration file
 #
 # Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
diff --git a/bacula/src/win32/win32_installer/bacula-tray-monitor.conf.in b/bacula/src/win32/win32_installer/bacula-tray-monitor.conf.in
new file mode 100644 (file)
index 0000000..457c7ac
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# Bacula Tray Monitor Configuration File
+#
+# Copyright (C) 2000-2022 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+
+Monitor {
+  Name = @monitor_name@
+  RefreshInterval = 60 seconds
+}
+   
+Client {
+  Name = @client_name@
+  Address = localhost
+  Port = @client_port@
+  Password = "@monitor_password@"
+}
+
+#Storage {
+#  Name = @basename@-sd
+#  Address = @hostname@
+#  Port = @sd_port@
+#  Password = "@mon_sd_password@"          # password for StorageDaemon
+#}
+#
+#Director {
+#  Name = @basename@-dir
+#  port = @dir_port@
+#  address = @hostname@
+#  Password = "@mon_password@"         # password for the Directors   
+#}
+#
index 0f6ed9dbdd5d8caffc7cbeb0d6635668915bd492..0bf0976932ae1f7c2e00f3217f01db2128836b2a 100644 (file)
@@ -1,9 +1,10 @@
 #
-# Bacula Administration Tool (bat) Configuration File
-#
 # Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
+#
+# Bacula Systems(R) Administration Tool (bat) Configuration File
+#
 
 Director {
   Name = @director_name@
index 7804123d076f098505314cfc3955b7952728a82a..7e9d7568bd5e17e3490fd9f45a9657a2db77ff07 100644 (file)
@@ -1,9 +1,10 @@
 #
-# Bacula User Agent (or Console) Configuration File
-#
 # Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
+#
+# Bacula Systems(R) User Agent (or Console) Configuration File
+#
 
 Director {
   Name = @director_name@
index 5d77a9f89f05c0d0e113258b15dcba6383807ec4..169df4b013325634136c40b5425f5c07ed4da6ae 100644 (file)
@@ -27,9 +27,6 @@ SET CATS_CATALOG=make_mysql_catalog_backup.cmd make_postgresql_catalog_backup.cm
 SET DIRD_FILES=query.sql\r
 SET SSL_FILES=openssl.cnf\r
 \r
-SET DOC_PDF_FILES=%DOCS_DIR%\bacula.pdf %DOCS_DIR%\bacula\*.html %DOCS_DIR%\bacula\*.png %DOCS_DIR%\bacula\*.css\r
-SET DOC_HTML_FILES=%DOCS_DIR%\bacula\*.html %DOCS_DIR%\bacula\*.png %DOCS_DIR%\bacula\*.css\r
-\r
 FOR %%i in ( %BACULA_DLLS% )     DO XCOPY %1%2\%%i %1installer\%2\ /y\r
 FOR %%i in ( %BACULA_EXES% )     DO XCOPY %1%2\%%i %1installer\%2\ /y\r
 FOR %%i in ( %BACULA_TOOLS% )    DO XCOPY %1%2\%%i %1installer\%2\ /y\r
index 7804123d076f098505314cfc3955b7952728a82a..7e9d7568bd5e17e3490fd9f45a9657a2db77ff07 100644 (file)
@@ -1,9 +1,10 @@
 #
-# Bacula User Agent (or Console) Configuration File
-#
 # Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
+#
+# Bacula Systems(R) User Agent (or Console) Configuration File
+#
 
 Director {
   Name = @director_name@
index c4ce2f8b3ad974a11ab0c592ea883327d18e567d..0e8e6536106bd33a2fd8cfeb8e7cb6426f4da3c0 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2000-2018 Kern Sibbald
+# Copyright (C) 2000-2022 Kern Sibbald
 # License: BSD 2-Clause; see file LICENSE-FOSS
 #
 ##{{NSIS_PLUS_BEGIN_PROJECT_SETTINGS}}##
 ; Basics
 ;
 ; Name in Welcome screen
-Name "Bacula 32 bit"
+Name "Bacula (R) 32 bit"
 OutFile "${OUT_DIR}\bacula-win${WINVER}-${VERSION}.exe"
 SetCompressor lzma
-Caption "Bacula 32 bit Edition ${VERSION}"
+Caption "Bacula (R) 32 bit Edition ${VERSION}"
 VIProductVersion ${VERSION}.1
 VIAddVersionKey CompanyName "Bacula Project"
-VIAddVersionKey LegalCopyright "Kern Sibbald"
+VIAddVersionKey LegalCopyright "Bacula Systems SA"
 VIAddVersionKey FileDescription "Bacula network backup and restore"
 VIAddVersionKey FileVersion win${WINVER}-${VERSION}
 VIAddVersionKey ProductVersion win${WINVER}-${VERSION}
-VIAddVersionKey ProductName "Bacula"
-VIAddVersionKey InternalName "Bacula"
-VIAddVersionKey LegalTrademarks "Bacula is a registered trademark of Kern Sibbald"
+VIAddVersionKey ProductName "Bacula Community Edition"
+VIAddVersionKey InternalName "Bacula Community Edition"
+VIAddVersionKey LegalTrademarks "Bacula is a registered trademark of Bacula Systems SA"
 VIAddVersionKey OriginalFilename "bacula.exe"
 
 InstallDir "C:\Program Files\Bacula"
@@ -88,8 +88,8 @@ ${StrTrimNewLines}
 !define      MUI_COMPONENTSPAGE_SMALLDESC
 
 !define      MUI_HEADERIMAGE
-!define      MUI_BGCOLOR                739AB9
-!define      MUI_HEADERIMAGE_BITMAP     "bacula-logo.bmp"
+!define      MUI_BGCOLOR                CACACA
+!define      MUI_HEADERIMAGE_BITMAP     "bs-logo.bmp"
 !define      MUI_HEADERIMAGE_LEFT
 !define      MUI_HEADERIMAGE_BITMAP_NOSTRETCH
 
@@ -104,8 +104,8 @@ Page custom EnterConfigPage1 LeaveConfigPage1
 Page custom EnterConfigPage2 LeaveConfigPage2
 !Define      MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveInstallPage
 !InsertMacro MUI_PAGE_INSTFILES
-Page custom EnterWriteTemplates
 !Define      MUI_FINISHPAGE_SHOWREADME $INSTDIR\Readme.txt
+!Define      MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
 !InsertMacro MUI_PAGE_FINISH
 
 !InsertMacro MUI_UNPAGE_WELCOME
@@ -120,7 +120,7 @@ Page custom EnterWriteTemplates
 !InsertMacro GetParameters
 !InsertMacro GetOptions
 
-DirText "Setup will install Bacula 32 bit ${VERSION} to the directory specified below. To install in a different folder, click Browse and select another folder."
+DirText "Setup will install Bacula (R) 32 bit ${VERSION} to the directory specified below. To install in a different folder, click Browse and select another folder."
 
 !InsertMacro MUI_RESERVEFILE_INSTALLOPTIONS
 ;
@@ -193,9 +193,8 @@ Var TmpComponent
 ;     6 = Documentation (PDF)
 ;     7 = Documentation (HTML)
 ;     8 = alldrives Plugin
-;     9 = Old Exchange Plugin
+;     9 = CDP Plugin
 ;    10 = Tray Monitor
-;    11 = winbmr Plugin
 
 !define ComponentFile                   1
 !define ComponentStorage                2
@@ -207,9 +206,8 @@ Var TmpComponent
 !define ComponentHTMLDocs               128
 !define MUI_PAGE_LICENSE "${SRC_DIR}\INSTALL"
 !define ComponentAllDrivesPlugin        256
-!define ComponentOldExchangePlugin      512
+!define ComponentCDPPlugin              512
 !define ComponentTrayMonitor            1024
-; !define ComponentWinBMRPlugin           2048
 
 !define ComponentsRequiringUserConfig           63
 !define ComponentsFileAndStorage                3
@@ -220,6 +218,7 @@ Var TmpComponent
 Var HDLG
 Var HCTL
 
+
 Function .onInit
   Push $R0
   Push $R1
@@ -249,7 +248,6 @@ Function .onInit
      Abort
   ${EndIf}
 
-
   ${GetOptions} $R0 "/noservice" $R1
   IfErrors +2
     StrCpy $OptService 0
@@ -277,90 +275,6 @@ Function .onInit
 
   ; Configuration Defaults
 
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientName" $ConfigClientName
-  IfErrors 0 +2
-    StrCpy $ConfigClientName               "$HostName-fd"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientPort" $ConfigClientPort
-  IfErrors 0 +2
-    StrCpy $ConfigClientPort               9102
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientMaxJobs" $ConfigClientMaxJobs
-  IfErrors 0 +2
-    StrCpy $ConfigClientMaxJobs            5
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientPassword" $ConfigClientPassword
-  IfErrors 0 +2
-    StrCpy $ConfigClientPassword          ""
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientInstallService" $ConfigClientInstallService
-  IfErrors 0 +2
-    StrCpy $ConfigClientInstallService     "$OptService"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigClientStartService" $ConfigClientStartService
-  IfErrors 0 +2
-    StrCpy $ConfigClientStartService       "$OptStart"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStorageName" $ConfigStorageName
-  IfErrors 0 +2
-    StrCpy $ConfigStorageName              "$HostName-sd"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStoragePort" $ConfigStoragePort
-  IfErrors 0 +2
-    StrCpy $ConfigStoragePort              9103
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStorageMaxJobs" $ConfigStorageMaxJobs
-  IfErrors 0 +2
-    StrCpy $ConfigStorageMaxJobs           10
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStoragePassword" $ConfigStoragePassword
-  IfErrors 0 +2
-    StrCpy $ConfigStoragePassword          ""
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStorageInstallService" $ConfigStorageInstallService
-  IfErrors 0 +2
-    StrCpy $ConfigStorageInstallService    "$OptService"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigStorageStartService" $ConfigStorageStartService
-  IfErrors 0 +2
-    StrCpy $ConfigStorageStartService      "$OptStart"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorName" $ConfigDirectorName
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorName            "$HostName-dir"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorPort" $ConfigDirectorPort
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorPort             9101
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorMaxJobs" $ConfigDirectorMaxJobs
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorMaxJobs          1
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorPassword" $ConfigDirectorPassword
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorPassword         ""
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorDB" $ConfigDirectorDB
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorDB               0
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorInstallService" $ConfigDirectorInstallService
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorInstallService   "$OptService"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigDirectorStartService" $ConfigDirectorStartService
-  IfErrors 0 +2
-    StrCpy $ConfigDirectorStartService     "$OptStart"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigMonitorName" $ConfigMonitorName
-  IfErrors 0 +2
-    StrCpy $ConfigMonitorName              "$HostName-mon"
-  ClearErrors
-  ${GetOptions} $CMDLINE "-ConfigMonitorPassword" $ConfigMonitorPassword
-  IfErrors 0 +2
-    StrCpy $ConfigMonitorPassword          ""
   ClearErrors
   ${GetOptions} $CMDLINE "-ConfigClientName" $ConfigClientName
   IfErrors 0 +2
@@ -455,6 +369,8 @@ Function .onInit
   File "/oname=$PLUGINSDIR\libssl-1_1.dll" "${SRC_DIR}\libssl-1_1.dll"
   File "/oname=$PLUGINSDIR\libcrypto-1_1.dll" "${SRC_DIR}\libcrypto-1_1.dll"
   File "/oname=$PLUGINSDIR\sed.exe"      "${SRC_DIR}\sed.exe"
+  File "/oname=$PLUGINSDIR\libwinpthread-1.dll" "${SRC_DIR}\libwinpthread-1.dll"
+  File "/oname=$PLUGINSDIR\libgcc_s_sjlj-1.dll" "${SRC_DIR}\libgcc_s_sjlj-1.dll"
 
   !InsertMacro MUI_INSTALLOPTIONS_EXTRACT "InstallType.ini"
   !InsertMacro MUI_INSTALLOPTIONS_EXTRACT "WriteTemplates.ini"
@@ -473,7 +389,6 @@ Function .onInit
       FileClose $R1
     ${EndIf}
   ${EndIf}
-  SetPluginUnload manual
 
 ; Generate random Storage daemon password
   ${If} $ConfigStoragePassword == ""
@@ -487,6 +402,7 @@ Function .onInit
       FileClose $R1
     ${EndIf}
   ${EndIf}
+  SetPluginUnload manual
 
 ; Generate random monitor password
   ${If} $ConfigMonitorPassword == ""
@@ -651,6 +567,7 @@ Section "File Service" SecFileDaemon
   SetOutPath "$INSTDIR"
 
   File "${SRC_DIR}\bacula-fd.exe"
+
   File "/oname=$PLUGINSDIR\bacula-fd.conf" "bacula-fd.conf.in"
 
   StrCpy $0 "$INSTDIR"
@@ -672,7 +589,7 @@ SectionGroupEnd
 SectionGroup "Server" SecGroupServer
 
 Section "Storage Service" SecStorageDaemon
-  SectionIn 2 3
+  SectionIn 2
 
   SetOutPath "$INSTDIR"
 
@@ -702,7 +619,7 @@ SectionGroupEnd
 SectionGroup "Consoles" SecGroupConsoles
 
 Section "Command Console" SecConsole
-  SectionIn 1 2 3
+  SectionIn 1 2
 
   SetOutPath "$INSTDIR"
 
@@ -720,7 +637,7 @@ Section "Command Console" SecConsole
 SectionEnd
 
 Section "Bat Console" SecBatConsole
-  SectionIn 1 2 3
+  ;SectionIn 1 2 3
 
   SetOutPath "$INSTDIR"
 
@@ -731,6 +648,14 @@ Section "Bat Console" SecBatConsole
   File "${SRC_DIR}\Qt5Network.dll"
   File "${SRC_DIR}\Qt5Widgets.dll"
   File "${SRC_DIR}\libgcc_s_sjlj-1.dll"
+  File "${SRC_DIR}\libwinpthread-1.dll"
+#  File "${SRC_DIR}\libgcc_s_dw2-1.dll"
+#  File "${SRC_DIR}\libgcc_s_seh-1.dll"
+  File "${SRC_DIR}\libssl-1_1.dll"
+  File "${SRC_DIR}\libcrypto-1_1.dll"
+  File "${SRC_DIR}\bat.exe"
+  File "/oname=$INSTDIR\bacula.dll" "${SRC_DIR}\bacula.dll"
+  File "/oname=$INSTDIR\zlib1.dll" "${SRC_DIR}\zlib1.dll"
 
   File "${SRC_DIR}\bat.exe"
   File "/oname=$PLUGINSDIR\bat.conf" "bat.conf.in"
@@ -753,38 +678,42 @@ Section "Bat Console" SecBatConsole
 
 SectionEnd
 
-Section "Bacula Tray Monitor" SecTrayMonitor
-  SectionIn 1 2 3
+Section "Tray Monitor" SecTrayMonitor
+  SectionIn 1 2
 
   SetOutPath "$INSTDIR"
 
 !if "${BUILD_BAT}" == "yes"
   Call InstallCommonFiles
-  File "${SRC_DIR}\libssl-1_1.dll"
-  File "${SRC_DIR}\libcrypto-1_1.dll"
   File "${SRC_DIR}\Qt5Gui.dll"
   File "${SRC_DIR}\Qt5Core.dll"
   File "${SRC_DIR}\Qt5Network.dll"
   File "${SRC_DIR}\Qt5Widgets.dll"
-  File "${SRC_DIR}\libgcc_s_sjlj-1.dll"
+  File "${SRC_DIR}\libssl-1_1.dll"
+  File "${SRC_DIR}\libcrypto-1_1.dll"
+  File "${SRC_DIR}\libwinpthread-1.dll"
+#  File "${SRC_DIR}\libgcc_s_sjlj-1.dll"
+#  File "${SRC_DIR}\libgcc_s_seh-1.dll"
   File "${SRC_DIR}\bacula-tray-monitor.exe"
+  File "/oname=$INSTDIR\bacula.dll" "${SRC_DIR}\bacula.dll"
+  File "/oname=$INSTDIR\zlib1.dll" "${SRC_DIR}\zlib1.dll"
 
  SetOutPath "$INSTDIR\platforms"
  File "${SRC_DIR}\qwindows.dll"
  SetOutPath "$INSTDIR"
 
 ;File "/oname=$PLUGINSDIR\bacula-tray-monitor.conf" "bacula-tray-monitor.conf.in"
 StrCpy $0 "$INSTDIR"
 StrCpy $1 bacula-tray-monitor.conf
 ;Call ConfigEditAndCopy
+ File "/oname=$PLUGINSDIR\bacula-tray-monitor.conf" "bacula-tray-monitor.conf.in"
+ StrCpy $0 "$INSTDIR"
+ StrCpy $1 bacula-tray-monitor.conf
+ Call ConfigEditAndCopy
 
   ; Create Start Menu entry
-   CreateShortCut "$SMPROGRAMS\Bacula\TrayMonitor.lnk" "$INSTDIR\bacula-tray-monitor.exe" "" "$INSTDIR\bacula-tray-monitor.exe" 0
+  CreateShortCut "$SMPROGRAMS\Bacula\TrayMonitor.lnk" "$INSTDIR\bacula-tray-monitor.exe" "" "$INSTDIR\bacula-tray-monitor.exe" 0
+  SetOutPath "$INSTDIR"
 !endif
 
 SectionEnd
 
-
 ; Deleted because wxconsole is deprecated
 ;Section "Graphical Console" SecWxConsole
 ;  SectionIn 1 2 3
@@ -799,7 +728,7 @@ SectionGroupEnd
 SectionGroup "Plugins" SecGroupPlugins
 
 Section "alldrives Plugin" SecAllDrivesPlugin
-  SectionIn 1 2 3
+  ;SectionIn 1 2 3
 
   SetOutPath "$INSTDIR\plugins"
   File "${SRC_DIR}\alldrives-fd.dll"
@@ -807,54 +736,19 @@ Section "alldrives Plugin" SecAllDrivesPlugin
 
 SectionEnd
 
-;Section "winbmr Plugin" SecWinBMRPlugin
-;  SectionIn 1 2 3
-
-;  SetOutPath "$INSTDIR\plugins"
-;  File "${SRC_DIR}\winbmr-fd.dll"
-;  SetOutPath "$INSTDIR"
-
-;SectionEnd
-
-Section "Old (deprecated) Exchange Plugin" SecOldExchangePlugin
-  SectionIn 1 2 3
-
-  SetOutPath "$INSTDIR\plugins"
-  File "${SRC_DIR}\exchange-fd.dll"
-  SetOutPath "$INSTDIR"
-
-SectionEnd
-
-SectionGroupEnd
-
-
-
-SectionGroup "Documentation" SecGroupDocumentation
-
-Section "Documentation (Acrobat Format)" SecDocPdf
+Section /o "CDP Plugin" SecCDPPlugin
   SectionIn 1 2 3
 
   SetOutPath "$INSTDIR\plugins"
   File "${SRC_DIR}\cdp-fd.dll"
   SetOutPath "$INSTDIR"
   File "${SRC_DIR}\cdp-client.exe"
-  
-SectionEnd
-
-;Section "Documentation (HTML Format)" SecDocHtml
-;  SectionIn 3
 
-; SetOutPath "$INSTDIR\doc"
-; CreateDirectory "$INSTDIR\doc"
-
-; File "${SRC_DIR}\manual\bacula\*.html"
-; File "${SRC_DIR}\manual\bacula\*.png"
-; File "${SRC_DIR}\manual\bacula\*.css"
-; CreateShortCut "$SMPROGRAMS\Bacula\Documentation\Manual (HTML).lnk" '"$INSTDIR\doc\index.html"'
-;SectionEnd
+SectionEnd
 
 SectionGroupEnd
 
+
 Section "-Finish"
   Push $R0
 
@@ -865,7 +759,7 @@ Section "-Finish"
   ${EndIf}
 
   ; Write the uninstall keys for Windows & create Start Menu entry
-  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula"
+  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula (R)"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "InstallLocation" "$INSTDIR"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayVersion" "${VERSION}"
   ${StrTok} $R0 "${VERSION}" "." 0 0
@@ -876,7 +770,7 @@ Section "-Finish"
   WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "NoRepair" 1
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "URLUpdateInfo" "http://www.bacula.org"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "URLInfoAbout" "http://www.bacula.org"
-  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "HelpLink" "http://www.baculas.org"
+  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "HelpLink" "http://www.bacula.org"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
   WriteUninstaller "$INSTDIR\Uninstall.exe"
   CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
@@ -894,13 +788,12 @@ SectionEnd
 
 ; Extra Page descriptions
 
-LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula 32 bit File Daemon on this system."
-LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula 32 bit Storage Daemon on this system."
+LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula(R) 32 bit File Daemon on this system."
+LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula(R) 32 bit Storage Daemon on this system."
 LangString DESC_SecConsole ${LANG_ENGLISH} "Install bconsole program on this system."
 LangString DESC_SecBatConsole ${LANG_ENGLISH} "Install Bat graphical console program on this system."
 LangString DESC_SecTrayMonitor ${LANG_ENGLISH} "Install Tray Monitor graphical program on this system."
 LangString DESC_SecAllDrivesPlugin ${LANG_ENGLISH} "Install alldrives Plugin on this system."
-LangString DESC_SecWinBMRPlugin ${LANG_ENGLISH} "Install winbmr Plugin on this system."
 LangString DESC_SecCDPPlugin ${LANG_ENGLISH} "Install CDP Plugin and CDP client on this system."
 
 
@@ -923,8 +816,7 @@ LangString SUBTITLE_WriteTemplates ${LANG_ENGLISH} "Create a resource template f
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecBatConsole} $(DESC_SecBatConsole)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecTrayMonitor} $(DESC_SecTrayMonitor)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecAllDrivesPlugin} $(DESC_SecAllDrivesPlugin)
-;  !InsertMacro MUI_DESCRIPTION_TEXT ${SecWinBMRPlugin} $(DESC_SecWinBMRPlugin)
-  !InsertMacro MUI_DESCRIPTION_TEXT ${SecOldExchangePlugin} $(DESC_SecOldExchangePlugin)
+  !InsertMacro MUI_DESCRIPTION_TEXT ${SecCDPPlugin} $(DESC_SecCDPPlugin)
 !InsertMacro MUI_FUNCTION_DESCRIPTION_END
 
 ; Uninstall section
@@ -935,13 +827,15 @@ Section "Uninstall"
   ; Shutdown any baculum that could be running
   nsExec::ExecToLog '"$INSTDIR\bacula-fd.exe" /kill'
   nsExec::Exec /TIMEOUT=200 'net stop bacula-fd'
-  Sleep 3000
+  nsExec::ExecToLog '"$INSTDIR\bacula-sd.exe" /kill'
+  nsExec::Exec /TIMEOUT=200 'net stop bacula-sd'
+  Sleep 1000
 
 ; ReadRegDWORD $R0 HKLM "Software\Bacula" "Service_Bacula-fd"
   ; Remove Bacula File Daemon service
   nsExec::ExecToLog '"$INSTDIR\bacula-fd.exe" /remove'
 
-  ; Remove Bacula Storage Daemon service
+; Remove Bacula Storage Daemon service
   nsExec::ExecToLog '"$INSTDIR\bacula-sd.exe" /remove'
 
   ; remove registry keys
@@ -951,20 +845,25 @@ Section "Uninstall"
   ; remove start menu items
   SetShellVarContext all
   Delete /REBOOTOK "$SMPROGRAMS\Bacula\*"
-  RMDir "$SMPROGRAMS\Bacula"
+  RMDir /REBOOTOK "$SMPROGRAMS\Bacula"
 
   ; remove files and uninstaller (preserving config for now)
   Delete /REBOOTOK "$INSTDIR\doc\*"
+  Delete /REBOOTOK "$INSTDIR\help\*"
+  Delete /REBOOTOK "$PLUGINSDIR\pw.txt"
+  Delete /REBOOTOK "$PLUGINSDIR\*.sed"
+  Delete /REBOOTOK "$PLUGINSDIR\*.cmd"
+  Delete /REBOOTOK "$PLUGINSDIR\*.sql"
   Delete /REBOOTOK "$INSTDIR\openssl.exe"
   Delete /REBOOTOK "$INSTDIR\bacula-fd.exe"
   Delete /REBOOTOK "$INSTDIR\bat.exe"
-  Delete /REBOOTOK "$INSTDIR\RegitrationWizard.exe"
   Delete /REBOOTOK "$INSTDIR\bacula-tray-monitor.exe"
   Delete /REBOOTOK "$INSTDIR\bsleep.exe"
   Delete /REBOOTOK "$INSTDIR\bsmtp.exe"
   Delete /REBOOTOK "$INSTDIR\bconsole.exe"
   Delete /REBOOTOK "$INSTDIR\expr64.exe"
   Delete /REBOOTOK "$INSTDIR\snooze.exe"
+  Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
   Delete /REBOOTOK "$INSTDIR\LICENSE"
   Delete /REBOOTOK "$INSTDIR\Readme.txt"
   Delete /REBOOTOK "$INSTDIR\*.dll"
@@ -978,13 +877,14 @@ Section "Uninstall"
   Delete /REBOOTOK "$INSTDIR\cdp-client.exe"
 
   ; Check for existing installation
-  IfSilent +2
+  IfSilent +2 0
      MessageBox MB_YESNO|MB_ICONQUESTION \
      "Would you like to delete the current configuration files and the working state file?" /SD IDNO IDNO NoDel
 
 
   Delete /REBOOTOK "$INSTDIR\*"
   Delete /REBOOTOK "$INSTDIR\working\*"
+  Delete /REBOOTOK "$INSTDIR\bat.conf"
   Delete /REBOOTOK "$PLUGINSDIR\bacula-*.conf"
   Delete /REBOOTOK "$PLUGINSDIR\*console.conf"
   Delete /REBOOTOK "$PLUGINSDIR\*conf.in"
@@ -993,11 +893,11 @@ Section "Uninstall"
   RMDir /REBOOTOK "$INSTDIR"
 NoDel:
   ; remove directories used
-
   RMDir "$INSTDIR\plugins"
   RMDir "$INSTDIR\working"
   RMDir "$INSTDIR\doc"
   RMDir "$INSTDIR\help"
+  RMDir "$INSTDIR\platforms"
   RMDir "$INSTDIR"
 SectionEnd
 
@@ -1137,17 +1037,14 @@ Function GetSelectedComponents
   ${If} ${SectionIsSelected} ${SecBatConsole}
     IntOp $R0 $R0 | ${ComponentBatConsole}
   ${EndIf}
-   ${If} ${SectionIsSelected} ${SecTrayMonitor}
-     IntOp $R0 $R0 | ${ComponentTrayMonitor}
-   ${EndIf}
+  ${If} ${SectionIsSelected} ${SecTrayMonitor}
+    IntOp $R0 $R0 | ${ComponentTrayMonitor}
+  ${EndIf}
   ${If} ${SectionIsSelected} ${SecAllDrivesPlugin}
     IntOp $R0 $R0 | ${ComponentAllDrivesPlugin}
   ${EndIf}
-;  ${If} ${SectionIsSelected} ${SecWinBMRPlugin}
-;    IntOp $R0 $R0 | ${ComponentWinBMRPlugin}
-;  ${EndIf}
-  ${If} ${SectionIsSelected} ${SecOldExchangePlugin}
-    IntOp $R0 $R0 | ${ComponentOldExchangePlugin}
+  ${If} ${SectionIsSelected} ${SecCDPPlugin}
+    IntOp $R0 $R0 | ${ComponentCDPPlugin}
   ${EndIf}
   Exch $R0
 FunctionEnd
@@ -1175,7 +1072,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentFile" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecFileDaemon}
-    !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecFileDaemon}
     !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
@@ -1184,7 +1080,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentStorage" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecStorageDaemon}
-    !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecStorageDaemon}
     !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
@@ -1193,7 +1088,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentTextConsole" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecConsole}
-    !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecConsole}
     !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
@@ -1202,7 +1096,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentBatConsole" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecBatConsole}
-    !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecBatConsole}
     !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
@@ -1211,7 +1104,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentTrayMonitor" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecTrayMonitor}
-    !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecTrayMonitor}
     !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
@@ -1220,25 +1112,14 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentAllDrivesPlugin" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecAllDrivesPlugin}
-    !InsertMacro SetSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecAllDrivesPlugin}
     !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
   ${EndIf}
   ClearErrors
-  ${GetOptions} $CMDLINE "-ComponentWinBMRPlugin" $TmpComponent
-  ${IfNot} ${Errors}
-    !InsertMacro SelectSection ${SecWinBMRPlugin}
-    !InsertMacro SetSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-  ${Else}
-    !InsertMacro UnselectSection ${SecWinBMRPlugin}
-    !InsertMacro ClearSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-  ${EndIf}
-  ClearErrors
   ${GetOptions} $CMDLINE "-ComponentCDPPlugin" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecCDPPlugin}
-    !InsertMacro SetSectionFlag ${SecCDPPlugin} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecCDPPlugin}
     !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_RO}
@@ -1247,70 +1128,62 @@ Function SilentSelectComponents
 FunctionEnd
 
 Function SelectPreviousComponents
-  ${If} $InstallType <> ${NewInstall}
-    IntOp $R1 $PreviousComponents & ${ComponentFile}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecFileDaemon}
-      !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecFileDaemon}
-      !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
-    ${EndIf}
-        IntOp $R1 $PreviousComponents & ${ComponentStorage}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecStorageDaemon}
-      !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecStorageDaemon}
-      !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentTextConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecConsole}
-      !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecConsole}
-      !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentBatConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecBatConsole}
-      !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecBatConsole}
-      !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
-    ${EndIf}
-     IntOp $R1 $PreviousComponents & ${ComponentTrayMonitor}
-     ${If} $R1 <> 0
-       !InsertMacro SelectSection ${SecTrayMonitor}
-       !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
-     ${Else}
-       !InsertMacro UnselectSection ${SecTrayMonitor}
-       !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
-     ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentAllDrivesPlugin}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecAllDrivesPlugin}
-      !InsertMacro SetSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecAllDrivesPlugin}
-      !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
-    ${EndIf}
-;    IntOp $R1 $PreviousComponents & ${ComponentWinBMRPlugin}
-;    ${If} $R1 <> 0
-;      !InsertMacro SelectSection ${SecWinBMRPlugin}
-;      !InsertMacro SetSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-;    ${Else}
-;      !InsertMacro UnselectSection ${SecWinBMRPlugin}
-;      !InsertMacro ClearSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-;    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentOldExchangePlugin}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecOldExchangePlugin}
-      !InsertMacro SetSectionFlag ${SecOldExchangePlugin} ${SF_RO}
+  IntOp $R1 $PreviousComponents & ${ComponentFile}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecFileDaemon}
+  ${Else}
+    !InsertMacro UnselectSection ${SecFileDaemon}
+    !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentStorage}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecStorageDaemon}
+  ${Else}
+    !InsertMacro UnselectSection ${SecStorageDaemon}
+    !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentTextConsole}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecConsole}
+  ${Else}
+    !InsertMacro UnselectSection ${SecConsole}
+    !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentBatConsole}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecBatConsole}
+  ${Else}
+    !InsertMacro UnselectSection ${SecBatConsole}
+    !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentTrayMonitor}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecTrayMonitor}
+  ${Else}
+    !InsertMacro UnselectSection ${SecTrayMonitor}
+    !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentAllDrivesPlugin}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecAllDrivesPlugin}
+  ${Else}
+    !InsertMacro UnselectSection ${SecAllDrivesPlugin}
+    !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentCDPPlugin}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecCDPPlugin}
+  ${Else}
+    !InsertMacro UnselectSection ${SecCDPPlugin}
+    !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_RO}
+  ${EndIf}
+  ${If} $PreviousComponents = 0
+    ${If} $AutomaticInstall = 1
+      ;Client
+      SetCurInstType 0
     ${Else}
-      !InsertMacro UnselectSection ${SecOldExchangePlugin}
-      !InsertMacro ClearSectionFlag ${SecOldExchangePlugin} ${SF_RO}
+      ;Custom
+      SetCurInstType 3
     ${EndIf}
   ${EndIf}
 FunctionEnd
@@ -1332,7 +1205,7 @@ Function UpdateComponentUI
     ${Else}
       !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_BOLD}
     ${EndIf}
-        IntOp $R1 $NewComponents & ${ComponentStorage}
+    IntOp $R1 $NewComponents & ${ComponentStorage}
     ${If} $R1 <> 0
       !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_BOLD}
     ${Else}
@@ -1350,23 +1223,23 @@ Function UpdateComponentUI
     ${Else}
       !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_BOLD}
     ${EndIf}
-     IntOp $R1 $NewComponents & ${ComponentTrayMonitor}
-     ${If} $R1 <> 0
-       !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_BOLD}
-     ${Else}
-       !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_BOLD}
-     ${EndIf}
+    IntOp $R1 $NewComponents & ${ComponentTrayMonitor}
+    ${If} $R1 <> 0
+      !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_BOLD}
+    ${Else}
+      !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_BOLD}
+    ${EndIf}
     IntOp $R1 $NewComponents & ${ComponentAllDrivesPlugin}
     ${If} $R1 <> 0
       !InsertMacro SetSectionFlag ${SecAllDrivesPlugin} ${SF_BOLD}
     ${Else}
       !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_BOLD}
     ${EndIf}
-    IntOp $R1 $NewComponents & ${ComponentOldExchangePlugin}
+    IntOp $R1 $NewComponents & ${ComponentCDPPlugin}
     ${If} $R1 <> 0
-      !InsertMacro SetSectionFlag ${SecOldExchangePlugin} ${SF_BOLD}
+      !InsertMacro SetSectionFlag ${SecCDPPlugin} ${SF_BOLD}
     ${Else}
-      !InsertMacro ClearSectionFlag ${SecOldExchangePlugin} ${SF_BOLD}
+      !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_BOLD}
     ${EndIf}
   ${EndIf}
 
@@ -1383,6 +1256,7 @@ Function UpdateComponentUI
   Pop $R0
 FunctionEnd
 
+
 !include "InstallType.nsh"
 !include "ConfigPage1.nsh"
 !include "ConfigPage2.nsh"
index cde1791b8292509a36bd1c1279ae58e4f7d43989..9e550b60c26a59de36b83d510362026e9a0e9073 100644 (file)
@@ -69,11 +69,8 @@ Function EnterInstallType
     ${If} ${FileExists} "$R1\plugins\alldrives-fd.dll"
       IntOp $PreviousComponents $PreviousComponents | ${ComponentAllDrivesPlugin}
     ${EndIf}
-    ${If} ${FileExists} "$R1\plugins\exchange-fd.dll"
-      IntOp $PreviousComponents $PreviousComponents | ${ComponentOldExchangePlugin}
-    ${EndIf}
-    ${If} ${FileExists} "$R2\main.pdf"
-      IntOp $PreviousComponents $PreviousComponents | ${ComponentPDFDocs}
+    ${If} ${FileExists} "$R1\plugins\cdp-fd.dll"
+      IntOp $PreviousComponents $PreviousComponents | ${ComponentCDPPlugin}
     ${EndIf}
   ${EndIf}
 
index 9a86e2fe6d57ca1542c230b82b4824f4dca06e98..1393589567109059a98197f757f63f35ff4b441c 100644 (file)
@@ -21,6 +21,7 @@ DEFINES := \
        -DSRC32_DIR=$(BUILDDIR)/win32_installer/release32 \
        -DWINVER=64 \
        -DBUILD_TOOLS=MinGW64 \
+       -DPRODUCT_PUBLISHER="Bacula Systems SA" \
        -DBUILD_BAT=$(BUILD_BAT)
 
 INSTALL_EXE := $(BUILDDIR)/release64/winbacula-$(VERSION).exe
@@ -28,7 +29,6 @@ INSTALL_EXE := $(BUILDDIR)/release64/winbacula-$(VERSION).exe
 BACULABINARIES := \
        bacula.dll \
        alldrives-fd.dll \
-       exchange-fd.dll \
        cdp-fd.dll \
        cdp-client.exe \
        bsleep.exe \
@@ -55,7 +55,7 @@ DEPKGS_BINARIES := \
        libstdc++-6.dll \
        libcrypto-1_1-x64.dll \
        libssl-1_1-x64.dll \
-       zlib1.dll \
+       zlib1.dll
 
 #      libgcc_s_dw2-1.dll
 
@@ -114,13 +114,11 @@ ifeq ($(bat),no)
        BACULA_BINARIES=$(BACULABINARIES)
        HELP=
 else
-       BACULA_BINARIES=$(BACULABINARIES) bat.exe bacula-tray-monitor.exe RegistrationWizard.exe
+       BACULA_BINARIES=$(BACULABINARIES) bat.exe bacula-tray-monitor.exe
        HELP=help
 endif
 
 
-EXTRA=
-
 ##########################################################################
 
 # Targets
@@ -143,7 +141,6 @@ help:
        mkdir -p release64/help
        cp -f $(BINDIR)/help/* release64/help/
 
-
 #
 # Rules
 #
index 2e5a3d1d175b1b12e333e98bbc5e005039de4721..d85c21caf004fce4cdb8dbb021b7af31707e097d 100755 (executable)
@@ -1,11 +1,11 @@
 Bacula - Windows Version Disclaimer\r
 ===================================\r
 \r
-Please note, only the Win64 Client (File daemon) is supported.\r
-The other components (Director, Storage daemon,\r
-their utilities) are not provided because they have not been ported.\r
+Please note, only the Win64 Client (File daemon) and the Storage daemon \r
+backing up to disk are supported.  Currently the Director is not \r
+supported.\r
 \r
-Note: the Win64 Client can only be installed on 64 bit Windows Operating\r
+Note: the Win64 Client can only be installed on 64 bit Windows Operating \r
 systems.\r
 \r
 \r
@@ -15,36 +15,40 @@ Bacula - Windows Version Notes
 These notes highlight how the Windows version of Bacula differs from the \r
 other versions.  It also provides any notes additional to the documentation.\r
 \r
-For detailed documentation on using, configuring and troubleshooting Bacula,\r
-please consult the installed documentation or the online documentation at\r
+For detailed documentation on using, configuring and troubleshooting \r
+Bacula, please consult the installed documentation or the online \r
+documentation at\r
 http://www.bacula.org/?page=documentation.\r
 \r
 \r
 Start Menu Items\r
 ----------------\r
-A number of menu items have been created in the Start menu under All Programs\r
-in the Bacula submenu.  They may be selected to edit the configuration files,\r
-view the documentation or run one of the console or utility programs.  The \r
-choices available will vary depending on the options you chose to install.\r
+A number of menu items have been created in the Start menu under All \r
+Programs in the Bacula submenu.  They may be selected to edit the \r
+configuration files, view the documentation or run one of the console \r
+or utility programs.  The choices available will vary depending \r
+on the options you chose to install.\r
 \r
 \r
 File Locations\r
 --------------\r
 Everything is installed in the directory \r
-"C:\Program Files\Bacula" unless a different directory was selected during\r
-installation. Note: due to a bug in the NSIS installer we are using, on \r
-64 bit machines appears to install Bacula in "C:\Program Files (x86)\Bacula".\r
+"C:\Program Files\Bacula" unless a different directory was selected \r
+during installation. Note: due to a bug in the NSIS installer we \r
+are using, on 64 bit machines appears to install Bacula in \r
+"C:\Program Files (x86)\Bacula".\r
 \r
 Code Page Problems\r
 -------------------\r
-Please note that Bacula expects the contents of the configuration files to be \r
-written in UTF-8 format. Some translations of "Application Data" have accented\r
-characters, and apparently the installer writes this translated data in the\r
-standard Windows code page coding.  This occurs for the Working Directory, and \r
-when it happens the daemon will not start since Bacula cannot find the directory.\r
-The workaround is to manually edit the appropriate conf file and ensure that it\r
-is written out in UTF-8 format.\r
-\r
-The conf files can be edited with any UTF-8 compatible editor, or on most \r
-modern Windows machines, you can edit them with notepad, then choose UTF-8\r
-output encoding before saving them.\r
+Please note that Bacula expects the contents of the configuration \r
+files to be written in UTF-8 format. Some translations of \r
+"Application Data" have accented characters, and apparently the \r
+installer writes this translated data in the standard Windows code \r
+page coding.  This occurs for the Working Directory, and when it \r
+happens the daemon will not start since Bacula cannot find the \r
+directory. The workaround is to manually edit the appropriate \r
+conf file and ensure that it is written out in UTF-8 format.\r
+\r
+The conf files can be edited with any UTF-8 compatible editor, \r
+or on most modern Windows machines, you can edit them with \r
+notepad, then choose UTF-8 output encoding before saving them.\r
index 3b3631c3ff6980e4e7555640da8d87c2a6a36ea9..f774ed8c8d34537381540b1e9aab468aff5f1b5f 100644 (file)
@@ -28,3 +28,21 @@ Left=16
 Right=288
 Top=50
 Bottom=62
+
+[Field 4]
+Type="CheckBox"
+Text="Save Storage template in:"
+Left=6
+Right=248
+Top=70
+Bottom=80
+
+[Field 5]
+Type="FileRequest"
+State="Storage.conf"
+Flags=REQ_SAVE|FILE_EXPLORER|WARN_IF_EXIST
+Filter=Configuration Files|*.conf|All Files|*.*
+Left=16
+Right=288
+Top=82
+Bottom=94
index 97eae763a564c8d662b3a36ccc53cd022f3b64ca..4bfb7ee143d8d0417ea8ec2d2c4ae5f3d75c8171 100644 (file)
@@ -1,10 +1,6 @@
-#
-# Copyright (C) 2000-2018 Kern Sibbald
-# License: BSD 2-Clause; see file LICENSE-FOSS
-#
 ##{{NSIS_PLUS_BEGIN_PROJECT_SETTINGS}}##
 #NAME "Release"
-#       CMD -DSRC_DIR=release64 -DSRC32_DIR=..\win32_installer\release32 -DSRC64_DIR=..\win64_installer\release64 -DOUT_DIR=release64 -DWINVER=64 -DVERSION=9.0.7 -DBUILD_TOOLS=NSIS-3.0b0
+#       CMD -DSRC_DIR=release64 -DSRC32_DIR=..\win32_installer\release32 -DSRC64_DIR=..\win64_installer\release64 -DOUT_DIR=release64 -DWINVER=64 -DVERSION=6.7.9 -DBUILD_TOOLS=NSIS-3.0b0
 #       EXE C:\Program Files (x86)\NSIS\makensis.exe
 #       FLAGS 2
 ##{{NSIS_PLUS_END_PROJECT_SETTINGS}}##
 ; Adapted by Kern Sibbald for native Win32 Bacula
 ;    added a number of elements from Christopher Hull's installer
 ;
-; D. Scott Barninger Nov 13 2004
-; added configuration editing for bconsole.conf and bwx-console.conf
-; better explanation in dialog boxes for editing config files
-; added Start Menu items
-; fix uninstall of config files to do all not just bacula-fd.conf
-;
-; D. Scott Barninger Dec 05 2004
-; added specification of default permissions for bacula-fd.conf
-;   - thanks to Jamie Ffolliott for pointing me at cacls
-; added removal of working-dir files if user selects to remove config
-; uninstall is now 100% clean
-;
 ; D. Scott Barninger Apr 17 2005
-; 1.36.3 release docs update
-; add pdf manual and menu shortcut
-;
 ; Robert Nelson May 15 2006
-; Added server installs and implemented Microsoft install locations
-; Use LogicLib.nsh
-; Added Bacula-SD and Bacula-DIR
-; Replaced ParameterGiven with standard GetOptions
-;
-; Kern Sibbald October 2008
-; Remove server installs
-; Install into single bacula directory
-;  (i.e. undo a large part of what Robert Nelson did)
-;
 ; Eric Bollengier March 2009
-; Updated to handle Win64 installation
 ;
-; Kern Sibbald April 2009
-; Correct some Win64 install problems
-; It is mind boggling how many lines of this insane scripting language
-;   have been written with absolutely no comments
+; Kern Sibbald October 2010
+; Remove server installs and
+;   install into a single bacula directory
+;
 ;
 ; Command line options:
 ;
 ;
 ; Basics
 ;
-Name "Bacula"
+; Name in Welcome screen
+Name "Bacula 64 bit"
 OutFile "${OUT_DIR}\bacula-win${WINVER}-${VERSION}.exe"
 SetCompressor lzma
-Caption "Bacula 64 bit Edition ${VERSION}"
+Caption "Bacula 64 bit ${VERSION}"
+;Caption "Bacula 64 bit Edition"
 VIProductVersion ${VERSION}.1
-VIAddVersionKey CompanyName "Bacula Project"
-VIAddVersionKey LegalCopyright "Kern Sibbald"
+VIAddVersionKey CompanyName "Bacula Systems SA"
+VIAddVersionKey LegalCopyright "Bacula Systems SA"
 VIAddVersionKey FileDescription "Bacula network backup and restore"
 VIAddVersionKey FileVersion win${WINVER}-${VERSION}
 VIAddVersionKey ProductVersion win${WINVER}-${VERSION}
-VIAddVersionKey ProductName "Bacula"
-VIAddVersionKey InternalName "Bacula"
-VIAddVersionKey LegalTrademarks "Bacula is a registered trademark of Kern Sibbald"
+VIAddVersionKey ProductName "Bacula Community Edition"
+VIAddVersionKey InternalName "Bacula Community Edition"
+VIAddVersionKey LegalTrademarks "Bacula is a registered trademark of Bacula Systems SA"
 VIAddVersionKey OriginalFilename "bacula.exe"
 
-InstallDir "C:\Program Files\Bacula"
+InstallDir "$PROGRAMFILES64\Bacula"
 InstallDirRegKey HKLM "Software\Bacula" "InstallLocation"
 
 InstType "Client"
@@ -114,6 +86,8 @@ ${StrTrimNewLines}
 !define      MUI_HEADERIMAGE
 !define      MUI_BGCOLOR                739AB9
 !define      MUI_HEADERIMAGE_BITMAP     "bacula-logo.bmp"
+!define      MUI_HEADERIMAGE_LEFT
+!define      MUI_HEADERIMAGE_BITMAP_NOSTRETCH
 
 !InsertMacro MUI_PAGE_WELCOME
 !InsertMacro MUI_PAGE_LICENSE "${SRC_DIR}\LICENSE"
@@ -126,8 +100,8 @@ Page custom EnterConfigPage1 LeaveConfigPage1
 Page custom EnterConfigPage2 LeaveConfigPage2
 !Define      MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveInstallPage
 !InsertMacro MUI_PAGE_INSTFILES
-Page custom EnterWriteTemplates
 !Define      MUI_FINISHPAGE_SHOWREADME $INSTDIR\Readme.txt
+!Define      MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
 !InsertMacro MUI_PAGE_FINISH
 
 !InsertMacro MUI_UNPAGE_WELCOME
@@ -215,9 +189,8 @@ Var TmpComponent
 ;     6 = Documentation (PDF)
 ;     7 = Documentation (HTML)
 ;     8 = alldrives Plugin
-;     9 = Old Exchange Plugin
+;     9 = CDP Plugin
 ;    10 = Tray Monitor
-;    11 = winbmr Plugin  (not implemented in community version)
 
 !define ComponentFile                   1
 !define ComponentStorage                2
@@ -227,8 +200,9 @@ Var TmpComponent
 !define ComponentGUIConsole             32
 !define ComponentPDFDocs                64
 !define ComponentHTMLDocs               128
+!define MUI_PAGE_LICENSE "${SRC_DIR}\INSTALL"
 !define ComponentAllDrivesPlugin        256
-!define ComponentOldExchangePlugin      512
+!define ComponentCDPPlugin              512
 !define ComponentTrayMonitor            1024
 
 !define ComponentsRequiringUserConfig           63
@@ -240,12 +214,21 @@ Var TmpComponent
 Var HDLG
 Var HCTL
 
+# detect if a process is running
+# usage: !insertmacro FindProc $R0 "bacula-tray-monitor.exe"
+# then if $R0 == 0 then the process is running, else it is not running or the
+# macro failed fo another raison
+!define FindProc_FOUND 0
+!macro FindProc result processName
+    # I tried to "protect" binaries path with ", but it is not working anymore
+    nsExec::Exec 'cmd /c %SystemRoot%\System32\tasklist.exe /NH /FI "IMAGENAME eq ${processName}" | %SystemRoot%\System32\find.exe /I "${processName}"'
+    Pop ${result} ; The exit code 0 -> Found
+!macroend
+
 Function .onInit
   Push $R0
   Push $R1
 
-  ;LogSet on
-
   ; Process Command Line Options
   StrCpy $OptService 1
   StrCpy $OptStart 1
@@ -273,6 +256,17 @@ Function .onInit
      Abort
   ${EndIf}
 
+  !insertmacro FindProc $R0 "bacula-tray-monitor.exe"
+  # if FindProc fail for any reason (like tasklisk.exe not found), FindProc return
+  # a return code != 0, and the installer will continue.
+  # if "bacula-tray-monitor.exe" is running the installer will faile later
+  IntCmp $R0 0 BaculaTrayMonitorFound BaculaTrayMonitorNotFound BaculaTrayMonitorNotFound
+  BaculaTrayMonitorFound:
+     IfSilent +2 0
+     MessageBox MB_OK|MB_ICONEXCLAMATION "bacula-tray-monitor.exe is running. Please close it first" /SD IDOK
+     Abort
+  BaculaTrayMonitorNotFound:
+
   ${GetOptions} $R0 "/noservice" $R1
   IfErrors +2
     StrCpy $OptService 0
@@ -509,7 +503,7 @@ Section "-Initialize"
   Delete /REBOOTOK "$INSTDIR\License.txt"
 
 ; Output a series of SED commands to configure the .conf file(s)
-  FileOpen $R1 $INSTDIR\working\config.sed w
+  FileOpen $R1 $PLUGINSDIR\config.sed w
   FileWrite $R1 "s;@VERSION@;${VERSION};g$\r$\n"
   FileWrite $R1 "s;@DATE@;${__DATE__};g$\r$\n"
   FileWrite $R1 "s;@DISTNAME@;Windows;g$\r$\n"
@@ -524,11 +518,8 @@ Section "-Initialize"
 
   ${StrRep} $R2 "$INSTDIR\working" "\" "\\\\"
   FileWrite $R1 's;@working_dir@;$R2;g$\r$\n'
-
-  ${StrRep} $R2 "$INSTDIR" "\" "\\\\"
-  FileWrite $R1 's;@bin_dir@;$R2;g$\r$\n'
-  ${StrRep} $R2 "$INSTDIR" "\" "\\"
-  FileWrite $R1 's;@bin_dir_cmd@;$R2;g$\r$\n'
+;  ${StrRep} $R2 "$INSTDIR\working" "\" "\\"
+;  FileWrite $R1 's;@working_dir_cmd@;$R2;g$\r$\n'
 
   ${StrRep} $R2 "$INSTDIR\plugins" "\" "\\\\"
   FileWrite $R1 's;@fdplugins_dir@;$R2;g$\r$\n'
@@ -570,7 +561,6 @@ Section "-Initialize"
   ${If} ${FileExists} "$OldInstallDir\bin\bacula-sd.exe"
     nsExec::ExecToLog '"$OldInstallDir\bin\bacula-sd.exe" /kill'     ; Shutdown any bacula that could be running
     nsExec::ExecToLog '"$OldInstallDir\bin\bacula-sd.exe" /kill'     ; Shutdown any bacula that could be running
-    nsExec::Exec /TIMEOUT=200 'net stop bacula-sd'
     Sleep 1000
     nsExec::ExecToLog '"$OldInstallDir\bin\bacula-sd.exe" /remove'   ; Remove existing service
   ${EndIf}
@@ -592,8 +582,8 @@ Section "File Service" SecFileDaemon
   SetOutPath "$INSTDIR"
 
   File "${SRC_DIR}\bacula-fd.exe"
-  Delete "$INSTDIR\working\bacula-fd.conf.in"
-  File "/oname=$INSTDIR\working\bacula-fd.conf.in" "bacula-fd.conf.in"
+
+  File "/oname=$PLUGINSDIR\bacula-fd.conf" "bacula-fd.conf.in"
 
   StrCpy $0 "$INSTDIR"
   StrCpy $1 bacula-fd.conf
@@ -614,7 +604,7 @@ SectionGroupEnd
 SectionGroup "Server" SecGroupServer
 
 Section "Storage Service" SecStorageDaemon
-  SectionIn 2 3
+  SectionIn 2
 
   SetOutPath "$INSTDIR"
 
@@ -623,7 +613,7 @@ Section "Storage Service" SecStorageDaemon
   File "${SRC_DIR}\bextract.exe"
   File "${SRC_DIR}\bls.exe"
 
-  File "/oname=$INSTDIR\working\bacula-sd.conf.in" "bacula-sd.conf.in"
+  File "/oname=$PLUGINSDIR\bacula-sd.conf" "bacula-sd.conf.in"
 
   StrCpy $0 "$INSTDIR"
   StrCpy $1 bacula-sd.conf
@@ -640,13 +630,13 @@ Section "Storage Service" SecStorageDaemon
 # File "${SRC_DIR}\mkisofs.exe"
 # File "${SRC_DIR}\growisofs.exe"
 
-#  File "/oname=$INSTDIR\working\mtx-changer.cmd" "scripts\mtx-changer.cmd"
+#  File "/oname=$PLUGINSDIR\mtx-changer.cmd" "scripts\mtx-changer.cmd"
 
 #  StrCpy $0 "$INSTDIR\bin"
 #  StrCpy $1 mtx-changer.cmd
 #  Call ConfigEditAndCopy
 
-#  File "/oname=$INSTDIR\working\disk-changer.cmd" "scripts\disk-changer.cmd"
+#  File "/oname=$PLUGINSDIR\disk-changer.cmd" "scripts\disk-changer.cmd"
 
 #  StrCpy $0 "$INSTDIR"
 #  StrCpy $1 disk-changer.cmd
@@ -664,17 +654,18 @@ SectionEnd
 
 SectionGroupEnd
 
+
 SectionGroup "Consoles" SecGroupConsoles
 
 Section "Command Console" SecConsole
-  SectionIn 1 2 3
+  SectionIn 1 2
 
   SetOutPath "$INSTDIR"
 
   File "${SRC_DIR}\bconsole.exe"
   Call InstallCommonFiles
 
-  File "/oname=$INSTDIR\working\bconsole.conf.in" "bconsole.conf.in"
+  File "/oname=$PLUGINSDIR\bconsole.conf" "bconsole.conf.in"
   StrCpy $0 "$INSTDIR"
   StrCpy $1 bconsole.conf
   Call ConfigEditAndCopy
@@ -685,7 +676,7 @@ Section "Command Console" SecConsole
 SectionEnd
 
 Section "Bat Console" SecBatConsole
-  SectionIn 1 2 3
+  ;SectionIn 1 2 3
 
   SetOutPath "$INSTDIR"
 
@@ -704,7 +695,7 @@ Section "Bat Console" SecBatConsole
   File "/oname=$INSTDIR\bacula.dll" "${SRC64_DIR}\bacula.dll"
   File "/oname=$INSTDIR\zlib1.dll" "${SRC64_DIR}\zlib1.dll"
 
-  File "/oname=$INSTDIR\working\bat.conf.in" "bat.conf.in"
+  File "/oname=$PLUGINSDIR\bat.conf" "bat.conf.in"
   StrCpy $0 "$INSTDIR"
   StrCpy $1 bat.conf
   Call ConfigEditAndCopy
@@ -726,7 +717,7 @@ Section "Bat Console" SecBatConsole
 SectionEnd
 
 Section "Tray Monitor" SecTrayMonitor
-  SectionIn 1 2 3
+  SectionIn 1 2
 
   SetOutPath "$INSTDIR"
 
@@ -761,12 +752,21 @@ Section "Tray Monitor" SecTrayMonitor
 
 SectionEnd
 
+; Deleted because wxconsole is deprecated
+;Section "Graphical Console" SecWxConsole
+;  SectionIn 1 2 3
+  
+;  SetOutPath "$INSTDIR"
+;
+;SectionEnd
+
 SectionGroupEnd
 
+
 SectionGroup "Plugins" SecGroupPlugins
 
 Section "alldrives Plugin" SecAllDrivesPlugin
-  SectionIn 1 2 3
+  ;SectionIn 1 2 3
 
   SetOutPath "$INSTDIR\plugins"
   File "${SRC_DIR}\alldrives-fd.dll"
@@ -774,11 +774,11 @@ Section "alldrives Plugin" SecAllDrivesPlugin
 
 SectionEnd
 
-Section "Old (deprecated) Exchange Plugin" SecOldExchangePlugin
+Section /o "CDP Plugin" SecCDPPlugin
   SectionIn 1 2 3
 
   SetOutPath "$INSTDIR\plugins"
-  File "${SRC_DIR}\exchange-fd.dll"
+  File "${SRC_DIR}\cdp-fd.dll"
   SetOutPath "$INSTDIR"
   File "${SRC_DIR}\cdp-client.exe"
 
@@ -786,6 +786,7 @@ SectionEnd
 
 SectionGroupEnd
 
+
 Section "-Finish"
   Push $R0
 
@@ -796,7 +797,7 @@ Section "-Finish"
   ${EndIf}
 
   ; Write the uninstall keys for Windows & create Start Menu entry
-  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula"
+  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula (R) "
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "InstallLocation" "$INSTDIR"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayVersion" "${VERSION}"
   ${StrTok} $R0 "${VERSION}" "." 0 0
@@ -807,7 +808,7 @@ Section "-Finish"
   WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "NoRepair" 1
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "URLUpdateInfo" "http://www.bacula.org"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "URLInfoAbout" "http://www.bacula.org"
-  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "HelpLink" "http://www.bacula.org?page=support"
+  WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "HelpLink" "http://www.bacula.org"
   WriteRegStr   HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
   WriteUninstaller "$INSTDIR\Uninstall.exe"
   CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
@@ -825,15 +826,15 @@ SectionEnd
 
 ; Extra Page descriptions
 
-LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula 64 bit File Daemon on this system."
-LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula 64 bit Storage Daemon on this system."
-LangString DESC_SecConsole ${LANG_ENGLISH} "Install command console program on this system."
+LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula (R) 64 bit File Daemon on this system."
+LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula (R) 64 bit Storage Daemon on this system."
+LangString DESC_SecConsole ${LANG_ENGLISH} "Install bconsole program on this system."
 LangString DESC_SecBatConsole ${LANG_ENGLISH} "Install Bat graphical console program on this system."
 LangString DESC_SecTrayMonitor ${LANG_ENGLISH} "Install Tray Monitor graphical program on this system."
 LangString DESC_SecAllDrivesPlugin ${LANG_ENGLISH} "Install alldrives Plugin on this system."
-LangString DESC_SecOldExchangePlugin ${LANG_ENGLISH} "Install old (deprecated) Exchange Plugin on this system."
 LangString DESC_SecCDPPlugin ${LANG_ENGLISH} "Install CDP Plugin and CDP client on this system."
 
+
 LangString TITLE_ConfigPage1 ${LANG_ENGLISH} "Configuration"
 LangString SUBTITLE_ConfigPage1 ${LANG_ENGLISH} "Set installation configuration."
 
@@ -853,7 +854,6 @@ LangString SUBTITLE_WriteTemplates ${LANG_ENGLISH} "Create a resource template f
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecBatConsole} $(DESC_SecBatConsole)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecTrayMonitor} $(DESC_SecTrayMonitor)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecAllDrivesPlugin} $(DESC_SecAllDrivesPlugin)
-  !InsertMacro MUI_DESCRIPTION_TEXT ${SecOldExchangePlugin} $(DESC_SecOldExchangePlugin)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecCDPPlugin} $(DESC_SecCDPPlugin)
 !InsertMacro MUI_FUNCTION_DESCRIPTION_END
 
@@ -867,7 +867,7 @@ Section "Uninstall"
   nsExec::Exec /TIMEOUT=200 'net stop bacula-fd'
   nsExec::ExecToLog '"$INSTDIR\bacula-sd.exe" /kill'
   nsExec::Exec /TIMEOUT=200 'net stop bacula-sd'
-  Sleep 3000
+  Sleep 1000
 
 ; ReadRegDWORD $R0 HKLM "Software\Bacula" "Service_Bacula-fd"
   ; Remove Bacula File Daemon service
@@ -876,8 +876,6 @@ Section "Uninstall"
 ; Remove Bacula Storage Daemon service
   nsExec::ExecToLog '"$INSTDIR\bacula-sd.exe" /remove'
 
-  nsExec::ExecToLog '"$INSTDIR\plugins\exchange-fd.dll" /remove'
-  
   ; remove registry keys
   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
   DeleteRegKey HKLM "Software\Bacula"
@@ -890,7 +888,10 @@ Section "Uninstall"
   ; remove files and uninstaller (preserving config for now)
   Delete /REBOOTOK "$INSTDIR\doc\*"
   Delete /REBOOTOK "$INSTDIR\help\*"
-  Delete /REBOOTOK "$INSTDIR\plugins\*"
+  Delete /REBOOTOK "$PLUGINSDIR\pw.txt"
+  Delete /REBOOTOK "$PLUGINSDIR\*.sed"
+  Delete /REBOOTOK "$PLUGINSDIR\*.cmd"
+  Delete /REBOOTOK "$PLUGINSDIR\*.sql"
   Delete /REBOOTOK "$INSTDIR\openssl.exe"
   Delete /REBOOTOK "$INSTDIR\bacula-fd.exe"
   Delete /REBOOTOK "$INSTDIR\bat.exe"
@@ -905,32 +906,29 @@ Section "Uninstall"
   Delete /REBOOTOK "$INSTDIR\Readme.txt"
   Delete /REBOOTOK "$INSTDIR\*.dll"
   Delete /REBOOTOK "$INSTDIR\plugins\alldrives-fd.dll"
-  Delete /REBOOTOK "$INSTDIR\plugins\exchange-fd.dll"
   Delete /REBOOTOK "$INSTDIR\plugins\cdp-fd.dll"
   Delete /REBOOTOK "$INSTDIR\cdp-client.exe"
 
   ; Check for existing installation
-  MessageBox MB_YESNO|MB_ICONQUESTION \
-  "Would you like to delete the current configuration files and the working state file?" IDNO NoDel
+  IfSilent +2 0
+    MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to delete the current configuration files and the working state file?" /SD IDNO IDNO NoDel
+
     Delete /REBOOTOK "$INSTDIR\*"
-    Delete /REBOOTOK "$INSTDIR\bin32\*"
-    Delete /REBOOTOK "$INSTDIR\working\*"
-    Delete /REBOOTOK "$INSTDIR\plugins\*"
     Delete /REBOOTOK "$INSTDIR\working\*"
-    Delete /REBOOTOK "$INSTDIR\*"
-    RMDir "$INSTDIR\plugins"
-    RMDir "$INSTDIR\working"
-    RMDir "$INSTDIR\bin32"
+    Delete /REBOOTOK "$INSTDIR\bat.conf"
+    Delete /REBOOTOK "$PLUGINSDIR\bacula-*.conf"
+    Delete /REBOOTOK "$PLUGINSDIR\*console.conf"
+    Delete /REBOOTOK "$PLUGINSDIR\*conf.in"
     RMDir /REBOOTOK "$INSTDIR\plugins"
     RMDir /REBOOTOK "$INSTDIR\working"
     RMDir /REBOOTOK "$INSTDIR"
 NoDel:
-
   ; remove directories used
   RMDir "$INSTDIR\plugins"
   RMDir "$INSTDIR\working"
   RMDir "$INSTDIR\doc"
   RMDir "$INSTDIR\help"
+  RMDir "$INSTDIR\platforms"
   RMDir "$INSTDIR"
 SectionEnd
 
@@ -950,7 +948,6 @@ Function InstallDaemon
     nsExec::Exec /TIMEOUT=200 'net stop bacula-fd'
     nsExec::ExecToLog '"$INSTDIR\bacula-sd.exe" /kill'
     nsExec::Exec /TIMEOUT=200 'net stop bacula-sd'
-    sleep 3000
     nsExec::ExecToLog '"$INSTDIR\$0.exe" /remove'
     nsExec::ExecToLog '"$INSTDIR\$0.exe" /install -c "$INSTDIR\$0.conf"'
 
@@ -959,18 +956,8 @@ Function InstallDaemon
       File "Stop.bat"
     ${EndIf}
 
-    ; Start the service?
-
-    ${If} $3 = 1  
-      ${If} $OsIsNT = 1
-        nsExec::ExecToLog 'net start $0'
-      ${Else}
-        Exec '"$INSTDIR\$0.exe" /service -c "$INSTDIR\$0.conf"'
-      ${EndIf}
-    ${EndIf}
-  ${Else}
-    CreateShortCut "$SMPROGRAMS\Bacula\Start $1.lnk" "$INSTDIR\$0.exe" '-c "$INSTDIR\$0.conf"' "$INSTDIR\$0.exe" 0
   ${EndIf}
+
 FunctionEnd
 
 Function GetComputerName
@@ -1060,8 +1047,8 @@ Function ConfigEditAndCopy
     StrCpy $R1 ""
   ${EndIf}
 
-  nsExec::ExecToLog '$INSTDIR\working\sed.exe -i.bak -f "$INSTDIR\working\config.sed" "$INSTDIR\working\$1.in"'
-  CopyFiles "$INSTDIR\working\$1.in" "$0\$1$R1"
+  nsExec::ExecToLog '$PLUGINSDIR\sed.exe -f "$PLUGINSDIR\config.sed" -i.bak "$PLUGINSDIR\$1"'
+  CopyFiles "$PLUGINSDIR\$1" "$0\$1$R1"
 
   Pop $R1
 FunctionEnd
@@ -1082,19 +1069,18 @@ Function GetSelectedComponents
     IntOp $R0 $R0 | ${ComponentBatConsole}
   ${EndIf}
   ${If} ${SectionIsSelected} ${SecTrayMonitor}
-    ;IntOp $R0 $R0 | ${ComponentTrayMonitor}
+    IntOp $R0 $R0 | ${ComponentTrayMonitor}
   ${EndIf}
   ${If} ${SectionIsSelected} ${SecAllDrivesPlugin}
     IntOp $R0 $R0 | ${ComponentAllDrivesPlugin}
   ${EndIf}
-  ${If} ${SectionIsSelected} ${SecOldExchangePlugin}
-    IntOp $R0 $R0 | ${ComponentOldExchangePlugin}
+  ${If} ${SectionIsSelected} ${SecCDPPlugin}
+    IntOp $R0 $R0 | ${ComponentCDPPlugin}
   ${EndIf}
   Exch $R0
 FunctionEnd
 
 Function PageComponentsShow
-
   Call SelectPreviousComponents
   Call UpdateComponentUI
 FunctionEnd
@@ -1117,7 +1103,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentFile" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecFileDaemon}
-    !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecFileDaemon}
     !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
@@ -1126,7 +1111,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentStorage" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecStorageDaemon}
-    !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecStorageDaemon}
     !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
@@ -1135,7 +1119,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentTextConsole" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecConsole}
-    !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecConsole}
     !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
@@ -1144,7 +1127,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentBatConsole" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecBatConsole}
-    !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecBatConsole}
     !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
@@ -1153,7 +1135,6 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentTrayMonitor" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecTrayMonitor}
-    !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecTrayMonitor}
     !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
@@ -1162,25 +1143,14 @@ Function SilentSelectComponents
   ${GetOptions} $CMDLINE "-ComponentAllDrivesPlugin" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecAllDrivesPlugin}
-    !InsertMacro SetSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecAllDrivesPlugin}
     !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
   ${EndIf}
   ClearErrors
-  ${GetOptions} $CMDLINE "-ComponentWinBMRPlugin" $TmpComponent
-  ${IfNot} ${Errors}
-    !InsertMacro SelectSection ${SecWinBMRPlugin}
-    !InsertMacro SetSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-  ${Else}
-    !InsertMacro UnselectSection ${SecWinBMRPlugin}
-    !InsertMacro ClearSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-  ${EndIf}
-  ClearErrors
   ${GetOptions} $CMDLINE "-ComponentCDPPlugin" $TmpComponent
   ${IfNot} ${Errors}
     !InsertMacro SelectSection ${SecCDPPlugin}
-    !InsertMacro SetSectionFlag ${SecCDPPlugin} ${SF_RO}
   ${Else}
     !InsertMacro UnselectSection ${SecCDPPlugin}
     !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_RO}
@@ -1189,71 +1159,63 @@ Function SilentSelectComponents
 FunctionEnd
 
 Function SelectPreviousComponents
-  ${If} $InstallType <> ${NewInstall}
-    IntOp $R1 $PreviousComponents & ${ComponentFile}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecFileDaemon}
-      !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecFileDaemon}
-      !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentStorage}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecStorageDaemon}
-      !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecStorageDaemon}
-      !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentTextConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecConsole}
-      !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecConsole}
-      !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentBatConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecBatConsole}
-      !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecBatConsole}
-      !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentTrayMonitor}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecTrayMonitor}
-      ;!InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
-    ${Else}
-      !InsertMacro UnselectSection ${SecTrayMonitor}
-      !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentAllDrivesPlugin}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecAllDrivesPlugin}
-      !InsertMacro SetSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
+  IntOp $R1 $PreviousComponents & ${ComponentFile}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecFileDaemon}
+  ${Else}
+    !InsertMacro UnselectSection ${SecFileDaemon}
+    !InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentStorage}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecStorageDaemon}
+  ${Else}
+    !InsertMacro UnselectSection ${SecStorageDaemon}
+    !InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentTextConsole}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecConsole}
+  ${Else}
+    !InsertMacro UnselectSection ${SecConsole}
+    !InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentBatConsole}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecBatConsole}
+  ${Else}
+    !InsertMacro UnselectSection ${SecBatConsole}
+    !InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentTrayMonitor}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecTrayMonitor}
+  ${Else}
+    !InsertMacro UnselectSection ${SecTrayMonitor}
+    !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentAllDrivesPlugin}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecAllDrivesPlugin}
+  ${Else}
+    !InsertMacro UnselectSection ${SecAllDrivesPlugin}
+    !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
+  ${EndIf}
+  IntOp $R1 $PreviousComponents & ${ComponentCDPPlugin}
+  ${If} $R1 <> 0
+    !InsertMacro SelectSection ${SecCDPPlugin}
+  ${Else}
+    !InsertMacro UnselectSection ${SecCDPPlugin}
+    !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_RO}
+  ${EndIf}
+  ${If} $PreviousComponents = 0
+    ${If} $AutomaticInstall = 1
+      ;Client
+      SetCurInstType 0
     ${Else}
-      !InsertMacro UnselectSection ${SecAllDrivesPlugin}
-      !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_RO}
+      ;Custom
+      SetCurInstType 3
     ${EndIf}
-;    IntOp $R1 $PreviousComponents & ${ComponentWinBMRPlugin}
-;    ${If} $R1 <> 0
-;      !InsertMacro SelectSection ${SecWinBMRPlugin}
-;      !InsertMacro SetSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-;    ${Else}
-;      !InsertMacro UnselectSection ${SecWinBMRPlugin}
-;      !InsertMacro ClearSectionFlag ${SecWinBMRPlugin} ${SF_RO}
-;    ${EndIf}
-;    IntOp $R1 $PreviousComponents & ${ComponentOldExchangePlugin}
-;    ${If} $R1 <> 0
-;      !InsertMacro SelectSection ${SecOldExchangePlugin}
-;      !InsertMacro SetSectionFlag ${SecOldExchangePlugin} ${SF_RO}
-;    ${Else}
-;      !InsertMacro UnselectSection ${SecOldExchangePlugin}
-;      !InsertMacro ClearSectionFlag ${SecOldExchangePlugin} ${SF_RO}
-;    ${EndIf}
   ${EndIf}
 FunctionEnd
 
@@ -1294,7 +1256,7 @@ Function UpdateComponentUI
     ${EndIf}
     IntOp $R1 $NewComponents & ${ComponentTrayMonitor}
     ${If} $R1 <> 0
-      ;!InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_BOLD}
+      !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_BOLD}
     ${Else}
       !InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_BOLD}
     ${EndIf}
@@ -1304,11 +1266,11 @@ Function UpdateComponentUI
     ${Else}
       !InsertMacro ClearSectionFlag ${SecAllDrivesPlugin} ${SF_BOLD}
     ${EndIf}
-    IntOp $R1 $NewComponents & ${ComponentOldExchangePlugin}
+    IntOp $R1 $NewComponents & ${ComponentCDPPlugin}
     ${If} $R1 <> 0
-      !InsertMacro SetSectionFlag ${SecOldExchangePlugin} ${SF_BOLD}
+      !InsertMacro SetSectionFlag ${SecCDPPlugin} ${SF_BOLD}
     ${Else}
-      !InsertMacro ClearSectionFlag ${SecOldExchangePlugin} ${SF_BOLD}
+      !InsertMacro ClearSectionFlag ${SecCDPPlugin} ${SF_BOLD}
     ${EndIf}
   ${EndIf}
 
diff --git a/bacula/src/win32/win64_installer/x64.nsh b/bacula/src/win32/win64_installer/x64.nsh
new file mode 100644 (file)
index 0000000..e694c1e
--- /dev/null
@@ -0,0 +1,54 @@
+; ---------------------
+;       x64.nsh
+; ---------------------
+;
+; A few simple macros to handle installations on x64 machines.
+;
+; RunningX64 checks if the installer is running on x64.
+;
+;   ${If} ${RunningX64}
+;     MessageBox MB_OK "running on x64"
+;   ${EndIf}
+;
+; DisableX64FSRedirection disables file system redirection.
+; EnableX64FSRedirection enables file system redirection.
+;
+;   SetOutPath $SYSDIR
+;   ${DisableX64FSRedirection}
+;   File some.dll # extracts to C:\Windows\System32
+;   ${EnableX64FSRedirection}
+;   File some.dll # extracts to C:\Windows\SysWOW64
+;
+
+!ifndef ___X64__NSH___
+!define ___X64__NSH___
+
+!include LogicLib.nsh
+
+!macro _RunningX64 _a _b _t _f
+  !insertmacro _LOGICLIB_TEMP
+  System::Call kernel32::GetCurrentProcess()i.s
+  System::Call kernel32::IsWow64Process(is,*i.s)
+  Pop $_LOGICLIB_TEMP
+  !insertmacro _!= $_LOGICLIB_TEMP 0 `${_t}` `${_f}`
+!macroend
+
+!define RunningX64 `"" RunningX64 ""`
+
+!macro DisableX64FSRedirection
+
+  System::Call kernel32::Wow64EnableWow64FsRedirection(i0)
+
+!macroend
+
+!define DisableX64FSRedirection "!insertmacro DisableX64FSRedirection"
+
+!macro EnableX64FSRedirection
+
+  System::Call kernel32::Wow64EnableWow64FsRedirection(i1)
+
+!macroend
+
+!define EnableX64FSRedirection "!insertmacro EnableX64FSRedirection"
+
+!endif # !___X64__NSH___