V Fri, Sep 10, 2021 at 02:26:20PM +0200, Petr Pisar napsal(a):
I'm relieved to announce an availability of the new module
packaging format,
modulemd-packager, version 3.
[...]
WHAT IS CHANGING
================
Since there was no place for the contexts in the old module format, a new,
input-only format "modulemd-packager", version 3, was designed and implemented
in MBS and other tools. At the opportunity of the format change, some other
pet peeves of the old format were solved.
Changes in the format include:
New document type and version:
document: modulemd-packager
version: 3
[...]
DNF handles outputs of both of them (the output format is
distinguished with
"static_context: true" field), but it behaves differently. With the old
format, DNF can produce weird warnings or errors. Especially when your module
is required by another module.
Will the old format be supporterd forever? I don't know.
Does have the new format some drawbacks?
A new drawback came out <
https://bugzilla.redhat.com/show_bug.cgi?id=2004853>:
Fedora 33 G.A. libmodulemd-2.9.4-3.fc33 does not yet support the new
static_context field. Because DNF strictly validates modules found in
repositories, libmodulemd will reject modules with the unknown field:
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
and will ignore the module. That implies that DNF will handle packages of
those module builds as non-modular before checking an RPM transaction:
Installing:
autoconf noarch 2.69-34.fc33 fedora
666 k
Installing dependencies:
perl-B x86_64 1.80-471.module_f33+12592+71aff0e2
updates-modular 189 k
But then the transaction will be rejected because a strayed modular package is
found:
Running transaction check
No available modular metadata for modular package
'perl-B-1.80-471.module_f33+12592+71aff0e2.x86_64', it cannot be installed on the
system
In short, Fedora 33 users who have not updated their system since 2020-12-16,
won't be able to install packages which were (also) built in a module with the
new format. This affects e.g. fresh off-line installations.
A workaround is simple: update your system:
# dnf upgrade
or explicitly upgrade libmodulemd:
# dnf --disable-repo 'updates*modular' upgrade libmodulemd
before installing any packages.
Since we cannot change G.A. installation media (ISO and qcow2 images), there
is no remedy possible other than not pushing these updates to Fedora 33
repositories.
You have two options: Either postpone the migration to the new format until
Fedora 33 reaches its end of life (December, 2021?), or do not build the
module for Fedora 33 (i.e. remove a context section with platform: f33).
(That already happened with perl and perl-bootstrap modules. I will rebuild
them and repush to stable, unless relengs untag them.)
(That already happened with swig:4.0. Unpushing it from updates-testing should
help.)
I'm deeply sorry for this faux pas.
-- Petr