Dependencies

August 8, 2026 ยท View on GitHub

Most of these dependencies should be installed automatically when you install official packages.
Unless otherwise stated, the dependencies are all optional.

The tools required for building all of these projects are not listed here.
Typically, you will need: gcc or clang, gnu-make, libiconv, gettext, cmake, autoconf, automake, pkg-config or pkgconf, bison, flex, intltool, etc For building xpra itself and some of the python modules, you will also need Cython

Core Dependencies

Those are required by almost every component.

ProjectSource Download LinkPurposeClient or ServerNotes
glibhttps://ftp.gnome.org/pub/gnome/sources/glib/low-level librarybothRequired
gtkhttp://ftp.gnome.org/pub/gnome/sources/gtk+/UI ToolkitbothRequired (*)
PyGObjecthttps://pypi.org/project/PyGObject/#filesBindings for GObject based libraries such as GTK and GStreamerbothRequired (*)

(*) needed for running any kind of server, or GUI clients. It is not required for running text-only clients like xpra top or xpra info.

And some of their transitive dependencies:

ProjectSource Download LinkPurpose
gobject-introspectionhttps://gitlab.gnome.org/GNOME/gobject-introspection/-/releasesProvides bindings for Gtk, GLib, etc
librsvghttps://gitlab.gnome.org/GNOME/librsvg/-/releasessvg parsing
freetypehttps://freetype.org/download.htmlfont parsing
harfbuzzzhttps://github.com/harfbuzz/harfbuzz/releasestext shaping engine
icuhttps://github.com/unicode-org/icu/releasesunicode library
pixmanhttps://www.cairographics.org/releases/pixel manipulation
fribidihttps://github.com/fribidi/fribidi/releasesunicode bidirectional library
pangohttps://download.gnome.org/sources/pango/text layout and rendering
gdk-pixbufhttps://gitlab.gnome.org/GNOME/gdk-pixbuf/-/releasesimage library
libepoxyhttps://github.com/anholt/libepoxy/releasesOpenGL function pointer management
graphenehttps://github.com/ebassi/graphene/releasestypes for graphic libraries
libtiffhttps://download.osgeo.org/libtiff/Tag Image File Format
zlibhttps://www.zlib.net/Compression Library

Some of the transitive dependencies are listed separately below as they are direct dependencies of xpra itself. ie: lz4, libpng, etc..

Network Layer

See Network

ProjectSource Download LinkPurposeClient or ServerNotes
lz4https://github.com/lz4/lz4/releasespacket compressionbothStrongly recommended
aioquichttps://pypi.org/project/aioquic/low level network protocolbothquic
python-cryptographyhttps://pypi.python.org/pypi/cryptographyEncryptionboth
pyopensslhttps://pypi.org/project/pyOpenSSL/Encryptionboth
python-zeroconfhttps://pypi.org/project/zeroconf/Multicast DNS session publishing and browsingboth
python-netifaces-plushttps://pypi.org/project/netifaces-plus/Multicast DNS session publishingserver
dbus-pythonhttps://dbus.freedesktop.org/releases/dbus-python/desktop integration, server control interfacebothnot applicable to MS Windows or Mac OSX
opensslhttps://www.openssl.org/source/SSLboth
paramikohttps://pypi.org/project/paramiko/ssh integrationboth
sshpasshttps://sourceforge.net/projects/sshpass/files/sshpass/non-interactive SSH password authenticationusually client
brotlihttps://github.com/google/brotli/releasesHTML client compressionr15540
PySockshttps://github.com/Anorov/PySocks/releasesclientSOCKS proxy supporthttps://github.com/Xpra-org/xpra/issues/2105
Authentication

See authentication modules

