Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Dec 2023 09:32:23 GMT
From:      Gleb Popov <arrowd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: feb311c3fb9b - main - x11/xpra: Update to 5.0.4
Message-ID:  <202312170932.3BH9WNuT001311@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=feb311c3fb9b1b5ea2114b4e78887216d5032398

commit feb311c3fb9b1b5ea2114b4e78887216d5032398
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2023-11-22 19:15:47 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2023-12-17 09:32:06 +0000

    x11/xpra: Update to 5.0.4
---
 x11/xpra/Makefile             |   49 +-
 x11/xpra/distinfo             |    6 +-
 x11/xpra/files/patch-setup.py |   20 +
 x11/xpra/pkg-plist            | 1046 +++++++++++++++++++++++------------------
 4 files changed, 623 insertions(+), 498 deletions(-)

diff --git a/x11/xpra/Makefile b/x11/xpra/Makefile
index 6ef416b0a295..3e62a3fef6df 100644
--- a/x11/xpra/Makefile
+++ b/x11/xpra/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	xpra
-PORTVERSION=	4.4.5
+PORTVERSION=	5.0.4
 CATEGORIES=	x11
 MASTER_SITES=	https://xpra.org/src/
 
@@ -10,10 +10,14 @@ WWW=		https://xpra.org/
 LICENSE=	GPLv2
 
 BUILD_DEPENDS=	pandoc:textproc/hs-pandoc
-LIB_DEPENDS=	libbrotlidec.so:archivers/brotli \
+LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
+		libbrotlidec.so:archivers/brotli \
+		libdrm.so:graphics/libdrm \
 		libharfbuzz.so:print/harfbuzz \
 		liblz4.so:archivers/liblz4 \
-		libwebp.so:graphics/webp
+		libopenh264.so:multimedia/openh264 \
+		libwebp.so:graphics/webp \
+		libx264.so:multimedia/libx264
 RUN_DEPENDS=	${PY_PILLOW} \
 		${PYTHON_PKGNAMEPREFIX}bencode.py>1:converters/py-bencode.py@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}brotli>1:archivers/py-brotli@${PY_FLAVOR} \
@@ -46,11 +50,9 @@ SHEBANG_FILES=	fs/lib/cups/backend/xpraforwarder fs/libexec/xpra/auth_dialog \
 		fs/libexec/xpra/xdg-open fs/libexec/xpra/xpra_signal_listener \
 		fs/libexec/xpra/xpra_udev_product_version
 
-OPTIONS_DEFINE=		AVAHI AVCODEC CUPS DOCS FFMPEG GSTREAMER LIBYUV SWSCALE \
-			WEBCAM X265
-OPTIONS_DEFAULT=	AVAHI CUPS GSTREAMER X264
-OPTIONS_RADIO=		CODEC
-OPTIONS_RADIO_CODEC=	VPX X264
+OPTIONS_DEFINE=		AVAHI CUPS DOCS GSTREAMER LIBYUV SWSCALE \
+			WEBCAM
+OPTIONS_DEFAULT=	AVAHI CUPS GSTREAMER
 OPTIONS_SUB=		yes
 
 AVCODEC_DESC=	Enable avcodec2 (FFmpeg) decoder
@@ -59,19 +61,12 @@ FFMPEG_DESC=	Enable FFmpeg encoder
 GSTREAMER_DESC=	Enable GStreamer for sound forwarding
 LIBYUV_DESC=	Enable libyuv CSC module (fastest)
 SWSCALE_DESC=	Enable swscale (FFmpeg) CSC module
-VPX_DESC=	Enable VP8 and VP9 codec
 WEBCAM_DESC=	Enable webcam forwarding (client only)
-X264_DESC=	Enable X264 encoder
-X265_DESC=	Enable X265 encoder
 
 AVAHI_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi@${PY_FLAVOR}
 AVAHI_VARS=			XPRA_OPTIONS+=mdns
-AVCODEC_LIB_DEPENDS=		libavcodec.so:multimedia/ffmpeg
-AVCODEC_VARS=			XPRA_OPTIONS+=dec_avcodec2
 CUPS_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}pycups>1:print/py-pycups@${PY_FLAVOR}
 CUPS_VARS=			XPRA_OPTIONS+=printing
