MantisBT - Doomseeker
View Issue Details
0003292Doomseeker[All Projects] Suggestionpublic2017-10-04 22:512018-10-01 04:39
Microsoft Windows
0003292: Microsoft Windows packaging (Windows Installer)
This is a parent issue for proposed packaging improvements for Microsoft Windows.
See comments for discussion and feedback.
No tags attached.
related to 0003237closed WubTheCaptain Non-free files and copyright issues in source archive 
Issue History
2017-10-04 22:51WubTheCaptainNew Issue
2017-10-04 23:18WubTheCaptainNote Added: 0018439
2017-10-04 23:18WubTheCaptainStatusnew => feedback
2017-10-04 23:23WubTheCaptainNote Edited: 0018439bug_revision_view_page.php?bugnote_id=18439#r11054
2017-10-04 23:25WubTheCaptainNote Edited: 0018439bug_revision_view_page.php?bugnote_id=18439#r11055
2017-10-04 23:54WubTheCaptainRelationship addedparent of 0003237
2017-10-05 00:26Blzut3Note Added: 0018441
2017-10-08 01:32WubTheCaptainNote Added: 0018480
2017-10-08 01:32WubTheCaptainStatusfeedback => new
2017-10-08 01:32WubTheCaptainStatusnew => acknowledged
2018-10-01 04:39WubTheCaptainRelationship replacedrelated to 0003237

2017-10-04 23:18   
(edited on: 2017-10-04 23:25)
Yesterday, I proposed to Zalewa and Blzut3 about making improvements to the way Doomseeker is distributed and packaged for Microsoft Windows operating systems. (macOS is to be followed later.) As of time of writing, it's an idea in the backlog with no time goals.

I've proposed Doomseeker to be distributed as a Windows Installer (.msi file). There are benefits and cons to this approach. (Acknowledgement to Zalewa for the list.)

Some good things about this suggestion:

  • Installers (.exe or .msi) are treated to be common on Windows for installing software. They are typically downloaded from the Internet. Typically, there is no package management available on Windows (besides Windows Store).

  • An installer for Doomseeker could allow the user to choose if they'd like to exclude any engines from the install.

  • Portable installations could be more feasible without packaging a clumsy "doomseeker-portable.bat".

  • Unzipping a portable archive can be unfamiliar especially to less tech-literate users.

  • Doomseeker uses at least three seperate directories to store data. There is currently no easy way to remove a portable installation of Doomseeker on Windows. An uninstaller could offer an option to purge.

  • Installers may be code signed for integrity and trust.

  • Windows Installers (MSI) could be installed by a system administrator to all computers in the local network, also silently without user interaction.

  • If the install with a Windows Installer fails, it will be rolled back instead of leaving up with a potentially broken install. Same goes for updates (although Doomseeker's Mendeley updater already handles roll backs).

  • Downloading and installing Doomseeker could be made easier via Windows Store.

  • We could create Start Menu shortcuts automatically for the executable and uninstalling.

Some points against this suggestion:

  • It could turn into a "glorified unzip", which brings little benefits for extra maintenance effort.

  • Engine plugins in Doomseeker are fairly lightweight. It's possible to disable querying their master servers in configuration, thus choosing engines during installation is of little benefit.

  • Extra steps need to be taken to ensure WADs are also not deleted if Doomseeker's configuration files also reside in the same directory.

  • It may not be worth the effort.

  • As time of writing, there's only two developers/maintainers (Zalewa, Blzut3) working on Doomseeker (plus myself). I'm working mostly on Unix-like systems and do not have a dedicated Windows machine. Maintenance effort and time is shared on multiple operating systems between Windows, GNU/Linux and macOS operating systems.

  • MSI files require code signing. They will refuse to install on a third-party PC if they're unsigned, leaving the user with a "Windows protected your PC" message.

  • Code signing certificates can cost upwards of hundreds of US dollars per year.

  • I don't know yet if Windows Store has censorship policies or costs for software listed there.

There's different ways to create an installer for Windows: WiX, Inno Setup or NSIS to name a few. WiX creates .msi files, which is an officially supported installation method by Microsoft. Inno Setup and NSIS create .exe installers/extractors.

I propose WiX and MSI to be used for installers. MSI allows the networked installs, repairs, uninstalls and roll backs on failure. They support patch-releases (merge modules). It can check if required dependencies are installed on the system, and optionally install them if not present. It can compare GUIDs to check which files need to be replaced, instead of extracting all (a possible problem with unzipping).

Zalewa has said to me privately via email to have "learned NSIS once and the syntax was fairly easy and you could create installers quickly with it".

Is this new, proposed approach beneficial to Doomseeker? More research for steps to be taken and feedback is required.

2017-10-05 00:26   
Given the state of CPack in CMake 3.9 it might be worth evaluating if it's MSI generation capabilities are adequate (see CPackWiX). While there's still some work to do most of the install rules are in place so the current Hg should be good for doing this evaluation.

Failing that my preference is also towards WiX if we're going to do installers.
2017-10-08 01:32   
I would also like to try making sure Windows binaries can be compiled with MinGW instead of Visual Studio.