]> git.sur5r.net Git - bacula/bacula/commitdiff
Mark previously installed components read-only since deselection doesn't do anything.
authorRobert Nelson <robertn@the-nelsons.org>
Sun, 10 Sep 2006 13:50:20 +0000 (13:50 +0000)
committerRobert Nelson <robertn@the-nelsons.org>
Sun, 10 Sep 2006 13:50:20 +0000 (13:50 +0000)
Removed unused ClientConfig.ini.

Copy contents of the Details Log to the file install.log.

Write resource templates on new installs.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3453 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/win32/installer/ClientConfig.ini [deleted file]
bacula/src/win32/installer/DumpLog.nsh [new file with mode: 0644]
bacula/src/win32/installer/InstallType.nsh
bacula/src/win32/installer/WriteTemplates.ini [new file with mode: 0644]
bacula/src/win32/installer/client.conf.in [new file with mode: 0644]
bacula/src/win32/installer/installer.vcproj
bacula/src/win32/installer/storage.conf.in [new file with mode: 0644]
bacula/src/win32/installer/winbacula.nsi

diff --git a/bacula/src/win32/installer/ClientConfig.ini b/bacula/src/win32/installer/ClientConfig.ini
deleted file mode 100644 (file)
index c536d2e..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-[Settings]
-NumFields=20
-
-[Field 1]
-Type="GroupBox"
-Text="Client"
-Left=0
-Top=0
-Right=300
-Bottom=52
-
-[Field 2]
-Type="Label"
-Text="Name"
-Left=6
-Top=10
-Right=40
-Bottom=18
-
-[Field 3]
-Type="Text"
-Left=40
-Top=8
-Right=128
-Bottom=20
-
-[Field 4]
-Type="Label"
-Text="(eg. hostname-fd)"
-Left=136
-Top=10
-Right=288
-Bottom=18
-
-[Field 5]
-Type="Label"
-Text="Port"
-Left=6
-Top=24
-Right=40
-Bottom=32
-
-[Field 6]
-Type="Text"
-Flags=ONLY_NUMBERS
-Left=40
-Top=22
-Right=68
-Bottom=34
-
-[Field 7]
-Type="Label"
-Text="Max Jobs"
-Left=6
-Top=38
-Right=40
-Bottom=46
-
-[Field 8]
-Type="Text"
-Flags=ONLY_NUMBERS
-Left=40
-Top=36
-Right=56
-Bottom=48
-
-[Field 9]
-Type="GroupBox"
-Text="Director"
-Left=0
-Top=54
-Right=300
-Bottom=92
-
-[Field 10]
-Type="Label"
-Text="Name"
-Left=6
-Top=64
-Right=40
-Bottom=72
-
-[Field 11]
-Type="Text"
-Left=40
-Top=62
-Right=128
-Bottom=74
-
-[Field 12]
-Type="Label"
-Text="(eg. servername-dir)"
-Left=136
-Top=64
-Right=288
-Bottom=72
-
-[Field 13]
-Type="Label"
-Text="Password"
-Left=6
-Top=78
-Right=40
-Bottom=86
-
-[Field 14]
-Type="Text"
-Left=40
-Top=76
-Right=288
-Bottom=88
-
-[Field 15]
-Type="GroupBox"
-Text="Monitor"
-Left=0
-Top=94
-Right=300
-Bottom=132
-
-[Field 16]
-Type="Label"
-Text="Name"
-Left=6
-Top=104
-Right=40
-Bottom=112
-
-[Field 17]
-Type="Text"
-Left=40
-Top=102
-Right=128
-Bottom=114
-
-[Field 18]
-Type="Label"
-Text="(eg. servername-mon)"
-Left=136
-Top=104
-Right=288
-Bottom=112
-
-[Field 19]
-Type="Label"
-Text="Password"
-Left=6
-Top=118
-Right=36
-Bottom=126
-
-[Field 20]
-Type="Text"
-Left=40
-Top=116
-Right=288
-Bottom=128
diff --git a/bacula/src/win32/installer/DumpLog.nsh b/bacula/src/win32/installer/DumpLog.nsh
new file mode 100644 (file)
index 0000000..33ac4c7
--- /dev/null
@@ -0,0 +1,46 @@
+!define LVM_GETITEMCOUNT 0x1004
+!define LVM_GETITEMTEXT 0x102D
+
+Function DumpLog
+  Exch $5
+  Push $0
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $6
+
+  FindWindow $0 "#32770" "" $HWNDPARENT
+  GetDlgItem $0 $0 1016
+  StrCmp $0 0 error
+  FileOpen $5 $5 "w"
+  StrCmp $5 0 error
+    SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
+    System::Alloc ${NSIS_MAX_STRLEN}
+    Pop $3
+    StrCpy $2 0
+    System::Call "*(i, i, i, i, i, i, i, i, i) i \
+      (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
+    loop: StrCmp $2 $6 done
+      System::Call "User32::SendMessageA(i, i, i, i) i \
+        ($0, ${LVM_GETITEMTEXT}, $2, r1)"
+      System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
+      FileWrite $5 "$4$\r$\n"
+      IntOp $2 $2 + 1
+      Goto loop
+    done:
+      FileClose $5
+      System::Free $1
+      System::Free $3
+      Goto exit
+  error:
+    MessageBox MB_OK error
+  exit:
+    Pop $6
+    Pop $4
+    Pop $3
+    Pop $2
+    Pop $1
+    Pop $0
+    Exch $5
+FunctionEnd
index 886596e47027b27013896b9c09a6fe49785039d1..91f3e37d4867f1ac49944293fe4bed4478fb25d4 100644 (file)
@@ -36,13 +36,13 @@ Function EnterInstallType
       StrCpy $R2 "$OldInstallDir\Doc"
 
       WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 1" "Text" "An old installation has been found in $OldInstallDir.  The Configuration will be migrated.  Please choose the installation type for any additional components you select."
