Old 2nd November 2001, 23:48   #1
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
New Poll - Read! :)

after some debate, a question arose: what is the best installer scripting language? most likely it is NSIS, but i thought i would poll everyone to see what they think.

when the results are in, mkeeley and i will probably try to get a group of coders together to write the "ultimate gui" for the chosen scripting language.

think hard, and reply soon!

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 3rd November 2001, 01:08   #2
n_ick2000
Forum King
 
n_ick2000's Avatar
 
Join Date: May 2001
Location: -
Posts: 2,501
Send a message via AIM to n_ick2000 Send a message via Yahoo to n_ick2000
I have to say NSIS. I choose this because I really haven't tried anything else, but I think NSIS is the best one out there.

|
n_ick2000 is offline   Reply With Quote
Old 3rd November 2001, 02:57   #3
locnar42
Junior Member
 
Join Date: Oct 2001
Location: kansas city
Posts: 45
Send a message via Yahoo to locnar42
The other installer's I've used include InstallShield (v5, 6, & 2000), Ghost Installer (1.6), the VB setup project, and of course NSIS.

Every version of InstallShield is a beast. It does everything you want, everything you could ever want, and everything you don't want it to do. That's also the reason the last project I converted from InstallShield to NSIS went from a 5.8 MB file where you had to reboot at least once, older versions of Windows twice, down to a 1.7 MB file with no reboot typically required. One saving grace is the fact that it's the standard which everybody is accustomed to.

Ghost Installer is ok and they have a newer version out now which probably has some nice enhancements. It's a pretty barebones installer, and no source code so you are somewhat limited in what you can do.

The VB setup project is a dog. It sucks in everyway except to package something written in VB. At least they give you the source code to modify, but it's a PIA to do anything with it.

I think I've settled on NSIS for quite a while. It's small, easy to program, source is available, and out of the box does nearly everything I need it to (especially after I wrote the dialog plugin)

Hrmm, probably more than you wanted for a response, but thought I'd give you my take on what I've used.
locnar42 is offline   Reply With Quote
Old 3rd November 2001, 04:24   #4
dbareis
Member
 
Join Date: Apr 2001
Posts: 77
While I'm using NSIS I think the current scripting language is too cryptic with not enough generic commands (to many specific variations) For example to set text why not just have one command and specify the text "type" being set as a parameter.
The format of the documentation also does not make finding the right comamnd easy.

I like Ghosts XML and will have another look at that.

I noticed some posts a while back on alternative scripting language (for NSIS) which sounded interesting but at this stage I want to stick with mainsteream NSIS rather than a variation.

My 2 cents worth,
Dennis
dbareis is offline   Reply With Quote
Old 3rd November 2001, 04:41   #5
DuaneJeffers
Major Dude
 
DuaneJeffers's Avatar
 
Join Date: May 2001
Location: Winter Park, FL
Posts: 1,776
I like NSIS. Where else can you get feedback to the developer and you can create your own. Now, I think back to a post for a multiplatform NSIS. Why couldn't you guys create a C++ based NSIS scripting core. That way, whenever the downloader updates his/her version of NSIS, then all the program could do is read the C++ source and use that core in conjuntion with a NSIS DLL. But the downloader needs to install the source to use the full core. That way, when a new version is solidified, then you can do a full update.

Just an idea though.
-Duane

Website

