From df0b34017e3b0c2a4b50f06c4468d3090af8e4ee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Fri, 9 Jan 2015 02:55:00 +0100 Subject: [PATCH] Windows installer: backport recent changes from master --- .../Win32/packaging/installer/ChangeLog.txt | 48 ++++++++++++++++++- .../installer/HunspellDictionaryNames.txt | 2 + .../Win32/packaging/installer/Packages.txt | 34 ++++++------- .../installer/include/dictionaries.nsh | 6 +-- .../packaging/installer/include/init.nsh | 48 ++++++++++++++----- .../Win32/packaging/installer/settings.nsh | 10 ++-- .../packaging/installer/setup/configure.nsh | 15 ++++-- 7 files changed, 123 insertions(+), 40 deletions(-) diff --git a/development/Win32/packaging/installer/ChangeLog.txt b/development/Win32/packaging/installer/ChangeLog.txt index 44020a7932..56d64250a4 100644 --- a/development/Win32/packaging/installer/ChangeLog.txt +++ b/development/Win32/packaging/installer/ChangeLog.txt @@ -1,4 +1,50 @@ -Changelog for LyX-207-4: +Changelog for LyX-212-2: +- fix problem that some LaTeX language packages were not installed automatically + leading to LaTeX errors when compiling LyX documents +- new spell checker for Turkish +- updated spell-checker dictionaries for English, Norwegian(Bokmal), Portuguese + and Scottish + (To benefit from them you must uninstall an already installed LyX 2.1.x and + then use this installer.) +- updated thesaurus for Slovenian + (you need to reinstall LyX to benefit from this) +- updated to Python 2.7.9 + + +Changelog for LyX-212-1: +- installs LyX 2.1.2 + + +Changelog for LyX-211-2: +- updated to Python 2.7.8 + + +Changelog for LyX-211-1: +- installs LyX 2.1.1 +- updated to Ghostscript 8.14 +- updated to Qt 4.8.6 + + +Changelog for LyX-210-2: +- LyX can now also be installed over an existing installation of the same LyX version + if the users really wants this. +- LyX can now also be installed if the uninstaller executable of a former LyX was + accidentally deleted. +- If a user set MiKTeX's automatic package installation to "No" the installer will + respect that and not re-enable it. + + +Changelog for LyX-210-1: +- installs LyX 2.1.0 +- fixed a bug that MiKTeX was not found if Windows' PATH variable is very long + + +Changelog for LyX-208-1: +- installs LyX 2.0.8 +- fixed a bug that MiKTeX was not found if Windows' PATH variable is very long + + +Changelog for LyX-207-4: - downgraded to Qt 4.8.4 (there is a bug in the newer Qt 4.8.5 that destroys some shortcuts) - updated to JabRef 2.10 diff --git a/development/Win32/packaging/installer/HunspellDictionaryNames.txt b/development/Win32/packaging/installer/HunspellDictionaryNames.txt index dd4b08f5d9..aba877cc7e 100644 --- a/development/Win32/packaging/installer/HunspellDictionaryNames.txt +++ b/development/Win32/packaging/installer/HunspellDictionaryNames.txt @@ -132,6 +132,8 @@ th_TH.aff th_TH.dic tk_TM.aff tk_TM.dic +tr_TR.aff +tr_TR.dic uk_UA.aff uk_UA.dic ur_PK.aff diff --git a/development/Win32/packaging/installer/Packages.txt b/development/Win32/packaging/installer/Packages.txt index 5e21df53c9..70af0bb6e2 100644 --- a/development/Win32/packaging/installer/Packages.txt +++ b/development/Win32/packaging/installer/Packages.txt @@ -8,7 +8,6 @@ apacite apalike arabi authordate -babel babel-albanian babel-bahasa babel-basque @@ -57,7 +56,6 @@ babel-ukrainian babel-vietnamese babel-welsh bibtopic -bidi booktabs braille breakurl @@ -70,28 +68,22 @@ endnotes enumitem esint eso-pic -fontspec fancybox fancyhdr filehook -float framed -geometry greek-inputenc harvard -hyperref hyphenat iftex jurabib lettrine listings lithuanian -luainputenc genmisc mhchem mongolian-babel miktex-hyph-mongolian -multirow natbib units nomencl @@ -107,6 +99,7 @@ sectionbox serbianc miktex-hyph-serbian setspace +shapepar soul splitindex subfig @@ -123,7 +116,6 @@ wrapfig xargs xcolor xetex-def -xkeyval arydshln binhex braket @@ -132,7 +124,6 @@ caption colortbl diagbox etoolbox -eurosym fp koma-script makecmds @@ -142,14 +133,9 @@ pict2e sidecap was charter -courier garamondx -helvet mathpazo -utopia -ae bera -cbgreek ccfonts cmbright concmath @@ -160,14 +146,19 @@ eulervm feyn fontaxes fourier +iwona +kurier lh -lmodern +libertine lm-math luxi -mdput +minion2newtx mslapa +newtx stmaryrd symbol +tex-gyre +tfrupee tipa txfonts wasy @@ -195,6 +186,7 @@ ctex dinbrief dtk elsarticle +elsevier endfloat epsf europecv @@ -224,6 +216,7 @@ placeins powerdot pst-grad pst-node +revtex revtex4 sauerj savesym @@ -241,4 +234,11 @@ ucs upquote xecjk xifthen +answers +chicago +frankenstein +jsclasses +lambda-lists +mathdesign +mathtools pdfcrop \ No newline at end of file diff --git a/development/Win32/packaging/installer/include/dictionaries.nsh b/development/Win32/packaging/installer/include/dictionaries.nsh index ddef3c7811..d66c984766 100644 --- a/development/Win32/packaging/installer/include/dictionaries.nsh +++ b/development/Win32/packaging/installer/include/dictionaries.nsh @@ -28,8 +28,8 @@ Function FindDictionaries # read out the possible spell-checker filenames from the file FileOpen $R5 "$INSTDIR\Resources\HunspellDictionaryNames.txt" r - ${for} $5 1 70 - # the file has 140 lines, but we only need to check for one of the 2 dictionary files per language + ${for} $5 1 71 + # the file has 142 lines, but we only need to check for one of the 2 dictionary files per language # therefore check only for every second line FileRead $R5 $String # skip the .aff file FileRead $R5 $String # $String is now the .dic filename @@ -66,7 +66,7 @@ Function DownloadHunspellDictionaries # read out the locations from the file FileOpen $R5 "$INSTDIR\Resources\HunspellDictionaryNames.txt" r - ${For} $5 1 140 # the file has 140 lines + ${For} $5 1 142 # the file has 142 lines FileRead $R5 $String # $String is now the dictionary name StrCpy $R3 $String -6 # $R3 is now the dictionary language code diff --git a/development/Win32/packaging/installer/include/init.nsh b/development/Win32/packaging/installer/include/init.nsh index b58478ad4d..d01ec8d66a 100644 --- a/development/Win32/packaging/installer/include/init.nsh +++ b/development/Win32/packaging/installer/include/init.nsh @@ -167,14 +167,14 @@ SectionEnd Section /o "English (CA)" SecDEnglishCA StrCpy $DictCodes "en_CA,$DictCodes" - AddSize 690 + AddSize 531 SectionEnd Section "English (GB)" SecDEnglishGB # already installed by default SectionIn RO #StrCpy $DictCodes "en_GB,$DictCodes" - AddSize 757 + AddSize 652 SectionEnd Section /o "English (NZ)" SecDEnglishNZ @@ -186,7 +186,7 @@ Section "English (US)" SecDEnglishUS # already installed by default SectionIn RO #StrCpy $DictCodes "en_US,$DictCodes" - AddSize 688 + AddSize 530 SectionEnd Section "Español (ES)" SecDSpanishES @@ -237,7 +237,7 @@ SectionEnd Section /o "Gàidhlig" SecDScottish StrCpy $DictCodes "gd_GB,$DictCodes" - AddSize 2504 + AddSize 3090 SectionEnd Section /o "Galego" SecDGalician @@ -322,7 +322,7 @@ SectionEnd Section /o "Norsk (Nynorsk)" SecDNorwegianNN StrCpy $DictCodes "nn_NO,$DictCodes" - AddSize 1515 + AddSize 1540 SectionEnd Section /o "Occitan" SecDOccitan @@ -342,7 +342,7 @@ SectionEnd Section /o "Português (PT)" SecDPortuguesePT StrCpy $DictCodes "pt_PT,$DictCodes" - AddSize 1595 + AddSize 1490 SectionEnd Section /o "Româna" SecDRomanian @@ -415,6 +415,11 @@ Section /o "T AddSize 950 SectionEnd +Section /o "Türkçe" SecDTurkish + StrCpy $DictCodes "tr_TR,$DictCodes" + AddSize 8870 +SectionEnd + Section /o "Ukrainian" SecDUkrainian StrCpy $DictCodes "uk_UA,$DictCodes" AddSize 3077 @@ -542,7 +547,7 @@ SectionEnd Section /o "Slovenšcina" SecTSlovenian StrCpy $ThesCodes "sl_SI,$ThesCodes" - AddSize 1121 + AddSize 1110 SectionEnd Section /o "Slovenský" SecTSlovakian @@ -626,17 +631,31 @@ Function .onInit # check if this LyX version is already installed ${if} $MultiUser.Privileges == "Admin" ${orif} $MultiUser.Privileges == "Power" - ReadRegStr $0 HKLM "${APP_UNINST_KEY}" "Publisher" + ReadRegStr $0 HKLM "${APP_UNINST_KEY}" "DisplayIcon" ${else} - ReadRegStr $0 HKCU "${APP_UNINST_KEY}" "Publisher" + ReadRegStr $0 HKCU "${APP_UNINST_KEY}" "DisplayIcon" # handle also the case that LyX is already installed in HKLM ${if} $0 == "" - ReadRegStr $0 HKLM "${APP_UNINST_KEY}" "Publisher" + ReadRegStr $0 HKLM "${APP_UNINST_KEY}" "DisplayIcon" ${endif} ${endif} ${if} $0 != "" - MessageBox MB_OK|MB_ICONSTOP "$(StillInstalled)" /SD IDOK + # check if the uninstaller was acidentally deleted + # if so don't bother the user if he realy wants to install a new LyX over an existing one + # because he won't have a chance to deny this + StrCpy $4 $0 -10 # remove '\bin\lyx,0' + # (for FileCheck the variables $0 and $1 cannot be used) + !insertmacro FileCheck $5 "Uninstall-LyX.exe" "$4" # macro from LyXUtils.nsh + ${if} $5 == "False" + Goto ForceInstallation + ${endif} + # installing over an existing installation of the same LyX release is not necessary + # if the users does this he most probably has a problem with LyX that can better be solved + # by reinstalling LyX + # for beta and other test releases over-installing can even cause errors + MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONEXCLAMATION "$(AlreadyInstalled)" /SD IDNO IDYES ForceInstallation Abort + ForceInstallation: ${endif} # check if there is an existing LyX installation of the same LyX series @@ -1166,6 +1185,13 @@ Function .onInit SectionSetFlags ${SecDTurkmen} $0 SectionSetSize ${SecDTurkmen} 0 ${endif} + StrCpy $Search "tr_TR" + Call StrPoint + ${if} $Pointer != "-1" + IntOp $0 ${SF_SELECTED} | ${SF_RO} + SectionSetFlags ${SecDTurkish} $0 + SectionSetSize ${SecDTurkish} 0 + ${endif} StrCpy $Search "uk_UA" Call StrPoint ${if} $Pointer != "-1" diff --git a/development/Win32/packaging/installer/settings.nsh b/development/Win32/packaging/installer/settings.nsh index cc52db455b..6177069c19 100644 --- a/development/Win32/packaging/installer/settings.nsh +++ b/development/Win32/packaging/installer/settings.nsh @@ -11,10 +11,10 @@ These typically need to be modified for each LyX release !define APP_VERSION_MAJOR 2 !define APP_VERSION_MINOR 1 -!define APP_VERSION_REVISION 0 +!define APP_VERSION_REVISION 2 !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 2 # 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 @@ -37,9 +37,9 @@ These typically need to be modified for each LyX release # File locations # !!! you need to adjust them to the folders in your Windows system !!! -!define FILES_LYX "C:\LyX\LyXPackage\LyX" -!define FILES_DEPS "C:\LyX\LyX2.0x\lyx-windows-deps-msvc2008" -!define FILES_QT "C:\LyX\LyXPackage\LyX" +!define FILES_LYX "D:\LyXPackage2.1\LyX" +!define FILES_DEPS "D:\LyXGit\Master\lyx-windows-deps-msvc2010" +!define FILES_QT "C:\Qt\4.8.6" !define ClassFileDir "${FILES_LYX}\Resources\tex" !define DVIPostFileDir "${FILES_DEPS}\tex" diff --git a/development/Win32/packaging/installer/setup/configure.nsh b/development/Win32/packaging/installer/setup/configure.nsh index 9e6d18be95..a26bcbef98 100644 --- a/development/Win32/packaging/installer/setup/configure.nsh +++ b/development/Win32/packaging/installer/setup/configure.nsh @@ -55,8 +55,8 @@ Section -InstallData WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoRepair" 0x00000001 WriteRegStr SHCTX ${APP_UNINST_KEY} "StartMenu" "$SMPROGRAMS\$StartmenuFolder" - # if we install over an existing version, remove the old uninstaller information - ${if} $OldVersionNumber != "" + # if we install over an older existing version, remove the old uninstaller information + ${if} $OldVersionNumber < ${APP_SERIES_KEY} DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber" # also delete in the case of an emergency release DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber1" @@ -215,17 +215,26 @@ Section -ConfigureScript # ask to update MiKTeX ${if} $LaTeXInstalled == "MiKTeX" Call UpdateMiKTeX # function from latex.nsh - # install all necessary packages at once + # install all necessary packages at once because this is much faster then to install the packages one by one + # NOTE: the babelpackages-txt list is only necessary for LyX 2.1.2 ans 2.1.3 because of the restructuration + # of babel in MiKTeX. This can be removed for LyX 2.1.4 DetailPrint $(TEXT_CONFIGURE_LYX) ${if} $MultiUser.Privileges != "Admin" ${andif} $MultiUser.Privileges != "Power" # call the non-admin version + # at first we need to synchronize the package database + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--update-db"' nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--install-some=$INSTDIR\Resources\Packages.txt"' + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--install-some=$INSTDIR\Resources\babel-Packages.txt"' ${else} ${if} $MiKTeXUser != "HKCU" # call the admin version + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" "--verbose" "--update-db"' nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" "--verbose" "--install-some=$INSTDIR\Resources\Packages.txt"' + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--admin" "--verbose" "--install-some=$INSTDIR\Resources\babel-Packages.txt"' ${else} + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--update-db"' nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--install-some=$INSTDIR\Resources\Packages.txt"' + nsExec::ExecToLog '"$PathLaTeX\mpm.exe" "--verbose" "--install-some=$INSTDIR\Resources\babel-Packages.txt"' ${endif} ${endif} ${endif} -- 2.39.5