OpenMPT 1.30 Automatic Update and Installer changes

Started by manx, December 29, 2020, 14:27:51

Previous topic - Next topic

manx

New Installer

OpenMPT 1.30 has a new installer. It is simpler and asks fewer questions during installation. Registering of file types is no longer an optional aspect of the installer. It will register file types unconditionally and let Windows handle the actual file association when a newly-registered file type is opened in Explorer. This is the recommended behaviour in Windows 10 and in contrast to the old installer also works correctly in multi-user environments. The new installer is now also provided for test builds and has been available for quite a while now (since 1.30.00.05-r13018 (2020-06-13)).

The multiple installers for different architectures and legacy systems are gone. A single installer will automatically install all OpenMPT executables that are suitable for your system.

The new installer also supports installing per-user instead of system-wide, which allows installing without administrator privileges.

The new installer does not support a portable installation any more. The point of a portable installation is to not touch any system-wide settings (in particular the Window Registry) at all. Please update your old portable installation with the portable zip archives.

OpenMPT should now also work on Windows 10 on ARM devices (like Microsoft Surface Pro X) natively, with both installer and portable zip archives. Due to lack of hardware we were not able to actually test this though.

The new installer has not been tested on Wine setups yet.

Automatic Updates

OpenMPT 1.30 also comes with a new automatic update mechanism. You will get notified about available updates as usual, but there will be an option to directly and mostly automatically install the update without having to separately download the update with a browser and then execute it. This will work for both, installer-based installs, as well as portable installs using the zip archives.

In case you are using the Development or Next update channels, you will get notified about newer versions more often now. This is because the new update check will also take into account the source code revision in addition to the OpenMPT version number.

The new automatic update mechanism is activated by default since 1.30.00.22-r13995 (2020-12-29)).

Automatic updates have not been tested on Wine setups yet.

Technical Details

Updates are built automatically by the automatic build infrastructure and signed with RSASSA-PSS-4096-SHA512 on the building host. The per host (and per local user) private keys are stored encrypted (by the local user password) in the Microsoft Software Key Storage Provider and never actually leave the system or the secure key store. The public keys are downloaded from 2 separate locations distinct from the openmpt.org server, in order to not allow a breach of the openmpt.org server to also affect the automatic updates. 2 separate key download locations are used in order to provide redundency in case one of them is unreachable. The update's signature is verified against the set of successfully downloaded signing public keys, and a single key must successfully verify. This allows for simple key revocation and updating of keys without having to install a separate update (as would be needed if the keys were shipped with OpenMPT itself).

Both installer and portable installation modes are supported for automatic updates. In the former case, the Inno Setup installer is launched silently, retaining all previous settings. In the latter case, the update is performed by a VBS script. In installer mode, Restart Manager is used to automatically close and restart OpenMPT by Inno Setup. In portable mode, OpenMPT is restarted by the VBS script, albeit without restoring previously opened modules. Automatic update is refused if there are currently openend unsaved modules.

There is a new setting "Install Updates automatically" which allows for (almost) silent automatic installation of updates that requires (almost) no user interaction. The only case that needs to require user interaction here is updating a system-wide installation of OpenMPT due to UAC (user access controls).

The keys use JSON Web Key format and the signatures use JSON Web Signature format.


manx

Updating

The new installer will update existing installations just fine. There is no need to uninstall first.