Win installer: workaround for the MiKTeX update bug

This commit is contained in:
Uwe Stöhr 2018-03-04 21:40:16 +01:00
parent 16e18f16c3
commit 426ecc52a4
3 changed files with 48 additions and 10 deletions

View File

@ -2,6 +2,7 @@
- installs LyX 2.3.0
- fix installation of Arabic spell checker
- updated to MiKTeX 2.9 build 6615
- updated to ImageMagick 7.0.7-24
- new thesaurus for Arabic
- updated thesaurus for Ukrainian
- updated spell checker dictionaries for Arabic, Breton and Ukrainian
@ -11,6 +12,7 @@ Changelog for LyX-230-RC2:
- installs LyX 2.3.0 RC2
- updated to Qt 5.9.4
- updated to ImageMagick 7.0.7-22
- updated to NSIS 3.0.3
Changelog for LyX-230-RC1:

View File

@ -388,21 +388,58 @@ 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.3.0 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
#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"'
nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update"'
${else}
${if} $MiKTeXUser != "HKCU" # call the admin version
ExecWait '"$PathLaTeX\internal\miktex-update_admin.exe"'
nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" "--update"'
${else}
ExecWait '"$PathLaTeX\internal\miktex-update.exe"'
nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--update"'
${endif}
${endif}
UpdateLater:
# 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
nsExec::ExecToLog '"$PathLaTeX\initexmf.exe" "--admin" "--mklinks" "--force"'
${else}
nsExec::ExecToLog '"$PathLaTeX\initexmf.exe" "--mklinks" "--force"'
${endif}
${endif}
#UpdateLater:
FunctionEnd

View File

@ -14,7 +14,7 @@ These typically need to be modified for each LyX release
!define APP_VERSION_REVISION 0
!define APP_VERSION_EMERGENCY "" # use "1" for an emergency release of LyX otherwise ""
!define APP_EMERGENCY_DOT "" # use "." for an emergency release of LyX otherwise ""
!define APP_VERSION_BUILD 1 # Start with 1 for the installer releases of each version
!define APP_VERSION_BUILD 3 # Start with 1 for the installer releases of each version
!define APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}${APP_EMERGENCY_DOT}${APP_VERSION_EMERGENCY}" # Version to display
@ -54,4 +54,3 @@ These typically need to be modified for each LyX release
!if ${SETUPTYPE} == BUNDLE
!define MiKTeXInstall "$INSTDIR\external\basic-miktex-2.9.6615.exe"
!endif