guix build bootstrap-tarballs installed but strip-install failed

  • Open
  • quality assurance status badge
Details
2 participants
  • Bengt Richter
  • Jan Nieuwenhuizen
Owner
unassigned
Submitted by
Bengt Richter
Severity
normal
B
B
Bengt Richter wrote on 29 Sep 2019 09:07
(name . New-Bug)(address . bug-guix@gnu.org)
20190929070712.GA127225@PhantoNv4ArchGx.localdomain
Attachment: file
J
J
Jan Nieuwenhuizen wrote on 29 Sep 2019 11:05
(name . Bengt Richter)(address . bokr@bokr.com)(address . 37549@debbugs.gnu.org)
878sq74glk.fsf@gnu.org
Bengt Richter writes:

Toggle quote (3 lines)
> I tried
> guix build bootstrap-tarballs

Yes, sadly that's not supported on current master. It should work on
core-updates. So I tried that and found it fails in similar ways.

Toggle quote (5 lines)
> ERROR: In procedure lstat:
> In procedure lstat: No such file or directory: "/gnu/store/xjbkz6645qccnvfkmbc4wsvh7lffg2jn-mes-minimal-0.20/share/mes/scaffold"
> builder for `/gnu/store/w8y538fhxr9d9sm6653jq5xsl89q0aqk-mes-minimal-0.20.drv' failed with exit code 1
> build of /gnu/store/w8y538fhxr9d9sm6653jq5xsl89q0aqk-mes-minimal-0.20.drv failed

Ah, that's not good. The new Reduced Binary Seed bootstrap must use Mes
0.19. Building the new bootstrap binaries is -- apparently -- only
works on tag bootstrap-20190815.

Toggle quote (2 lines)
> HTH in some way.

Yes, thank you; I'm looking into it. Mes should be fixed on 0.19,
MesCC-Tools schould be fixed on 0.5.2 and I just found that building
bootstrap-bash also breaks due to an update to bash-5.

Greetings,
jannneke

--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
J
J
Jan Nieuwenhuizen wrote on 29 Sep 2019 13:33
(name . Bengt Richter)(address . bokr@bokr.com)(address . 37549@debbugs.gnu.org)
87v9tb2v6y.fsf@gnu.org
Jan Nieuwenhuizen writes:

Toggle quote (7 lines)
> Bengt Richter writes:
>> I tried
>> guix build bootstrap-tarballs
>
> Yes, sadly that's not supported on current master. It should work on
> core-updates. So I tried that and found it fails in similar ways.

The attached patches resurrect the creation of bootstrap tarballs.

Note that plain mes (./pre-inst-env guix build mes) still does not
build; that also needs #37550.

Greetings,
janneke
From 74607653378ca1bcfed6a415a7432fd2a8af7105 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sun, 29 Sep 2019 10:36:46 +0200
Subject: [PATCH 1/3] bootstrap: mescc-tools: Use mescc-tools-0.5.2,
mescc-tools.

* gnu/packages/mes.scm (mescc-tools-0.5.2): New variable; rename from
mescc-tools.
(mescc-tools): Rename from mescc-tools-0.6.1. Fix build.
* gnu/packages/make-bootstrap.scm (%mescc-tools-static): Inherit fixed
mescc-tools-0.5.2.
---
gnu/packages/make-bootstrap.scm | 25 +------------------------
gnu/packages/mes.scm | 17 ++++++++++++-----
2 files changed, 13 insertions(+), 29 deletions(-)

Toggle diff (89 lines)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 4594e2fe36..8db551b3a7 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -594,34 +594,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t))))
(inputs `(("gcc" ,%gcc-static)))))
-;; One package: build + remove store references
-;; (define %mescc-tools-static-stripped
-;; ;; A statically linked Mescc Tools with store references removed, for
-;; ;; bootstrap.
-;; (package
-;; (inherit mescc-tools)
-;; (name "mescc-tools-static-stripped")
-;; (arguments
-;; `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-;; "CC=gcc -static")
-;; #:test-target "test"
-;; #:phases (modify-phases %standard-phases
-;; (delete 'configure)
-;; (add-after 'install 'strip-store-references
-;; (lambda _
-;; (let* ((out (assoc-ref %outputs "out"))
-;; (bin (string-append out "/bin")))
-;; (for-each (lambda (file)
-;; (let ((target (string-append bin "/" file)))
-;; (format #t "strippingg `~a'...~%" target)
-;; (remove-store-references target)))
-;; '( "M1" "blood-elf" "hex2"))))))))))
-
;; Two packages: first build static, bare minimum content.
(define %mescc-tools-static
;; A statically linked MesCC Tools.
(package
- (inherit mescc-tools)
+ (inherit mescc-tools-0.5.2)
(name "mescc-tools-static")
(arguments
`(#:system "i686-linux"
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index e1cb736b82..3f76eeb886 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -34,7 +34,8 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix licenses)
- #:use-module (guix packages))
+ #:use-module (guix packages)
+ #:use-module (guix utils))
(define-public nyacc-0.86
(package
@@ -134,7 +135,8 @@ Guile.")
(home-page "https://gnu.org/software/mes")
(license gpl3+)))
-(define-public mescc-tools
+(define-public mescc-tools-0.5.2
+ ;; Mescc-tools used for bootstrap.
(let ((commit "bb062b0da7bf2724ca40f9002b121579898d4ef7")
(revision "0")
(version "0.5.2"))
@@ -166,9 +168,9 @@ get_machine.")
(home-page "https://savannah.nongnu.org/projects/mescc-tools")
(license gpl3+))))
-(define-public mescc-tools-0.6.1
+(define-public mescc-tools
(package
- (inherit mescc-tools)
+ (inherit mescc-tools-0.5.2)
(name "mescc-tools")
(version "0.6.1")
(source (origin
@@ -180,4 +182,9 @@ get_machine.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "06jpvq6xfjzn2al6b4rdwd3zv3h4cvilc4n9gqcnjr9cr6wjpw2n"))))))
+ "06jpvq6xfjzn2al6b4rdwd3zv3h4cvilc4n9gqcnjr9cr6wjpw2n"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments mescc-tools-0.5.2)
+ ((#:make-flags flags)
+ `(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "CC=gcc"))))))
--
2.23.0
From 98382db4246a418b9e85a65f3e1a292fa5001e91 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sun, 29 Sep 2019 10:39:40 +0200
Subject: [PATCH 2/3] bootstrap: mes: Add mes-0.19.

