From af7f9e5f13106ccfd6c9144e40dff5071672b195 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 9 Jun 2012 21:50:30 +0200 Subject: Sort environment variables alphabetically in `derivation'. * guix/derivations.scm (derivation)[env-vars-with-empty-outputs]: Sort the result alphabetically. * tests/derivations.scm ("build derivation with 1 source"): Add environment variables. --- guix/derivations.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'guix') diff --git a/guix/derivations.scm b/guix/derivations.scm index 5897630205..38e05b25f2 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -308,19 +308,22 @@ (define (add-output-paths drv) (define (env-vars-with-empty-outputs) ;; Return a variant of ENV-VARS where each OUTPUTS is associated with an - ;; empty string, even outputs that do not appear in ENV-VARS. + ;; empty string, even outputs that do not appear in ENV-VARS. Note: the + ;; result is sorted alphabetically, as with C++ `std::map'. (let ((e (map (match-lambda ((name . val) (if (member name outputs) (cons name "") (cons name val)))) env-vars))) - (fold-right (lambda (output-name env-vars) + (sort (fold (lambda (output-name env-vars) (if (assoc output-name env-vars) env-vars (append env-vars `((,output-name . ""))))) e - outputs))) + outputs) + (lambda (e1 e2) + (string