Please login or register.

Login with username, password and session length
Advanced search  

News:

For WME related articles and tutorials visit WME Resource Center.

Pages: [1] 2  All

Author Topic: NSIS - Nullsoft Scriptable Install System  (Read 30095 times)

0 Members and 1 Guest are viewing this topic.

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
NSIS - Nullsoft Scriptable Install System
« on: June 02, 2003, 01:57:09 PM »

NSIS - http://www.nullsoft.com/free/nsis/

There are 6 things I like about NSIS : it's light, fast, computer friendly, powerfull, opensource and it's improved all the time.

OK, let's talk about NSIS. I was reading the docs recently and I'm considering using NSIS for future distribution of WME DevKit (instead of InnoSetup). Although I like InnoSetup and I still think it's pretty cool, there's one thing that troubles me - the distribution package size. The problem is, there's lot of graphics in the WME DevKit (templates, demos). Some images are duplicated (or even triplicated). What I need is an equivalent of WinRar's "solid" archiving, i.e. all the files are compressed "together", using one compression dictionary. This will reduce the distribution size A LOT. From what I've read in the NSIS documentation, it's capable of this (I didn't test it though; I hope I'm not wrong).
Plus, NSIS installers look cool (just look at the Dreams installation).
Plus, NSIS s quite flexible due to the scripting language (I have to say, though, that I really don't like the language, it's pretty weird ;))
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #1 on: June 02, 2003, 02:06:05 PM »

Quote
have to say, though, that I really don't like the language, it's pretty weird

I have to agree that the language is pretty weird. But as I have said before it has many examples. The installation program I have created in the dreams demo is a combination of 3-4 examples! And I don't even understand the language!

Quote
The problem is, there's lot of graphics in the WME DevKit (templates, demos). Some images are duplicated (or even triplicated). What I need is an equivalent of WinRar's "solid" archiving, i.e. all the files are compressed "together", using one compression dictionary. This will reduce the distribution size A LOT. From what I've read in the NSIS documentation, it's capable of this (I didn't test it though; I hope I'm not wrong).

I don't know what compression algorithm innosetup is using but NSIS can use zlib or bzip2 which have (especially bsip2) very good compression. But as far as I know bzip2 can't use solid archiving. BUT the NSIS team is considering in using the www.7-zip.com in feature releases which support solid archiving AND has GREAT compression ratios. Just compress wme package with 7zip and see the results for yourself.
« Last Edit: June 02, 2003, 02:10:16 PM by odnorf »
Logged
fl*p

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re:NSIS - Nullsoft Scriptable Install System
« Reply #2 on: June 02, 2003, 02:18:42 PM »

I have to agree that the language is pretty weird. But as I have said before it has many examples. The installation program I have created in the dreams demo is a combination of 3-4 examples! And I don't even understand the language!
Maybe one day they'll upgrade NSIS to a real scripting language :) After all, they already have the language ready in WinAmp 3...


I don't know what compression algorithm innosetup is using but NSIS can use zlib or bzip2 which have (especially bsip2) very good compression.
InnoSetup uses zlib. But IMHO the problem isn't the compression method, but rather in the way the files are treated. Normally, each file is compressed individually, with its own compression dictionary, while the so-called "solid" archiving treats all the files as one big lump of data. Therefore if there are multiple similar files, the overall compression ration is much much better. The disadvantage is the decompression. Normally, you can extract individual files immediately, but in solid archive, all the preceding data have to be uncompressed to get to the requested file. Therefore it's suitable for installers (they decompress everything anyway), but it can't be used for example in a game engine :)
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #3 on: June 02, 2003, 10:58:06 PM »

Maybe one day they'll upgrade NSIS to a real scripting language :) After all, they already have the language ready in WinAmp 3...

OFF-TOPIC:I don't know what language that is but Winamp3 is a "dead software". It's full of bugs, it's slow and almost nobody uses it. That's the reason that nullsoft has almost stopped developing it. Also that's the reason they implement many of winamp3 main features (media library, video playback etc) in the winamp2.x versions (2.90 & 2.91). From what I know they have abandoned winamp3 and they are going to keep developping 2.xx versions.OFF-TOPIC

Anyway, I don't think that in the next years the NSIS installer is going to change it's scripting language. At least nobody is working on something like that as far as I know. It's not even in the "feature suggestion" list. And it would require a huge redesign of the program.

InnoSetup uses zlib. But IMHO the problem isn't the compression method, but rather in the way the files are treated. Normally, each file is compressed individually, with its own compression dictionary, while the so-called "solid" archiving treats all the files as one big lump of data.

The compression method can be a problem or an advantage. When for example, the NSIS team implement the 7zip compression algorythms in their program I expect it to create way smaller installers than with zlib and bzip2.
Logged
fl*p

Jerrot

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 690
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #4 on: June 02, 2003, 11:14:27 PM »

OFF-TOPIC:I don't know what language that is but Winamp3 is a "dead software".

Just got a new board and odnorf goes off-topic in the very first thread. :)
(Anyway - Winamp3 totally sucks by bugs!)

InnoSetup uses zlib. But IMHO the problem isn't the compression method, but rather in the way the files are treated. Normally, each file is compressed individually, with its own compression dictionary, while the so-called "solid" archiving treats all the files as one big lump of data.
The compression method can be a problem or an advantage.


