From 11dddd8a3e559eff21b12db46d993b07b624ab15 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Mar 2015 18:07:48 +0100 Subject: system: Don't compare objects with 'equal?'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Reported by 宋文武 and Tomáš Čech. * gnu/system.scm (operating-system-etc-directory): Remove call to 'delete-duplicates'. * gnu/system/linux.scm (pam-services->directory)[builder]: Add call to 'delete-duplicates'. --- gnu/system/linux.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu/system') diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm index 8cddedf28..aaaa8c6de 100644 --- a/gnu/system/linux.scm +++ b/gnu/system/linux.scm @@ -100,13 +100,19 @@ dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." services)))) (define builder #~(begin - (use-modules (ice-9 match)) + (use-modules (ice-9 match) + (srfi srfi-1)) (mkdir #$output) (for-each (match-lambda ((name file) (symlink file (string-append #$output "/" name)))) - '#$(zip names files)))) + + ;; Since objects cannot be compared with + ;; 'equal?' since they contain gexps, which contain + ;; closures, use 'delete-duplicates' on the build-side + ;; instead. See . + (delete-duplicates '#$(zip names files))))) (gexp->derivation "pam.d" builder))) -- cgit v1.3