diff mbox series

[bug#65757] guix: packages: Support package/inherit by package-field-location.

Message ID 6cefcfecf409ffdd5fe856c23fbbc7b9cae7161d.1693924596.git.zimon.toutoune@gmail.com
State New
Headers show
Series [bug#65757] guix: packages: Support package/inherit by package-field-location. | expand

Commit Message

Simon Tournier Sept. 5, 2023, 2:37 p.m. UTC
Fixes <https://issues.guix.gnu.org//65236>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* guix/packages.scm (package-field-location): Add package/inherit case.
---
 guix/packages.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


base-commit: bedcdf0fb5ac035f696790827679406c7146396c

Comments

Maxim Cournoyer Sept. 6, 2023, 8:41 p.m. UTC | #1
Hi Simon,

Simon Tournier <zimon.toutoune@gmail.com> writes:

> Fixes <https://issues.guix.gnu.org//65236>.
> Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

nitpick: 'Reported-by:' is a Git trailing (message tag); it should
appear at the bottom of the commit message for Git tools to correctly
parse it.

> * guix/packages.scm (package-field-location): Add package/inherit case.
> ---
>  guix/packages.scm | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/guix/packages.scm b/guix/packages.scm
> index ba98bb0fb484..821eddb72d5d 100644
> --- a/guix/packages.scm
> +++ b/guix/packages.scm
> @@ -761,7 +761,8 @@ (define (package-field-location package field)
>                (lambda (port)
>                  (go-to-location port line column)
>                  (match (read port)
> -                  (('package inits ...)
> +                  ((or ('package inits ...)
> +                       ('package/inherit inits ...))

I tested it in 'guix repl' for zxing-cpp-1.2, and something didn't go
well:

--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,use (guix packages)
scheme@(guix-user)> ,use (gnu packages aidc)
scheme@(guix-user)> zxing-cpp-1.2
$1 = #<package zxing-cpp@1.2.0 gnu/packages/aidc.scm:76 7f4b56450d10>
scheme@(guix-user)> (package-field-location $1 'version)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure assoc: Wrong type argument: zxing-cpp

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guix-user) [1]> ,bt
In ice-9/boot-9.scm:
  1747:15  4 (with-exception-handler #<procedure 7f4b58de8480 at ice-9/boot-9.scm:1831:7 (exn)> _ # _ # …)
In ice-9/ports.scm:
   433:17  3 (call-with-input-file _ _ #:binary _ #:encoding _ #:guess-encoding _)
In guix/packages.scm:
   766:32  2 (_ _)
In srfi/srfi-1.scm:
    241:2  1 (assoc _ _ _)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)
--8<---------------cut here---------------end--------------->8---

I modified it like:

--8<---------------cut here---------------start------------->8---
modified   guix/packages.scm
@@ -762,7 +762,7 @@ (define (package-field-location package field)
                 (go-to-location port line column)
                 (match (read port)
                   ((or ('package inits ...)
-                       ('package/inherit parent inits ...))
+                       ('package/inherit _ inits ...))
                    (let ((field (assoc field inits)))
                      (match field
                        ((_ value)
--8<---------------cut here---------------end--------------->8---

And it now works; yay!  Will install shortly.
Simon Tournier Sept. 6, 2023, 10:01 p.m. UTC | #2
Hi Maxim,

On Wed, 06 Sep 2023 at 16:41, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:

> --8<---------------cut here---------------start------------->8---
> modified   guix/packages.scm
> @@ -762,7 +762,7 @@ (define (package-field-location package field)
>                  (go-to-location port line column)
>                  (match (read port)
>                    ((or ('package inits ...)
> -                       ('package/inherit parent inits ...))
> +                       ('package/inherit _ inits ...))
>                     (let ((field (assoc field inits)))
>                       (match field
>                         ((_ value)
> --8<---------------cut here---------------end--------------->8---
>
> And it now works; yay!  Will install shortly.

Oops!  Indeed, sorry for missing the obvious.  Thanks for the fix.

Cheers,
simon

PS: For the record, the change you made is:

 -                       ('package/inherit inits ...))
 +                       ('package/inherit _ inits ...))

because the one above would be equivalent :-) – if I understand enough
Guile patterning matching.
Maxim Cournoyer Sept. 7, 2023, 1:55 a.m. UTC | #3
Hi,

Simon Tournier <zimon.toutoune@gmail.com> writes:

> Hi Maxim,
>
> On Wed, 06 Sep 2023 at 16:41, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>
>> --8<---------------cut here---------------start------------->8---
>> modified   guix/packages.scm
>> @@ -762,7 +762,7 @@ (define (package-field-location package field)
>>                  (go-to-location port line column)
>>                  (match (read port)
>>                    ((or ('package inits ...)
>> -                       ('package/inherit parent inits ...))
>> +                       ('package/inherit _ inits ...))
>>                     (let ((field (assoc field inits)))
>>                       (match field
>>                         ((_ value)
>> --8<---------------cut here---------------end--------------->8---
>>
>> And it now works; yay!  Will install shortly.
>
> Oops!  Indeed, sorry for missing the obvious.  Thanks for the fix.
>
> Cheers,
> simon
>
> PS: For the record, the change you made is:
>
>  -                       ('package/inherit inits ...))
>  +                       ('package/inherit _ inits ...))
>
> because the one above would be equivalent :-) – if I understand enough
> Guile patterning matching.

The one with 'parent' was working as well, but because the binding was
never used, Guile was emitting a warning, silence by renaming 'parent'
to '_' :-).
diff mbox series

Patch

diff --git a/guix/packages.scm b/guix/packages.scm
index ba98bb0fb484..821eddb72d5d 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -761,7 +761,8 @@  (define (package-field-location package field)
               (lambda (port)
                 (go-to-location port line column)
                 (match (read port)
-                  (('package inits ...)
+                  ((or ('package inits ...)
+                       ('package/inherit inits ...))
                    (let ((field (assoc field inits)))
                      (match field
                        ((_ value)