commit 4c7f46020acfd93049d4a2db2e9932108f0debc7
Author: Uwe Stöhr <uwesto...@lyx.org>
Date:   Sun Mar 11 14:36:40 2018 +0100

    Win installer: prepare 2.2.4 release
---
 .../Win32/packaging/installer/ChangeLog.txt        |    2 +-
 .../Win32/packaging/installer/include/LaTeX.nsh    |   86 +++++++++++++++++--
 .../Win32/packaging/installer/include/filelist.nsh |    3 +-
 3 files changed, 79 insertions(+), 12 deletions(-)

diff --git a/development/Win32/packaging/installer/ChangeLog.txt 
b/development/Win32/packaging/installer/ChangeLog.txt
index 6c52438..821559c 100644
--- a/development/Win32/packaging/installer/ChangeLog.txt
+++ b/development/Win32/packaging/installer/ChangeLog.txt
@@ -4,7 +4,7 @@
 - fix installation of Arabic spell checker
 - LyX will work under Windows Vista but is no longer supported
 - updated to MiKTeX 2.9 build 6615
-- updated to ImageMagick 7.0.7-22
+- updated to ImageMagick 7.0.7-25
 - updated to Qt 5.9.4
 - new thesaurus for Arabic
 - updated thesaurus for Ukrainian
diff --git a/development/Win32/packaging/installer/include/LaTeX.nsh 
b/development/Win32/packaging/installer/include/LaTeX.nsh
index ecb82b4..c06d866 100644
--- a/development/Win32/packaging/installer/include/LaTeX.nsh
+++ b/development/Win32/packaging/installer/include/LaTeX.nsh
@@ -1,4 +1,4 @@
-/*
+/*
 LaTeX.nsh
 
 Handling of LaTeX distributions
@@ -388,21 +388,89 @@ FunctionEnd
 Function UpdateMiKTeX
  # asks to update MiKTeX
 
-  MessageBox MB_YESNO|MB_ICONINFORMATION "$(MiKTeXInfo)" /SD IDNO IDYES 
UpdateNow IDNO UpdateLater
-  UpdateNow:
-  # the update wizard is started by the miktex-update.exe
+  # only for the 2.2.4 installer: force a silent update of MiKTeX then restore
+  # MiKTeX's inernal links
+  # The reason is that MikTeX uses a new package handling system LyX must use
+  # Due to a bug in the old MikTeX package handling the update to the new 
package
+  # handling might fail and users cannot use LaTeX at all afterwards - they 
then
+  # would have no other choice than to reinstall MiKTeX
+  # This case is fixed by forcing the restoration of the internal links
+  # There is another issue: the MiKTeX update program needs to be replaced by
+  # the new MiKTeX console. This is a 3-step process.
+  #MessageBox MB_YESNO|MB_ICONINFORMATION "$(MiKTeXInfo)" #/SD IDNO IDYES 
UpdateNow IDNO UpdateLater
+  #UpdateNow:
+  # graphical update:
+  #MessageBox MB_OK|MB_ICONINFORMATION 'To assure that LyX can create PDF 
files the MiKTeX update program must be run two times.$\r$\n\
+  # Please click in the MiKTeX update program only on the "Next" button.$\r$\n\
+  # If "Next" is disabled, click on "Cancel" or "Finish".'
+  #${if} $MultiUser.Privileges != "Admin"
+  #${andif} $MultiUser.Privileges != "Power"
+  # # call the non-admin version
+  # nsExec::ExecToLog '"$PathLaTeX\internal\miktex-update.exe"'
+  #${else}
+  # ${if} $MiKTeXUser != "HKCU" # call the admin version
+  #  nsExec::ExecToLog '"$PathLaTeX\internal\miktex-update_admin.exe"'
+  # ${else}
+  #   nsExec::ExecToLog '"$PathLaTeX\internal\miktex-update.exe"'
+  # ${endif}
+  #${endif}
+  # silent update:
+  MessageBox MB_OK|MB_ICONINFORMATION "MiKTeX must be updated to assure that 
LyX can create PDF files.$\r$\n\
+   This update can take several minutes, depending on your Internet 
speed.$\r$\n\
+   Please do not close the LyX installer until it is finished!" /SD IDOK
   ${if} $MultiUser.Privileges != "Admin"
   ${andif} $MultiUser.Privileges != "Power"
    # call the non-admin version
-    ExecWait '"$PathLaTeX\internal\miktex-update.exe"'
+   # the order of the different commands is important!
+   ${if} $Is64bit == "true"
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update=miktex-bin-x64-2.9"'
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" 
"--install=miktex-console-bin-x64-2.9"'
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" 
"--uninstall=miktex-mpm-bin-x64-2.9"'
+   ${else}
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update=miktex-bin-2.9"'
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--install=miktex-console-bin-2.9"'
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--uninstall=miktex-mpm-bin-2.9"'
+   ${endif}
+   nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update"'
+  ${else}
+   ${if} $MiKTeXUser != "HKCU" # call the admin version
+    # the order of the different commands is important!
+    ${if} $Is64bit == "true"
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--update=miktex-bin-x64-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--install=miktex-console-bin-x64-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--uninstall=miktex-mpm-bin-x64-2.9"'
+    ${else}
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--update=miktex-bin-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--install=miktex-console-bin-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" 
"--uninstall=miktex-mpm-bin-2.9"'
+    ${endif}
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" "--update"'
+   ${else}
+    ${if} $Is64bit == "true"
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update=miktex-bin-x64-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" 
"--install=miktex-console-bin-x64-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" 
"--uninstall=miktex-mpm-bin-x64-2.9"'
+    ${else}
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update=miktex-bin-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" 
"--install=miktex-console-bin-2.9"'
+     nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--uninstall=miktex-mpm-bin-2.9"'
+    ${endif}
+    nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update"'
+   ${endif}
+  ${endif}
+  # restore possibly broken internal MiKTeX links after the update
+  # suggested by the MikTeX maintainer: 
https://github.com/MiKTeX/miktex/issues/82
+  ${if} $MultiUser.Privileges != "Admin"
+  ${andif} $MultiUser.Privileges != "Power"
+   # call the non-admin version
+   nsExec::ExecToLog '"$PathLaTeX\initexmf.exe" "--mklinks" "--force"'
   ${else}
    ${if} $MiKTeXUser != "HKCU" # call the admin version
-    ExecWait '"$PathLaTeX\internal\miktex-update_admin.exe"'
+    nsExec::ExecToLog '"$PathLaTeX\initexmf.exe" "--admin" "--mklinks" 
"--force"'
    ${else}
-     ExecWait '"$PathLaTeX\internal\miktex-update.exe"'
+     nsExec::ExecToLog '"$PathLaTeX\initexmf.exe" "--mklinks" "--force"'
    ${endif}
   ${endif}
-  UpdateLater:
+  #UpdateLater:
 
 FunctionEnd
-
diff --git a/development/Win32/packaging/installer/include/filelist.nsh 
b/development/Win32/packaging/installer/include/filelist.nsh
index 3ac112f..758f410 100644
--- a/development/Win32/packaging/installer/include/filelist.nsh
+++ b/development/Win32/packaging/installer/include/filelist.nsh
@@ -1,4 +1,4 @@
-/*
+/*
 
 filelist.nsh
 
@@ -22,7 +22,6 @@ Lists of files to include in the installer
   ${FILE}Qt5Svg.dll"
   ${FILE}Qt5Widgets.dll"
   ${FILE}Qt5WinExtras.dll"
-  ${FILE}Qt5Xml.dll"
 
 !macroend
 

Reply via email to