From ecc234f7813275e40fd897166eff2a4da897c4d8 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Mon, 21 Mar 2022 15:22:20 +0100 Subject: [PATCH] win32: Fix compilation --- .../src/win32/win32_installer/InstallType.nsh | 3 - bacula/src/win32/win32_installer/Makefile | 21 +- bacula/src/win32/win32_installer/Readme.txt | 58 +-- .../win32/win32_installer/bacula-dir.conf.in | 2 +- .../win32/win32_installer/bacula-fd.conf.in | 4 +- .../win32/win32_installer/bacula-sd.conf.in | 2 +- .../bacula-tray-monitor.conf.in | 33 ++ bacula/src/win32/win32_installer/bat.conf.in | 5 +- .../win32/win32_installer/bconsole.conf.in | 5 +- .../win32/win32_installer/build-installer.cmd | 3 - .../win32/win32_installer/bwx-console.conf.in | 5 +- .../src/win32/win32_installer/winbacula.nsi | 402 ++++++------------ .../src/win32/win64_installer/InstallType.nsh | 7 +- bacula/src/win32/win64_installer/Makefile | 9 +- bacula/src/win32/win64_installer/Readme.txt | 52 +-- .../win32/win64_installer/WriteTemplates.ini | 18 + .../src/win32/win64_installer/winbacula.nsi | 348 +++++++-------- bacula/src/win32/win64_installer/x64.nsh | 54 +++ 18 files changed, 487 insertions(+), 544 deletions(-) create mode 100644 bacula/src/win32/win32_installer/bacula-tray-monitor.conf.in create mode 100644 bacula/src/win32/win64_installer/x64.nsh diff --git a/bacula/src/win32/win32_installer/InstallType.nsh b/bacula/src/win32/win32_installer/InstallType.nsh index e4a9711df..03a6422c8 100644 --- a/bacula/src/win32/win32_installer/InstallType.nsh +++ b/bacula/src/win32/win32_installer/InstallType.nsh @@ -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)" diff --git a/bacula/src/win32/win32_installer/Makefile b/bacula/src/win32/win32_installer/Makefile index 135fb04d6..324e25720 100644 --- a/bacula/src/win32/win32_installer/Makefile +++ b/bacula/src/win32/win32_installer/Makefile @@ -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 diff --git a/bacula/src/win32/win32_installer/Readme.txt b/bacula/src/win32/win32_installer/Readme.txt index 5068751aa..095564f1b 100755 --- a/bacula/src/win32/win32_installer/Readme.txt +++ b/bacula/src/win32/win32_installer/Readme.txt @@ -1,47 +1,53 @@ Bacula - Windows Version Disclaimer =================================== -Please note, only the Win32 Client (File daemon) is supported, and the other -components (Director, Storage daemon, their utilities) are not provided -because they have not been ported. - +Please note, only the Win32 Client (File daemon) and the +Storage daemon backing up to disk are supported. +Currently the Director is not supported. Bacula - Windows Version Notes ============================== -These notes highlight how the Windows version of Bacula differs from the -other versions. It also provides any notes additional to the documentation. +These notes highlight how the Windows version of Bacula +differs from the other versions. It also provides any +notes additional to the documentation. -For detailed documentation on using, configuring and troubleshooting Bacula, -please consult the installed documentation or the online documentation at -http://www.bacula.org/?page=documentation. +For detailed documentation on using, configuring and +troubleshooting Bacula, please consult the installed +documentation or the online documentation at +http://www.bacula.org/ Start Menu Items ---------------- -A number of menu items have been created in the Start menu under All Programs -in the Bacula submenu. They may be selected to edit the configuration files, -view the documentation or run one of the console or utility programs. The -choices available will vary depending on the options you chose to install. +A number of menu items have been created in the Start +menu under All Programs in the Bacula submenu. They may +be selected to edit the configuration files, view the +documentation or run one of the console or utility programs. +The choices available will vary depending on the options +you chose to install. File Locations -------------- Everything is installed in the directory -"C:\Program Files\Bacula" unless a different directory was selected during -installation. +"C:\Program Files\Bacula" unless a different directory was +selected during installation. Code Page Problems ------------------- -Please note that Bacula expects the contents of the configuration files to be -written in UTF-8 format. Some translations of "Application Data" have accented -characters, and apparently the installer writes this translated data in the -standard Windows code page coding. This occurs for the Working Directory, and -when it happens the daemon will not start since Bacula cannot find the directory. -The workaround is to manually edit the appropriate conf file and ensure that it -is written out in UTF-8 format. - -The conf files can be edited with any UTF-8 compatible editor, or on most -modern Windows machines, you can edit them with notepad, then choose UTF-8 -output encoding before saving them. +Please note that Bacula expects the contents of the configuration +files to be written in UTF-8 format. Some translations of +"Application Data" have accented characters, and apparently +the installer writes this translated data in the standard +Windows code page coding. This occurs for the Working +Directory, and when it happens the daemon will not start +since Bacula cannot find the directory. The workaround is +to manually edit the appropriate conf file and ensure that +it is written out in UTF-8 format. + +The conf files can be edited with any UTF-8 compatible +editor, or on most modern Windows machines, you can edit +them with notepad, then choose UTF-8 output encoding before +saving them. diff --git a/bacula/src/win32/win32_installer/bacula-dir.conf.in b/bacula/src/win32/win32_installer/bacula-dir.conf.in index d6ab40886..6fc47d0f7 100644 --- a/bacula/src/win32/win32_installer/bacula-dir.conf.in +++ b/bacula/src/win32/win32_installer/bacula-dir.conf.in @@ -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" diff --git a/bacula/src/win32/win32_installer/bacula-fd.conf.in b/bacula/src/win32/win32_installer/bacula-fd.conf.in index 753922fc9..6137f5668 100644 --- a/bacula/src/win32/win32_installer/bacula-fd.conf.in +++ b/bacula/src/win32/win32_installer/bacula-fd.conf.in @@ -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 } # diff --git a/bacula/src/win32/win32_installer/bacula-sd.conf.in b/bacula/src/win32/win32_installer/bacula-sd.conf.in index 3dae4bf7a..27ac5fef5 100644 --- a/bacula/src/win32/win32_installer/bacula-sd.conf.in +++ b/bacula/src/win32/win32_installer/bacula-sd.conf.in @@ -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 index 000000000..457c7ac07 --- /dev/null +++ b/bacula/src/win32/win32_installer/bacula-tray-monitor.conf.in @@ -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 +#} +# diff --git a/bacula/src/win32/win32_installer/bat.conf.in b/bacula/src/win32/win32_installer/bat.conf.in index 0f6ed9dbd..0bf097693 100644 --- a/bacula/src/win32/win32_installer/bat.conf.in +++ b/bacula/src/win32/win32_installer/bat.conf.in @@ -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@ diff --git a/bacula/src/win32/win32_installer/bconsole.conf.in b/bacula/src/win32/win32_installer/bconsole.conf.in index 7804123d0..7e9d7568b 100644 --- a/bacula/src/win32/win32_installer/bconsole.conf.in +++ b/bacula/src/win32/win32_installer/bconsole.conf.in @@ -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@ diff --git a/bacula/src/win32/win32_installer/build-installer.cmd b/bacula/src/win32/win32_installer/build-installer.cmd index 5d77a9f89..169df4b01 100644 --- a/bacula/src/win32/win32_installer/build-installer.cmd +++ b/bacula/src/win32/win32_installer/build-installer.cmd @@ -27,9 +27,6 @@ SET CATS_CATALOG=make_mysql_catalog_backup.cmd make_postgresql_catalog_backup.cm SET DIRD_FILES=query.sql SET SSL_FILES=openssl.cnf -SET DOC_PDF_FILES=%DOCS_DIR%\bacula.pdf %DOCS_DIR%\bacula\*.html %DOCS_DIR%\bacula\*.png %DOCS_DIR%\bacula\*.css -SET DOC_HTML_FILES=%DOCS_DIR%\bacula\*.html %DOCS_DIR%\bacula\*.png %DOCS_DIR%\bacula\*.css - FOR %%i in ( %BACULA_DLLS% ) DO XCOPY %1%2\%%i %1installer\%2\ /y FOR %%i in ( %BACULA_EXES% ) DO XCOPY %1%2\%%i %1installer\%2\ /y FOR %%i in ( %BACULA_TOOLS% ) DO XCOPY %1%2\%%i %1installer\%2\ /y diff --git a/bacula/src/win32/win32_installer/bwx-console.conf.in b/bacula/src/win32/win32_installer/bwx-console.conf.in index 7804123d0..7e9d7568b 100644 --- a/bacula/src/win32/win32_installer/bwx-console.conf.in +++ b/bacula/src/win32/win32_installer/bwx-console.conf.in @@ -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@ diff --git a/bacula/src/win32/win32_installer/winbacula.nsi b/bacula/src/win32/win32_installer/winbacula.nsi index c4ce2f8b3..0e8e65361 100644 --- a/bacula/src/win32/win32_installer/winbacula.nsi +++ b/bacula/src/win32/win32_installer/winbacula.nsi @@ -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}}## @@ -52,19 +52,19 @@ ; 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" diff --git a/bacula/src/win32/win64_installer/InstallType.nsh b/bacula/src/win32/win64_installer/InstallType.nsh index cde1791b8..9e550b60c 100644 --- a/bacula/src/win32/win64_installer/InstallType.nsh +++ b/bacula/src/win32/win64_installer/InstallType.nsh @@ -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} diff --git a/bacula/src/win32/win64_installer/Makefile b/bacula/src/win32/win64_installer/Makefile index 9a86e2fe6..139358956 100644 --- a/bacula/src/win32/win64_installer/Makefile +++ b/bacula/src/win32/win64_installer/Makefile @@ -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 # diff --git a/bacula/src/win32/win64_installer/Readme.txt b/bacula/src/win32/win64_installer/Readme.txt index 2e5a3d1d1..d85c21caf 100755 --- a/bacula/src/win32/win64_installer/Readme.txt +++ b/bacula/src/win32/win64_installer/Readme.txt @@ -1,11 +1,11 @@ Bacula - Windows Version Disclaimer =================================== -Please note, only the Win64 Client (File daemon) is supported. -The other components (Director, Storage daemon, -their utilities) are not provided because they have not been ported. +Please note, only the Win64 Client (File daemon) and the Storage daemon +backing up to disk are supported. Currently the Director is not +supported. -Note: the Win64 Client can only be installed on 64 bit Windows Operating +Note: the Win64 Client can only be installed on 64 bit Windows Operating systems. @@ -15,36 +15,40 @@ Bacula - Windows Version Notes These notes highlight how the Windows version of Bacula differs from the other versions. It also provides any notes additional to the documentation. -For detailed documentation on using, configuring and troubleshooting Bacula, -please consult the installed documentation or the online documentation at +For detailed documentation on using, configuring and troubleshooting +Bacula, please consult the installed documentation or the online +documentation at http://www.bacula.org/?page=documentation. Start Menu Items ---------------- -A number of menu items have been created in the Start menu under All Programs -in the Bacula submenu. They may be selected to edit the configuration files, -view the documentation or run one of the console or utility programs. The -choices available will vary depending on the options you chose to install. +A number of menu items have been created in the Start menu under All +Programs in the Bacula submenu. They may be selected to edit the +configuration files, view the documentation or run one of the console +or utility programs. The choices available will vary depending +on the options you chose to install. File Locations -------------- Everything is installed in the directory -"C:\Program Files\Bacula" unless a different directory was selected during -installation. Note: due to a bug in the NSIS installer we are using, on -64 bit machines appears to install Bacula in "C:\Program Files (x86)\Bacula". +"C:\Program Files\Bacula" unless a different directory was selected +during installation. Note: due to a bug in the NSIS installer we +are using, on 64 bit machines appears to install Bacula in +"C:\Program Files (x86)\Bacula". Code Page Problems ------------------- -Please note that Bacula expects the contents of the configuration files to be -written in UTF-8 format. Some translations of "Application Data" have accented -characters, and apparently the installer writes this translated data in the -standard Windows code page coding. This occurs for the Working Directory, and -when it happens the daemon will not start since Bacula cannot find the directory. -The workaround is to manually edit the appropriate conf file and ensure that it -is written out in UTF-8 format. - -The conf files can be edited with any UTF-8 compatible editor, or on most -modern Windows machines, you can edit them with notepad, then choose UTF-8 -output encoding before saving them. +Please note that Bacula expects the contents of the configuration +files to be written in UTF-8 format. Some translations of +"Application Data" have accented characters, and apparently the +installer writes this translated data in the standard Windows code +page coding. This occurs for the Working Directory, and when it +happens the daemon will not start since Bacula cannot find the +directory. The workaround is to manually edit the appropriate +conf file and ensure that it is written out in UTF-8 format. + +The conf files can be edited with any UTF-8 compatible editor, +or on most modern Windows machines, you can edit them with +notepad, then choose UTF-8 output encoding before saving them. diff --git a/bacula/src/win32/win64_installer/WriteTemplates.ini b/bacula/src/win32/win64_installer/WriteTemplates.ini index 3b3631c3f..f774ed8c8 100644 --- a/bacula/src/win32/win64_installer/WriteTemplates.ini +++ b/bacula/src/win32/win64_installer/WriteTemplates.ini @@ -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 diff --git a/bacula/src/win32/win64_installer/winbacula.nsi b/bacula/src/win32/win64_installer/winbacula.nsi index 97eae763a..4bfb7ee14 100644 --- a/bacula/src/win32/win64_installer/winbacula.nsi +++ b/bacula/src/win32/win64_installer/winbacula.nsi @@ -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}}## @@ -16,40 +12,14 @@ ; 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: ; @@ -76,22 +46,24 @@ ; ; 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 index 000000000..e694c1e61 --- /dev/null +++ b/bacula/src/win32/win64_installer/x64.nsh @@ -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___ -- 2.47.3