A-eq and a-comp fail on Manjaro XFCE

I’ve been using the official Ardour 5.12 binary downloaded from ardour.org for about 2 years on Manjaro XFCE with no problems. Now it seems some os update broke a-eq and a-comp and probably other a-effects also. I have another Manjaro machine not updated (last update 25th January) and there the problem does not exist so the cause definitely is some os package upgrade.

If I start Ardour from the commandline and try to add a-eq and a-comp to a track I get the following error messages:

lilv_lib_open(): error: Failed to open library /opt/Ardour-5.12.0/lib/LV2/a-eq.lv2/a-eq.so (/opt/Ardour-5.12.0/lib/LV2/a-eq.lv2/a-eq.so: undefined symbol: __pow_finite)

lilv_lib_open(): error: Failed to open library /opt/Ardour-5.12.0/lib/LV2/a-comp.lv2/a-comp.so (/opt/Ardour-5.12.0/lib/LV2/a-comp.lv2/a-comp.so: undefined symbol: __expf_finite)

My question is: Is this possibly a os library mismatch caused by a new library version dropping features that these plugins use. If so will this make these plugins on 5.12 fail on other distros also when they upgrade to newer library versions.

I will be using 5.12 maybe a year more waiting for version 6 to mature and I’m considering options for continuing use of 5.12. If this problem is unfixable I need to use another older distro for audio work or drop using a-effects.

ldd a-eq.so

    linux-vdso.so.1 (0x00007ffd629c8000)
    libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f041e3a4000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f041e1de000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f041e1bc000)
    libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f041e112000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f041e0cb000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f041dffd000)
    libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f041dfc3000)
    libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007f041dfbe000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f041df94000)
    libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f041df84000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f041df77000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f041de37000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f041de20000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f041de06000)
    librt.so.1 => /usr/lib/librt.so.1 (0x00007f041ddfb000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f041dcb5000)
    /usr/lib64/ld-linux-x86-64.so.2 (0x00007f041e715000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f041dc85000)
    libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007f041dc7c000)
    libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f041dc67000)
    libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007f041db63000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f041db5e000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f041db56000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f041db51000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f041da27000)
    libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007f041da02000)
    libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f041d990000)

The issue is introduced with the 2.31 version of the GNU C Library.
From https://lists.gnu.org/archive/html/info-gnu/2020-02/msg00001.html

* The <math.h> functions that round their results to a narrower type
  now have corresponding type-generic macros in <tgmath.h>, as defined
  in TS 18661-1:2014 and TS 18661-3:2015 as amended by the resolution
  of Clarification Request 13 to TS 18661-3.

In other words, you’ll have to re-compile the plugins, to work with glibc >= 2.31.
The plugins should not have used those functions to begin with, but that’s another matter. I’ll fix that.

OK, thanks for the info :slight_smile:

Any chance of a official recompiled fixed 5.12 ? There’s some way to go before version 6 has the same stability as 5.12.

No, 5.12 is final. There was also no rebuild for the libfontconfig compatibility issue.

Besides…

Ok, I understand.

I’m aware of the release of 6 pre1, but stability is the most important feature for me, so I will jump onboard not sooner than 6 months from now maybe later. In the meantime I will be testing version 6, but doing all serious work on 5.12 that has been time tested and proven stable :slight_smile: I’ve used many DAW’s and I think the best version of any DAW is always the one before the major feature upgrade. This rule has served me well :slight_smile:

Maybe now is the time to start tinkering with Ardour source myself.

Have you tried running a system update on Manjaro? " pacman -Syu". I had this problem in Arch about a month ago and submitted a bug report and they recompiled Ardour against the current libraries. I have Manjaro installed but don’t use it that often but I do keep it updated. The other day when you mentioned this on another post, I booted into Manjaro and opened a project in Ardour that uses a-plugins. All was fine. I’m pretty sure the problem has already been fixed.

a-plugins are awesome.

2 Likes

is relevant here, at least for builds to be distributed.

