GyanD / codexffmpeg

Support for https://www.gyan.dev/ffmpeg
1.47k stars 109 forks source link

Winget shared build installation is broken #154

Open pyorot opened 1 week ago

pyorot commented 1 week ago

See explanation:

When installed via installer, symlinks for the exe files are created in "%LocalAppData%\Microsoft\WinGet\Links", and this directory is then added to the current user path variable (not the machine path). The issue is that the exe, when run, will be the symlink. The exe tries to locate the shared dll files from its launch directory and if not found then via searching the path. The launch directory will be "%LocalAppData%\Microsoft\WinGet\Links" and the dlls are not referenced there. Windows does not automatically search the target directory of a symlink, so the dlls are never found because they can't be found via the combined local user + machine path string.

Just encountered this problem myself and wonder what can be done about it…

GyanD commented 1 week ago

This needs to be addressed by Winget. My package contents just form a passive payload. There's no installer or script included.

See https://github.com/microsoft/winget-pkgs/issues/103471 and https://github.com/microsoft/winget-cli/issues/2711

pyorot commented 4 days ago

Oh that's cringe; I had no idea. I can at least update that reddit thread with this info tho. Would it make sense then to stop releasing a shared build on winget since it just doesn't work out of the box?

GyanD commented 3 days ago

The issue has been fixed in Winget. See comments starting at https://github.com/microsoft/winget-cli/issues/2711#issuecomment-2403267707

pyorot commented 3 days ago

Good timing :O. Have you submitted an updated manifest?

GyanD commented 3 days ago

That's upto the package maintainer @SpecterShell

SpecterShell commented 3 days ago

That patch will be applied to the package validation pipeline after WinGet client 1.9 stable is generally available, after which I'll update the manifests ;).