|
|
|
@ -1,13 +1,40 @@ |
|
|
|
|
{ lib |
|
|
|
|
, fetchurl |
|
|
|
|
, substituteAll, python3, pkg-config, runCommand, writeText |
|
|
|
|
, xorg, gtk3, glib, pango, cairo, gdk-pixbuf, atk, pandoc |
|
|
|
|
, wrapGAppsHook, xorgserver, getopt, xauth, util-linux, which |
|
|
|
|
, ffmpeg, x264, libvpx, libwebp, x265, librsvg |
|
|
|
|
, substituteAll |
|
|
|
|
, pkg-config |
|
|
|
|
, runCommand |
|
|
|
|
, writeText |
|
|
|
|
, wrapGAppsHook |
|
|
|
|
, withNvenc ? false |
|
|
|
|
, atk |
|
|
|
|
, cairo |
|
|
|
|
, cudatoolkit |
|
|
|
|
, ffmpeg |
|
|
|
|
, gdk-pixbuf |
|
|
|
|
, getopt |
|
|
|
|
, glib |
|
|
|
|
, gobject-introspection |
|
|
|
|
, gst_all_1 |
|
|
|
|
, gtk3 |
|
|
|
|
, libfakeXinerama |
|
|
|
|
, gst_all_1, pulseaudio, gobject-introspection |
|
|
|
|
, withNvenc ? false, cudatoolkit, nv-codec-headers-10, nvidia_x11 ? null |
|
|
|
|
, pam }: |
|
|
|
|
, librsvg |
|
|
|
|
, libvpx |
|
|
|
|
, libwebp |
|
|
|
|
, nv-codec-headers-10 |
|
|
|
|
, nvidia_x11 ? null |
|
|
|
|
, pam |
|
|
|
|
, pandoc |
|
|
|
|
, pango |
|
|
|
|
, pulseaudio |
|
|
|
|
, python3 |
|
|
|
|
, util-linux |
|
|
|
|
, which |
|
|
|
|
, x264 |
|
|
|
|
, x265 |
|
|
|
|
, xauth |
|
|
|
|
, xorg |
|
|
|
|
, xorgserver |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
with lib; |
|
|
|
|
|
|
|
|
@ -43,11 +70,11 @@ let |
|
|
|
|
''; |
|
|
|
|
in buildPythonApplication rec { |
|
|
|
|
pname = "xpra"; |
|
|
|
|
version = "4.3.2"; |
|
|
|
|
version = "4.3.3"; |
|
|
|
|
|
|
|
|
|
src = fetchurl { |
|
|
|
|
url = "https://xpra.org/src/${pname}-${version}.tar.xz"; |
|
|
|
|
hash = "sha256-CIHVpxZ2qC7Ct5Kmc6dxEzxH9s+63/sI07f9SbCh4a4="; |
|
|
|
|
hash = "sha256-J6zzkho0A1faCVzS/0wDlbgLtJmyPrnBkEcR7kDld7A="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
patches = [ |
|
|
|
@ -56,41 +83,81 @@ in buildPythonApplication rec { |
|
|
|
|
inherit libfakeXinerama; |
|
|
|
|
}) |
|
|
|
|
./fix-41106.patch # https://github.com/NixOS/nixpkgs/issues/41106 |
|
|
|
|
./fix-122159.patch # https://github.com/NixOS/nixpkgs/issues/122159 |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
INCLUDE_DIRS = "${pam}/include"; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ pkg-config wrapGAppsHook pandoc ] |
|
|
|
|
++ lib.optional withNvenc cudatoolkit; |
|
|
|
|
nativeBuildInputs = [ |
|
|
|
|
pkg-config |
|
|
|
|
wrapGAppsHook |
|
|
|
|
pandoc |
|
|
|
|
] ++ lib.optional withNvenc cudatoolkit; |
|
|
|
|
|
|
|
|
|
buildInputs = with xorg; [ |
|
|
|
|
libX11 xorgproto libXrender libXi libXres |
|
|
|
|
libXtst libXfixes libXcomposite libXdamage |
|
|
|
|
libXrandr libxkbfile |
|
|
|
|
] ++ [ |
|
|
|
|
libX11 |
|
|
|
|
libXcomposite |
|
|
|
|
libXdamage |
|
|
|
|
libXfixes |
|
|
|
|
libXi |
|
|
|
|
libxkbfile |
|
|
|
|
libXrandr |
|
|
|
|
libXrender |
|
|
|
|
libXres |
|
|
|
|
libXtst |
|
|
|
|
xorgproto |
|
|
|
|
] ++ (with gst_all_1; [ |
|
|
|
|
gst-libav |
|
|
|
|
gst-plugins-bad |
|
|
|
|
gst-plugins-base |
|
|
|
|
gst-plugins-good |
|
|
|
|
gstreamer |
|
|
|
|
]) ++ [ |
|
|
|
|
atk.out |
|
|
|
|
cairo |
|
|
|
|
cython |
|
|
|
|
ffmpeg |
|
|
|
|
gdk-pixbuf |
|
|
|
|
glib |
|
|
|
|
gobject-introspection |
|
|
|
|
gtk3 |
|
|
|
|
librsvg |
|
|
|
|
|
|
|
|
|
pango cairo gdk-pixbuf atk.out gtk3 glib |
|
|
|
|
|
|
|
|
|
ffmpeg libvpx x264 libwebp x265 |
|
|
|
|
|
|
|
|
|
gst_all_1.gstreamer |
|
|
|
|
gst_all_1.gst-plugins-base |
|
|
|
|
gst_all_1.gst-plugins-good |
|
|
|
|
gst_all_1.gst-plugins-bad |
|
|
|
|
gst_all_1.gst-libav |
|
|
|
|
|
|
|
|
|
libvpx |
|
|
|
|
libwebp |
|
|
|
|
pam |
|
|
|
|
gobject-introspection |
|
|
|
|
pango |
|
|
|
|
x264 |
|
|
|
|
x265 |
|
|
|
|
] ++ lib.optional withNvenc nvencHeaders; |
|
|
|
|
propagatedBuildInputs = with python3.pkgs; [ |
|
|
|
|
pillow rencode pycrypto cryptography pycups lz4 dbus-python |
|
|
|
|
netifaces numpy pygobject3 pycairo gst-python pam |
|
|
|
|
pyopengl paramiko opencv4 python-uinput pyxdg |
|
|
|
|
ipaddress idna pyinotify |
|
|
|
|
] ++ lib.optionals withNvenc (with python3.pkgs; [pynvml pycuda]); |
|
|
|
|
|
|
|
|
|
# error: 'import_cairo' defined but not used |
|
|
|
|
|
|
|
|
|
propagatedBuildInputs = with python3.pkgs; ([ |
|
|
|
|
cryptography |
|
|
|
|
dbus-python |
|
|
|
|
gst-python |
|
|
|
|
idna |
|
|
|
|
ipaddress |
|
|
|
|
lz4 |
|
|
|
|
netifaces |
|
|
|
|
numpy |
|
|
|
|
opencv4 |
|
|
|
|
pam |
|
|
|
|
paramiko |
|
|
|
|
pillow |
|
|
|
|
pycairo |
|
|
|
|
pycrypto |
|
|
|
|
pycups |
|
|
|
|
pygobject3 |
|
|
|
|
pyinotify |
|
|
|
|
pyopengl |
|
|
|
|
python-uinput |
|
|
|
|
pyxdg |
|
|
|
|
rencode |
|
|
|
|
] ++ lib.optionals withNvenc [ |
|
|
|
|
pycuda |
|
|
|
|
pynvml |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
# error: 'import_cairo' defined but not used |
|
|
|
|
NIX_CFLAGS_COMPILE = "-Wno-error=unused-function"; |
|
|
|
|
|
|
|
|
|
setupPyBuildFlags = [ |
|
|
|
@ -104,12 +171,14 @@ in buildPythonApplication rec { |
|
|
|
|
] ++ lib.optional withNvenc "--with-nvenc"; |
|
|
|
|
|
|
|
|
|
dontWrapGApps = true; |
|
|
|
|
|
|
|
|
|
preFixup = '' |
|
|
|
|
makeWrapperArgs+=( |
|
|
|
|
"''${gappsWrapperArgs[@]}" |
|
|
|
|
--set XPRA_INSTALL_PREFIX "$out" |
|
|
|
|
--set XPRA_COMMAND "$out/bin/xpra" |
|
|
|
|
--set XPRA_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" |
|
|
|
|
--set XORG_CONFIG_PREFIX "" |
|
|
|
|
--prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib |
|
|
|
|
--prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux pulseaudio ]} |
|
|
|
|
'' + lib.optionalString withNvenc '' |
|
|
|
|