chocolatey-packages
chocolatey-packages copied to clipboard
nirlauncher not creating shims for ~80 programs
Since the program names are the same for 64 and 32 bit, only one will get created as a shim.... so ~80 or so programs don't have an associated shim generated.
Note that not all 32-bit programs have an associated 64-bit executable.
- 199 32-bit exes
- 83 64-bit exes
Confusingly, 1 of the 64-bit exes ends with "32": volumouse32.exe
and the 32-bit version omits the 32
: volumouse.exe
. That is the only exception. All the other 64-bit exes have the same program name as their 32-bit version.
Only 1 other 64-bit exe contains a number: nk2edit.exe
and the same name is used for the 32-bit version.
Probably should handle this with a few decision branches in installer:
- Allow 64 and 32 to coincide: rename all the 64-bit executables by appending 64 and changing 32 to 64 for volumouse32.exe to be consistent. Installs 199+83+1 shims = 283 shims
- Overwrite 32-bit programs with 64-bit version. Installs 199 shims + NirLauncher.exe shim = 200 shims
Which should be default? 1 or 2?
Also, this package could really use conflicts/replaces/provides tags once that becomes available or some logic in handling conflicting packages.
Need to allow only install of 32-bit programs
Since 32-bit and 64-bit programs are packaged in same ZIP file, 32-bit versions get overwritten by 64-bit always.
Installing only 32-bit is not currently possible with nirlauncher
package. Installer script needs to be modified to handle this.
Investigating how to handle conflict with individual packages
Looking at packages nirlauncher
and driverview
:
- 32-bit: nirlauncher.zip\NirSoft\driverview.exe
- 64-bit: nirlauncher.zip\NirSoft\x64\driverview.exe
- 32-bit: driverview.zip\DriverView.exe
- 64-bit: driverview-x64.zip\DriverView.exe
So this shouldn't be a problem, except when trying to remove the individual package when nirlauncher
is also installed. See previous comment.
Why would you install both?
Ah, you could generate ignore files depending on the architecture. This is widely used.
.ignore
files are an option and I've used this method in other pkgs, but I think that maybe I shouldn't have for situations like this.
I'm thinking best practice would be to remove unnecessary files if a user specifies only 32-bit as I probably shouldn't pollute tools
with unwanted files, bloating the install. And reserve using .ignore
files for things like included dependent exes where a generated shim is not desired.
Fair enough.
I fixed this by moving x64 programs one dir above overwriting x32 bit programs (only on 64bit platforms).
I also removed shims in favor of PATH. One shim is created only, for niraluncher.exe itself.
I added this to my repo so you can exlude it in the future from your ketarin jobs.
Ref: https://github.com/majkinetor/au-packages/blob/master/nirlauncher/tools/chocolateyInstall.ps1#L25-L29
The nirlauncher package is no longer maintained in this repository, so going to close out this issue.