Project

Profile

Help

Story #3715

closed

Reimplement unit dependency solving with the libsolv library

Added by milan over 6 years ago. Updated almost 3 years ago.

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

100%

Estimated time:
Platform Release:
2.17.0
Groomed:
Yes
Sprint Candidate:
Yes
Tags:
Pulp 2
Sprint:
Sprint 40
Quarter:

Description

This story tracks tasks required to implement dependency solving using the libsolv library, based on the investigation and on the POC from the Issue #3528.

The goal is to implement a solver suitable for the importer associate interface but some refactoring of the current internal solver call interface might be necessary.

The solver should support the Yum-specific content unit types (recursive) dependency solving, namely:

  • RPM
  • Errata
  • Package Group
  • Package Category

on content unit attributes, such as provides, requires, as relevant to a particular content unit model, including boolean&weak dependencies solving, in the context of a source and target repository to Support more conservative dependency solving

A separate story will track the modular content as it requires a libsolv patch to expose the pool->considered bitmap to the Python bindings.

Implementation design is described on the Issue #3528; see the Note #8
The POC code can be used as an example.

The functionality exposed by this implementation should be feature-compatible with current Pulp2 implementation.
It implies that no support for either SRPM or DRPM is required and that the REST API must not change when it comes to reporting the units copied.


Related issues

Related to RPM Support - Story #2478: Support more conservative dependency solvingCLOSED - CURRENTRELEASEmilan

Actions
Related to RPM Support - Story #3847: Introduce weak dependency solvingCLOSED - CURRENTRELEASEmilan

Actions
Related to RPM Support - Task #3859: Remove code of old solver and its' unittestsCLOSED - DUPLICATE

Actions

Also available in: Atom PDF