Subject: Re: bug#46297: nix-service-configuration is missing the default /bin/sh

From: Oleg Pykhalov <[email-masked]>
Date: Thu, 22 Apr 2021 19:50:25 +0300

pukkamustard <[email-masked]> writes:

[…]

> The build succeeds if I do following:
>
> ```
> $ sudo nix-build nixpkgs/ -A ocaml-ng.ocamlPackages_4_11.ocaml --option
> build-sandbox-paths
> "/bin/sh=//nix/store/0xrjvxvh3wvdbf8pc2850jry1fcx292g-busybox-1.32.1/bin/busybox"

Could you apply the following patch on
13c4a377f5a2e1240790679f3d5643385b6d7635 and run the command again,
please?

From 1aa675482fa1aaba02ac1d8599198ec0aa8c2201 Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <[email-masked]>
Date: Thu, 22 Apr 2021 19:46:23 +0300
Subject: [PATCH] services: nix: Add /bin/sh to build-sandbox-paths.

* gnu/services/nix.scm (nix-service-etc): Add /bin/sh to build-sandbox-paths.
---
 gnu/services/nix.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 1aef47db0a..619e3cae54 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020 Oleg Pykhalov <[email-masked]>
+;;; Copyright © 2019, 2020, 2021 Oleg Pykhalov <[email-masked]>
 ;;; Copyright © 2020 Peng Mei Yu <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -19,6 +19,7 @@
 
 (define-module (gnu services nix)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages package-management)
   #:use-module (gnu services base)
   #:use-module (gnu services configuration)
@@ -121,7 +122,8 @@ GID."
                     (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
                     ;; config.nix captures store file names.
                     (format #t "build-sandbox-paths = ~{~a ~}~%"
-                            (append internal-sandbox-paths
+                            (append (list (string-append "/bin/sh=" #$bash-minimal "/bin/sh"))
+                                    internal-sandbox-paths
                                     '#$build-sandbox-items))
                     (for-each (cut display <>) '#$extra-config)))))))))))
 
-- 
2.31.1