easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Requesting at least better dependencies list for ubuntu/mint

Open pinbuck opened this issue 2 years ago • 12 comments

EasyEffects Version

6.2.3

What package are you using?

Other (specify below)

Distribution

Linux Mint 20.3 (based on Ubuntu 20.04)

Describe the bug

I'm building easyeffects from source to use for pipewire/pipewire-pulse because there is no .deb/apt package available I had no luck with the other project JamesDSP that I picked first due to the lower amount of dependencies: https://github.com/Audio4Linux/JDSP4Linux/issues/29 ^ I also have a picture of the packages listed in this post for reference

I wanted to give easyeffects another shot today after repeated build/dependencies not being met related failures, I simply wanted to have a system-wide convolver for AutoEQ: https://github.com/jaakkopasanen/AutoEq (and maybe play around with the other effects)

src/meson.build:122:0: ERROR: Dependency "gtk4" not found, tried pkgconfig and cmake I'm stuck here for now because I can't locate either the package or place to retrieve this from.

Expected Behavior

I spent hours my first time building this trying to make sense of the dependency websites which are bloated and indirect on which exact apt package names are required. This would be solved by there being at least an aptitude package name-specific dependencies list, for example: sudo apt install lsp-plugins calf-plugins libtbb-dev ...etc. just as JDSP4 listed. I don't mind PPA's if it means definitely getting the latest package. under "install dependencies" for build from source. This would remove so much confusion for users like me who wanted to try this project.

...or for it to be a pre-built package on apt, just like pulseeffects, which would open many opportunities for debian/ubuntu/ubuntu-based users

Debug Log

Debug Log
user@mintbox:~/source/easyeffects$ meson _build --prefix=/usr
The Meson build system
Version: 0.61.1
Source dir: /home/nick/source/easyeffects
Build dir: /home/nick/source/easyeffects/_build
Build type: native build
Project name: easyeffects
Project version: 6.2.3
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
C++ compiler for the host machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the host machine: c++ ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
Configuring config.h using configuration
Program appstream-util found: YES (/usr/bin/appstream-util)
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Configuring com.github.wwmm.easyeffects.service using configuration
Program itstool found: YES (/usr/bin/itstool)
Could not find file LINGUAS in /home/nick/source/easyeffects/help
Program itstool found: YES (/usr/bin/itstool)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program msgfmt found: YES (/usr/bin/msgfmt)
Library zita-convolver found: YES
Library tbb found: YES
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Run-time dependency libpipewire-0.3 found: YES 0.3.45
Run-time dependency glib-2.0 found: YES 2.64.6
Found CMake: /usr/bin/cmake (3.16.3)
Run-time dependency gtk4 found: NO (tried pkgconfig and cmake)
src/meson.build:122:0: ERROR: Dependency "gtk4" not found, tried pkgconfig and cmake

Additional Information

I believe pipewire is ready on at least linux mint, I've been getting updates from this ppa: http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu focal main

pinbuck avatar Feb 06 '22 14:02 pinbuck

As each Linux distribution names their package following their own rules it is super hard to do what you ask. I have absolutely no idea about how Ubuntu, Fedora, openSUSE, Void, etc name their packages because I use Arch Linux on all my computers. Someone that uses Ubuntu or at least a close enough Debian based distribution is the only one that can help you to find the correct package names. Maybe one of the people that commented on #1000 and that were also trying to compile EasyEffects on Ubuntu may help. But considering that even today the repology output https://repology.org/project/easyeffects/versions shows no Debian based distribution with an EasyEffects package the necessary dependencies may not be available on these distributions.

Do you have a reason for not using a flatpak package https://github.com/wwmm/easyeffects/wiki/Package-Repositories#flatpak? In cases like yours it is the easiest thing to do. At least until your distributions has the necessary dependencies in its repositories.

wwmm avatar Feb 06 '22 15:02 wwmm

Based on google it seems they name the gtk4 development package as libgtk-4-dev https://askubuntu.com/questions/1374329/how-to-compile-a-gtk4-application-in-ubuntu-21-10. If you have that package in your repository I do not know... And Like I was saying before names change a lot from one distribution to another. Here on Arch Linux I need only one package named as gtk4.

wwmm avatar Feb 06 '22 15:02 wwmm

Do you have a reason for not using a flatpak package https://github.com/wwmm/easyeffects/wiki/Package-Repositories#flatpak? In cases like yours it is the easiest thing to do. At least until your distributions has the necessary dependencies in its repositories.

I considered flatpak at a point, however I want to stick to using my prefered package manager; the one that my distro comes with (apt for mint, aur for arch, etc.) I don't personally want flatpak, and I use only two appimages which are stopgaps for other better software. (im working on having 0 appimages,0 flatpaks, and keeping it that way)

i'm also unable to find gtk4 anywhere, it might arrive in the future, but im not going to go out of my way to find it. I'll ask around til I get the answer i need.

pinbuck avatar Feb 06 '22 16:02 pinbuck

In that case you may have more luck finding a PPA with the QT version that JamesDSP needs. If you do not have gtk4 in your repositories you probably do not have libadwaita too. And maybe other dependencies that EasyEffects will also need.

wwmm avatar Feb 06 '22 16:02 wwmm

