Search:   Help

Developers' side bar

Selected categories


Shared groups



<< | 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:

  1. Uwe upload his installer to the trunk (he has already done so)
  2. 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.
  3. 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)! )
  4. 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.


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 files2111
Code lines28593476Including comment lines and blank lines, no translations
Blank lines774508Blank lines
Comment lines259555
Translation files436616
Translation lines3663248
Installer pages179
Uninstaller pages52
Uses of 'Section'1712 / 10U: Small / bundle
Uses of '!macro'10822
Uses of '!insertmacro'452122Interesting

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
Files1912Excl. language files
Lines24193570Excl. language files
Blank lines511739Excl. language files
Comments (; only)226555Excl. language files
Macros5011I got very different numbers. (incl. transl.?) /C
Include instruction2827
Language file includes? 8?30
Push instructions3821
Pop insructions3923
If / endif89269Interesting!
Define (why?)109193
Variables (why?)1790
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

Edit - History - Print - Recent Changes - All Recent Changes - Search
Page last modified on 2011-04-15 16:13 UTC