We would like to emulate the behaviour of today's build groups to pre-install certain packages into the buildroot. This would allow us to work around package build failures due to missing [build] dependencies.
I imagine modules would define a special installation profile called "buildroot" that would simply list what packages from that particular module should be installed in case it is used as a build dependency of another module.
A specific example: Many builds fail because autoconf doesn't run-require perl(Data::Dumper). Running aclocal then crashes due to a perl module inclusion failure. The right way to fix this is to fix the autoconf package but before that happens, simply adding perl-Data-Dumper to base-runtime's buildroot profile would allow us to work around that issue.
To implement this, we could take the buildroot profile if it exists and use it to extend the list of packages that are already hardcoded in the build group that we already install by default.
buildroot
extend
build
If we're doing that, we might as well support an srpm-buildroot profile as well.
srpm-buildroot
@ralph Why extend rather than replace?
Hm, replace is fine.
I think it'd be cleaner if the entire group was defined by a module such as the gen-core, which is expected to be the buildroot of pretty much everything. Of course the gen-core maintainers might mess up and break it for everyone by omitting key packages such as rpm-build, for example, but merging the module-defined group with the volatile mbs-defined group isn't good for build reproducibility.
As discussed we need to:
As a first step, I applied this patch to base-runtime.yml: http://pkgs.stg.fedoraproject.org/cgit/modules/base-runtime.git/commit/?id=85ac9a82cfb0ff7cfc24379c994a6e1d67e39815
See #205.
Commit 439721da fixes this issue
@ralph changed the status to Closed
Closed
This issue has been migrated to Fedora Forge: https://forge.fedoraproject.org/koji/mbs/issues/181
Please continue any further discussion there.