System-upgrade 38 to Rawhide: sdubby conflicts with grubby

Hi, I tried to upgrade from Fedora 38 to Fedora Rawhide, to (hopefully) help with testing and development. This is on a fresh install.

Here is what happened:

[nebula@fedora ~]$ sudo dnf system-upgrade download --releasever=rawhide
...
Error: 
 Problem: conflicting requests
  - package sdubby-1.0-4.fc40.noarch from updates-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora
  - package sdubby-1.0-4.fc40.noarch from updates-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora-modular
  - package sdubby-1.0-4.fc40.noarch from updates-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates
  - package sdubby-1.0-4.fc40.noarch from updates-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates-modular
  - package sdubby-1.0-4.fc40.noarch from updates conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora
  - package sdubby-1.0-4.fc40.noarch from updates conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora-modular
  - package sdubby-1.0-4.fc40.noarch from updates conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates
  - package sdubby-1.0-4.fc40.noarch from updates conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates-modular
  - grubby-8.40-69.fc38.x86_64 from @System  does not belong to a distupgrade repository
  - package sdubby-1.0-4.fc40.noarch from fedora-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora
  - package sdubby-1.0-4.fc40.noarch from fedora-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora-modular
  - package sdubby-1.0-4.fc40.noarch from fedora-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates
  - package sdubby-1.0-4.fc40.noarch from fedora-modular conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates-modular
  - package sdubby-1.0-4.fc40.noarch from fedora conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora
  - package sdubby-1.0-4.fc40.noarch from fedora conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from fedora-modular
  - package sdubby-1.0-4.fc40.noarch from fedora conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates
  - package sdubby-1.0-4.fc40.noarch from fedora conflicts with grubby provided by grubby-8.40-72.fc40.x86_64 from updates-modular
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)

The same happens if I add the flags. Pastebin.

I also tried to dnf remove grubby beforehand and it did not resolve the conflict.

What could be causing dnf system-upgrade download --releasever=rawhide to attempt to install conflicting packages? Is there a way to get a list of all packages that the system upgrade is attempting to install?

After discussing this in the Fedora Linux discord server, we found a possibly related commit: 9a522c2 Change versioned Conflicts to rich Requires :

    Change versioned Conflicts to rich Requires
    
    ... (rhbz#2240828)
    
    We currently have grubby-8.40-72.fc39 and sdubby-1.0-3.fc39.
    systemd had 'Conflicts: grubby < 8.40-72', which is satisfied by grubby.
    But sdubby has 'Provides: grubby' (with no version), which prevented
    installation:
    
    $ sudo rpm -i ./sdubby-1.0-3.fc39.noarch.rpm
    error: Failed dependencies:
    	grubby < 8.40-72 conflicts with (installed) systemd-udev-254.2-7.fc39.x86_64
    
    The rpm docs don't actually say what the meaning of the 'if' is:
    is it only satisfied by actual package names, or also by Provides. But
    experiments suggest that Provides are not used. The rich dependency seems
    to avoid the issue.

I don’t know if this is bug-worthy, or where/how to report this, so I thought I’d open this discussion post. Is there anything I could try? I am mainly just curious why it failed.


Note: I know there is an ISO for Fedora Rawhide. But booting into it results in a black screen after the initial boot menu on a 2017 MacBook Pro (Intel-based). So I thought I’d try to 38 -> Rawhide my way into it.

package sdubby-1.0-4.fc40.noarch from updates-modular

This is strange. updates-modular should be empty, and sdubby is just a normal update from updates.

Before the upgrade, did you have sdubby and grubby installed?

Before the upgrade, I only had grubby as part of Fedora 38. I don’t have sdubby as it isn’t a Fedora 38 package. What’s really strange is that removing grubby and trying again, I get the same error.

I can confirm this. Also, if I use dnf distrosync instead of dnf system-upgrade download it seems to work properly and upgrade the grubby to the new version.

It is really strange indeed. Also (unrelated) it has a strange issue with ffmpeg when no ffmpeg is installed at all.

So I think it’s some idiosyncrasy of system-upgrade. Maybe file a bug in bugzilla?

Will do. Is there anything else I should include other than what’s in this post?

Bugzilla: 2243872 – System-upgrade 38 to Rawhide: sdubby conflicts with grubby

I was able to upgrade Fedora 39 to Rawhide by excluding the “sdubby” package.

sudo dnf system-upgrade download --releasever=rawhide --exclude=sdubby

Same here. FWIW, this is the workaround mentioned in the linked bugzilla. So I guess I’ll mark your answer

Addending excludepkgs=sdubby to the file /etc/dnf/dnf.conf should do the same thing. Permanently.

Is it advisable to edit the dnf config file? I’m not sure what the risks of that are

/etc/dnf/dnf.conf is a configuration file and is meant to be modified if needed. Just remember that it was modified and why (by adding a comment line).

Thank you for the suggestion. Personally I feel it’s safer to explicitly exclude packages as needed. It’s probably fine for sdubby but I don’t think I want to make a habit of it just yet