-
Notifications
You must be signed in to change notification settings - Fork 236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use rpm repositories from bootstrap image at build time #1500
Comments
Thank you for the question/RFE. This is a hard one :) though. Where do you / your users execute Mock? In Podman containers or on host? If you run mock-in-podman then you can easily ship mock configuration there (sets of configuration files, whatever you need). If "on host", it is a matter of shipping one config file per build target/chroot (whatever way you prefer) - it isn't that bad, you can use Copr to build your mock-cofiguration set, complementary to The thing is that Mock is designed to have the configuration in a) parse configuration on host, Can't you ship the mock config in container? Then you can do
What is inside "${MOCK_CONFIG_NAME}"? |
Hi,
Right now we have one Fedora machine pre-configured with some /etc/mock config, and this is what I want to avoid using in the future. The team who created this machine described a bit what kind of /etc/mock config they have added, but didn't show the full config in their documentation, and I can't access their machine. It creates a blackbox for other external contributor like me. Plus it creates some long term maintenance burden as this team has to keep this specific fedora machine alive which we don't need for other usual development task. So I push so that we move it to container based mock, fully described in their git repositories so package builds are actually reproduceable locally.
I know I could ship some /etc/mock config via a package, but then it would mean I would duplicate the informations of which repo to use for which OS both in the images I maintain already + in this /etc/mock config, which I would like to avoid. For now I prefer to extract it manually the list of repo from the bootstrap images and pass them as argument to mock via a) Run mock with a specific bootstrap image and disable repo overriding, the mock config is provided (in my case it's one well known mock config like fedora or CentOS + epel) For me this scenario would be opt-in, not a default one (at least for now, to keep the current behavior, not sure what to do for the long term). People using such an option would definitely know/accept that they become responsible for configuring repositories "the right" way. So it's more about not doing some of the existing cleanup/config steps than adding new non existing steps. And clearly separating repo config from dnf.conf config. |
They can execute
Mock is installed with mock.rpm on host. Anytime you execute it it has to parse /etc/mock configuration.
This is tricky - the bootstrap chroot is typically the "base image" of target distribution, without having Mock installed at all. Set of repositories is typically related to container use-case, not "build system use-case". This wouldn't work in general for all chroots. The thing is that this totally changes how mock works. Mock was always responsible for preparing a valid This idea just feels a bit overcomplicated to me 🤷 considering you can just bake a specific Mock config into a well-prepared "mock container image" that you can distribute to your users. Anyway, if you want to experiment with this, feel free. |
This is issue a feature request for allowing to fully trust the rpm repositories already configured inside the bootstrap image. The use case for this would be people building package inside organization using their own rpm repositories (either because they don't have internet access for some reason, either because they have some extra repositories purely internal to that organization).
Let me describe what we do now inside Amadeus:
Ideally, I would like to be able to provide my images, with rpm repositories correctly configured already, and my users would just need to call mock with an option to disable the mock logic rewritting the rpm repositories, while keeping all the other logic wrt dnf configuration override.
Right now, what we do is no great (according to me):
--addrepo
flags for each repository, since mock is totally removing the original dnf configurationIn term of code, it looks like this:
Ideally I would like to have some new hypothetical boolean config option
use_boostrap_image_rpm_repositories
so that we would only do:So this feature if accepted would mean more or less:
Would that make sense ?
Thanks,
Romain
The text was updated successfully, but these errors were encountered: