gnu: glibc: Build the Info pages.

* gnu/packages/base.scm (glibc): Add 'native-inputs' field.
  (perl-boot0): New variable.
  (linux-libre-headers-boot0): Use it.
  (texinfo-boot0): New variable.
  (glibc-final-with-bootstrap-bash): Add 'native-inputs' field.
This commit is contained in:
Ludovic Courtès 2014-01-07 18:08:51 +01:00
parent db6190899e
commit 8fd6487e1c

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -31,6 +31,7 @@ (define-module (gnu packages base)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages texinfo)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -473,6 +474,11 @@ (define-public glibc
%standard-phases)))) %standard-phases))))
(inputs `(("static-bash" ,(static-package bash-light)))) (inputs `(("static-bash" ,(static-package bash-light))))
;; To build the manual, we need Texinfo and Perl.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)))
(synopsis "The GNU C Library") (synopsis "The GNU C Library")
(description (description
"Any Unix-like operating system needs a C library: the library which "Any Unix-like operating system needs a C library: the library which
@ -735,6 +741,13 @@ (define gcc-boot0
(native-inputs (alist-delete "texinfo" (native-inputs (alist-delete "texinfo"
(package-native-inputs gcc-4.8)))))) (package-native-inputs gcc-4.8))))))
(define perl-boot0
(package-with-bootstrap-guile
(package-with-explicit-inputs perl
%boot0-inputs
(current-source-location)
#:guile %bootstrap-guile)))
(define (linux-libre-headers-boot0) (define (linux-libre-headers-boot0)
"Return Linux-Libre header files for the bootstrap environment." "Return Linux-Libre header files for the bootstrap environment."
;; Note: this is wrapped in a thunk to nicely handle circular dependencies ;; Note: this is wrapped in a thunk to nicely handle circular dependencies
@ -745,12 +758,20 @@ (define (linux-libre-headers-boot0)
#:implicit-inputs? #f #:implicit-inputs? #f
,@(package-arguments linux-libre-headers))) ,@(package-arguments linux-libre-headers)))
(native-inputs (native-inputs
(let ((perl (package-with-explicit-inputs perl `(("perl" ,perl-boot0)
%boot0-inputs ,@%boot0-inputs)))))
(current-source-location)
#:guile %bootstrap-guile))) (define texinfo-boot0
`(("perl" ,perl) ;; Texinfo used to build libc's manual.
,@%boot0-inputs)))))) ;; We build without ncurses because it fails to build at this stage, and
;; because we don't need the stand-alone Info reader.
;; Also, use %BOOT0-INPUTS to avoid building Perl once more.
(let ((texinfo (package (inherit texinfo)
(inputs (alist-delete "ncurses" (package-inputs texinfo))))))
(package-with-bootstrap-guile
(package-with-explicit-inputs texinfo %boot0-inputs
(current-source-location)
#:guile %bootstrap-guile))))
(define %boot1-inputs (define %boot1-inputs
;; 2nd stage inputs. ;; 2nd stage inputs.
@ -784,6 +805,9 @@ (define glibc-final-with-bootstrap-bash
"--enable-obsolete-rpc") "--enable-obsolete-rpc")
,flags))))) ,flags)))))
(propagated-inputs `(("linux-headers" ,(linux-libre-headers-boot0)))) (propagated-inputs `(("linux-headers" ,(linux-libre-headers-boot0))))
(native-inputs
`(("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0)))
(inputs (inputs
`( ;; A native GCC is needed to build `cross-rpcgen'. `( ;; A native GCC is needed to build `cross-rpcgen'.
("native-gcc" ,@(assoc-ref %boot0-inputs "gcc")) ("native-gcc" ,@(assoc-ref %boot0-inputs "gcc"))