${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)"
#
-# 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
#
-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
BACULABINARIES := \
bacula.dll \
alldrives-fd.dll \
- exchange-fd.dll \
cdp-fd.dll \
cdp-client.exe \
bacula-fd.exe \
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 \
libwinpthread-1.dll \
libgcc_s_sjlj-1.dll \
libstdc++-6.dll
-# libgcc_s_dw2-1.dll
NONGCC_BINARIES :=
LICENSE_FILES := \
LICENSE
+REGWIZARD_FILES := \
+ qwindows.dll \
+ Qt5Core.dll \
+ Qt5Gui.dll \
+ Qt5Network.dll \
+ Qt5Widgets.dll
+
##########################################################################
# Targets
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
# 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"
#
-# 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
#
Director {
Name = @director_name@
- Password = "@client_password@" # Director must know this password
+ Password = "@client_password@" # Director must know this password
}
#
#
-# 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
--- /dev/null
+#
+# 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
+#}
+#
#
-# 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@
#
-# 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@
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
#
-# 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@
#
-# 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"
!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
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
!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
;
; 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
!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
Var HDLG
Var HCTL
+
Function .onInit
Push $R0
Push $R1
Abort
${EndIf}
-
${GetOptions} $R0 "/noservice" $R1
IfErrors +2
StrCpy $OptService 0
; 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
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"
FileClose $R1
${EndIf}
${EndIf}
- SetPluginUnload manual
; Generate random Storage daemon password
${If} $ConfigStoragePassword == ""
FileClose $R1
${EndIf}
${EndIf}
+ SetPluginUnload manual
; Generate random monitor password
${If} $ConfigMonitorPassword == ""
SetOutPath "$INSTDIR"
File "${SRC_DIR}\bacula-fd.exe"
+
File "/oname=$PLUGINSDIR\bacula-fd.conf" "bacula-fd.conf.in"
StrCpy $0 "$INSTDIR"
SectionGroup "Server" SecGroupServer
Section "Storage Service" SecStorageDaemon
- SectionIn 2 3
+ SectionIn 2
SetOutPath "$INSTDIR"
SectionGroup "Consoles" SecGroupConsoles
Section "Command Console" SecConsole
- SectionIn 1 2 3
+ SectionIn 1 2
SetOutPath "$INSTDIR"
SectionEnd
Section "Bat Console" SecBatConsole
- SectionIn 1 2 3
+ ;SectionIn 1 2 3
SetOutPath "$INSTDIR"
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"
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
SectionGroup "Plugins" SecGroupPlugins
Section "alldrives Plugin" SecAllDrivesPlugin
- SectionIn 1 2 3
+ ;SectionIn 1 2 3
SetOutPath "$INSTDIR\plugins"
File "${SRC_DIR}\alldrives-fd.dll"
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
${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
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
; 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."
!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
; 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
; 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"
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"
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
${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
${GetOptions} $CMDLINE "-ComponentFile" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecFileDaemon}
- !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecFileDaemon}
!InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentStorage" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecStorageDaemon}
- !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecStorageDaemon}
!InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentTextConsole" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecConsole}
- !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecConsole}
!InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentBatConsole" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecBatConsole}
- !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecBatConsole}
!InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentTrayMonitor" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecTrayMonitor}
- !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecTrayMonitor}
!InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
${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}
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
${Else}
!InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_BOLD}
${EndIf}
- IntOp $R1 $NewComponents & ${ComponentStorage}
+ IntOp $R1 $NewComponents & ${ComponentStorage}
${If} $R1 <> 0
!InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_BOLD}
${Else}
${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}
Pop $R0
FunctionEnd
+
!include "InstallType.nsh"
!include "ConfigPage1.nsh"
!include "ConfigPage2.nsh"
${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}
-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
BACULABINARIES := \
bacula.dll \
alldrives-fd.dll \
- exchange-fd.dll \
cdp-fd.dll \
cdp-client.exe \
bsleep.exe \
libstdc++-6.dll \
libcrypto-1_1-x64.dll \
libssl-1_1-x64.dll \
- zlib1.dll \
+ zlib1.dll
# libgcc_s_dw2-1.dll
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
mkdir -p release64/help
cp -f $(BINDIR)/help/* release64/help/
-
#
# Rules
#
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
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
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
-#
-# 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"
!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"
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
; 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
!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
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
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
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"
${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'
${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}
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
SectionGroup "Server" SecGroupServer
Section "Storage Service" SecStorageDaemon
- SectionIn 2 3
+ SectionIn 2
SetOutPath "$INSTDIR"
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
# 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
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
SectionEnd
Section "Bat Console" SecBatConsole
- SectionIn 1 2 3
+ ;SectionIn 1 2 3
SetOutPath "$INSTDIR"
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
SectionEnd
Section "Tray Monitor" SecTrayMonitor
- SectionIn 1 2 3
+ SectionIn 1 2
SetOutPath "$INSTDIR"
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"
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"
SectionGroupEnd
+
Section "-Finish"
Push $R0
${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
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
; 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."
!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
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
; 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"
; 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"
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
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"'
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
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
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
${GetOptions} $CMDLINE "-ComponentFile" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecFileDaemon}
- !InsertMacro SetSectionFlag ${SecFileDaemon} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecFileDaemon}
!InsertMacro ClearSectionFlag ${SecFileDaemon} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentStorage" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecStorageDaemon}
- !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecStorageDaemon}
!InsertMacro ClearSectionFlag ${SecStorageDaemon} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentTextConsole" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecConsole}
- !InsertMacro SetSectionFlag ${SecConsole} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecConsole}
!InsertMacro ClearSectionFlag ${SecConsole} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentBatConsole" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecBatConsole}
- !InsertMacro SetSectionFlag ${SecBatConsole} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecBatConsole}
!InsertMacro ClearSectionFlag ${SecBatConsole} ${SF_RO}
${GetOptions} $CMDLINE "-ComponentTrayMonitor" $TmpComponent
${IfNot} ${Errors}
!InsertMacro SelectSection ${SecTrayMonitor}
- !InsertMacro SetSectionFlag ${SecTrayMonitor} ${SF_RO}
${Else}
!InsertMacro UnselectSection ${SecTrayMonitor}
!InsertMacro ClearSectionFlag ${SecTrayMonitor} ${SF_RO}
${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}
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
${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}
${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}
--- /dev/null
+; ---------------------
+; 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___