diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-05-05 23:42:36 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-05-05 23:56:58 +0200 |
commit | 0f024554e63a49e20c2a7a67e928073c266bf5c5 (patch) | |
tree | b180b949cde3306c08ee00e9dfa1fea4d639e481 | |
parent | 0780164f1f718804d5ece3e7c17fd6639d2e6a1f (diff) | |
download | guix-0f024554e63a49e20c2a7a67e928073c266bf5c5.tar guix-0f024554e63a49e20c2a7a67e928073c266bf5c5.tar.gz |
transformations: Preserve transformation order in package property.
Fixes <https://issues.guix.gnu.org/54942>.
Reported by SeerLite <seerlite@nixnet.email>.
* guix/transformations.scm (options->transformation)
[package-with-transformation-properties]: Add call to 'reverse'.
* tests/transformations.scm ("options->transformation, property order"):
New test.
-rw-r--r-- | guix/transformations.scm | 2 | ||||
-rw-r--r-- | tests/transformations.scm | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/guix/transformations.scm b/guix/transformations.scm index a0045e5b27..411c4014cb 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -959,7 +959,7 @@ to that transformation." . ,(map (match-lambda ((key value _) (cons key value))) - applicable)) + (reverse applicable))) ;preserve order ,@(package-properties p))))) (lambda (obj) diff --git a/tests/transformations.scm b/tests/transformations.scm index 8db85b4305..dbfe523518 100644 --- a/tests/transformations.scm +++ b/tests/transformations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -451,6 +451,18 @@ (string=? (local-file-file input) patch))) inputs)))))))) +(test-equal "options->transformation, property order" + ;; See <https://issues.guix.gnu.org/54942>. + '((with-debug-info . "does-not-exist") + (with-commit . "does-not-exist=aaaaaaa") + (without-tests . "does-not-exist")) + (let* ((t (options->transformation + '((with-debug-info . "does-not-exist") + (with-commit . "does-not-exist=aaaaaaa") + (without-tests . "does-not-exist"))))) + (let ((new (t coreutils))) + (assq-ref (package-properties new) 'transformations)))) + (test-equal "options->transformation, with-latest" "42.0" (mock ((guix upstream) %updaters |