unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / Atom feed
* bug#43818: Use of local-file in icecat-source definition breaks REPL
@ 2020-10-05 17:36 Maxim Cournoyer
  2020-10-05 17:39 ` Maxim Cournoyer
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2020-10-05 17:36 UTC (permalink / raw)
  To: 43818

CC: Mark H Weaver, one of the Icecat maintainer.

Hello,

The problem is that local-file doesn't work in Geiser.  This breaks
working at the REPL:

Enter `,help' for help.
scheme@(guile-user)> ,m (gnu packages linux)
While executing meta-command:
ERROR:
  1. &formatted-message:
      format: "~a: patch not found\n"
      arguments: ("icecat-use-older-reveal-hidden-html.patch")

Any ideas of what could be done about it?

Maxim




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#43818: Use of local-file in icecat-source definition breaks REPL
  2020-10-05 17:36 bug#43818: Use of local-file in icecat-source definition breaks REPL Maxim Cournoyer
@ 2020-10-05 17:39 ` Maxim Cournoyer
  2020-10-24  4:55 ` Maxim Cournoyer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2020-10-05 17:39 UTC (permalink / raw)
  To: 43818

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> CC: Mark H Weaver, one of the Icecat maintainer.
>
> Hello,
>
> The problem is that local-file doesn't work in Geiser.  This breaks
> working at the REPL:
>
> Enter `,help' for help.
> scheme@(guile-user)> ,m (gnu packages linux)
> While executing meta-command:
> ERROR:
>   1. &formatted-message:
>       format: "~a: patch not found\n"
>       arguments: ("icecat-use-older-reveal-hidden-html.patch")
>
> Any ideas of what could be done about it?
>
> Maxim

The same also occurs for linux-libre patches:

While executing meta-command:
ERROR:
  1. &formatted-message:
      format: "~a: patch not found\n"
      arguments: ("linux-libre-support-for-Pinebook-Pro.patch")

I'll try progressing on the Gexp as a thunked field experiment; this
should allow us to rewrite the orgins in a more straight forward way,
hopefully eschewing this issue.

Maxim




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#43818: Use of local-file in icecat-source definition breaks REPL
  2020-10-05 17:36 bug#43818: Use of local-file in icecat-source definition breaks REPL Maxim Cournoyer
  2020-10-05 17:39 ` Maxim Cournoyer
@ 2020-10-24  4:55 ` Maxim Cournoyer
       [not found] ` <handler.43818.D43818.160351533211096.notifdone@debbugs.gnu.org>
  2020-10-25  5:52 ` bug#43818: [PATCH] packages: Fix a bug in %patch-path Maxim Cournoyer
  3 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2020-10-24  4:55 UTC (permalink / raw)
  To: 43818-done

Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> CC: Mark H Weaver, one of the Icecat maintainer.
>
> Hello,
>
> The problem is that local-file doesn't work in Geiser.  This breaks
> working at the REPL:
>
> Enter `,help' for help.
> scheme@(guile-user)> ,m (gnu packages linux)
> While executing meta-command:
> ERROR:
>   1. &formatted-message:
>       format: "~a: patch not found\n"
>       arguments: ("icecat-use-older-reveal-hidden-html.patch")

Thanks for Christopher Baines on #guix who pointed that local-file
seemed to behave correctly at the REPL and Geiser (indeed!).  It made me
try to reproduce it in a --pure environment and I couldn't.

After a couple hours digging, I found that this snippet in my modified
.dir-locals file:

--8<---------------cut here---------------start------------->8---
(with-eval-after-load 'geiser-guile
  (let ((root-dir (locate-dominating-file
                   default-directory ".dir-locals.el")))
    (setq geiser-guile-load-path
          (cons root-dir
                (delete root-dir geiser-guile-load-path)))))
--8<---------------cut here---------------end--------------->8---

Was the culprit, especially the use of with-eval-after-load (which
turned out to be unnecessary).

This snippet allows to switch between git worktrees and always have the
geiser-guile-load-path (which configures both the Guile %load-path and
the %load-compiled-path) set correctly.

Here's the diff of my (fixed) .dir-locals in my Guix git checkout:

