From: Marius Bakke <mbakke@fastmail.com>
To: 40908@debbugs.gnu.org
Subject: [bug#40908] [PATCH core-updates 1/5] gnu: %guile-static: Rewrite in terms of 'make-guile-static'.
Date: Mon, 27 Apr 2020 20:22:18 +0200 [thread overview]
Message-ID: <20200427182222.28142-1-mbakke@fastmail.com> (raw)
In-Reply-To: <20200427182027.27813-1-mbakke@fastmail.com>
The derivation remains unchanged.
* gnu/packages/make-bootstrap.scm (make-guile-static): New procedure.
(%guile-static): Adjust accordingly.
---
gnu/packages/make-bootstrap.scm | 124 ++++++++++++++++----------------
1 file changed, 64 insertions(+), 60 deletions(-)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 5716ed3886..f4d7fd6a2a 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -676,70 +676,74 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t))))
(inputs `(("mes" ,%mes-minimal)))))
+(define* (make-guile-static guile patches)
+ (package-with-relocatable-glibc
+ (static-package
+ (package
+ (inherit guile)
+ (source
+ (origin (inherit (package-source guile))
+ (patches (append (map search-patch patches)
+ (origin-patches (package-source guile))))))
+ (name (string-append (package-name guile) "-static"))
+ (synopsis "Statically-linked and relocatable Guile")
+
+ ;; Remove the 'debug' output (see above for the reason.)
+ (outputs (delete "debug" (package-outputs guile)))
+
+ (inputs
+ `(("libunistring:static" ,libunistring "static")
+ ,@(package-inputs guile)))
+
+ (propagated-inputs
+ `(("bdw-gc" ,libgc/static-libs)
+ ,@(alist-delete "bdw-gc"
+ (package-propagated-inputs guile))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile)
+ ((#:configure-flags flags '())
+ ;; When `configure' checks for ltdl availability, it
+ ;; doesn't try to link using libtool, and thus fails
+ ;; because of a missing -ldl. Work around that.
+ ''("LDFLAGS=-ldl"))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+
+ ;; Do not record the absolute file name of 'sh' in
+ ;; (ice-9 popen). This makes 'open-pipe' unusable in
+ ;; a build chroot ('open-pipe*' is fine) but avoids
+ ;; keeping a reference to Bash.
+ (delete 'pre-configure)
+
+ (add-before 'configure 'static-guile
+ (lambda _
+ (substitute* "libguile/Makefile.in"
+ ;; Create a statically-linked `guile'
+ ;; executable.
+ (("^guile_LDFLAGS =")
+ "guile_LDFLAGS = -all-static")
+
+ ;; Add `-ldl' *after* libguile-2.0.la.
+ (("^guile_LDADD =(.*)$" _ ldadd)
+ (string-append "guile_LDADD = "
+ (string-trim-right ldadd)
+ " -ldl\n")))))))
+ ((#:tests? _ #f)
+ ;; There are uses of `dynamic-link' in
+ ;; {foreign,coverage}.test that don't fly here.
+ #f)
+ ((#:parallel-build? _ #f)
+ ;; Work around the fact that the Guile build system is
+ ;; not deterministic when parallel-build is enabled.
+ #f)))))))
+
(define %guile-static
;; A statically-linked Guile that is relocatable--i.e., it can search
;; .scm and .go files relative to its installation directory, rather
;; than in hard-coded configure-time paths.
- (let* ((patches (cons* (search-patch "guile-relocatable.patch")
- (search-patch "guile-default-utf8.patch")
- (search-patch "guile-linux-syscalls.patch")
- (origin-patches (package-source guile-2.0))))
- (source (origin (inherit (package-source guile-2.0))
- (patches patches)))
- (guile (package (inherit guile-2.0)
- (name (string-append (package-name guile-2.0) "-static"))
- (source source)
- (synopsis "Statically-linked and relocatable Guile")
-
- ;; Remove the 'debug' output (see above for the reason.)
- (outputs (delete "debug" (package-outputs guile-2.0)))
-
- (inputs
- `(("libunistring:static" ,libunistring "static")
- ,@(package-inputs guile-2.2)))
-
- (propagated-inputs
- `(("bdw-gc" ,libgc/static-libs)
- ,@(alist-delete "bdw-gc"
- (package-propagated-inputs guile-2.0))))
- (arguments
- (substitute-keyword-arguments (package-arguments guile-2.0)
- ((#:configure-flags flags '())
- ;; When `configure' checks for ltdl availability, it
- ;; doesn't try to link using libtool, and thus fails
- ;; because of a missing -ldl. Work around that.
- ''("LDFLAGS=-ldl"))
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
-
- ;; Do not record the absolute file name of 'sh' in
- ;; (ice-9 popen). This makes 'open-pipe' unusable in
- ;; a build chroot ('open-pipe*' is fine) but avoids
- ;; keeping a reference to Bash.
- (delete 'pre-configure)
-
- (add-before 'configure 'static-guile
- (lambda _
- (substitute* "libguile/Makefile.in"
- ;; Create a statically-linked `guile'
- ;; executable.
- (("^guile_LDFLAGS =")
- "guile_LDFLAGS = -all-static")
-
- ;; Add `-ldl' *after* libguile-2.0.la.
- (("^guile_LDADD =(.*)$" _ ldadd)
- (string-append "guile_LDADD = "
- (string-trim-right ldadd)
- " -ldl\n")))))))
- ((#:tests? _ #f)
- ;; There are uses of `dynamic-link' in
- ;; {foreign,coverage}.test that don't fly here.
- #f)
- ((#:parallel-build? _ #f)
- ;; Work around the fact that the Guile build system is
- ;; not deterministic when parallel-build is enabled.
- #f))))))
- (package-with-relocatable-glibc (static-package guile))))
+ (make-guile-static guile-2.0 '("guile-relocatable.patch"
+ "guile-default-utf8.patch"
+ "guile-linux-syscalls.patch")))
(define %guile-static-stripped
;; A stripped static Guile binary, for use during bootstrap.
--
2.26.2
next prev parent reply other threads:[~2020-04-27 18:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-27 18:20 [bug#40908] [PATCH core-updates 0/5] Use Guile 3.0 in the initrd Marius Bakke
2020-04-27 18:22 ` Marius Bakke [this message]
2020-04-27 18:22 ` [bug#40908] [PATCH core-updates 2/5] gnu: %guile-static-stripped: Rewrite in terms of 'make-guile-static-stripped' Marius Bakke
2020-04-27 18:22 ` [bug#40908] [PATCH core-updates 3/5] gnu: make-bootstrap: Export MAKE-GUILE-STATIC and MAKE-GUILE-STATIC-STRIPPED Marius Bakke
2020-04-27 18:22 ` [bug#40908] [PATCH core-updates 4/5] linux-initrd: Use Guile 3.0 Marius Bakke
2020-04-27 18:33 ` Marius Bakke
2020-04-30 22:50 ` Ludovic Courtès
2020-05-01 20:12 ` Marius Bakke
2020-04-27 18:22 ` [bug#40908] [PATCH core-updates 5/5] gnu: make-bootstrap: Do not export %GUILE-STATIC-STRIPPED Marius Bakke
2020-04-30 22:52 ` Ludovic Courtès
2020-05-01 20:16 ` bug#40908: " Marius Bakke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200427182222.28142-1-mbakke@fastmail.com \
--to=mbakke@fastmail.com \
--cc=40908@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.