-FFMPEG_LIB_DEPENDS=		libavcodec.so:multimedia/ffmpeg
-FFMPEG_VARS=			XPRA_OPTIONS+=enc_ffmpeg
 GSTREAMER_USES=			gstreamer
 GSTREAMER_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR}
 GSTREAMER_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gstreamer1>1:multimedia/py-gstreamer1@${PY_FLAVOR}
@@ -79,22 +74,16 @@ GSTREAMER_USE=			GSTREAMER=flac,lame,mpg123,ogg,opus,pulse,vorbis,wavpack
 GSTREAMER_VARS=			XPRA_OPTIONS+=sound
 LIBYUV_LIB_DEPENDS=		libyuv.so:graphics/libyuv
 LIBYUV_VARS=			XPRA_OPTIONS+=csc_libyuv
-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=		opencv>2:graphics/opencv
 WEBCAM_VARS=			XPRA_OPTIONS+=webcam
-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
 
 PYDISTUTILS_PKGNAME=	xpra_all
 XPRA_OPTIONS_ALL+=	${XPRA_OPTIONS_DISABLED} csc_libyuv csc_swscale \
-			dec_avcodec2 enc_ffmpeg enc_x264 enc_x265 \
-			mdns printing sound vpx webcam
-XPRA_OPTIONS_DISABLED=	strict uinput Xdummy Xdummy_wrapper
+			enc_x264 \
+			mdns printing vpx webcam
+XPRA_OPTIONS=		dec_avcodec2 enc_ffmpeg enc_x264
+XPRA_OPTIONS_DISABLED=	pam strict uinput vpx Xdummy Xdummy_wrapper
 
 .include <bsd.port.options.mk>
 
@@ -111,6 +100,7 @@ PYDISTUTILS_ARGS+=	--with-${opt}
 PYDISTUTILS_BUILDARGS+=	${PYDISTUTILS_ARGS}
 PYDISTUTILS_CONFIGUREARGS+=	${PYDISTUTILS_ARGS}
 PYDISTUTILS_INSTALLARGS+=	${PYDISTUTILS_ARGS}
+#MAKE_ENV=	pkgdir=${STAGEDIR}${PREFIX}/
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|/usr/share|${LOCALBASE}/share|' \
@@ -119,11 +109,14 @@ post-patch:
 	    ${WRKSRC}/fs/etc/xpra/conf.d/16_printing.conf.in
 
 post-install:
