Archive: installer doesn't work on Windows 98


installer doesn't work on Windows 98
The installer for Vim 6.3a, generated with NSIS 2, works fine on Windows XP but several people reported it hangs on the license page when using Windows 98. That page then is blank, no text and no buttons to click on. Cursor turns into an hourglass.

I'm not sure if this is a bug or something I'm doing wrong. Currently I guess it's a bug, because it worked fine with NSIS 1.92.

You can find the file here: ftp://ftp.vim.org/pub/vim/unstable/pc/gvim63a.exe
The installer script gvim.nsi can be found here: http://cvs.sourceforge.net/viewcvs.py/vim/vim/nsis

I'm using LZMA compression, could that be a reason?

I currently don't have a Windows 98 system, thus can't do debugging.
Suggestions are welcome!


I can reproduce this issue. It occurs once in a while on a Windows 98 installation.

I think your actions in .onInit may interfere with the interface. Try running the external application silently using the nsExec plug-in.

Your script also uses deprecated NSIS 1 commands. This is not related to this issue, but using page commands and the standard language files is recommended.


Originally posted by Joost Verburg
I can reproduce this issue. It occurs once in a while on a Windows 98 installation.
I am glad you are able to reproduce the problem.

I think your actions in .onInit may interfere with the interface. Try running the external application silently using the nsExec plug-in.
I am afraid I cannot run this application silently. When a previous installation of Vim is detected the user will be prompted if it should be uninstalled.

Perhaps there is another way to run the application that works around the problem? Note that it worked just fine with NSIS 1.

Your script also uses deprecated NSIS 1 commands. This is not related to this issue, but using page commands and the standard language files is recommended.
I did convert the NSIS 1 script to NSIS 2, fixing what didn't work. What deprecated commands are still there? A pointer to the relevant documentation would be sufficient.

NSIS 2 has a new page system. You only have to add page commands, there is no need to set texts like DirText etc. yourself.

I notice that the background gradient does not show when the license page is blank. The only interface-related command in .onInit is BringToFront, try whether that one makes any difference.

Also try with and without background gradient.


I finally decided to reboot into Windows 98 (have to bring down my Unix system, don't like that) and try it out myself. Unfortunately it works fine on my system. That means I cannot even try debugging it.

I have uploaded another installer, with the gradient and the BringToFront removed. Please give it a try: ftp://ftp.vim.org/pub/vim/unstable/pc/gvim63a1.exe


This one seems to work fine, please ask the users who reported the problem to test it too.

Btw, why not integrate the uninstallation etc. in the NSIS installer?


Originally posted by Joost Verburg
This one seems to work fine, please ask the users who reported the problem to test it too.
I'm glad this works. Would you like me to make a version with only the background gradient removed, so that we know that causes the problem? Or do you already know that omitting BringToFront is not relevant? It should be reported as a bug anyway.

Btw, why not integrate the uninstallation etc. in the NSIS installer?
It is rather complicated and must also be available when not using NSIS. Thus duplicating this code or even re-implementing it in NSIS script is unattractive.

Please create four small installers without any files included (except those used in .onInit).

1) With all features
2) Without BringToFront
3) Without background gradient
4) Without both


OK, you can find four executables here: ftp://ftp.vim.org/pub/vim/unstable/tryout

The first "yes" or "no" is for BGGradient, the second for BringToFront.

Hopefully you can reproduce the problem with these mutilated installers!


Only yes_yes seems to cause the problem.

The usage of BringToFront is no a good idea anyway in combination with a background gradient, because everything goes to the background.