Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1814306 - dnf system-upgrade doesn't install a newly added package from fedora-comps group
Summary: dnf system-upgrade doesn't install a newly added package from fedora-comps group
Keywords:
Status: CLOSED DUPLICATE of bug 1845562
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jaroslav Mracek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-17 15:28 UTC by Chris Murphy
Modified: 2020-09-26 11:36 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-09-26 11:36:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Chris Murphy 2020-03-17 15:28:18 UTC
Description of problem:

Fedora Workstation 31 does not include earlyoom package by default in an installation (not on the ISO and not later brought in on update).

Fedora Workstation 32 does include earlyoom (new feature). It was added as a default in fedora-comps to the workstation-product group. And it's included in Fedora-Workstation-Live-x86_64-32_Beta-1.2.iso and installed.

However, 'dnf system-upgrade' from Fedora Workstation 30/31 -> Fedora Workstation 32 does not include earlyoom.

This could apply to other packages.



Version-Release number of selected component (if applicable):
dnf-4.2.18-1.fc31

How reproducible:
Always


Steps to Reproduce:
1. Clean install and updated Fedora Workstation 31 from Live ISO
2.
sudo dnf system-upgrade download --refresh --releasever=32
sudo dnf system-upgrade reboot

2.
3.

Actual results:

earlyoom is not installed


Expected results:

earlyoom should be installed


Additional info:


earlyoom is in fedora-comps, group: workstation-product

https://pagure.io/fedora-comps/blob/master/f/comps-f32.xml.in#_5881

Comment 1 Chris Murphy 2020-03-18 05:48:04 UTC
$ sudo dnf --debugsolver system-upgrade download --refresh --releasever=32

too big to attach debugdata.tar.gz
https://drive.google.com/open?id=1HqyRRzrUp29KEbeqAhURtULbttMG5iX2

Comment 2 Chris Murphy 2020-03-19 21:24:22 UTC
Or should this be done by adding weak dependency:supplements fedora-release-workstation? Or?

Comment 3 Chris Murphy 2020-03-19 21:45:02 UTC
Crossreferencing
https://pagure.io/fedora-workstation/issue/138

Comment 4 Neal Gompa 2020-03-23 13:26:52 UTC
The underlying problem here is that DNF is supposed to be treating composition groups the same way it does packages by converting them on the fly into solvables representing virtual metapackages and populating them for installation/upgrade/removal.

e.g. group foo with mandatory bar, default baz would map to solvable "group(foo)" with Requires bar and Recommends baz and apply that appropriately.

That seems to not be happening properly in this case.

Comment 5 Jaroslav Mracek 2020-03-23 15:20:29 UTC
Thank you very much for your report. Groups are used from multiple side by multiple ways therefore any change in behaviour is quite risky. It means that what is beneficial for someone would be a problem to some one else.

Groups are implemented as quite weak objects that could be easily modified by user. You can install only part of the group or remove any package later on. Groups are not virtual packages that will enforce that all elements must be installed and after upgrade the set of components could change.

In case that you want to ensure that all elements of group are installed run `dnf group install <group, ...>`

I am really sorry but I do consider the change even for system-upgrade command as a risky.

Comment 6 Jaroslav Mracek 2020-03-23 15:32:04 UTC
(In reply to Neal Gompa from comment #4)
> The underlying problem here is that DNF is supposed to be treating
> composition groups the same way it does packages by converting them on the
> fly into solvables representing virtual metapackages and populating them for
> installation/upgrade/removal.
> 
> e.g. group foo with mandatory bar, default baz would map to solvable
> "group(foo)" with Requires bar and Recommends baz and apply that
> appropriately.
> 
> That seems to not be happening properly in this case.

I am really sorry but groups are not virtual packages. The present behaviour represent a long term evolution when we polished behaviour according to provided user cases. The change that you suggest will break group deployment on several architecture where some of packages are not available. People really want that packages that were removed or not installed on their systems will be not installed in future. What you describe is behaviour of virtual packages. In case that you want to use behaviour of virtual package use virtual packages, and that is what you did already. Am I correct?

I remember recent discussion about behaviour of weak deps. Several people want that after removal of weak-dep it will be not pulled in the next upgrade transaction, but they don't want to exclude it, because may be some other component will need it. Simply unresolvable problem for packages, but behaviour of groups.

Comment 7 Chris Murphy 2020-03-23 17:51:47 UTC
Hi Jaroslav: What's the recommended alternative to bring earlyoom into F30/F31->F32 system upgrades? It's kindof an important approved feature for F32, and having a fragmented user base where a lot of people don't have it is really suboptimal. For now I'm OK with a short term work around for just this problem. Thanks!

In the general case, there's an expectation by both users and the Workstation working group (maybe other working groups) that system upgrades should produce nearly the same result as a clean install. Otherwise it's not really a system upgrade, it's just a big update that just so happens to change the major version number in a misleading way. It suggests the "real way you should do an upgrade" is just reinstall. And now I'm quickly getting off topic, so I'll direct the general (longer term) problem of upgrades and reprovisioning to https://pagure.io/fedora-workstation/issue/138

Comment 8 Michael Catanzaro 2020-03-23 18:05:27 UTC
For F32->F33, let's just add a Supplements somewhere. Neal can suggest a good place.

For F33->F34, let's ask FESCo to consider this change. I agree that, ideally, changes in comps would take effect on upgrades.

Comment 9 Chris Murphy 2020-03-23 18:17:15 UTC
I'm confused about these version numbers:
>For F32->F33, let's just add a Supplements somewhere. Neal can suggest a good place.
>For F33->F34, let's ask FESCo to consider this change. I agree that, ideally, changes in comps would take effect on upgrades.

Are you suggesting giving up on solving this for F30/F31->F32 upgrades?

Comment 10 Michael Catanzaro 2020-03-23 19:01:43 UTC
No... it's just an off-by-one error. ;)

Comment 11 Jaroslav Mracek 2020-03-25 12:30:30 UTC
I suggest that usage of weak deps is good approach how to resolve the issue not only for F32->F33.

(In reply to Michael Catanzaro from comment #8)
> For F32->F33, let's just add a Supplements somewhere. Neal can suggest a
> good place.
> 
> For F33->F34, let's ask FESCo to consider this change. I agree that,
> ideally, changes in comps would take effect on upgrades.

I also don't like an approach to bring change to FESCo. The correct work flow is at first to convince maintainers of project about the change. Then ask FESCo.

Why the work-flow is so important, because any negative feedback will go into direction of DNF developers.

Comment 12 Neal Gompa 2020-04-10 22:28:26 UTC
I've submitted the workaround for earlyoom as a PR: https://src.fedoraproject.org/rpms/earlyoom/pull-request/1

But that does not excuse figuring out what to do with this longer term...

Comment 13 Michael Catanzaro 2020-09-26 11:36:30 UTC

*** This bug has been marked as a duplicate of bug 1845562 ***


Note You need to log in before you can comment on or make changes to this bug.