diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix index 986c9806591..836778673e1 100644 --- a/pkgs/tools/networking/dropbear/default.nix +++ b/pkgs/tools/networking/dropbear/default.nix @@ -12,6 +12,12 @@ stdenv.mkDerivation rec { configureFlags = stdenv.lib.optional enableStatic "LDFLAGS=-static"; + patches = [ + # Allow sessions to inherit the PATH from the parent dropbear. + # Otherwise they only get the usual /bin:/usr/bin kind of PATH + ./pass-path.patch + ]; + buildInputs = [ zlib ]; meta = { diff --git a/pkgs/tools/networking/dropbear/pass-path.patch b/pkgs/tools/networking/dropbear/pass-path.patch new file mode 100644 index 00000000000..d664b00de35 --- /dev/null +++ b/pkgs/tools/networking/dropbear/pass-path.patch @@ -0,0 +1,15 @@ +Allow sessions to inherit the PATH from the parent dropbear. + +diff --git a/svr-chansession.c b/svr-chansession.c +index 23dad8c..9af8e55 100644 +--- a/svr-chansession.c ++++ b/svr-chansession.c +@@ -878,7 +878,7 @@ static void execchild(void *user_data) { + addnewvar("LOGNAME", ses.authstate.pw_name); + addnewvar("HOME", ses.authstate.pw_dir); + addnewvar("SHELL", get_user_shell()); +- addnewvar("PATH", DEFAULT_PATH); ++ addnewvar("PATH", getenv("PATH")); + if (chansess->term != NULL) { + addnewvar("TERM", chansess->term); + }