V Wed, Jun 21, 2023 at 11:52:36AM +0200, Remi Collet napsal(a):
Le 13/06/2023 à 18:32, Petr Pisar a écrit :
Hello,
as it seems that module build infrastructure isn't getting any better, as modular YUM repositories are going to be deconfigured https://fedoraproject.org/wiki/Changes/No_default_fedora-repos-modular, there is a time to look at different ways how to package alternative content.
Another way/proposal
Keep "modularity", but drop MBS
1/ create a stream package which defines few needed stuff
mostly
- %dist => .module+name+stream.distro
- %modularitylabel
That stream package would have to be registered as an optional member of @build-srpm group and because the package is specific to a stream, the package would have to be kept away from nonmodular build tag. Packagers would probaly tag the stream package into their side tags dedicated for their streams.
and possibly the .yaml template
To enforce reprodusibility and auditability, Koji to has a rule that all input is first commited into dist-git and then a Koji task loads it from there and a packager has no way to influence it. A module-build task in Koji would have to be changed to implement a logic for handling the YAML templates. With MBS it was MBS service which implemented the logic and then imported the output as a module build into Koji.
The same goes for the stream package. I have no idea how MBS builds module-build-macros in Koji. A task info reads "Src: cli-build/....src.rpm". Probably a privileged operation which does not involve dist-git.
2/ modify createrepo
so all the packages with modularitylabel=name:stream:* are be part of name:stream module
Or modify createrepo_c to export the modularitylabel into primary.xml. The YAML files, if ever needed, would be synthesized by DNF.
My largest problem with this approach is a manual management of the tags on the modular builds. Koji does not have a way how to be asked for all builds belonging to a stream. MBS worked around it by using ephemeral tags for building each stream and then maintaining a registry of these tags and their builds for a later use (e.g. for updating the stream).
Done.
And we have something which works and have been heavily tested
Yes this is a 1 level only modularity.
I worry that even this user-side-only modularity is unwelcome https://fedoraproject.org/wiki/Changes/No_default_fedora-repos-modular.
-- Petr