Simplifying updates for RPM Fusion packages (and other packages shipping their own RPM repos)

I’m sharing here a tip that I’ve just found to make it simpler for major update for RPM Fusion users on Silverblue and other rpm-ostree based variants.

The first time you install RPM Fusion, you should follow the official guide: Configuration - RPM Fusion

But then, once you have rebooted into the new deployment, you can run the following command to remove the “lock” on a specific version of the packages (this is essentially removing the fixed version packages and installing the non-versioned ones in the same transaction):

$ sudo rpm-ostree update \
            --uninstall rpmfusion-free-release-34.0.3.noarch \
            --uninstall rpmfusion-nonfree-release-34.0.2.noarch \
            --install rpmfusion-free-release \
            --install rpmfusion-nonfree-release

I have not tested that yet across a major version rebase, but I’m hopeful that this should work. This will at least keep those packages updated for a given version, which is already better than what I had before.

Note that this also work with the Google Chrome RPM package which includes its own RPM repo.

2 Likes

What repository do those version-less packages come from? I have the RPM-fusion repos installed with rpm-ostree like that, and I get this:

$ rpm -qa|grep fusion
rpmfusion-free-release-34-1.noarch
rpmfusion-nonfree-release-34-1.noarch
rpmfusion-free-obsolete-packages-34-1.fc34.noarch
$ rpm-ostree update --uninstall rpmfusion-free-release-34-1.noarch --uninstall rpmfusion-nonfree-release-34-1.noarch --install rpm-fusion-free-release --install rpm-fusion-nonfree-release
⠂ Receiving metadata objects: 1/(estimating) 49 bytes/s 196 bytes... 
2 metadata, 0 content objects fetched; 788 B transferred in 5 seconds; 0 bytes cReceiving metadata objects: 1/(estimating) 49 bytes/s 196 bytes... done
Checking out tree 6964fa7... done
Enabled rpm-md repositories: updates rpmfusion-nonfree-updates rpmfusion-free-updates rpmfusion-free fedora rpmfusion-nonfree fedora-cisco-openh264 updates-archive
rpm-md repo 'updates' (cached); generated: 2021-06-01T00:51:53Z
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2021-05-27T12:03:54Z
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2021-05-27T11:44:59Z
rpm-md repo 'rpmfusion-free' (cached); generated: 2021-04-25T18:10:08Z
rpm-md repo 'fedora' (cached); generated: 2021-04-23T10:47:57Z
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2021-04-25T18:36:02Z
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2021-02-23T00:49:00Z
rpm-md repo 'updates-archive' (cached); generated: 2021-06-01T01:33:47Z
Importing rpm-md... done
error: Packages not found: rpm-fusion-free-release, rpm-fusion-nonfree-release

@Siosm
thx for sharing this tip!

This is weird. Can you give us the output of rpm-ostree status?

The packages come from the rpm-fusion repository themselves.

Here it is:

bkhl@foxglove:~$ rpm-ostree status
State: idle
Deployments:
● ostree://fedora:fedora/34/x86_64/silverblue
                   Version: 34.20210531.0 (2021-05-31T00:37:11Z)
                BaseCommit: 4d5b7071e84ba156af8f6d333be77ac00244e24a824aa11a65501c49e90222ea
              GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
           LayeredPackages: NetworkManager-fortisslvpn-gnome chromium-freeworld emacs exfat-utils fuse-exfat git-lfs
                            gstreamer1-plugin-openh264 langpacks-en langpacks-en_GB langpacks-sv langpacks-th mozilla-openh264 net-tools
                            nextcloud-client nextcloud-client-nautilus qemu virt-manager wireguard-tools wl-clipboard
             LocalPackages: rpmfusion-nonfree-release-34-1.noarch rpmfusion-free-release-34-1.noarch

  ostree://fedora:fedora/34/x86_64/silverblue
                   Version: 34.20210531.0 (2021-05-31T00:37:11Z)
                BaseCommit: 4d5b7071e84ba156af8f6d333be77ac00244e24a824aa11a65501c49e90222ea
              GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
           LayeredPackages: NetworkManager-fortisslvpn-gnome chromium-freeworld emacs exfat-utils fuse-exfat git-lfs
                            gstreamer1-plugin-openh264 langpacks-en langpacks-en_GB langpacks-sv langpacks-th mozilla-openh264 net-tools
                            nextcloud-client nextcloud-client-nautilus qemu virt-manager wireguard-tools wl-clipboard
             LocalPackages: rpmfusion-free-release-34-1.noarch
                    Pinned: yes
bkhl@foxglove:~$ rpm-ostree update --uninstall rpmfusion-free-release-34-1.noarch --uninstall rpmfusion-nonfree-release-34-1.noarch --install rpm-fusion-free-release --install rpm-fusion-nonfree-release
⠚ Receiving metadata objects: 1/(estimating) 49 bytes/s 196 bytes... 
Receiving metadata objects: 1/(estimating) 49 bytes/s 196 bytes... done
Checking out tree cb5b9e7... done
Enabled rpm-md repositories: updates rpmfusion-nonfree-updates rpmfusion-free-updates rpmfusion-free fedora rpmfusion-nonfree fedora-cisco-openh264 updates-archive
rpm-md repo 'updates' (cached); generated: 2021-06-02T00:51:25Z
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2021-05-27T12:03:54Z
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2021-05-27T11:44:59Z
rpm-md repo 'rpmfusion-free' (cached); generated: 2021-04-25T18:10:08Z
rpm-md repo 'fedora' (cached); generated: 2021-04-23T10:47:57Z
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2021-04-25T18:36:02Z
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2021-02-23T00:49:00Z
rpm-md repo 'updates-archive' (cached); generated: 2021-06-02T01:46:41Z
Importing rpm-md... done
error: Packages not found: rpm-fusion-free-release, rpm-fusion-nonfree-release

My regular setup is the rollback here, and pinned because virt-manager stopped working they day after that, but that’s a story for a different post when I get to it.

Anyway, I get the same thing with only the free package installed as normal, but switched to your setup with both free and nonfree packages to check if it would make a difference.

Try instead:

bkhl@foxglove:~$ rpm-ostree update --uninstall
rpmfusion-free-release-34-1.noarch --uninstall
rpmfusion-nonfree-release-34-1.noarch --install rpm-fusion-free-release
–install rpm-fusion-nonfree-release

rpm-ostree update --uninstall rpmfusion-free-release-34-1.noarch --uninstall rpmfusion-nonfree-release-34-1.noarch --install rpmfusion-free-release --install rpmfusion-nonfree-release

V/r,
James Cassell

2 Likes

That did it, thanks.

Oh! My bad, I did not copy paste the package names and I had an unwanted - in there! :sweat_smile: Fixed now. Thanks!