summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/transformations.scm2
-rw-r--r--tests/transformations.scm14
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