Problem updating silverblue- openh264 related

Currently on Fedora 39, trying to upgrade to 41 but if I understand correctly I need to first upgrade from 39 to 40, then 40 to 41. Regardless, having trouble updating. Here’s the command I’m using via terminal

rpm-ostree rebase fedora:fedora/40/x86_64/silverblue

Here’s the response

error: Could not depsolve transaction; 1 problem detected:
 Problem: package noopenh264-0.1.0~openh264_2.4.0-1.fc40.x86_64 from @System conflicts with openh264 provided by openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264
  - package openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264 obsoletes noopenh264 < 1:0 provided by noopenh264-0.1.0~openh264_2.4.0-1.fc40.x86_64 from @System
  - package mozilla-openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264 requires openh264(x86-64) = 2.4.1-2.fc40, but none of the providers can be installed
  - conflicting requests

I receive the same error when trying to update through the GNOME Software application instead of terminal.
All help appreciated, thanks.

**full response and command

rpm-ostree rebase fedora:fedora/40/x86_64/silverblue
2 metadata, 0 content objects fetched; 788 B transferred in 2 seconds; 0 bytes content written
Checking out tree 30e9959... done
Inactive requests:
  langpacks-en (already provided by langpacks-en-4.0-13.fc40.noarch)
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora rpmfusion-free-updates rpmfusion-free rpmfusion-nonfree-updates rpmfusion-nonfree rpmfusion-nonfree-nvidia-driver copr:copr.fedorainfracloud.org:phracek:PyCharm google-chrome rpmfusion-nonfree-steam updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2024-03-12T11:45:42Z solvables: 3
rpm-md repo 'updates' (cached); generated: 2025-01-28T03:20:35Z solvables: 33676
rpm-md repo 'fedora' (cached); generated: 2024-04-14T18:51:11Z solvables: 74881
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2025-01-24T10:54:01Z solvables: 174
rpm-md repo 'rpmfusion-free' (cached); generated: 2024-04-20T12:11:51Z solvables: 422
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2025-01-24T11:12:28Z solvables: 88
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2024-04-20T12:18:23Z solvables: 194
rpm-md repo 'rpmfusion-nonfree-nvidia-driver' (cached); generated: 2024-12-17T10:59:50Z solvables: 17
rpm-md repo 'copr:copr.fedorainfracloud.org:phracek:PyCharm' (cached); generated: 2024-12-17T12:19:22Z solvables: 10
rpm-md repo 'google-chrome' (cached); generated: 2025-01-28T08:19:38Z solvables: 4
rpm-md repo 'rpmfusion-nonfree-steam' (cached); generated: 2024-12-02T07:45:38Z solvables: 2
rpm-md repo 'updates-archive' (cached); generated: 2025-01-28T04:11:39Z solvables: 70457
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: package noopenh264-0.1.0~openh264_2.4.0-1.fc40.x86_64 from @System conflicts with openh264 provided by openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264
  - package openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264 obsoletes noopenh264 < 1:0 provided by noopenh264-0.1.0~openh264_2.4.0-1.fc40.x86_64 from @System
  - package mozilla-openh264-2.4.1-2.fc40.x86_64 from fedora-cisco-openh264 requires openh264(x86-64) = 2.4.1-2.fc40, but none of the providers can be installed
  - conflicting requests

Have you layered some packages? You can do a reset before upgrading and then add the packages back.

It looks like packages are layered
rpm-ostree status
State: idle
Deployments:
● fedora:fedora/39/x86_64/silverblue
Version: 39.20241126.0 (2024-11-26T00:55:58Z)
BaseCommit: c2ab0518126dfae7b4805b20f17756fd42f8419cacd1c6b2acdf02132edc3e59
GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
LayeredPackages: langpacks-en mozilla-openh264 openssl rpmfusion-free-release
rpmfusion-nonfree-release

fedora:fedora/39/x86_64/silverblue
Version: 39.20241104.0 (2024-11-04T01:04:28Z)
BaseCommit: 0d4ade926d2270462dc9b0bcadf466f3a73e7c77d80283ee96f95c3b37223555
GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
LayeredPackages: langpacks-en mozilla-openh264 openssl rpmfusion-free-release
rpmfusion-nonfree-release
Suggestions on how to proceed?

So telling me packages may be layered got me on the right path. From there I was able to do some research Removing Layered Packages :: Fedora Docs
& uninstall the layered packages then I was able to upgrade to 40 then 41. So problem solved. Thank you for putting me on right path.

1 Like

Can you put your commands in 3 ``` signs at beginning and end?

You can also use the </> symbol in the edit window

Why would you layer these?

English langpacks should be preinstalled, openssl too, rpmfusion repos only make sense when they are used?

And mozilla-openh264 seems to conflict with the one from cisco that is preinstalled.

Just reset your system then rebase.

rpm-ostree reset && \
rpm-ostree rebase fedora:fedora/40/x86_64/silverblue --reboot

After the reboot rebase to f41

A full reset is no change here as you dont seem to have something important installed. And it will greatly speed up your updates.

But hell, I run Kinoite on Intel i3 Chromebooks and it works

Prior to F40, gnome-software included a plugin that would automatically layer langpacks-en. It’s not necessary anymore, but that’s where it comes from.

Using mozilla-openh264 would require utilizing rpm-ostree override remove to swap noopenh264 for openh264 from Cisco, but that’s best avoided if you’re not using the native Firefox version.

Also, there’s no need to rebase through F40; you can skip directly from F39 to F41. In theory, it should be possible to go from any version to any version, but you might run into e.g. bootloader issues if you push that too far.

No, please rebase one version at a time.

There are still “upgrade paths” and afaik these are scripts that change files in the mutable /etc.

They are only implemented one version jump afaik.

And no idea about the h264 thing, I would just install libavcodec-freeworld from rpmfusion and call it a day.

You should use RPM Firefox for security reasons. That is explained in other threads

Do you have any documentation for this? Even conventional Fedora supports skipping a release.

/var is unmanaged by ostree by design, so any migration would have to happen via some sort of oneshot script that runs on first boot, and I’m not aware of anything like that existing. /etc is handled by a three-way merge which would have the same end result from rebasing once or twice.

Yes I assume a oneshot service would override such files.

Source

Skipping major releases is currently untested and is thus not supported. You should update only one major release at a time, i.e. from Fedora 40 to 41, etc.

But I dont know about these upgrade paths in detail, that was an assumption

out of curiosity,

How does ostree make sure that a “one-shot” is really a “one-shot”? As you know, there are a lot of Fedora 41 images out there.

If I do a rebase from 40 to 41 today, I’ll have a completely different image than, lets say, last month. ostree is supposed to give you reproducible images. wouldn’t that defeat the purpose of ostree at all?

And what’s happens, if i rebase to a completly different DE as found in the fedora magazine? This would also be a unsupported scenario i guess

i Think, this makes only sense, if you have some local stuff, layered packages or a local initramfs for example.

Thanks, I didn’t realize that was the official line. I think it should typically work fine, but given that guideline, I won’t recommend it.