<< | Page list | >>
Notes, comments, thoughts etc regarding the LyX installer for Windows.
1. Controversy
There's been some heated discussions regarding the Windows installers.
Eventually things settled down and Bo announced:
1.1 Announcement by Bo
Slightly modified (by Christian)
Dear list,
After some private discussions, Uwe has agreed to work with me, and
Christian and potentially Joost to merge the two installers. We plan
to proceed like this:
- Uwe upload his installer to the trunk (he has already done so)
- I and Christian will study both installers, figuring out
differences in features and implementations. Newbie questions will be
sent to Joost and Uwe. This will last for two weeks or longer.
- After we all get familiar with both code bases, a series of
decisions regarding how to merge the two installers will be made, of
course after public discussions. We may use one or two scripts to
maintain the minimal and bundled installer, we may replace
obscure-to-newbies code from the official installer with Uwe's if
Joost can not show us the advantages of using more advanced
techniques. (Joost, we need your help (and you need to defend your
code)! )
- Two installers will eventually be merged. With four (at least
two?) developers, we expect this to be done before the release of
1.5.0.
In summary, an installer team is formed to work on a single official
installer, which will be official by JMarc's definition.
Cheers,
Bo
2. Various comments from users
-
- LyXDevelThreadRoot:88060
- Comment by Rafael, describing his experience and thoughts from installing
the bundled version of LyX 1.5rc1.
- He was surprised network connection was needed for the bundled installer
- He suggested including (some) dictionaries
- He thought MikTeX wanted some unneeded/unusual packages
- ?
3. Windows installers
The installers are denoted as follows:
- J-small (J-s) - Joost's installer, small version.
- J-bundle (J-b) - Joost's bundle installer
- U-small - (U-s) - Uwe's installer, small version
- U-bundle - (U-b) - Uwe's installer, complete version
4. Notes on the installers
Basic install with J-s:
- Installs ok?
- Does not bundle ImageMagick and ghostview
- Offers to download and install:
ImageMagick, GhostView, MikTeX, and aspell dictionary
- Offers quick re-installation of LyX
- Pdfview works
- Uninstaller does not ask to uninstall ghostview etc
- Bug: Unable to detect a MikTeX installed by U-b, but can detect
a MikTeX installed by J-s or J-b.
Basic install with J-b:
- Installs ok.
- Installs ImageMagick?, GhostView?, MikTeX.
- Does not update MikTeX as U-b does (but is it necessary?)
- Offers quick re-installation of LyX
- Bug: Unable to detect a MikTeX installed by U-b, but can detect
a MikTeX installed by J-s or J-b.
- Pdfview works
- Uninstaller does not ask to uninstall ghostview etc
Basic install with U-s:
- Installs ok?
- Bundles ImageMagick, GhostView
- No option to download/install MikTeX?
- Bug: pdfviewwin7.exe crashes
- Bug: Does not allow re-installation?
Basic install with U-b:
- Installs ok?
- Launch MikTeX installer, run initexmf, mpm? (What are they?)
- Downloads aspell dictionary, run miktex update/
- Uninstall asks to uninstall gv, runs initexmf as well?
- Bug: pdfviewwin7.exe crashes
- Bug: Does not allow re-installation?
Silent installs (add the option /S and installs without user intervention
which is sometimes useful for system administrators).
Silent install with J-s:
- Silently installs (only) LyX without downloading anything else
Silent install with J-b:
- Silently installs only LyX (bug? Maybe bundled installers can not install silently.)
Silent install with U-s:
- Lots of questions asked
- Shortcuts for LyX and uninstall are not installed to a separate directory
- During uninstallation, all shortcuts (including other programs) are
removed. So no silent installation.
Wrapper for LyX, i.e. lyxc wrapper, that disables the command window:
- J: lyx.exe is the wrapper, lyxc.exe is the true command line version.
- U: LyX starts with a command window
Program groups:
- J: Single program, (lyx.exe)
- U: Program + shortcut to (un?)installer.
(I suggest: lyx.exe, lyxc.exe (named lyx with debug window) and uninstaller)
Including the uninstaller in the start menu is not a good thing. The menu is intended to start applications, not to be cluttered with shortcuts that are not used regularly. You can also find this in the Microsoft UI guidelines.
For debugging you should use lyx.exe -dbg, although I also don't recommend including this in the start menu.
Joost
5. Bugs, problems and issues with the installers
- Basic installation with J-s:
6. The two code bases in brief - statistics
6.1 Christians statistics
Some statistical measurements by Christian. J's code includes that of launcher.nsi and pdfview.nsi
(one file for each).
| J [#] | U [#] | Comment |
Code files | 21 | 11 |
Code lines | 2859 | 3476 | Including comment lines and blank lines, no translations |
Blank lines | 774 | 508 | Blank lines |
Comment lines | 259 | 555 |
Translation files | 4366 | 16 |
Translation lines | 366 | 3248 |
Languages | 4 | 15 |
Installer pages | 17 | 9 |
Uninstaller pages | 5 | 2 |
Uses of 'Section' | 17 | 12 / 10 | U: Small / bundle |
Uses of '!macro' | 108 | 22 |
Uses of '!insertmacro' | 452 | 122 | Interesting |
Snippets of shell code:
- The snippets are usually executed from
<lyx-devel>/development/Win32/packaging/installer/
- To exclude U's code, typically pipe via 'grep -v LyXWinInstaller'
- Counting the n:o 'section':s
grep -ri --include='*.ns?' '^[\t ]*section[\t ]' . ../../pdfview ../../launcher
- Counting the n:o 'sectionend':s
grep -ri --include='*.ns?' '^[\t ]*sectionend[\t ]' . ../../pdfview ../../launcher
- Counting the n:o '!insertmacro'
grep -ri --include='*.ns?' '^ *\!insertmacro' . ../../pdfview ../../launcher
Then pipe to wc
- Counting the n:o '!macro'
grep -ri --include='*.ns?' '^ *\!macro' . ../../pdfview ../../launcher
- Couting blank lines
grep -ri --include="*.ns?" '^ *$' . ../../launcher | grep -v '/lang/'
- Couting comment lines
grep -ri --include="*.ns?" '^ *#' . ../../launcher | grep -v '/lang/'
6.2 Statistics originally from Bo
@]
| J [#] | U [#] | Comment |
Files | 19 | 12 | Excl. language files |
Lines | 2419 | 3570 | Excl. language files |
Blank lines | 511 | 739 | Excl. language files |
Comments (; only) | 226 | 555 | Excl. language files |
Functions | 42 | 50 |
Macros | 50 | 11 | I got very different numbers. (incl. transl.?) /C |
Include instruction | 28 | 27 |
Language file includes | ? 8? | 30 |
Push instructions | 38 | 21 |
Pop insructions | 39 | 23 |
If / endif | 89 | 269 | Interesting! |
Define (why?) | 109 | 193 |
Variables (why?) | 17 | 90 |
Correction: 226, 555 comment lines respectively.
(I only counted '^;', '^\s*;' is used now.)
I found 21 files for J, incl. launcher.nsi and pdview.nsi.
Guess they're not included at all. /C
Category: Windows, Development, Windows installer