Sisyphus repository
Last update: 19 june 2019 | SRPMs: 17691 | Visits: 14140810
en ru br
ALT Linux repos

Group :: Networking/Remote access
RPM: xpra

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

# TODO: python-uinput

Name: xpra
Version: 2.5.1
Release: alt1

Summary: X Persistent Remote Applications

Group: Networking/Remote access
License: GPLv2


# TODO: improve detection

BuildRequires(pre): rpm-build-ubt
%if %ubt_id == "M80P"
%def_with ffmpeg_static
%def_without ffmpeg_static

BuildRequires: gcc-c++ libXcomposite-devel libXdamage-devel libXrandr-devel libXtst-devel libxkbfile-devel libpam0-devel libsystemd-devel

# TODO use gtk3

BuildRequires: python-module-pygtk-devel python-module-pycairo-devel

# Video

BuildRequires: libvpx-devel libx264-devel libx265-devel libwebp-devel libjpeg-devel libpng-devel libyuv-devel python-module-yuicompressor

%if_with ffmpeg_static
BuildRequires: libffmpeg-devel-static
BuildRequires: libavformat-devel libavcodec-devel libswscale-devel

# Sound

BuildRequires: libogg-devel libopus-devel libflac-devel libspeex-devel libvorbis-devel libwavpack-devel liblame-devel libtwolame-devel libmad-devel

# GL

BuildRequires: python-module-pygtkglext python-module-OpenGL python-module-OpenGL_accelerate
Requires: python-module-pygtkglext python-module-OpenGL python-module-OpenGL_accelerate

BuildRequires: python-module-Pillow python-module-websockify

BuildRequires: xorg-server brotli

# See

BuildPreReq: python-module-Cython >= 0.20

AutoReq: yes, nomingw

%add_python_req_skip win32security pyopencl

BuildRequires(pre): rpm-build-gir rpm-build-intro rpm-macros-kde-common-devel

# Unity specific?

%add_typelib_req_skiplist typelib(AppIndicator) typelib(AppIndicator3) typelib(GtkosxApplication)


%add_typelib_req_skiplist typelib(GdkGLExt) typelib(GtkGLExt)

# Note: we have no linking requires to

Requires: libwebp

Requires: xorg-xvfb setxkbmap

Requires: python-module-pyinotify python-module-rencode python-module-lz4

Xpra is 'screen for X': it allows you to run X programs,
usually on a remote host, direct their display to your local machine,
and then to disconnect from these programs and reconnect
from the same or another machine, without losing any state.
It gives you remote access to individual applications.
Xpra is "rootless" or "seamless": programs you run under
it show up on your desktop as regular programs, managed by your regular window manager.
Sessions can be accessed over SSH, or password protected over plain TCP sockets.
Xpra is usable over reasonably slow links and does its best to adapt
to changing network bandwidth limits. (see also adaptive JPEG mode)
Xpra is open-source (GPLv2+), multi-platform and multi-language,
with current clients written in Python and Java.

On the machine which will export the application (xterm in this example):
> xpra start :100 --start-child=xterm

We can then attach to this session from the same machine, with:
> xpra attach :100

If connecting from a remote machine, you would use something like (or you can also use the GUI):
> xpra attach ssh:serverhostname:100

%__subst "s|-Werror|-Wall|g"

# fatal error: pygtk-2.0/pygtk/pygtk.h: No such file or directory

%__subst "s|pygtk-2.0/||g" xpra/x11/gtk2/gdk_display_source.pyx xpra/gtk_common/gtk2/gdk_bindings.pyx

# move systemd service to correct %_unitdir

%__subst "s|/bin/systemctl|NONONO|g"
%__subst "s|.*/etc/default/xpra.*||g" service/xpra

%if_with ffmpeg_static
export PKG_CONFIG_PATH=%_libdir/ffmpeg-static/%_lib/pkgconfig/

%python_build --without-mdns

%python_install --without-mdns
mkdir -p %buildroot/%_tmpfilesdir/
mv -f %buildroot/usr/lib/tmpfiles.d/xpra.conf %buildroot/%_tmpfilesdir/
mkdir -p %buildroot%_udevrulesdir/
mv -f %buildroot/usr/lib/udev/rules.d/71-xpra-virtual-pointer.rules %buildroot%_udevrulesdir/
install -m644 -D service/xpra.service %buildroot%_unitdir/%name.service


rm -f %buildroot/usr/lib/sysusers.d/xpra.conf

%_sbindir/groupadd -r -f xpra &>/dev/null ||:

%dir %_sysconfdir/%name/
%config(noreplace) %_sysconfdir/%name/*


Full changelog you can see here

design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin