[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24832: Hydra generates faulty derivation for gettext-boot0
From: |
Mark H Weaver |
Subject: |
bug#24832: Hydra generates faulty derivation for gettext-boot0 |
Date: |
Mon, 31 Oct 2016 08:49:45 -0400 |
Hi Ludovic,
address@hidden (Ludovic Courtès) writes:
> The bug stems from ‘ld-wrapper-boot0’ and was introduced in
> d75acc293dd3e63db8739aa04c021df917aa1b80. The problem is that
> ‘ld-wrapper-boot0’ uses the value of (%current-system) on the machine
> that builds the derivation i.e., hydra.gnu.org.
>
> Instead, it should use the value of the system we’re building for, so
> its evaluation should be delayed, as is the case for ‘inputs’ fields.
>
> The result of this bug is that ‘ld-wrapper-boot0’ is bogus on all arches
> except x86_64. However, this is harmless: we don’t need this ld wrapper
> anyway, except for GNU/Hurd.
>
> So, a short-term hack might be this:
>
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index 53ba718..0a8e608 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -424,8 +424,8 @@ the bootstrap environment."
> (define ld-wrapper-boot0
> ;; We need this so binaries on Hurd will have libmachuser and libhurduser
> ;; in their RUNPATH, otherwise validate-runpath will fail.
> - (make-ld-wrapper (string-append "ld-wrapper-" (boot-triplet))
> - #:target (boot-triplet)
> + (make-ld-wrapper (string-append "ld-wrapper-" "x86_64-guix-linux-gnu")
> + #:target "x86_64-guix-linux-gnu"
> #:binutils binutils-boot0
> #:guile %bootstrap-guile
> #:bash (car (assoc-ref %boot0-inputs "bash"))))
>
> That way, we would not have to rebuild anything (it temporarily breaks
> GNU/Hurd though, but that’s the cost we’d have to pay.)
>
> How does that sound?
Ah, nice! Could be avoid breaking GNU/Hurd by delaying evaluation of
‘ld-wrapper-boot0’ right now, but temporarily rigging it so that on all
_non-Hurd_ platforms, the hard-coded value "x86_64-guix-linux-gnu" is
used?
Thanks!
Mark