mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-02-07 11:29:59 +01:00
packages: 'package-field-location' handles 'search-path' returning #f.
Fixes <https://bugs.gnu.org/46390>.
Reported by zimoun <zimon.toutoune@gmail.com>.
This is similar to the fix in d10474c38d
.
* guix/packages.scm (package-field-location): Handle FILE not in %LOAD-PATH.
* tests/guix-lint.sh: Add test.
This commit is contained in:
parent
03235402df
commit
9a38bed2cf
2 changed files with 33 additions and 23 deletions
|
@ -475,10 +475,12 @@ object."
|
||||||
|
|
||||||
(match (package-location package)
|
(match (package-location package)
|
||||||
(($ <location> file line column)
|
(($ <location> file line column)
|
||||||
|
(match (search-path %load-path file)
|
||||||
|
((? string? file)
|
||||||
(catch 'system-error
|
(catch 'system-error
|
||||||
(lambda ()
|
(lambda ()
|
||||||
;; In general we want to keep relative file names for modules.
|
;; In general we want to keep relative file names for modules.
|
||||||
(call-with-input-file (search-path %load-path file)
|
(call-with-input-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(goto port line column)
|
(goto port line column)
|
||||||
(match (read port)
|
(match (read port)
|
||||||
|
@ -498,6 +500,9 @@ object."
|
||||||
#f)))))
|
#f)))))
|
||||||
(lambda _
|
(lambda _
|
||||||
#f)))
|
#f)))
|
||||||
|
(#f
|
||||||
|
;; FILE could not be found in %LOAD-PATH.
|
||||||
|
#f)))
|
||||||
(_ #f)))
|
(_ #f)))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -90,3 +90,8 @@ guix lint -L $module_dir -c inputs-should-be-native dummy dummy@42 dummy
|
||||||
# that it does find it anyway. See <https://bugs.gnu.org/42543>.
|
# that it does find it anyway. See <https://bugs.gnu.org/42543>.
|
||||||
(cd "$module_dir"/.. ; guix lint -c formatting -L "$(basename "$module_dir")" dummy@42) 2>&1 > "$module_dir/out"
|
(cd "$module_dir"/.. ; guix lint -c formatting -L "$(basename "$module_dir")" dummy@42) 2>&1 > "$module_dir/out"
|
||||||
test -z "$(cat "$module_dir/out")"
|
test -z "$(cat "$module_dir/out")"
|
||||||
|
|
||||||
|
# Likewise, when there's a warning, 'package-field-location' used to crash
|
||||||
|
# because it can't find "t-xyz/foo.scm". See <https://bugs.gnu.org/46390>.
|
||||||
|
(cd "$module_dir"/.. ; guix lint -c synopsis -L "$(basename "$module_dir")" dummy@42) 2>&1 > "$module_dir/out"
|
||||||
|
grep_warning "`cat "$module_dir/out"`"
|
||||||
|
|
Loading…
Add table
Reference in a new issue