`OpenCL-ICD-Loader` seems to be the preferred provider for /usr/lib64/libOpenCL.so.1 and is thus conflicting with `mesa-libOpenCL`. OpenCL-ICD-Loader conflicts with ocl-icd but mesa-libOpenCL requires "ocl-icd(aarch-64)". This was observed with the daily Fedora Asahi Remix build for Fedora 41 but Fedora composes should behave the same way if I interpret https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20241214.n.0/logs/x86_64/buildinstall-Everything-logs/pkglists/ correctly. Note that OpenCL-ICD-Loader but ocl-icd is absent. Reproducible: Always Steps to Reproduce: 1. install Fedora Asahi Remix Fedora 41 / Rawhide build from https://fedora-asahi-remix.org/builds.html (upstream Fedora composes should behave the same) 2. dnf install mesa-libOpenCL Actual Results: Failed to resolve the transaction: Problem: conflicting requests ... - package mesa-libOpenCL-24.2.4-1.fc41.aarch64 from fedora requires ocl-icd(aarch-64), but none of the providers can be installed - package mesa-libOpenCL-24.2.8-1.fc41.aarch64 from updates requires ocl-icd(aarch-64), but none of the providers can be installed - problem with installed package - installed package OpenCL-ICD-Loader-3.0.6-1.20241023git5907ac1.fc41.aarch64 conflicts with ocl-icd provided by ocl-icd-2.3.2-7.fc41.aarch64 from fedora - package OpenCL-ICD-Loader-3.0.6-1.20241023git5907ac1.fc41.aarch64 from updates conflicts with ocl-icd provided by ocl-icd-2.3.2-7.fc41.aarch64 from fedora Expected Results: mesa-libOpenCL is installed
Hmm, I wonder how this happened. OpenCL-ICD-Loader is just a plain new package, not mentioned in any of the comps, I certainly didn't expect this :/ One thing we can do (imo) is a mesa change: - Requires: ocl-icd%{?_isa} + Requires: ocl-icd%{?_isa} or OpenCL-ICD-Loader%{?_isa} but I'd say OpenCL-ICD-Loader just shouldn't be pulled in by default by anything, it almost seems like somethings is requiring libOpenCL.so.1 instead of ocl-icd somewhere... Does anybody have any ideas? I have very limited availability till years end.
(In reply to František Zatloukal from comment #1) > > but I'd say OpenCL-ICD-Loader just shouldn't be pulled in by default by > anything, it almost seems like somethings is requiring libOpenCL.so.1 > instead of ocl-icd somewhere... > > Does anybody have any ideas? I have very limited availability till years end. It wouldn't surprise me if this is the case, as that's how our dependency generation works. As I said in the review bug, we need to switch over to a virtual provider system for this, like so in both ocl-icd and this package: Provides: opencl-icd-loader-impl%{?_isa} Provides: opencl-icd-loader-impl Conflicts: opencl-icd-loader-impl Then Mesa can be adjusted to the following: Requires: opencl-icd-loader-impl%{?_isa} Suggests: ocl-icd
(In reply to Neal Gompa from comment #2) > > Then Mesa can be adjusted to the following: > > Requires: opencl-icd-loader-impl%{?_isa} > Suggests: ocl-icd Err, the Suggests needs to be arched, so "Suggests: ocl-icd%{?_isa}"
The virtual provider would fix the conflict but I think `OpenCL-ICD-Loader` will still be pulled in as the provider for "libOpenCL.so.1*" (most likely via libavfilter-free). This should work but my understanding from https://bugzilla.redhat.com/show_bug.cgi?id=2330385 is that it's unintended. "Suggests: ocl-icd%{?_isa}" in mesa-libOpenCL might resolve the issue for the Fedora Asahi Remix kiwi image generation as it explicitly installs "mesa-libOpenCL". This won't work for Fedora composes as nothing pulls mesa-libOpenCL in. I don't see how this can be resolved unless rpm provides priorities for the "libOpenCL.so.1*" dependency. I suspect it prefers "OpenCL-ICD-Loader" over "ocl-icd" based on case sensitive alphabetical sorting.
FEDORA-2025-1d2ba9671c (mesa-25.0.3-1.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-1d2ba9671c
FEDORA-2025-52471ac786 (mesa-25.0.4-1.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-52471ac786
FEDORA-2025-52471ac786 (mesa-25.0.4-1.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.
(In reply to František Zatloukal from comment #1) > Hmm, I wonder how this happened. OpenCL-ICD-Loader is just a plain new > package, not mentioned in any of the comps, I certainly didn't expect this :/ > > One thing we can do (imo) is a mesa change: > > - Requires: ocl-icd%{?_isa} > + Requires: ocl-icd%{?_isa} or OpenCL-ICD-Loader%{?_isa} > > but I'd say OpenCL-ICD-Loader just shouldn't be pulled in by default by > anything, it almost seems like somethings is requiring libOpenCL.so.1 > instead of ocl-icd somewhere... > > Does anybody have any ideas? I have very limited availability till years end. Well, the Fedora rocm-opencl package recommends OpenCL-ICD-Loader (https://src.fedoraproject.org/rpms/rocclr/blob/f42/f/rocclr.spec#_126). If I use the RHEL9 repository from https://repo.radeon.com/rocm/ on Fedora 42 and install rocm-opencl-runtime, it pulls in ocl-icd as a dependency instead. Why is OpenCL-ICD-Loader preferred by the Fedora rocm-opencl package? Shouldn't *all* packages that require or recommend the Loader be adapted to follow what was done in Mesa and use a flexible dependency like (ocl-icd%{?_isa} or OpenCL-ICD-Loader%{?_isa})?