Skip to content

Obsoletes could support multiple replacements #598

@ppisar

Description

@ppisar

Modular obsoletes now support at most one replacing stream:

document: modulemd-obsoletes
version: 1
data:
  module: perl
  stream: 5.30
  [...]
  obsoleted_by:
    module: perl
    stream: "5.32"

It turned out https://bugzilla.redhat.com/show_bug.cgi?id=2053213#c7 that's not enough. perl:5.32 is missing perl-Pod-Parser which exists in perl:5.30. Because no package from perl:5.32 RPM-obsoletes perl-Pod-Parser, DNF cannot perform an upgrade with automatical switching streams from an obsolete perl:5.30 to perl:5.32.

A feature-complete RPM upgrade path requires modularizing perl-Pod-Parser and extending modular obsoletance to multiple modules:

document: modulemd-obsoletes
version: 2
data:
  module: perl
  stream: 5.30
  [...]
  obsoleted_by:
    - module: perl
      stream: "5.32"
    - module: perl-Pod-Parser
      stream: "SOMETHING"

That would require changing the format, unless we come with cunning syntax like:

document: modulemd-obsoletes
version: 1
data:
  module: perl
  stream: 5.30
  [...]
  obsoleted_by:
    module: perl
    stream: "5.32"
  obsoleted_by_more:
    - module: perl-Pod-Parser
      stream: "SOMETHING"

But I'd rather bump the format version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions