[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
142/176: gnu: Add %linux-libre-headers-stripped, %linux-libre-headers-bo
From: |
Jan Nieuwenhuizen |
Subject: |
142/176: gnu: Add %linux-libre-headers-stripped, %linux-libre-headers-bootstrap-tarball. |
Date: |
Fri, 31 Aug 2018 11:20:30 -0400 (EDT) |
janneke pushed a commit to branch wip-bootstrap
in repository guix.
commit 89051cdc8cbf3c157c9073fba5ba5739f864a43c
Author: Jan Nieuwenhuizen <address@hidden>
Date: Thu Aug 23 22:56:33 2018 +0200
gnu: Add %linux-libre-headers-stripped,
%linux-libre-headers-bootstrap-tarball.
* guix/build/make-bootstrap.scm (copy-linux-headers): Extracted and from
make-stripped-libc, removed libc dependency. FIXME.
* gnu/packages/make-bootstrap.scm (%linux-libre-headers-stripped,
%linux-libre-headers-bootstrap-tarball): New variable.
---
gnu/packages/bootstrap.scm | 44 +++++++++++++++++++++++++++++++++++++++++
gnu/packages/make-bootstrap.scm | 25 +++++++++++++++++++++++
guix/build/make-bootstrap.scm | 42 ++++++++++++++++++++++++++++++++++++++-
3 files changed, 110 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index cdca9cd..d4904c1 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -141,6 +141,50 @@ return value is ignored."
(home-page #f)
(license gpl3+)))
+;;; FIXME: do not run PROGRAM if false -- copied to avoid rebuilding world
+;;; while developing...
+(define* (package-from-tarball-possibly-without-test name source
program-to-test description
+ #:key snippet)
+ "Return a package that correspond to the extraction of SOURCE.
+PROGRAM-TO-TEST is #f or a string: the program to run after extraction of
+SOURCE to check whether everything is alright. If SNIPPET is provided, it is
+evaluated after extracting SOURCE. SNIPPET should return true if successful,
+or false to signal an error."
+ (package
+ (name name)
+ (version "0")
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:modules ((guix build utils))
+ #:builder
+ (let ((out (assoc-ref %outputs "out"))
+ (tar (assoc-ref %build-inputs "tar"))
+ (xz (assoc-ref %build-inputs "xz"))
+ (tarball (assoc-ref %build-inputs "tarball")))
+ (use-modules (guix build utils))
+
+ (mkdir out)
+ (copy-file tarball "binaries.tar.xz")
+ (system* xz "-d" "binaries.tar.xz")
+ (let ((builddir (getcwd)))
+ (with-directory-excursion out
+ (and (zero? (system* tar "xvf"
+ (string-append builddir "/binaries.tar")))
+ ,@(if snippet (list snippet) '())
+ (or (not ,program-to-test)
+ (zero? (system* (string-append "bin/" ,program-to-test)
+ "--version")))))))))
+ (inputs
+ `(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
+ ("xz" ,(search-bootstrap-binary "xz" (%current-system)))
+ ("tarball" ,(bootstrap-origin (source (%current-system))))))
+ (source #f)
+ (synopsis description)
+ (description description)
+ (home-page #f)
+ (license gpl3+)))
+
(define package-with-bootstrap-guile
(mlambdaq (p)
"Return a variant of P such that all its origins are fetched with
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index a84cfb3..e78251a 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -43,6 +43,7 @@
#:export (%bootstrap-binaries-tarball
%diffutils-bootstrap-tarball
%make-bootstrap-tarball
+ %linux-libre-headers-bootstrap-tarball
%binutils-bootstrap-tarball
%glibc-bootstrap-tarball
%gcc-bootstrap-tarball
@@ -399,6 +400,26 @@ for `sh' in $PATH, and without nscd, and with static NSS
modules."
#t))))
(inputs `(("make" ,%make-static)))))
+(define %linux-libre-headers-stripped
+ ;; The subset of Linux-Libre-Headers that we need.
+ (package (inherit linux-libre-headers)
+ (name (string-append (package-name linux-libre-headers) "-stripped"))
+ (build-system trivial-build-system)
+ (outputs '("out"))
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build make-bootstrap))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (guix build make-bootstrap))
+
+ (let* ((in (assoc-ref %build-inputs "linux-libre-headers"))
+ (out (assoc-ref %outputs "out")))
+ (copy-linux-headers out in)
+ #t))))
+ (inputs `(("linux-libre-headers" ,linux-libre-headers)))))
+
(define %binutils-static
;; Statically-linked Binutils.
(package (inherit binutils)
@@ -758,6 +779,10 @@ for `sh' in $PATH, and without nscd, and with static NSS
modules."
;; A tarball with the statically-linked Make programs.
(tarball-package %make-static-stripped))
+(define %linux-libre-headers-bootstrap-tarball
+ ;; A tarball with the statically-linked Linux-Libre-Headers programs.
+ (tarball-package %linux-libre-headers-stripped))
+
(define %binutils-bootstrap-tarball
;; A tarball with the statically-linked Binutils programs.
(tarball-package %binutils-static-stripped))
diff --git a/guix/build/make-bootstrap.scm b/guix/build/make-bootstrap.scm
index 43b1362..5dd268f 100644
--- a/guix/build/make-bootstrap.scm
+++ b/guix/build/make-bootstrap.scm
@@ -23,7 +23,8 @@
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (guix build utils)
- #:export (make-stripped-libc))
+ #:export (copy-linux-headers
+ make-stripped-libc))
;; Commentary:
;;
@@ -31,6 +32,45 @@
;;
;; Code:
+;; FIXME: extracted/copied from make-stripped-libc
+(define (copy-linux-headers output kernel-headers)
+ (let* ((incdir (string-append output "/include")))
+ (mkdir-p incdir)
+
+ ;; Copy some of the Linux-Libre headers that glibc headers
+ ;; refer to.
+ (mkdir (string-append incdir "/linux"))
+ (for-each (lambda (file)
+ (install-file (string-append kernel-headers "/include/linux/"
file)
+ (string-append incdir "/linux")))
+ '(
+ "a.out.h"
+ "atalk.h"
+ "errno.h"
+ "falloc.h"
+ "if_ether.h"
+ "ioctl.h"
+ "kernel.h"
+ "limits.h"
+ "param.h"
+ "posix_types.h"
+ "socket.h"
+ "stddef.h"
+ "swab.h"
+ "sysctl.h"
+ "sysinfo.h"
+ "types.h"
+ "version.h"
+ ))
+
+ (copy-recursively (string-append kernel-headers "/include/asm")
+ (string-append incdir "/asm"))
+ (copy-recursively (string-append kernel-headers "/include/asm-generic")
+ (string-append incdir "/asm-generic"))
+ (copy-recursively (string-append kernel-headers "/include/linux/byteorder")
+ (string-append incdir "/linux/byteorder"))
+ #t))
+
(define (make-stripped-libc output libc kernel-headers)
"Copy to OUTPUT the subset of LIBC and KERNEL-HEADERS that is needed
when producing a bootstrap libc."
- 167/176: gnu: findutils-boot0: Export (for testing)., (continued)
- 167/176: gnu: findutils-boot0: Export (for testing)., Jan Nieuwenhuizen, 2018/08/31
- 172/176: gnu: gcc-mesboot-wrapper: Wrap g++ too., Jan Nieuwenhuizen, 2018/08/31
- 168/176: gnu: file-boot0: Export (for testing)., Jan Nieuwenhuizen, 2018/08/31
- 169/176: gnu: file-boot0: Do not strip binaries or validate-runpath., Jan Nieuwenhuizen, 2018/08/31
- 159/176: gcc-mesboot: use package-full-name "-" :-), Jan Nieuwenhuizen, 2018/08/31
- 162/176: gnu: Add glibc-mesboot 2.3.6. WIP, Jan Nieuwenhuizen, 2018/08/31
- 68/176: Revert "gnu: binutils-boot: Update to 2.25.", Jan Nieuwenhuizen, 2018/08/31
- 65/176: gnu: binutils-boot: Update to 2.25., Jan Nieuwenhuizen, 2018/08/31
- 116/176: gnu: gcc-mesboot0: Package with bootstrap-guile., Jan Nieuwenhuizen, 2018/08/31
- 127/176: gnu: binutils-mesboot: Revise dependencies., Jan Nieuwenhuizen, 2018/08/31
- 142/176: gnu: Add %linux-libre-headers-stripped, %linux-libre-headers-bootstrap-tarball.,
Jan Nieuwenhuizen <=
- 135/176: gnu: mes-boot: Use gnu-build-system., Jan Nieuwenhuizen, 2018/08/31
- 86/176: gnu: mes-boot: Update for fopen: Return 0 upon failure., Jan Nieuwenhuizen, 2018/08/31
- 130/176: gnu: %tinycc-seed: Update for mes 0.17., Jan Nieuwenhuizen, 2018/08/31
- 139/176: gnu: Add %bootstrap-make., Jan Nieuwenhuizen, 2018/08/31
- 171/176: gnu: gcc-mesboot: Enable c++ too., Jan Nieuwenhuizen, 2018/08/31
- 175/176: gnu: gcc-boot0: Export (for testing)., Jan Nieuwenhuizen, 2018/08/31
- 176/176: gnu: gcc-final: Export (for testing)., Jan Nieuwenhuizen, 2018/08/31
- 174/176: bootstrap: Evaluate %bootstrap-inputs+toolchain at build time., Jan Nieuwenhuizen, 2018/08/31
- 145/176: bootstrap: Integrate mes bootstrap for i686-linux., Jan Nieuwenhuizen, 2018/08/31
- 78/176: gnu: Add glibc-boot 2.0.1., Jan Nieuwenhuizen, 2018/08/31