[meta] make 'jhbuild sysdeps' absolutely comprehensive
@desrt
Submitted by Allison Karlitskaya Link to original bug (#742266)
Description
This is a meta-bug for a lot work around the 'jhbuild sysdeps' command.
I want to make 'jhbuild sysdeps' absolutely comprehensive.
In practical terms that means that any user who has jhbuild installed will be able to type 'jhbuild sysdeps --install' and get a system that will proceed through the build without any problems.
In terms of a concrete goal, I consider this a nice test: I want to get to a place where we can do:
jhbuild sysdeps --dump-all
and get a list of dependencies.
I then want to have a tool to turn that into a list of packages for a given distribution (this will probably be a separate tool from jhbuild -- for most users 'sysdeps --install' is what they want).
Installing those packages into a minbase debootstrap chroot should result in an environment that is completely capable of building everything.
To take this up to 'level two', I think that we should also be able to repeat this process in a pristine chroot for every single individual package in the output of 'jhbuild list'. For example, picking NetworkManager, I should be able to type (on a clean system):
jhbuild sysdeps --install NetworkManager jhbuild build NetworkManager
and expect that to work.
There are currently a large number of missing dependencies that go unnoticed because they are required by other packages in the same moduleset (and those other packages are not a dependency of the package in question).
Actually testing this, as described, would be prohibitively expensive. I therefore also want to develop a system where it is possible to do 'jhbuild buildone --to-tar module' that builds a single module and puts the results in a .tar file. We could then proceed (roughly) as follows:
foreach pkgname in jhbuild list
:
prepare pristine chroot
jhbuild sysdeps --install $pkgname
foreach dep in jhbuild list $pkgname
:
unpack .tar for dep
jhbuild postinst # run triggers
jhbuild buildone --to-tar pkgname
save .tar, delete chroot
in effect, each package would be built in its own pristine environment with only its explicitly listed dependencies present. The result is a set of .tar files -- one for each built module. If we automate it, then it's possible to imagine some nice things that could be done with those...
I don't think that this feature should be part of jhbuild proper, but it would probably make a nice scripts/ addition.