GNU bug report logs - #57050
[PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo.

Previous Next

Package: guix-patches;

Reported by: Philip McGrath <philip <at> philipmcgrath.com>

Date: Mon, 8 Aug 2022 06:07:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Maxime Devos <maximedevos <at> telenet.be>
To: Philip McGrath <philip <at> philipmcgrath.com>, 57050 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>, "(" <paren <at> disroot.org>
Subject: [bug#57050] [PATCH 3/6] gnu: chez-scheme: Fix use of "/bin/sh".
Date: Wed, 10 Aug 2022 13:46:39 +0200
[Message part 1 (text/plain, inline)]
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.

[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

This bug report was last modified 2 years and 319 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.