Use guile-zlib extension in build-side code.

* Makefile.am (MODULES): Move guix/build/download-nar.scm to ...
(MODULES_NOT_COMPILED): ... here.
* guix/build/download-nar.scm: Use (zlib) instead of (guix zlib).
* guix/cvs-download.scm (cvs-fetch): Do not stub (guix config) in imported
modules list, instead add "guile-zlib" to the extension list.
* guix/git-download.scm (git-fetch): Ditto.
* guix/hg-download.scm (hg-fetch): Do not stub (guix config) in imported
modules list, instead add "guile-zlib" to the extension list.
This commit is contained in:
Mathieu Othacehe 2020-08-06 15:00:01 +02:00
parent c6872990b5
commit e9f8a7e215
No known key found for this signature in database
GPG key ID: 8354763531769CA6
4 changed files with 40 additions and 67 deletions

View file

@ -20,7 +20,7 @@ (define-module (guix build download-nar)
#:use-module (guix build download)
#:use-module (guix build utils)
#:use-module ((guix serialization) #:hide (dump-port*))
#:use-module (guix zlib)
#:autoload (zlib) (call-with-gzip-input-port)
#:use-module (guix progress)
#:use-module (web uri)
#:use-module (srfi srfi-11)

View file

@ -60,35 +60,26 @@ (define* (cvs-fetch ref hash-algo hash
"Return a fixed-output derivation that fetches REF, a <cvs-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define zlib
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
(define config.scm
(scheme-file "config.scm"
#~(begin
(define-module (guix config)
#:export (%libz))
(define %libz
#+(file-append zlib "/lib/libz")))))
(define guile-zlib
(module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
(define modules
(cons `((guix config) => ,config.scm)
(delete '(guix config)
(source-module-closure '((guix build cvs)
(guix build download-nar))))))
(delete '(guix config)
(source-module-closure '((guix build cvs)
(guix build download-nar)))))
(define build
(with-imported-modules modules
#~(begin
(use-modules (guix build cvs)
(guix build download-nar))
(with-extensions (list guile-zlib)
#~(begin
(use-modules (guix build cvs)
(guix build download-nar))
(or (cvs-fetch '#$(cvs-reference-root-directory ref)
'#$(cvs-reference-module ref)
'#$(cvs-reference-revision ref)
#$output
#:cvs-command (string-append #+cvs "/bin/cvs"))
(download-nar #$output)))))
(or (cvs-fetch '#$(cvs-reference-root-directory ref)
'#$(cvs-reference-module ref)
'#$(cvs-reference-revision ref)
#$output
#:cvs-command (string-append #+cvs "/bin/cvs"))
(download-nar #$output))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "cvs-checkout") build

View file

@ -84,35 +84,26 @@ (define inputs
("tar" ,(module-ref (resolve-interface '(gnu packages base))
'tar)))))
(define zlib
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
(define guile-json
(module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3))
(define guile-zlib
(module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
(define gnutls
(module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
(define config.scm
(scheme-file "config.scm"
#~(begin
(define-module (guix config)
#:export (%libz))
(define %libz
#+(file-append zlib "/lib/libz")))))
(define modules
(cons `((guix config) => ,config.scm)
(delete '(guix config)
(source-module-closure '((guix build git)
(guix build utils)
(guix build download-nar)
(guix swh))))))
(delete '(guix config)
(source-module-closure '((guix build git)
(guix build utils)
(guix build download-nar)
(guix swh)))))
(define build
(with-imported-modules modules
(with-extensions (list guile-json gnutls) ;for (guix swh)
(with-extensions (list guile-json gnutls ;for (guix swh)
guile-zlib)
#~(begin
(use-modules (guix build git)
(guix build utils)

View file

@ -60,35 +60,26 @@ (define* (hg-fetch ref hash-algo hash
"Return a fixed-output derivation that fetches REF, a <hg-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define zlib
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
(define config.scm
(scheme-file "config.scm"
#~(begin
(define-module (guix config)
#:export (%libz))
(define %libz
#+(file-append zlib "/lib/libz")))))
(define guile-zlib
(module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
(define modules
(cons `((guix config) => ,config.scm)
(delete '(guix config)
(source-module-closure '((guix build hg)
(guix build download-nar))))))
(delete '(guix config)
(source-module-closure '((guix build hg)
(guix build download-nar)))))
(define build
(with-imported-modules modules
#~(begin
(use-modules (guix build hg)
(guix build download-nar))
(with-extensions (list guile-zlib)
#~(begin
(use-modules (guix build hg)
(guix build download-nar))
(or (hg-fetch '#$(hg-reference-url ref)
'#$(hg-reference-changeset ref)
#$output
#:hg-command (string-append #+hg "/bin/hg"))
(download-nar #$output)))))
(or (hg-fetch '#$(hg-reference-url ref)
'#$(hg-reference-changeset ref)
#$output
#:hg-command (string-append #+hg "/bin/hg"))
(download-nar #$output))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "hg-checkout") build