Unknown update error with libheif

,

Dear community

upon dnf upgrade I get this error notification

Error: Transaction test error:
  file /usr/lib64/libheif/libheif-libde265.so conflicts between attempted installs of libheif-hevc-1.15.1-2.fc37.1.x86_64 and libheif-freeworld-1.15.1-4.fc37.x86_64
  file /usr/lib64/libheif/libheif-x265.so conflicts between attempted installs of libheif-hevc-1.15.1-2.fc37.1.x86_64 and libheif-freeworld-1.15.1-4.fc37.x86_64

Reddit - Dive into anything has a related question.

Sorry, I do not know how to proceed from here. Any hints for a next move?

Many thanks!

Hi Ingli!

Since this seems to occur at many users, I suggest to file a bug against the component (libheif is the component) IF the files belong to the libheif package that is from our default repos: https://bugzilla.redhat.com/

However, if the files belong to the package libde265 or libheif-hevc, it should be filed at RPMfusion: ReportingBugs - RPM Fusion

On my systems, I saw that if rpmfusion is not enabled, libheif would be installed on its own with dnf install libheif. So if you have rpmfusion not enabled, you already know the issue is related to libheif, which means you can file at our own bugzilla (https://bugzilla.redhat.com/).

But on systems where rpmfusion is enabled, dnf install libheif automatically also installs the mentioned packages from rpmfusion. So if you have rpmfusion enabled, you have to check first to which package the corrupted files belong to (I cannot test at the moment): dnf repoquery <package name> -l → if the files belong to different packages, file against both.

However, at first, you could try dnf reinstall libheif libde265 libheif-hevc (I here assume you have these three installed, if I am wrong: reinstall only those you have installed)

2 Likes

Append install_weak_deps=False to /etc/dnf/dnf.conf, and yum update again.

Please do not do that. This command will affect all packages from all repositories you have on your Fedora (there is a reason for weak dependencies), and it does not solve the issue, but at the best bypasses it for once. Depending on your system and what you are using in which ways, disabling weak dependencies can cause many problems.

Also, it works only if you have installed the affected package as weak dependency (and if nothing is factually using it), which we do not know in all cases: if you have any package installed that does not only depend on the affected package as weak but hard dependency, this action will have no affect anyway.

Thanks very much for your advice. I’ve got the same issue here when I run yum update earily this morning UTC HKT, I modify the dnf.conf and install the latest updates, and It goes well so far, however, I’ll reset the config.

PS, I couldn’t find any libde265 or libheif-hevc pkgs at all while using rpm -qa | grep -i XXXX before I change the dnf.conf.
PPS, I upgraded to F37 from F29 all the way. I guess the old packages meet the conflicts.

I just reproduced the issue and reviewed the files and packages: The issue is related to the rpmfusion packages: libheif-hevc and libheif-freeworld

This means, the problem lies in a conflict between libheif-hevc and libheif-freeworld: if any package wants to install or update one of these two as hard or weak dependency WHILE the other is already installed OR both are already installed installed, the install will break because of the conflict.

Please file a bug against the component at rpmfusion bugzilla: ReportingBugs - RPM Fusion

I have not yet used the bugzilla of rpmfusion: if you can add multiple components, add both libheif-hevc and libheif-freeworld. If not, focus at least on one, or if you have the time, file against both.

However, although being a bit probabilistic, you could also open a ticket on our Fedora bugzilla (https://bugzilla.redhat.com/) against the component libheif because any Fedora that has rpmfusion enabled (which are a lot) will have a broken installation/update once installing/updating the libheif package from our own default repositories. So the relation to our own libheif package is that our package “officially” contains the rpmfusion packages as weak dependencies.

Further, if you do that, please cross-link all pages so that everyone who ends up on one page also gets the links to the other: rpmfusion bugzilla ticket(s), fedora bugzilla ticket, this ask.fp topic.

Until the issue is solved, I suggest to do dnf update with dnf update --exclude=libheif* to exclude libheif* from the update this time. However, with each update, check out first dnf clean all; dnf update before excluding the package, so that you find out when the issue is solved: exclusion is not a long term solution. I do not think the clean all will be necessary, but it will ensure that any cache or metadata that contains the error/conflict will be replaced by the fixed.

2 Likes

I’ve also just ran into the same issue while trying to do a dnf update

Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing ‘dnf clean packages’.
Error: Transaction test error:
file /usr/lib64/libheif/libheif-libde265.so conflicts between attempted installs of libheif-hevc-1.15.1-2.fc37.1.x86_64 and libheif-freeworld-1.15.1-4.fc37.x86_64
file /usr/lib64/libheif/libheif-x265.so conflicts between attempted installs of libheif-hevc-1.15.1-2.fc37.1.x86_64 and libheif-freeworld-1.15.1-4.fc37.x86_64

OS: Fedora release 37 (Thirty Seven) x86_64
Kernel: 6.2.10-200.fc37.x86_64

I have put it in our devel mailing list and informed the Fedora-sided maintainer of libheif informally. However, I still suggest to open the tickets as suggested above, which is the formally correct way and the one way that ensures that it does not get lost in the masses of emails we currrently have in our mailing lists for other reasons.

2 Likes

I opened 6646 – libheif prevents upgrade from F37 to F38 about this.

2 Likes

I was just informed in the mailing list that the issue was just fixed :slight_smile:

In a few days, sudo dnf clean all; sudo dnf update should solve the problem (the package will be in testing before it ends up in the stable updates that you get with dnf update by default).

Feel free to let us know if the issue persists after the above commands in 5 days.

Thanks @xvitaly for your support :slight_smile:

Chris

2 Likes

https://rpmfusion.org/FAQ#Broken_deps.2C_What_to_do_.3F

so you just need enable rpmfusion-free-updates-testing repo or wait until libheif-freeworld-1.15.1-5.fc38 be moved to rpmfusion-free-updates (more 2 or 3 days )

2 Likes

Thanks for letting us know. My original interpretation of the comment was that it has been already pushed to stable in rpmfusion. However, I suggest to not enable testing repositories on production systems unless the update is super critical. In any way, I would not enable it system wide.

So I suggest to wait a few days for the update to arrive in the stable updates.

You can upgrade just one package from the testing repo like this:

sudo dnf --enablerepo rpmfusion-\*-testing upgrade libheif-freeworld

I limited myself to the “not enable it system wide” comment to avoid the command :smiley: However, I still suggest to not do that unless there is explicit reason to hurry (for which I do not see a reason here). Getting used to using packages in testing should be avoided except it is ensured the users to know about the respectively possible impacts or if they explicitly work on testing systems.

Imho ask.fp is the wrong channel to propagate any testing package use. This is more about best practices towards the many average users and beginners that follow this channel (and that could adopt such approaches in more dangerous cases) - I agree that this one package is unlikely to cause trouble even in testing (but finally, the testing stage has always a reason).

1 Like

I agree about avoiding testing repos in general, but for those affected by a specific issue, there should be no problem to install updates solving the issue, saving hours of time, and collecting potentially important feedback which can be redirected to the involved developers.

After all, testing updates is not rocket science, and users who have managed to install Fedora cannot be completely ignorant, in addition everything is done voluntarily, and no one is forcing anyone to participate in testing.

1 Like

dnf install --enablerepo=pmfusion-free-updates-testing libheif-freeworld should be enough , i.e. just update from testing the package you want .

Thanks! This workaround fixed the libheif issue for me. Onwards to the next conflict!

Thanks for the fix, I thought I was the only one dealing with this issue.

Is it safe upgrading the system from Fedora 37 to Fedora 38 when updated without these currently conflicting packages?

I tried updating all packages before upgrading the fedora release, but I get this error message:

Interner Fehler:

Fehler beim AusfĂŒhren der Transaktion: Datei /usr/lib64/libheif/libheif-libde265.so kollidiert zwischen den versuchten Installationen von libheif-hevc-1.15.1-2.fc37.1.x86_64 und libheif-freeworld-1.15.1-4.fc37.x86_64 Datei /usr/lib64/libheif/libheif-x265.so kollidiert zwischen den versuchten Installationen von libheif-hevc-1.15.1-2.fc37.1.x86_64 und libheif-freeworld-1.15.1-4.fc37.x86_64
Sorry, that the message is in German. How do I resolve this?