uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
41
pkgs/tools/networking/dropbear/default.nix
Normal file
41
pkgs/tools/networking/dropbear/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ stdenv, lib, fetchurl, glibc, zlib
|
||||
, enableStatic ? stdenv.hostPlatform.isStatic
|
||||
, sftpPath ? "/run/current-system/sw/libexec/sftp-server"
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dropbear";
|
||||
version = "2020.81";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://matt.ucc.asn.au/dropbear/releases/dropbear-${version}.tar.bz2";
|
||||
sha256 = "0fy5ma4cfc2pk25mcccc67b2mf1rnb2c06ilb7ddnxbpnc85s8s8";
|
||||
};
|
||||
|
||||
dontDisableStatic = enableStatic;
|
||||
|
||||
configureFlags = lib.optional enableStatic "LDFLAGS=-static";
|
||||
|
||||
CFLAGS = "-DSFTPSERVER_PATH=\\\"${sftpPath}\\\"";
|
||||
|
||||
# https://www.gnu.org/software/make/manual/html_node/Libraries_002fSearch.html
|
||||
preConfigure = ''
|
||||
makeFlags=VPATH=`cat $NIX_CC/nix-support/orig-libc`/lib
|
||||
'';
|
||||
|
||||
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 ] ++ lib.optionals enableStatic [ glibc.static zlib.static ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://matt.ucc.asn.au/dropbear/dropbear.html";
|
||||
description = "A small footprint implementation of the SSH 2 protocol";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
36
pkgs/tools/networking/dropbear/pass-path.patch
Normal file
36
pkgs/tools/networking/dropbear/pass-path.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
diff --git a/svr-chansession.c b/svr-chansession.c
|
||||
index e44299e..7ef750a 100644
|
||||
--- a/svr-chansession.c
|
||||
+++ b/svr-chansession.c
|
||||
@@ -893,6 +893,8 @@ static void addchildpid(struct ChanSess *chansess, pid_t pid) {
|
||||
static void execchild(void *user_data) {
|
||||
struct ChanSess *chansess = user_data;
|
||||
char *usershell = NULL;
|
||||
+ const char *path = DEFAULT_PATH;
|
||||
+ const char *ldpath = NULL;
|
||||
|
||||
/* with uClinux we'll have vfork()ed, so don't want to overwrite the
|
||||
* hostkey. can't think of a workaround to clear it */
|
||||
@@ -905,6 +907,10 @@ static void execchild(void *user_data) {
|
||||
seedrandom();
|
||||
#endif
|
||||
|
||||
+ if (getenv("PATH"))
|
||||
+ path = getenv("PATH");
|
||||
+ ldpath = getenv("LD_LIBRARY_PATH");
|
||||
+
|
||||
/* clear environment */
|
||||
/* if we're debugging using valgrind etc, we need to keep the LD_PRELOAD
|
||||
* etc. This is hazardous, so should only be used for debugging. */
|
||||
@@ -948,7 +954,10 @@ 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", path);
|
||||
+ if (ldpath != NULL) {
|
||||
+ addnewvar("LD_LIBRARY_PATH", ldpath);
|
||||
+ }
|
||||
if (chansess->term != NULL) {
|
||||
addnewvar("TERM", chansess->term);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue