josh-richardson / cadmus

A GUI frontend for @werman's Pulse Audio real-time noise suppression plugin
GNU General Public License v3.0
2.09k stars 55 forks source link

Sane Packaging for Zip #15

Closed thebitstick closed 4 years ago

thebitstick commented 4 years ago

Related to #14 since it only contains x86_64 libraries, but the main topic for this issue is: the Zip release is basically just a torn-apart AppImage.

I attempted to run the cadmus binary outside the Zip directory it gave this error:

[20309] Error loading Python lib '$HOME/Downloads/libpython3.6m.so.1.0': dlopen: $HOME/Downloads/libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

with $HOME being substituted for my actual home directory

There are too many hard-linked libraries. That's expected for an AppImage but not a Zip release. I understand that you can't expect the user to automatically have the exact same libraries, but that's that dependency listings are for. If AUR packaging (#6) is a hope for the future, it can't be built with third-party libraries included.

josh-richardson commented 4 years ago

The zip is actually generated by zipping up the output directory from fbs, which is the build system used in this project. The associated hard linked binaries are generated by fbs too. Indeed, if you move the Cadmus binary outside of the directory in which you extracted the zip file, it won't run - as you say, because it depends on many local libraries.

I'm not opposed to creating an alternate installer/install scripts for a compiled version of Cadmus which uses libraries & prerequisites installed on the local system rather than bundling them, but it's not a high priority for me at the moment. The version currently on the AUR which extracts the appimage is sufficient for the time being in my eyes - that said, I'm always open to PRs.

josh-richardson commented 4 years ago

I don't plan to move away from fbs as a build system for Cadmus, but I'm happy to accept PRs which would generate a differently packaged zip file as part of the build & release process.