-      WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 5" "Text" 'The software will be installed in the default directory "$PROGRAMFILES\Bacula".  The configuration files for additional components will be generated using defaults applicable to most installations.'
+      WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 5" "Text" "The software will be installed in the default directory $\"$PROGRAMFILES\Bacula$\".  The configuration files for additional components will be generated using defaults applicable to most installations."
       WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 6" "Text" "You may choose the installation directory.  The configuration defaults will be displayed and you will be given the chance to make changes before the configuration files are written."
     ${EndIf}
   ${Else}
     ; New Install
     StrCpy $InstallType ${NewInstall}
-    WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 5" "Text" 'The software will be installed in the default directory "$PROGRAMFILES\Bacula".  The configuration files will be generated using defaults applicable to most installations.'
+    WriteINIStr "$PLUGINSDIR\InstallType.ini" "Field 5" "Text" "The software will be installed in the default directory $\"$PROGRAMFILES\Bacula$\".  The configuration files will be generated using defaults applicable to most installations."
   ${EndIf}
 
   ${If} $InstallType <> ${NewInstall}
@@ -83,54 +83,6 @@ Function EnterInstallType
     StrCpy $AutomaticInstall 0
   ${EndIf}
 
-  ${If} $InstallType <> ${NewInstall}
-  ${AndIf} $InitialSelectionDone = 0
-    StrCpy $InitialSelectionDone 1
-
-    IntOp $R1 $PreviousComponents & ${ComponentFile}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecFileDaemon}
-    ${Else}
-      !InsertMacro UnselectSection ${SecFileDaemon}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentStorage}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecStorageDaemon}
-    ${Else}
-      !InsertMacro UnselectSection ${SecStorageDaemon}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentDirector}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecDirectorDaemon}
-    ${Else}
-      !InsertMacro UnselectSection ${SecDirectorDaemon}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentTextConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecConsole}
-    ${Else}
-      !InsertMacro UnselectSection ${SecConsole}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentGUIConsole}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecWxConsole}
-    ${Else}
-      !InsertMacro UnselectSection ${SecWxConsole}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentPDFDocs}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecDocPdf}
-    ${Else}
-      !InsertMacro UnselectSection ${SecDocPdf}
-    ${EndIf}
-    IntOp $R1 $PreviousComponents & ${ComponentHTMLDocs}
-    ${If} $R1 <> 0
-      !InsertMacro SelectSection ${SecDocHtml}
-    ${Else}
-      !InsertMacro UnselectSection ${SecDocHtml}
-    ${EndIf}
-  ${EndIf}
-
   Pop $R2
   Pop $R1
   Pop $R0
