mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
* gnu/packages/parallel.scm (slurm-23.02, slurm-minimal-23.02): Delete variables, replace respectively by (slurm-23.11, slurm-minimal-23.11). * gnu/packages/patches/slurm-23-salloc-fallback-shell.patch: Refresh patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
26 lines
950 B
Diff
26 lines
950 B
Diff
Have 'salloc' use $SHELL or /bin/sh as the fallback shell.
|
||
|
||
This is useful in situations where glibc’s Name Service Switch (NSS) is
|
||
dysfunctional (with ‘getpwuid’ returning NULL), which can happen when
|
||
/etc/nsswitch.conf specifies plugins that fail to be loaded in user code, for
|
||
instance because user code is linked against an incompatible libc.
|
||
|
||
Similar patch submitted upstream: https://bugs.schedmd.com/show_bug.cgi?id=19896
|
||
|
||
diff --git a/src/salloc/opt.c b/src/salloc/opt.c
|
||
index f535600..848f099 100644
|
||
--- a/src/salloc/opt.c
|
||
+++ b/src/salloc/opt.c
|
||
@@ -333,8 +333,10 @@ static char *_get_shell(void)
|
||
if (uid == SLURM_AUTH_NOBODY)
|
||
uid = getuid();
|
||
|
||
- if (!(shell = uid_to_shell(uid)))
|
||
- fatal("no user information for user %u", uid);
|
||
+ if (!(shell = uid_to_shell(uid))) {
|
||
+ shell = getenv("SHELL") ?: "/bin/sh";
|
||
+ warning("no user information for user %u, using '%s' as the shell", opt.uid, shell);
|
||
+ }
|
||
|
||
return shell;
|
||
}
|