Archive: Announcement: New branch of NSIS, NSIS(lch), with new functionality!


Announcement: New branch of NSIS, NSIS(lch), with new functionality!
NSIS(lch) is a variant of the NSIS installer we all know and love. I've hacked in a bunch of new functionality for a project I needed, and because my bosses are swell guys, I've made the changes available to you!

Frequently Asked Questions about NSIS(lch):

(Or, questions that would be frequently asked, if anyone cared.)

What's different about NSIS(lch)?

There are a total of ten new script elements.

Two new "attributes": BrandingText and ReserveFreeSpace.

Three new callback functions: .onExit, .onInsufficientSpaceInstDir, and .onSufficientSpaceInstDir.

And five new functions: BroadcastMessage, CallExtensionDll, DebugBreak, ExitWindows, and SetDialogText.

I put the full documentation up here:

http://www.midwinter.com/~funkster/nsislch.html

Of course, it's also included in the installer.

What license is NSIS(lch) released under?

It's licensed under the same license as the original NSIS (the zlib license); however, since I did the work on it on company time, my bosses wanted to retain ownership, so there was a one-line addition to the license to reflect this.

Where can I get technical support for NSIS(lch)?

Ha ha ha! Oh, you kill me. Seriously, post a message on this here Winamp message board, and I (or somebody else) will probably be able to help.


Where can I get this incredible new thingy, whatever it is? It sounds exciting!

You bet!

http://www.midwinter.com/~funkster/nsislch144.exe

:D


Seriously, please post here if you find this useful, or whatever. I'm interested in whether or not anybody uses this.

Bon appetit,


larry


Great, I'm downloadin' now to see what it is like. I hope it is good.

-Duane


Now, after formally downloading it, I have a few questions.

1) I see a DLL file, What is that???
2) I don't understand the BroadcastMessage tag, what does it do (with out using Programming terms)???
3) What does LCH mean???

There will be a few more questions when I really get to use the program. But for now, it sounds good.

-Duane


1) If you're talking about extdemo.dll, that's a sample "extension DLL" for use with the new CallExtensionDLL function. It's used in the examplelch.nsi sample NSI script. C programmers can now write DLLs to add new functions to NSIS, without having to hack up the NSIS source.

2) Explaining the BroadcastMessage function without using programming terms... ain't gonna happen. Don't sweat it, like I said in the documentation, it's not particularly useful for most folks.

3) L C H are my initials.


larry


Im downloading it now - thanks much ;)


lookin lovely - but the one feature I liked about the Yaga installer was the I agree checkbox. Do you plan to release something that'll let us all use that (or even could you...) if it's difficult making it optional, Id love it even more if it was the only way (although I dont know how others might feel about that :D :D :D )

thanks a lot for releasing what you have anyway


:( I can't download it.

DNS error... (at South Korea. Bora.net )

show me the mirror link.

plz...


:)


my bosses wanted to retain ownership, so there was a one-line addition to the license to reflect this
Isn't that against the original license agreement?

possibly.
I assume that as the original program is owned by nullsoft, and no agreement has taken place to transfer ownership of said software, then they cannot retain any ownership rights, as they had none in the first place.

Of course, im not one on the legalities of this such stuff.


The change to the license is simply the insertion of this line below the existing copyright notice:

Modifications Copyright 2001 Yaga, Inc.
or words to that effect. I don't have it handy. Anyway, I ran it past our lawyer, and he said it was appropriate and legal and all.

Why sweat it? It's still the zlib license, and you can do with the software whatever you like.

BTW, I know, http://www.midwinter.com is down right now (actually it's up, it's just inaccessible due to a routing scroo-up); I'll get my variant put up somewhere else eventually.


larry

Are you gonna port the newest version to lch???


There are exactly two changes from NSIS 1.44 to NSIS 1.45:

I already found (and fixed) the second one, and the first one is apparently only a "potential" bugfix. But yeah, what the hey, I'll incorporate that fix and kick out a new release in a week or two.


larry

ExoticMandibles, the InitCommonControls change is just adding #include <commctrl.h> in declarations of exehead\main.c and InitCommonControls(); just after declarations of WinMain function of main.c .

