]> git.lyx.org Git - features.git/commitdiff
installer: further fixes for MiKTeX
authorUwe Stöhr <uwestoehr@lyx.org>
Thu, 17 Jan 2013 00:12:38 +0000 (01:12 +0100)
committerUwe Stöhr <uwestoehr@lyx.org>
Thu, 17 Jan 2013 00:12:38 +0000 (01:12 +0100)
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

development/Win32/packaging/installer/ChangeLog.txt
development/Win32/packaging/installer/include/LaTeX.nsh
development/Win32/packaging/installer/settings.nsh

index 231225e3fe5cd22e60af7b20c1fc00b7da9d28b7..8c54f37e620c5dcfa800ab89623bae04545141d4 100644 (file)
@@ -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
 
index 9f5f82f39e2e9a0cfe94426241f6decf8aabbadf..e0bcfc6bec8d1fdd0d3bec81f952fb7d900221de 100644 (file)
@@ -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
 
index c04673bb688aeb1c3e16dafc7fe6b5648f529cfe..ce2925d9c1ae2e6526a9bcc38f8c13ccd77ba829 100644 (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 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