Windows DMD installer

Nick Sabalausky a at a.a
Sat Jun 27 20:05:20 PDT 2009


"Vladimir Panteleev" <thecybershadow at gmail.com> wrote in message 
news:op.uv7lme01m02fvl at cybershadow...
> As recently posted by WB, we should get a Windows installer project going. 
> I think we should first discuss what this installer would contain, which 
> installer framework to use, etc.
>
> In my opinion, the Windows installer's goal is somewhat different than a 
> Linux installer. I've heard many people say that they'd love a simple 
> installer that installs them everything including a build tool, IDE, 
> debugger, etc., so perhaps it should allow installing more than just the 
> barebones DMD. However, we don't want to include things that many people 
> won't use either. Therefore, I was thinking that the installer could 
> download and install components (libraries, text editors/IDEs or plugins 
> for them, build tools) from the web if the user ticks some corresponding 
> checkboxes.
>
> Further ideas:
> * support Windows' "change" option in Add/Remove Programs to allow 
> removing, reinstalling and updating components
> * when installing an editor, associate .d files with it
> * adjust PATH to include DMD and any selected build tools
> * adjust DMD search paths to point to any additional libraries (Tango, 
> DSSS etc.)
> * DSSS "net install" integration? (show a checkbox list of libraries)
>
> Going further with this idea, we could remove DMD itself from the 
> installer and allow the user to install DMD1/DMD2 as a component, thus 
> creating a "meta-installer" to manage the D toolchain.
>
> As for the installer system: I'm familiar with NSIS and InnoSetup, both 
> are open-source. NSIS is extensible and can thus download files from the 
> Internet, but AFAIK InnoSetup can't (even though it has a more flexible 
> scripting language). Windows Installer is also used by some open-source 
> software like TortoiseSVN.
>
Some good ideas there. My pie-in-the-sky thoughts:

- It would be good to have these two presets in addition to 
choose-your-components:
1. All important stuff (Libs + Tools) including the GUI Tools
2. All important stuff (Libs + Tools) but without the GUI Tools

Rationale: Some people are into GUIs and some aren't. Some people already 
have their favorite GUI tools and others might not mind replacing them.

- It would also be good to have these three basic types of downloads 
(generated by some sort of script, of course):

1. A small net-only installer (ie downloads the latest components). There 
should be an option to keep or delete the unpacked downloads after install.

2. An installer packaged with the latest (at the time of packaging) 
components (but can still do a net-install though). This would be available 
in both "with GUI " and "without GUI" flavors. The "without GUI" can of 
course still do an optional net-install of the GUI tools.

3. A no-installer archive that is, to whatever extent possible, 
preconfigured to minimize manual post-extraction configuration, and includes 
well-written instructions for whatever followup steps are needed. This would 
be available in both 7z (best archive format, as far as I know) and zip (for 
people who have yet to join the 21st century and install an archive app that 
can do things like rar and 7z.)

Rationale: Some people like installers, some people hate them. But the 
people who dislike them should still be able to benefit from this all-in-one 
project. Some people want to be able to install offline (and may not always 
have a connection available), others don't care. Some people don't want to 
waste space on components that will eventually become an older version, 
others don't mind and like the sense of security from keeping around the 
installers for whatever they've installed.

Misc:
- FWIW, I've used NSIS in the past and liked it.

- Version control clients (including TortoiseSVN) might be good optional 
components (licenses permitting), since VCSs are used heavily in the D 
scene.

- The net-install capability should also be able to update it's internal 
list of components and defaults (ie without requiring a new version of the 
installer to be downloaded) since projects do sometimes get abandoned or 
replaced by a better alternative, etc.





More information about the Digitalmars-d mailing list