guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#57050] [PATCH 3/6] gnu: chez-scheme: Fix use of "/bin/sh".


From: Maxime Devos
Subject: [bug#57050] [PATCH 3/6] gnu: chez-scheme: Fix use of "/bin/sh".
Date: Wed, 10 Aug 2022 13:46:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0

On 09-08-2022 23:58, Philip McGrath wrote:

On Tuesday, August 9, 2022 5:38:56 PM EDT ( wrote:
On Tue Aug 9, 2022 at 10:24 PM BST, Maxime Devos wrote:
In the glibc headers, there's some (POSIX?) standard macro that points
at "/gnu/store/.../bin/sh" (I don't recall the name), any reason we
aren't using that macro?  That would be Guix-independent. I'm not sure
if a /gnu/store/... prefix is included, but if not, maybe we could try
overriding it with -D...="/gnu/store/...", or failing that, add a
post-unpack substitute* replacing [the macro name] ->
"/gnu/store/.../bin/sh".
I believe you might be referring to <paths.h>, which defines _PATH_BSHELL.

It's not standard C <https://en.cppreference.com/w/c/header> nor POSIX
<https://pubs.opengroup.org/onlinepubs/9699919799/idx/head.html> though.

     -- (

Looking at the "paths.h" header, it appears to be a BSDism. Not really standard 
but still better than a Guix-ism.

I'd love to be wrong, but I also can't find such a macro. In the glibc source
tree, "stdlib/system.c" defines a stub implementation that always fails with
ENOSYS, and "sysdeps/posix/system.c" contains:

     #define    SHELL_PATH      "/bin/sh"     /* Path of the shell.  */
     #define    SHELL_NAME      "sh"  /* Name to give it.  */

Concretely, I think Guix's glibc currently uses /bin/sh dynamically: in my
Chez example above, if you replace `process` with `system` (which uses libc's
`system`), the result is always "/bin/sh\n".

If so, that's a bug.  I do not know what result you are referring to.

Anyway, the Guix package definition of glibc substitutes _PATH_BSHELL and SHELL_PATH, so unless there's a bug, it doesn't depend on /bin/sh.

Greetings,
Maxime.

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]