Project

Profile

Help

Story #5071

Issue #5063: Module defaults need to be considered and copied automatically during recursive dependency solving

As a user, a default module stream is copied together with its module_defaults

Added by ttereshc 5 months ago. Updated about 2 months ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Platform Release:
2.21.0
Blocks Release:
Backwards Incompatible:
No
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:
Sprint 56

Description

Motivation

If a module stream is marked as a default one, then nonmodular RPMs are allowed to depend on it.
If we copy the module without copying the module_defaults metadata, clients will not understand that it is special, and they will not be able to use that module to satisfy their dependencies, and the packages they provide will not be able to be installed normally through DNF as intended.

Solution

At copy time, always copy module_defaults if the stream specified in it is copied as well.
*How to merge module_defaults should be decided on this ticket before grooming

Associated revisions

Revision 9ed9e0b6 View on GitHub
Added by dalley 4 months ago

Use placeholder EVR and Arch values

Libsolv does need these, so we have to provide fake ones, not just an
empty string.

re: #5071
https://pulp.plan.io/issues/5071

Revision c4cb08fb View on GitHub
Added by dalley 4 months ago

Remove 'obsoletes'

This is unnecessary, according to Igor.

re: #5071
https://pulp.plan.io/issues/5071

Revision f52b0f2f View on GitHub
Added by dalley 4 months ago

Make changes to module default setup code

Change the name of module-default solvables to follow convention. Make
sure module-defaults without a default stream aren't setting streams as
defaults. Change the way provides are set up, as there should be no such
thing as "module-default(name:stream)" since only one module-default
exists per-module.

re: #5071
https://pulp.plan.io/issues/5071

Revision a0a10884 View on GitHub
Added by dalley 4 months ago

Hack copy_rpms() to do more than just copy RPMs

Allow it to copy modules also. Ideally, we would do more refactoring to
make this less hacky, but unless we change the scope of my work I would
prefer to change as little as possible in that regard.

re: #5071
https://pulp.plan.io/issues/5071

Revision 39e310ab View on GitHub
Added by dalley 4 months ago

Rewrite the recursive-conservative solver

re: #5071
https://pulp.plan.io/issues/5071

Revision b474b613 View on GitHub
Added by dalley 4 months ago

Don't try to reuse Solver

It's supposed to be possible, but it's problematic in practice.

re: #5071
https://pulp.plan.io/issues/5071

Revision c7c68551 View on GitHub
Added by dalley 4 months ago

Use empty strings for EVRs

I think Igor was wrong there, empty strings are fine.

re: #5071
https://pulp.plan.io/issues/5071

Revision a2380f6b View on GitHub
Added by dalley 4 months ago

Revise note based on PR feedback

re: #5071
https://pulp.plan.io/issues/5071

History

#1 Updated by ttereshc 5 months ago

  • Related to Issue #5063: Module defaults need to be considered and copied automatically during recursive dependency solving added

#2 Updated by dalley 4 months ago

  • Parent task set to #5063

#3 Updated by dalley 4 months ago

  • Status changed from NEW to POST
  • Assignee set to dalley
  • Sprint set to Sprint 56

#4 Updated by dalley 3 months ago

  • Status changed from POST to MODIFIED
  • Platform Release set to 2.21.0

#5 Updated by dalley about 2 months ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Please register to edit this issue

Also available in: Atom PDF