DropSnorz / OwlPlug

Audio plugin manager. Small tool to manage VST / AU / LV2 plugins on Windows, MacOS and Linux.
https://owlplug.com
GNU General Public License v3.0
274 stars 11 forks source link

Offer Flatpak/Appimage package #203

Closed Redo11 closed 5 months ago

Redo11 commented 11 months ago

as mentioned in #175 , a distro independent packaging format would be appreciated. A flatpak, where anyone can install it with one click anywhere, would be preferable, it also uses less space, but an appimage is also quite alright. With newer systems in Flatpak, you need to worry less about sandboxing and virtualizing anything, you just need to use the permission system, which is quite simple. Appimage is just the app with a runtime bundled, so it just runs what it needs, regardless of distro.

Redo11 commented 11 months ago

It is a duplicate, but I wanted to bring the issue back on, since nothing happened since then.

DropSnorz commented 11 months ago

Hello @Redo11

Thank you for bringing this needs to the front.

I've already dig into packaging OwlPlug as a Flatpak distribution. Most of the remaining work is on build automation to generates and upload release artifacts.

There are more and more feedback from linux users over the years, so i'll try to prioritize this.

DropSnorz commented 6 months ago

Hello @Redo11,

I decided to move forward with AppImages. I made good progress on pakaging in https://github.com/DropSnorz/OwlPlug/pull/225, so there is high chances to see OwlPlug packaged as AppImage for the next release 😉

I will publish updates in issue #175 as this one is a duplicate.

derkrasseleo commented 6 months ago

Looking forward to testing OwlPlug on Arch, lmk when it's ready!

DropSnorz commented 6 months ago

Hello @derkrasseleo,

Thanks for your help. I've created a pre-release build if you want to test it before the 1.26.0 release. https://github.com/DropSnorz/OwlPlug/releases/tag/1.26.0-pre

Otherwise, the 1.26.0 should be released in February or March 2024.

derkrasseleo commented 6 months ago

I just tried running the AppImage on Arch with Gnome, and it seems to work fine, although I couldn't see/select the .lv2 via the file picker, entering the path seemed to work.(Running as sudo didn't make a difference) Other than that, it seems to work fine. Installing a plugin prompts for a directory every time, is that the default behavior? If so, it would be nice if the plugin automatically installed to the right directory.

Edit: I have an error: "installing plugin JC303 - Can't create installation directory"

DropSnorz commented 6 months ago

@derkrasseleo Thank you so much for testing ! 👍

although I couldn't see/select the .lv2 via the file picker, entering the path seemed to work.

Really strange issue, as it's should be the native file picker from the operating system. Maybe it's because hidden files (or files starting with .) are masked by default.

Other than that, it seems to work fine. Installing a plugin prompts for a directory every time, is that the default behavior? If so, it would be nice if the plugin automatically installed to the right directory.

This prompt only appears if checkbox "Save downloaded plugins from remote Source in a dedicated directory" is not checked in Options tab.

I have an error: "installing plugin JC303 - Can't create installation directory"

This error is often linked to permission issues. I've seen some installation with restrictive permission set on .lv2 folder for example. I will try to reproduce on my side to validate that it's not a issue with the JC303 package file.

derkrasseleo commented 5 months ago

I just tried running the 1.26.0 Appimage and got this error and a Dialog that says "Error during application context initialization"

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
4285  ERROR o.s.boot.SpringApplication - Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskRunner': Unsatisfied dependency expressed through field 'taskBarController': Error creating bean with name 'taskBarController': Unsatisfied dependency expressed through field 'dialogManager': Error creating bean with name 'dialogManager': Unsatisfied dependency expressed through field 'mainController': Error creating bean with name 'mainController': Unsatisfied dependency expressed through field 'crashRecoveryDialogController': Error creating bean with name 'crashRecoveryDialogController': Unsatisfied dependency expressed through field 'pluginService': Error creating bean with name 'pluginService': Unsatisfied dependency expressed through field 'exploreService': Error creating bean with name 'exploreService': Invocation of init method failed

Look like a dependency issue, but that shouldn't happen with an AppImage, right?

DropSnorz commented 5 months ago

@derkrasseleo Oops sorry, my mistake. I've introduced breaking changes between pre-release and release without handling the update properly.

There is a .owlplug directory in your home folder. Easy way to recover from this issue is to delete it. Only temporary data are stored here and it will be re-created during app startup 🙂

If it does not fix the issue i will need the full stack-trace (probably bigger cause i can't see the root cause)

derkrasseleo commented 5 months ago

Thank you, deleting .owlplug fixed it!

derkrasseleo commented 5 months ago

Just a short update: running OwlPlug with sudo from cli, I successfully installed Squeezer. I also tried JC303 and Tunefish4, which seemed to install fine, but I get an error in ardour (scan failed, invalid ELF header). Andes and OctaSine install and work fine.

It also crashes on BYOD when I scan my installed plugins with native discovery:

error: attempt to map invalid URI `/usr/lib/vst3/BYOD.vst3'
Interrupt signal received!
Stack Trace:
/usr/lib/vst3/BYOD.vst3/Contents/x86_64-linux/BYOD.so(+0x6b34e9) [0x791e916b34e9]
/usr/lib/vst3/BYOD.vst3/Contents/x86_64-linux/BYOD.so(+0x7619c6) [0x791e917619c6]
/usr/lib/vst3/BYOD.vst3/Contents/x86_64-linux/BYOD.so(+0x6b0251) [0x791e916b0251]
/usr/lib/libc.so.6(+0x3c770) [0x791edbf26770]
[0x791ec5e4d488]

Plugin crashing!!!

EDIT: Switching to "OwlPlug Scanner" fixed this.

DropSnorz commented 5 months ago

Hello !

Thanks for the feedback. I've noticed failures while scanning Tunefish4 plugin on linux few week ago too. I've opened an issue to investigate this: https://github.com/OwlPlug/owlplug-registry/issues/153

OwlPlug scanner is more stable than the default one, great to see that it's seems to work well on linux. Most difficulties to enable it by default comes from Windows antivirus and macOS native security features (#138)

DropSnorz commented 5 months ago

Closing this issue as AppImage package is now available with OwlPlug 1.26.0

I've opened issue #234 to prepare distribution on AppImageHub.