* [bug#48759] [PATCH]: Replace '%build-inputs' with 'inputs' in some places and fix 'smalltalk' cross-compilation somewhat
@ 2021-05-31 12:30 Maxime Devos
2021-06-04 11:46 ` bug#48759: " Mathieu Othacehe
0 siblings, 1 reply; 2+ messages in thread
From: Maxime Devos @ 2021-05-31 12:30 UTC (permalink / raw)
To: 48759
[-- Attachment #1.1: Type: text/plain, Size: 1891 bytes --]
Hi guix,
Overview:
(%build-inputs --> inputs, native-inputs)
#1: gnu: ci: Use 'inputs' in build phases instead of '%build-inputs'.
#2: gnu: smalltalk: Use 'inputs' in phases instead of '%build-inputs'.
#3: gnu: neovim: Use 'inputs' in phases instead of '%build-inputs'.
#4: gnu: qemacs: Use 'native-inputs' instead of '%build-inputs'.
#5: gnu: ding: Use 'inputs' in build phases instead of '%build-inputs'.
(more smalltalk fixes)
#6: gnu: smalltalk: Move 'zip' from 'inputs' to 'native-inputs'.
#7: gnu: smalltalk: Find glibc even when cross-compiling.
See patch descriptions for details.
This would cause 5 rebuilds:
./pre-inst-env guix refresh --list-dependents ding qemacs neovim smalltalk cuirass
No dependents other than themselves: cuirass@1.0.0-17.31fd4d4 smalltalk@3.2.91 neovim@0.4.4 qemacs@0.3.3 ding@1.8.1
Building succeeds:
./pre-inst-env guix build ding qemacs neovim smalltalk cuirass
Cross-compilation: somewhat improved
# ding: ok, refers to binaries of correct architecture
# qemacs: cannot cross-compile, because its dependency libxv
# tries to run a test program (even when cross-compiling)
# (during configuration, "checking whether malloc(0) returns NULL...")
# neovim: cannot cross-compile, because its dependency "libtermkey" is not cross-compilable
# cuirass: the meson build system does not support cross-compilaion
# smalltalk: still some failures, even after patches (#6 and #7)
#
# ./gst --no-user-files --kernel-dir "./kernel" --image gst.im -iQ /dev/null
# ./gst: line 117: /tmp/guix-build-smalltalk-3.2.91.drv-0/smalltalk-3.2.91/.libs/gst: cannot execute binary file: Exec format error
# ./gst: line 117: /tmp/guix-build-smalltalk-3.2.91.drv-0/smalltalk-3.2.91/.libs/gst: Success
./pre-inst-env guix build ding --target=aarch64-linux-gnu
Greetings,
Maxime.
[-- Attachment #1.2: 0001-gnu-ci-Use-inputs-in-build-phases-instead-of-build-i.patch --]
[-- Type: text/x-patch, Size: 1106 bytes --]
From 303aa5a27188bdb2df534b4ca3f063125684a752 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 25 May 2021 15:20:34 +0200
Subject: [PATCH 1/7] gnu: ci: Use 'inputs' in build phases instead of
'%build-inputs'.
In build phases, the former is preferred.
* gnu/packages/ci.scm
(cuirass)[arguments]<#:phases>{wrap-program}: Use 'inputs'
argument instead of '%build-inputs'.
---
gnu/packages/ci.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index c850d37b47..c85c3e5927 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -141,7 +141,7 @@
(guix (assoc-ref inputs "guix"))
(deps (list avahi gcrypt json zmq squee git bytes
fibers zlib matd tls mail guix))
- (guile (assoc-ref %build-inputs "guile"))
+ (guile (assoc-ref inputs "guile"))
(effective
(read-line
(open-pipe* OPEN_READ
--
2.31.1
[-- Attachment #1.3: 0002-gnu-smalltalk-Use-inputs-in-phases-instead-of-build-.patch --]
[-- Type: text/x-patch, Size: 1175 bytes --]
From 336811809316cfa365a6a0f29f63eac5c737f187 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 25 May 2021 15:22:24 +0200
Subject: [PATCH 2/7] gnu: smalltalk: Use 'inputs' in phases instead of
'%build-inputs'.
In build phases, the former is preferred.
* gnu/packages/smalltalk.scm
(smalltalk)[arguments]<#:phases>{fix-libc}: Use 'inputs'
argument instead of '%build-inputs'.
---
gnu/packages/smalltalk.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index ea1798ac13..a572570b13 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -102,8 +102,8 @@
(find-files "doc" "\\.info"))
#t))
(add-before 'configure 'fix-libc
- (lambda _
- (let ((libc (assoc-ref %build-inputs "libc")))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((libc (assoc-ref inputs "libc")))
(substitute* "libc.la.in"
(("@LIBC_SO_NAME@") "libc.so")
(("@LIBC_SO_DIR@") (string-append libc "/lib"))))
--
2.31.1
[-- Attachment #1.4: 0003-gnu-neovim-Use-inputs-in-phases-instead-of-build-inp.patch --]
[-- Type: text/x-patch, Size: 1191 bytes --]
From adb0d0483fbf0f51d038042afc7801069d25c6a3 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 25 May 2021 15:41:15 +0200
Subject: [PATCH 3/7] gnu: neovim: Use 'inputs' in phases instead of
'%build-inputs'.
In build phases, the former is preferred.
* gnu/packages/vim.scm
(neovim)[arguments]<#:phases>{set-lua-path}: Use 'inputs'
argument instead of '%build-inputs'.
---
gnu/packages/vim.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 47ac984fc7..24c51b84c3 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -657,7 +657,7 @@ are detected, the user is notified.")))
(lambda (prefix)
(let ((path (string-append prefix "/share/lua/" lua-version)))
(string-append path "/?.lua;" path "/?/?.lua"))))
- (lua-inputs (map (cute assoc-ref %build-inputs <>)
+ (lua-inputs (map (cute assoc-ref inputs <>)
'("lua"
"lua-luv"
"lua-lpeg"
--
2.31.1
[-- Attachment #1.5: 0004-gnu-qemacs-Use-native-inputs-instead-of-build-inputs.patch --]
[-- Type: text/x-patch, Size: 1863 bytes --]
From 5d7c38e0604d9df70b9dabab99f9ba8c3fd1ee39 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 25 May 2021 15:49:05 +0200
Subject: [PATCH 4/7] gnu: qemacs: Use 'native-inputs' instead of
'%build-inputs'.
In build phases, the former (or 'inputs', as appropriate) is preferred.
* gnu/packages/text-editors.scm
(qemacs)[arguments]<#:phases>{install-extra-documentation}: Use
'native-inputs' argument instead of '%build-inputs'.
---
gnu/packages/text-editors.scm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 47b6e93f29..f7e589e414 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -524,13 +524,14 @@ OpenBSD team.")
#t)))
(add-after 'install 'install-extra-documentation
;; Install sample configuration file, Info, and HTML manual.
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let* ((share (string-append (assoc-ref outputs "out") "/share"))
(doc (string-append share "/doc/" ,name "-" ,version))
(html (string-append share "/html"))
(info (string-append share "/info"))
- (makeinfo (string-append (assoc-ref %build-inputs "texinfo")
- "/bin/makeinfo")))
+ (makeinfo (string-append
+ (assoc-ref (or native-inputs inputs) "texinfo")
+ "/bin/makeinfo")))
;; First fix Texinfo documentation, create appropriate
;; directories, then generate Info and HTML files there.
(substitute* "qe-doc.texi"
--
2.31.1
[-- Attachment #1.6: 0005-gnu-ding-Use-inputs-in-build-phases-instead-of-build.patch --]
[-- Type: text/x-patch, Size: 1363 bytes --]
From 6162b2c51b3e2f084c3a536fd4f4cabbdca89d59 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 25 May 2021 15:58:33 +0200
Subject: [PATCH 5/7] gnu: ding: Use 'inputs' in build phases instead of
'%build-inputs'.
In build phases, the former is preferred.
* gnu/packages/dictionaries.scm
(ding)[arguments]<#:phases>{install}: Use 'inputs' argument instead
of '%build-inputs'.
---
gnu/packages/dictionaries.scm | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index c4c377580c..db99f9d32f 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -175,11 +175,10 @@ work, such as sentence length and other readability measures.")
(delete 'build)
(delete 'check)
(replace 'install
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(let ((bindir (string-append
(assoc-ref %outputs "out") "/bin"))
- (wish (string-append
- (assoc-ref %build-inputs "tk")
+ (wish (string-append (assoc-ref inputs "tk")
"/bin/wish8.6"))
(sharedir (string-append
(assoc-ref %outputs "out")
--
2.31.1
[-- Attachment #1.7: 0006-gnu-smalltalk-Move-zip-from-inputs-to-native-inputs.patch --]
[-- Type: text/x-patch, Size: 1577 bytes --]
From 008c8e429d6707139d2f67360e01348e2fa16b9d Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Mon, 31 May 2021 13:54:17 +0200
Subject: [PATCH 6/7] gnu: smalltalk: Move 'zip' from 'inputs' to
'native-inputs'.
The 'zip' package is not in the references of 'smalltalk'.
As such, it probably should be a native input, not a regular
input. This can be confirmed by trying to cross-compile
the 'smalltalk' package, without this commit. The configure
script will ask to install InfoZIP.
* gnu/packages/smalltalk.scm
(smalltalk)[inputs]{zip}: Move to ...
(smalltalk)[native-inputs]{zip} ... here.
---
gnu/packages/smalltalk.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index a572570b13..af4b7642ff 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -64,7 +64,8 @@
;; XXX: To be removed with the next release of Smalltalk.
("autoconf" ,autoconf)
("automake" ,automake)
- ("libtool" ,libtool)))
+ ("libtool" ,libtool)
+ ("zip" ,zip)))
;; TODO: These optional dependencies raise the closure size to ~1 GiB
;; from the current ~100 MiB, although some of them might be very
;; useful for end users:
@@ -81,8 +82,7 @@
("libffi" ,libffi)
("libltdl" ,libltdl)
("libsigsegv" ,libsigsegv)
- ("lightning" ,lightning)
- ("zip" ,zip)))
+ ("lightning" ,lightning)))
(arguments
`(#:phases
(modify-phases %standard-phases
--
2.31.1
[-- Attachment #1.8: 0007-gnu-smalltalk-Find-glibc-even-when-cross-compiling.patch --]
[-- Type: text/x-patch, Size: 1787 bytes --]
From dcd7d16b8b89defcedefb4b8a71977d376d04273 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Mon, 31 May 2021 14:07:50 +0200
Subject: [PATCH 7/7] gnu: smalltalk: Find glibc even when cross-compiling.
Curiously, glibc is named "cross-libc" instead of "libc"
when cross-compiling. I don't know why. Anyway, here
is a fix. Smalltalk still fails to cross-compile though.
* gnu/packages/smalltalk.scm
(smalltalk)[arguments]{phases}<#:fix-libc>: Also search for
"cross-libc" instead of only "libc" in 'inputs'.
---
gnu/packages/smalltalk.scm | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index af4b7642ff..20ecc19881 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -103,7 +104,11 @@
#t))
(add-before 'configure 'fix-libc
(lambda* (#:key inputs #:allow-other-keys)
- (let ((libc (assoc-ref inputs "libc")))
+ (let ((libc (or (assoc-ref inputs "libc")
+ ;; When cross-compiling, the input
+ ;; is named "cross-libc" instead of
+ ;; simply "libc". I don't know why.
+ (assoc-ref inputs "cross-libc"))))
(substitute* "libc.la.in"
(("@LIBC_SO_NAME@") "libc.so")
(("@LIBC_SO_DIR@") (string-append libc "/lib"))))
--
2.31.1
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-06-04 11:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-31 12:30 [bug#48759] [PATCH]: Replace '%build-inputs' with 'inputs' in some places and fix 'smalltalk' cross-compilation somewhat Maxime Devos
2021-06-04 11:46 ` bug#48759: " Mathieu Othacehe
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).