GNU bug report logs -
#66336
[PATCH] gnu: guile-proba: Fix environment vars in Guile Proba's script.
Previous Next
Reported by: Fabio Natali <me <at> fabionatali.com>
Date: Wed, 4 Oct 2023 10:30:02 UTC
Severity: normal
Tags: patch
Done: Mathieu Othacehe <othacehe <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66336 in the body.
You can then email your comments to 66336 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#66336
; Package
guix-patches
.
(Wed, 04 Oct 2023 10:30:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Fabio Natali <me <at> fabionatali.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Wed, 04 Oct 2023 10:30:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/check.scm (guile-proba): Micro fix.
Guile Proba's CLI script, as created via Guix's `wrap-program', should take
into account (as opposed to discard) the original, user-defined values of
`GUILE_LOAD_PATH' and `GUILE_LOAD_COMPILED_PATH'.
Currently, Guile Proba's CLI script is unable to find any third-party library
needed by the app being tested. This micro change should fix this.
---
Hi,
I think there might be a slight PATH-related issue in the way guile-proba is currently packaged. Specifically, I think it should be:
#+begin_src scheme :noeval
`("GUILE_LOAD_PATH" prefix (,(getenv "GUILE_LOAD_PATH")))
`("GUILE_LOAD_COMPILED_PATH" prefix (,(getenv "GUILE_LOAD_COMPILED_PATH")))))))
#+end_src
as opposed to the way it's now:
#+begin_src scheme :noeval
`("GUILE_LOAD_PATH" = (,(getenv "GUILE_LOAD_PATH")))
`("GUILE_LOAD_COMPILED_PATH" = (,(getenv "GUILE_LOAD_COMPILED_PATH")))))))
#+end_src
The current version results in the following CLI program:
#+begin_export ascii
user <at> host:~/staging/guix$ guix shell --container --link-profile coreutils guile-proba -- cat ~/.guix-profile/bin/proba
#!/gnu/store/9vw5slrffp27rzy2i2plnw7xfqjyk7m4-bash-minimal-5.1.16/bin/bash
export GUILE_LOAD_PATH="/gnu/store/2k854q6limcmiinqsysc7r5p3x61spcj-guile-proba-0.3.0/share/guile/site/3.0:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/share/guile/site/3.0:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/share/guile/site/3.0"
export GUILE_LOAD_COMPILED_PATH="/gnu/store/2k854q6limcmiinqsysc7r5p3x61spcj-guile-proba-0.3.0/lib/guile/3.0/site-ccache/:/gnu/store/2k854q6limcmiinqsysc7r5p3x61spcj-guile-proba-0.3.0/lib/guile/3.0/site-ccache:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/lib/guile/3.0/site-ccache:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/share/guile/site/3.0:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/lib/guile/3.0/site-ccache:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/share/guile/site/3.0"
exec -a "$0" "/gnu/store/2k854q6limcmiinqsysc7r5p3x61spcj-guile-proba-0.3.0/bin/.proba-real" "$@"
#+end_export
whereas I think the script should read (with this micro-patch):
#+begin_export ascii
user <at> host:~/staging/guix$ ./pre-inst-env guix shell --container --link-profile coreutils guile-proba -- cat ~/.guix-profile/bin/proba
#!/gnu/store/9vw5slrffp27rzy2i2plnw7xfqjyk7m4-bash-minimal-5.1.16/bin/bash
export GUILE_LOAD_PATH="/gnu/store/ibkh3kvhg5ky3xa9f49b48iv3wk0l1lk-guile-proba-0.3.0/share/guile/site/3.0:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/share/guile/site/3.0:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="/gnu/store/ibkh3kvhg5ky3xa9f49b48iv3wk0l1lk-guile-proba-0.3.0/lib/guile/3.0/site-ccache/:/gnu/store/ibkh3kvhg5ky3xa9f49b48iv3wk0l1lk-guile-proba-0.3.0/lib/guile/3.0/site-ccache:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/lib/guile/3.0/site-ccache:/gnu/store/wfhc8rbbmd0z25frrb5skhwcz242092i-guile-config-0.5.1/share/guile/site/3.0:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/lib/guile/3.0/site-ccache:/gnu/store/bc3zzjych6jyp4ph2af9k3w8qcs3nsn2-guile-lib-0.2.7/share/guile/site/3.0${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
exec -a "$0" "/gnu/store/ibkh3kvhg5ky3xa9f49b48iv3wk0l1lk-guile-proba-0.3.0/bin/.proba-real" "$@"
#+end_export
As a result of this, currently, Guile Proba's CLI script is unable to find any third-party library needed by the app being tested. This micro change should fix this.
This can be tested as follows.
#+begin_export shell :noeval
$ tree
.
├── foo.scm
└── tests
└── test-main.scm
#+end_export
#+begin_src scheme :noeval
;; foo.scm
(define-module (foo)
#:use-module (ini)
#:export (bar))
(define (bar)
(call-with-input-string "[foo]\nbar=baz\n" ini->scm))
#+end_src
#+begin_src scheme :noeval
;; test-main.scm
(define-module (test-main)
#:use-module (foo)
#:use-module (srfi srfi-64))
(test-begin "main")
(test-equal "main"
(bar)
'(("foo" ("bar" . "baz"))))
(test-end "main")
#+end_src
With the above files in place:
#+begin_src shell :noeval
$ proba run tests
[...]
ice-9/boot-9.scm:3330:6: In procedure resolve-interface:
no code for module (ini)
#+end_src
What do you think? I hope the change looks fine.
Thanks, best, Fabio.
gnu/packages/check.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 5af3b49280..e3c32c17c2 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -3599,8 +3599,8 @@ (define-public guile-proba
(copy-file "proba.scm" script)
(chmod script #o555)
(wrap-program script
- `("GUILE_LOAD_PATH" = (,(getenv "GUILE_LOAD_PATH")))
- `("GUILE_LOAD_COMPILED_PATH" =
+ `("GUILE_LOAD_PATH" prefix (,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" prefix
(,(getenv "GUILE_LOAD_COMPILED_PATH")))))))
(add-after 'install 'install-manual
(lambda* (#:key outputs #:allow-other-keys)
base-commit: 24fc0370d0d12f34cffd44801cc6382fc5cc5f23
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#66336
; Package
guix-patches
.
(Thu, 05 Oct 2023 18:37:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 66336 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Fabio, everyone.
I can reproduce the defect and can confirm that the patch solves the
problem.
I don't have commit access, but, for what it's worth, I see that in a
|./pre-inst-env|
☑ The patch applies correctly
☑ |guix build --check --no-grafts guile-proba |succeeds
☑ guix lint guile-proba does not report issues (although it indicates
the package can be upgraded to 0.3.1)
Cheers,
[OpenPGP_0x0AB0D067012F08C3.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Reply sent
to
Mathieu Othacehe <othacehe <at> gnu.org>
:
You have taken responsibility.
(Sat, 14 Oct 2023 13:30:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Fabio Natali <me <at> fabionatali.com>
:
bug acknowledged by developer.
(Sat, 14 Oct 2023 13:30:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 66336-done <at> debbugs.gnu.org (full text, mbox):
> * gnu/packages/check.scm (guile-proba): Micro fix.
Applied, thanks!
Mathieu
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 12 Nov 2023 12:24:12 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 216 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.