GNU bug report logs - #39699
[core-updates] gash-boot0 fails on i686-linux

Previous Next

Package: guix;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Thu, 20 Feb 2020 17:25:02 UTC

Severity: normal

Done: Jan Nieuwenhuizen <janneke <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39699 in the body.
You can then email your comments to 39699 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Thu, 20 Feb 2020 17:25:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <mbakke <at> fastmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 20 Feb 2020 17:25:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: bug-guix <at> gnu.org
Subject: [core-updates] gash-boot0 fails on i686-linux
Date: Thu, 20 Feb 2020 18:24:33 +0100
Hello,

Bootstrap fails early on i686-linux when trying to build gash-boot0,
which fails thusly:

starting phase `unpack'
Backtrace:
In ice-9/eval.scm:
 432: 19 [eval # #]
In ice-9/boot-9.scm:
2320: 18 [save-module-excursion #<procedure 8517ca0 at ice-9/boot-9.scm:3961:3 ()>]
3966: 17 [#<procedure 8517ca0 at ice-9/boot-9.scm:3961:3 ()>]
1645: 16 [%start-stack load-stack ...]
1650: 15 [#<procedure 850d9f0 ()>]
In unknown file:
   ?: 14 [primitive-load "/gnu/store/2m6vg55vvlxscc9yrq2ahqxvx4z9gbfp-bootar-1/bin/tar"]
In ice-9/eval.scm:
 505: 13 [#<procedure 84682a0 at ice-9/eval.scm:499:4 (exp)> (use-modules # # # ...)]
In ice-9/psyntax.scm:
1091: 12 [expand-top-sequence ((use-modules # # # ...)) () ((top)) ...]
 976: 11 [scan ((use-modules (compression bzip2) (compression gzip) ...)) () ...]
 270: 10 [scan ((# #) #(syntax-object *unspecified* # #)) () (()) ...]
In ice-9/boot-9.scm:
3513: 9 [process-use-modules ((#) (#) (#) (#) ...)]
 627: 8 [map #<procedure 84c6ae0 at ice-9/boot-9.scm:3513:25 (mif-args)> #]
3514: 7 [#<procedure 84c6ae0 at ice-9/boot-9.scm:3513:25 (mif-args)> (#)]
2783: 6 [resolve-interface (compression bzip2) #:select ...]
2708: 5 [#<procedure 84bf770 at ice-9/boot-9.scm:2696:4 (name #:optional autoload version #:key ensure)> # ...]
2981: 4 [try-module-autoload (compression bzip2) #f]
2320: 3 [save-module-excursion #<procedure 850d228 at ice-9/boot-9.scm:2982:17 ()>]
3001: 2 [#<procedure 850d228 at ice-9/boot-9.scm:2982:17 ()>]
In unknown file:
   ?: 1 [primitive-load-path "compression/bzip2" ...]
In compression/bzip2.scm:
  45: 0 [#<procedure 8499a10 ()>]

compression/bzip2.scm:45:18: In procedure #<procedure 8499a10 ()>:
compression/bzip2.scm:45:18: ERROR: R6RS exception:
  1. &error
  2. &who: bzip2
  3. &message: "This module requires at least 32-bit fixnums"
  4. &irritants: ()
command "tar" "xvf" "/gnu/store/bspn36jhcd2ky6ih7wnh9z0iz867flc2-gash-0.2.0.tar.gz" failed with status 1





Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Thu, 20 Feb 2020 21:58:02 GMT) Full text and rfc822 format available.

Message #8 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>, Timothy Sample <samplet <at> ngyro.com>,
 Jan Nieuwenhuizen <janneke <at> gnu.org>
Cc: 39699 <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Thu, 20 Feb 2020 22:57:49 +0100
Hi,

Marius Bakke <mbakke <at> fastmail.com> skribis:

> Bootstrap fails early on i686-linux when trying to build gash-boot0,
> which fails thusly:

[...]

>    ?: 1 [primitive-load-path "compression/bzip2" ...]
> In compression/bzip2.scm:
>   45: 0 [#<procedure 8499a10 ()>]
>
> compression/bzip2.scm:45:18: In procedure #<procedure 8499a10 ()>:
> compression/bzip2.scm:45:18: ERROR: R6RS exception:
>   1. &error
>   2. &who: bzip2
>   3. &message: "This module requires at least 32-bit fixnums"
>   4. &irritants: ()
> command "tar" "xvf" "/gnu/store/bspn36jhcd2ky6ih7wnh9z0iz867flc2-gash-0.2.0.tar.gz" failed with status 1

The error comes from the (compression bzip2) module included in
“bootar”.

I can see two solutions:

  1. Remove bzip2 support from bootar (it’s not actually needed, is it?).

  2. Modify (compression bzip2) so that it errors out on first use
     rather than at load time.

Timothy, janneke, WDYT?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Fri, 21 Feb 2020 14:12:01 GMT) Full text and rfc822 format available.

Message #11 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Timothy Sample <samplet <at> ngyro.com>, Marius Bakke <mbakke <at> fastmail.com>,
 39699 <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Fri, 21 Feb 2020 15:11:06 +0100
[Message part 1 (text/plain, inline)]
Ludovic Courtès writes:

Hi!

> I can see two solutions:
>
>   1. Remove bzip2 support from bootar (it’s not actually needed, is it?).

Ugly but easiest fix for me, see attached.

>   2. Modify (compression bzip2) so that it errors out on first use
>      rather than at load time.

Or
    3. Port bzip2 to to 32bit.

> Timothy, janneke, WDYT?

I would prefer 3., with the fix going upstream.  This opens the path to
really using bzip2 in the bootstrap.  2. could be a nice intermediate
step, but I would not know how to do that nicely, as we fetch
(compression bzip2) from upstream.  Timothy?

How about applying attached patch that implements 1. and revert it once
we get to 2. or 3.

janneke

[0001-gnu-commencement-bootar-Build-fix-for-i686-linux.patch (text/x-patch, inline)]
From 06bc492cdc1f476f0caa558546290ceafde357b1 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke <at> gnu.org>
Date: Fri, 21 Feb 2020 07:46:16 +0100
Subject: [PATCH] gnu: commencement: bootar: Build fix for i686-linux.

See #39699

* gnu/packages/commencement.scm (bootar)[i686-linux]: Stub bzip2.
---
 gnu/packages/commencement.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index e3800d84a5..4901391073 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -111,6 +111,15 @@
                       (guile (string-append guile-dir "/bin/guile")))
                  (invoke guile "--no-auto-compile" source)
                  (chdir "bootar")
+                 (when ,(equal? (%current-system) "i686-linux")
+                   (delete-file "scripts/bzip2.in")
+                   (delete-file "compression/bzip2.scm")
+                   (with-output-to-file "compression/bzip2.scm"
+                     (lambda _
+                       (display "(define-module (compression bzip2))
+(define-public is-bzip2-file? (const #f))
+(define-public make-bzip2-input-port (const #f))
+"))))
                  #t)))
            (replace 'configure (bootstrap-configure ,version "." "scripts"))
            (replace 'build (bootstrap-build "."))
-- 
2.24.0

[Message part 3 (text/plain, inline)]
-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com

Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Fri, 21 Feb 2020 14:20:01 GMT) Full text and rfc822 format available.

Message #14 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Timothy Sample <samplet <at> ngyro.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Marius Bakke <mbakke <at> fastmail.com>, 39699 <at> debbugs.gnu.org,
 Jan Nieuwenhuizen <janneke <at> gnu.org>
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Fri, 21 Feb 2020 09:18:55 -0500
Hi Ludo,

Ludovic Courtès <ludo <at> gnu.org> writes:

> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> Bootstrap fails early on i686-linux when trying to build gash-boot0,
>> which fails thusly:
>
> [...]
>
>>    ?: 1 [primitive-load-path "compression/bzip2" ...]
>> In compression/bzip2.scm:
>>   45: 0 [#<procedure 8499a10 ()>]
>>
>> compression/bzip2.scm:45:18: In procedure #<procedure 8499a10 ()>:
>> compression/bzip2.scm:45:18: ERROR: R6RS exception:
>>   1. &error
>>   2. &who: bzip2
>>   3. &message: "This module requires at least 32-bit fixnums"
>>   4. &irritants: ()
>> command "tar" "xvf" "/gnu/store/bspn36jhcd2ky6ih7wnh9z0iz867flc2-gash-0.2.0.tar.gz" failed with status 1
>
> The error comes from the (compression bzip2) module included in
> “bootar”.
>
> I can see two solutions:
>
>   1. Remove bzip2 support from bootar (it’s not actually needed, is it?).
>
>   2. Modify (compression bzip2) so that it errors out on first use
>      rather than at load time.
>
> Timothy, janneke, WDYT?

Both of those are good options.  The 32-bit fixnum limit is a something
of a development artifact.  I think I can remove it without problems.
If not, I will just remove BZip2 support for now, since I think you’re
right that we don’t use it.

Sorry for the little hiccup!


-- Tim




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Fri, 21 Feb 2020 20:39:02 GMT) Full text and rfc822 format available.

Message #17 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Jan Nieuwenhuizen <janneke <at> gnu.org>
Cc: Timothy Sample <samplet <at> ngyro.com>, Marius Bakke <mbakke <at> fastmail.com>,
 39699 <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Fri, 21 Feb 2020 21:38:36 +0100
Hi!

Jan Nieuwenhuizen <janneke <at> gnu.org> skribis:

> Ludovic Courtès writes:
>
> Hi!
>
>> I can see two solutions:
>>
>>   1. Remove bzip2 support from bootar (it’s not actually needed, is it?).
>
> Ugly but easiest fix for me, see attached.
>
>>   2. Modify (compression bzip2) so that it errors out on first use
>>      rather than at load time.
>
> Or
>     3. Port bzip2 to to 32bit.

Indeed!

> I would prefer 3., with the fix going upstream.  This opens the path to
> really using bzip2 in the bootstrap.  2. could be a nice intermediate
> step, but I would not know how to do that nicely, as we fetch
> (compression bzip2) from upstream.  Timothy?

I don’t think we’ll introduce new uses of bzip2 on the bootstrap path.
So if it’s unnecessary today, it may remain unnecessary in the
foreseeable future.

> From 06bc492cdc1f476f0caa558546290ceafde357b1 Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen <janneke <at> gnu.org>
> Date: Fri, 21 Feb 2020 07:46:16 +0100
> Subject: [PATCH] gnu: commencement: bootar: Build fix for i686-linux.
>
> See #39699

Nitpick: “Fixes <https://bugs.gnu.org/39699>.”  :-)

> * gnu/packages/commencement.scm (bootar)[i686-linux]: Stub bzip2.

[...]

>                   (chdir "bootar")
> +                 (when ,(equal? (%current-system) "i686-linux")
> +                   (delete-file "scripts/bzip2.in")
> +                   (delete-file "compression/bzip2.scm")
> +                   (with-output-to-file "compression/bzip2.scm"
> +                     (lambda _
> +                       (display "(define-module (compression bzip2))
> +(define-public is-bzip2-file? (const #f))
> +(define-public make-bzip2-input-port (const #f))
> +"))))

Perhaps you can write it in a way that avoids rebuilds on x86_64:

  ,@(if (equal? …)
        '((…))
        '())

Or actually, we can just remove the functionality unconditionally for
now since it could be error-prone to have different features depending
on the platform.

WDYT?

Timothy Sample <samplet <at> ngyro.com> skribis:

> Both of those are good options.  The 32-bit fixnum limit is a something
> of a development artifact.  I think I can remove it without problems.
> If not, I will just remove BZip2 support for now, since I think you’re
> right that we don’t use it.

For now I guess we can apply something as discussed above, but in the
longer run, it’d be nice to have that 32-bit limit waived!

> Sorry for the little hiccup!

No problem, it’s really great that we got these binary seeds further
reduced!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Fri, 21 Feb 2020 21:31:02 GMT) Full text and rfc822 format available.

Message #20 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Timothy Sample <samplet <at> ngyro.com>, Marius Bakke <mbakke <at> fastmail.com>,
 39699 <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Fri, 21 Feb 2020 22:30:17 +0100
Ludovic Courtès writes:

Hi!

>> I would prefer 3., with the fix going upstream.  This opens the path to
>> really using bzip2 in the bootstrap.  2. could be a nice intermediate
>> step, but I would not know how to do that nicely, as we fetch
>> (compression bzip2) from upstream.  Timothy?
>
> I don’t think we’ll introduce new uses of bzip2 on the bootstrap path.
> So if it’s unnecessary today, it may remain unnecessary in the
> foreseeable future.

That's a helpful perspective; Yes, I agree.

>> See #39699
>
> Nitpick: “Fixes <https://bugs.gnu.org/39699>.”  :-)

Thanks.

>>                   (chdir "bootar")
>> +                 (when ,(equal? (%current-system) "i686-linux")
>> +                   (delete-file "scripts/bzip2.in")
>> +                   (delete-file "compression/bzip2.scm")
>> +                   (with-output-to-file "compression/bzip2.scm"
>> +                     (lambda _
>> +                       (display "(define-module (compression bzip2))
>> +(define-public is-bzip2-file? (const #f))
>> +(define-public make-bzip2-input-port (const #f))
>> +"))))
>
> Perhaps you can write it in a way that avoids rebuilds on x86_64:
>
>   ,@(if (equal? …)
>         '((…))
>         '())

Neat...

> Or actually, we can just remove the functionality unconditionally for
> now since it could be error-prone to have different features depending
> on the platform.
>
> WDYT?

Yes, I removed it.  Hoping that's okay.  We just decided above it's
adding an unnecessary "if".

@Timothy: if you want to change this in bootar itself and remove the
workaround from commencement, please feel free.  Pushed to core-updates
as

    a82cf70e8ae4c8dcf03d2633f09dcfc8bb6d6d1e

Thanks,
janneke

-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com




Reply sent to Jan Nieuwenhuizen <janneke <at> gnu.org>:
You have taken responsibility. (Fri, 21 Feb 2020 21:31:02 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <mbakke <at> fastmail.com>:
bug acknowledged by developer. (Fri, 21 Feb 2020 21:31:03 GMT) Full text and rfc822 format available.

Message #25 received at 39699-done <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Timothy Sample <samplet <at> ngyro.com>, Marius Bakke <mbakke <at> fastmail.com>,
 39699-done <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Fri, 21 Feb 2020 22:30:43 +0100
Ludovic Courtès writes:

Hi!

>> I would prefer 3., with the fix going upstream.  This opens the path to
>> really using bzip2 in the bootstrap.  2. could be a nice intermediate
>> step, but I would not know how to do that nicely, as we fetch
>> (compression bzip2) from upstream.  Timothy?
>
> I don’t think we’ll introduce new uses of bzip2 on the bootstrap path.
> So if it’s unnecessary today, it may remain unnecessary in the
> foreseeable future.

That's a helpful perspective; Yes, I agree.

>> See #39699
>
> Nitpick: “Fixes <https://bugs.gnu.org/39699>.”  :-)

Thanks.

>>                   (chdir "bootar")
>> +                 (when ,(equal? (%current-system) "i686-linux")
>> +                   (delete-file "scripts/bzip2.in")
>> +                   (delete-file "compression/bzip2.scm")
>> +                   (with-output-to-file "compression/bzip2.scm"
>> +                     (lambda _
>> +                       (display "(define-module (compression bzip2))
>> +(define-public is-bzip2-file? (const #f))
>> +(define-public make-bzip2-input-port (const #f))
>> +"))))
>
> Perhaps you can write it in a way that avoids rebuilds on x86_64:
>
>   ,@(if (equal? …)
>         '((…))
>         '())

Neat...

> Or actually, we can just remove the functionality unconditionally for
> now since it could be error-prone to have different features depending
> on the platform.
>
> WDYT?

Yes, I removed it.  Hoping that's okay.  We just decided above it's
adding an unnecessary "if".

@Timothy: if you want to change this in bootar itself and remove the
workaround from commencement, please feel free.  Pushed to core-updates
as

    a82cf70e8ae4c8dcf03d2633f09dcfc8bb6d6d1e

Thanks,
janneke

-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Fri, 21 Feb 2020 23:29:01 GMT) Full text and rfc822 format available.

Message #28 received at 39699 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Jan Nieuwenhuizen <janneke <at> gnu.org>
Cc: Timothy Sample <samplet <at> ngyro.com>, Marius Bakke <mbakke <at> fastmail.com>,
 39699 <at> debbugs.gnu.org
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Sat, 22 Feb 2020 00:28:46 +0100
Jan Nieuwenhuizen <janneke <at> gnu.org> skribis:

> @Timothy: if you want to change this in bootar itself and remove the
> workaround from commencement, please feel free.  Pushed to core-updates
> as
>
>     a82cf70e8ae4c8dcf03d2633f09dcfc8bb6d6d1e

Thanks!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Sat, 22 Feb 2020 05:09:01 GMT) Full text and rfc822 format available.

Message #31 received at 39699-done <at> debbugs.gnu.org (full text, mbox):

From: Timothy Sample <samplet <at> ngyro.com>
To: Jan Nieuwenhuizen <janneke <at> gnu.org>
Cc: 39699-done <at> debbugs.gnu.org, Ludovic Courtès <ludo <at> gnu.org>,
 Marius Bakke <mbakke <at> fastmail.com>
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Sat, 22 Feb 2020 00:07:55 -0500
Hi all,

Jan Nieuwenhuizen <janneke <at> gnu.org> writes:

> @Timothy: if you want to change this in bootar itself and remove the
> workaround from commencement, please feel free.

Done in 4b807ef87c4634e8bea1431d47ee3df3b519145d.


-- Tim




Information forwarded to bug-guix <at> gnu.org:
bug#39699; Package guix. (Sat, 22 Feb 2020 20:42:02 GMT) Full text and rfc822 format available.

Message #34 received at 39699-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Timothy Sample <samplet <at> ngyro.com>
Cc: 39699-done <at> debbugs.gnu.org, Marius Bakke <mbakke <at> fastmail.com>,
 Jan Nieuwenhuizen <janneke <at> gnu.org>
Subject: Re: bug#39699: [core-updates] gash-boot0 fails on i686-linux
Date: Sat, 22 Feb 2020 21:41:34 +0100
Hey!

Timothy Sample <samplet <at> ngyro.com> skribis:

> Jan Nieuwenhuizen <janneke <at> gnu.org> writes:
>
>> @Timothy: if you want to change this in bootar itself and remove the
>> workaround from commencement, please feel free.
>
> Done in 4b807ef87c4634e8bea1431d47ee3df3b519145d.

Thanks!

In other news, I’ve mirrored bootar-1{,a}.ses on ftp.gnu.org so we have
an additional copy out there.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 22 Mar 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 7 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.