[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/06: services: etc: Detect and report duplicate entries.
From: |
guix-commits |
Subject: |
04/06: services: etc: Detect and report duplicate entries. |
Date: |
Mon, 20 Apr 2020 18:06:53 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit a322e9d16b227484ce04721fee0f99618cb1007e
Author: Ludovic Courtès <address@hidden>
AuthorDate: Mon Apr 20 22:31:38 2020 +0200
services: etc: Detect and report duplicate entries.
Fixes <https://bugs.gnu.org/40729>.
Reported by Christopher Baines <address@hidden>.
* gnu/services.scm (files->etc-directory)[assert-no-duplicates]: New
procedure.
Use it.
---
gnu/services.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/gnu/services.scm b/gnu/services.scm
index 832d698..126e081 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -632,6 +632,23 @@ and FILE could be \"/usr/bin/env\"."
(files->etc-directory (service-value service)))
(define (files->etc-directory files)
+ (define (assert-no-duplicates files)
+ (let loop ((files files)
+ (seen (set)))
+ (match files
+ (() #t)
+ (((file _) rest ...)
+ (when (set-contains? seen file)
+ (raise (condition
+ (&message
+ (message (format #f (G_ "duplicate '~a' entry for /etc")
+ file))))))
+ (loop rest (set-insert file seen))))))
+
+ ;; Detect duplicates early instead of letting them through, eventually
+ ;; leading to a build failure of "etc.drv".
+ (assert-no-duplicates files)
+
(file-union "etc" files))
(define (etc-entry files)
- branch master updated (b023a8a -> c8d8f61), guix-commits, 2020/04/20
- 01/06: gnu: mcron: Remove now unneeded phase., guix-commits, 2020/04/20
- 05/06: Revert "system: Don’t create a module database when no modules are available.", guix-commits, 2020/04/20
- 06/06: packages: Recommend against the use of 'package-file'., guix-commits, 2020/04/20
- 03/06: services: dovecot: 'stop' method returns #f upon success., guix-commits, 2020/04/20
- 04/06: services: etc: Detect and report duplicate entries.,
guix-commits <=
- 02/06: services: Don't use the deprecated 'make-forkexec-constructor' call., guix-commits, 2020/04/20