summary refs log tree commit diff
path: root/pkgs/build-support/build-fhsenv-bubblewrap
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-04-22 15:31:27 +0300
committerWeijia Wang <9713184+wegank@users.noreply.github.com>2023-04-22 15:31:27 +0300
commit3c6e26b2ee808e3a895a83713904b63ba5dbc3bf (patch)
tree56b5ee74191ea682925a1bd39e93792af8b16272 /pkgs/build-support/build-fhsenv-bubblewrap
parent40e4b45adcbeccf7356bf0673a837dea4cd012ae (diff)
downloadnixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar.gz
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar.bz2
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar.lz
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar.xz
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.tar.zst
nixpkgs-3c6e26b2ee808e3a895a83713904b63ba5dbc3bf.zip
buildFHSEnv: restrict pkgsi686Linux to x86_64-linux
Diffstat (limited to 'pkgs/build-support/build-fhsenv-bubblewrap')
-rw-r--r--pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix2
-rw-r--r--pkgs/build-support/build-fhsenv-bubblewrap/default.nix4
2 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix
index 78da74c8284..305a959a35d 100644
--- a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix
+++ b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix
@@ -64,7 +64,7 @@ let
 
   ldconfig = writeShellScriptBin "ldconfig" ''
     # due to a glibc bug, 64-bit ldconfig complains about patchelf'd 32-bit libraries, so we're using 32-bit ldconfig
-    exec ${pkgsi686Linux.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
+    exec ${if stdenv.isx86_64 && stdenv.isLinux then pkgsi686Linux.glibc.bin else pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
   '';
   etcProfile = writeText "profile" ''
     export PS1='${name}-chrootenv:\u@\h:\w\$ '
diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
index 5d94c309fe0..6c9b71624c2 100644
--- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
+++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , callPackage
 , runCommandLocal
 , writeShellScript
@@ -113,6 +114,7 @@ let
     exec ${run} "$@"
   '';
 
+  indentLines = str: lib.concatLines (map (s: "  " + s) (filter (s: s != "") (lib.splitString "\n" str)));
   bwrapCmd = { initArgs ? "" }: ''
     ignored=(/nix /dev /proc /etc)
     ro_mounts=()
@@ -202,11 +204,13 @@ let
       --symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
       --ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
       --remount-ro ${glibc}/etc \
+  '' + lib.optionalString (stdenv.isx86_64 && stdenv.isLinux) (indentLines ''
       --tmpfs ${pkgsi686Linux.glibc}/etc \
       --symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
       --symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
       --ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
       --remount-ro ${pkgsi686Linux.glibc}/etc \
+  '') + ''
       "''${ro_mounts[@]}"
       "''${symlinks[@]}"
       "''${auto_mounts[@]}"