mirror of
https://github.com/clearlinux/mixer-tools.git
synced 2026-09-05 05:01:28 +00:00
This rewrites bundle-chroot-builder.py in Go to be part of Mixer code. Mixer is the only user of that software, and both Mixer and bundle-chroot-builder.py the same configuration file, with overlapping fields. Main differences from bundle-chroot-builder.py: - New bundleset type was added, that cares about collecting as much information as possible from the bundles themselves. This type and related functions also sets us up for success when upcoming changes to how bundles are specified happen. There is no assumption all bundles are in the same directory. - We are not using m4, instead a bundleset takes care of parsing. If format of individual bundle files change. The upside is that we can give nicer error messages, specially for the circular case. - Read the configuration file directly (with go-ini) to peek at values that Mixer didn't read before. Done that to avoid conflicting with existing patch in-flight that parses configuration. - Some individual steps were reordered for code clarity. E.g.: since we have bundleset, we can upfront generate all the *-include files. - Fixed the output for versions file. Due to the way yum list output works, parsing it is not very friendly. Comments around the code tells the story. - Removed the network testing step. It wasn't covering every case in the Python version, so I'm leaning to let the failure come from yum/dnf itself. I'm usually in favor of such early tests, but in this case the price of parsing yet another config file didn't felt worth. - Removed the "yum clean all" step from the bootstrap. There isn't any cache at that point, and the next yum call will bootstrap the necessary files for yum to operate. - Removed generation of files-* files (and the pkgmap-* files used to generate them). I couldn't find any tool or team making use of this information. Those (or their content) might be relevant in future changes to use a single chroot, but we should add when we need them. - Added more detailed commentary to individual steps, collecting information from the developers of bcb and related software. - The port still don't parallelize the work into multiple goroutines. I plan to do this in a similar way than what was done in CreateFullfiles, but in a separated patch. Fixes #42. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>