From 0cf0988194caa7ccd5d42d3ae066ab2de890abedcf79a412edff2f960c15ad08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20S=C3=BAkup?= Date: Fri, 27 Jul 2018 13:36:33 +0000 Subject: [PATCH] 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 --- .gitattributes | 23 ++++ .gitignore | 1 + xpra-2.3.2.tar.xz | 3 + xpra-icon.png | 3 + xpra-paths.patch | 37 ++++++ xpra-rpmlintrc | 3 + xpra.changes | 203 +++++++++++++++++++++++++++++++ xpra.spec | 302 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 575 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 xpra-2.3.2.tar.xz create mode 100644 xpra-icon.png create mode 100644 xpra-paths.patch create mode 100644 xpra-rpmlintrc create mode 100644 xpra.changes create mode 100644 xpra.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/xpra-2.3.2.tar.xz b/xpra-2.3.2.tar.xz new file mode 100644 index 0000000..b477a1e --- /dev/null +++ b/xpra-2.3.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26da705a555f58b0e20b07333faaae824bbb66590dd50b95628ab7413ab5970b +size 2307288 diff --git a/xpra-icon.png b/xpra-icon.png new file mode 100644 index 0000000..a1fe6ae --- /dev/null +++ b/xpra-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf34fcb7d93fbcfbef3c2e2c5a250ca140d3c7e13340bd12f29046792d34b83 +size 25852 diff --git a/xpra-paths.patch b/xpra-paths.patch new file mode 100644 index 0000000..fad3e90 --- /dev/null +++ b/xpra-paths.patch @@ -0,0 +1,37 @@ +Index: xpra-2.3.2/setup.py +=================================================================== +--- xpra-2.3.2.orig/setup.py ++++ xpra-2.3.2/setup.py +@@ -1500,11 +1500,10 @@ else: + if OPENBSD: + man_path = "man" + add_data_files("%s/man1" % man_path, ["man/xpra.1", "man/xpra_launcher.1", "man/xpra_browser.1"]) +- add_data_files("share/xpra", ["README", "COPYING"]) + add_data_files("share/xpra/icons", glob.glob("icons/*")) + add_data_files("share/applications", ["xdg/xpra-launcher.desktop", "xdg/xpra-browser.desktop", "xdg/xpra.desktop"]) + add_data_files("share/mime/packages", ["xdg/application-x-xpraconfig.xml"]) +- add_data_files("share/icons", ["xdg/xpra.png", "xdg/xpra-mdns.png"]) ++ add_data_files("share/pixmaps", ["xdg/xpra.png", "xdg/xpra-mdns.png"]) + add_data_files("share/appdata", ["xdg/xpra.appdata.xml"]) + add_data_files('share/xpra/', ["bell.wav"]) + add_data_files('share/xpra/http-headers', glob.glob("http-headers/*")) +@@ -1579,7 +1578,7 @@ else: + if pam_ENABLED: + copytodir("etc/pam.d/xpra", "/etc/pam.d") + +- systemd_dir = "/lib/systemd/system" ++ systemd_dir = "/usr/lib/systemd/system" + if service_ENABLED: + #Linux init service: + if os.path.exists("/bin/systemctl"): +@@ -1590,7 +1589,9 @@ else: + else: + copytodir("service/xpra", "/etc/init.d") + if os.path.exists("/etc/sysconfig"): +- copytodir("etc/sysconfig/xpra", "/etc/sysconfig") ++ shutil.copy("etc/sysconfig/xpra", "etc/sysconfig/sysconfig.xpra") ++ os.chmod("etc/sysconfig/sysconfig.xpra", 0o644) ++ copytodir("etc/sysconfig/sysconfig.xpra", "__FILLUPDIR__") + elif os.path.exists("/etc/default"): + copytodir("etc/sysconfig/xpra", "/etc/default") + if sd_listen_ENABLED: diff --git a/xpra-rpmlintrc b/xpra-rpmlintrc new file mode 100644 index 0000000..cbaac7f --- /dev/null +++ b/xpra-rpmlintrc @@ -0,0 +1,3 @@ +# it cannot be submitted in this state, see what to do about it +setBadness('suse-dbus-unauthorized-service', 0) + diff --git a/xpra.changes b/xpra.changes new file mode 100644 index 0000000..783f26e --- /dev/null +++ b/xpra.changes @@ -0,0 +1,203 @@ +------------------------------------------------------------------- +Wed Jul 18 21:19:14 UTC 2018 - jon@moozaad.co.uk + +- re-added xdummy args as auto detection wasn't enabling it +- reverted to python 2 for server support +- removed python 3 specific patch (cairo) + +------------------------------------------------------------------- +Wed Jul 18 20:46:54 UTC 2018 - jon@moozaad.co.uk + +- 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) + +------------------------------------------------------------------- +Wed Jul 18 12:43:00 UTC 2018 - aloisio@gmx.com + +- 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 + +------------------------------------------------------------------- +Fri Nov 10 15:57:50 UTC 2017 - aloisio@gmx.com + +- Update to version 2.1.3 (see NEWS) +- Refreshed xpra-paths.patch + +------------------------------------------------------------------- +Wed Jul 26 06:17:03 UTC 2017 - aloisio@gmx.com + +- Update to version 2.1 (see NEWS) + +------------------------------------------------------------------- +Tue Sep 22 08:47:31 UTC 2015 - olaf@aepfle.de + +- Use pkgconfig for ffmpeg BuildRequires + +------------------------------------------------------------------- +Wed Nov 12 10:22:11 UTC 2014 - olaf@aepfle.de + +- avoid republish after rebuild of unchanged sources + +------------------------------------------------------------------- +Thu May 30 10:05:09 UTC 2013 - pascal.bleser@opensuse.org + +- update to 0.9.4 + +------------------------------------------------------------------- +Tue Apr 24 17:16:39 CET 2012 - pascal.bleser@opensuse.org + +- initial version (0.2.0) + diff --git a/xpra.spec b/xpra.spec new file mode 100644 index 0000000..93f9307 --- /dev/null +++ b/xpra.spec @@ -0,0 +1,302 @@ +# +# spec file for package xpra +# +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2012-2013 Pascal Bleser +# +# 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