Building Xpra

August 7, 2026 · View on GitHub

Build Xpra from source when you need a development checkout, a custom installation, or packages for a platform not covered by the usual downloads. Start with the platform guide, then install dependencies before running the build commands.

Platform guides

Choose the instructions that match the system where you will build Xpra.

Fedora, CentOS, and RHEL

Build RPM packages and install the dependencies for Red Hat-based systems.

Debian and Ubuntu

Build Debian packages or install Xpra from source on Debian-based systems.

Microsoft Windows

Set up the Windows build environment and produce the Windows installer.

macOS

Build the macOS application bundle and its platform dependencies.

Other platforms

See the general instructions for platforms not covered by the dedicated guides.

Download the source

Use one of the following locations, depending on whether you need the current development tree or a released source archive.

GitHub

The main repository contains the current Xpra source. The HTML5 client lives in its own repository:

Release archives

Download released source packages from PyPI or xpra.org. See source metrics for more information about the codebase.

Build from a checkout

Install the required dependencies first, then clone and install Xpra:

Source installation

git clone https://github.com/Xpra-org/xpra
cd xpra
python3 ./setup.py install --prefix=/usr --single-version-externally-managed --root=/
cp fs/bin/xpra* fs/bin/run_scaled /usr/bin/

Build caveats

Keep source and binary installations separate, and make sure the Python version matches the branch you are building.

Do not mix installation methods

Do not mix a source installation with binary packages. Remove one installation completely before installing the other.

Python versions

Current Xpra versions require Python 3. For Python 2, use the 3.x LTS branch; see the supported versions.

Why copy the scripts?

The final step installs Xpra’s own scripts, replacing the unusable scripts that setuptools may otherwise mangle.