Skip to content

Investigate and make use of Windows Installer code in NUT for Windows codebase #1485

Open

Description

@jimklimov

Did not touch this yet, no idea what we have or how to use it. This state is something to change :)

UPDATE: See also: https://wixtoolset.org/ (used in those recipes)

Activity

  1. jimklimov commented on Aug 11, 2022

    @jimklimov
    MemberAuthor

    Now build-mingw-nut.sh has a couple of routines to do a recursive walk to fetch many (open-source third-party) DLLs from mingw build environment. In the end they are dumped to bin dir (for drivers and tools), with links added later into sbin dir per needs of system daemons, because run-time DLLs must be near EXE (if not in system paths).

    This logic can be extracted to standalone script to use in package (or other bundling) preparation.

  2. jimklimov commented on Jun 12, 2024

    @jimklimov
    MemberAuthor

    One stumbling block with making sense of older recipes was the use of GUIDs in them. Per sources like:

    ...such component GUIDs effectively encode the full packaged path to installed file (whatever version), to the point that "*" or "\*" might be used for WIX to generate one unambiguously. They should not be updated for newer releases of the component files, if they land to the same location. There are also product GUIDs that should differ for each release (each build from separate source revisions?) and can also be generated by an asterisk. So one big headache less here.

    There is also a recently revived effort for WixEdit GUI editor to help with the package recipe maintenance:

    ...and a number of other editors (mostly plugins for Windows-based IDEs) listed at https://robmensching.com/blog/posts/2007/11/20/wix-editors/ (old post, regularly updated) and https://www.installsite.org/pages/en/msi/authoring.htm (in WiX section)

    Also took a quick look at other popular options, e.g.:

  3. added this to the NUT 2.9 milestone on Dec 5, 2025
  4. jimklimov commented on Dec 24, 2025

    @jimklimov
    MemberAuthor

    A very promising example of using WiX Toolset for multiple optional sub-package installation is at https://github.com/virtio-win/virtio-win-guest-tools-installer

    In that case its scripting is geared towards Fedora or compatible systems, and Wine for some systems probing, but that should not be a big problem. Probably we can also spin this up on Appveyor CI to package natively from Windows, using artifacts from https://github.com/wixtoolset/wix/releases (or maybe not, as we have a 1hr timeout for builds there anyway, which we randomly often exceed; perhaps a GHA job would fare better whether to package the tarball from Appveyor, or do the whole dance in mingw - maybe need to add the capability in existing jobs that build on lots of platforms including mingw on Debian/Ubuntu).

    Side note is that now there is an Open-Source Maintenance Fee applied to the project, although per early terms it has practical effect only for revenue-generating users who download binary builds from the project. Self-compilation, distro packages, etc. are also exempt. Details at https://github.com/wixtoolset/wix/blob/main/OSMFEULA.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions