[core-updates] pack vs. build discrepancy with --target=i586-pc-gnu

  • Open
  • quality assurance status badge
Details
One participant
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 2 Apr 2020 23:34
(address . bug-guix@gnu.org)
87wo6xlggn.fsf@inria.fr
On current ‘wip-hurd-vm’ (very close to ‘core-updates’), there’s this
discrepancy between ‘pack’ and ‘build’:

Toggle snippet (26 lines)
$ ./pre-inst-env guix build hurd --target=i586-pc-gnu -d --no-grafts
/gnu/store/m8gvpjh1dlgx8v3dbvkpqw17k00h9hv3-hurd-0.9-1.91a5167.drv
$ ./pre-inst-env guix pack hurd --target=i586-pc-gnu -n --no-grafts
The following derivations would be built:
/gnu/store/1vq3dzc74afy34i6ylymlqqw8hmxvrc8-tarball-pack.tar.gz.drv
/gnu/store/bzxr1n7z5rkksavql1nckyri4qdslrms-profile.drv
/gnu/store/gs1zz38m5vvm6fy3nh1jv3fj4vikzmhf-hurd-0.9-1.91a5167.drv
/gnu/store/17m76zz1nia4mxafh5bzcjlcgf631pzq-glibc-hurd-headers-2.31.drv
The following profile hooks would be built:
/gnu/store/0sk6qm07y32gf3ljxk718d2g7c0nnh8m-manual-database.drv
/gnu/store/61qr5qwryi3k1vwbi2ddhy24qy7ld4di-fonts-dir.drv
/gnu/store/ahcfp2f1ddnym4sw4j8c23mz64mkzvid-info-dir.drv
/gnu/store/iw2hzd7fsl62a7y2nj577bg89cys0i3q-ca-certificate-bundle.drv
$ git log |head
commit b61467c0c813e65ed86d9b1b8ba1187f117751b9
Author: Ludovic Courtès <ludo@gnu.org>
Date: Thu Apr 2 16:47:40 2020 +0200

gnu: cross-libc: Add patch to add 'mach_print' symbol on GNU/Hurd.
* gnu/packages/patches/glibc-hurd-mach-print.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/cross-base.scm (cross-libc): Add 'patch-libc/hurd' phase
when 'hurd-target?' is true.

‘guix pack’ would build a different hurd derivation, one that actually
fails to build. The difference here is that the “wrong” hurd derivation
depends on a glibc-hurd-headers-2.31.drv that lacks MiG as an input,
which suggests that the (if (hurd-target?) …) conditional in ‘glibc’ is
not working as expected.

Ludo’.
L
L
Ludovic Courtès wrote on 5 Apr 2020 01:14
(address . 40392@debbugs.gnu.org)
87eet2kfm7.fsf@gnu.org
Hi,

Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (6 lines)
> ‘guix pack’ would build a different hurd derivation, one that actually
> fails to build. The difference here is that the “wrong” hurd derivation
> depends on a glibc-hurd-headers-2.31.drv that lacks MiG as an input,
> which suggests that the (if (hurd-target?) …) conditional in ‘glibc’ is
> not working as expected.

Part of the problem is “fixed” by passing #:target to ‘run-with-store’
in ‘guix pack’, done in commit f7b5b8cd45b4560b3473dde2e6f6f20b4ff9daff
on ‘master’.

The other part of the problem is that profile hooks in
‘profile-derivation’ don’t honor #:target.

One can work around this by running ‘guix pack --bootstrap’ so that no
profile hooks are run.

Ludo’.
?