After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 742266 - [meta] make 'jhbuild sysdeps' absolutely comprehensive
[meta] make 'jhbuild sysdeps' absolutely comprehensive
Status: RESOLVED OBSOLETE
Product: jhbuild
Classification: Infrastructure
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: Jhbuild maintainers
Jhbuild QA
Depends on: 670790 691394 693290 726755 741496 741537 741538 741931 742134 742251 742264 742268 742269 743127
Blocks:
 
 
Reported: 2015-01-03 16:29 UTC by Allison Karlitskaya (desrt)
Modified: 2021-05-17 16:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Allison Karlitskaya (desrt) 2015-01-03 16:29:15 UTC
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.
Comment 1 GNOME Infrastructure Team 2021-05-17 16:00:58 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/jhbuild/-/issues/207.