* bug#39699: [core-updates] gash-boot0 fails on i686-linux
@ 2020-02-20 17:24 Marius Bakke
2020-02-20 21:57 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Marius Bakke @ 2020-02-20 17:24 UTC (permalink / raw)
To: 39699
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-20 17:24 bug#39699: [core-updates] gash-boot0 fails on i686-linux Marius Bakke
@ 2020-02-20 21:57 ` Ludovic Courtès
2020-02-21 14:11 ` Jan Nieuwenhuizen
2020-02-21 14:18 ` Timothy Sample
0 siblings, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2020-02-20 21:57 UTC (permalink / raw)
To: Marius Bakke, Timothy Sample, Jan Nieuwenhuizen; +Cc: 39699
Hi,
Marius Bakke <mbakke@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’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-20 21:57 ` Ludovic Courtès
@ 2020-02-21 14:11 ` Jan Nieuwenhuizen
2020-02-21 20:38 ` Ludovic Courtès
2020-02-21 14:18 ` Timothy Sample
1 sibling, 1 reply; 10+ messages in thread
From: Jan Nieuwenhuizen @ 2020-02-21 14:11 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 39699
[-- Attachment #1: Type: text/plain, Size: 727 bytes --]
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
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-commencement-bootar-Build-fix-for-i686-linux.patch --]
[-- Type: text/x-patch, Size: 1361 bytes --]
From 06bc492cdc1f476f0caa558546290ceafde357b1 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@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
[-- Attachment #3: Type: text/plain, Size: 152 bytes --]
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-21 14:11 ` Jan Nieuwenhuizen
@ 2020-02-21 20:38 ` Ludovic Courtès
2020-02-21 21:30 ` Jan Nieuwenhuizen
2020-02-21 21:30 ` Jan Nieuwenhuizen
0 siblings, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2020-02-21 20:38 UTC (permalink / raw)
To: Jan Nieuwenhuizen; +Cc: 39699
Hi!
Jan Nieuwenhuizen <janneke@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@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@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’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-21 20:38 ` Ludovic Courtès
@ 2020-02-21 21:30 ` Jan Nieuwenhuizen
2020-02-21 23:28 ` Ludovic Courtès
2020-02-21 21:30 ` Jan Nieuwenhuizen
1 sibling, 1 reply; 10+ messages in thread
From: Jan Nieuwenhuizen @ 2020-02-21 21:30 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 39699
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@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-21 20:38 ` Ludovic Courtès
2020-02-21 21:30 ` Jan Nieuwenhuizen
@ 2020-02-21 21:30 ` Jan Nieuwenhuizen
2020-02-22 5:07 ` Timothy Sample
1 sibling, 1 reply; 10+ messages in thread
From: Jan Nieuwenhuizen @ 2020-02-21 21:30 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 39699-done
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@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-21 21:30 ` Jan Nieuwenhuizen
@ 2020-02-22 5:07 ` Timothy Sample
2020-02-22 20:41 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Timothy Sample @ 2020-02-22 5:07 UTC (permalink / raw)
To: Jan Nieuwenhuizen; +Cc: 39699-done
Hi all,
Jan Nieuwenhuizen <janneke@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
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-22 5:07 ` Timothy Sample
@ 2020-02-22 20:41 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2020-02-22 20:41 UTC (permalink / raw)
To: Timothy Sample; +Cc: 39699-done
Hey!
Timothy Sample <samplet@ngyro.com> skribis:
> Jan Nieuwenhuizen <janneke@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’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#39699: [core-updates] gash-boot0 fails on i686-linux
2020-02-20 21:57 ` Ludovic Courtès
2020-02-21 14:11 ` Jan Nieuwenhuizen
@ 2020-02-21 14:18 ` Timothy Sample
1 sibling, 0 replies; 10+ messages in thread
From: Timothy Sample @ 2020-02-21 14:18 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 39699
Hi Ludo,
Ludovic Courtès <ludo@gnu.org> writes:
> Marius Bakke <mbakke@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
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-02-22 20:42 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-20 17:24 bug#39699: [core-updates] gash-boot0 fails on i686-linux Marius Bakke
2020-02-20 21:57 ` Ludovic Courtès
2020-02-21 14:11 ` Jan Nieuwenhuizen
2020-02-21 20:38 ` Ludovic Courtès
2020-02-21 21:30 ` Jan Nieuwenhuizen
2020-02-21 23:28 ` Ludovic Courtès
2020-02-21 21:30 ` Jan Nieuwenhuizen
2020-02-22 5:07 ` Timothy Sample
2020-02-22 20:41 ` Ludovic Courtès
2020-02-21 14:18 ` Timothy Sample
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).