Kill off the bundled installer.

This commit is contained in:
Richard Kimberly Heck 2018-09-08 16:56:05 -04:00
parent d172de9886
commit 8c32a1a7b9
9 changed files with 32 additions and 280 deletions

View File

@ -8,10 +8,6 @@ Handling of LaTeX distributions
# #
# - LaTeXActions (checks if MiKTeX or TeXLive is installed) # - LaTeXActions (checks if MiKTeX or TeXLive is installed)
# #
# - InstallMiKTeX (installs MiKTeX if not already installed),
# only for bunlde installer, uses:
# LaTeXCheck # function from LyXUtils.nsh
#
# - ConfigureMiKTeX # - ConfigureMiKTeX
# (installs the LaTeX class files that are delivered with LyX, # (installs the LaTeX class files that are delivered with LyX,
# a Perl interpreter for splitindex and pdfcrop # a Perl interpreter for splitindex and pdfcrop
@ -19,8 +15,6 @@ Handling of LaTeX distributions
# #
# - ConfigureTeXLive # - ConfigureTeXLive
# (installs the LaTeX class files that are delivered with LyX) # (installs the LaTeX class files that are delivered with LyX)
#
# - UpdateMiKTeX (asks to update MiKTeX)
# --------------------------------------- # ---------------------------------------
@ -204,50 +198,6 @@ Function LaTeXActions
FunctionEnd FunctionEnd
# -------------------------------------------
!if ${SETUPTYPE} == BUNDLE
Function InstallMiKTeX
# installs MiKTeX if not already installed
${if} $PathLaTeX == ""
# launch MiKTeX's installer
MessageBox MB_OK|MB_ICONINFORMATION "$(LatexInfo)" /SD IDOK
${if} $MultiUser.Privileges != "Admin"
${andif} $MultiUser.Privileges != "Power"
# call the non-admin version
ExecWait ${MiKTeXInstall}
${else}
ExecWait "${MiKTeXInstall} --shared"
${endif}
# 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
${if} $MiKTeXUser == "HKCU"
WriteRegStr HKCU "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX" "Yes${APP_SERIES_KEY}"
${else}
WriteRegStr HKLM "SOFTWARE\MiKTeX.org\MiKTeX" "OnlyWithLyX" "Yes${APP_SERIES_KEY}"
${endif}
StrCpy $LaTeXInstalled "MiKTeX"
StrCpy $MiKTeXVersion ${MiKTeXDeliveredVersion}
${else}
MessageBox MB_OK|MB_ICONSTOP "$(LatexError1)" /SD IDOK
SetOutPath $TEMP # to be able to delete the $INSTDIR
RMDir /r $INSTDIR
Abort
${endif} # endif $PathLaTeX != ""
${endif}
FunctionEnd
!endif # endif ${SETUPTYPE} == BUNDLE
# ------------------------------ # ------------------------------
Function ConfigureMiKTeX Function ConfigureMiKTeX
@ -276,83 +226,28 @@ Function ConfigureMiKTeX
# files in Resources\tex # files in Resources\tex
SetOutPath "$PathLaTeXLocal\tex\latex\lyx" SetOutPath "$PathLaTeXLocal\tex\latex\lyx"
CopyFiles /SILENT "$INSTDIR\Resources\tex\*.*" "$PathLaTeXLocal\tex\latex\lyx" CopyFiles /SILENT "$INSTDIR\Resources\tex\*.*" "$PathLaTeXLocal\tex\latex\lyx"
# refresh MiKTeX's file name database (do this always to assure everything is in place)
${if} $MultiUser.Privileges != "Admin"
${andif} $MultiUser.Privileges != "Power"
# call the non-admin version
nsExec::ExecToLog "$PathLaTeX\initexmf --update-fndb"
${else}
${if} $MiKTeXUser != "HKCU" # call the admin version
nsExec::ExecToLog "$PathLaTeX\initexmf --admin --update-fndb"
${else}
nsExec::ExecToLog "$PathLaTeX\initexmf --update-fndb"
${endif}
${endif}
Pop $UpdateFNDBReturn # Return value
${endif} ${endif}
# install a Perl interpreter for splitindex and pdfcrop # install a Perl interpreter for splitindex and pdfcrop
SetOutPath "$INSTDIR" SetOutPath "$INSTDIR"
# recursively copy all files under Perl # recursively copy all files under Perl
File /r "${FILES_PERL}" File /r "${FILES_PERL}"
# refresh MiKTeX's file name database (do this always to assure everything is in place) ${endif} # end if $PathLaTeX != ""
${if} $MultiUser.Privileges != "Admin"
${andif} $MultiUser.Privileges != "Power"
# call the non-admin version
nsExec::ExecToLog "$PathLaTeX\initexmf --update-fndb"
${else}
${if} $MiKTeXUser != "HKCU" # call the admin version
nsExec::ExecToLog "$PathLaTeX\initexmf --admin --update-fndb"
${else}
nsExec::ExecToLog "$PathLaTeX\initexmf --update-fndb"
${endif}
${endif}
Pop $UpdateFNDBReturn # Return value
${endif} # end if $PathLaTeX != ""
# 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
${if} ${RunningX64}
${andif} $Is64bit == "true"
SetRegView 64
${else}
SetRegView 32
${endif}
${if} $MiKTeXUser == "HKCU" # if only for current user
# if AutoInstall is set to "0" we can assume that this was set purposly since the default is "1"
ReadRegStr $2 HKCU "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "AutoInstall"
${if} $2 == "0"
Goto NoAutoInstall
${endif}
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}
# if AutoInstall is set to "0" we can assume that this was set purposly since the default is "1"
ReadRegStr $2 HKLM "SOFTWARE\MiKTeX.org\MiKTeX\$MiKTeXVersion\MPM" "AutoInstall"
${if} $2 == "0"
Goto NoAutoInstall
${endif}
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}
NoAutoInstall:
# update MiKTeX's package file list
${if} $MultiUser.Privileges != "Admin"
${andif} $MultiUser.Privileges != "Power"
# call the non-admin version
nsExec::ExecToLog "$PathLaTeX\mpm.exe --update-fndb"
${else}
${if} $MiKTeXUser != "HKCU" # call the admin version
nsExec::ExecToLog "$PathLaTeX\mpm.exe --admin --update-fndb"
${else}
nsExec::ExecToLog "$PathLaTeX\mpm.exe --update-fndb"
${endif}
${endif}
Pop $UpdateFNDBReturn # Return value
# we must return to 32bit because LyX is a 32bit application
SetRegView 32
FunctionEnd FunctionEnd
# ------------------------------ # ------------------------------
@ -372,13 +267,9 @@ Function ConfigureTeXLive
# files in Resources\tex # files in Resources\tex
SetOutPath "$PathLaTeXLocal\texmf-dist\tex\latex\lyx" SetOutPath "$PathLaTeXLocal\texmf-dist\tex\latex\lyx"
CopyFiles /SILENT "$INSTDIR\Resources\tex\*.*" "$PathLaTeXLocal\texmf-dist\tex\latex\lyx" CopyFiles /SILENT "$INSTDIR\Resources\tex\*.*" "$PathLaTeXLocal\texmf-dist\tex\latex\lyx"
# update TeXLive's package file list
ExecWait '$PathLaTeX\texhash'
${endif} ${endif}
${endif} ${endif}
# update TeXLive's package file list
ExecWait '$PathLaTeX\texhash'
# update TeXLive
ExecWait '$PathLaTeX\tlmgr update --all'
FunctionEnd FunctionEnd

