GNU bug report logs - #66336
[PATCH] gnu: guile-proba: Fix environment vars in Guile Proba's script.

Previous Next

Package: guix-patches;

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.

View this report as an mbox folder, status mbox, maintainer mbox


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

From: Fabio Natali <me <at> fabionatali.com>
To: guix-patches <at> gnu.org
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>,
 Fabio Natali <me <at> fabionatali.com>
Subject: [PATCH] gnu: guile-proba: Fix environment vars in Guile Proba's
 script.
Date: Wed,  4 Oct 2023 11:20:30 +0100
* 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):

From: Luis Felipe <sirgazil <at> zoho.com>
To: 66336 <at> debbugs.gnu.org
Subject: [PATCH] gnu: guile-proba: Fix environment vars in Guile Proba's
 script.
Date: Thu, 5 Oct 2023 18:35:41 +0000
[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):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Fabio Natali <me <at> fabionatali.com>
Cc: Luis Felipe <luis.felipe.la <at> protonmail.com>, 66336-done <at> debbugs.gnu.org
Subject: Re: bug#66336: [PATCH] gnu: guile-proba: Fix environment vars in
 Guile Proba's script.
Date: Sat, 14 Oct 2023 15:29:01 +0200
> * 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.