Zandronum Chat @ irc.zandronum.com
#zandronum
Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003292Doomseeker[All Projects] Suggestionpublic2017-10-04 22:512017-10-08 01:32
ReporterWubTheCaptain 
Assigned To 
PrioritynoneSeverityfeatureReproducibilityN/A
StatusacknowledgedResolutionopen 
PlatformOSMicrosoft WindowsOS Version
Product Version 
Target VersionFixed in Version 
Summary0003292: Microsoft Windows packaging (Windows Installer)
DescriptionThis is a parent issue for proposed packaging improvements for Microsoft Windows.
Additional InformationSee comments for discussion and feedback.
Attached Files

- Relationships
parent of 0003237assignedZalewa Non-free files and copyright issues in source archive 
Not all the children of this issue are yet resolved or closed.

-  Notes
User avatar (0018439)
WubTheCaptain (developer)
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.

User avatar (0018441)
Blzut3 (administrator)
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.
User avatar (0018480)
WubTheCaptain (developer)
2017-10-08 01:32

I would also like to try making sure Windows binaries can be compiled with MinGW instead of Visual Studio.

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2017-10-04 22:51 WubTheCaptain New Issue
2017-10-04 23:18 WubTheCaptain Note Added: 0018439
2017-10-04 23:18 WubTheCaptain Status new => feedback
2017-10-04 23:23 WubTheCaptain Note Edited: 0018439 View Revisions
2017-10-04 23:25 WubTheCaptain Note Edited: 0018439 View Revisions
2017-10-04 23:54 WubTheCaptain Relationship added parent of 0003237
2017-10-05 00:26 Blzut3 Note Added: 0018441
2017-10-08 01:32 WubTheCaptain Note Added: 0018480
2017-10-08 01:32 WubTheCaptain Status feedback => new
2017-10-08 01:32 WubTheCaptain Status new => acknowledged






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2017 MantisBT Team
Powered by Mantis Bugtracker