Yeah, that's pretty much it. :-\
DuaneJeffers is offline   Reply With Quote
Old 3rd November 2001, 07:50   #6
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
Creating 'the' NSIS gui is hard, because there are 2 different GUI's required:
1) The scripting GUI. Allows easy editing of scripts. Much like what Slate Blue does right now.
2) The 'commercial' GUI which can do what WISE and InstallShield do: completely hide scripting from the user if he wants to, but allow it with the 1) editor.
I've used WISE instalmaker/builder/something (very confusing names). It offers better (!) compression than NSIS (on maximum), but the base package size is 150 KB, while NSIS' is only 36 KB
I was going to say: WISE supports patch-making, but we have VPatch for that (a GUI for VPatch will be released today)

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 3rd November 2001, 10:20   #7
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
i`ve tryed InstallShied. It`s total shit. I didn`t understand anything from that program some wizard apears there with things like: "create normal installer" or "divide installer into few files" (hope that comming guis (versions of nsis) would be able to make an installer divided into more than 1 file (for floppy disks) like old norton commander you put disk1 -> installing... "pip!!!" please insert disk2... atc.) however i think NSIS is the greatest installer ever. it`s small, easy, FREE, atc. i`m very glad that something like nsis exists, i don`t even imagine the world without it. bye
trace is offline   Reply With Quote
Old 3rd November 2001, 16:46   #8
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
sweet!

exactly the response i was looking for.

now i just need to gather some developers for the project. let the application process begin!

-peace-

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 3rd November 2001, 17:57   #9
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Exclamation

Unfortunately there's a bit more to it than just getting some programmers together.

You need to work out a functional spec, what features do you want to include? Is it going to be completely wizard/gui based with no ability to script or a mixture of the two. The latter being a much more complex proposition mainly due to the fact that NSIS scripting language isn't "structured" e.g. variable number of arguments, lines can span multi lines, lines can include code and comments, which therefore makes it difficult to parse with total success. Something like Ghost score well in that department as the script definition if stored in XML making it easy to parse (although apart from that it doesn't look very impressive).

You need to decide what language it's going to be written in, that might be down to which language the majority of the volunteers can code in. Also agree coding standards that everyone must stick to, it's no fun reading through code written in n different styles. I suppose at that time agree what sort of licensing it is going to have, freeware, open source...

When you've got the easy bits out of the way you need to work out how you're going to break the project up in order for multiple people to work on it. It's not enough just to think that you can simply share out the different screens, as in order to be able to do that everyone needs to know how they will hook together, file layouts, internal data structures... Project managing a team of programmers isn't easy even if each is working on a different program within a suite of programs, I know I do it, it's quite a few times more difficult when they're all working on the same program, even more so when working remotely.

So that's you taken care of for next week!
mkeeley is offline   Reply With Quote
Old 3rd November 2001, 19:23   #10
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
Teamwork is hard. My specs: Can do Delphi and Visual Basic. But I am being to dislike VB more and more, because I see how powerful Delphi is.
Deciding what to do is the next big proplem, like mkeeley says, you need to decide what the program should do.

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 3rd November 2001, 19:29   #11
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
yes it`ll be hard to organize a program developing on internet... but you give nothing for a try so go on it! i know c/c++, but only dos stuff. so i cannot help you with developing (for now). i`m learning win32api i`ve got a very good book so i hope i`ll be a good coder. i want to learn MFC also. but i can help you with features i have a lots of ideas how to make program better and easy to use...
keep in work you`re doing very good job

Koen van de Sande: are you listening to hardcore? (thunderdome atc...) i love that music... i was in belgium last week (i had worldchampionship artistic gymnastics in ghent 64place) however i bought so many hardcore cds that i couldn`t bring it home

Hardcore will never die!!! (slate blue also)
trace is offline   Reply With Quote
Old 3rd November 2001, 19:52   #12
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
trace: No I don't listen to hardcore.
And I was in Belgium too last week. Sat/Sun I was in Brugge, and Monday I was in Gent. Maybe we even saw each other

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 3rd November 2001, 21:07   #13
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
One thing you need to keep in mind when deciding on its functionality is that if you try and incorporate everyones wish lists it will probably turn out to be such a large project it may never actually be completed. You should probably go for what the average user requires, with the capability of expanding the features at a later date.
mkeeley is offline   Reply With Quote
Old 4th November 2001, 03:35   #14
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
so much to say, here goes:

to everyone: i can code in VB, and i'm learning delphi. i could also take care of our website, hosting, etc.