-	@${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \
+	${MKDIR} ${STAGEDIR}${ETCDIR}
+	${CP} -r ${STAGEDIR}/etc ${STAGEDIR}${PREFIX} && ${RM} -r ${STAGEDIR}/etc
+	${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \
 	    ${STAGEDIR}${ETCDIR}/xorg.conf.sample
-	@${MV} ${STAGEDIR}${ETCDIR}/xpra.conf \
+	${MV} ${STAGEDIR}${ETCDIR}/xpra.conf \
 	    ${STAGEDIR}${ETCDIR}/xpra.conf.sample
-	@${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \
+	${CP} -r ${STAGEDIR}${PREFIX}/etc/dbus-1 ${STAGEDIR}${PREFIX}/share && ${RM} -r ${STAGEDIR}${PREFIX}/dbus-1
+	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \
 	    -exec ${STRIP_CMD} {} +
 
 .include <bsd.port.post.mk>
diff --git a/x11/xpra/distinfo b/x11/xpra/distinfo
index 9cd8f98f6a8b..5565bd36c9dd 100644
--- a/x11/xpra/distinfo
+++ b/x11/xpra/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1685894416
-SHA256 (xpra-4.4.5.tar.xz) = a36bc33f36568291057b4cb3363c2db8b3c73b419f59b4ac70a8ef21f4e2e91a
-SIZE (xpra-4.4.5.tar.xz) = 3056300
+TIMESTAMP = 1702802876
+SHA256 (xpra-5.0.4.tar.xz) = a0a2c2f8c8241628b9222b4ba9ffa3c5e3168534acf53481abba65999b4a647d
+SIZE (xpra-5.0.4.tar.xz) = 8357956
diff --git a/x11/xpra/files/patch-setup.py b/x11/xpra/files/patch-setup.py
new file mode 100644
index 000000000000..4fcbb91ab313
--- /dev/null
+++ b/x11/xpra/files/patch-setup.py
@@ -0,0 +1,20 @@
+--- setup.py.orig	2023-10-03 11:21:49 UTC
++++ setup.py
+@@ -269,7 +269,7 @@ evdi_ENABLED            = DEFAULT and LINUX and pkg_co
+ keyboard_ENABLED        = DEFAULT
+ v4l2_ENABLED            = DEFAULT and (not WIN32 and not OSX and not FREEBSD and not OPENBSD)
+ evdi_ENABLED            = DEFAULT and LINUX and pkg_config_version("1.9", "evdi")
+-drm_ENABLED             = DEFAULT and LINUX and pkg_config_version("2.4", "libdrm")
++drm_ENABLED             = DEFAULT and (LINUX or FREEBSD) and pkg_config_version("2.4", "libdrm")
+ #ffmpeg 3.1 or later is required
+ dec_avcodec2_ENABLED    = ffmpeg_ENABLED and pkg_config_version("57", "libavcodec")
+ csc_swscale_ENABLED     = ffmpeg_ENABLED and pkg_config_ok("--exists", "libswscale")
+@@ -2043,7 +2002,7 @@ if data_ENABLED:
+     if not is_openSUSE():
+         add_data_files(share_xpra,                  ["README.md", "COPYING"])
+     add_data_files(share_xpra,                      ["fs/share/xpra/bell.wav"])
+-    if LINUX:
++    if LINUX or FREEBSD:
+         add_data_files(share_xpra,                  ["fs/share/xpra/autostart.desktop"])
+     ICONS = glob.glob("fs/share/xpra/icons/*.png")
+     if OSX:
diff --git a/x11/xpra/pkg-plist b/x11/xpra/pkg-plist
index d2a2899b092f..7748e4fe109c 100644
--- a/x11/xpra/pkg-plist
+++ b/x11/xpra/pkg-plist
@@ -8,7 +8,7 @@ etc/dbus-1/system.d/xpra.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/20_audio.conf
 %%ETCDIR%%/conf.d/30_picture.conf
 %%ETCDIR%%/conf.d/35_webcam.conf
 %%ETCDIR%%/conf.d/40_client.conf
@@ -44,6 +44,10 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/exit_codes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/exit_codes%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_common%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_pipeline%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_pipeline%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/log%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/log%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/make_thread%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -52,14 +56,54 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/os_util%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/queue_scheduler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/queue_scheduler%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/simple_stats%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/simple_stats%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/src_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/src_info%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/version_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/version_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/audio_pipeline%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/audio_pipeline%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/gstreamer_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/gstreamer_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/sink%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/sink%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/src%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/src%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/wrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/wrapper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/audio_pipeline.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/common.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/gstreamer_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_common_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_common_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_none_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_none_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_pactl_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_pactl_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_common_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_none_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_pactl_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/sink.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/src.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/wrapper.py
 %%PYTHON_SITELIBDIR%%/xpra/buffers/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/buffers/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/buffers/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -71,42 +115,6 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/tray_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/tray_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -131,11 +139,30 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/prompt_handler.py
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/u2f_handler.py
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/uri_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/client_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/client_tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/client_widget_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/client_window_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/fake_window_backing.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/fileprint_mixin.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/gobject_client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/rfb_protocol.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/serverinfo_mixin.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/stub_client_mixin.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/top_client.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -169,185 +196,217 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/gl_drawing_area.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/nativegl_client_window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/window_backend.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gobject_client_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_client_window%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_notifier%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_notifier%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/tray_menu%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/tray_menu%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_menu%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_menu%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/bug_report.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_backing.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_workaround%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client_launcher.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client_window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/confirm_dialog.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/bell.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/clicks.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors_gradient.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors_plain.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/cursors.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/file_chooser.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/fontrendering.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/grabs.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/header_bar.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/initiate_moveresize.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/text_entry.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/transparent_colors.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/transparent_window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/tray.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_focus.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_geometry_hints.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_opacity.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_overrideredirect.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_states.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_title.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_transient.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk3_client_window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk3_notifier.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_client_window_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_keyboard_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_spinner.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_tray_menu_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/mdns_gui.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/menu_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/open_requests.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/pass_dialog.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/qrcode_client.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/server_commands.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/session_info.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/sessions_gui.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/show_shortcuts.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/splash_screen.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/start_new_command.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/statusicon_tray.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/toolbox.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/tray_menu.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/u2f_tool.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/update_status.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window_info.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window_menu.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/bug_report.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/cairo_backing_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/client_launcher.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/confirm_dialog.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/css_overrides.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/bell.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/clicks.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/colors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/colors_gradient.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/colors_plain.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/cursors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/file_chooser.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/fontrendering.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/grabs.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/header_bar.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/initiate_moveresize.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/text_entry.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/transparent_colors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/transparent_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_focus.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_geometry_hints.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_opacity.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_overrideredirect.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_states.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_title.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/example/window_transient.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_client_window_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_keyboard_helper.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_spinner.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/gtk_tray_menu_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/mdns_gui.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/menu_helper.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/open_requests.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/pass_dialog.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/server_commands.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/session_info.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/sessions_gui.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/start_new_command.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/statusicon_tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/toolbox.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/u2f_tool.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/update_status.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk_base/window_info.py
-%%PYTHON_SITELIBDIR%%/xpra/client/keyboard_helper.py
-%%PYTHON_SITELIBDIR%%/xpra/client/keyboard_shortcuts_parser.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixin_features.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/tray_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/tray_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/client_tray.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/client_widget_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/client_window_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/fake_client.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/fake_window_backing.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/keyboard_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/keyboard_shortcuts_parser.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/mixin_features.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/paint_colors.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/spinner.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/tray_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/ui_client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/window_backing_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/window_border.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -359,8 +418,6 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/display%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/mmap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/mmap%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/network_listener%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -373,10 +430,6 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/remote_logging%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/rpc%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/rpc%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/webcam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -387,27 +440,15 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/clipboard.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/display.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/encodings.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/fileprint_mixin.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/mmap.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/network_listener.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/network_state.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/notifications.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/remote_logging.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/rpc.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/serverinfo_mixin.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/stub_client_mixin.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/tray.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/webcam.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/window_manager.py
-%%PYTHON_SITELIBDIR%%/xpra/client/paint_colors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/rfb_protocol.py
-%%PYTHON_SITELIBDIR%%/xpra/client/scaling_parser.py
-%%PYTHON_SITELIBDIR%%/xpra/client/spinner.py
-%%PYTHON_SITELIBDIR%%/xpra/client/top_client.py
-%%PYTHON_SITELIBDIR%%/xpra/client/tray_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/ui_client_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/window_backing_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/window_border.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -453,43 +494,56 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
-%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__init__.py
-%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_libyuv/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__init__.py
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_swscale/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__init__.py
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/dec_avcodec2/decoder%%PYTHON_EXT_SUFFIX%%.so
-%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__init__.py
-%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%FFMPEG%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_ffmpeg/encoder%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_proxy/encoder.py
-%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__init__.py
-%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%X264%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x264/encoder%%PYTHON_EXT_SUFFIX%%.so
-%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.py
-%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/encoder%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/drm/drm%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/av_log%%PYTHON_EXT_SUFFIX%%.so
+%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/decoder%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/encoder%%PYTHON_EXT_SUFFIX%%.so
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__init__.py
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/capture%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/capture%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/codec_common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/codec_common%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/decoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/decoder%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/capture.py
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/codec_common.py
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/decoder.py
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/icon_util.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.py
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__init__.py
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%AVCODEC%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libav_common/av_log%%PYTHON_EXT_SUFFIX%%.so
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__init__.py
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/loader.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_context%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_context%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_errors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_errors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_image_wrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_image_wrapper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/nv_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/nv_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_context.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_errors.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_image_wrapper.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/nv_util.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/decoder%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/encoder%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -499,18 +553,23 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/decoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/pillow/encoder.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/rgb_transform.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.py
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__init__.py
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/decoder%%PYTHON_EXT_SUFFIX%%.so
-%%VPX%%%%PYTHON_SITELIBDIR%%/xpra/codecs/vpx/encoder%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/decoder%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/encoder%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/x264/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/x264/encoder%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/colorstreamhandler.py
 %%PYTHON_SITELIBDIR%%/xpra/common.py
 %%PYTHON_SITELIBDIR%%/xpra/dbus/__init__.py
@@ -526,6 +585,8 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/dbus/helper.py
 %%PYTHON_SITELIBDIR%%/xpra/dbus/notifications_forwarder.py
 %%PYTHON_SITELIBDIR%%/xpra/exit_codes.py
+%%PYTHON_SITELIBDIR%%/xpra/gst_common.py
+%%PYTHON_SITELIBDIR%%/xpra/gst_pipeline.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -533,6 +594,8 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/about%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/cursor_names%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/cursor_names%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/desktop_greeter%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -563,6 +626,7 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/start_gui%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/about.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/auth_dialog.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk_common/css_overrides.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/desktop_greeter.py
 %%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.py
@@ -604,18 +668,10 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/compression%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/crypto%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/crypto%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/d3des%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/d3des%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/digest%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/digest%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/fake_jitter%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/fake_jitter%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/file_transfer%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/file_transfer%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/header%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/header%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/http_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/http_handler%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/libproxy%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/libproxy%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/mmap_pipe%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -624,20 +680,8 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/net_util%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/packet_encoding%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/packet_encoding%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/protocol%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/protocol%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/protocol_classes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/protocol_classes%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/pycryptography_backend%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/pycryptography_backend%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/qrcode%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/qrcode%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/socket_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/socket_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/ssh%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/ssh%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/sshfp%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/sshfp%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/subprocess_wrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/subprocess_wrapper%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/__pycache__/upnp%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -645,10 +689,10 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/bencode%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/bencode%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/net/bencode/bencode.py
+%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/python_bencode%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/bencode/__pycache__/python_bencode%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/bencode/cython_bencode%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/net/bencode/python_bencode.py
 %%PYTHON_SITELIBDIR%%/xpra/net/brotli/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/net/brotli/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/net/brotli/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -658,14 +702,22 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/net/common.py
 %%PYTHON_SITELIBDIR%%/xpra/net/compression.py
 %%PYTHON_SITELIBDIR%%/xpra/net/crypto.py
-%%PYTHON_SITELIBDIR%%/xpra/net/d3des.py
 %%PYTHON_SITELIBDIR%%/xpra/net/digest.py
-%%PYTHON_SITELIBDIR%%/xpra/net/fake_jitter.py
 %%PYTHON_SITELIBDIR%%/xpra/net/file_transfer.py
-%%PYTHON_SITELIBDIR%%/xpra/net/header.py
-%%PYTHON_SITELIBDIR%%/xpra/net/http_handler.py
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/directory_listing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/directory_listing%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/http_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/__pycache__/http_handler%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/http/directory_listing.py
+%%PYTHON_SITELIBDIR%%/xpra/net/http/http_handler.py
 %%PYTHON_SITELIBDIR%%/xpra/net/libproxy.py
-%%PYTHON_SITELIBDIR%%/xpra/net/lz4%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/net/lz4/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/net/lz4/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/lz4/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/lz4/lz4%%PYTHON_EXT_SUFFIX%%.so
 %%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__init__.py
 %%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%AVAHI%%%%PYTHON_SITELIBDIR%%/xpra/net/mdns/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -684,26 +736,89 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/net/mmap_pipe.py
 %%PYTHON_SITELIBDIR%%/xpra/net/net_util.py
 %%PYTHON_SITELIBDIR%%/xpra/net/packet_encoding.py
-%%PYTHON_SITELIBDIR%%/xpra/net/protocol.py
-%%PYTHON_SITELIBDIR%%/xpra/net/protocol_classes.py
-%%PYTHON_SITELIBDIR%%/xpra/net/pycryptography_backend.py
-%%PYTHON_SITELIBDIR%%/xpra/net/qrcode.py
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/check%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/check%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/constants%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/constants%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/net/protocol/__pycache__/factory%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
*** 586 LINES SKIPPED ***



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