import cran: Refactor "needs-zlib?".
* guix/import/cran.scm (tarball-files-match-pattern?): New procedure. (needs-zlib?): Implement in terms of "tarball-files-match-pattern?".master
parent
ff8c179ab6
commit
a0f43208cb
|
@ -207,17 +207,16 @@ empty list when the FIELD cannot be found."
|
||||||
(check "*.f95")
|
(check "*.f95")
|
||||||
(check "*.f")))
|
(check "*.f")))
|
||||||
|
|
||||||
(define (needs-zlib? tarball)
|
(define (tarball-files-match-pattern? tarball regexp . file-patterns)
|
||||||
"Return #T if any of the Makevars files in the src directory of the TARBALL
|
"Return #T if any of the files represented by FILE-PATTERNS in the TARBALL
|
||||||
contain a zlib linker flag."
|
match the given REGEXP."
|
||||||
(call-with-temporary-directory
|
(call-with-temporary-directory
|
||||||
(lambda (dir)
|
(lambda (dir)
|
||||||
(let ((pattern (make-regexp "-lz")))
|
(let ((pattern (make-regexp regexp)))
|
||||||
(parameterize ((current-error-port (%make-void-port "rw+")))
|
(parameterize ((current-error-port (%make-void-port "rw+")))
|
||||||
(system* "tar"
|
(apply system* "tar"
|
||||||
"xf" tarball "-C" dir
|
"xf" tarball "-C" dir
|
||||||
"--wildcards"
|
`("--wildcards" ,@file-patterns)))
|
||||||
"*/src/Makevars*" "*/src/configure*" "*/configure*"))
|
|
||||||
(any (lambda (file)
|
(any (lambda (file)
|
||||||
(call-with-input-file file
|
(call-with-input-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
|
@ -226,10 +225,16 @@ contain a zlib linker flag."
|
||||||
(cond
|
(cond
|
||||||
((eof-object? line) #f)
|
((eof-object? line) #f)
|
||||||
((regexp-exec pattern line) #t)
|
((regexp-exec pattern line) #t)
|
||||||
(else (loop)))))))
|
(else (loop))))))))
|
||||||
#t)
|
|
||||||
(find-files dir))))))
|
(find-files dir))))))
|
||||||
|
|
||||||
|
(define (needs-zlib? tarball)
|
||||||
|
"Return #T if any of the Makevars files in the src directory of the TARBALL
|
||||||
|
contain a zlib linker flag."
|
||||||
|
(tarball-files-match-pattern?
|
||||||
|
tarball "-lz"
|
||||||
|
"*/src/Makevars*" "*/src/configure*" "*/configure*"))
|
||||||
|
|
||||||
(define (description->package repository meta)
|
(define (description->package repository meta)
|
||||||
"Return the `package' s-expression for an R package published on REPOSITORY
|
"Return the `package' s-expression for an R package published on REPOSITORY
|
||||||
from the alist META, which was derived from the R package's DESCRIPTION file."
|
from the alist META, which was derived from the R package's DESCRIPTION file."
|
||||||
|
|
Reference in New Issue