ProjectSource Download LinkPurposeClient or ServerNotes
python-gssapihttps://pypi.org/project/gssapi/GSSAPIserver#1691
python-kerberoshttps://pypi.org/project/kerberos/Kerberosserver#1691
python-ldaphttps://pypi.org/project/python-ldap/LDAPserver#1691
python-ldap3https://pypi.org/project/ldap3/LDAP v3server#1691
pyu2fhttps://pypi.org/project/pyu2f/U2Fserver#1789
python-scramphttps://pypi.org/project/scramp/SCRAMclient + serveroptional SCRAM authentication
Python modules
ProjectSource Download LinkNotes
Cythonhttps://pypi.org/project/Cython/#filesbuild time: C extensions for Python
python-ipaddresshttps://pypi.org/project/ipaddress/#filesunspecified: r11859
python-idnahttps://pypi.org/project/idna/#filesunspecified: r11860
python-decoratorhttps://pypi.org/project/decorator/#filesrequired by gssapi: r18781
pyasn1https://pypi.org/project/pyasn1/#filesunspecified: r5829
asn1cryptohttps://pypi.org/project/asn1crypto/#filesrequired by python-cryptography: r17856
python-packaginghttps://pypi.org/project/packaging/#filesrequired by python-cryptography: r15310
pyparsinghttps://pypi.org/project/pyparsing/#filesrequired by python-cryptography: r15310
cffihttps://pypi.org/project/cffi/#filesrequired by python-cryptography: r11633
sixhttps://pypi.org/project/six/#filesrequired by python-cryptography: r11640
setuptoolshttps://pypi.org/project/setuptools/#filesunspecified: r5829
pycparserhttps://pypi.org/project/pycparser/#filesrequired by cffi: r11634
pynaclhttps://pypi.org/project/PyNaCl/#filescrypto library used by paramiko: r19967
bcrypthttps://pypi.org/project/bcrypt/#filescrypto library used by paramiko: r19965
pyopenglhttps://pypi.python.org/pypi/PyOpenGL#files and
https://pypi.python.org/pypi/PyOpenGL-accelerate#files
client OpenGL accelerated rendering
pycupshttps://pypi.org/project/pycups/#filesPrinting
Encodings

See picture encodings

ProjectSource Download LinkPurposeClient or Server
x264ftp://ftp.videolan.org/pub/x264/snapshots/h264 encodingserver
openh264https://github.com/cisco/openh264/releasesh264 encoding and decodingboth
vpxhttp://downloads.webmproject.org/releases/webm/index.htmlvp8 and vp9 codecsboth
webphttp://downloads.webmproject.org/releases/webp/index.htmlwebp codecboth
libpngftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/png encodingboth
libjpeg-turbohttps://sourceforge.net/projects/libjpeg-turbo/files/jpeg encodingboth
python-pillowhttps://pypi.python.org/pypi/Pillowpng,jpeg,webp encoding and decoding, format conversion - Requiredboth
libavifhttps://github.com/AOMediaCodec/libavif/releasesavif encoding and decodingboth
libyuvhttps://chromium.googlesource.com/libyuv/libyuv/Colourspace Conversionboth
pycudahttps://pypi.python.org/pypi/pycudaNVENCserver
cudahttps://developer.nvidia.com/cuda-toolkitNVENCserver
pyNVMLhttps://pypi.python.org/pypi/nvidia-ml-py/NVENCserver
Audio

See audio forwarding

ProjectSource Download LinkPurpose
gstreamerhttp://gstreamer.freedesktop.org/src/audio framework
Ogghttp://downloads.xiph.org/releases/ogg/ogg container format
opushttp://downloads.xiph.org/releases/opus/opus codec
Flachttp://downloads.xiph.org/releases/flac/flac codec
Vorbishttp://downloads.xiph.org/releases/vorbis/vorbis codec
wavpackhttp://www.wavpack.com/downloads.htmlwavpack codec
faachttps://github.com/knik0/faac/releasesaac encoder
faadhttps://github.com/knik0/faad2/releasesaac decoder
lamehttp://sourceforge.net/projects/lame/files/lame/MP3 encoder
TwoLamehttp://sourceforge.net/projects/twolame/files/twolame/MP3 encoder
MacOS Dependency Graphs

These graphs were generated using jhbuild dot on MacOS. The MacOS builds include very low level build dependencies.

Codecs

Codec Dependencies

Python3 Modules

Python 3 Modules

GTK3

GTK 3

Tools

Tools

MacOS Packaging Tools

GTK 3

MS Windows Dependency Graph

This graph was generated from the SBOM for a "Light" build of xpra for MS Windows using:

sbom2dot --input ./Xpra-Light-x86_64_6.4-r39169.json --output xpra.dot
dot -Gsize=40,50\! -Gdpi=144  -Tpng -o win32-deps.png xpra.dot

MS Windows Dependencies