installer: support 64bit MiKTeX

- the installer will now recognize an already installed 64bit MiKTeX
- the installer will still install 32bit MiKTeX for new installations because biblatex does not yet work with 64bit MiKTeX
This commit is contained in:
Uwe Stöhr 2013-02-26 02:25:04 +01:00
parent a4fa1a8f7b
commit 6d084f920c
5 changed files with 77 additions and 7 deletions

View File

@ -1,4 +1,14 @@
Changelog for LyX-2051-4:
Changelog for LyX-2051-5:
- Fix broken importing of TeX files to LyX
- If a 64bit version of MiKTeX is installed, it now be recognized by LyX
- Fix broken installation of the Perl interpreter (Perl is only necessary to use
several global indexes in a LyX document.)
- Fix bug that installation of LyX was not aborted if no LaTeX-distribution was found
but LaTeX should be used (does not affect the bundle installer)
- updated to GhostScript 9.07
Changelog for LyX-2051-4:
- If LyX is installed together with MiKTeX (bundle installer) the installation of
LaTeX-packages required by LyX takes now much less time and you get a visual feedback
about the installation process.

View File

@ -27,6 +27,8 @@ Handling of LaTeX distributions
Function LaTeXActions
# checks if MiKTeX or TeXLive is installed
StrCpy $Is64bit "false"
${if} ${RunningX64}
SetRegView 64 # the PATH is in the 64bit registry section
${endif}
@ -36,8 +38,16 @@ Function LaTeXActions
StrCpy $Search "miktex"
Call LaTeXCheck # sets the path to the latex.exe to $PathLaTeX # Function from LyXUtils.nsh
StrCpy $String $PathLaTeX
StrCpy $Search "x64" # search if it is 64bit MiKTeX
Call StrPoint # Function from LyXUtils.nsh
${if} $Pointer != "-1" # if something was found
StrCpy $Is64bit "true"
${endif}
# check for 32bit MiKTeX
${if} $PathLaTeX != ""
${andif} $Is64bit != "true"
${if} ${RunningX64}
SetRegView 32
${endif}
@ -61,7 +71,7 @@ Function LaTeXActions
${endif}
# check for 64bit MiKTeX
${if} $PathLaTeX == ""
${if} $LaTeXName == ""
${if} ${RunningX64}
SetRegView 64
${endif}
@ -115,8 +125,14 @@ Function LaTeXActions
StrCpy $LaTeXName "MiKTeX 2.9"
${endif}
${endif}
${if} $PathLaTeX != ""
StrCpy $String $PathLaTeX
StrCpy $Search "x64" # search if it is 64bit MiKTeX
Call StrPoint # Function from LyXUtils.nsh
${if} $Pointer != "-1" # if something was found
StrCpy $Is64bit "true"
${endif}
StrCpy $LaTeXInstalled "MiKTeX"
# on some installations the path ends with a "\" on some not
# therefore assure that we remove it if it exists
@ -231,7 +247,11 @@ Function ConfigureMiKTeX
${if} $PathLaTeX != ""
${if} $MultiUser.Privileges == "Admin"
${orif} $MultiUser.Privileges == "Power"
StrCpy $PathLaTeXLocal "$PathLaTeX" -11 # delete "\miktex\bin"
${if} $Is64bit == "true"
StrCpy $PathLaTeXLocal "$PathLaTeX" -15 # delete "\miktex\bin\x64"
${else}
StrCpy $PathLaTeXLocal "$PathLaTeX" -11 # delete "\miktex\bin"
${endif}
${else}
StrCpy $PathLaTeXLocal "$APPDATA\MiKTeX\$MiKTeXVersion"
${endif}
@ -260,14 +280,35 @@ Function ConfigureMiKTeX
${endif}
${else}
${ifnot} ${FileExists} "$PathLaTeX\perl.exe"
SetOutPath "$PathLaTeXLocal"
${if} $Is64bit == "true"
StrCpy $3 "$PathLaTeX" -15 # delete "\miktex\bin\x64"
${else}
StrCpy $3 "$PathLaTeX" -11 # delete "\miktex\bin"
${endif}
SetOutPath "$3"
File /r ${FILES_MIKTEX}
# move the files to the correct location for 64bit
${if} $Is64bit == "true"
CopyFiles /SILENT /FILESONLY "$3\miktex\bin\*.*" "$PathLaTeX"
Delete "$3\miktex\bin\*.*"
CreateDirectory "$3\miktex\bin\lib"
CopyFiles /SILENT "$3\miktex\lib\*.*" "$3\miktex\bin\lib"
RMDir /r "$3\miktex\lib"
${endif}
${endif}
${endif}
${else}
${ifnot} ${FileExists} "$PathLaTeX\perl.exe"
SetOutPath "$PathLaTeXLocal"
File /r ${FILES_MIKTEX}
# move the files to the correct location for 64bit
${if} $Is64bit == "true"
CopyFiles /SILENT /FILESONLY "$PathLaTeXLocal\miktex\bin\*.*" "$PathLaTeX"
Delete "$PathLaTeXLocal\miktex\bin\*.*"
CreateDirectory "$PathLaTeXLocal\miktex\bin\lib"
CopyFiles /SILENT "$PathLaTeXLocal\miktex\lib\*.*" "$PathLaTeXLocal\miktex\bin\lib"
RMDir /r "$PathLaTeXLocal\miktex\lib"
${endif}
${endif}
${endif}
@ -289,7 +330,12 @@ Function ConfigureMiKTeX
# 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} ${RunningX64}
${andif} $Is64bit == "true"
SetRegView 64
${else}
SetRegView 32
${endif}
${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"
@ -311,6 +357,9 @@ Function ConfigureMiKTeX
# update MiKTeX's package file list
ExecWait '$PathLaTeX\mpm.exe --update-fndb'
# we must return to 32bit because LyX is a 32bit application
SetRegView 32
FunctionEnd
# ------------------------------

View File

@ -25,6 +25,7 @@ Var FoundThes
Var GhostscriptPath
Var GnumericPath
Var ImageEditorPath
Var Is64bit
!if ${SETUPTYPE} == BUNDLE
Var InstallJabRef
!endif

View File

@ -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 4 # Start with 1 for the installer releases of each version
!define APP_VERSION_BUILD 5 # 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

View File

@ -14,6 +14,16 @@ Var PythonCompileReturn
Section -ProgramFiles SecProgramFiles
!if ${SETUPTYPE} != BUNDLE
# abort the installation if no LaTeX was found but should be used
${if} $PathLaTeX == ""
${andif} $State == "0"
SetOutPath $TEMP # to be able to delete the $INSTDIR
RMDir /r $INSTDIR
Abort
${endif}
!endif # end if != BUNDLE
# Install and register the core LyX files
# The macros are defined in filelists.nsh