summary refs log tree commit diff
path: root/pkgs/os-specific/linux/libcap
diff options
context:
space:
mode:
authorj-keck <jhyphenkeck@gmail.com>2015-02-03 10:25:16 +0100
committerj-keck <jhyphenkeck@gmail.com>2015-02-03 10:25:16 +0100
commit236f7fd20dc1b0c05d94f43c4ef749928e1bee4a (patch)
treea8f94ad8f08616eb98c1e7e311ca2660f9744d20 /pkgs/os-specific/linux/libcap
parenteb54864494ffa54418b1f0f0e981b3d202f03c20 (diff)
downloadnixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar.gz
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar.bz2
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar.lz
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar.xz
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.tar.zst
nixpkgs-236f7fd20dc1b0c05d94f43c4ef749928e1bee4a.zip
libcap_progs: fix bash path
  * in progs/capsh.c is the bash path hardcoded to '/bin/bash'.
  * this fix set's the bash path from PATH.
Diffstat (limited to 'pkgs/os-specific/linux/libcap')
-rw-r--r--pkgs/os-specific/linux/libcap/progs-bash-path.patch15
-rw-r--r--pkgs/os-specific/linux/libcap/progs.nix5
2 files changed, 4 insertions, 16 deletions
diff --git a/pkgs/os-specific/linux/libcap/progs-bash-path.patch b/pkgs/os-specific/linux/libcap/progs-bash-path.patch
deleted file mode 100644
index 359d95400fa..00000000000
--- a/pkgs/os-specific/linux/libcap/progs-bash-path.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-this patch set the bash path from '/bin/bash' to '/var/run/current-system/sw/bin/bash'
-
-diff --git a/progs/capsh.c b/progs/capsh.c
-index 52336d7..fd98a03 100644
---- a/progs/capsh.c
-+++ b/progs/capsh.c
-@@ -556,7 +556,7 @@ int main(int argc, char *argv[], char *envp[])
- 	    }
- 	    printf("\n");
- 	} else if ((!strcmp("--", argv[i])) || (!strcmp("==", argv[i]))) {
--	    argv[i] = strdup(argv[i][0] == '-' ? "/bin/bash" : argv[0]);
-+	    argv[i] = strdup(argv[i][0] == '-' ? "/var/run/current-system/sw/bin/bash" : argv[0]);
- 	    argv[argc] = NULL;
- 	    execve(argv[i], argv+i, envp);
- 	    fprintf(stderr, "execve /bin/bash failed!\n");
diff --git a/pkgs/os-specific/linux/libcap/progs.nix b/pkgs/os-specific/linux/libcap/progs.nix
index c287c437958..9b2a8b69c3c 100644
--- a/pkgs/os-specific/linux/libcap/progs.nix
+++ b/pkgs/os-specific/linux/libcap/progs.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libcap ];
 
-  patches = [ ./progs-bash-path.patch ];
+  prePatch = ''
+    BASH=$(type -tp bash)
+    substituteInPlace progs/capsh.c --replace "/bin/bash" "$BASH"
+  '';
 
   preConfigure = "cd progs";