~ruther/guix-local

494dc2fc628b754a9cc86a54c90202b13e0b68c6 — Ludovic Courtès 9 years ago b5d08d7
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.
2 files changed, 21 insertions(+), 3 deletions(-)

M guix/scripts/package.scm
M tests/guix-package.sh
M guix/scripts/package.scm => guix/scripts/package.scm +7 -3
@@ 794,9 794,13 @@ processed, #f otherwise."
  (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

M tests/guix-package.sh => tests/guix-package.sh +14 -0
@@ 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.
#