I'm not sure if you got the point - sorry, if I just misunderstand you don't mind the next part. The compression method does not matter at all as long as the data get compressed file-by-file. Example: 3 times the same picture in 3 different directories. Inno SetUp would compress that 100K picture down to 30K - three times = 90 K. Useful would be to handle all 3 files as ONE big file to archive, this way all three pictures would take only about these 30K.
« Last Edit: June 02, 2003, 11:16:02 PM by Jerrot »
Logged
Mooh!

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #5 on: June 02, 2003, 11:20:24 PM »

Quote
I'm not sure if you got the point - sorry, if I just misunderstand you don't mind the next part. The compression method does not matter at all as long as the data get compressed file-by-file. Example: 3 times the same picture in 3 different directories. Inno SetUp would compress that 100K picture down to 30K - three times = 90 K. Useful would be to handle all 3 files as ONE big file to archive, this way all three pictures would take only about these 30K.

What I said is that if you used 7zip then one file would be 20kb (random smaller number, 7zip always compressing much better than zlib), so all three would be 60kb. Also 7zip supports solid archives, so the file would be 20kb.
Logged
fl*p

Jerrot

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 690
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #6 on: June 02, 2003, 11:38:41 PM »

Ah sorry, now I understand you... although (hehe):

I'm not sure this is going to work because I don't know, which of the programs - installer or packer library) decides about the final package. If the installer just says "pack that file!" and adds the packed result to it's installer archive, it's no progress at all, even if 7zip COULD do it.

It only works if the installer says "pack all these files and maybe split the final archive!".

As I'm not a "real" coder, I can't tell more about that....
Logged
Mooh!

Jerrot

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 690
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #7 on: June 02, 2003, 11:51:07 PM »

Ah, you spoke about the algorithm to be implemented, I thought of it using it like some DLL. Ok, ok, sorry...  8)

(But anyway - I really don't like to script for some installer. That's why I like Inno Setup + IS-Tool. Lazy jerrot, yeah!)


Logged
Mooh!

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #8 on: June 02, 2003, 11:54:38 PM »

(But anyway - I really don't like to script for some installer. That's why I like Inno Setup + IS-Tool. Lazy jerrot, yeah!)

WINDOWS USER REPLY: Who says that you have to script anything? It took me 2 hours to find out how to combine 3-4 different examples and change the graphics!

LINUX USER REPLY: Real man do it the hard way!
Logged
fl*p

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #9 on: June 14, 2003, 12:16:17 AM »

OK... let's make this thread on-topic again. :)

At http://www.spaceblue.com/venis/ there is a visual editor for NSIS with syntax hightlighting. And it seems that future versions are going to have some kind of wizards for easy creation of installers.

Ofcourse you should have NSIS installed, because this package is only the visual editor.
Logged
fl*p

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re:NSIS - Nullsoft Scriptable Install System
« Reply #10 on: June 14, 2003, 09:12:43 AM »

Great! But does it do anything else than syntax highlighting and compiling at the moment? I didn't find the "function wizard" and the faq says:

Question I do not see any Function Wizards in Venis 2.0.x? Where did it go?
Answer The Function Wizards were added in Venis 1.0.4. They are included to demonstrate a taste of the future development of Venis. Expect this feature to be added with much more power and flexibility.

Huh?  ???
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #11 on: June 14, 2003, 10:53:10 AM »

I am afraid that for now the most imortant (?) features are the syntax hightlighting and the compiling without have to drag & drop the script on the compiler's window.

From the FAQ I understand that this was a feature that it was partially (only as a demo) introduced into the old 1.04 version, and it's not yet in the 2.x versions.

Anyway, it's not a must-have tool, but it can be usefull for some people (it is for me!) and it's only 500kb. Maybe with the adittion of some wizards it will be a must-have tool. We'll just have to wait.
Logged
fl*p

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #12 on: August 15, 2003, 10:50:15 AM »

Venis 2.1 just released but... : 1)It's shareware & 2)It still doesn't have a wizard.

So, I searched and found another GUI for NSIS  that is much better IMO.
You can find it here http://www.geocities.com/hmsoftcr/nisedt.htm

It's free, it has a wizard to create installers very easily, syntax hightlighting for the scripts, a GUI for "installed options file" to create custom installers....etc
Logged
fl*p

kichik

  • Guest
Re:NSIS - Nullsoft Scriptable Install System
« Reply #13 on: September 12, 2003, 11:33:37 PM »

Some notes about NSIS:

  • bzip2 mode uses solid compression by default (can be compiled to not use it)
  • NSIS (and probably InnoSetup too) uses a data block optimizer. This optimizer makes sure the same file won't be compressed twice into the data block. Instead, it searches for that file in the data that have already been added and if found, just points to it instead of adding it again.
  • A newer and higher scripting language is planned for NSIS 3
Logged

odnorf

  • w00t?
  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 7
  • Offline Offline
  • Gender: Male
  • Posts: 1456
  • Lamp dog!
    • View Profile
Re:NSIS - Nullsoft Scriptable Install System
« Reply #14 on: September 13, 2003, 11:36:39 AM »

Thanks for the information Kichik  :) (Are you one of the authors of nsis? I am asking this because I have seen your nickname in the the developers list.)

Are there any written plans for the scripting language of NSIS 3, or there are just ideas right now?

I can also add that version 2.0 final will have LZMA support (a LZ variant created by Igor Pavlov, the author of 7zip).

Logged
fl*p
Pages: [1] 2  All
 

Page created in 0.03 seconds with 24 queries.