services: nix: Point Nix to bin/bash.

The nix-service-type will create the nix.conf file pointing to
`bin/sh' file in the bash-minimal package, however this is a symbolic
link to `bin/bash' in that same package, so when the sandbox gets
created there will be a symlink in the Nix sandbox like this:

  drwxr-xr-x  2 nobody nogroup 4096 Sep 18 13:10 .
  drwxr-x--- 10 nobody nixbld  4096 Sep 18 13:10 ..
  lrwxrwxrwx  1 nobody nogroup    4 Jan  1  1970 sh -> bash

Making builds that depend on /bin/sh fail since /bin/bash does not
exist in the sandbox.

* gnu/services/nix.scm (nix-service-etc): Change ‘build-sandbox-paths’ to
point to ‘bin/bash’.

Change-Id: I9138e9b772b8468382cfde6d133f0758837d03ff
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Jean-Pierre De Jesus DIAZ 2025-09-18 15:12:54 +02:00 committed by Ludovic Courtès
parent 9a70af56e0
commit 12699cf858
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -127,7 +127,7 @@ GID."
(format #t "sandbox = ~a~%" (if #$sandbox "true" "false")) (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
;; config.nix captures store file names. ;; config.nix captures store file names.
(format #t "build-sandbox-paths = ~{~a ~}~%" (format #t "build-sandbox-paths = ~{~a ~}~%"
(append (list (string-append "/bin/sh=" #$bash-minimal "/bin/sh")) (append (list (string-append "/bin/sh=" #$bash-minimal "/bin/bash"))
internal-sandbox-paths internal-sandbox-paths
'#$build-sandbox-items)) '#$build-sandbox-items))
(for-each (cut display <>) '#$extra-config))))))))))) (for-each (cut display <>) '#$extra-config)))))))))))