--8<---------------cut here---------------start------------->8---
~/src/guix$ git diff .dir-locals.el
diff --git a/.dir-locals.el b/.dir-locals.el
index 19f15b3e1a..0869fbaa20 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -8,7 +8,17 @@
      ;; For use with 'bug-reference-prog-mode'.
      (bug-reference-url-format . "http://bugs.gnu.org/%s")
      (bug-reference-bug-regexp
-      . "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")))
+      . "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")
+
+     ;; Emacs-Guix
+     (eval . (setq guix-directory
+                   (locate-dominating-file default-directory ".dir-locals.el")))
+     ;; Geiser
+     (eval . (let ((root-dir (locate-dominating-file
+                              default-directory ".dir-locals.el")))
+               (setq geiser-guile-load-path
+                     (cons root-dir
+                           (delete root-dir geiser-guile-load-path)))))))
  (c-mode          . ((c-file-style . "gnu")))
  (scheme-mode
   .
--8<---------------cut here---------------end--------------->8---

I am closing this issue, sorry for the noise!

Maxim




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#43818: Use of local-file in icecat-source definition breaks REPL)
       [not found] ` <handler.43818.D43818.160351533211096.notifdone@debbugs.gnu.org>
@ 2020-10-25  2:14   ` Maxim Cournoyer
  0 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2020-10-25  2:14 UTC (permalink / raw)
  To: 43818; +Cc: GNU Debbugs

reopen
thanks

I thought I had this understood, but there is still an issue.  At least
this time I could pinpoint precisely what makes it fail.  It had nothing
to do with the use of `eval-after-load' in my .dir-locals file.

To reproduce the problem, it suffices to append a trailing slash to the Guix entry in the
GUILE_LOAD_PATH:

--8<---------------cut here---------------start------------->8---
maxim@hurd ~/src/guix$ GUILE_LOAD_PATH=$PWD:$GUILE_LOAD_PATH GUILE_LOAD_COMPILED_PATH=$PWD:$GUILE_LOAD_COMPILED_PATH guile
GNU Guile 3.0.4
Copyright (C) 1995-2020 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> %load-path
$1 = ("/home/maxim/src/guix" "/home/maxim/src/guile-hacks" "/home/maxim/.guix-profile/share/guile/site/3.0" "/run/current-system/profile/share/g0.4/share/guile/3.0" "/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4/share/guile/site/3.0" "/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1ca1q9h1-guile-3.0.4/share/guile")
scheme@(guile-user)> ,use (gnu packages linux)
scheme@(guile-user)> 

maxim@hurd ~/src/guix$ GUILE_LOAD_PATH=$PWD/:$GUILE_LOAD_PATH GUILE_LOAD_COMPILED_PATH=$PWD/:$GUILE_LOAD_COMPILED_PATH guile
GNU Guile 3.0.4
Copyright (C) 1995-2020 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> %load-path
$1 = ("/home/maxim/src/guix/" "/home/maxim/src/guile-hacks" "/home/maxim/.guix-profile/share/guile/site/3.0" "/run/current-system/profile/share/.0.4/share/guile/3.0" "/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4/share/guile/site/3.0" "/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h2ca1q9h1-guile-3.0.4/share/guile")
scheme@(guile-user)> ,use (gnu packages linux)
While executing meta-command:
ERROR:
  1. &formatted-message:
      format: "~a: patch not found\n"
      arguments: ("icecat-use-older-reveal-hidden-html.patch")
scheme@(guile-user)>
--8<---------------cut here---------------end--------------->8---

To be continued...

Maxim




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#43818: [PATCH] packages: Fix a bug in %patch-path.
  2020-10-05 17:36 bug#43818: Use of local-file in icecat-source definition breaks REPL Maxim Cournoyer
                   ` (2 preceding siblings ...)
       [not found] ` <handler.43818.D43818.160351533211096.notifdone@debbugs.gnu.org>
@ 2020-10-25  5:52 ` Maxim Cournoyer
  3 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2020-10-25  5:52 UTC (permalink / raw)
  To: 43818; +Cc: Maxim Cournoyer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=yes, Size: 1899 bytes --]

Fixes <https://issues.guix.gnu.org/43818>.

Having the Guix root trailed by a slash in the GUILE_LOAD_PATH would
previously cause %patch-path to not return an entry with the patches
sub-directory, leading to errors such as:

   While executing meta-command:
   ERROR:
     1. &formatted-message:
         format: "~a: patch not found\n"
         arguments: ("icecat-use-older-reveal-hidden-html.patch")

* gnu/packages.scm (strip-trailing-slash): New procedure.
(%patch-path): Use it to strip any trailing slash from the %load-path entries.
---
 gnu/packages.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index ccfc83dd11..f5acbda897 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -159,6 +160,12 @@ flags."
              %default-package-module-path
              channels-scm))))
 
+(define (strip-trailing-slash s)
+  ;; Strip the trailing slash of a string, if present.
+  (if (string-suffix? "/" s)
+      (string-drop-right s 1)
+      s))
+
 (define %patch-path
   ;; Define it after '%package-module-path' so that '%load-path' contains user
   ;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
@@ -167,7 +174,7 @@ flags."
           (if (string=? directory %distro-root-directory)
               (string-append directory "/gnu/packages/patches")
               directory))
-        %load-path)))
+        (map strip-trailing-slash %load-path))))
 
 ;; This procedure is used by Emacs-Guix up to 0.5.1.1, so keep it for now.
 ;; See <https://github.com/alezost/guix.el/issues/30>.
-- 
2.28.0





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-10-25  5:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-05 17:36 bug#43818: Use of local-file in icecat-source definition breaks REPL Maxim Cournoyer
2020-10-05 17:39 ` Maxim Cournoyer
2020-10-24  4:55 ` Maxim Cournoyer
     [not found] ` <handler.43818.D43818.160351533211096.notifdone@debbugs.gnu.org>
2020-10-25  2:14   ` bug#43818: Use of local-file in icecat-source definition breaks REPL) Maxim Cournoyer
2020-10-25  5:52 ` bug#43818: [PATCH] packages: Fix a bug in %patch-path Maxim Cournoyer

unofficial mirror of bug-guix@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-bugs/0 guix-bugs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-bugs guix-bugs/ https://yhetil.org/guix-bugs \
		bug-guix@gnu.org
	public-inbox-index guix-bugs

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.bugs
	nntp://news.gmane.io/gmane.comp.gnu.guix.bugs


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git