I’m pretty sure Manjaro uses a lot of packages from the Arch repos. It just takes them a little longer to put them up. This is the comment from the Arch page for Ardour 5.12-14
upgpkg: ardour 5.12-14: Rebuilding against glibc 2.31, as some internal plugins otherwise fail (FS#65504).
If it’s still not working for you after you update maybe your mirror is out of date. Alternatively you could head over to this page and there is a link to download package from mirror.
https://www.archlinux.org/packages/community/x86_64/ardour/

Thanks for the info. I will probably drop the official 5.12 binary and start to use the one from Manjaro repo. I might also try to use x42’s fix and build my own version. And there are good plugins I can use in place of a-plugins. A-plugins are great if you need to share a session between users on different operating systems.

There are definitely lots of great plugins available. Robin Gareus has the x42-plugins which are probably what you need. I like tap-plugins for the reverb and lsp-plugins seem to be quite popular and also swh-plugins. Just look it up in a search engine and you can find lots of recommendations.

You could also get an Ardour6 https://nightly.ardour.org/ (demo is fine, use gcc5 ABI) and copy the a-plugins from there.

Something like:

sh ~/Downloads/Ardour-6.0.pre1.*-x86_64-gcc5.run --noexec --target /tmp/a6
cd /tmp/a6
tar xf Ardour_x86_64-6.0.pre1*.tar
# make a backup
sudo mv /opt/Ardour-5.12.0/lib/LV2 /opt/Ardour-5.12.0/lib/LV2.bak
# and copy new plugins 
sudo mv Ardour_x86_64-6.0.pre1.*/lib/LV2 /opt/Ardour-5.12.0/lib/LV2
# cleanup
cd
rm -rf /tmp/a6

That’ll also give you a-expander (and updated harrison XT plugins) :tada:

Thanks :slight_smile: I was wondering if that was possible because the plugins seems to use a lot of shared libraries. I will give that a try :slight_smile:

@CraigPid I started using a-plugins just about a year ago because my friend (on windows) and I (on Linux) work on the same Ardour sessions. I have my favourite set of alternate plugins and I routinely install: x42, invada, lsp, mda, swh, tap, zam, zita, eq10q, noise repellent and dragonfly reverb on my new computers.

@x42 Thanks :slight_smile: Copying a-plugins from Ardour 6 pre1 to Ardour 5.12 worked.

For the record here is how you can do this on Linux:

  • Install official Ardour 5.12 binary downloaded from Ardour.org
  • Download Ardour 6 nightly from: https://nightly.ardour.org/ Select: Linux, 64bit, Optimized, Demo, GCC5.
  • Following commands assumes the file name is “Ardour-6.0.pre1.78-x86_64-gcc5.run”. The download name changes every day so edit following commands accordingly.
  • Give execute rights to the binary: chmod 755 Ardour-6.0.pre1.78-x86_64-gcc5.run
  • Uncompress the executable archive: ./Ardour-6.0.pre1.78-x86_64-gcc5.run --tar xf
  • Uncompress tar archive: tar xf Ardour_x86_64-6.0.pre1.78.tar
  • Ardour files can now be found in directory: Ardour_x86_64-6.0.pre1.78
  • Copy (as root) all files from the following directories to corresponding directories in Ardour 5.12 a-plugin dirs:

Ardour_x86_64-6.0.pre1.78/lib/LV2/a-comp.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-comp.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/a-delay.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-delay.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/a-eq.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-eq.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/a-exp.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-exp.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/a-fluidsynth.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-fluidsynth.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/a-reverb.lv2/ /opt/Ardour-5.12.0/lib/LV2/a-reverb.lv2/
Ardour_x86_64-6.0.pre1.78/lib/LV2/reasonablesynth.lv2/ /opt/Ardour-5.12.0/lib/LV2/reasonablesynth.lv2/

Edit: I didn’t notice x42’s extract and copy instructions but only after writing this :slight_smile:

1 Like

It’s also ridiculously easy to build Ardour on Manjaro/Arch. Just go to the AUR section on the Arch Linux website and under packages search for ardour-git, download the snapshot, extract the files and run “makepkg -si” in a terminal in that folder. It will install any missing dependencies, build the package and ask if you want to install when it is done.

Ubuntu users will soon hit this same problem with release 20.04 LTS. It seems to have glibc version 2.31.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.