diff options
Diffstat (limited to 'pkgs/tools/X11/xpra/default.nix')
-rw-r--r-- | pkgs/tools/X11/xpra/default.nix | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 3e4d49108b71..7f1552f91979 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -1,6 +1,6 @@ -{ stdenv, lib, fetchurl, callPackage, python2Packages, pkgconfig -, xorg, gtk2, glib, pango, cairo, gdk_pixbuf, atk -, makeWrapper, xorgserver, getopt, xauth, utillinux, which +{ stdenv, lib, fetchurl, callPackage, substituteAll, python3, pkgconfig +, xorg, gtk3, glib, pango, cairo, gdk_pixbuf, atk +, wrapGAppsHook, xorgserver, getopt, xauth, utillinux, which , ffmpeg, x264, libvpx, libwebp , libfakeXinerama , gst_all_1, pulseaudio, gobjectIntrospection @@ -9,7 +9,7 @@ with lib; let - inherit (python2Packages) cython buildPythonApplication; + inherit (python3.pkgs) cython buildPythonApplication; xf86videodummy = callPackage ./xf86videodummy { }; in buildPythonApplication rec { @@ -21,7 +21,14 @@ in buildPythonApplication rec { sha256 = "0wa3kx54himy3i1b2801hlzfilh3cf4kjk40k1cjl0ds28m5hija"; }; - nativeBuildInputs = [ pkgconfig ]; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit (xorg) xkeyboardconfig; + }) + ]; + + nativeBuildInputs = [ pkgconfig gobjectIntrospection wrapGAppsHook ]; buildInputs = [ cython @@ -30,11 +37,10 @@ in buildPythonApplication rec { xorg.xproto xorg.fixesproto xorg.libXtst xorg.libXfixes xorg.libXcomposite xorg.libXdamage xorg.libXrandr xorg.libxkbfile - pango cairo gdk_pixbuf atk gtk2 glib + pango cairo gdk_pixbuf atk gtk3 glib ffmpeg libvpx x264 libwebp - gobjectIntrospection gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good @@ -42,38 +48,34 @@ in buildPythonApplication rec { gst_all_1.gst-libav pam + ]; - makeWrapper + propagatedBuildInputs = with python3.pkgs; [ + pillow rencode pycrypto cryptography pycups lz4 dbus-python + netifaces numpy websockify pygobject3 pycairo gst-python pam ]; - propagatedBuildInputs = with python2Packages; [ - pillow pygtk pygobject2 rencode pycrypto cryptography pycups lz4 dbus-python - netifaces numpy websockify pygobject3 gst-python pam + NIX_CFLAGS_COMPILE = [ + # error: 'import_cairo' defined but not used + "-Wno-error=unused-function" ]; - preBuild = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags gtk+-2.0) $(pkg-config --cflags pygtk-2.0) $(pkg-config --cflags xtst)" - substituteInPlace xpra/server/auth/pam_auth.py --replace "/lib/libpam.so.1" "${pam}/lib/libpam.so" - substituteInPlace xpra/x11/bindings/keyboard_bindings.pyx --replace "/usr/share/X11/xkb" "${xorg.xkeyboardconfig}/share/X11/xkb" - ''; - setupPyBuildFlags = ["--with-Xdummy" "--without-strict"]; - - postInstall = '' - wrapProgram $out/bin/xpra \ - --set XPRA_INSTALL_PREFIX "$out" \ - --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \ - --set GST_PLUGIN_SYSTEM_PATH_1_0 "$GST_PLUGIN_SYSTEM_PATH_1_0" \ - --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \ + setupPyBuildFlags = [ + "--with-Xdummy" + "--without-strict" + "--with-gtk3" + "--without-gtk2" + ]; + + preFixup = '' + gappsWrapperArgs+=( + --set XPRA_INSTALL_PREFIX "$out" + --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux pulseaudio ]} + ) ''; - preCheck = "exit 0"; - - #TODO: replace postInstall with postFixup to avoid double wrapping of xpra; needs more work though - #postFixup = '' - # sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra - # sed -i '4iexport PATH=${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux ]}\${PATH:+:}\$PATH' $out/bin/xpra - #''; + doCheck = false; passthru = { inherit xf86videodummy; }; |