diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-10-03 23:02:46 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-10-03 23:16:48 +0200 |
commit | 57bdd79e485801ccf405ca7389bd099809fe5d67 (patch) | |
tree | b0c6df4c2a0eee45d64025fb7b157671173bbde1 /tests | |
parent | b38e97e03b92d54524953949934884828a1683c1 (diff) | |
download | guix-57bdd79e485801ccf405ca7389bd099809fe5d67.tar guix-57bdd79e485801ccf405ca7389bd099809fe5d67.tar.gz |
grafts: Allow the replacement to have a different name.
* guix/build/graft.scm (replace-store-references): REPLACEMENT is now
the full string, not just the hash.
(rewrite-directory)[hash-mapping](valid-suffix?): Remove.
(hash+suffix): Rename to...
(hash+rest): ... this. Change to return the whole string as the second
element of the list. Adjust 'match-lambda' expression accordingly;
check whether the string length of the origin and replacement match.
* tests/grafts.scm ("graft-derivation, grafted item uses a different
name"): New test.
* doc/guix.texi (Security Updates): Update sentence on the name/version
restriction.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/grafts.scm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/grafts.scm b/tests/grafts.scm index 13c56750ed..f2ff839fd8 100644 --- a/tests/grafts.scm +++ b/tests/grafts.scm @@ -80,6 +80,25 @@ (string=? (readlink (string-append grafted "/self")) grafted)))))) +(test-assert "graft-derivation, grafted item uses a different name" + (let* ((build `(begin + (mkdir %output) + (chdir %output) + (symlink %output "self") + (symlink ,%bash "sh"))) + (orig (build-expression->derivation %store "grafted" build + #:inputs `(("a" ,%bash)))) + (repl (add-text-to-store %store "BaSH" "fake bash")) + (grafted (graft-derivation %store orig + (list (graft + (origin %bash) + (replacement repl)))))) + (and (build-derivations %store (list grafted)) + (let ((grafted (derivation->output-path grafted))) + (and (string=? (readlink (string-append grafted "/sh")) repl) + (string=? (readlink (string-append grafted "/self")) + grafted)))))) + ;; Make sure 'derivation-file-name' always gets to see an absolute file name. (fluid-set! %file-port-name-canonicalization 'absolute) |