From 494dc2fc628b754a9cc86a54c90202b13e0b68c6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 May 2016 15:17:42 +0200 Subject: guix package: Inherit the transformed version number. Previously, 'guix package -i emacs --with-source=./emacs-42.tar.gz' would fail to use "42" as the version number in the manifest entry. Reported by piyo on #guix. * guix/scripts/package.scm (process-actions)[transform-entry]: Inherit the version number from the result of TRANSFORM when it's a package. * tests/guix-package.sh: Test it. --- guix/scripts/package.scm | 10 +++++++--- tests/guix-package.sh | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 697afc17c3..e2e37098fc 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -794,9 +794,13 @@ (define profile (or (assoc-ref opts 'profile) %current-profile)) (define transform (options->transformation opts)) (define (transform-entry entry) - (manifest-entry - (inherit entry) - (item (transform store (manifest-entry-item entry))))) + (let ((item (transform store (manifest-entry-item entry)))) + (manifest-entry + (inherit entry) + (item item) + (version (if (package? item) + (package-version item) + (manifest-entry-version entry)))))) ;; First, process roll-backs, generation removals, etc. (for-each (match-lambda diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 28c34dbc6a..68a1946aa0 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -140,6 +140,20 @@ rm "$profile" "$profile"-[0-9]-link guix gc -d "$real_profile" [ ! -d "$real_profile" ] +# Package transformations. + +# Make sure we get the right version number when using '--with-source'. +mkdir "$module_dir" +emacs_tarball="$module_dir/emacs-42.5.9rc7.tar.gz" +touch "$emacs_tarball" +guix package -p "$profile" -i emacs --with-source="$emacs_tarball" -n \ + 2> "$tmpfile" +grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \ + "$tmpfile" +rm "$emacs_tarball" "$tmpfile" +rmdir "$module_dir" + + # # Try with the default profile. # -- cgit v1.2.3