Update to 2.0

- libjpeg-turbo is used for better performance
- WEBP and XVID removed due to poor performance and instability
- Cython, OpenCL, and OpenCV scalers removed due to poor performance

Approved by:	swills (mentor)
Differential Revision:	https://reviews.freebsd.org/D10115
This commit is contained in:
Matthew Rezny 2017-03-29 16:37:28 +00:00
parent 3231e8f7b6
commit 13e199ef7d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=437210
9 changed files with 41 additions and 107 deletions

View file

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= xpra
PORTVERSION= 1.0.4
PORTVERSION= 2.0
CATEGORIES= x11
MASTER_SITES= http://xpra.org/src/
@ -14,14 +14,15 @@ LICENSE= GPLv2
BUILD_DEPENDS= cython:lang/cython \
${PYTHON_PKGNAMEPREFIX}gtk2>2:x11-toolkits/py-gtk2 \
${PYNUMPY}
LIB_DEPENDS= libfreetype.so:print/freetype2 \
LIB_DEPENDS= libturbojpeg.so:graphics/libjpeg-turbo \
libfreetype.so:print/freetype2 \
libfontconfig.so:x11-fonts/fontconfig
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lz4>=0.7.0_1:archivers/py-lz4 \
${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}pillow>=3.0: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 \
@ -42,7 +43,7 @@ USE_PYTHON= distutils
USE_XORG= x11 xcomposite xdamage xext xfixes xkbfile xrandr xtst
PLIST_SUB+= PORTVERSION=${PORTVERSION} PYTHON_VER=${PYTHON_VER}
OPTIONS_DEFINE= AVAHI AVCODEC CUPS FFMPEG GSTREAMER HTML5 LIBYUV OPENCL OPENCV SWSCALE VPX WEBCAM WEBP X264 X265 XVID
OPTIONS_DEFINE= AVAHI AVCODEC CUPS FFMPEG GSTREAMER HTML5 LIBYUV SWSCALE VPX WEBCAM X264 X265
OPTIONS_DEFAULT= AVAHI AVCODEC CUPS FFMPEG GSTREAMER HTML5 LIBYUV SWSCALE VPX X264
OPTIONS_SUB= yes
@ -51,16 +52,12 @@ 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)
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)
WEBP_DESC= Enable WebP codec (deprecated)
X264_DESC= Enable X264 encoder (good)
X264_DESC= Enable X264 encoder
X265_DESC= Enable X265 encoder (slow)
XVID_DESC= Enable Xvid encoder (unstable, deprecated)
AVAHI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi
AVAHI_VARS= XPRA_OPTIONS+=mdns
@ -75,30 +72,21 @@ 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_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_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= csc_libyuv csc_swscale
XPRA_OPTIONS_ALL+= dec_avcodec2 enc_ffmpeg enc_x264 enc_x265
XPRA_OPTIONS_ALL+= html5 mdns sound printing vpx webcam
XPRA_OPTIONS_ALL+= ${XPRA_OPTIONS_DISABLED}
XPRA_OPTIONS_DISABLED= Xdummy Xdummy_wrapper minify nvenc7
@ -123,20 +111,19 @@ PYDISTUTILS_CONFIGUREARGS+= ${PYDISTUTILS_ARGS}
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}|' \
@${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|' \
@${REINPLACE_CMD} -e 's|/usr/share|${LOCALBASE}/share|' \
${WRKSRC}/xpra/platform/pycups_printing.py
${REINPLACE_CMD} -e 's|/usr/sbin|${LOCALBASE}/sbin|' \
@${REINPLACE_CMD} -e 's|/usr/sbin|${LOCALBASE}/sbin|' \
${WRKSRC}/etc/xpra/conf.d/16_printing.conf.in
post-install:
${MV} ${STAGEDIR}${ETCDIR}/xorg.conf \
@${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' \
-exec ${STRIP_CMD} {} \;
@${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME} -name '*.so' \
-exec ${STRIP_CMD} {} +
.include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1489268981
SHA256 (xpra-1.0.4.tar.xz) = c841940957761e60454eac44c955d174b3d864c853f28b387e784a6d85fc9924
SIZE (xpra-1.0.4.tar.xz) = 1890404
TIMESTAMP = 1489775415
SHA256 (xpra-2.0.tar.xz) = ca9e9622a9d435f9591bf60baec50ea02ebad4e0c0017e1df43dfddd6616e807
SIZE (xpra-2.0.tar.xz) = 1925080

View file

@ -1,7 +1,7 @@
# 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.orig 2017-03-17 07:24:27 UTC
+++ scripts/xpra
@@ -1,5 +1,8 @@
#!/usr/bin/env python

View file

@ -1,7 +1,7 @@
# 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.orig 2017-03-17 07:24:27 UTC
+++ scripts/xpra_launcher
@@ -1,5 +1,8 @@
#!/usr/bin/env python

View file

@ -1,15 +1,6 @@
--- setup.py.orig 2017-02-06 09:47:42 UTC
--- setup.py.orig 2017-03-17 07:24:28 UTC
+++ setup.py
@@ -218,7 +218,7 @@ else:
nvenc7_ENABLED = DEFAULT and pkg_config_ok("--exists", "nvenc7")
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:
@@ -1839,12 +1839,12 @@ if WIN32:
@@ -1801,12 +1801,12 @@ if WIN32:
else:
#OSX and *nix:
scripts += ["scripts/xpra", "scripts/xpra_launcher"]
@ -24,7 +15,7 @@
add_data_files("share/appdata", ["xdg/xpra.appdata.xml"])
#here, we override build and install so we can
@@ -1877,7 +1877,7 @@ else:
@@ -1839,7 +1839,7 @@ else:
if printing_ENABLED and os.name=="posix":
#install "/usr/lib/cups/backend" with 0700 permissions:
xpraforwarder_src = os.path.join("cups", "xpraforwarder")
@ -33,17 +24,7 @@
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 pam_ENABLED:
@@ -1928,7 +1929,7 @@ else:
@@ -1891,7 +1891,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:
@ -52,15 +33,3 @@
#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))

View file

@ -1,7 +1,7 @@
# 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.orig 2017-03-17 07:24:27 UTC
+++ xpra/client/gtk_base/bug_report.py
@@ -43,7 +43,6 @@ class BugReport(object):
self.window.set_default_size(400, 300)

View file

@ -1,9 +1,9 @@
# 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.orig 2017-03-17 07:24:27 UTC
+++ xpra/client/gtk_base/client_launcher.py
@@ -146,7 +146,6 @@ class ApplicationWindow:
@@ -143,7 +143,6 @@ class ApplicationWindow:
self.window.set_default_size(400, 260)
self.window.set_border_width(20)
self.window.set_title("Xpra Launcher")

View file

@ -1,7 +1,7 @@
# 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.orig 2017-03-17 07:24:27 UTC
+++ xpra/client/gtk_base/start_new_command.py
@@ -45,7 +45,6 @@ class StartNewCommand(object):
self.window.set_default_size(400, 150)

View file

@ -23,6 +23,10 @@ bin/xpra_launcher
%%PYTHON_SITELIBDIR%%/xpra/__init__.py
%%PYTHON_SITELIBDIR%%/xpra/__init__.pyc
%%PYTHON_SITELIBDIR%%/xpra/__init__.%%PYTHON_PYOEXTENSION%%
%%PYTHON_SITELIBDIR%%/xpra/buffers/__init__.py
%%PYTHON_SITELIBDIR%%/xpra/buffers/__init__.pyc
%%PYTHON_SITELIBDIR%%/xpra/buffers/__init__.%%PYTHON_PYOEXTENSION%%
%%PYTHON_SITELIBDIR%%/xpra/buffers/membuf.so
%%PYTHON_SITELIBDIR%%/xpra/build_info.py
%%PYTHON_SITELIBDIR%%/xpra/build_info.pyc
%%PYTHON_SITELIBDIR%%/xpra/build_info.%%PYTHON_PYOEXTENSION%%
@ -192,29 +196,10 @@ bin/xpra_launcher
%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.py
%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.pyc
%%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__.%%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__.%%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.%%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.%%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__.%%PYTHON_PYOEXTENSION%%
@ -241,13 +226,14 @@ bin/xpra_launcher
%%X265%%%%PYTHON_SITELIBDIR%%/xpra/codecs/enc_x265/__init__.pyc
%%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.%%PYTHON_PYOEXTENSION%%
%%PYTHON_SITELIBDIR%%/xpra/codecs/jpeg/__init__.py
%%PYTHON_SITELIBDIR%%/xpra/codecs/jpeg/__init__.pyc
%%PYTHON_SITELIBDIR%%/xpra/codecs/jpeg/__init__.%%PYTHON_PYOEXTENSION%%
%%PYTHON_SITELIBDIR%%/xpra/codecs/jpeg/decoder.so
%%PYTHON_SITELIBDIR%%/xpra/codecs/jpeg/encoder.so
%%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%%
@ -272,11 +258,6 @@ bin/xpra_launcher
%%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__.%%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__.%%PYTHON_PYOEXTENSION%%
@ -418,9 +399,6 @@ bin/xpra_launcher
%%PYTHON_SITELIBDIR%%/xpra/net/protocol.py
%%PYTHON_SITELIBDIR%%/xpra/net/protocol.pyc
%%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%%