What about replacing the old Inno Setup-based installers with a new installer built using WiX?
Reasons:
Inno Setup is Delphi-based, which can lead to issues such as the one described here: https://groups.google.com/g/firebird-devel/c/JuorAbImTTk/m/4tDeIb4aBAAJ
WiX is a modern toolset that supports building both .msi and .exe installers.
WiX is already part of the Firebird build process (see the Dockerfile: https://github.com/FirebirdSQL/firebird/blob/master/builds/docker/windows/Dockerfile#L47). Removing Inno Setup would eliminate one more dependency.
And honestly, I’ve never met anyone who enjoys clicking through endless “Next, Next, Next” dialogs when installing software on Windows.
--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-deve...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/firebird-devel/76373391-17e3-46e1-a190-d0827a639f9an%40googlegroups.com.
What about replacing the old Inno Setup-based installers with a new installer built using WiX?
Reasons:
Inno Setup is Delphi-based, which can lead to issues such as the one described here: https://groups.google.com/g/firebird-devel/c/JuorAbImTTk/m/4tDeIb4aBAAJ
There's nothing in that thread that suggestions the false virus warnings is related to Innosetup or Delphi.
I think a bigger problem is that the installer is not signed.
Hamish
What about replacing the old Inno Setup-based installers with a new installer built using WiX?
Reasons:
Inno Setup is Delphi-based, which can lead to issues such as the one described here: https://groups.google.com/g/firebird-devel/c/JuorAbImTTk/m/4tDeIb4aBAAJ
Except that wasn't the problem, or at least not the whole problem (I have seen no conclusive proof it's due to InnoSetup, just hearsay and assumptions), some were caused by false positives on (very simple) Firebird binaries *in* the installer and its output, or URLs that you can visit from the installer, and some of the problems are also reported for the zipkit.
Assuming such problems will go away by switching installer frameworks is, I think, a bit naive (though I'd love to be proven wrong).
WiX is a modern toolset that supports building both .msi and .exe installers.
You talk as if InnoSetup is not maintained anymore. Replacing something just because it is not "modern" is generally a recipe for disaster, or for chasing the latest fads and changing what or how you do something every few months (I'm a bit hyperbolic here, to be clear).
Also, I think it would be helpful to explain *why* it would be beneficial to provide both an .exe and .msi (or only an .msi) installer; personally, I have a vague, but possibly wrong idea that an .msi might be beneficial for automated deployments or composite installers, but given I never do such deployments or build such installers, I might be totally off-base on that (and/or not aware how profound such benefit could be). I think I'm not the only one, so some more details could definitely help in deciding on this.
WiX is already part of the Firebird build process (see the Dockerfile: https://github.com/FirebirdSQL/firebird/blob/master/builds/docker/windows/Dockerfile#L47). Removing Inno Setup would eliminate one more dependency.
And honestly, I’ve never met anyone who enjoys clicking through endless “Next, Next, Next” dialogs when installing software on Windows.
I don't think that has anything to do with which toolset you build the installer, but with how you design the installer. And having to either write a commandline config for a silent install (as also supported by the current installer), or fill in dialogs in the installer is pretty much unavoidable if you want to give the user any control over where, how and what is installed.
Don't get me wrong: I've used Inno Setup for years (as well as other excellent tools made by the great Jordan Russell). But I think its time and place have long passed.
If everyone agrees, I’m willing to take on the task.
The first thing you should do is talk to the current maintainer of the current Windows installer (Paul Reeves), if only out of courtesy.
And then, maybe create a proof of concept or mock-up of the installer you envision, and list some real and detailed benefits for such change, if only to have a real discussion.
Also, please be aware, that replacing the installer goes beyond just building the thing, it also comes with maintaining it (which Paul has done for, I guess, the past 25 years), or at minimum handing over that responsibility.
Mark
PS I realize I come across as a negative naysayer here; my intention is primarily to say use caution, and come up with (or present) more solid arguments for replacing it.
-- Mark Rotteveel
I assume that you are proposing the WIX toolset (https://github.com/wixtoolset).
I have used WIX for more years than I care to remember and would support such a move. Like all installers, it is really just a way of building the install database used by Windows Installer and the discussion should really be about the most practical way of doing this and maintaining the install information. I doubt whether it can make much difference to "endless “Next, Next, Next” dialogs" as these are part of Windows Installer and all you can really do is select which dialogs are in use for your install.
To me the advantages of WIX are:
1. Open Source toolset.
2. The installer configuration files are XML fragments and thus are readily placed under version control and visible as part of source code repositories.
3. XML Fragments can be re-used on many different projects. For example, I have a standard XML fragment for including a Firebird Client DLL and support files in an a per application installer.
4. Building the install package is readily scriptable and needs only 7-zip to build a .exe installer.
5. You can build a Windows Install package on Linux by running the WIX tools under WINE. I make use of this with the Free Pascal cross compiler to build both Linux and WIndows executables and install packages (debs or rpc for Linux, msi for Windows) as part of the same script running on a Linux host. I have never tried it, but it should be possible to do the same with gcc.
Personally, I don't see any advantages of WiX over InnoSetup. XML-style configuration is probably the worst thing imaginable.
But updating InnoSetup is a good idea. Yes, version 6.0 and higher doesn't support WinXP, but modern versions of Firebird don't work on it either.
The only things worse than WIX are the alternatives.Jim Starkey
--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-deve...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/firebird-devel/f112272f-73ac-4c57-a8d3-e4a5fbb05bfcn%40googlegroups.com.
And… of course, I should have checked Google first.
Here’s an explanation that’s much better than mine: https://serverfault.com/questions/11670/the-corporate-benefits-of-using-msi-files
MSI packages are processed natively by the Windows Installer service (msiexec), which provides several built-in capabilities:
- Standardized practices
- Transactional rollback
- Self-repair
- Install-on-demand
MSI is the de facto standard for software deployment in Windows enterprise environments. System administrators prefer it because it is deterministic, automation-friendly, and integrates cleanly with enterprise management tools without requiring custom scripting. A few examples:
1) Consistent silent/unattended installation
msiexec /i app.msi /qn
msiexec /x app.msi /qn
There’s no need to document custom command-line switches.
Then, how do you customize an automated install?
Mark-- Mark Rotteveel