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) | |
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 a0045e5b272..411c4014cb7 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm | |||
| @@ -959,7 +959,7 @@ to that transformation." | |||
| 959 | . ,(map (match-lambda | 959 | . ,(map (match-lambda |
| 960 | ((key value _) | 960 | ((key value _) |
| 961 | (cons key value))) | 961 | (cons key value))) |
| 962 | applicable)) | 962 | (reverse applicable))) ;preserve order |
| 963 | ,@(package-properties p))))) | 963 | ,@(package-properties p))))) |
| 964 | 964 | ||
| 965 | (lambda (obj) | 965 | (lambda (obj) |
diff --git a/tests/transformations.scm b/tests/transformations.scm index 8db85b4305b..dbfe5235188 100644 --- a/tests/transformations.scm +++ b/tests/transformations.scm | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> | 2 | ;;; Copyright © 2016-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> | 3 | ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> |
| 4 | ;;; | 4 | ;;; |
| 5 | ;;; This file is part of GNU Guix. | 5 | ;;; This file is part of GNU Guix. |
| @@ -451,6 +451,18 @@ | |||
| 451 | (string=? (local-file-file input) patch))) | 451 | (string=? (local-file-file input) patch))) |
| 452 | inputs)))))))) | 452 | inputs)))))))) |
| 453 | 453 | ||
| 454 | (test-equal "options->transformation, property order" | ||
| 455 | ;; See <https://issues.guix.gnu.org/54942>. | ||
| 456 | '((with-debug-info . "does-not-exist") | ||
| 457 | (with-commit . "does-not-exist=aaaaaaa") | ||
| 458 | (without-tests . "does-not-exist")) | ||
| 459 | (let* ((t (options->transformation | ||
| 460 | '((with-debug-info . "does-not-exist") | ||
| 461 | (with-commit . "does-not-exist=aaaaaaa") | ||
| 462 | (without-tests . "does-not-exist"))))) | ||
| 463 | (let ((new (t coreutils))) | ||
| 464 | (assq-ref (package-properties new) 'transformations)))) | ||
| 465 | |||
| 454 | (test-equal "options->transformation, with-latest" | 466 | (test-equal "options->transformation, with-latest" |
| 455 | "42.0" | 467 | "42.0" |
| 456 | (mock ((guix upstream) %updaters | 468 | (mock ((guix upstream) %updaters |
