packages: Mark the `inputs' field of <package> as thunked.
* guix/packages.scm (<package>)[inputs]: Mark as thunked.
  (package-derivation)[expand-input]: Remove case where the input is a
  procedure.
* tests/packages.scm ("trivial with system-dependent input"): Remove
  `lambda', and use (%current-system).
* gnu/packages/bootstrap.scm (package-from-tarball): Likewise for `inputs'.
  (%bootstrap-glibc, %bootstrap-gcc): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
			
			
This commit is contained in:
		
							parent
							
								
									3b9c002088
								
							
						
					
					
						commit
						dd6b9a3790
					
				
					 4 changed files with 67 additions and 86 deletions
				
			
		|  | @ -99,12 +99,9 @@ check whether everything is alright." | |||
|                   (zero? (system* (string-append "bin/" ,program-to-test) | ||||
|                                   "--version")))))))) | ||||
|     (inputs | ||||
|      `(("tar" ,(lambda (system) | ||||
|                  (search-bootstrap-binary "tar" system))) | ||||
|        ("xz"  ,(lambda (system) | ||||
|                  (search-bootstrap-binary "xz" system))) | ||||
|        ("tarball" ,(lambda (system) | ||||
|                      (bootstrap-origin (source* system)))))) | ||||
|      `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) | ||||
|        ("xz"  ,(search-bootstrap-binary "xz" (%current-system))) | ||||
|        ("tarball" ,(bootstrap-origin (source* (%current-system)))))) | ||||
|     (synopsis description*) | ||||
|     (description #f) | ||||
|     (home-page #f))) | ||||
|  | @ -269,25 +266,22 @@ $out/bin/guile --version~%" | |||
|                (("/[^ ]+/lib/(libc|ld)" _ prefix) | ||||
|                 (string-append out "/lib/" prefix)))))))) | ||||
|     (inputs | ||||
|      `(("tar" ,(lambda (system) | ||||
|                  (search-bootstrap-binary "tar" system))) | ||||
|        ("xz"  ,(lambda (system) | ||||
|                  (search-bootstrap-binary "xz" system))) | ||||
|        ("tarball" ,(lambda (system) | ||||
|                      (bootstrap-origin | ||||
|                       (origin | ||||
|                        (method url-fetch) | ||||
|                        (uri (map (cut string-append <> "/" system | ||||
|                                       "/20130105/glibc-2.17.tar.xz") | ||||
|                                  %bootstrap-base-urls)) | ||||
|                        (sha256 | ||||
|                         (match system | ||||
|                           ("x86_64-linux" | ||||
|                            (base32 | ||||
|                             "18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3")) | ||||
|                           ("i686-linux" | ||||
|                            (base32 | ||||
|                             "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))) | ||||
|      `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) | ||||
|        ("xz"  ,(search-bootstrap-binary "xz" (%current-system))) | ||||
|        ("tarball" ,(bootstrap-origin | ||||
|                     (origin | ||||
|                      (method url-fetch) | ||||
|                      (uri (map (cut string-append <> "/" (%current-system) | ||||
|                                     "/20130105/glibc-2.17.tar.xz") | ||||
|                                %bootstrap-base-urls)) | ||||
|                      (sha256 | ||||
|                       (match (%current-system) | ||||
|                         ("x86_64-linux" | ||||
|                          (base32 | ||||
|                           "18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3")) | ||||
|                         ("i686-linux" | ||||
|                          (base32 | ||||
|                           "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88"))))))))) | ||||
|     (synopsis "Bootstrap binaries and headers of the GNU C Library") | ||||
|     (description #f) | ||||
|     (home-page #f))) | ||||
|  | @ -337,28 +331,24 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ | |||
| 
 | ||||
|              (chmod "gcc" #o555)))))) | ||||
|     (inputs | ||||
|      `(("tar" ,(lambda (system) | ||||
|                  (search-bootstrap-binary "tar" system))) | ||||
|        ("xz"  ,(lambda (system) | ||||
|                  (search-bootstrap-binary "xz" system))) | ||||
|        ("bash" ,(lambda (system) | ||||
|                   (search-bootstrap-binary "bash" system))) | ||||
|      `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) | ||||
|        ("xz"  ,(search-bootstrap-binary "xz" (%current-system))) | ||||
|        ("bash" ,(search-bootstrap-binary "bash" (%current-system))) | ||||
|        ("libc" ,%bootstrap-glibc) | ||||
|        ("tarball" ,(lambda (system) | ||||
|                      (bootstrap-origin | ||||
|                       (origin | ||||
|                        (method url-fetch) | ||||
|                        (uri (map (cut string-append <> "/" system | ||||
|                                       "/20130105/gcc-4.7.2.tar.xz") | ||||
|                                  %bootstrap-base-urls)) | ||||
|                        (sha256 | ||||
|                         (match system | ||||
|                           ("x86_64-linux" | ||||
|                            (base32 | ||||
|                             "1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px")) | ||||
|                           ("i686-linux" | ||||
|                            (base32 | ||||
|                             "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))) | ||||
|        ("tarball" ,(bootstrap-origin | ||||
|                     (origin | ||||
|                      (method url-fetch) | ||||
|                      (uri (map (cut string-append <> "/" (%current-system) | ||||
|                                     "/20130105/gcc-4.7.2.tar.xz") | ||||
|                                %bootstrap-base-urls)) | ||||
|                      (sha256 | ||||
|                       (match (%current-system) | ||||
|                         ("x86_64-linux" | ||||
|                          (base32 | ||||
|                           "1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px")) | ||||
|                         ("i686-linux" | ||||
|                          (base32 | ||||
|                           "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2"))))))))) | ||||
|     (synopsis "Bootstrap binaries of the GNU Compiler Collection") | ||||
|     (description #f) | ||||
|     (home-page #f))) | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ | |||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module ((guix utils) #:select (%current-system)) | ||||
|   #:use-module (gnu packages m4) | ||||
|   #:use-module (gnu packages multiprecision) | ||||
|   #:use-module (gnu packages emacs) | ||||
|  | @ -69,33 +70,33 @@ | |||
|        ("m4" ,m4) | ||||
| 
 | ||||
|        ("source" | ||||
|         ,(lambda (system) | ||||
|            ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to | ||||
|            ;; compile from the architecture-specific tarballs, which contain | ||||
|            ;; pre-built binaries.  It leads to more efficient code than when | ||||
|            ;; building the tarball that contains generated C code instead of | ||||
|            ;; those binaries. | ||||
|            (origin | ||||
|             (method url-fetch) | ||||
|             (uri (string-append "mirror://gnu/mit-scheme/stable.pkg/" | ||||
|                                 version "/mit-scheme-" | ||||
|                                 version "-" | ||||
|                                 (match system | ||||
|                                   ("x86_64-linux" "x86-64") | ||||
|                                   ("i686-linux" "i386") | ||||
|                                   (_ "c")) | ||||
|                                 ".tar.gz")) | ||||
|             (sha256 | ||||
|              (match system | ||||
|                ("x86_64-linux" | ||||
|                 (base32 | ||||
|                  "1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x")) | ||||
|                ("i686-linux" | ||||
|                 (base32 | ||||
|                  "0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z")) | ||||
|                (_ | ||||
|                 (base32 | ||||
|                  "0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j"))))))))) | ||||
| 
 | ||||
|         ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to | ||||
|         ;; compile from the architecture-specific tarballs, which contain | ||||
|         ;; pre-built binaries.  It leads to more efficient code than when | ||||
|         ;; building the tarball that contains generated C code instead of | ||||
|         ;; those binaries. | ||||
|         ,(origin | ||||
|           (method url-fetch) | ||||
|           (uri (string-append "mirror://gnu/mit-scheme/stable.pkg/" | ||||
|                               version "/mit-scheme-" | ||||
|                               version "-" | ||||
|                               (match (%current-system) | ||||
|                                 ("x86_64-linux" "x86-64") | ||||
|                                 ("i686-linux" "i386") | ||||
|                                 (_ "c")) | ||||
|                               ".tar.gz")) | ||||
|           (sha256 | ||||
|            (match (%current-system) | ||||
|              ("x86_64-linux" | ||||
|               (base32 | ||||
|                "1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x")) | ||||
|              ("i686-linux" | ||||
|               (base32 | ||||
|                "0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z")) | ||||
|              (_ | ||||
|               (base32 | ||||
|                "0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j")))))))) | ||||
|     (home-page "http://www.gnu.org/software/mit-scheme/") | ||||
|     (synopsis "MIT/GNU Scheme, a native code Scheme compiler") | ||||
|     (description | ||||
|  |  | |||
|  | @ -113,7 +113,7 @@ representation." | |||
|              (default '()) (thunked)) | ||||
| 
 | ||||
|   (inputs package-inputs                  ; input packages or derivations | ||||
|           (default '())) | ||||
|           (default '()) (thunked)) | ||||
|   (propagated-inputs package-propagated-inputs    ; same, but propagated | ||||
|                      (default '())) | ||||
|   (native-inputs package-native-inputs    ; native input packages/derivations | ||||
|  | @ -272,15 +272,6 @@ PACKAGE for SYSTEM." | |||
|       (list name (intern file))) | ||||
|      (((? string? name) (? origin? source)) | ||||
|       (list name (package-source-derivation store source system))) | ||||
|      ((and i ((? string? name) (? procedure? proc) sub-drv ...)) | ||||
|       ;; This form allows PROC to make a SYSTEM-dependent choice. | ||||
| 
 | ||||
|       ;; XXX: Currently PROC must return a .drv, a store path, a local | ||||
|       ;; file name, or an <origin>.  If it were allowed to return a | ||||
|       ;; package, then `transitive-inputs' and co. would need to be | ||||
|       ;; adjusted. | ||||
|       (let ((input (proc system))) | ||||
|         (expand-input (cons* name input sub-drv)))) | ||||
|      (x | ||||
|       (raise (condition (&package-input-error | ||||
|                          (package package) | ||||
|  |  | |||
|  | @ -124,9 +124,8 @@ | |||
|                        (bash (assoc-ref %build-inputs "bash"))) | ||||
|                    (zero? (system* bash "-c" | ||||
|                                    (format #f "echo hello > ~a" out)))))) | ||||
|               (inputs `(("bash" ,(lambda (system) | ||||
|                                    (search-bootstrap-binary "bash" | ||||
|                                                             system))))))) | ||||
|               (inputs `(("bash" ,(search-bootstrap-binary "bash" | ||||
|                                                           (%current-system))))))) | ||||
|          (d (package-derivation %store p))) | ||||
|     (and (build-derivations %store (list d)) | ||||
|          (let ((p (pk 'drv d (derivation-path->output-path d)))) | ||||
|  |  | |||
		Reference in a new issue