diff options
author | Chris Marusich <cmmarusich@gmail.com> | 2018-04-08 16:51:42 -0700 |
---|---|---|
committer | Chris Marusich <cmmarusich@gmail.com> | 2018-05-08 21:55:46 -0700 |
commit | ede121de426f9c56820852888a0b370f0ccbce49 (patch) | |
tree | cddd5c464c259d03dd97a021922950f161cfcb13 | |
parent | b61cb24492c150b5eebb5227f2a7c32e4d42e1d4 (diff) | |
download | gnu-guix-ede121de426f9c56820852888a0b370f0ccbce49.tar gnu-guix-ede121de426f9c56820852888a0b370f0ccbce49.tar.gz |
guix: Separate the package name and version with "@", not "-".
* guix/packages.scm (package-full-name): By default, use "@" to separate
the package name and package version. Add an optional delimiter
argument so that there is still a way to explicitly use a different
delimiter.
* gnu/packages/commencement.scm (gcc-boot0) <unpack-gmp&co>: Adjust
accordingly.
* tests/graph.scm: Adjust accordingly.
* tests/profiles.scm: Adjust accordingly.
* NEWS: Mention the change.
Fixes: <https://bugs.gnu.org/31088>.
Reported by Pierre Neidhardt <ambrevar@gmail.com>.
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | gnu/packages/commencement.scm | 2 | ||||
-rw-r--r-- | guix/packages.go.134WZR | 0 | ||||
-rw-r--r-- | guix/packages.scm | 13 | ||||
-rw-r--r-- | tests/graph.scm | 2 | ||||
-rw-r--r-- | tests/profiles.scm | 11 |
6 files changed, 21 insertions, 12 deletions
@@ -10,6 +10,11 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.15.0 (since 0.14.0) +** Programming interfaces + +*** package-full-name (guix packages) now uses "@" as its delimiter. + (<https://bugs.gnu.org/31088>) * Changes in 0.14.0 (since 0.13.0) ** Package management diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 1026ee8929..2791409bf9 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -282,7 +282,7 @@ ;; Drop trailing letters, as gmp-6.0.0a unpacks ;; into gmp-6.0.0. `(symlink ,(string-trim-right - (package-full-name lib) + (package-full-name lib "-") char-set:letter) ,(package-name lib))) (list gmp-6.0 mpfr mpc)))) diff --git a/guix/packages.go.134WZR b/guix/packages.go.134WZR new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/guix/packages.go.134WZR diff --git a/guix/packages.scm b/guix/packages.scm index b5c0b60440..e0ab72086c 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -388,10 +388,11 @@ object." (define-condition-type &package-cross-build-system-error &package-error package-cross-build-system-error?) - -(define (package-full-name package) - "Return the full name of PACKAGE--i.e., `NAME-VERSION'." - (string-append (package-name package) "-" (package-version package))) +(define* (package-full-name package #:optional (delimiter "@")) + "Return the full name of PACKAGE--i.e., `NAME@VERSION'. By specifying +DELIMITER (a string), you can customize what will appear between the name and +the version. By default, DELIMITER is \"@\"." + (string-append (package-name package) delimiter (package-version package))) (define (%standard-patch-inputs) (let* ((canonical (module-ref (resolve-interface '(gnu packages base)) @@ -935,6 +936,10 @@ and return it." (($ <package> name version source build-system args inputs propagated-inputs native-inputs self-native-input? outputs) + ;; Even though we prefer to use "@" to separate the package + ;; name from the package version in various user-facing parts + ;; of Guix, checkStoreName (in nix/libstore/store-api.cc) + ;; prohibits the use of "@", so use "-" instead. (or (make-bag build-system (string-append name "-" version) #:system system #:target target diff --git a/tests/graph.scm b/tests/graph.scm index 5faa19298a..b86ae4a32f 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -134,7 +134,7 @@ edges." (map (lambda (destination) (list "p-0.drv" (string-append - (package-full-name destination) + (package-full-name destination "-") ".drv"))) implicit))))))) diff --git a/tests/profiles.scm b/tests/profiles.scm index 92eb08cb9e..8d3cfe91d3 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -242,8 +242,8 @@ #:hooks '() #:locales? #t #:target target))) - (define (find-input name) - (let ((name (string-append name ".drv"))) + (define (find-input package) + (let ((name (string-append (package-full-name package "-") ".drv"))) (any (lambda (input) (let ((input (derivation-input-path input))) (and (string-suffix? name input) input))) @@ -252,12 +252,11 @@ ;; The inputs for grep and sed should be cross-build derivations, but that ;; for the glibc-utf8-locales should be a native build. (return (and (string=? (derivation-system drv) (%current-system)) - (string=? (find-input (package-full-name packages:grep)) + (string=? (find-input packages:grep) (derivation-file-name grep)) - (string=? (find-input (package-full-name packages:sed)) + (string=? (find-input packages:sed) (derivation-file-name sed)) - (string=? (find-input - (package-full-name packages:glibc-utf8-locales)) + (string=? (find-input packages:glibc-utf8-locales) (derivation-file-name locales)))))) (test-assert "package->manifest-entry defaults to \"out\"" |