Subject: Re: [bug#75302] [PATCH] packages: Match renamed origin fields.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 08 Jan 2025 11:06:08 +0100

Hi,

Herman Rimm <[email-masked]> skribis:

> On Sat, Jan 04, 2025 at 09:59:13PM +0100, Ludovic Courtès wrote:
>> The patch LGTM but, (1) fields haven’t been renamed recently, and…
>
> I misunderstood how (match _ (($ _) _)) works.  Can you amend the commit
> to start like: 'packages: Replace match with match-record.', instead?

OK.

> In a checkout at b8858d8b1344525d0d7ac78d8fb9dc1a577b85d3 with this
> patch applied, running:
>
> guix shell -CPWN
> ./pre-inst-env guix repl < tests/packages.scm

If you really wanted to do this, try:

  ./pre-inst-env guile --no-auto-compile tests/packages.scm

I recommend sticking to the documented procedure though.

> I get the three errors mentioned, see attached log.  I run the tests
> like this because running:
>
> guix shell -CPWN
> make check TESTS="tests/packages.scm"
>
> returns:

[...]

> [ 77%] LOAD     gnu.scm
> ice-9/eval.scm:293:34: error: diff: unbound variable
> hint: Did you forget a `use-modules' form?
> make[2]: *** [Makefile:7518: make-system-go] Error 1

Well, it definitely builds here.  Could it be that you have local
changes in your tree?  Or perhaps you need ‘make clean-go’ first?

>   source-form: (test-assert "package-source-derivation, local-file" (let* ((file (local-file "../guix/base32.scm")) (package (package (inherit (dummy-package "p")) (source file))) (source (package-source-derivation %store (package-source package)))) (and (store-path? source) (string-suffix? "base32.scm" source) (valid-path? %store source) (equal? (call-with-input-file source get-bytevector-all) (call-with-input-file (search-path %load-path "guix/base32.scm") get-bytevector-all)))))
> Test end:
>   result-kind: fail
>   actual-value: #f
>   actual-error: (system-error "canonicalize-path" "~A: ~S" ("No such file or directory" "../guix/base32.scm") (2))

Probably has to do with running the test through standard input ‘guix
repl’: in that case it cannot correctly determine what the current file
name is, and so relative file name resolution fails.

Ludo’.