View File

@ -33,11 +33,6 @@ Configuration of LyX installer
!define DOWNLOAD_LATEX "http://mirrors.ctan.org/systems/win32/miktex/setup/${SETUPFILE_LATEX}" !define DOWNLOAD_LATEX "http://mirrors.ctan.org/systems/win32/miktex/setup/${SETUPFILE_LATEX}"
#--------------------------------
# Locations of setup files for components (for bundled setup)
!define INSTALL_LATEX "${SETUPFILE_LATEX}"
#-------------------------------- #--------------------------------
# Names and version # Names and version
@ -57,10 +52,9 @@ Configuration of LyX installer
!define APP_WIKI "https://wiki.lyx.org" !define APP_WIKI "https://wiki.lyx.org"
!define APP_WIKI_INFO "${APP_NAME} Wiki" !define APP_WIKI_INFO "${APP_NAME} Wiki"
!define APP_COPYRIGHT "${APP_NAME} is Copyright © 1995 by Matthias Ettrich, 1995-${COPYRIGHT_YEAR} by the ${APP_NAME} Team" !define APP_COPYRIGHT "${APP_NAME} is Copyright © 1995 by Matthias Ettrich, 1995-${COPYRIGHT_YEAR} by the ${APP_NAME} Team"
!if ${SETUPTYPE} == STANDARD !if ${SETUPTYPE} == STANDARD
!define APP_SETUPTYPE "Standard" !define APP_SETUPTYPE "Standard"
!else if ${SETUPTYPE} == BUNDLE
!define APP_SETUPTYPE "Bundle"
!endif !endif
!define BIN_LYX "LyX${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.exe" !define BIN_LYX "LyX${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.exe"
@ -85,9 +79,6 @@ Configuration of LyX installer
!if ${SETUPTYPE} == STANDARD !if ${SETUPTYPE} == STANDARD
!define SETUP_EXE ${ExeFile} !define SETUP_EXE ${ExeFile}
!else if ${SETUPTYPE} == BUNDLE
!define SETUP_EXE ${BundleExeFile}
!define BUNDLESETUP_LATEX
!endif !endif
!define SETUP_ICON "${FILES_ICONS}\lyx.ico" !define SETUP_ICON "${FILES_ICONS}\lyx.ico"