diff --git a/bacula/src/win32/installer/WriteTemplates.ini b/bacula/src/win32/installer/WriteTemplates.ini
new file mode 100644 (file)
index 0000000..da921be
--- /dev/null
@@ -0,0 +1,48 @@
+[Settings]
+NumFields=5
+CancelEnabled=0
+BackEnabled=0
+
+[Field 1]
+Type="Label"
+Text="Templates of the Client and Storage resources can be generated that are customized with the information about this system.  These templates can then be copied to the Director computer and included in the Director's configuration file."
+Left=7
+Right=293
+Top=6
+Bottom=32
+
+[Field 2]
+Type="CheckBox"
+Text="Client"
+Left=6
+Right=40
+Top=38
+Bottom=48
+
+[Field 3]
+Type="FileRequest"
+State="Client.conf"
+Flags=
+Filter=Configuration Files|*.conf|All Files|*.*
+Left=16
+Right=288
+Top=50
+Bottom=62
+
+[Field 4]
+Type="CheckBox"
+Text="Storage"
+Left=6
+Right=48
+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/installer/client.conf.in b/bacula/src/win32/installer/client.conf.in
new file mode 100644 (file)
index 0000000..3fd9d52
--- /dev/null
@@ -0,0 +1,11 @@
+# Client (File Services) to backup
+Client {
+  Name = @client_name@
+  Address = @client_address@
+  FDPort = @client_port@
+  Catalog = MyCatalog
+  Password = "@client_password@"      # password for FileDaemon
+  File Retention = 30 days            # 30 days
+  Job Retention = 6 months            # six months
+  AutoPrune = yes                     # Prune expired Jobs/Files
+}
index e5a1d3c2fb441dcaafbdd68ce548473a5040bdad..b160cc2c05e879ec74d1eb86897561ba3292619d 100644 (file)
                        >
                </File>
                <File
-                       RelativePath=".\ClientConfig.ini"
+                       RelativePath=".\client.conf.in"
                        >
                </File>
                <File
                        RelativePath=".\ConfigPage2.nsh"
                        >
                </File>
+               <File
+                       RelativePath=".\DumpLog.nsh"
+                       >
+               </File>
                <File
                        RelativePath=".\InstallType.ini"
                        >
                        RelativePath=".\Readme.txt"
                        >
                </File>
+               <File
+                       RelativePath=".\storage.conf.in"
+                       >
+               </File>
                <File
                        RelativePath=".\winbacula.nsi"
                        >
                </File>
+               <File
+                       RelativePath=".\WriteTemplates.ini"
+                       >
+               </File>
                <File
                        RelativePath=".\wx-console.conf.in"
                        >
diff --git a/bacula/src/win32/installer/storage.conf.in b/bacula/src/win32/installer/storage.conf.in
new file mode 100644 (file)
index 0000000..a1490b1
--- /dev/null
@@ -0,0 +1,10 @@
+# Definition of file storage device
+Storage {
+  Name = File
+# Do not use "localhost" here    
+  Address = @storage_address@                # N.B. Use a fully qualified name here
+  SDPort = @storage_port@
+  Password = "@storage_password@"
+  Device = FileStorage
+  Media Type = File
+}
index a6dd0e0c1481909c9f1eb83ad67771e06afc647e..602b60f88be57f326d4289cb4520bede21a03727 100644 (file)
@@ -46,7 +46,6 @@
 !include "Sections.nsh"
 !include "StrFunc.nsh"
 !include "WinMessages.nsh"
-
 ;
 ; Basics
 ;
@@ -72,7 +71,6 @@ ${StrTrimNewLines}
 ;
 
 !define      MUI_COMPONENTSPAGE_SMALLDESC
-!define      MUI_FINISHPAGE_NOAUTOCLOSE
 
 !define      MUI_HEADERIMAGE
 !define      MUI_BGCOLOR                739AB9
@@ -87,7 +85,9 @@ Page custom EnterInstallType
 !InsertMacro MUI_PAGE_DIRECTORY
 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
 !InsertMacro MUI_PAGE_FINISH
 
@@ -158,7 +158,6 @@ Var InstallType
 !define UpgradeInstall  1
 !define MigrateInstall  2
 
-Var InitialSelectionDone
 Var OldInstallDir
 Var PreviousComponents
 Var NewComponents
@@ -205,7 +204,6 @@ Function .onInit
   StrCpy $OldInstallDir ""
   StrCpy $PreviousComponents 0
   StrCpy $NewComponents 0
-  StrCpy $InitialSelectionDone 0
 
   ${GetParameters} $R0
 
@@ -277,7 +275,9 @@ Function .onInit
   File "/oname=$PLUGINSDIR\libeay32.dll" "${DEPKGS_BIN}\libeay32.dll"
   File "/oname=$PLUGINSDIR\ssleay32.dll" "${DEPKGS_BIN}\ssleay32.dll"
   File "/oname=$PLUGINSDIR\sed.exe" "${DEPKGS_BIN}\sed.exe"