mkeeley: very good points; the project would be decided by the developers, and what they feel their skills are. if the group wanted a wizard and scripting support, yes the task would be harder. that is why the group would consist of good coders. if the majority wants a wizard only, then this would be much more simple and able to be completed in a much shorter time frame. of course, all of these things will be discussed and decided when the actual group of coders is formed. - we will try to incorporate the functions that are most requested. maybe we could add some sort of plugin engine that would allow more advanced users to add their own functions.

koen van de sande: you sound like a good coder, and i've seen some of your work. you will be a good addition to the team.

trace: you still might be able to help in script parsing if that is the route we choose. if not, you could help with ideas and support.

i really think we should give this a try, would be a good learning experience for everyone involved, especially me, if we decide to use Delphi instead of VB. nothing like pressure to help you learn a new language

let me know your thoughts, feelings, etc, and hopefully we can get this project underway!

-dan green-

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 4th November 2001, 03:36   #15
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
trace: i hope slate blue never dies too =) (almost 1600 downloads this week!)

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 4th November 2001, 03:41   #16
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Just to let you know I wasn't trying to put you off, just pointing out what may have been obvious.
mkeeley is offline   Reply With Quote
Old 4th November 2001, 03:44   #17
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
What I was thinking was that if it was completely gui/wizard based then save everything out as XML that would make parsing much easier than having to parse NSIS script
mkeeley is offline   Reply With Quote
Old 4th November 2001, 03:52   #18
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
i know you weren't putting me down

if it was put into XML, how would we pass it to the compiler? convert it into a reg. script, in a temp file, pass the temp file to the compiler, then delete the temp file? works for me. thx XML idea does sound more appealing.

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 4th November 2001, 03:56   #19
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
What I thought was you write out all the setup info from the gui/wizards to XML, obviously read that back in to repopulate everything when you open a project, then when you build generate the NSIS script from the XML.
mkeeley is offline   Reply With Quote
Old 4th November 2001, 08:07   #20
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
I think the XML file format is worth investigating - however, we should first look how VB/Delphi/C++ work with XML files. Haven't used them before. On the other hand, I did work a lot with INI files, which are more limited than XML files, but much easier to parse.
I believe there is a XML parser inside Delphi 6, I'll have a look.

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 4th November 2001, 10:08   #21
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
please can somebody explain me what is XML i thought it`s something like HTML, but from your talk about it i don`t think so.

liquidmotion: you`re right. this will be a good experience for all i`ve learned so many new english words last week...
i can help with the homepage too. i know: HTML, JavaScript, Flash5. So if you need to make some animations, JavaScripts(whole page fade in/out effect atc.), or i can make some pictures also. in CorelDRAW, CorelPhoto-paint. so in this things you can count on with me
trace is offline   Reply With Quote
Old 4th November 2001, 11:24   #22
prodangle
Major Dude
 
prodangle's Avatar
 
Join Date: Nov 2000
Location: Scotland
Posts: 718
XML is just basically a markup language for holding whatever data one wants. It is used on the web to hold database info, and XSL (extensible style sheets) are used to put the info out of the XML, slam it within pages, and send it to browsers as HTML. XML can be used to hold just about any info. It's also used for WMP7 and WA3 skins.

Have a look at http://www.w3.org/XML/1999/XML-in-10-points
prodangle is offline   Reply With Quote
Old 4th November 2001, 16:54   #23
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
As far as Delphi support for XML goes only Delphi 6 enterprise comes with it built in. However there's 3rd party stuff out there both free and commercial. Two free examples:

http://www.destructor.de/xmlparser/

Also at Project Jedi

http://www.delphi-jedi.org/

