chocolatey-packages icon indicating copy to clipboard operation
chocolatey-packages copied to clipboard

nirlauncher not creating shims for ~80 programs

Open dtgm opened this issue 8 years ago • 8 comments

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.

dtgm avatar Mar 16 '16 17:03 dtgm

  • 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:

  1. 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
  2. Overwrite 32-bit programs with 64-bit version. Installs 199 shims + NirLauncher.exe shim = 200 shims

Which should be default? 1 or 2?

dtgm avatar Mar 16 '16 17:03 dtgm

Also, this package could really use conflicts/replaces/provides tags once that becomes available or some logic in handling conflicting packages.

dtgm avatar Mar 16 '16 17:03 dtgm

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.

dtgm avatar Mar 16 '16 17:03 dtgm

Why would you install both?

ferventcoder avatar Mar 16 '16 18:03 ferventcoder

Ah, you could generate ignore files depending on the architecture. This is widely used.

ferventcoder avatar Mar 16 '16 18:03 ferventcoder

.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.

dtgm avatar Mar 16 '16 20:03 dtgm

Fair enough.

ferventcoder avatar Mar 16 '16 20:03 ferventcoder

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

majkinetor avatar Oct 07 '16 10:10 majkinetor

The nirlauncher package is no longer maintained in this repository, so going to close out this issue.

gep13 avatar Sep 12 '23 13:09 gep13