summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorSergio Pastor Pérez <sergio.pastorperez@gmail.com>2025-03-01 19:06:08 +0100
committerLudovic Courtès <ludo@gnu.org>2026-03-20 22:43:11 +0100
commitcf2a11b9661ed4b83012a533ef355eab4cbc238e (patch)
treed94e9959cba36fe3dda55317f9127841564e272c /guix
parent2d5ba988d586fdc981cc3ca7195db36b1133def8 (diff)
derivations: Let ‘map-derivation’ correctly handle directories.
The 'map-derivation' procedure was trying to process directories as files. When a derivation had a 'module import' directory as input, it threw an exception since it tried to open it as a file. * guix/derivations.scm (map-derivation): In ‘sources’, add ‘file-is-directory?’ case. * tests/derivations.scm ("map-derivation, modules"): New test. Fixes: https://issues.guix.gnu.org/71941 Change-Id: I9b766f9aaa03ea9307f73e8abb36bc347af4b5e6 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'guix')
-rw-r--r--guix/derivations.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index ffa69e924c..d84d1a391c 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2025 Sergio Pastor Pérez <sergio.pastorperez@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1074,8 +1075,10 @@ recursively."
((_ . replacement)
replacement)
(#f
- (substitute-file source
- initial replacements))))
+ (if (file-is-directory? source)
+ source
+ (substitute-file source
+ initial replacements)))))
(derivation-sources drv)))
;; Now augment the lists of initials and replacements.