Dependency package conflict with aur package

Not sure if i am plain stupid or pacman is… :smile: maybe someone can give me a hint:
I’m using the lcms2-ff-git aur package which provides lcms2 with fast float plugin. This results in a different licencing that is reflected by the aur package.

The package has the required provides and conflicts sections set so it should be detected as a drop-in replacement for lcms2 by pacman.

When i try to install e.g. vlc pacman fails with a package conflict:

$ trizen -S vlc
:: Pacman command: /usr/bin/sudo /usr/bin/pacman -S vlc
resolving dependencies...
looking for conflicting packages...
:: lcms2 and lcms2-ff-git are in conflict. Remove lcms2-ff-git? [y/N]

Why does pacman try to install lcms2 although a drop in replacement is already there? :grimacing:

Because libplacebo specifically requires liblcms2.so=2-64. I would guess that you AUR package isn’t at that version so pacman tries to install one that is.

2 Likes

What magic did you do to find this information? (I assume you did not read through all possible dependencies on your own?)

But i’m curious:
lcms2 does not provide a liblcms2.so in that “version” - or i don’t know how to read that version information…

I used pactree -r lcms2 and then found the branch that led to vlc. There was only one package there, libplacebo. Then I used pacman -Si libplacebo to see what it required.

It is in the provides for the package:

Repository      : extra
Name            : lcms2
Version         : 2.14-2
Description     : Small-footprint color management engine, version 2
Architecture    : x86_64
URL             : http://www.littlecms.com/
Licenses        : MIT
Groups          : None
Provides        : liblcms2.so=2-64
Depends On      : libtiff
Optional Deps   : None
Conflicts With  : None
Replaces        : None
Download Size   : 214.36 KiB
Installed Size  : 674.96 KiB
Packager        : Felix Yan <felixonmars@archlinux.org>
Build Date      : Mon 02 Jan 2023 04:22:29 PM CST
Validated By    : MD5 Sum  SHA-256 Sum  Signature
2 Likes

hm…but this is not defined in the PKGBUILD for the official lcms2 package…is there some automagic happening somewhere?

When i explicitely add this to the AUR PKGBUILD it works as it should:
provides=('lcms2' 'liblcms2.so=2-64')

2 Likes

Yes. From the PGBUILD man page on provides:

If the provision name appears to be a library (ends with .so), makepkg will try to find the library in the built package and append the correct version. Appending the version yourself disables automatic detection.

2 Likes

I only had a look at the arch wiki - this specific section is missing there :frowning:

memo to self: use man more often… :smiley:

2 Likes

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