Not sure if i am plain stupid or pacman is… 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 conflictssections 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?
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.
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
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.