GNU bug report logs -
#66901
[PATCH] scripts: edit: Fix relative file-name with 'load-path' option.
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66901 in the body.
You can then email your comments to 66901 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org
:
bug#66901
; Package
guix-patches
.
(Thu, 02 Nov 2023 20:36:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Simon Tournier <zimon.toutoune <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org
.
(Thu, 02 Nov 2023 20:36:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* guix/scripts/edit.scm (search-path*): Use 'canonicalize-path' if
'search-path' fails.
Change-Id: I891d63d0d28577a7d1732fc59435828ecc0a5c5a
---
guix/scripts/edit.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Hi,
Using Guix aabfddb, consider:
--8<---------------cut here---------------start------------->8---
$ guix show -L src/example hi
name: hi
version: 2.10
outputs:
+ out: everything
systems: x86_64-linux i686-linux
dependencies: gawk <at> 5.2.1
location: src/example/first.scm:9:2
homepage: https://www.gnu.org/software/hello/
license: GPL 3+
synopsis: Hello, GNU world: An example GNU package
description: Guess what GNU Hello prints!
$ guix edit -L src/example hi
guix edit: error: file 'src/example/first.scm' not found in search path ("src/example" "/gnu/store/yzib23ah0rlmim0j4737g2wrhx1r1q3r-guix-module-union/share/guile/site/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/site/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/site" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile" "/home/simon/.guix-profile/share/guile/site/3.0" "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0" "/home/simon/.guix-profile/share/guile/site/3.0" "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0")
--8<---------------cut here---------------end--------------->8---
The issue is that the procedure 'search-path' returns #f. It looks similar as
fixed bug #42543 [1] by d10474c38d58bdc676e64336769dc2e00cdfa8ed.
Here, I do not know how to avoid 'canonicalize-path' when 'search-path'
returns #f because some relative.
WDYT?
1: https://issues.guix.gnu.org/42543
Cheers,
simon
diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm
index ff2d529bcf..7ec725fc08 100644
--- a/guix/scripts/edit.scm
+++ b/guix/scripts/edit.scm
@@ -64,7 +64,11 @@ (define %editor
(define (search-path* path file)
"Like 'search-path' but exit if FILE is not found."
- (let ((absolute-file-name (search-path path file)))
+ (let ((absolute-file-name (or (search-path path file)
+ ;; It could be that FILE is a relative name
+ ;; i.e., not relative to an element of PATH.
+ (and (file-exists? file)
+ (canonicalize-path file)))))
(unless absolute-file-name
;; Shouldn't happen unless somebody fiddled with the 'location' field.
(leave (G_ "file '~a' not found in search path ~s~%")
base-commit: 28ebbe2be8829a4767b9789c6353ad5e826d1164
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#66901
; Package
guix-patches
.
(Sun, 05 Nov 2023 15:00:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 66901 <at> debbugs.gnu.org (full text, mbox):
Hi!
Simon Tournier <zimon.toutoune <at> gmail.com> skribis:
> * guix/scripts/edit.scm (search-path*): Use 'canonicalize-path' if
> 'search-path' fails.
[...]
> $ guix edit -L src/example hi
> guix edit: error: file 'src/example/first.scm' not found in search path ("src/example" "/gnu/store/yzib23ah0rlmim0j4737g2wrhx1r1q3r-guix-module-union/share/guile/site/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/site/3.0" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile/site" "/gnu/store/84rvhd3j7pfqrh7717cv7ddv2dc8xad5-guile-3.0.9/share/guile" "/home/simon/.guix-profile/share/guile/site/3.0" "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0" "/home/simon/.guix-profile/share/guile/site/3.0" "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0")
>
>
> The issue is that the procedure 'search-path' returns #f. It looks similar as
> fixed bug #42543 [1] by d10474c38d58bdc676e64336769dc2e00cdfa8ed.
>
> Here, I do not know how to avoid 'canonicalize-path' when 'search-path'
> returns #f because some relative.
[...]
> (define (search-path* path file)
> "Like 'search-path' but exit if FILE is not found."
> - (let ((absolute-file-name (search-path path file)))
> + (let ((absolute-file-name (or (search-path path file)
> + ;; It could be that FILE is a relative name
> + ;; i.e., not relative to an element of PATH.
> + (and (file-exists? file)
> + (canonicalize-path file)))))
I think we can remove the ‘canonicalize-path’ call here since we know
that FILE denotes a valid file at that point. (That’d avoid the extra
work ‘canonicalize-path’ does.)
Otherwise LGTM!
Thanks,
Ludo’.
Reply sent
to
Simon Tournier <zimon.toutoune <at> gmail.com>
:
You have taken responsibility.
(Sun, 05 Nov 2023 15:55:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Simon Tournier <zimon.toutoune <at> gmail.com>
:
bug acknowledged by developer.
(Sun, 05 Nov 2023 15:55:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 66901-done <at> debbugs.gnu.org (full text, mbox):
Hi,
On Sun, 05 Nov 2023 at 15:58, Ludovic Courtès <ludo <at> gnu.org> wrote:
> I think we can remove the ‘canonicalize-path’ call here since we know
> that FILE denotes a valid file at that point. (That’d avoid the extra
> work ‘canonicalize-path’ does.)
Thanks for the review. Pushed without canonicalize-path as
1eb3133355ef14d6d4c8648504a7e013338779a8.
Cheers,
simon
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 04 Dec 2023 12:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 198 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.