View File

@ -52,10 +52,8 @@ BrandingText " "
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${APP_NAME} ${APP_SERIES_NAME}" !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${APP_NAME} ${APP_SERIES_NAME}"
!insertmacro MUI_PAGE_STARTMENU ${APP_NAME} $StartmenuFolder !insertmacro MUI_PAGE_STARTMENU ${APP_NAME} $StartmenuFolder
!if ${SETUPTYPE} != BUNDLE # Select latex.exe manually
# Select latex.exe manually Page custom LatexFolder LatexFolder_LeaveFunction
Page custom LatexFolder LatexFolder_LeaveFunction
!endif # end if != BUNDLE
# Watch the components being installed. # Watch the components being installed.
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES

View File

@ -44,16 +44,6 @@ FunctionEnd
#-------------------------------- #--------------------------------
# visible installer sections # visible installer sections
Section "!${APP_NAME}" SecCore
SectionIn RO
!if ${SETUPTYPE} == BUNDLE
# if no TeX was found MiKTeX will be installed which requires space
!if $PathLaTeX == ""
AddSize 1020000 # size in KB
!endif
!endif
SectionEnd
Section "$(SecFileAssocTitle)" SecFileAssoc Section "$(SecFileAssocTitle)" SecFileAssoc
StrCpy $CreateFileAssociations "true" StrCpy $CreateFileAssociations "true"
SectionEnd SectionEnd
@ -588,7 +578,6 @@ SectionGroupEnd
# Section descriptions # Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "$(SecCoreDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecFileAssoc} "$(SecFileAssocDescription)" !insertmacro MUI_DESCRIPTION_TEXT ${SecFileAssoc} "$(SecFileAssocDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "$(SecDesktopDescription)" !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "$(SecDesktopDescription)"
!insertmacro MUI_DESCRIPTION_TEXT ${SecDictionaries} "$(SecDictionariesDescription)" !insertmacro MUI_DESCRIPTION_TEXT ${SecDictionaries} "$(SecDictionariesDescription)"
@ -609,22 +598,6 @@ Function .onInit
Quit Quit
${endif} ${endif}
# check that another LyX installer is not currently running
!if ${SETUPTYPE} == STANDARD
FindProcDLL::FindProc "${BundleExeFile}"
${if} $R0 == "1"
MessageBox MB_OK|MB_ICONSTOP "$(InstallRunning)" /SD IDOK
Abort
${endif}
!endif
!if ${SETUPTYPE} == BUNDLE
FindProcDLL::FindProc "${ExeFile}"
${if} $R0 == "1"
MessageBox MB_OK|MB_ICONSTOP "$(InstallRunning)" /SD IDOK
Abort
${endif}
!endif
# Check that LyX is not currently running # Check that LyX is not currently running
FindProcDLL::FindProc "${BIN_LYX}" FindProcDLL::FindProc "${BIN_LYX}"
${if} $R0 == "1" ${if} $R0 == "1"
@ -714,13 +687,6 @@ Function .onInit
Call SearchExternal Call SearchExternal
#!if ${SETUPTYPE} == BUNDLE
# # don't let the installer sections appear when the programs are already installed
# ${if} $PathBibTeXEditor != ""
# SectionSetText 3 "" # hides the corresponding uninstaller section, ${SecInstJabRef}
# ${endif}
#!endif
# select sections of already installed spell-checker dictionaries, make them read-only # select sections of already installed spell-checker dictionaries, make them read-only
# and set the necessary size to 0 bytes # and set the necessary size to 0 bytes
StrCpy $String $FoundDict StrCpy $String $FoundDict