Haven't tried them so don't know how good they are.
mkeeley is offline   Reply With Quote
Old 4th November 2001, 17:58   #24
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
hi everyone... i was bored the whole day to day, so i`ve colected some pictures of me and my computer atc. so if there is anybody who wants to see such a things you can download it... hai

trace_fotos.zip

prodangle: thanx... now i know what it is (i think), but i don`t understand what role does it take in the nsis gui app? if it is too long to explain let it be, i`ll take a look on it later.

free your mind, trace
trace is offline   Reply With Quote
Old 4th November 2001, 18:10   #25
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
The idea is that because XML is structured it's easier to work with than a line of NSIS script. A simple example is that rather than having to chop up

BGGradient 0000FF 000000 FFFFFF

the XML file would have a "field" for each parameter.

So the idea is when you setup your project with the GUI/Wizards all those settings are written away to an XML file, when you re-open the project you use read the XML to get all those settings back. When you build your project you generate the script from the XML.

Hope that sort of makes sense!
mkeeley is offline   Reply With Quote
Old 4th November 2001, 19:30   #26
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
Lightbulb

oh! now i understand... yay that`s great. thanx.
let the xml control your mind bye bye, trace
trace is offline   Reply With Quote
Old 4th November 2001, 22:35   #27
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
sounds good. if we are going to be using delphi, which seems to be the consensus, it looks like i will be limited to management/web development/ideas.

i am looking into XML, as far as parsing is concerned. i really think this is the best way to go about doing scripts for the gui.

if you want, i can setup a new forum @ (http://www.morphedmedia.com/forums) dedicated to the new gui. let me know what you want me to do.

thanks a bunch Milton,

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 5th November 2001, 01:01   #28
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Apart from standard configuration such as app name, splash screen, folders... I think the following would be a good thing to aim for:

Installation
1. Full, standard and minimum installs
2. Find current version location from registry, ini file or by performing a file search
3. Option to create install log file
4. Ask user before overwriting option
5. Backup current files before overwriting option
6. Register file associations
7. Register DLL's/AciveX's
8. Create shortcuts
9. Reboot windows on exit option

Unistallation
1. Specify additional files and registry entries to be deleted during the uninstall.

Things To Run

If those features were implented it should cover 99% of installs, or thereabouts!
1. Specify things to run at startup, before installation, after installation, before uninstall, after uninstall and at shutdown.
With the option to ask the user if they want to, for example, Do you want to view the read me? Also if it should simply execute or execute and wait for completion.
mkeeley is offline   Reply With Quote
Old 5th November 2001, 01:37   #29
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Missed one (at least), write values to registry/ini files during install.
mkeeley is offline   Reply With Quote
Old 5th November 2001, 17:07   #30
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
All these options aren't going to fit onto one page - so we need to split it into multiple pages. Idea:

1) Program name, installer title, InstallDir and InstallDirRegKey, BackgroundGradient, etc, all the things not found in sections (possibly spanning 2 pages, with one being advanced).
2) Dialog-er page, you can select whether you want a license page. There should be other dialog-related settings here.
3) The Section page - specify all sections install types.
4) Putting in the files (possibly combined with section page?)
5) Compiler options (use UPX, SetCompress, etc) and a huge fat compile button.
6) Script Editor (perhaps).

These different pages could be implemented with Page Controls, but coding will get messy, because all controls are on one form. Using multiple forms might be better, by doing MDI which is always maximezed (you can have a tabbar, but the content is on different pages). Maybe we should just start designing a few of these pages in VB or Delphi? I'd like to use VirtualTreeView for the Section/File pages, because of it's flexibility.

Back to XML: The Delphi 6 TXMLDocument can parse XML files (read anyway). However, I would first suggest designing the classes which contain data at runtime, and worry about loading/saving later on.

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 5th November 2001, 17:19   #31
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
The URL for VirtualTreeView is: http://www.lischke-online.de and http://groups.yahoo.com/group/VirtualTreeview (with the latest version 2.6.5)
It's a bit hard to use at first, but very powerful.

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 5th November 2001, 17:58   #32
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
all these great ideas. *sweet*

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 5th November 2001, 18:10   #33
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Agree, page control isn't a good idea, for a start only one person can really work on the thing. Don't like the idea of MDI.

