~ruther/guix-local

4d058c67929aa9d464fcb1ff0217122424078cb8 — Ludovic Courtès 13 years ago 450fb5a
build-system/gnu: Add `static-package'.

* distro/packages/make-bootstrap.scm (static-package): Move to...
* guix/build-system/gnu.scm (static-package): ... here.  New procedure.
2 files changed, 26 insertions(+), 25 deletions(-)

M distro/packages/make-bootstrap.scm
M guix/build-system/gnu.scm
M distro/packages/make-bootstrap.scm => distro/packages/make-bootstrap.scm +1 -24
@@ 20,7 20,7 @@
  #:use-module (guix utils)
  #:use-module (guix packages)
  #:use-module (guix build-system trivial)
  #:use-module ((guix build-system gnu) #:select (package-with-explicit-inputs))
  #:use-module (guix build-system gnu)
  #:use-module ((distro) #:select (search-patch))
  #:use-module (distro packages base)
  #:use-module (distro packages bash)


@@ 45,29 45,6 @@
;;;
;;; Code:

(define* (static-package p #:optional (loc (current-source-location)))
  "Return a statically-linked version of package P."
  ;; TODO: Move to (guix build-system gnu).
  (let ((args (package-arguments p)))
    (package (inherit p)
      (location (source-properties->location loc))
      (arguments
       (let ((augment (lambda (args)
                        (let ((a (default-keyword-arguments args
                                   '(#:configure-flags '()
                                     #:strip-flags #f))))
                          (substitute-keyword-arguments a
                            ((#:configure-flags flags)
                             `(cons* "--disable-shared"
                                     "LDFLAGS=-static"
                                     ,flags))
                            ((#:strip-flags _)
                             ''("--strip-all")))))))
         (if (procedure? args)
             (lambda x
               (augment (apply args x)))
             (augment args)))))))

(define %glibc-with-relocatable-system
  ;; A libc whose `system' and `popen' functions looks for `sh' in $PATH.
  (package (inherit glibc-final)

M guix/build-system/gnu.scm => guix/build-system/gnu.scm +25 -1
@@ 21,6 21,7 @@
  #:use-module (guix utils)
  #:use-module (guix derivations)
  #:use-module (guix build-system)
  #:use-module (guix build-system gnu)
  #:use-module (guix packages)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-39)


@@ 29,7 30,8 @@
            gnu-build-system
            package-with-explicit-inputs
            package-with-extra-configure-variable
            static-libgcc-package))
            static-libgcc-package
            static-package))

;; Commentary:
;;


@@ 117,6 119,28 @@ configure flags for VARIABLE, the associated value is augmented."
  "A version of P linked with `-static-gcc'."
  (package-with-extra-configure-variable p "LDFLAGS" "-static-libgcc"))

(define* (static-package p #:optional (loc (current-source-location)))
  "Return a statically-linked version of package P."
  (let ((args (package-arguments p)))
    (package (inherit p)
      (location (source-properties->location loc))
      (arguments
       (let ((augment (lambda (args)
                        (let ((a (default-keyword-arguments args
                                   '(#:configure-flags '()
                                     #:strip-flags #f))))
                          (substitute-keyword-arguments a
                            ((#:configure-flags flags)
                             `(cons* "--disable-shared"
                                     "LDFLAGS=-static"
                                     ,flags))
                            ((#:strip-flags _)
                             ''("--strip-all")))))))
         (if (procedure? args)
             (lambda x
               (augment (apply args x)))
             (augment args)))))))


(define %store
  ;; Store passed to STANDARD-INPUTS.