aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-01-10 12:40:18 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-01-10 12:46:47 +0100
commit18bd4d12d70bae24b5a2f60bbb97cf1562f12a2c (patch)
treec8128208dbaec125fe7545702ca1f3d649c8b4da
parentd689ca6f0d868f05d568ded3eb70759a5a266d92 (diff)
downloadguix-18bd4d12d70bae24b5a2f60bbb97cf1562f12a2c.tar.gz
guix-18bd4d12d70bae24b5a2f60bbb97cf1562f12a2c.zip
import: texlive: Remove more specific entries with the same prefix.
* guix/import/texlive.scm (files->directories): Ensure that any more specific directory is removed if a parent directory is in the list of provided locations.
-rw-r--r--guix/import/texlive.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index bdef9f58b0..d5021669be 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -197,11 +197,14 @@
(loop all current #false))))))))))))
(define (files->directories files)
+ (define name->parts (cut string-split <> #\/))
(map (cut string-join <> "/" 'suffix)
(delete-duplicates (map (lambda (file)
- (drop-right (string-split file #\/) 1))
- files)
- equal?)))
+ (drop-right (name->parts file) 1))
+ (sort files string<))
+ ;; Remove sub-directories, i.e. more specific
+ ;; entries with the same prefix.
+ (lambda (x y) (every equal? x y)))))
(define (tlpdb->package name package-database)
(and-let* ((data (assoc-ref package-database name))