From 626c6a6251857a0c2074fef2d82e16f3f7ef5d976d83a0e6506574fc7ca40c41 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Sun, 21 Mar 2021 07:41:07 +0000 Subject: [PATCH] Accepting request 880358 from home:alois:branches:X11:Utilities - Update to version 4.1.1 (fixes boo#1182526) * ensure splash screen failures are not fatal, fix threading bug * avoid vaapi crashing in ffmpeg encoder * `xpra top` fixes: + correctly show the version number + laggy input handling and screen updates + long subcommand timeout * fix connection errors with trailing slash in display name * workaround API breakage in newer versions of python-zeroconf * warn just once if expected GStreamer element properties are missing * map more applications to text mode ('code', 'jetbrains') version 4.1: * Overhauled container based build system * Splash screen * `run_scaled` utility script Client: * header bar option for window control menu * generate a qrcode to connect * show all keyboard shortcuts * progress bar for file transfers * GTK cairo backend support for more native bit depths * disable xpra's keyboard shortcuts from the system tray menu * automatically include the server log in bug reports OpenGL client backend: * render at fixed bit depths with the `pixel-depth` option * support more bit depths Clipboard: * MacOS support for images, more text formats, etc * MS Windows support for images * wayland clients Server: * faster server startup * `xpra list-windows` subcommand * new window control commands: move - resize * remote logging: from server to client * support window re-stacking `xpra top`: * show pids, shortcuts * more details in the list view * show speed and quality Display: * bumped maximum resolution beyond 8K * set the initial resolution more easily using the 'resize-display' option Encoding: * server side picture downscaling * libva hardware accelerated encoding * NVENC 30-bit accelerated encoding * vpx 30-bit * x264 30-bit * faster 30-bit RGB subsampling * scroll encoding now handled more generically * black and white mode Network: * IGD / UPNP * SO_KEEPALIVE option * clients can be queried using local sockets * specify connection attributes using the connection string * nested SSH tunnels * websocket header modules * specify the socket type with socket activation * expose the packet flush flag * `xpra shell` subcommand for interacting with processes in real time * custom group sockets directory permissions and name Testing: * better test coverage * cleanup output - Refresh xpra-paths.patch - Add xpra-html5 (now distributed separately) and uglify-js (required by the former) tarballs - Spec cleanup OBS-URL: https://build.opensuse.org/request/show/880358 OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/xpra?expand=0&rev=72 --- uglify-js-3.13.1.tgz | 3 ++ xpra-4.0.6.tar.xz | 3 -- xpra-4.1.1.tar.xz | 3 ++ xpra-html5-4.0.6.tar.xz | 3 ++ xpra-paths.patch | 46 ++++++++++++------------ xpra.changes | 78 +++++++++++++++++++++++++++++++++++++++++ xpra.spec | 70 ++++++++++++++++++++++-------------- 7 files changed, 153 insertions(+), 53 deletions(-) create mode 100644 uglify-js-3.13.1.tgz delete mode 100644 xpra-4.0.6.tar.xz create mode 100644 xpra-4.1.1.tar.xz create mode 100644 xpra-html5-4.0.6.tar.xz diff --git a/uglify-js-3.13.1.tgz b/uglify-js-3.13.1.tgz new file mode 100644 index 0000000..28732ab --- /dev/null +++ b/uglify-js-3.13.1.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ca5a8b1945335fa9c04f19261b5b484eaba98cd288a2e942fc9a4b1e17d87a5 +size 207535 diff --git a/xpra-4.0.6.tar.xz b/xpra-4.0.6.tar.xz deleted file mode 100644 index 8caab84..0000000 --- a/xpra-4.0.6.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c672f6d914661dda743be4b2f860dfb17166fb52c562037380aa972b4f089e8 -size 2797752 diff --git a/xpra-4.1.1.tar.xz b/xpra-4.1.1.tar.xz new file mode 100644 index 0000000..93340f8 --- /dev/null +++ b/xpra-4.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58dc9feefef5e149acad8bb8d3aef59b5f6b48d875265fba1f097f8d264d41db +size 2674236 diff --git a/xpra-html5-4.0.6.tar.xz b/xpra-html5-4.0.6.tar.xz new file mode 100644 index 0000000..bb32bbf --- /dev/null +++ b/xpra-html5-4.0.6.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6f0d24158ababe2a94fc9d31747af7d4d5f65eb9953bae1adb8c2caf2eb5a47 +size 1132024 diff --git a/xpra-paths.patch b/xpra-paths.patch index eb931ce..e1f1ddd 100644 --- a/xpra-paths.patch +++ b/xpra-paths.patch @@ -1,19 +1,19 @@ -Index: xpra-4.0.6/setup.py +Index: xpra-4.1/setup.py =================================================================== ---- xpra-4.0.6.orig/setup.py -+++ xpra-4.0.6/setup.py -@@ -1485,7 +1485,7 @@ else: - add_data_files("%s/man1" % man_path, ["man/xpra.1", "man/xpra_launcher.1"]) - add_data_files("share/applications", glob.glob("xdg/*.desktop")) - add_data_files("share/mime/packages", ["xdg/application-x-xpraconfig.xml"]) -- add_data_files("share/icons", ["xdg/xpra.png", "xdg/xpra-mdns.png", "xdg/xpra-shadow.png"]) -+ add_data_files("share/pixmaps", ["xdg/xpra.png", "xdg/xpra-mdns.png", "xdg/xpra-shadow.png"]) - add_data_files("share/metainfo", ["xdg/xpra.appdata.xml"]) +--- xpra-4.1.orig/setup.py ++++ xpra-4.1/setup.py +@@ -1531,7 +1531,7 @@ else: + add_data_files("%s/man1" % man_path, man_pages) + add_data_files("share/applications", glob.glob("fs/share/applications/*.desktop")) + add_data_files("share/mime/packages", ["fs/share/mime/packages/application-x-xpraconfig.xml"]) +- add_data_files("share/icons", glob.glob("fs/share/icons/*.png")) ++ add_data_files("share/pixmaps", glob.glob("fs/share/icons/*.png")) + add_data_files("share/metainfo", ["fs/share/metainfo/xpra.appdata.xml"]) #here, we override build and install so we can -@@ -1566,16 +1566,18 @@ else: +@@ -1617,16 +1617,18 @@ else: if pam_ENABLED: - copytodir("etc/pam.d/xpra", "/etc/pam.d") + copytodir("fs/etc/pam.d/xpra", "/etc/pam.d") - systemd_dir = "/lib/systemd/system" + systemd_dir = "__UNITDIR__" @@ -21,23 +21,23 @@ Index: xpra-4.0.6/setup.py #Linux init service: subs = {} 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__") +- copytodir("fs/etc/sysconfig/xpra", "/etc/sysconfig") ++ shutil.copy("fs/etc/sysconfig/xpra", "fs/etc/sysconfig/sysconfig.xpra") ++ os.chmod("fs/etc/sysconfig/sysconfig.xpra", 0o644) ++ copytodir("fs/etc/sysconfig/sysconfig.xpra", "__FILLUPDIR__") elif os.path.exists("/etc/default"): - copytodir("etc/sysconfig/xpra", "/etc/default") + copytodir("fs/etc/sysconfig/xpra", "/etc/default") subs[b"/etc/sysconfig"] = b"/etc/default" - if os.path.exists("/bin/systemctl"): + if os.path.exists("/usr/bin/systemctl"): if sd_listen_ENABLED: - copytodir("service/xpra.service", systemd_dir, + copytodir("fs/lib/systemd/system/xpra.service", systemd_dir, subs=subs) -@@ -1695,7 +1697,6 @@ if scripts_ENABLED: +@@ -1754,7 +1756,6 @@ if scripts_ENABLED: toggle_modules(WIN32, "xpra/scripts/win32_service") if data_ENABLED: -- add_data_files(share_xpra, ["README", "COPYING"]) - add_data_files(share_xpra, ["bell.wav"]) - add_data_files("%s/http-headers" % share_xpra, glob.glob("http-headers/*")) - add_data_files("%s/icons" % share_xpra, glob.glob("icons/*png")) +- add_data_files(share_xpra, ["README.md", "COPYING"]) + add_data_files(share_xpra, ["fs/share/xpra/bell.wav"]) + ICONS = glob.glob("fs/share/xpra/icons/*.png") + if OSX: diff --git a/xpra.changes b/xpra.changes index 9952e43..36b8664 100644 --- a/xpra.changes +++ b/xpra.changes @@ -1,3 +1,81 @@ +------------------------------------------------------------------- +Wed Mar 17 12:15:55 UTC 2021 - Luigi Baldoni + +- Update to version 4.1.1 (fixes boo#1182526) + * ensure splash screen failures are not fatal, fix threading + bug + * avoid vaapi crashing in ffmpeg encoder + * `xpra top` fixes: + + correctly show the version number + + laggy input handling and screen updates + + long subcommand timeout + * fix connection errors with trailing slash in display name + * workaround API breakage in newer versions of python-zeroconf + * warn just once if expected GStreamer element properties are + missing + * map more applications to text mode ('code', 'jetbrains') + version 4.1: + * Overhauled container based build system + * Splash screen + * `run_scaled` utility script + Client: + * header bar option for window control menu + * generate a qrcode to connect + * show all keyboard shortcuts + * progress bar for file transfers + * GTK cairo backend support for more native bit depths + * disable xpra's keyboard shortcuts from the system tray menu + * automatically include the server log in bug reports + OpenGL client backend: + * render at fixed bit depths with the `pixel-depth` option + * support more bit depths + Clipboard: + * MacOS support for images, more text formats, etc + * MS Windows support for images + * wayland clients + Server: + * faster server startup + * `xpra list-windows` subcommand + * new window control commands: move - resize + * remote logging: from server to client + * support window re-stacking + `xpra top`: + * show pids, shortcuts + * more details in the list view + * show speed and quality + Display: + * bumped maximum resolution beyond 8K + * set the initial resolution more easily using the + 'resize-display' option + Encoding: + * server side picture downscaling + * libva hardware accelerated encoding + * NVENC 30-bit accelerated encoding + * vpx 30-bit + * x264 30-bit + * faster 30-bit RGB subsampling + * scroll encoding now handled more generically + * black and white mode + Network: + * IGD / UPNP + * SO_KEEPALIVE option + * clients can be queried using local sockets + * specify connection attributes using the connection string + * nested SSH tunnels + * websocket header modules + * specify the socket type with socket activation + * expose the packet flush flag + * `xpra shell` subcommand for interacting with processes in + real time + * custom group sockets directory permissions and name + Testing: + * better test coverage + * cleanup output +- Refresh xpra-paths.patch +- Add xpra-html5 (now distributed separately) and uglify-js + (required by the former) tarballs +- Spec cleanup + ------------------------------------------------------------------- Thu Feb 25 11:51:55 UTC 2021 - Antonio Larrosa diff --git a/xpra.spec b/xpra.spec index c9a83e7..ac86dd2 100644 --- a/xpra.spec +++ b/xpra.spec @@ -17,15 +17,20 @@ # +%define xpra_ver 4.1.1 +%define html5_ver 4.0.6 +%define uglifyjs_ver 3.13.1 %global __requires_exclude ^typelib\\(GtkosxApplication\\)|typelib\\(GdkGLExt\\)|typelib\\(GtkGLExt\\).*$ Name: xpra -Version: 4.0.6 +Version: %{xpra_ver} Release: 0 Summary: Remote display server for applications and desktops -License: GPL-2.0-or-later AND BSD-3-Clause AND LGPL-3.0-or-later AND MIT +License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-3.0-or-later AND MIT URL: https://www.xpra.org/ Source0: https://xpra.org/src/%{name}-%{version}.tar.xz Source1: xpra-icon.png +Source2: https://xpra.org/src/%{name}-html5-%{html5_ver}.tar.xz +Source3: https://registry.npmjs.org/uglify-js/-/uglify-js-%{uglifyjs_ver}.tgz # PATCH-FIX-OPENSUSE xpra-paths.patch -- use suse-specific paths Patch0: %{name}-paths.patch BuildRequires: ImageMagick @@ -35,7 +40,10 @@ BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: fdupes BuildRequires: hicolor-icon-theme +# Needed by uglify-js +BuildRequires: nodejs-common BuildRequires: pam-devel +BuildRequires: pandoc BuildRequires: pkgconfig BuildRequires: python3-Cython >= 0.20.0 BuildRequires: python3-devel @@ -81,9 +89,9 @@ Requires: xorg-x11-xauth Requires(post): %fillup_prereq Recommends: python3-dnspython Recommends: python3-opencv -Recommends: python3-paramiko Recommends: python3-opengl Recommends: python3-opengl-accelerate +Recommends: python3-paramiko %{?systemd_ordering} %description @@ -99,8 +107,9 @@ Xpra is usable over reasonably slow links and does its best to adapt to changing network bandwidth constraints. %package html5 +Version: %{html5_ver} Summary: HTML5 server and client support for xpra -Requires: %{name} = %{version} +Requires: %{name} = %{xpra_ver} # websockify is required to allow xpra to listen for an html5 client Requires: python3-websockify Provides: bundled(js-aurora) @@ -118,20 +127,23 @@ This package adds websockify support to allow xpra to listen for http connections, and also the xpra html5 client. %prep -%autosetup -p1 - -%build +%setup -q -a 2 -a 3 +%autopatch -p1 # fix shebangs find -name '*.py' \ -exec sed -i '1{\@^#!/usr/bin/env python@d}' {} + -sed -i "1 s|^#!/usr/bin/env python\b|#!%__python3|" cups/xpraforwarder -sed -i "1 s|^#!/usr/bin/bash|#!/bin/bash|" scripts/xpra_udev_product_version -install -m0644 %{SOURCE1} -t xdg +install -m0644 %{SOURCE1} -T fs/share/icons/xpra.png # set fillup dir sed -e 's|__FILLUPDIR__|%{_fillupdir}|' \ -e 's|__UNITDIR__|%{_unitdir}|' \ + -e 's|share/doc/xpra|share/doc/packages/xpra|' \ -i setup.py +sed -i '/install_html5/s/verbose=False/verbose=True/' %{name}-html5-%{html5_ver}/setup_html5.py + +%build +python3 setup.py clean + python3 setup.py build \ --verbose \ --with-enc_ffmpeg \ @@ -142,7 +154,10 @@ python3 setup.py build \ --with-Xdummy \ --with-Xdummy_wrapper \ --with-opengl \ - --with-service + --with-service \ + --without-cuda_kernels \ + --without-nvenc \ + --without-nvfbc %install python3 setup.py install \ @@ -154,9 +169,11 @@ python3 setup.py install \ --with-Xdummy_wrapper \ --verbose -#Install nvenc.keys file -mkdir -p %{buildroot}%{_sysconfdir}/xpra -install -pm 644 etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra +pushd %{name}-html5-%{html5_ver} +PATH=$PATH:../package/bin python3 setup_html5.py %{buildroot}%{_datadir}/%{name}/www +popd + +rm -rf %{buildroot}%{_datadir}/xpra/cuda %suse_update_desktop_file -r xpra Network RemoteAccess %suse_update_desktop_file -r xpra-gui Network RemoteAccess @@ -184,23 +201,27 @@ mkdir -p %{_rundir}/%{name} || exit 1 %service_del_postun %{name}.service %files -%doc README NEWS +%doc docs/README.md docs/CHANGELOG.md +%doc %{_defaultdocdir}/xpra %license COPYING %dir %{_datadir}/xpra -%dir %{_datadir}/xpra/content-categories -%dir %{_datadir}/xpra/content-type -%dir %{_datadir}/xpra/http-headers %dir %{_prefix}/lib/xpra %dir %{_sysconfdir}/pam.d %dir %{_sysconfdir}/xpra %dir %{_sysconfdir}/xpra/conf.d +%dir %{_sysconfdir}/xpra/content-categories +%dir %{_sysconfdir}/xpra/content-type +%dir %{_sysconfdir}/xpra/http-headers %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}/xpra/content-categories/*.conf +%config(noreplace) %{_sysconfdir}/xpra/content-type/*.conf +%config(noreplace) %{_sysconfdir}/xpra/http-headers/*.txt %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/90-xpra-virtual.conf %{_fillupdir}/sysconfig.%{name} +%{_bindir}/run_scaled %{_bindir}/xpra %{_bindir}/xpra_Xdummy %{_bindir}/xpra_launcher @@ -213,7 +234,7 @@ mkdir -p %{_rundir}/%{name} || exit 1 %{_prefix}/lib/xpra/xdg-open %{_sbindir}/rc%{name} %{python3_sitearch}/xpra -%{python3_sitearch}/%{name}-%{version}-py%{python3_version}.egg-info +%{python3_sitearch}/%{name}-%{xpra_ver}-py%{python3_version}.egg-info %{_datadir}/applications/xpra-gui.desktop %{_datadir}/applications/xpra-launcher.desktop %{_datadir}/applications/xpra-shadow.desktop @@ -224,15 +245,10 @@ mkdir -p %{_rundir}/%{name} || exit 1 %{_datadir}/pixmaps/xpra.png %{_datadir}/mime/packages/application-x-xpraconfig.xml %{_datadir}/xpra/bell.wav -%{_datadir}/xpra/content-categories/10_default.conf -%{_datadir}/xpra/content-type/10_role.conf -%{_datadir}/xpra/content-type/30_title.conf -%{_datadir}/xpra/content-type/50_class.conf -%{_datadir}/xpra/content-type/70_commands.conf -%{_datadir}/xpra/http-headers/00_nocache.txt -%{_datadir}/xpra/http-headers/10_content_security_policy.txt +%{_datadir}/xpra/css %{_datadir}/xpra/icons %{_prefix}/lib/cups/backend/xpraforwarder +%{_mandir}/man1/run_scaled.1%{?ext_man} %{_mandir}/man1/xpra.1%{?ext_man} %{_mandir}/man1/xpra_launcher.1%{?ext_man} %{_sysusersdir}/xpra.conf