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 |
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.
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.
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 --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)