networkupstools / nut

The Network UPS Tools repository. UPS management protocol Informational RFC 9271 published by IETF at https://www.rfc-editor.org/info/rfc9271 Please star NUT on GitHub, this helps with sponsorships!
https://networkupstools.org/
Other
1.94k stars 346 forks source link

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

Open jimklimov opened 2 years ago

jimklimov commented 2 years ago

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)

jimklimov commented 2 years ago

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.

jimklimov commented 2 years ago

Check with comments in:

Loosely related to

jimklimov commented 3 months ago

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)

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