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.
This commit is contained in:
Ludovic Courtès 2016-05-27 15:17:42 +02:00
parent b5d08d7c28
commit 494dc2fc62
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 21 additions and 3 deletions

View File

@ -794,9 +794,13 @@ processed, #f otherwise."
(define transform (options->transformation opts)) (define transform (options->transformation opts))
(define (transform-entry entry) (define (transform-entry entry)
(let ((item (transform store (manifest-entry-item entry))))
(manifest-entry (manifest-entry
(inherit entry) (inherit entry)
(item (transform store (manifest-entry-item entry))))) (item item)
(version (if (package? item)
(package-version item)
(manifest-entry-version entry))))))
;; First, process roll-backs, generation removals, etc. ;; First, process roll-backs, generation removals, etc.
(for-each (match-lambda (for-each (match-lambda

View File

@ -140,6 +140,20 @@ rm "$profile" "$profile"-[0-9]-link
guix gc -d "$real_profile" guix gc -d "$real_profile"
[ ! -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. # Try with the default profile.
# #