V Tue, Jun 20, 2023 at 03:31:27PM +0000, Zbigniew Jędrzejewski-Szmek napsal(a):
On Tue, Jun 13, 2023 at 06:32:45PM +0200, Petr Pisar wrote:
I spent some time thinking how to approximate the nice features with current state of RPM, Koji, and DNF and come up with this approach https://ppisar.fedorapeople.org/postmodular/.
Thank you for the detailed proposal that tries to explore all the corner cases. This looks like it should work. It'd be nice to update "postgresql demodularization pr" [1] to this scheme to test it on a real live package.
[1] https://src.fedoraproject.org/rpms/postgresql/pull-request/59
I can do it, but:
Current policy requires building Rawhide builds from rawhide branch. (Hence I assumed that alternative streams will have separarate dist-git reposirories. Somebody already correctly pointed that dedicated repositories with obligate reviews would be too bureaucratic.)
My proposal requires metapackages which should have a dedicated component. The reason is that the metapackage of a default stream needs to be installed in @build group, i.e. before building the first content package and for building the content package. (I could cram the metapackage into the same spec file with postgresql by bootstrapping, but I guess from process point of view it's uggly.) Also the metapackage needs to be required from fedora-release.
Currently you cannot build my proposal in Koji, because current Koji configures mock not to pass --allowerasing option to "dnf builddep" command. And current Mock actually disabled the option for DNF5 https://github.com/rpm-software-management/mock/pull/1027 because DNF5 did not support it until very recently.
And finally, I found a misfeature in DNF where "dnf install" intentionally ignores RPM Provides https://github.com/rpm-software-management/dnf5/issues/620. If DNF maintainers do not change their mind, my proposal will be buildable after fixing https://github.com/rpm-software-management/dnf5/issues/626, but an installation with a base, no-stream name won't work. Someone invoking "dnf install" would always have to use the real package name with a stream suffix/prefix. (That bug does not affect transitive dependencies.)
And from practical point of view, postgresql is not a good toy package. Most of the time it fails to build.
-- Petr