Subject: bug#56030: The guix pull profile is too big

From: Maxime Devos <[email-masked]>
Date: Thu, 21 Jul 2022 17:46:38 +0200

On 21-07-2022 17:11, ( wrote:
> couldn't we just use `-DSHELL_PATH=/gnu/store/...`?

Using SHELL_PATH instead of the __guix_bin_sh sounds better, yes.  But 
it's not 'just use -DSHELL_PATH=', we still need to change 'system' 
appropriately.

> Would this not violate POSIX? Since, as far as I can see,
> <https://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html>
> does not give the implementation license to implement system(3) as a
> macro.
Probably. But does that really matter?  The standard exists for a 
reason, but we aren't aiming for POSIX certifications and it isn't the 
law or something ... seems rather inconvenient for development outside a 
build environment though, so perhaps SHELL_PATH could somehow fallback 
to /bin/sh when outside a build environment.
>   We could do
>
> ```
> int system(const char *command) {
> 	return __guix_run_in_shell(command, __guix_bin_sh);
> }

Needs a 'static' to avoid multiple definitions on the same thing, but 
yes, that would avoid the macro problem (though not sufficient for some 
FFI).

Greetings,
Maxime.