But, NSIS 1.50 released and I will have to update my source code too (based on Edgewize, updated to match 1.45).


Since you posted, we got 1.50, and then in quick succession 1.51 - 1.55. I think I'm gonna wait until it's been at lest, oh, two days since a new release before I do my Big Hairy Merge. Besides, the machine I'd post it on has no chance of coming back online 'til next week anyway...


larry


Once you do your "Big Hairy Merge", Submit it to the NSIS Project House ( I'm the admin :D ). You can read more about it in the thread titled "NSIS Project House Coming Soon..." .

-Duane

P.s. I have to work on the PHP/MySQL Scripting :eek:


Updated to 1.55
I've sync'd up my branch of NSIS to version 1.55. Here's the list of changes from 1.44(lch):

Since the www.midwinter.com web server is still down, I've put it up on my personal web server at home. Be kind to my poor DSL line! :) The URL is:
http://www.funkopolis.com:8080/~lch/nsislch155.exe
(You can thank Pacific Bell DSL for that :8080 crap. They've blocked everybody's port 80 following the recent Nimda / CodeRed worms, sigh.)

Oh, and DuaneJeffers: You'll be happy to know that 1.55(lch) has the checkbox for the license agreement. Please feel free to put it on yer Der NSIS Projekt Haus web page thingy.


larry

Do you have a SourceForge Unix (login) Name??? I can add you to the project.

-Duane


I have added NSIS(lch) v. 1.55 to the following page
http://sourceforge.net/projects/nsisphouse .

-Duane


Re: Updated to 1.55

Originally posted by ExoticMandibles
I've sync'd up my branch of NSIS to version 1.55. ......
The uninstaller in NSISlch1.55 doesn't seem to work (or at least not on my either my win95, or WinXP system)

Scripts compile fine, as with NSIS 1.55 and 1.57 (official) but when I compile with NSISlch the Uninstaller always crashes with Unhandled exception in blah.exe: 0xC0000005: Access Violation as soon as I run it

I've tried commenting out differant sections of the uninstaller, but I can't narrow it down to a certain command that stops it from working. Can anyone else confirm the Uninstaller NSISlch155 creates doesn't work, or am I just missing something?

Sorry to hear it. I haven't seen it go by.

Could you make a tiny test case and send it to me / post it here? My email address is larry at hastings dot org.


larry


By the way: another user sent me email directly pointing out that the examplelch.nsi installer crashes immediately with 1.55(lch). That's because I included an older version of extdemo.cpp, which used a prototype extension DLL interface (which was radically different), and that was the version I built extdemo.dll from.

This is fixed, along with the (minor) bug of specifying the now-no-longer-defined ReserveFreeSpace. I was lazy and didn't create a new file, I just called it the same thing: http://www.funkopolis.com:8080/~lch/nsislch155.exe

If you care about extdemo.dll or examplelch.nsi, you should grab a fresh copy. Apart from that, the distribution is the same, and by not downloading a second copy you spare my poor DSL line :)

Enjoy,


larry


I've zipped up the files+script, and a copy of the installer created on my machine. It's at http://septor.screaming.net/massive_...5_testcase.zip if you want to take a look. (It's not that massive, only 223k :) )

Also, I should mention, I haven't tested it with NSIS155 (I thought I had, but I've only got 154, 156 and 157 here). The uninstaller created does work when created by NSIS154, 156 or 157 though.

Thanks a lot.

calum


Fixed it! And, it turns out, the uninstall was broken for everybody. Sigh. Sorry about that.

Once again, in my neglectful slacker ways, I just cut a new installer with the same name and all:

http://www.funkopolis.com:8080/~lch/nsislch155.exe
You can tell the difference, as this one is 1,233,774 bytes, was released today (Oct 15), and doesn't crash 100% of the time in the uninstaller.

For the record: it was my bug, in the quickly-hacked-together SleepBetweenStatements code. When installing, it needs to look in the install header; when uninstalling it needs to look in the uninstall header, as the install header is invalid. My previous code always looked in the install header, and that's why it crashed.

Sheepishly,


larry

Brilliant - works beautifully now. Thanks :p