- NSIS Discussion
- NSIS 1.7b test
Archive: NSIS 1.7b test
justin
25th November 2001 20:17 UTC
NSIS 1.7b test
Been working on nsis 1.7b.. changed a lot, so it might have broken a lot, so i'm not quite ready to even put it on firehose.net/nullsoft.com yet. So alas, here's something for us to all test.
http://1014.org/shiz/nsis17b.exe
- Mostly MBCS support in exehead and compiler.
- Made !ifdef'd blocks out ignored (for all commands other than ones starting with !)
- Made nsisconf.nsi not overwritten in installer.
- Added GetFullPathName
- Added more config.h options, moved MAX_INSTALL_TYPES to NSIS_MAX_INST...
- Added CallInstDLL (using EW_REGISTERDLL)
- Removed GetFullDLLPath, replaced it with more generic SearchPath (which can be used for non-DLLs).
- Optimized fileform.c (GetCompressDataFromDataBlock etc) to be smaller
- Trimmed more from zlib, down to 34kb with nearly all features (excluding XP and logging support) on. THIS NEEDS TESTING. :)
- Lots of other small changes.
I wouldn't recommend distributing installers made with this, but if they seem to work right they probably do (watch out for files getting extracted improperly, etc).
-Justin
felfert
26th November 2001 03:23 UTC
Re: NSIS 1.7b test
That CallInstDLL is very cool :) but i have one stupid question:
What is MBCS support?
-Fritz
Koen van de Sande
26th November 2001 18:10 UTC
MBCS = Multi-Byte-Character-Support (for Unicode Characters).
crish
26th November 2001 18:12 UTC
i had no problems with my projects ...
it works fine
eccles
28th November 2001 21:41 UTC
I've played around with it a bit and I haven't found any problems, although seeing all the changes in zlib scares me... :)
Starting with 1.67 I've been playing about with some optimisations to reduce some more size... Well now I've merged in the changes to 1.7b from firehose.net... See what you think - here's the changed files.
Ta.
Dave Laundon.
justin
28th November 2001 22:34 UTC
Outstanding, your changes save 1kb for me!
Shall I merge into and release 1.7b2? :)
-Justin
eccles
28th November 2001 23:03 UTC
Sure thing :)
Oh.. I forgot to remove dealWithIcon and doChildSize from UI.C, but otherwise, yeah, go for it!
Cheers!
Dave.
petersa
29th November 2001 08:46 UTC
- Made !ifdef'd blocks out ignored (for all commands other than ones starting with !)
What exactly does that mean?
Joost Verburg
29th November 2001 14:31 UTC
Made CRC not check the first 512 bytes, for better compatibility with virii and with digital signing.
better compatibility with virii??
crish
29th November 2001 16:47 UTC
hmmh first i thought that the reboot parameters are directly
for having a action like do reboot
but its only for having the action when the system will reboot
when aving an option like copyng dll after reboot then it would be
nice to have also the possibility to reboot the system
maybe its already included but its not described somewhere
or im not able to find it ...
F. Heidenreich
29th November 2001 17:44 UTC
Hi Crish,
there is no REBOOT command in the current NSIS 1.7b but according to kichik, reboot is coming in 1.7.
Regards,
~ Florian
kichik
29th November 2001 20:22 UTC
Quoted, I am honored!
This is a quote from http://www.nullsoft.com/free/nsis
1.7b
Mostly MBCS support in exehead and compiler.
Made CRC not check the first 512 bytes, for better compatibility with virii and with digital signing.
Made !ifdef'd blocks out ignored (for all commands other than ones starting with !)
Made nsisconf.nsi not overwritten in installer.
Added GetFullPathName
Added more config.h options, moved MAX_INSTALL_TYPES to NSIS_MAX_INST...
Added CallInstDLL (using EW_REGISTERDLL)
Removed GetFullDLLPath, replaced it with more generic SearchPath (which can be used for non-DLLs).
Optimized fileform.c (GetCompressDataFromDataBlock etc) to be smaller
Added Reboot, IfRebootFlag, SetRebootFlag
Added WindowIcon command so you can turn off the icon in the window.
Trimmed more from zlib, down to 35kb with nearly all features (excluding XP and logging support) on. THIS NEEDS TESTING. :)
Lots of other small changes.
Joost Verburg
29th November 2001 20:35 UTC
I got the quote from the NSIS page too, but I still have no idea why the first 512 will not be checked.
Made CRC not check the first 512 bytes, for better compatibility with virii and with digital signing.
This will make it a lot more unsafe I think, is there an option to disable this :confused:
justin
29th November 2001 23:43 UTC
Not CRCing the first 512 bytes isn't very unsafe. The first 512 bytes are primarily the EXE header and PSP, and if they are corrupted, the installer will likely fail before it gets a check to CRC itself. TRy randomly screwing with the first 512 bytes of a nsis installer and see what happens.
As for compatibility with virii, I think it's best that people's first experiences with NSIS installers are it telling them that they have a virus.
Again, the first 512 bytes, if corrupted, probably aren't going to effect the install process much.
Prove me wrong if you disagree =)
-Justin
liquidmotion
30th November 2001 01:57 UTC
justin,
NSIS is coming along to be one of the sweetest programs available. I am only waiting for the day that I will be as good at programming as you are so I can convert my GUI into C++ instead of VB.
keep up the good work :)
Joost Verburg
30th November 2001 07:28 UTC
Originally posted by justin
Not CRCing the first 512 bytes isn't very unsafe. The first 512 bytes are primarily the EXE header and PSP, and if they are corrupted, the installer will likely fail before it gets a check to CRC itself. TRy randomly screwing with the first 512 bytes of a nsis installer and see what happens.
As for compatibility with virii, I think it's best that people's first experiences with NSIS installers are it telling them that they have a virus.
Again, the first 512 bytes, if corrupted, probably aren't going to effect the install process much.
Prove me wrong if you disagree =)
-Justin
So digital signing modifies the first 512 bytes, and now it's still possible to use the installer in this situation?
And a virus can corrupt anything with changing the first 512 byte? Then, there is no problem I think :)
crish
2nd December 2001 13:29 UTC
Originally posted by kichik
Quoted, I am honored!
This is a quote from http://www.nullsoft.com/free/nsis
these are only options for replacing files - read the manual there u see it
F. Heidenreich
2nd December 2001 13:41 UTC
This is a quote from http://www.firehose.net/free/nsis/makensis.htm#Reboot
Reboot
Reboots the computer. Be careful with this one. If there is an error rebooting, this function sets the error flag and continues. If the reboot is sucessful, this instruction does not return.
IfRebootFlag [jump_if_set] [jump_if_not_set]
Checks the reboot flag, and jumps to jump_if_set if the reboot flag is set, otherwise jumps to jump_if_not_set. The reboot flag can be set by Delete and Rename, or manually with SetRebootFlag.
SetRebootFlag true|false
Sets the reboot flag to either true or false.
regards,
~ Florian
petersa
3rd December 2001 11:46 UTC
- Made !ifdef'd blocks out ignored (for all commands other than ones starting with !)
What exactly does that mean?
crish
3rd December 2001 16:39 UTC
okok
then my .htm file is the wrong version this parts are not in there ...
manav
4th December 2001 12:59 UTC
hey guys!
is there any way in which I can capture the messages that
makensis.exe displays in DOS made, and show them to the user
inside a VB application
to make sense of what I am talki' , download the
source files for my vb program from
http://manavmax.***********/spimp.html
petersa
5th December 2001 03:23 UTC
Hi Manav,
Run MAKENSIS.EXE using %COMSPEC% and output the output to a file. I don't use VB, but this is the command line:
%COMSPEC% /C MAKENSIS FILE.NSI > OUTPUT.TXT
Then get your program to load OUTPUT.TXT to a text box.
manav
5th December 2001 10:51 UTC
thanx
thanx a lot - I'll try adding this functionality to the
next version of spimp wizard (credited to u ofcourse!)