diff --git a/patches/250189.patch b/patches/250189.patch new file mode 100644 index 00000000..f29f6955 --- /dev/null +++ b/patches/250189.patch @@ -0,0 +1,154 @@ +diff --git a/pkgs/applications/networking/remote/xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/default.nix +index 0fb74488f0bfb..c9072f1c0c46d 100644 +--- a/pkgs/applications/networking/remote/xrdp/default.nix ++++ b/pkgs/applications/networking/remote/xrdp/default.nix +@@ -1,6 +1,19 @@ +-{ lib, stdenv, fetchFromGitHub, pkg-config, which, perl, autoconf, automake, libtool, openssl, systemd, pam, fuse, libjpeg, libopus, nasm, xorg }: ++{ lib, stdenv, fetchFromGitHub, applyPatches, pkg-config, which, perl, autoconf, automake, libtool, openssl, systemd, pam, fuse, libjpeg, libopus, nasm, xorg }: + + let ++ version = "0.9.22.1"; ++ patchedXrdpSrc = applyPatches { ++ patches = [ ./dynamic_config.patch ]; ++ name = "xrdp-patched-${version}"; ++ src = fetchFromGitHub { ++ owner = "neutrinolabs"; ++ repo = "xrdp"; ++ rev = "v${version}"; ++ fetchSubmodules = true; ++ hash = "sha256-8gAP4wOqSmar8JhKRt4qRRwh23coIn0Q8Tt9ClHQSt8="; ++ }; ++ }; ++ + xorgxrdp = stdenv.mkDerivation rec { + pname = "xorgxrdp"; + version = "0.9.19"; +@@ -28,80 +41,71 @@ let + + preConfigure = "./bootstrap"; + +- configureFlags = [ "XRDP_CFLAGS=-I${xrdp.src}/common" ]; ++ configureFlags = [ "XRDP_CFLAGS=-I${patchedXrdpSrc}/common" ]; + + enableParallelBuilding = true; + }; ++in stdenv.mkDerivation rec { ++ inherit version; ++ pname = "xrdp"; + +- xrdp = stdenv.mkDerivation rec { +- version = "0.9.22.1"; +- pname = "xrdp"; ++ src = patchedXrdpSrc; + +- src = fetchFromGitHub { +- owner = "neutrinolabs"; +- repo = "xrdp"; +- rev = "v${version}"; +- fetchSubmodules = true; +- hash = "sha256-8gAP4wOqSmar8JhKRt4qRRwh23coIn0Q8Tt9ClHQSt8="; +- }; +- +- nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm perl ]; ++ nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm perl ]; + +- buildInputs = [ openssl systemd pam fuse libjpeg libopus xorg.libX11 xorg.libXfixes xorg.libXrandr ]; ++ buildInputs = [ openssl systemd pam fuse libjpeg libopus xorg.libX11 xorg.libXfixes xorg.libXrandr ]; + +- patches = [ ./dynamic_config.patch ]; + +- postPatch = '' +- substituteInPlace sesman/xauth.c --replace "xauth -q" "${xorg.xauth}/bin/xauth -q" +- ''; ++ postPatch = '' ++ substituteInPlace sesman/xauth.c --replace "xauth -q" "${xorg.xauth}/bin/xauth -q" ++ ''; + +- preConfigure = '' +- (cd librfxcodec && ./bootstrap && ./configure --prefix=$out --enable-static --disable-shared) +- ./bootstrap +- ''; +- dontDisableStatic = true; +- configureFlags = [ "--with-systemdsystemunitdir=/var/empty" "--enable-ipv6" "--enable-jpeg" "--enable-fuse" "--enable-rfxcodec" "--enable-opus" "--enable-pam-config=unix" ]; ++ preConfigure = '' ++ (cd librfxcodec && ./bootstrap && ./configure --prefix=$out --enable-static --disable-shared) ++ ./bootstrap ++ ''; ++ dontDisableStatic = true; ++ configureFlags = [ "--with-systemdsystemunitdir=/var/empty" "--enable-ipv6" "--enable-jpeg" "--enable-fuse" "--enable-rfxcodec" "--enable-opus" "--enable-pam-config=unix" ]; + +- installFlags = [ "DESTDIR=$(out)" "prefix=" ]; ++ installFlags = [ "DESTDIR=$(out)" "prefix=" ]; + +- postInstall = '' +- # remove generated keys (as non-deterministic) +- rm $out/etc/xrdp/{rsakeys.ini,key.pem,cert.pem} ++ postInstall = '' ++ # remove generated keys (as non-deterministic) ++ rm $out/etc/xrdp/{rsakeys.ini,key.pem,cert.pem} + +- cp $src/keygen/openssl.conf $out/share/xrdp/openssl.conf ++ cp $src/keygen/openssl.conf $out/share/xrdp/openssl.conf + +- substituteInPlace $out/etc/xrdp/sesman.ini --replace /etc/xrdp/pulse $out/etc/xrdp/pulse ++ substituteInPlace $out/etc/xrdp/sesman.ini --replace /etc/xrdp/pulse $out/etc/xrdp/pulse + +- # remove all session types except Xorg (they are not supported by this setup) +- perl -i -ne 'print unless /\[(X11rdp|Xvnc|console|vnc-any|sesman-any|rdp-any|neutrinordp-any)\]/ .. /^$/' $out/etc/xrdp/xrdp.ini ++ # remove all session types except Xorg (they are not supported by this setup) ++ perl -i -ne 'print unless /\[(X11rdp|Xvnc|console|vnc-any|sesman-any|rdp-any|neutrinordp-any)\]/ .. /^$/' $out/etc/xrdp/xrdp.ini + +- # remove all session types and then add Xorg +- perl -i -ne 'print unless /\[(X11rdp|Xvnc|Xorg)\]/ .. /^$/' $out/etc/xrdp/sesman.ini ++ # remove all session types and then add Xorg ++ perl -i -ne 'print unless /\[(X11rdp|Xvnc|Xorg)\]/ .. /^$/' $out/etc/xrdp/sesman.ini + +- cat >> $out/etc/xrdp/sesman.ini <> $out/etc/xrdp/sesman.ini <