-  File "/oname=$PLUGINSDIR\InstallType.ini" "InstallType.ini"
+
+  !InsertMacro MUI_INSTALLOPTIONS_EXTRACT "InstallType.ini"
+  !InsertMacro MUI_INSTALLOPTIONS_EXTRACT "WriteTemplates.ini"
 
   SetPluginUnload alwaysoff
 
@@ -826,6 +826,9 @@ LangString SUBTITLE_ConfigPage2 ${LANG_ENGLISH} "Set installation configuration.
 LangString TITLE_InstallType ${LANG_ENGLISH} "Installation Type"
 LangString SUBTITLE_InstallType ${LANG_ENGLISH} "Choose installation type."
 
+LangString TITLE_WriteTemplates ${LANG_ENGLISH} "Create Templates"
+LangString SUBTITLE_WriteTemplates ${LANG_ENGLISH} "Create resource templates for inclusion in the Director's configuration file."
+
 !InsertMacro MUI_FUNCTION_DESCRIPTION_BEGIN
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecFileDaemon} $(DESC_SecFileDaemon)
   !InsertMacro MUI_DESCRIPTION_TEXT ${SecStorageDaemon} $(DESC_SecStorageDaemon)
@@ -875,9 +878,9 @@ Section "Uninstall"
   RMDir "$SMPROGRAMS\Bacula"
 
   ; remove files and uninstaller (preserving config for now)
-  Delete /REBOOTOK "$INSTDIR\bin\*.*"
-  Delete /REBOOTOK "$INSTDIR\doc\*.*"
-  Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
+  Delete /REBOOTOK "$INSTDIR\bin\*"
+  Delete /REBOOTOK "$INSTDIR\doc\*"
+  Delete /REBOOTOK "$INSTDIR\*"
 
   ; Check for existing installation
   MessageBox MB_YESNO|MB_ICONQUESTION \
@@ -1045,6 +1048,7 @@ Function PageComponentsShow
     Call DisableServerSections
   ${EndIf}
 
+  Call SelectPreviousComponents
   Call UpdateComponentUI
 FunctionEnd
 
@@ -1055,13 +1059,151 @@ Function PageDirectoryPre
   ${EndIf}
 FunctionEnd
 
+Function LeaveInstallPage
+  Push "$INSTDIR\install.log"
+  Call DumpLog
+FunctionEnd
+
+Function EnterWriteTemplates
+  Push $R0
+  Push $R1
+
+  Call GetSelectedComponents
+  Pop $R0
+
+  IntOp $R0 $R0 & ${ComponentDirector}
+  IntOp $R1 $NewComponents & ${ComponentsFileAndStorage}
+
+  ${If} $R0 <> 0
+  ${OrIf} $R1 = 0
+    Pop $R1
+    Pop $R0
+    Abort
+  ${EndIf}
+
+  IntOp $R0 $NewComponents & ${ComponentFile}
+  ${If} $R0 = 0
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 2" State 0
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 2" Flags DISABLED
+    DeleteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 3" State
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 3" Flags REQ_SAVE|FILE_EXPLORER|WARN_IF_EXIST|DISABLED
+  ${Else}
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 2" State 1
+    DeleteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 2" Flags
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 3" State "C:\$ConfigClientName.conf"
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 5" Flags REQ_SAVE|FILE_EXPLORER|WARN_IF_EXIST
+  ${EndIf}
+
+  IntOp $R0 $NewComponents & ${ComponentStorage}
+  ${If} $R0 = 0
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 4" State 0
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 4" Flags DISABLED
+    DeleteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 5" State
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 5" Flags REQ_SAVE|FILE_EXPLORER|WARN_IF_EXIST|DISABLED
+  ${Else}
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 4" State 1
+    DeleteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 4" Flags
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 5" State "C:\$ConfigStorageName.conf"
+    WriteINIStr "$PLUGINSDIR\WriteTemplates.ini" "Field 5" Flags REQ_SAVE|FILE_EXPLORER|WARN_IF_EXIST
+  ${EndIf}
+
+  !InsertMacro MUI_HEADER_TEXT "$(TITLE_WriteTemplates)" "$(SUBTITLE_WriteTemplates)"
+  !InsertMacro MUI_INSTALLOPTIONS_DISPLAY "WriteTemplates.ini"
+
+  !InsertMacro MUI_INSTALLOPTIONS_READ $R0 "WriteTemplates.ini" "Field 2" State
+  ${If} $R0 <> 0
+    File "/oname=$PLUGINSDIR\client.conf.in" "client.conf.in"
+
+    nsExec::ExecToLog '$PLUGINSDIR\sed.exe -f "$PLUGINSDIR\config.sed" -i.bak "$PLUGINSDIR\client.conf.in"'
+    !InsertMacro MUI_INSTALLOPTIONS_READ $R0 "WriteTemplates.ini" "Field 3" State
+    ${If} $R0 != ""
+      CopyFiles "$PLUGINSDIR\client.conf.in" "$R0"
+    ${EndIf}
+  ${EndIf}
+
+  !InsertMacro MUI_INSTALLOPTIONS_READ $R0 "WriteTemplates.ini" "Field 4" State
+  ${If} $R0 <> 0
+    File "/oname=$PLUGINSDIR\storage.conf.in" "storage.conf.in"
+
+    nsExec::ExecToLog '$PLUGINSDIR\sed.exe -f "$PLUGINSDIR\config.sed" -i.bak "$PLUGINSDIR\storage.conf.in"'
+    !InsertMacro MUI_INSTALLOPTIONS_READ $R0 "WriteTemplates.ini" "Field 5" State
+    ${If} $R0 != ""
+      CopyFiles "$PLUGINSDIR\storage.conf.in" "$R0"
+    ${EndIf}
+  ${EndIf}
+
+  Pop $R1
+  Pop $R0
+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 & ${ComponentDirector}
+    ${If} $R1 <> 0
+      !InsertMacro SelectSection ${SecDirectorDaemon}
+      !InsertMacro SetSectionFlag ${SecDirectorDaemon} ${SF_RO}
+    ${Else}
+      !InsertMacro UnselectSection ${SecDirectorDaemon}
+      !InsertMacro ClearSectionFlag ${SecDirectorDaemon} ${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 & ${ComponentGUIConsole}
+    ${If} $R1 <> 0
+      !InsertMacro SelectSection ${SecWxConsole}
+      !InsertMacro SetSectionFlag ${SecWxConsole} ${SF_RO}
+    ${Else}
+      !InsertMacro UnselectSection ${SecWxConsole}
+      !InsertMacro ClearSectionFlag ${SecWxConsole} ${SF_RO}
+    ${EndIf}
+    IntOp $R1 $PreviousComponents & ${ComponentPDFDocs}
+    ${If} $R1 <> 0
+      !InsertMacro SelectSection ${SecDocPdf}
+      !InsertMacro SetSectionFlag ${SecDocPdf} ${SF_RO}
+    ${Else}
+      !InsertMacro UnselectSection ${SecDocPdf}
+      !InsertMacro ClearSectionFlag ${SecDocPdf} ${SF_RO}
+    ${EndIf}
+    IntOp $R1 $PreviousComponents & ${ComponentHTMLDocs}
+    ${If} $R1 <> 0
+      !InsertMacro SelectSection ${SecDocHtml}
+      !InsertMacro SetSectionFlag ${SecDocHtml} ${SF_RO}
+    ${Else}
+      !InsertMacro UnselectSection ${SecDocHtml}
+      !InsertMacro ClearSectionFlag ${SecDocHtml} ${SF_RO}
+    ${EndIf}
+  ${EndIf}
+FunctionEnd
+
 Function DisableServerSections
   !InsertMacro UnselectSection ${SecGroupServer}
-  !InsertMacro SetSectionFlag ${SecGroupServer} ${SF_RO}
+  !InsertMacro SetSectionFlag  ${SecGroupServer} ${SF_RO}
   !InsertMacro UnselectSection ${SecStorageDaemon}
-  !InsertMacro SetSectionFlag ${SecStorageDaemon} ${SF_RO}
+  !InsertMacro SetSectionFlag  ${SecStorageDaemon} ${SF_RO}
   !InsertMacro UnselectSection ${SecDirectorDaemon}
-  !InsertMacro SetSectionFlag ${SecDirectorDaemon} ${SF_RO}
+  !InsertMacro SetSectionFlag  ${SecDirectorDaemon} ${SF_RO}
 FunctionEnd
 
 Function UpdateComponentUI
@@ -1135,3 +1277,4 @@ FunctionEnd
 !include "InstallType.nsh"
 !include "ConfigPage1.nsh"
 !include "ConfigPage2.nsh"
+!include "DumpLog.nsh"