xpra icon
Bug tracker and wiki

Version 22 (modified by Antoine Martin, 6 years ago) (diff)

--

Building

Platform specific index:

General Information

For running the *nix server, you will need Xvfb or Xdummy (if available for your platform), xauth, keyboard utilities and xauth.

Switches

There are a number of build switches, which you can see with:

./setup.py --help


Many of those switches are related to picture encodings. On some platforms with older versions of libraries, it is possible, preferable and often mandatory to build static versions of the codecs. (see "--with-static*" flags)

Patching

There are a number of patches in the source tree that may need to be applied to build on some platforms to deal with library or tools compatibility.

In particular, many Debian versions require the "old-libav*" patches. Hopefully they will revisit their decision to ship the libav fork instead of ffmpeg proper.




[[Image(...)]] Building with distutils

For installing into a local ./install directory as a normal user, simply run:

./setup.py install --home=./install

You then have to add the local installation directory to your PYTHONPATH whenever you want to use xpra:

PYTHONPATH=./install/lib*/python xpra ...

To install globally for all users via sudo:

rm -rf build install
sudo ./setup.py install

[[Image(...)]] Uninstall

setuptools/distutils do not provide any uninstallation mechanism, this has nothing to do with Xpra. That said, it is generally enough to remove (but you must ensure that these are the correct files as you may damage your system otherwise!):

/usr/bin/xpra
/usr/lib*/python*/*-packages/xpra*
/usr/share/xpra

[[Image(...)]] Fedora and [[Image(...)]] CentOS / RHEL

For building you will need to install:

yum install gcc python-devel libXtst-devel libXdamage-devel \
	  	gtk2-devel pygtk2-devel pygobject2-devel

Fedora and RHEL7/CentOS7 users can install Cython via yum:

yum install Cython

Otherwise, you will need to download and build from source (which is trivial), use EPEL ("Extra Packages for Enterprise Linux") or rely on third party packages.

yum install xorg-x11-server-Xorg xorg-x11-drv-dummy xorg-x11-xauth xorg-x11-xkb-utils

For x264 support, Fedora users should install the rpmfusion repository then:

yum install ffmpeg-devel x264-devel libvpx-devel

(building x264/vpx on CentOS is out of scope) At runtime, to get optimal support for PNG, JPEG and WEBP, install:

yum install python-imaging libwebp-devel

For OpenGL support add:

yum install PyOpenGL libglpng gtkglarea2

And to run the automated tests with some OpenGL examples:

yum install opengl-games-utils xscreensaver-gl-extras

[[Image(...)]] Debian and [[Image(...)]] Ubuntu

For building you will need to install:

apt-get install libx11-dev libxtst-dev libxcomposite-dev libxdamage-dev \
	  	python-all-dev python-gobject-dev python-gtk2-dev cython

If you encounter "errors on char [32] keys_return .. Expected ')'", then your version of Cython is probably too old, either upgrade it (from backports) or build it from source.

apt-get install xvfb xauth x11-xkb-utils

For x264 and vpx support, you should install:

apt-get install libx264-dev libvpx-dev libswscale-dev libavcodec-dev

Notes:

  • some, generally older, distributions may not have all the development libraries available.
  • Many distributions ship incomplete libvpx-dev packages that are missing the crucial vpx.pc package config file, you may want to download this copy and place it in your package config directory - at your own risk. (generally /usr/lib/pkgconfig/ or /usr/lib64/pkgconfig/)

[[Image(...)]] openSUSE

These instructions may not be up to date: For building you will need to install:

zypper install gcc python-cython python-devel \
		gtk2-devel python-gtk-devel python-gobject2-devel
yum install xorg-x11-server-extra xorg-x11-xauth xkeyboard-config

[[Image(...)]] Gentoo

You can find up-to-date ebuilds http://xpra.org/dists/gentoo

[[Image(...)]] Arch Linux

  • Package build for stable versions can be found here
  • The bleeding edge svn build is here

[[Image(...)]] Microsoft Windows

Please follow these instructions to build all the required dependencies (and trim the parts that are only relevant to winswitch)

Then you can find the MS Windows specific build scripts here

[[Image(...)]] Mac OS X

Please follow these instructions to build all the required dependencies (and trim the parts that are only relevant to winswitch)

For clipboard support (client to server), you will also need to install PyObjC in the jhbuild shell (manual installation recommended)

Then you can find the OSX specific build scripts here

If you want to build the Qt4 client for OSX, see wiki/Building/OSX-Qt4

[[Image(...)]] OpenBSD

Install the following packages (ie: pkg_add them):

pkg_add py-gtk2 py-Pillow

You may need to install cython from source if the version in the repository is too old.

For video encoding support install:

pkg_add x264 libvpx ffmpeg

At runtime, you may also want to have installed:

pkg_add libwebp

[[Image(...)]] FreeBSD

These instructions are incomplete - feel free to update them''

You may need to install cython from source if the version in the repository is too old.

Video support may not work at present due to incompatibilities with the versions of libav/ffmpeg.

The Xvfb tool can be found in the package: xorg-vfbserver