aboutsummaryrefslogtreecommitdiff
path: root/guix/import
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-01 21:40:42 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-18 18:16:43 +0200
commit944ace71947682e727dcf94faba425be66fbd703 (patch)
treecbc58d6a0bed019efe03a85fbd8a0d301a3a9794 /guix/import
parentfc91998274bd747668d1497aa799c8c1ec523738 (diff)
downloadguix-944ace71947682e727dcf94faba425be66fbd703.tar
guix-944ace71947682e727dcf94faba425be66fbd703.tar.gz
guix: Fix sub-directories in texlive importer locations.
* guix/import/texlive.scm (files->locations): When removing a sub-directory, make sure to actually remove the sub-directory and not the parent.
Diffstat (limited to 'guix/import')
-rw-r--r--guix/import/texlive.scm14
1 files changed, 6 insertions, 8 deletions
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index 3b5c7192b1..8f90be0c7b 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -352,7 +352,8 @@ of those files are returned that are unexpectedly installed."
(map strip-directory-prefix existing) files))))
(define (files->locations files)
- (define name->parts (cut string-split <> #\/))
+ (define (trim-filename entry)
+ (string-join (drop-right (string-split entry #\/) 1) "/" 'suffix))
;; Generic locations are shared by multiple packages. Provide the full file
;; name to make so as to extract only the files related to the package being
;; imported.
@@ -362,13 +363,10 @@ of those files are returned that are unexpectedly installed."
texlive-generic-locations))
files)))
(append generic
- (map (cut string-join <> "/" 'suffix)
- (delete-duplicates (map (lambda (file)
- (drop-right (name->parts file) 1))
- (sort specific string<))
- ;; Remove sub-directories, i.e. more
- ;; specific entries with the same prefix.
- (lambda (x y) (every equal? x y)))))))
+ ;; Remove sub-directories, i.e., more specific entries with the
+ ;; same prefix.
+ (delete-duplicates (sort (map trim-filename specific) string<)
+ string-prefix?))))
(define (tlpdb->package name version package-database)
(and-let* ((data (assoc-ref package-database name))