Bug 5931

Summary: Cannot upgrade Silverblue while rpmfusion-free-release is installed
Product: Fedora Reporter: Grey Nicholson <rpmfusion>
Component: rpmfusion-free-releaseAssignee: Nicolas Chauvet <kwizart>
Status: RESOLVED INVALID    
Severity: enhancement CC: leigh123linux
Priority: P1    
Version: unspecified   
Hardware: x86_64   
OS: GNU/Linux   
namespace:

Description Grey Nicholson 2021-02-24 16:16:09 CET
*Present behaviour*

Currently it's not possible to upgrade Silverblue to the next major release while RPM Fusion is installed (for example, rebasing from Silverblue 33 to 34).

When attempting to rebase, by running for example `rpm-ostree rebase fedora:fedora/34/x86_64/silverblue`, the dependency resolution fails like this:

```
error: Could not depsolve transaction; 1 problem detected:
 Problem: conflicting requests
  - nothing provides system-release(33) needed by rpmfusion-free-release-33-1.noarch
```

The workaround is to remove RPM Fusion, rebase, then reinstall RPM Fusion.

*Desired behaviour*

Ideally, you would be able to upgrade Silverblue while RPM Fusion is installed.

Currently, rpmfusion-free-release-33 depends on system-release version 33. Instead, it should depend on system-release version 33 *or later*. The same goes for rpmfusion-nonfree-release.

The .repo file from rpmfusion-free-release-33 (`/etc/yum.repos.d/rpmfusion-free.repo`) uses the `$releasever` variable in the repo URLs — "33" is not hardcoded anywhere. So after the upgrade to 34, the repo would point to the right packages for 34, and you'd automatically get the upgrade to rpmfusion-free-release-34.

I believe this would also make upgrading using GNOME Software work.

I'm not super-familiar with Fedora's packaging, so this may be impossible or nonsensical, and if so I'm sure you'll tell me!
Comment 1 Nicolas Chauvet 2021-02-24 19:56:06 CET
Well, that's an issue for silverblue.

Of course you could assume that you need to extract the rpmfusion*release rpm and only maintains the .repo files and GPG keys... But then it's just moving the problem since you will not be able to receive new updated "packages".

If a 3rd part "editor" cannot maintain it's configuration on ostree based distro (Silverblue or others), then it's a design issue from ostree.


Well, of course the alternative is also for use to maintain our own ostree distro...
Comment 2 Grey Nicholson 2021-02-25 10:32:50 CET
I'm sorry, I don't think I understand how this could be fixed by Silverblue.

I've installed rpmfusion-free-release in the usual way. Now I'm trying to rebase Silverblue, but this dependency is preventing rebasing.

The rpmfusion-free-release packages comes from RPM Fusion, and this dependency is specified by rpmfusion-free-release:

https://pkgs.rpmfusion.org/cgit/free/rpmfusion-free-release.git/tree/rpmfusion-free-release.spec#n20

I'm suggesting changing that line to `Requires: system-release >= %{version}` so that the dependency continues to be satisfied during a system upgrade.
Comment 3 Nicolas Chauvet 2021-02-25 11:16:08 CET
(In reply to Grey Nicholson from comment #2)
...
> I'm suggesting changing that line to `Requires: system-release >=
> %{version}` so that the dependency continues to be satisfied during a system
> upgrade.

Of course, this is incorrect. This will create an issue with normal fedora that otherwise does not exist.
(side note: normal fedora does not need this hack while upgrading, because they upgrade fedora/rpmfusion content in the same rpm transaction).

But this problem only hides the main one. As soon as you will be allowed to upgrade from rpmfusion-*-release, any other packages that you have installed might be broken.

The only way forward is to rebase silverblue along with rpm-ostree components. (including rpmfusion-free-release).
Comment 4 leigh scott 2021-02-25 11:17:22 CET
IMO this is a fedora issue, system-release(33) is provided by fedora-release-silverblue




fedora-release-silverblue-33-1.noarch : Base package for Fedora Silverblue-specific default configurations
Repo        : fedora
Matched from:
Provide    : system-release(33)

fedora-release-silverblue-34-0.13.noarch : Base package for Fedora Silverblue-specific default configurations
Repo        : fedora
Matched from:
Provide    : system-release(34)
Comment 5 Nicolas Chauvet 2021-02-25 11:34:57 CET
Just for clarification:
If you need to remove rpmfusion-*-release, then re-install components in order to rebase, feel free.
But it only show how silverblue is mis-designed wrt 3rd part repositories.

At least is would be way easier for us to build our own ostree spin, instead.

For the record, which packages are you interested in ?
Comment 6 leigh scott 2021-02-25 12:18:13 CET
(In reply to Nicolas Chauvet from comment #5)
 
> At least is would be way easier for us to build our own ostree spin, instead.

I'm not interested in supporting ostree or silverblue.