Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Feb 2017 14:27:49 +0000 (UTC)
From:      Matthew Rezny <rezny@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r433949 - in head/x11/xpra: . files
Message-ID:  <201702121427.v1CERnps093443@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rezny
Date: Sun Feb 12 14:27:49 2017
New Revision: 433949
URL: https://svnweb.freebsd.org/changeset/ports/433949

Log:
  Update to 1.0.2
  
  PR:		205864
  Approved by:	swills (mentor)
  Differential Revision:	https://reviews.freebsd.org/D9546

Added:
  head/x11/xpra/files/patch-scripts_xpra   (contents, props changed)
  head/x11/xpra/files/patch-scripts_xpra__launcher   (contents, props changed)
  head/x11/xpra/files/patch-xpra_client_gtk__base_bug__report.py   (contents, props changed)
  head/x11/xpra/files/patch-xpra_client_gtk__base_client__launcher.py   (contents, props changed)
  head/x11/xpra/files/patch-xpra_client_gtk__base_start__new__command.py   (contents, props changed)
  head/x11/xpra/files/patch-xpra_scripts_config.py   (contents, props changed)
Deleted:
  head/x11/xpra/files/patch-xpra_codecs_buffers_memalign.c
  head/x11/xpra/files/patch-xpra_net_net__util.py
Modified:
  head/x11/xpra/Makefile
  head/x11/xpra/distinfo
  head/x11/xpra/files/patch-setup.py
  head/x11/xpra/pkg-plist

Modified: head/x11/xpra/Makefile
==============================================================================
--- head/x11/xpra/Makefile	Sun Feb 12 14:21:24 2017	(r433948)
+++ head/x11/xpra/Makefile	Sun Feb 12 14:27:49 2017	(r433949)
@@ -2,8 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	xpra
-PORTVERSION=	0.15.10
-PORTREVISION=	6
+PORTVERSION=	1.0.2
 CATEGORIES=	x11
 MASTER_SITES=	http://xpra.org/src/
 
@@ -13,63 +12,95 @@ COMMENT=	Xpra gives you persistent remot
 LICENSE=	GPLv2
 
 BUILD_DEPENDS=	cython:lang/cython \