View File

@ -39,10 +39,8 @@ Configuration of standard NSIS header files
# Functions to check and configure the LaTeX-system # Functions to check and configure the LaTeX-system
!include include\LaTeX.nsh !include include\LaTeX.nsh
!if ${SETUPTYPE} != BUNDLE # Function for page to manually select LaTeX's installation folder
# Function for page to manually select LaTeX's installation folder !include gui\LaTeXFolder.nsh
!include gui\LaTeXFolder.nsh
!endif # end if != BUNDLE
# Functions to download spell-checker and thesaurus dictionaries # Functions to download spell-checker and thesaurus dictionaries
!include include\dictionaries.nsh !include include\dictionaries.nsh

View File

@ -40,9 +40,7 @@ Var Pointer
Var PSVPath Var PSVPath
Var PythonPath Var PythonPath
Var Search Var Search
!if ${SETUPTYPE} != BUNDLE Var State
Var State
!endif
Var SVGPath Var SVGPath
Var StartmenuFolder Var StartmenuFolder
Var String Var String

View File

@ -1,68 +0,0 @@
/*
NSIS Script - LyX 2.3 Installer for Windows
Authors: Joost Verburg, Angus Leeming, Uwe Stöhr
Compatible with NSIS 3.0
*/
# Do a Cyclic Redundancy Check to make sure the installer
# was not corrupted by the download.
CRCCheck force
#
# Make the installer as small as possible
SetCompressor /SOLID lzma
# make it a Unicode installer
Unicode true
# enable support for high DPI resolution
ManifestDPIAware true
!ifndef SETUPTYPE
!define SETUPTYPE BUNDLE
!endif
# installer settings like version numbers
!include settings.nsh
# declarations of LyX's registry keys and installer variant
!include include\declarations.nsh
# definitions of global variables
!include include\variables.nsh
# configuration of standard NSIS header files
!include include\nsis.nsh
# list of files to be included in the installer
!include include\filelist.nsh
# detect third-party programs like Inkscape and LaTeX
!include include\detection.nsh
# set up the installer pages
!include include\gui.nsh
# sets the install sections and checks the system on starting the un/installer
!include include\init.nsh
# install LyX and needed third-party programs like Python etc.
!include setup\install.nsh
# loads a function to modify Windows environment variables
!include include\EnvVarUpdate.nsh
# uninstall LyX and all programs that were installed together with LyX
!include setup\uninstall.nsh
# configure LyX (set start menu and write registry entries)
!include setup\configure.nsh
# provides downloads of external programs
#!include gui\external.nsh
#--------------------------------
# Output file
Outfile "${SETUP_EXE}"