* gnu/packages/mes.scm (mes-0.19): New variable.
(mes): Inherit it.
* gnu/packages/make-bootstrap.scm (%mes-minimal): Likewise.
---
gnu/packages/make-bootstrap.scm | 35 +--------------------------------
gnu/packages/mes.scm | 27 ++++++++++++++++++++-----
2 files changed, 23 insertions(+), 39 deletions(-)

Toggle diff (116 lines)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 8db551b3a7..b1c4feb4f4 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -633,45 +633,12 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t))))
(inputs `(("mescc-tools" ,%mescc-tools-static)))))
-;; (define-public %mes-minimal-stripped
-;; ;; A minimal Mes without documentation dependencies, for bootstrap.
-;; (let ((triplet "i686-unknown-linux-gnu"))
-;; (package
-;; (inherit mes)
-;; (name "mes-minimal-stripped")
-;; (native-inputs
-;; `(("guile" ,guile-2.2)))
-;; (arguments
-;; `(#:system "i686-linux"
-;; #:strip-binaries? #f
-;; #:configure-flags '("--mes")
-;; #:phases
-;; (modify-phases %standard-phases
-;; (delete 'patch-shebangs)
-;; (add-after 'install 'strip-install
-;; (lambda _
-;; (let* ((out (assoc-ref %outputs "out"))
-;; (share (string-append out "/share")))
-;; (delete-file-recursively (string-append out "/lib/guile"))
-;; (delete-file-recursively (string-append share "/guile"))
-;; (delete-file-recursively (string-append share "/mes/scaffold"))
-
-;; (for-each delete-file
-;; (find-files
-;; (string-append share "/mes/lib") "\\.(h|c)"))
-
-;; (for-each (lambda (dir)
-;; (for-each remove-store-references
-;; (find-files (string-append out "/" dir)
-;; ".*")))
-;; '("bin" "share/mes")))))))))))
-
;; Two packages: first build static, bare minimum content.
(define-public %mes-minimal
;; A minimal Mes without documentation.
(let ((triplet "i686-unknown-linux-gnu"))
(package
- (inherit mes)
+ (inherit mes-0.19)
(name "mes-minimal")
(native-inputs
`(("guile" ,guile-2.2)))
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 3f76eeb886..a01e98b855 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -38,6 +38,7 @@
#:use-module (guix utils))
(define-public nyacc-0.86
+ ;; Nyacc used for bootstrap.
(package
(name "nyacc")
(version "0.86.0")
@@ -91,22 +92,23 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(inputs
`(("guile" ,guile-2.2)))))
-(define-public mes
+(define-public mes-0.19
+ ;; Mes used for bootstrap.
(package
(name "mes")
- (version "0.20")
+ (version "0.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mes/"
"mes-" version ".tar.gz"))
(sha256
(base32
- "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n"))))
+ "15h4yhaywdc0djpjlin2jz1kzahpqxfki0r0aav1qm9nxxmnp1l0"))))
(build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs
- `(("mescc-tools" ,mescc-tools)
- ("nyacc" ,nyacc)))
+ `(("mescc-tools" ,mescc-tools-0.5.2)
+ ("nyacc" ,nyacc-0.86)))
(native-inputs
`(("guile" ,guile-2.2)
,@(let ((target-system (or (%current-target-system)
@@ -135,6 +137,21 @@ Guile.")
(home-page "https://gnu.org/software/mes")
(license gpl3+)))
+(define-public mes
+ (package
+ (inherit mes-0.19)
+ (version "0.20")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/mes/"
+ "mes-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n"))))
+ (propagated-inputs
+ `(("mescc-tools" ,mescc-tools)
+ ("nyacc" ,nyacc)))))
+
(define-public mescc-tools-0.5.2
;; Mescc-tools used for bootstrap.
(let ((commit "bb062b0da7bf2724ca40f9002b121579898d4ef7")
--
2.23.0
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
J
J
Jan Nieuwenhuizen wrote on 29 Sep 2019 18:13
(name . Bengt Richter)(address . bokr@bokr.com)(address . 37549@debbugs.gnu.org)
87muen2i82.fsf@gnu.org
Jan Nieuwenhuizen writes:

Toggle quote (12 lines)
> Jan Nieuwenhuizen writes:
>
>> Bengt Richter writes:
>>> I tried
>>> guix build bootstrap-tarballs
>>
>> Yes, sadly that's not supported on current master. It should work on
>> core-updates. So I tried that and found it fails in similar ways.
>
> The attached patches resurrect the creation of bootstrap tarballs.

> +(define-public mescc-tools
..
Toggle quote (3 lines)
> + (substitute-keyword-arguments (package-arguments mescc-tools-0.5.2)
> + ((#:make-flags flags)

Changed to

((#:make-flags _)

As discussed on IRC.

Toggle quote (4 lines)
> + `(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
> + "CC=gcc"))))))
> --

After discussing on IRC, pushed to core-updates as 737c83f0ff9977572516c65502bdde92abd18629.

This means that

./pre-inst-env guix build bootstrap-tarballs

now works on core-updates. It will not work on master until
core-updates is merged.

Greetings,
janneke

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