-		${PYTHON_SITELIBDIR}/gtk-2.0/gtk/__init__.py:x11-toolkits/py-gtk2
+		${PYTHON_PKGNAMEPREFIX}gtk2>2:x11-toolkits/py-gtk2 \
+		${PYNUMPY}
+LIB_DEPENDS=	libfreetype.so:print/freetype2 \
+		libfontconfig.so:x11-fonts/fontconfig
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}lz4>=0.7.0_1:archivers/py-lz4 \
-		${PYTHON_SITELIBDIR}/rencode/__init__.py:converters/py-rencode \
-		${PYTHON_SITELIBDIR}/dbus/__init__.py:devel/py-dbus \
-		${PYTHON_SITELIBDIR}/OpenGL/__init__.py:graphics/py-PyOpenGL \
-		${PYTHON_SITELIBDIR}/OpenGL_accelerate/__init__.py:graphics/py-PyOpenGL-accelerate \
-		${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow \
-		${PYTHON_SITELIBDIR}/netifaces.so:net/py-netifaces \
+		${PYTHON_PKGNAMEPREFIX}rencode>1:converters/py-rencode \
+		${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus \
+		${PYTHON_PKGNAMEPREFIX}pyinotify>0:devel/py-pyinotify \
+		${PYTHON_PKGNAMEPREFIX}xxhash>0:devel/py-xxhash \
+		${PYTHON_PKGNAMEPREFIX}pillow>1:graphics/py-pillow \
+		${PYTHON_PKGNAMEPREFIX}PyOpenGL>=3.1.0:graphics/py-PyOpenGL \
+		${PYTHON_PKGNAMEPREFIX}PyOpenGL-accelerate>=3.1.0:graphics/py-PyOpenGL-accelerate \
+		${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py-netifaces \
 		ssh-askpass:security/openssh-askpass \
+		${PYTHON_PKGNAMEPREFIX}cryptography>1:security/py-cryptography \
 		setxkbmap:x11/setxkbmap \
 		xauth:x11/xauth \
 		xkbcomp:x11/xkbcomp \
 		${LOCALBASE}/share/X11/xkb/rules/base:x11/xkeyboard-config \
 		Xvfb:x11-servers/xorg-vfbserver \
-		${PYTHON_SITELIBDIR}/gtk-2.0/gtk/__init__.py:x11-toolkits/py-gtk2 \
-		${PYTHON_SITELIBDIR}/gtk-2.0/gtk/gtkgl/__init__.py:x11-toolkits/py-gtkglext
+		${PYTHON_PKGNAMEPREFIX}gtk2>2:x11-toolkits/py-gtk2 \
+		${PYTHON_PKGNAMEPREFIX}gtkglext>1:x11-toolkits/py-gtkglext \
+		${PYNUMPY}
 
-USES=		desktop-file-utils pkgconfig python shared-mime-info tar:xz
-USE_GSTREAMER=	good python
+USES=		desktop-file-utils fortran gettext-runtime pkgconfig python:2 shared-mime-info tar:xz
+USE_GNOME=	atk cairo gdkpixbuf2 glib20 gtk20 pango
 USE_PYTHON=	distutils
-USE_XORG=	x11 xcomposite xdamage xfixes xkbfile xrandr xtst
+USE_XORG=	x11 xcomposite xdamage xext xfixes xkbfile xrandr xtst
 PLIST_SUB+=	PORTVERSION=${PORTVERSION} PYTHON_VER=${PYTHON_VER}
 
-OPTIONS_DEFINE=		AVAHI AVCODEC CUPS OPENCL SWSCALE VPX WEBP X264 X265
-OPTIONS_DEFAULT=	AVAHI AVCODEC CUPS SWSCALE VPX WEBP X264 X265
+OPTIONS_DEFINE=		AVAHI AVCODEC CUPS FFMPEG GSTREAMER HTML5 LIBYUV OPENCL OPENCV SWSCALE VPX WEBCAM WEBP X264 X265 XVID
+OPTIONS_DEFAULT=	AVAHI AVCODEC CUPS FFMPEG GSTREAMER HTML5 LIBYUV SWSCALE VPX X264
 OPTIONS_SUB=		yes
 
-AVCODEC_DESC=	Enable avcodec2 decoder
-OPENCL_DESC=	Enable OpenCL CSC module
-SWSCALE_DESC=	Enable swscale CSC module
-VPX_DESC=	Enable VP8 and VP9 encoder
-WEBP_DESC=	Enable WebP encoder
-X264_DESC=	Enable X264 encoder
-X265_DESC=	Enable X265 encoder
+AVCODEC_DESC=	Enable avcodec2 (FFmpeg) decoder
+CUPS_DESC=	Enable CUPS for printer forwarding
+FFMPEG_DESC=	Enable FFmpeg encoder
+GSTREAMER_DESC=	Enable GStreamer for sound forwarding
+HTML5_DESC=	Install HTML5 client interface
+LIBYUV_DESC=	Enable libyuv CSC module (CPU, fastest)
+OPENCL_DESC=	Enable OpenCL CSC module (GPU)
+OPENCV_DESC=	Enable OpenCV CSC module (CPU, deprecated)
+SWSCALE_DESC=	Enable swscale (FFmpeg) CSC module (CPU)
+VPX_DESC=	Enable VP8 and VP9 codec (good)
+WEBCAM_DESC=	Enable webcam forwarding (client only)
+WEBP_DESC=	Enable WebP codec (deprecated)
+X264_DESC=	Enable X264 encoder (good)
+X265_DESC=	Enable X265 encoder (slow)
+XVID_DESC=	Enable Xvid encoder (unstable, deprecated)
 
-AVAHI_RUN_DEPENDS=	${PYTHON_SITELIBDIR}/avahi/__init__.py:net/py-avahi
+AVAHI_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi
+AVAHI_VARS=		XPRA_OPTIONS+=mdns
 AVCODEC_VARS=		XPRA_OPTIONS+=dec_avcodec2
-CUPS_RUN_DEPENDS=	${PYTHON_SITELIBDIR}/cups.so:print/py-pycups
+CUPS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pycups>1:print/py-pycups
+CUPS_VARS=		XPRA_OPTIONS+=printing
+FFMPEG_VARS=		XPRA_OPTIONS+=enc_ffmpeg
+GSTREAMER_BUILD_DEPENDS=${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1
+GSTREAMER_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1
+GSTREAMER_USE=		GSTREAMER1=flac,lame,mad,ogg,opus,vorbis,wavpack
+GSTREAMER_VARS=		XPRA_OPTIONS+=sound
+HTML5_VARS=		XPRA_OPTIONS+=html5
+LIBYUV_LIB_DEPENDS=	libyuv.so:graphics/libyuv
+LIBYUV_VARS=		XPRA_OPTIONS+=csc_libyuv
 OPENCL_LIB_DEPENDS=	libOpenCL.so:devel/ocl-icd
-OPENCL_RUN_DEPENDS=	${PYTHON_SITELIBDIR}/pyopencl/__init__.py:devel/py-pyopencl
+OPENCL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pyopencl>0:devel/py-pyopencl
 OPENCL_VARS=		XPRA_OPTIONS+=csc_opencl
+OPENCV_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}opencv2>2:graphics/py-opencv2
+OPENCV_VARS=		XPRA_OPTIONS+=csc_opencv
+SWSCALE_LIB_DEPENDS=	libswscale.so:multimedia/ffmpeg
 SWSCALE_VARS=		XPRA_OPTIONS+=csc_swscale
 VPX_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
 VPX_VARS=		XPRA_OPTIONS+=vpx
+WEBCAM_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}opencv2>2:graphics/py-opencv2
+WEBCAM_VARS=		XPRA_OPTIONS+=webcam
 WEBP_LIB_DEPENDS=	libwebp.so:graphics/webp
 WEBP_VARS=		XPRA_OPTIONS+=webp
 X264_LIB_DEPENDS=	libx264.so:multimedia/libx264
 X264_VARS=		XPRA_OPTIONS+=enc_x264
 X265_LIB_DEPENDS=	libx265.so:multimedia/x265
 X265_VARS=		XPRA_OPTIONS+=enc_x265
+XVID_LIB_DEPENDS=	libxvidcore.so:multimedia/xvid
+XVID_VARS=		XPRA_OPTIONS+=enc_xvid
 
 PYDISTUTILS_PKGNAME=	xpra_all
-XPRA_OPTIONS_ALL=	csc_opencl csc_swscale dec_avcodec2
-XPRA_OPTIONS_ALL+=	enc_x264 enc_x265 vpx webp
+XPRA_OPTIONS_ALL=	csc_libyuv csc_opencl csc_opencv csc_swscale
+XPRA_OPTIONS_ALL+=	dec_avcodec2 enc_ffmpeg enc_x264 enc_x265 enc_xvid
+XPRA_OPTIONS_ALL+=	html5 mdns sound printing vpx webcam webp
 XPRA_OPTIONS_ALL+=	${XPRA_OPTIONS_DISABLED}
-XPRA_OPTIONS_DISABLED=	Xdummy Xdummy_wrapper
-XPRA_OPTIONS_DISABLED+=	nvenc3 nvenc4 nvenc5
+XPRA_OPTIONS_DISABLED=	Xdummy Xdummy_wrapper minify nvenc7
 
 .include <bsd.port.options.mk>
 
@@ -81,7 +112,7 @@ PYDISTUTILS_ARGS+=	--with-${opt}
 .endif
 .endfor
 
-.if ${PORT_OPTIONS:MAVCODEC} || ${PORT_OPTIONS:MSWSCALE}
+.if ${PORT_OPTIONS:MAVCODEC} || ${PORT_OPTIONS:MFFMPEG}
 LIB_DEPENDS+=	libavcodec.so:multimedia/ffmpeg
 .endif
 
@@ -92,12 +123,18 @@ PYDISTUTILS_CONFIGUREARGS+=	${PYDISTUTIL
 PYDISTUTILS_INSTALLARGS+=	${PYDISTUTILS_ARGS}
 
 post-patch:
+	${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/setup.py
+	${REINPLACE_CMD} -e 's|%%GCC_RUNTIME%%|${LOCALBASE}/lib/gcc${_GCC_VER}|' \
+	    ${WRKSRC}/scripts/xpra ${WRKSRC}/scripts/xpra_launcher
 	${REINPLACE_CMD} -e 's|/usr/share|${LOCALBASE}/share|' \
 	    ${WRKSRC}/xpra/platform/pycups_printing.py
+	${REINPLACE_CMD} -e 's|/usr/sbin|${LOCALBASE}/sbin|' \
+	    ${WRKSRC}/etc/xpra/conf.d/16_printing.conf.in
 
 post-install:
-	${RM} ${STAGEDIR}${ETCDIR}/xpra.conf
-	${INSTALL_DATA} ${WRKSRC}/build/etc/xpra/xpra.conf \
+	${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \
+	    ${STAGEDIR}${ETCDIR}/xorg.conf.sample
+	${MV} ${STAGEDIR}${ETCDIR}/xpra.conf \
 	    ${STAGEDIR}${ETCDIR}/xpra.conf.sample
 	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \
 	    -exec ${STRIP_CMD} {} \;

Modified: head/x11/xpra/distinfo
==============================================================================
--- head/x11/xpra/distinfo	Sun Feb 12 14:21:24 2017	(r433948)
+++ head/x11/xpra/distinfo	Sun Feb 12 14:27:49 2017	(r433949)
@@ -1,2 +1,3 @@
-SHA256 (xpra-0.15.10.tar.xz) = 1403aaf571c486bb4a67bc9e9d431e5f863c9b7912bd65e6aec62fcea2d9d4e0
-SIZE (xpra-0.15.10.tar.xz) = 1200040
+TIMESTAMP = 1486238713
+SHA256 (xpra-1.0.2.tar.xz) = e32d2550c13d175681643696664790c9c59eda1e0ce1cea779ef7b0785f8bd2c
+SIZE (xpra-1.0.2.tar.xz) = 1888452

Added: head/x11/xpra/files/patch-scripts_xpra
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-scripts_xpra	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,14 @@
+# preload the correct libgcc_s.so for libgfortran.so,
+# which is required for numpy
+#
+--- scripts/xpra.orig	2016-12-06 10:56:26 UTC
++++ scripts/xpra
+@@ -1,5 +1,8 @@
+ #!/usr/bin/env python
+ 
++from ctypes import cdll
++cdll.LoadLibrary("%%GCC_RUNTIME%%/libgcc_s.so")
++
+ from xpra.platform import init, set_default_name
+ set_default_name("Xpra")
+ init()

Added: head/x11/xpra/files/patch-scripts_xpra__launcher
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-scripts_xpra__launcher	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,14 @@
+# preload the correct libgcc_s.so for libgfortran.so,
+# which is required for numpy
+#
+--- scripts/xpra_launcher.orig	2016-12-06 10:56:26 UTC
++++ scripts/xpra_launcher
+@@ -1,5 +1,8 @@
+ #!/usr/bin/env python
+ 
++from ctypes import cdll
++cdll.LoadLibrary("%%GCC_RUNTIME%%/libgcc_s.so")
++
+ import sys
+ from xpra.platform import program_context
+ 

Modified: head/x11/xpra/files/patch-setup.py
==============================================================================
--- head/x11/xpra/files/patch-setup.py	Sun Feb 12 14:21:24 2017	(r433948)
+++ head/x11/xpra/files/patch-setup.py	Sun Feb 12 14:27:49 2017	(r433949)
@@ -1,15 +1,26 @@
---- setup.py.orig	2015-09-10 14:42:44 UTC
+--- setup.py.orig	2017-02-01 05:52:14 UTC
 +++ setup.py
-@@ -147,7 +147,7 @@ nvenc4_ENABLED          = pkg_config_ok(
- nvenc5_ENABLED          = pkg_config_ok("--exists", "nvenc5")
- #elif os.path.exists("C:\\nvenc_3.0_windows_sdk")
- #...
--csc_opencl_ENABLED      = pkg_config_ok("--exists", "OpenCL") and check_pyopencl_AMD()
-+csc_opencl_ENABLED      = pkg_config_ok("--exists", "OpenCL")
- memoryview_ENABLED      = PYTHON3
+@@ -218,7 +218,7 @@ else:
+     nvenc7_ENABLED          = DEFAULT and pkg_config_ok("--exists", "nvenc7")
  
- warn_ENABLED            = True
-@@ -1560,12 +1560,12 @@ if WIN32:
+ memoryview_ENABLED      = sys.version>='2.7'
+-csc_opencl_ENABLED      = DEFAULT and pkg_config_ok("--exists", "OpenCL") and check_pyopencl_AMD()
++csc_opencl_ENABLED      = DEFAULT and pkg_config_ok("--exists", "OpenCL")
+ csc_libyuv_ENABLED      = DEFAULT and memoryview_ENABLED and pkg_config_ok("--exists", "libyuv", fallback=WIN32)
+ 
+ #Cython / gcc / packaging build options:
+@@ -798,8 +798,8 @@ def get_base_conf_dir(install_dir, strip
+         elif "usr" in dirs:
+             #ie: ["some", "path", "to", "usr"] -> ["usr"]
+             #assume "/usr" or "/usr/local" is the build root
+-            while "usr" in dirs and dirs.index("usr")>0:
+-                dirs = dirs[dirs.index("usr"):]
++            while "usr" in dirs[1:]:
++                dirs = dirs[dirs[1:].index("usr")+1:]
+         elif "image" in dirs:
+             # Gentoo's "${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image/_python2.7" -> ""
+             while "image" in dirs:
+@@ -1839,12 +1839,12 @@ if WIN32:
  else:
      #OSX and *nix:
      scripts += ["scripts/xpra", "scripts/xpra_launcher"]
@@ -22,14 +33,45 @@
 -    add_data_files("share/icons",         ["xdg/xpra.png"])
 +    add_data_files("share/pixmaps",       ["xdg/xpra.png"])
      add_data_files("share/appdata",       ["xdg/xpra.appdata.xml"])
-     html5_dir = "share/xpra/www"
  
-@@ -1688,7 +1688,7 @@ if html5_ENABLED:
+     #here, we override build and install so we can
+@@ -1877,7 +1877,7 @@ else:
+             if printing_ENABLED and os.name=="posix":
+                 #install "/usr/lib/cups/backend" with 0700 permissions:
+                 xpraforwarder_src = os.path.join("cups", "xpraforwarder")
+-                cups_backend_dir = os.path.join(self.install_dir, "lib", "cups", "backend")
++                cups_backend_dir = os.path.join(self.install_dir, "libexec", "cups", "backend")
+                 self.mkpath(cups_backend_dir)
+                 xpraforwarder_dst = os.path.join(cups_backend_dir, "xpraforwarder")
+                 shutil.copyfile(xpraforwarder_src, xpraforwarder_dst)
+@@ -1895,7 +1895,8 @@ else:
+                 #install xorg.conf, cuda.conf and nvenc.keys:
+                 etc_xpra = os.path.join(etc_prefix, "etc", "xpra")
+                 self.mkpath(etc_xpra)
+-                for x in ("xorg.conf", "cuda.conf", "nvenc.keys"):
++                etc_files = ["xorg.conf", "cuda.conf", "nvenc.keys"] if nvenc7_ENABLED else ["xorg.conf"]
++                for x in etc_files:
+                     shutil.copyfile("etc/xpra/%s" % x, os.path.join(etc_xpra, x))
  
- if printing_ENABLED and os.name=="posix":
-     #"/usr/lib/cups/backend":
--    cups_backend_dir = os.path.join(sys.prefix, "lib", "cups", "backend")
-+    cups_backend_dir = os.path.join(sys.prefix, "libexec", "cups", "backend")
-     add_data_files(cups_backend_dir, ["cups/xpraforwarder"])
+             if pam_ENABLED:
+@@ -1928,7 +1929,7 @@ else:
+         add_packages("xpra.platform.xposix")
+         remove_packages("xpra.platform.win32", "xpra.platform.darwin")
+         #not supported by all distros, but doesn't hurt to install it anyway:
+-        add_data_files("lib/tmpfiles.d", ["tmpfiles.d/xpra.conf"])
++        #add_data_files("lib/tmpfiles.d", ["tmpfiles.d/xpra.conf"])
  
+     #gentoo does weird things, calls --no-compile with build *and* install
+     #then expects to find the cython modules!? ie:
+@@ -2353,7 +2354,10 @@ if enc_x265_ENABLED:
  
+ toggle_packages(enc_xvid_ENABLED, "xpra.codecs.enc_xvid")
+ if enc_xvid_ENABLED:
+-    xvid_pkgconfig = pkgconfig("xvid")
++    xvid_pkgconfig = pkgconfig(optimize=3)
++    add_to_keywords(xvid_pkgconfig, 'libraries', "xvidcore")
++    add_to_keywords(xvid_pkgconfig, 'library_dirs', "%%LOCALBASE%%/lib")
++    add_to_keywords(xvid_pkgconfig, 'include_dirs', "%%LOCALBASE%%/include")
+     cython_add(Extension("xpra.codecs.enc_xvid.encoder",
+                 ["xpra/codecs/enc_xvid/encoder.pyx", buffers_c],
+                 **xvid_pkgconfig))

Added: head/x11/xpra/files/patch-xpra_client_gtk__base_bug__report.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_client_gtk__base_bug__report.py	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,21 @@
+# Don't override window background colors in order to
+# avoid usability problems with light on dark themes
+#
+--- xpra/client/gtk_base/bug_report.py.orig	2016-12-06 10:56:26 UTC
++++ xpra/client/gtk_base/bug_report.py
+@@ -43,7 +43,6 @@ class BugReport(object):
+         self.window.set_default_size(400, 300)
+         self.window.set_border_width(20)
+         self.window.set_title("Xpra Bug Report")
+-        self.window.modify_bg(STATE_NORMAL, gdk.Color(red=65535, green=65535, blue=65535))
+ 
+         icon_pixbuf = self.get_icon("bugs.png")
+         if icon_pixbuf:
+@@ -89,7 +88,6 @@ class BugReport(object):
+         self.description.set_justification(JUSTIFY_LEFT)
+         self.description.set_border_width(2)
+         self.description.set_size_request(300, 80)
+-        self.description.modify_bg(STATE_NORMAL, gdk.Color(red=32768, green=32768, blue=32768))
+         ibox.pack_start(self.description, expand=False, fill=False)
+ 
+         # Toggles:

Added: head/x11/xpra/files/patch-xpra_client_gtk__base_client__launcher.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_client_gtk__base_client__launcher.py	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,13 @@
+# Don't override window background color in order to
+# avoid usability problems with light on dark themes
+#
+--- xpra/client/gtk_base/client_launcher.py.orig	2016-12-06 10:56:26 UTC
++++ xpra/client/gtk_base/client_launcher.py
+@@ -146,7 +146,6 @@ class ApplicationWindow:
+         self.window.set_default_size(400, 260)
+         self.window.set_border_width(20)
+         self.window.set_title("Xpra Launcher")
+-        self.window.modify_bg(STATE_NORMAL, gdk.Color(red=65535, green=65535, blue=65535))
+ 
+         icon_pixbuf = self.get_icon("xpra.png")
+         if icon_pixbuf:

Added: head/x11/xpra/files/patch-xpra_client_gtk__base_start__new__command.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_client_gtk__base_start__new__command.py	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,13 @@
+# Don't override window background color in order to
+# avoid usability problems with light on dark themes
+#
+--- xpra/client/gtk_base/start_new_command.py.orig	2016-12-06 10:56:26 UTC
++++ xpra/client/gtk_base/start_new_command.py
+@@ -45,7 +45,6 @@ class StartNewCommand(object):
+         self.window.set_default_size(400, 150)
+         self.window.set_border_width(20)
+         self.window.set_title("Start New Command")
+-        self.window.modify_bg(STATE_NORMAL, gdk.Color(red=65535, green=65535, blue=65535))
+ 
+         icon_pixbuf = self.get_icon("forward.png")
+         if icon_pixbuf:

Added: head/x11/xpra/files/patch-xpra_scripts_config.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_scripts_config.py	Sun Feb 12 14:27:49 2017	(r433949)
@@ -0,0 +1,18 @@
+# Chaneset 15036 in xpra
+# Timestamp: 02/11/17 05:03:04
+# Author: Antoine Martin
+# Message: make sure we call makedirs on the expanded path
+#
+--- xpra/scripts/config.py.orig	2016-12-30 04:31:45 UTC
++++ xpra/scripts/config.py
+@@ -401,8 +401,8 @@ def may_create_user_config(xpra_conf_fil
+                 ad = os.path.expanduser(d)
+                 conf_file = os.path.join(ad, xpra_conf_filename)
+                 try:
+-                    if not os.path.exists(d):
+-                        os.makedirs(d, int('700', 8))
++                    if not os.path.exists(ad):
++                        os.makedirs(ad, int('700', 8))
+                     with open(conf_file, 'wb') as f:
+                         f.write("# xpra user configuration file\n")
+                         f.write("# place your custom settings in this file\n")

Modified: head/x11/xpra/pkg-plist
==============================================================================
--- head/x11/xpra/pkg-plist	Sun Feb 12 14:21:24 2017	(r433948)
+++ head/x11/xpra/pkg-plist	Sun Feb 12 14:27:49 2017	(r433949)
@@ -1,581 +1,741 @@
 bin/xpra
-bin/xpra_Xdummy
 bin/xpra_launcher
-%%ETCDIR%%/xorg.conf
+%%ETCDIR%%/conf.d/05_features.conf
+%%ETCDIR%%/conf.d/10_network.conf
+%%ETCDIR%%/conf.d/12_ssl.conf
+%%ETCDIR%%/conf.d/15_file_transfers.conf
+%%ETCDIR%%/conf.d/16_printing.conf
+%%ETCDIR%%/conf.d/20_sound.conf
+%%ETCDIR%%/conf.d/30_picture.conf
+%%ETCDIR%%/conf.d/35_webcam.conf
+%%ETCDIR%%/conf.d/40_client.conf
+%%ETCDIR%%/conf.d/42_client_keyboard.conf
+%%ETCDIR%%/conf.d/50_server_network.conf
+%%ETCDIR%%/conf.d/55_server_x11.conf
+%%ETCDIR%%/conf.d/60_server.conf
+%%ETCDIR%%/conf.d/65_proxy.conf
+@sample %%ETCDIR%%/xorg.conf.sample
 @sample %%ETCDIR%%/xpra.conf.sample
+%%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/PKG-INFO
+%%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/SOURCES.txt
+%%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/dependency_links.txt
+%%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/top_level.txt
 %%PYTHON_SITELIBDIR%%/xpra/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/build_info.py
 %%PYTHON_SITELIBDIR%%/xpra/build_info.pyc
-%%PYTHON_SITELIBDIR%%/xpra/build_info.pyo
+%%PYTHON_SITELIBDIR%%/xpra/build_info.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/child_reaper.py
 %%PYTHON_SITELIBDIR%%/xpra/child_reaper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/child_reaper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/child_reaper.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/client_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/client_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/client_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/client_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/client_tray.py
 %%PYTHON_SITELIBDIR%%/xpra/client/client_tray.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/client_tray.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/client_tray.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/client_widget_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/client_widget_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/client_widget_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/client_widget_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/client_window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/client_window_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/client_window_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/client_window_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/fake_window_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/fake_window_backing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/fake_window_backing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/fake_window_backing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_check.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_check.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_check.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_check.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_colorspace_conversions.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_colorspace_conversions.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_colorspace_conversions.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_colorspace_conversions.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_window_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_window_backing_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_window_backing_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_window_backing_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_client_window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_client_window.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_client_window.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_window_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_window_backing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_window_backing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk2/gl_window_backing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk_compat.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk_compat.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk_compat.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk_compat.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gobject_client_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gobject_client_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gobject_client_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gobject_client_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/border_client_window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/border_client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/border_client_window.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/border_client_window.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/cairo_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/cairo_backing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/cairo_backing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/cairo_backing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client_window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client_window.pyo
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/custom_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/custom_client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/custom_client_window.pyo
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/debuginfo_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/debuginfo_client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/debuginfo_client_window.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/client_window.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_notifier.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_notifier.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_notifier.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_notifier.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_window_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_window_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/gtk2_window_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/pixmap_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/pixmap_backing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/pixmap_backing.pyo
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/topbar_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/topbar_client_window.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/topbar_client_window.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/pixmap_backing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/tray_menu.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/tray_menu.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/tray_menu.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/tray_menu.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/window_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk2/window_backing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/window_backing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk2/window_backing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__init__.pyo
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/about.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/about.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/about.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/bug_report.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/bug_report.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/bug_report.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/bug_report.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/cairo_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/cairo_backing_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/cairo_backing_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/cairo_backing_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/client_launcher.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/client_launcher.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/client_launcher.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/client_launcher.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_window_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_window_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_window_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_keyboard_helper.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_keyboard_helper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_keyboard_helper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_keyboard_helper.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_tray_menu_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_tray_menu_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_tray_menu_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_tray_menu_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_window_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_window_backing_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_window_backing_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_window_backing_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/session_info.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/session_info.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/session_info.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/session_info.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/start_new_command.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/start_new_command.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/start_new_command.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/start_new_command.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/statusicon_tray.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/statusicon_tray.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/statusicon_tray.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/statusicon_tray.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/keyboard_helper.py
 %%PYTHON_SITELIBDIR%%/xpra/client/keyboard_helper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/keyboard_helper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/keyboard_helper.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/notifications/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/notifications/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/dbus_notifier.py
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/dbus_notifier.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/notifications/dbus_notifier.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/notifications/dbus_notifier.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/notifier_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/notifier_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/notifications/notifier_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/notifications/notifier_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/pynotify_notifier.py
 %%PYTHON_SITELIBDIR%%/xpra/client/notifications/pynotify_notifier.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/notifications/pynotify_notifier.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/notifications/pynotify_notifier.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/tray_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/tray_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/tray_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/tray_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/ui_client_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/ui_client_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/ui_client_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/ui_client_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/window_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/window_backing_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/window_backing_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/window_backing_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/client/window_border.py
 %%PYTHON_SITELIBDIR%%/xpra/client/window_border.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/window_border.pyo
+%%PYTHON_SITELIBDIR%%/xpra/client/window_border.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_base.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/gdk_clipboard.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/gdk_clipboard.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/gdk_clipboard.pyo
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/gdk_clipboard.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/translated_clipboard.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/translated_clipboard.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/translated_clipboard.pyo
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/translated_clipboard.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/argb.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_checks.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_checks.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_checks.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/colorspace_converter.so
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__init__.py
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__init__.pyc
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__init__.%%PYTHON_PYOEXTENSION%%
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/colorspace_converter.so
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/__init__.py
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/__init__.pyc
-%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/__init__.pyo
+%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/__init__.%%PYTHON_PYOEXTENSION%%
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/colorspace_converter.py
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/colorspace_converter.pyc
-%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/colorspace_converter.pyo
+%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/colorspace_converter.%%PYTHON_PYOEXTENSION%%
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/opencl_kernels.py
 %%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/opencl_kernels.pyc
-%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/opencl_kernels.pyo
+%%OPENCL%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencl/opencl_kernels.%%PYTHON_PYOEXTENSION%%
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/__init__.py
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/__init__.pyc
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/__init__.%%PYTHON_PYOEXTENSION%%
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/colorspace_converter.py
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/colorspace_converter.pyc
+%%OPENCV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_opencv/colorspace_converter.%%PYTHON_PYOEXTENSION%%
 %%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__init__.py
 %%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__init__.pyc
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__init__.pyo
+%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__init__.%%PYTHON_PYOEXTENSION%%
 %%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/colorspace_converter.so
 %%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__init__.py
 %%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__init__.pyc
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__init__.pyo
+%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__init__.%%PYTHON_PYOEXTENSION%%
 %%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/decoder.so
+%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__init__.py
+%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__init__.pyc
+%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__init__.%%PYTHON_PYOEXTENSION%%
+%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/encoder.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/encoder.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/encoder.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/encoder.%%PYTHON_PYOEXTENSION%%
 %%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__init__.py
 %%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__init__.pyc
-%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__init__.pyo
+%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__init__.%%PYTHON_PYOEXTENSION%%
 %%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/encoder.so
 %%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.py
 %%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.pyc
-%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.pyo
+%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.%%PYTHON_PYOEXTENSION%%
 %%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/encoder.so
+%%XVID%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_xvid/__init__.py
+%%XVID%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_xvid/__init__.pyc
+%%XVID%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_xvid/__init__.%%PYTHON_PYOEXTENSION%%
+%%XVID%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_xvid/encoder.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/av_log.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/loader.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/loader.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/loader.pyo
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nv_util.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nv_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nv_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/loader.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/decode.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/decode.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/decode.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/encode.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/encode.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/encode.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.%%PYTHON_PYOEXTENSION%%
 %%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__init__.py
 %%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__init__.pyc
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__init__.pyo
+%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__init__.%%PYTHON_PYOEXTENSION%%
 %%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/decoder.so
 %%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/encoder.so
 %%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.py
 %%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.pyc
-%%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.pyo
+%%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.%%PYTHON_PYOEXTENSION%%
 %%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/decode.so
 %%WEBP%%%%PYTHON_SITELIBDIR%%/xpra/codecs/webp/encode.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/xor/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/xor/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/xor/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/codecs/xor/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/codecs/xor/cyxor.so
-%%PYTHON_SITELIBDIR%%/xpra/daemon_thread.py
-%%PYTHON_SITELIBDIR%%/xpra/daemon_thread.pyc
-%%PYTHON_SITELIBDIR%%/xpra/daemon_thread.pyo
-%%PYTHON_SITELIBDIR%%/xpra/dotxpra.py
-%%PYTHON_SITELIBDIR%%/xpra/dotxpra.pyc
-%%PYTHON_SITELIBDIR%%/xpra/dotxpra.pyo
+%%PYTHON_SITELIBDIR%%/xpra/colorstreamhandler.py
+%%PYTHON_SITELIBDIR%%/xpra/colorstreamhandler.pyc
+%%PYTHON_SITELIBDIR%%/xpra/colorstreamhandler.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/dbus/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/dbus/__init__.pyc
+%%PYTHON_SITELIBDIR%%/xpra/dbus/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/dbus/common.py
+%%PYTHON_SITELIBDIR%%/xpra/dbus/common.pyc
+%%PYTHON_SITELIBDIR%%/xpra/dbus/common.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/dbus/gtk_menuactions.py
+%%PYTHON_SITELIBDIR%%/xpra/dbus/gtk_menuactions.pyc
+%%PYTHON_SITELIBDIR%%/xpra/dbus/gtk_menuactions.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/dbus/helper.py
+%%PYTHON_SITELIBDIR%%/xpra/dbus/helper.pyc
+%%PYTHON_SITELIBDIR%%/xpra/dbus/helper.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/dbus/notifications_forwarder.py
+%%PYTHON_SITELIBDIR%%/xpra/dbus/notifications_forwarder.pyc
+%%PYTHON_SITELIBDIR%%/xpra/dbus/notifications_forwarder.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/exit_codes.py
+%%PYTHON_SITELIBDIR%%/xpra/exit_codes.pyc
+%%PYTHON_SITELIBDIR%%/xpra/exit_codes.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/about.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/about.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/about.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gdk_atoms.so
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_compat.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_compat.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_compat.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_compat.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_util.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_util.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/graph.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/graph.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/graph.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/graph.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_spinner.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_spinner.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_spinner.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_spinner.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_util.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_util.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_clipboard.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_clipboard.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_clipboard.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_clipboard.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_keyboard.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_keyboard.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_keyboard.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_keyboard.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/keymap.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/keymap.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/keymap.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/keymap.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/nested_main.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/nested_main.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/nested_main.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/nested_main.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/pixbuf_to_rgb.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/pixbuf_to_rgb.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/pixbuf_to_rgb.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/pixbuf_to_rgb.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/quit.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/quit.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/quit.pyo
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/quit.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/keyboard/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/keyboard/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/layouts.py
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/layouts.pyc
-%%PYTHON_SITELIBDIR%%/xpra/keyboard/layouts.pyo
+%%PYTHON_SITELIBDIR%%/xpra/keyboard/layouts.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/mask.py
 %%PYTHON_SITELIBDIR%%/xpra/keyboard/mask.pyc
-%%PYTHON_SITELIBDIR%%/xpra/keyboard/mask.pyo
+%%PYTHON_SITELIBDIR%%/xpra/keyboard/mask.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/log.py
 %%PYTHON_SITELIBDIR%%/xpra/log.pyc
-%%PYTHON_SITELIBDIR%%/xpra/log.pyo
+%%PYTHON_SITELIBDIR%%/xpra/log.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/make_thread.py
+%%PYTHON_SITELIBDIR%%/xpra/make_thread.pyc
+%%PYTHON_SITELIBDIR%%/xpra/make_thread.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/net/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__init__.pyo
-%%PYTHON_SITELIBDIR%%/xpra/net/avahi_publisher.py
-%%PYTHON_SITELIBDIR%%/xpra/net/avahi_publisher.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/avahi_publisher.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__init__.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/bencode.py
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/bencode.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bencode/bencode.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/bencode/bencode.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/cython_bencode.so
 %%PYTHON_SITELIBDIR%%/xpra/net/bytestreams.py
 %%PYTHON_SITELIBDIR%%/xpra/net/bytestreams.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bytestreams.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/bytestreams.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/compression.py
 %%PYTHON_SITELIBDIR%%/xpra/net/compression.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/compression.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/compression.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/crypto.py
 %%PYTHON_SITELIBDIR%%/xpra/net/crypto.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/crypto.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/crypto.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/fake_jitter.py
 %%PYTHON_SITELIBDIR%%/xpra/net/fake_jitter.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/fake_jitter.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/fake_jitter.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/net/file_transfer.py
+%%PYTHON_SITELIBDIR%%/xpra/net/file_transfer.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/file_transfer.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/header.py
 %%PYTHON_SITELIBDIR%%/xpra/net/header.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/header.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/header.%%PYTHON_PYOEXTENSION%%
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__init__.py
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__init__.pyc
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__init__.%%PYTHON_PYOEXTENSION%%
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_listener.py
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_listener.pyc
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_listener.%%PYTHON_PYOEXTENSION%%
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_publisher.py
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_publisher.pyc
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/avahi_publisher.%%PYTHON_PYOEXTENSION%%
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour.py
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour.pyc
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour.%%PYTHON_PYOEXTENSION%%
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour_publisher.py
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour_publisher.pyc
+%%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/pybonjour_publisher.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/mmap_pipe.py
 %%PYTHON_SITELIBDIR%%/xpra/net/mmap_pipe.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/mmap_pipe.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/mmap_pipe.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/net_util.py
 %%PYTHON_SITELIBDIR%%/xpra/net/net_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/net_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/net_util.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/packet_encoding.py
 %%PYTHON_SITELIBDIR%%/xpra/net/packet_encoding.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/packet_encoding.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/packet_encoding.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/protocol.py
 %%PYTHON_SITELIBDIR%%/xpra/net/protocol.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/protocol.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/net/pycrypto_backend.py
+%%PYTHON_SITELIBDIR%%/xpra/net/pycrypto_backend.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/pycrypto_backend.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/net/pycryptography_backend.py
+%%PYTHON_SITELIBDIR%%/xpra/net/pycryptography_backend.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/pycryptography_backend.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/net/subprocess_wrapper.py
 %%PYTHON_SITELIBDIR%%/xpra/net/subprocess_wrapper.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/subprocess_wrapper.pyo
+%%PYTHON_SITELIBDIR%%/xpra/net/subprocess_wrapper.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/net/websocket.py
+%%PYTHON_SITELIBDIR%%/xpra/net/websocket.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/websocket.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/os_util.py
 %%PYTHON_SITELIBDIR%%/xpra/os_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/os_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/os_util.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/__init__.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/__init__.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra.py
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra.pyc
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra_common.py
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra_common.pyc
+%%PYTHON_SITELIBDIR%%/xpra/platform/dotxpra_common.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/features.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/features.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/features.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/features.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/gui.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/gui.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/gui.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/gui.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/info.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/info.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/info.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/info.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/keyboard.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/keyboard.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/keyboard.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/keyboard.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/keyboard_base.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/keyboard_base.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/keyboard_base.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/keyboard_base.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/options.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/options.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/options.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/options.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/options_util.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/options_util.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/options_util.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/options_util.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/paths.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/paths.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/paths.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/paths.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/printing.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/printing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/printing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/printing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/pycups_printing.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/pycups_printing.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/pycups_printing.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/pycups_printing.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/shadow_server.py
 %%PYTHON_SITELIBDIR%%/xpra/platform/shadow_server.pyc
-%%PYTHON_SITELIBDIR%%/xpra/platform/shadow_server.pyo
+%%PYTHON_SITELIBDIR%%/xpra/platform/shadow_server.%%PYTHON_PYOEXTENSION%%
 %%PYTHON_SITELIBDIR%%/xpra/platform/ui_thread_watcher.py

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702121427.v1CERnps093443>