Personally I think a tree view down the left, list view in report mode on the right that shows files for the project. All options pages as modal dialogs. I've attached a simple mock-up to give you a better idea of what I mean.

Think things like set compression should be at a file level not project. Also think all file related bits should be in one dialog, that's how I've done it in my wizard (so I would think that), don't see the point making them go to different locations to pick the file and then setup it shortcut.

Not sure why you want to use a virtual tree view when you're only going to be using it for perhaps a dozen items, if it's just going to be used for section navigation.
Attached Images
File Type: gif mockup.gif (17.7 KB, 188 views)
mkeeley is offline   Reply With Quote
Old 5th November 2001, 18:20   #34
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Oh, if you meant that get all the screens going and then think about how to save and load, then if I were coding I definately wouldn't do that. I think you have to know how this is going to work, even if it's not coded, to be able to know how things should be stored internally.
mkeeley is offline   Reply With Quote
Old 5th November 2001, 19:07   #35
Koen van de Sande
Senior Member
 
Join Date: Mar 2001
Location: Holland
Posts: 269
I wanted to do those screens as to define what we want the interface to do. When coding you have to start differently. It's just that our views on the interface are very different (I think).
The treeview on the left is nice, I have it myself in TibEd. Then on the right, like you have your grid, you have all the options. Doing it inside a seperate form isn't very handy - you have to click, close, etc. It's much handier when it 'seamlesly' integrates. Perhaps that was the whole idea of Frames in Delphi? Mmm perhaps Frames might be the way to go. Everyone gets their own frame (every page/item in the tree).
But we have to make some sort of TNSISProject base class first, with child members, etc. Perhaps I should make the VPatch GUI opensource, it has something similar.

Koen van de Sande
Van de Sande Productions
TibEd.net | VPatch
Koen van de Sande is offline   Reply With Quote
Old 5th November 2001, 19:43   #36
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Frames don't work in the way you may be thinking. Nothing to do with multi-pages, they're a container, bit like a super panel, that you add you're controls to, the frame can then be used a bit like a composite component. But if you're thinking do that and then, say, add them to the pages of a notebook then you'll have problems linking them up to the toolbar and menu.

Having a dialog requires no more typing from the end user than if the form was "integrated", for example either way when you're adding a file you'll still want OK and Cancel options.

One program I've written in the past uses multiple forms shown in a form container. So my main form has the section side panel on the left and the frame container on the right in which you you create an instance of the forms in.
mkeeley is offline   Reply With Quote
Old 5th November 2001, 20:37   #37
trace
Member
 
Join Date: Sep 2001
Location: Hell
Posts: 65
oh delphi is nothing for me so i`ll be just the listener for this round. however if trying to explain how the interface shall be, make some picture of it. it`ll be more understable for all of us (i think) more people can write their feelings from it... bye (sorry my english)
trace is offline   Reply With Quote
Old 5th November 2001, 23:30   #38
liquidmotion
Smokes Two Joints
Beta Team
 
liquidmotion's Avatar
 
Join Date: Feb 2001
Location: SFBA
Posts: 3,680
Send a message via ICQ to liquidmotion
kinda sounds like the old slate blue: all on one form, seamlessly integrated.

For a good time: shup | stashbox | my homepage
liquidmotion is offline   Reply With Quote
Old 6th November 2001, 00:46   #39
mkeeley
Senior Member
 
Join Date: Oct 2001
Location: UK
Posts: 106
Never saw the old version of Slate Blue, but the main differnece is probably that it's completley gui/wizard based, you never normally see the script. When you want to amend a project it loads everything back up and you amend it visually.
mkeeley is offline   Reply With Quote
Old 6th November 2001, 14:09   #40
rainwater
Senior Member
 
Join Date: Aug 2000
Posts: 397
Send a message via ICQ to rainwater
You should check out ISTool. Its a script editor for Inno Setup. Its one of the best script editors I have ever seen (even though Inno Setup is a little bloated).

Rob
rainwater is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump