We want to allow builds in chroots that lack /bin/sh. Thus, system(3)
and popen(3) need to be tweaked to use the right shell. For the bootstrap
glibc, we just use whatever `sh' can be found in $PATH. The final glibc
instead uses the hard-coded absolute file name of `bash'.
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -106,8 +106,8 @@ do_system (const char *line)
(void) UNBLOCK;
/* Exec the shell. */
- (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ);
+ (void) execvp (SHELL_NAME, (char *const *) new_argv);
_exit (127);
}
else if (pid < (pid_t) 0)
/* The fork failed. */
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -170,7 +170,7 @@ _IO_new_proc_open (fp, command, mode)
for (p = proc_file_chain; p; p = p->next)
_IO_close (_IO_fileno ((_IO_FILE *) p));
- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0);
+ execlp ("sh", "sh", "-c", command, (char *) 0);
_IO__exit (127);
}
_IO_close (child_end);
bout/'>aboutsummaryrefslogtreecommitdiff
|
Age | Commit message (Expand) | Author |
2023-08-20 | Revert "gnu: system: Add home-directory-permissions field to <user-account>."...This reverts commit e9a5eebc785cb843034b38c5c5a6dd10904bdf2a, which
as far as I can tell breaks system roll-backs thusly:
[...]
In gnu/build/accounts.scm:
239:27 3 (_ #<<password-entry> name: "root" password: "x" uid: 0 gid: 0 real-name: "System >)
In unknown file:
2 (string-join ("root" "x" "0" "0" "System administrator" "/root" #t) ":" #<undefined>)
In ice-9/boot-9.scm:
1685:16 1 (raise-exception _ #:continuable? _)
1685:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure string-append: Wrong type (expecting string): #t
| Tobias Geerinckx-Rice |
2023-08-25 | gnu: system: Add home-directory-permissions field to <user-account>....* gnu/system/accounts.scm (<user-account>)[home-directory-permissions]: New
field.
(user-account-home-directory-permissions): New accessor.
* gnu/build/activation.scm (activate-users+groups): Use home directory
permission bits from the user account object.
* doc/guix.texi (User Accounts): Document new field.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
| David Thompson |
2022-12-17 | activation: Firmware activation handles missing support in kernel....* gnu/build/activation.scm (activate-firmware): Check if firmware loading is
enabled before attempting to use it.
| Marius Bakke |