Archive: Real NSIS Discussion


Real NSIS Discussion
FIRST OF ALL, I'm a big fan of NSIS....
NSIS is a very powerful installation system. However, that does not mean that there are no backwards (at least in my humble opinion) in that system. So, I'm here just to make NSIS even better and to rectify what I think is a downside of it.
Before I proceed, you should know that some points here are not new. Hence, forgive me if you see some repeated ideas.

1- The first thing I noticed when I first encounter NSIS is that NSIS does not obey to the “Wizard 97” user interface standard. Since then, I keep wondering, what blocks NSIS from using that standard.
http://msdn.microsoft.com/archive/en...asp?frame=true

2- The scripting language. Well... The scripting language is a very confusing thing about NSIS. I mean, surely it gives you the power to do nearly everything without using another scripting language inside NSIS. But, in the other hand, it makes difficult for developers to create a simple application (like HM NIS Edit) that can handle most of the scripting language aspects using only GUI.
So can we make the scripting language more static and not that flexible.

3- This question will be straightforward: Why are we still using the Classic style in NSIS. I believe we are the only one who have that ugly cut style.

4- I think this one have been discussed a lot. But, anyway, I thought I should mention it due to its importance: It is the cancel during the installation. This feature is a very important one (especially with large installations).

5- The last one is: why the progress bar does not move during the extraction of files (it only moves during the copying). you can do some math calculation to any compressed file and include it in the progress bar. I see a lot of installers include there decompression of file in there copying progress.


1. Oh that’s so cute.

2. Are you serious? It's not that hard you know and it's the thing, what makes NSIS to be what it is.

3. Modern UI is using plugins and custom made script files so it wouldn't be easy task to code all the stuff what MUI needs to the makensis, if you meant that? And the Classic UI is still the best for small apps what doesn’t need a mega cool installer thingy.

4. Hmm dono. I don't remember when I had to cancel installinon last time. But that don't mean that others hadn't.

5. Big deal huh.

-Aaron's rod


Cancel during installation has been implemented as a patch which you can add and compile yourself.
I'm sure this will be a feature to be implemented eventually.

-Stu


I'm not sure and the docs never say...
If I copy some files, .dlls, .exes and later on before the install is completed the script executes Abort are all my files, reg keys and directories rolled back ?

I would be a fan of NSIS too but I'm sorry to say that a real installer (like NSIS) should clearly document that all actions are automaticaly rolled back on abort.

So what is NSIS current behavior on this ?

Adrian Constantin
Romania


Re: Real NSIS Discussion

1- The first thing I noticed when I first encounter NSIS is that NSIS does not obey to the “Wizard 97” user interface standard. Since then, I keep wondering, what blocks NSIS from using that standard.
http://msdn.microsoft.com/archive/en...asp?frame=true
As far as I know, Joost, who created the MUI, followed this standard. Do you have any specific information about where the MUI doesn't follow this standard?

2- The scripting language. Well... The scripting language is a very confusing thing about NSIS. I mean, surely it gives you the power to do nearly everything without using another scripting language inside NSIS. But, in the other hand, it makes difficult for developers to create a simple application (like HM NIS Edit) that can handle most of the scripting language aspects using only GUI.
So can we make the scripting language more static and not that flexible.
How about an application that an application that uses its own scripting language and uses NSIS scripts as the backend?

3- This question will be straightforward: Why are we still using the Classic style in NSIS. I believe we are the only one who have that ugly cut style.
Some people like it and still use it. If you don't, you can always use the MUI. You've got the choice.

4- I think this one have been discussed a lot. But, anyway, I thought I should mention it due to its importance: It is the cancel during the installation. This feature is a very important one (especially with large installations).
Indeed, this would be nice to have.

5- The last one is: why the progress bar does not move during the extraction of files (it only moves during the copying). you can do some math calculation to any compressed file and include it in the progress bar. I see a lot of installers include there decompression of file in there copying progress.
The problem is that the progress of the progress bar can't be determined before the script actually executes. The progress can never be really good this way. But even if files will take more ticks of the progress bar, we'll still have the problem of skipped files. Currently, the status of the progress bar is calculated by the code execution pointer.

madden, NSIS doesn't do that, which is why it's not documented.

madden, NSIS doesn't do that, which is why it's not documented.
Yeah, I was afraid it doesn't ...
Not really a nice thing to find out ... especialy after a week spent learning the scripting language and trying several installers.
(I think someone else also asked for atomic installs in a bug report too )

The way I look at it is that NSIS itself doesn't actually install files, shortcuts etc.- you do it using commands/instructions provided by NSIS.
So, you should take responsibility for rolling back when the installation is aborted or canceled.

Inno Setup, otoh, does the installation, uninstallation for you. You provide a list of files and destinations, registry keys, etc, and Inno takes care of putting them in the right place. Hence it is able to handle removing them as well.
It's a simpler scripting system.

You don't have to agree with me, of course. :)


The way I look at it is that NSIS itself doesn't actually install files, shortcuts etc.- you do it using commands/instructions provided by NSIS.
Yes I got the view...

What I would like is to have it carfully placed in the documentation, somewhere in the begging.

Atomic setups are the first requirement that I expect from a good install system, and if the docs say nothing and I see the install system is otherwise serious, then I assume atomic setups are just implied :(
Inno Setup, otoh, does the installation, uninstallation for you.
Yes, thaks for the tip.


See you.

There are a lot of things NSIS doesn't do for you. I'm not going to list them all in the documentation. This one as well, which is not implied by anything else in the documentation. The contrary is also implied by all of the examples, and probably in one or more places in the documentation.