View File

@ -14,7 +14,7 @@ These typically need to be modified for each LyX release
!define APP_VERSION_REVISION 1 !define APP_VERSION_REVISION 1
!define APP_VERSION_EMERGENCY "" # use "1" for an emergency release of LyX otherwise "" !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_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 !define APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}${APP_EMERGENCY_DOT}${APP_VERSION_EMERGENCY}" # Version to display
@ -28,9 +28,6 @@ These typically need to be modified for each LyX release
!ifndef ExeFile !ifndef ExeFile
!define ExeFile "${APP_NAME}-${APP_VERSION_MAJOR}${APP_VERSION_MINOR}${APP_VERSION_REVISION}${APP_VERSION_EMERGENCY}-Installer-${APP_VERSION_BUILD}.exe" !define ExeFile "${APP_NAME}-${APP_VERSION_MAJOR}${APP_VERSION_MINOR}${APP_VERSION_REVISION}${APP_VERSION_EMERGENCY}-Installer-${APP_VERSION_BUILD}.exe"
!endif !endif
!ifndef BundleExeFile
!define BundleExeFile "${APP_NAME}-${APP_VERSION_MAJOR}${APP_VERSION_MINOR}${APP_VERSION_REVISION}${APP_VERSION_EMERGENCY}-Bundle-${APP_VERSION_BUILD}.exe"
!endif
#-------------------------------- #--------------------------------
# File locations # File locations
@ -49,11 +46,4 @@ These typically need to be modified for each LyX release
!define MiKTeXRepo "ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/" !define MiKTeXRepo "ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/"
!define MiKTeXDeliveredVersion "2.9"
!define ImageMagickVersion "7.0.7" !define ImageMagickVersion "7.0.7"
# definitions for the Complete installer
!if ${SETUPTYPE} == BUNDLE
!define MiKTeXInstall "$INSTDIR\basic-miktex-2.9.6813-x64.exe"
!define MiKTeXInstaller "${FILES_BASE}\basic-miktex-2.9.6813-x64.exe"
!endif

View File

@ -24,15 +24,13 @@ Section -ProgramFiles SecProgramFiles
StrCpy $INSTDIR "$INSTDIR\${APP_DIR}" StrCpy $INSTDIR "$INSTDIR\${APP_DIR}"
${endif} ${endif}
!if ${SETUPTYPE} != BUNDLE # abort the installation if no LaTeX was found but should be used
# abort the installation if no LaTeX was found but should be used ${if} $PathLaTeX == ""
${if} $PathLaTeX == "" ${andif} $State == "0"
${andif} $State == "0" SetOutPath $TEMP # to be able to delete the $INSTDIR
SetOutPath $TEMP # to be able to delete the $INSTDIR RMDir /r $INSTDIR
RMDir /r $INSTDIR Abort
Abort ${endif}
${endif}
!endif # end if != BUNDLE
# Install and register the core LyX files # Install and register the core LyX files
@ -70,16 +68,6 @@ Section -ProgramFiles SecProgramFiles
File /r "${FILES_LYX}\Resources" File /r "${FILES_LYX}\Resources"
File /r "${FILES_DEPS}\Resources" File /r "${FILES_DEPS}\Resources"
!if ${SETUPTYPE} == BUNDLE
# include the MiKTeX installer
File ${MiKTeXInstaller}
# install MiKTeX if not already installed
Call InstallMiKTeX # function from LaTeX.nsh
!endif # end if BUNDLE
# Python # Python
SetOutPath "$INSTDIR" SetOutPath "$INSTDIR"
# recursively copy all files under Python # recursively copy all files under Python