Ubuntu 20.04 has dependencies that are basically 2 years old now. There is certainly no gtk4 there.

While gtk4 should be present in 22.04, I don't know if 22.04 will have libadwaita. So maybe the next mint release will have better luck building using distro packages.

vchernin avatar Feb 06 '22 16:02 vchernin

Well, it looks like 22.04 (Jammy) will also have libadwaita, albeit an older alpha version. While that wouldn't work as is (since libadwaita 1.0 is required), in theory you could patch the meson file and try building with older dependencies on 22.04.

But I have no idea about the other dependencies.

I wouldn't be surprised if at some point a dependency is updated, or a new one is added that isn't available on 22.04. A lot can happen in 2 years. But maybe at least some versions could be buildable.

This problem is very common with new apps on LTS distros, and are one of many reasons why Flatpak etc. exist.

vchernin avatar Feb 06 '22 17:02 vchernin

would it be easy to also make an appimage version alongside the flatpak version?

pinbuck avatar Apr 28 '22 22:04 pinbuck

would it be easy to also make an appimage version alongside the flatpak version?

Not for me as I do not know how even Flatpak packages are made :smile:. That being said if someone that knows enough about AppImage is willing to do one I do not see any problems. I just can't maintain such a package. Technically speaking I do not maintain any package. Although there are some build scripts in our repository the actual packages provided in distribution's repositories are built by their own maintainers using their own scripts.

wwmm avatar Apr 28 '22 22:04 wwmm

appimage packaging itself can be troublesome with glibc versions on older distro

while i agree someone putting in the effort to track down all the related package dependencies and version limitations for the readme building process would be helpful it would also signify which version of your distro would be the minimum requirement.

in many times, the released binary, package installer, or appimage will not work what does work is building/compiling on your (older) system from source.

i get it, ubuntu is a 2 year release cycle but there is legitimately no reason to upgrade just to maintain bleeding edge on older hardware.

arrowgent avatar Jun 06 '22 16:06 arrowgent

On Ubuntu 22.04 I got as far as gtk4 and then gave up.

sudo apt install libglib2.0-dev-bin itstool libzita-convolver-dev libtbb-dev pkg-config cmake libpipewire-0.3-dev libglib2.0-dev libgtk-4-dev libadwaita-1-dev libgtk-4-dev

The Meson build system Version: 0.63.0 Source dir: /home/timo/Software/easyeffects Build dir: /home/timo/Software/easyeffects/_build Build type: native build Project name: easyeffects Project version: 6.2.6 C compiler for the host machine: cc (gcc 11.2.0 "cc (Ubuntu 11.2.0-19ubuntu1) 11.2.0") C linker for the host machine: cc ld.bfd 2.38 C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0") C++ linker for the host machine: c++ ld.bfd 2.38 Host machine cpu family: x86_64 Host machine cpu: x86_64 Configuring config.h using configuration Program msgfmt found: YES (/usr/bin/msgfmt) Program appstream-util found: NO Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate) Found pkg-config: /usr/bin/pkg-config (0.29.2) Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources) Configuring com.github.wwmm.easyeffects.service using configuration Program msginit found: YES (/usr/bin/msginit) Program msgmerge found: YES (/usr/bin/msgmerge) Program xgettext found: YES (/usr/bin/xgettext) Program itstool found: YES (/usr/bin/itstool) Could not find file LINGUAS in /home/timo/Software/easyeffects/help Program itstool found: YES (/usr/bin/itstool) Program msgmerge found: YES (/usr/bin/msgmerge) Program msgfmt found: YES (/usr/bin/msgfmt) Library zita-convolver found: YES Library tbb found: YES Found pkg-config: /usr/bin/pkg-config (0.29.2) Found CMake: /usr/bin/cmake (3.22.1) WARNING: CMake Toolchain: Failed to determine CMake compilers state Run-time dependency rnnoise found: NO (tried pkgconfig and cmake) Message: The RNNoise library was not found. The calls to its functions will be disabled Run-time dependency libpipewire-0.3 found: YES 0.3.48 Run-time dependency glib-2.0 found: YES 2.72.1 Run-time dependency gtk4 found: YES 4.6.5 Run-time dependency libadwaita-1 found: YES 1.1.0 Run-time dependency sigc++-3.0 found: NO (tried pkgconfig and cmake)

src/meson.build:130:0: ERROR: Dependency "sigc++-3.0" not found, tried pkgconfig and cmake

A full log can be found at /home/timo/Software/easyeffects/_build/meson-logs/meson-log.txt

McNugget6750 avatar Jul 10 '22 13:07 McNugget6750

@McNugget6750 a package has been recently created for Debian https://github.com/wwmm/easyeffects/issues/1000#issuecomment-1165561392. Maybe it works in your Ubuntu version.

wwmm avatar Jul 10 '22 15:07 wwmm

dependency sigc++-3.0 found: NO (tried pkgconfig and cmake)

src/meson.build:130:0: ERROR: Dependency "sigc++-3.0" not found, tried pkgconfig and cmake

libsigc++ is needed.

To find what is needed, read the dependency list here

Note that pipewire-pulse is required, not only the plain libpipewire.

Digitalone1 avatar Jul 11 '22 11:07 Digitalone1