mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
guix build: '--with-source' correctly matches versioned file names.
* guix/scripts/build.scm: Use the right 'package-name->name+version'
procedure. Fixes a regression introduced in
1b846da8c3
.
* tests/scripts-build.scm ("options->transformation, with-source, with
version"): New test.
This commit is contained in:
parent
7b150a24fe
commit
9a2a20052a
2 changed files with 25 additions and 1 deletions
|
@ -24,7 +24,11 @@ (define-module (guix scripts build)
|
|||
#:use-module (guix derivations)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix utils)
|
||||
|
||||
;; Use the procedure that destructures "NAME-VERSION" forms.
|
||||
#:use-module ((guix utils) #:hide (package-name->name+version))
|
||||
#:use-module ((guix build utils) #:select (package-name->name+version))
|
||||
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix gexp)
|
||||
#:autoload (guix http-client) (http-fetch http-get-error?)
|
||||
|
|
|
@ -22,6 +22,7 @@ (define-module (test-scripts-build)
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix scripts build)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages busybox)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -49,6 +50,25 @@ (define-module (test-scripts-build)
|
|||
(add-to-store store "guix.scm" #t
|
||||
"sha256" s)))))))
|
||||
|
||||
(test-assert "options->transformation, with-source, with version"
|
||||
;; Our pseudo-package is called 'guix.scm' so the 'guix.scm-2.0' source
|
||||
;; should be applicable, and its version should be extracted.
|
||||
(let ((p (dummy-package "foo"))
|
||||
(s (search-path %load-path "guix.scm")))
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(let* ((f (string-append directory "/foo-42.0.tar.gz"))
|
||||
(t (options->transformation `((with-source . ,f)))))
|
||||
(copy-file s f)
|
||||
(with-store store
|
||||
(let ((new (t store p)))
|
||||
(and (not (eq? new p))
|
||||
(string=? (package-name new) (package-name p))
|
||||
(string=? (package-version new) "42.0")
|
||||
(string=? (package-source new)
|
||||
(add-to-store store (basename f) #t
|
||||
"sha256" f))))))))))
|
||||
|
||||
(test-assert "options->transformation, with-source, no matches"
|
||||
;; When a transformation in not applicable, a warning must be raised.
|
||||
(let* ((p (dummy-package "foobar"))
|
||||
|
|
Loading…
Reference in a new issue