SHA256
1
0
forked from pool/xpra
xpra/xpra.spec

303 lines
8.9 KiB
RPMSpec
Raw Normal View History

Accepting request 625687 from home:alois:branches:X11:Utilities - re-added xdummy args as auto detection wasn't enabling it - reverted to python 2 for server support - removed python 3 specific patch (cairo) - switched to python3 - added webp support - cleanup spec file of default build options - now builds on Leap >= 42 - patched broken py3cairo detection - Removed ffmpeg for <= Leap 15 (requires libav >= 58.18) - Removed vpx for < Leap 15 (that leaves Leap 42.x with avcodec2 and webp) - Update to version 2.3.2 * fix notification actions support with shadow servers * fix paint errors with reformatted images using outdated stride value * fix control commands that call window refresh * fix broken pipe error when the browser cancels downloading the noicon placeholder * fix spurious refresh events * fix missing bug report data due to path errors * fix XAUTHORITY environment variable getting clobbered * fix html5 window refresh not throttled when the document is not visible * fix non-opengl painting of windows with a padding area * fix rgb paint of mmap data with the python2 cairo backend * fix invalid clipboard toggle requests not ignored * fix missing context handler for keymap setup (crash possible) * fix proxy server test to use a signal to stop the test instance * fix invalid exception value in X11 atom bindings * fix bandwidth limit client bypass and connection errors * fix building CUDA kernels with GCC 8.1 * fix tray menu setup error when the clipboard is disabled * fix GTK3 buffer overflow with non-opengl backend * fix startup errors with pulseaudio if XDG_RUNTIME_DIR is missing * fix clipboard token send error when there are no targets * don't overwrite the dynamic system tray icon with the default one on startup * correctly disable desktop-scaling when mmap is enabled * skip repainting pointer overlay when the position is unchanged * prevent authenticated users from shutting down proxy servers * don't turn off notifications when we don't have a forwarder instance * don't try to log an exception that does not exist * allow the user to disable all video encoders and csc modules * send missing exception details to server with remote-logging * avoid RFB errors if screen capture fails * avoid further errors when shadow capture fails * recommend the dbus-x11 with the DEB package version 2.3.1: * fix CentOS / RHEL rpm dependencies for ldap authentication * fix spurious notifications warning * fix unsynced X11 context access to DPI (potential crash or warnings) * fix compilation warning in ffmpeg compatibility shim * fix filename extension check in launcher * fix h264 decoding in html5 client * fix menu stacking level in html5 client * fix focus issues with html5 client * fix socket error race condition during shutdown * fix scroll encoding errors on images with modified rowstride * fix desktop and shadow servers xinerama sizing issues * fix pixel encoding errors at low pixel depths * fix pixel-depth 8 wrongly rejected for start-desktop mode * fix colour encoding at pixel-depth 8 * fix systemd warnings and packaging on Ubuntu 16.04 * fix html5 client errors with audio debugging enabled * fix readonly mode bypass * fix client failure on servers without a valid desktop size * fix VNC connection handling of authentication * fix scary X11 desktop server warning with VNC clients * fix error in video debug logging * fix nvfbc errors during cleanup after initialization failures * fix client launcher not exiting on close * fix RFB clients causing sessions to be locked * fix rare deadlocks in exception handler * fix MacOS deprecation warnings * fix screen capture test script * fix CUDA DLL packaging * fix named-pipe errors with MS Windows Python3 and 64-bit builds * fix MinGW path detection issues * fix potential mmap leak with Python3 builds * fix screen update errors when XShm is disabled * silence GCC warnings when compiling NvFBC on MS Windows * increase default bandwidth congestion tolerance * remove duplicated DLLs from MS Windows Python3 builds * allow debugging via environment variables for all categories * don't prompt for the ssh password if we already have it * honour CFLAGS and LDFLAGS env vars * remove duplicated encoding from vpx encoder * add workaround for distributions shipping unpatched distutils * increase unit test failure timeout version 2.3: * stackable authentication modules * tcp wrappers authentication module * gss, kerberos, ldap and u2f authentication modules * request access to the session * pulseaudio server per session to prevent audio leaking * better network bandwidth utilization and congestion management * faster encoding and decoding: YUV for webp and jpeg, encoder hints, better vsync * notifications actions forwarding, custom icons, expose warnings * upload notification and management * shadow servers multi window mode * tighter client OS integratioin * client window positioning and multi-screen support * unique application icon used as tray icon * multi stop or attach * control start commands * forward signals sent to windows client side * forward requests to open URLs or files on the server side * html5 client improvements: top bar, debugging, etc * custom http headers, support content security policy * python3 port improvements * bug fixes: settings synchronization, macos keyboard mapping, etc * packaging: switch back to ffmpeg system libraries, support GTK3 on macos * structural improvements: refactoring, fewer synchronized X11 calls, etc version 2.2: * support RFB clients (ie: VNC) with bind-rfb or rfb-upgrade options * UDP transport (experimental) with bind-udp and udp://host:port URLs * TCP sockets can be upgrade to Websockets and / or SSL, RFB * multiple bind options for all socket types supported: tcp, ssl, ws, wss, udp, rfb * bandwidth-limit option, support for very low bandwidth connections * detect network performance characteristics * "xpra sessions" browser tool for both mDNS and local sessions * support arbitrary resolutions with Xvfb (not with Xdummy yet) * new OpenGL backends, with support for GTK3 on most platforms and window transparency on MS Windows * optimized webp encoding, supported in HTML5 client * uinput virtual pointer device for supporting fine grained scrolling * connection strings now support the standard URI format protocol://host:port/ * rencode is now used by default for the initial packet * skip sending audio packets when inactive * improved support for non-us keyboard layouts with non-X11 clients * better modifier key support on Mac OS * clipboard support with GTK3 * displayfd command line option * cosmetic system tray menu layout changes * dbus service for the system wide proxy server (stub) * move mmap file to $XDG_RUNTIME_DIR (where applicable) * password prompt dialog in client * fixed memory leaks - Refreshed xpra-paths.patch - Switched to ffmpeg4 - Update to version 2.1.3 (see NEWS) - Refreshed xpra-paths.patch - Update to version 2.1 (see NEWS) - Use pkgconfig for ffmpeg BuildRequires - avoid republish after rebuild of unchanged sources - update to 0.9.4 - initial version (0.2.0) OBS-URL: https://build.opensuse.org/request/show/625687 OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/xpra?expand=0&rev=1
2018-07-27 15:36:33 +02:00
#
# spec file for package xpra
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2012-2013 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
Name: xpra
Version: 2.3.2
Release: 0
Summary: Remote display server for applications and desktops
License: GPL-2.0+ AND BSD-3-Clause AND LGPL-3.0+ AND MIT
URL: https://www.xpra.org/
Group: Productivity/Networking/Other
Source0: https://xpra.org/src/%{name}-%{version}.tar.xz
Source1: xpra-icon.png
Source99: xpra-rpmlintrc
# PATCH-FIX-OPENSUSE xpra-paths.patch -- use suse-specific paths
Patch0: %{name}-paths.patch
BuildRequires: python-rpm-macros
BuildRequires: python-Cython >= 0.20.0
BuildRequires: python2-devel
BuildRequires: python-gobject-devel
BuildRequires: ImageMagick
BuildRequires: cups
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: systemd
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libavcodec) >= 57
BuildRequires: pkgconfig(libavformat) >= 57
BuildRequires: pkgconfig(libswscale) >= 4
BuildRequires: pkgconfig(pycairo)
BuildRequires: pkgconfig(pygtk-2.0)
#Leap 15 and tumbleweed
%if 0%{?suse_version} > 1500 || ( 0%{?sle_version} == 150000 && 0%{?is_opensuse} )
BuildRequires: pkgconfig(vpx) >= 1.4.0
%endif
BuildRequires: pkgconfig(libwebp) >= 0.4
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xtst)
Requires: python2-Pillow
Requires: python2-pycups
Requires: python2-gst
Requires: python2-lz4
Requires: python2-opengl
Requires: python2-rencode
Requires: python2-numpy
Requires: dbus-1-python
Requires: dbus-1-x11
Requires: gstreamer-plugins-base
Requires: gstreamer-plugins-good
Requires: pulseaudio
Requires: pulseaudio-utils
Requires: shared-mime-info
Requires: xf86-video-dummy
Requires: xorg-x11-xauth
Requires(post): %fillup_prereq
%{?systemd_requires}
Recommends: python2-opencv
%description
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 constraints.
%package html5
Summary: HTML5 server and client support for xpra
Group: Productivity/Networking/Other
Requires: %{name} = %{version}
# websockify is required to allow xpra to listen for an html5 client
Requires: python2-websockify
Provides: bundled(js-jquery) = 3.1.1
Provides: bundled(js-jquery-ui) = 1.12.1
Provides: bundled(js-lz4)
Provides: bundled(js-zlib)
Provides: bundled(js-forge)
Provides: bundled(js-aurora)
Provides: bundled(js-broadway)
Provides: bundled(js-bencode)
%description html5
This package adds websockify support to allow xpra to listen for http
connections, and also the xpra html5 client.
%prep
%setup -q
%patch0 -p1
# fix shebangs
find -name '*.py' \
-exec sed -i '1{\@^#!/usr/bin/env python@d}' {} \;
sed -i "1 s|^#!/usr/bin/env python\b|#!%__python2|" cups/xpraforwarder
# fix python-bytecode-inconsistent-mtime warning
find . -name '*.py' -exec touch -mat 1707141200 {} \;
install -m0644 %{SOURCE1} -t xdg
# set fillup dir
sed -i 's|__FILLUPDIR__|%{_fillupdir}|' setup.py
# fix shebang
sed -i 's|^#!.*|#!%{__python2}|' scripts/auth_dialog scripts/xdg-open
#Tumbleweed (%if 0%{?suse_version} > 1500)
%if 0%{?suse_version} > 1500
%build
%python2_build \
--verbose \
--with-enc_ffmpeg \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-vpx \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-opengl
%install
%python2_install \
--skip-build \
--verbose \
--with-enc_ffmpeg \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-vpx \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-opengl
%else
# Leap 15.x
%if 0%{?sle_version} == 150000 && 0%{?is_opensuse}
%build
%python2_build \
--verbose \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-vpx \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-enc_ffmpeg \
--without-opengl
%install
%python2_install \
--skip-build \
--verbose \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-vpx \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-enc_ffmpeg \
--without-opengl
#everything else
%else
%build
%python2_build \
--verbose \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-vpx \
--without-enc_ffmpeg \
--without-opengl
%install
%python2_install \
--skip-build \
--verbose \
--with-dec_avcodec2 \
--with-csc_swscale \
--with-webp \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-vpx \
--without-enc_ffmpeg \
--without-opengl
%endif
%endif
#Install nvenc.keys file
mkdir -p %{buildroot}%{_sysconfdir}/xpra
install -pm 644 etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra
# Ensure all .js files are not executable
find %{buildroot}%{_datadir}/xpra/www/js -name '*.js' \
-exec chmod 0644 {} \;
%suse_update_desktop_file -r xpra Network RemoteAccess
%suse_update_desktop_file -r xpra-browser Network RemoteAccess
%suse_update_desktop_file -r xpra-launcher Network RemoteAccess
mkdir -pv %{buildroot}%{_sbindir}
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
%fdupes -s %{buildroot}
%pre
getent group xpra >/dev/null || groupadd -r xpra
mkdir -p %{_rundir}/%{name} || exit 1
%service_add_pre %{name}.service
%post
%service_add_post %{name}.service
%fillup_only %{name}
%tmpfiles_create %{_tmpfilesdir}/xpra.conf
%preun
%service_del_preun %{name}.service
%postun
%service_del_postun %{name}.service
%files
%doc README NEWS
%license COPYING
%dir %{_datadir}/xpra
%dir %{_datadir}/xpra/http-headers
%dir %{_libexecdir}/xpra
%dir %{_sysconfdir}/pam.d
%dir %{_sysconfdir}/xpra
%dir %{_sysconfdir}/xpra/conf.d
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/xpra.conf
%config(noreplace) %{_sysconfdir}/pam.d/xpra
%config(noreplace) %{_sysconfdir}/xpra/*.conf
%config(noreplace) %{_sysconfdir}/xpra/nvenc.keys
%config(noreplace) %{_sysconfdir}/xpra/conf.d/*.conf
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/90-xpra-virtual.conf
%{_fillupdir}/sysconfig.%{name}
%{_bindir}/xpra
%{_bindir}/xpra_Xdummy
%{_bindir}/xpra_browser
%{_bindir}/xpra_launcher
%{_bindir}/xpra_signal_listener
%{_bindir}/xpra_udev_product_version
%{_libexecdir}/udev/rules.d/71-xpra-virtual-pointer.rules
%{_libexecdir}/xpra/auth_dialog
%{_libexecdir}/xpra/gnome-open
%{_libexecdir}/xpra/gvfs-open
%{_libexecdir}/xpra/xdg-open
%{_sbindir}/rc%{name}
%{python_sitearch}/xpra
%{python_sitearch}/%{name}-%{version}-py%{python_version}.egg-info
%{_datadir}/appdata/xpra.appdata.xml
%{_datadir}/applications/xpra-browser.desktop
%{_datadir}/applications/xpra-launcher.desktop
%{_datadir}/applications/xpra.desktop
%{_datadir}/pixmaps/xpra-mdns.png
%{_datadir}/pixmaps/xpra.png
%{_datadir}/mime/packages/application-x-xpraconfig.xml
%{_datadir}/xpra/bell.wav
%{_datadir}/xpra/http-headers/00_nocache.txt
%{_datadir}/xpra/http-headers/10_content_security_policy.txt
%{_datadir}/xpra/icons
%{_libexecdir}/cups/backend/xpraforwarder
%{_mandir}/man1/xpra.1%{ext_man}
%{_mandir}/man1/xpra_browser.1%{ext_man}
%{_mandir}/man1/xpra_launcher.1%{ext_man}
%{_sysusersdir}/xpra.conf
%{_tmpfilesdir}/xpra.conf
%{_unitdir}/xpra.service
%ghost %dir %{_rundir}/xpra
%files html5
%{_datadir}/xpra/www
%changelog