Archive: NSIS 1.7b test


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


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

Re: NSIS 1.7b test
That CallInstDLL is very cool :) but i have one stupid question:
What is MBCS support?

-Fritz


MBCS = Multi-Byte-Character-Support (for Unicode Characters).


i had no problems with my projects ...
it works fine


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.


Outstanding, your changes save 1kb for me!
Shall I merge into and release 1.7b2? :)

-Justin


Sure thing :)

Oh.. I forgot to remove dealWithIcon and doChildSize from UI.C, but otherwise, yeah, go for it!

Cheers!

Dave.


What exactly does that mean?

Made CRC not check the first 512 bytes, for better compatibility with virii and with digital signing.
better compatibility with virii??

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


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


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.

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:


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


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


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

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

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

What exactly does that mean?

okok

then my .htm file is the wrong version this parts are not in there ...


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


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.


thanx
thanx a lot - I'll try adding this functionality to the
next version of spimp wizard (credited to u ofcourse!)