guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Hurd substitute availability (27.5%) and next steps?


From: Christopher Baines
Subject: Hurd substitute availability (27.5%) and next steps?
Date: Mon, 08 Mar 2021 21:57:20 +0000
User-agent: mu4e 1.4.15; emacs 27.1

Hey,

So I finally got around to trying the Guix Build Coordinator agent on
the Hurd [1], and builds have been happening on the guix.cbaines.net
build farm that I've been using to test the Guix Build Coordinator when
building things for substitutes.

1: https://lists.gnu.org/archive/html/guix-devel/2021-02/msg00223.html

The tooling I've got for looking at how far things have progressed isn't
great, but either there are blocking builds or some that have got stuck,
as the agents aren't particularly active currently. Anyway, currently
for one recent revision (1462a11dbb3d2256c8693e56a583cfd100e27609) I
tried, guix weather reports 27.5% of substitutes are available. [2]

  → guix weather --system=i586-gnu --substitute-urls=https://guix.cbaines.net 
  computing 10,415 package derivations for i586-gnu...
  looking for 10,811 store items on https://guix.cbaines.net...
  updating substitutes from 'https://guix.cbaines.net'... 100.0%
  https://guix.cbaines.net
    27.5% substitutes available (2,977 out of 10,811)
    4,589.5 MiB of nars (compressed)
    18,975.5 MiB on disk (uncompressed)
    0.214 seconds per request (2,313.6 seconds in total)
    4.7 requests per second
    (continuous integration information unavailable)

The Guix Build Coordinator does have a rudimentary feature to find
"blocking" builds, and it reports these as the top derivations that are
failing, and blocking the highest number of builds (in order from top to
bottom), there are more failures than this, but this is just the top
few.

  /gnu/store/xrinbhmmsyyxbr755f4b9xiwi1x4lna8-util-linux-2.35.1.drv
  /gnu/store/sgs5vq0y49xhjpc3avi3zpvawzda2j55-tcl-8.6.10.drv
  /gnu/store/nzn4iq4pj65ll0k9c1hkmq83v6czxb3n-zstd-1.4.4.drv
  /gnu/store/cvcra95jcy42s9z99r9mkv6kiqkhr8s3-tcsh-6.22.02.drv
  /gnu/store/qpd0sa86slxz6gb8lzlsybsk8fcd8wzm-valgrind-3.16.1.drv
  /gnu/store/23pw46xhzvnghi6ycpcmj7jz01sz7vaz-apr-1.6.5.drv
  /gnu/store/cq1kpfb8f76rss3kcc5jkaqagcmrf832-ruby-2.6.5.drv
  /gnu/store/jrmm3v34rnsynh59fxjgpi6vkip3slx4-jemalloc-5.2.1.drv
  /gnu/store/lry6i5280aryvmr92jalb5drfd7bj912-libcap-2.31.drv
  /gnu/store/qbf27f3ymxli367nl82cq2z3xh71frm0-elfutils-0.182.drv
  /gnu/store/zfz9hglpn87hwwdf3n3izrrwksb35kl0-kmod-27.drv
  /gnu/store/0lgxyqiaxc5hxyfmkyzzfb2sa5ac9g93-alsa-lib-1.2.4.drv
  /gnu/store/s3zn4wzyi88vyj0cjd8vvpph1ldzg361-libxshmfence-1.3.drv
  /gnu/store/b5awhhqsvgf4c2mxanq2p06nmq1vsgf0-gsl-2.6.drv
  /gnu/store/zqbpy5668wmhpjx6pcdyj1vc6w5iz4n1-linux-pam-1.5.1.drv
  /gnu/store/h0h1yvq4crcbi9rf9cpn95hkdxaigb7h-openblas-0.3.9.drv
  /gnu/store/72b2k49d4kqmnrf0dbjf3bp78nj038d2-jemalloc-4.5.0.drv
  /gnu/store/gvnhx587vsh8l32gq0gfpr8czh2fvzqm-nspr-4.29.drv
  /gnu/store/qfcgw634621gjwswpcq0c8vi5y2rn435-libcap-2.45.drv
  /gnu/store/dzfhypl0vdil3d6kp0w0zcarijbr6shi-flac-1.3.3.drv
  /gnu/store/5cv7sbimd774j6zck18v0pazlh200fb6-libaio-0.3.112.drv
  /gnu/store/0n6fxczd0asf50daznzm4c8m2rw9yk1n-mrustc-0.9.drv
  /gnu/store/3x86mmnf8l2hj1rf74hm8ljbzihj7br0-mtdev-1.1.6.drv
  /gnu/store/l4c3jw3225nwd1q66snhxszgjqa8ir35-libtirpc-1.2.5.drv
  /gnu/store/gcf220qpz1pjk56qp6pxvi302mg7l185-cdparanoia-10.2.drv

You can find details about packages and builds from this Guix Data
Service instance [2], the builds can be found on this page for example
[3].

2: https://data.guix-patches.cbaines.net/
3: 
https://data.guix-patches.cbaines.net/revision/1462a11dbb3d2256c8693e56a583cfd100e27609/builds?build_server=3&system=i586-gnu&target=none&limit_results=50

The util-linux and tcl failures are both test related, and I believe
building without the tests works. With this data, given a package which
isn't build for the Hurd, say git as an example, it's possible to find
out which relevant builds are failing [4].

4: 
https://data.guix-patches.cbaines.net/build-server/3/build?build_server_build_id=4ebf32a7-5b1e-425f-89e9-cd3933875da3

So, what are the next steps for Hurd stuff in Guix?

In terms of getting more packages building, and substitute availability,
personally I think it would be useful to disable tests for packages for
i586-gnu if that gets packages building. It's not ideal to not run the
tests, but it's also difficult to investigate the failures and develop
patches if you don't have substitutes for the software you need to do
that (like Git for example).

More generally, I also know of a few important Hurd related issues:

  guix gc support:
    https://issues.guix.gnu.org/42047
  
  chroot for builds:
    https://issues.guix.gnu.org/43857
  
  decisions around what's in the build environment:
    https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes/

I had a go at getting a childhurd with a swap partition, but didn't get
that far:

  https://issues.guix.gnu.org/46726

I have reliability issues with the childhurd VMs running Guix Build
Coordinator agents, often I'll be unable to SSH in, and I'm not quite
sure how to debug this. It would be nice to run childhurd VMs for the
guix-patches build coordinator, but ideally they would run reliably and
wouldn't get stuck.

I'm quite new to playing around with the Hurd stuff, but I think it's
quite cool, although I probably need to get back to working more on the
core Guix Data Service and Guix Build Coordinator features.

Have I missed something? It would be nice to be able to collect the bugs
related to the Hurd, I'm not sure how best to do that with debbugs
though?

Any thoughts about next steps?

Thanks,

Chris

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]