From 744de62e22489a674e04cd2258b9e2514a27af12 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Thu, 17 Jan 2013 01:12:38 +0100 Subject: [PATCH] installer: further fixes for MiKTeX LaTeX.nsh: - fix a MiKTeX configuration Problem on 64bit Windows issue discovered in #8417 - don't overwrite MiKTeX's package repository the user might have set purposely - remove some unused code and simplify some code - update to JabRef 2.9.2 --- .../Win32/packaging/installer/ChangeLog.txt | 11 ++- .../packaging/installer/include/LaTeX.nsh | 79 ++++++++++++++----- .../Win32/packaging/installer/settings.nsh | 10 +-- 3 files changed, 72 insertions(+), 28 deletions(-) diff --git a/development/Win32/packaging/installer/ChangeLog.txt b/development/Win32/packaging/installer/ChangeLog.txt index 231225e3fe..8c54f37e62 100644 --- a/development/Win32/packaging/installer/ChangeLog.txt +++ b/development/Win32/packaging/installer/ChangeLog.txt @@ -1,8 +1,11 @@ -Changelog for LyX-2051-2: -Bugfix: -- fix bug that an installed MiKTeX was not found on Windows 7 and 8 with 64 bit +Changelog for LyX-2051-3: +- fix bug that MiKTeX was not correctly configures on somme 64bit versions of Windows 7 +- don't overwrite the MiKTeX package repository from where missing packages will be installed +- updated to JabRef 2.9.2 + -New feature: +Changelog for LyX-2051-2: +- fix bug that an installed MiKTeX was not found on Windows 7 and 8 with 64 bit - adapt the source package to make it easier to comple the installer; added a Readme file describing how to compile diff --git a/development/Win32/packaging/installer/include/LaTeX.nsh b/development/Win32/packaging/installer/include/LaTeX.nsh index 9f5f82f39e..e0bcfc6bec 100644 --- a/development/Win32/packaging/installer/include/LaTeX.nsh +++ b/development/Win32/packaging/installer/include/LaTeX.nsh @@ -28,7 +28,7 @@ Function LaTeXActions # checks if MiKTeX or TeXLive is installed ${if} ${RunningX64} - SetRegView 64 + SetRegView 64 # the PATH is in the 64bit registry section ${endif} # test if MiKTeX is installed # reads the PATH variable via the registry because NSIS' "$%Path%" variable is not updated when the PATH changes @@ -36,16 +36,44 @@ Function LaTeXActions StrCpy $Search "miktex" Call LaTeXCheck # sets the path to the latex.exe to $PathLaTeX # Function from LyXUtils.nsh + # check for 32bit MiKTeX ${if} $PathLaTeX != "" + ${if} ${RunningX64} + SetRegView 32 + ${endif} # check if MiKTeX 2.8 or newer is installed StrCpy $0 0 - loopA: + loop32: EnumRegKey $1 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" $0 # check the last subkey - StrCmp $1 "" doneA + StrCmp $1 "" done32 StrCpy $String $1 IntOp $0 $0 + 1 - Goto loopA - doneA: + Goto loop32 + done32: + ${if} $String == "2.8" + StrCpy $MiKTeXVersion "2.8" + StrCpy $LaTeXName "MiKTeX 2.8" + ${endif} + ${if} $String == "2.9" + StrCpy $MiKTeXVersion "2.9" + StrCpy $LaTeXName "MiKTeX 2.9" + ${endif} + ${endif} + + # check for 64bit MiKTeX + ${if} $PathLaTeX == "" + ${if} ${RunningX64} + SetRegView 64 + ${endif} + # check if MiKTeX 2.8 or newer is installed + StrCpy $0 0 + loop64: + EnumRegKey $1 HKLM "SOFTWARE\MiKTeX.org\MiKTeX" $0 # check the last subkey + StrCmp $1 "" done64 + StrCpy $String $1 + IntOp $0 $0 + 1 + Goto loop64 + done64: ${if} $String == "2.8" StrCpy $MiKTeXVersion "2.8" StrCpy $LaTeXName "MiKTeX 2.8" @@ -59,6 +87,9 @@ Function LaTeXActions ${if} $PathLaTeX != "" StrCpy $MiKTeXUser "HKLM" # needed later to configure MiKTeX ${else} # check if MiKTeX is installed only for the current user + ${if} ${RunningX64} + SetRegView 64 # the PATH is in the 64bit registry section + ${endif} ReadRegStr $String HKCU "Environment" "Path" StrCpy $Search "miktex" Call LaTeXCheck # function from LyXUtils.nsh @@ -98,6 +129,9 @@ Function LaTeXActions # test if TeXLive is installed # TeXLive can be installed so that it appears in the PATH variable and/or only as current user. # The safest method is to first check for the PATH because this is independent of the TeXLive version. + ${if} ${RunningX64} + SetRegView 64 # the PATH is in the 64bit registry section + ${endif} ${if} $PathLaTeX == "" ReadRegStr $String HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" StrCpy $Search "TeXLive" @@ -111,6 +145,9 @@ Function LaTeXActions Call LaTeXCheck # function from LyXUtils.nsh ${endif} # check if it was installed to the system + ${if} ${RunningX64} + SetRegView 32 # TeXLive is a 32bit application + ${endif} ${if} $PathLaTeX == "" ReadRegStr $String HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TeXLive2012" "UninstallString" ${if} $String == "" @@ -158,6 +195,9 @@ FunctionEnd ExecWait ${MiKTeXInstall} # test if MiKTeX is installed Call LaTeXActions + ${if} ${RunningX64} + SetRegView 32 # we install the 32bit version of MiKTeX + ${endif} ${if} $PathLaTeX != "" # special entry that it was installed together with LyX # so that we can later uninstall it together with LyX @@ -208,6 +248,9 @@ Function ConfigureMiKTeX # only install a Perl interpreter if it is not already installed # this is only possible if MikTeX _and_ LyX is installed with the same privileges + ${if} ${RunningX64} + SetRegView 32 # FIXME: recheck this if the 64bit version of MiKTeX is out of beta state + ${endif} ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\MiKTeX $MiKTeXVersion" "DisplayVersion" ${if} $MultiUser.Privileges != "Admin" ${andif} $MultiUser.Privileges != "Power" @@ -244,29 +287,29 @@ Function ConfigureMiKTeX ${endif} # end if $PathLaTeX != "" - # enable package installation without asking (1 = Yes, 0 = No, 2 = Ask me first) + # enable package installation without asking (1 = Yes, 0 = No, 2 = Ask me first) and + # if there is not package repository (MiKTeX's primary package repository) then set it + # FIXME: support 64bit MiKTeX if it is out of beta state ${if} $MiKTeXUser == "HKCU" # if only for current user WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "AutoInstall" "1" + ReadRegStr $1 HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" + ${if} $1 == "" + WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" "${MiKTeXRepo}" + WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RepositoryType" "remote" + ${endif} ${else} WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "AutoInstall" "1" + ReadRegStr $1 HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" + ${if} $1 == "" + WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" "${MiKTeXRepo}" + WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RepositoryType" "remote" + ${endif} # we need to state that missing packages should be installed for all users too WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "AutoAdmin" "t" ${endif} - # set package repository (MiKTeX's primary package repository) - ${if} $MiKTeXUser == "HKCU" # if only for current user - WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" "${MiKTeXRepo}" - WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RepositoryType" "remote" - ${else} - WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RemoteRepository" "${MiKTeXRepo}" - WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "RepositoryType" "remote" - ${endif} # update MiKTeX's package file list ExecWait '$PathLaTeX\mpm.exe --update-fndb' - # the following feature is planned to be used for a possible Live version - # copy LaTeX-packages needed by LyX - # SetOutPath "$INSTDIR" - # File /r "${LaTeXPackagesDir}" FunctionEnd diff --git a/development/Win32/packaging/installer/settings.nsh b/development/Win32/packaging/installer/settings.nsh index c04673bb68..ce2925d9c1 100644 --- a/development/Win32/packaging/installer/settings.nsh +++ b/development/Win32/packaging/installer/settings.nsh @@ -14,7 +14,7 @@ These typically need to be modified for each LyX release !define APP_VERSION_REVISION 5 !define APP_VERSION_EMERGENCY "1" # 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 2 # 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 @@ -51,16 +51,14 @@ These typically need to be modified for each LyX release !define MiKTeXRepo "http://ftp.fernuni-hagen.de/ftp-dir/pub/mirrors/www.ctan.org/systems/win32/miktex/tm/packages/" #!define MiKTeXRepo "ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/" -!define JabRefVersion "2.8.1" +!define JabRefVersion "2.9.2" !define MiKTeXDeliveredVersion "2.9" !define ImageMagickVersion "6.8.0" # definitions for the Complete installer !if ${SETUPTYPE} == BUNDLE - !define JabRefInstall "external\JabRef-2.8.1-setup.exe" - !define SIZE_JABREF 12400 + !define JabRefInstall "external\JabRef-2.9.2-setup.exe" + !define SIZE_JABREF 14100 !define MiKTeXInstall "$INSTDIR\external\basic-miktex-2.9.4521.exe" - #!define SIZE_DOWNLOAD_LATEX 157100 - #!define SIZE_LATEX 600000 !endif -- 2.39.2