From 7c57f6a49641fe5f8bb3b4a154625f640727ec02 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 16:14:48 +0000 Subject: [PATCH 01/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 3505b50839397d0310f7129057fefe698fee14fb Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 22 Jan 2025 19:47:41 +0100 Subject: [PATCH 02/42] Fix GCC15 builds --- xpra.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xpra.spec b/xpra.spec index 89c4b46..23a1b17 100644 --- a/xpra.spec +++ b/xpra.spec @@ -196,6 +196,7 @@ sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %build %set_build_flags +export CFLAGS="%{optflags} -I%{_includedir}/security" %py3_build -- \ --without-nvidia --without-pandoc_lua \ --with-verbose \ From d67327a2cfe3de615ebb91a2c766cb8630e392d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 11 Feb 2025 17:03:13 +0100 Subject: [PATCH 03/42] Add sysusers.d config file to allow rpm to create users/groups automatically See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers. --- xpra.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xpra.spec b/xpra.spec index 23a1b17..280863c 100644 --- a/xpra.spec +++ b/xpra.spec @@ -160,7 +160,6 @@ Requires: js-jquery #%%{?fedora:Requires: python3-opencv} # Needed to create the xpra group -Requires(pre): shadow-utils # xpra-html5 is now separately provided Obsoletes: xpra-html5 < 0:4.1-1 @@ -194,6 +193,11 @@ network bandwidth constraints. sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %endif +# Create a sysusers.d config file +cat >xpra.sysusers.conf </dev/null || groupadd -r xpra %files %license COPYING @@ -323,6 +327,7 @@ getent group xpra >/dev/null || groupadd -r xpra %{_unitdir}/xpra.service %{_unitdir}/xpra.socket %{_udevrulesdir}/71-xpra-virtual-pointer.rules +%{_sysusersdir}/xpra.conf %changelog %autochangelog From afb4968a110ad7464f230b58e28b86cbdef74785 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 14:09:14 +0200 Subject: [PATCH 04/42] Rebuilt for Python 3.14 From f28bdb37bcbe8df53f82caddfac8e408b111e860 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 11 Jun 2025 21:39:48 +0200 Subject: [PATCH 05/42] Release 5.1 (rhbz#2350289) --- .gitignore | 1 + ignore_assert_pandoc.patch | 41 -------------------------------------- sources | 2 +- xpra.spec | 8 ++------ 4 files changed, 4 insertions(+), 48 deletions(-) delete mode 100644 ignore_assert_pandoc.patch diff --git a/.gitignore b/.gitignore index 2d3c94c..805a493 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,4 @@ /xpra-5.0.3.tar.gz /xpra-5.0.6.tar.gz /xpra-5.0.10.tar.gz +/xpra-5.1.tar.gz diff --git a/ignore_assert_pandoc.patch b/ignore_assert_pandoc.patch deleted file mode 100644 index 81f654e..0000000 --- a/ignore_assert_pandoc.patch +++ /dev/null @@ -1,41 +0,0 @@ -only on ppc64le pandoc returns -11 - - Debian.md -> Debian.html -Traceback (most recent call last): - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 2384, in - main() - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 2380, in main - setup(**setup_options) - File "/usr/lib64/python3.11/distutils/core.py", line 148, in setup - dist.run_commands() - File "/usr/lib64/python3.11/distutils/dist.py", line 966, in run_commands - self.run_command(cmd) - File "/usr/lib64/python3.11/distutils/dist.py", line 985, in run_command - cmd_obj.run() - File "/usr/lib64/python3.11/distutils/command/install.py", line 584, in run - self.run_command(cmd_name) - File "/usr/lib64/python3.11/distutils/cmd.py", line 313, in run_command - self.distribution.run_command(command) - File "/usr/lib64/python3.11/distutils/dist.py", line 985, in run_command - cmd_obj.run() - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 1810, in run - convert_doc_dir("./docs", doc_dir) - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 423, in convert_doc_dir - convert_doc_dir(fsrc, fdst, fmt, force) - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 426, in convert_doc_dir - convert_doc(fsrc, fdst, fmt, force) - File "/builddir/build/BUILD/xpra-4.4.4/setup.py", line 413, in convert_doc - assert r==0, "'%s' returned %s" % (" ".join(cmd), r) - ^^^^ -AssertionError: 'pandoc --from markdown --to html -o /builddir/build/BUILDROOT/xpra-4.4.4-1.fc38.ppc64le/usr/share/doc/xpra/Build/Debian.html ./docs/Build/Debian.md --lua-filter ./fs/bin/links-to-html.lua' returned -11 ---- ./setup.py.orig 2024-10-11 13:20:23.798168651 +0100 -+++ ./setup.py 2024-10-11 13:23:23.220858810 +0100 -@@ -514,7 +514,7 @@ def convert_doc(fsrc, fdst, fmt="html", - else: - cmd += ["--lua-filter", "./fs/bin/links-to-html.lua"] - r = subprocess.Popen(cmd).wait(TIMEOUT) -- assert r==0, "'%s' returned %s" % (" ".join(cmd), r) -+ #assert r==0, "'%s' returned %s" % (" ".join(cmd), r) - - def convert_doc_dir(src, dst, fmt="html", force=False): - print("%-20s -> %s" % (src, dst)) diff --git a/sources b/sources index ede007b..ec6110c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.10.tar.gz) = e1b01eb1d36351db460d7631dd33efd24e68d374784d803fcd8ad6774b25509dcd42c2d62fd00999ec513265745a3be17dde611a61c07fa70136f319a9a4eaca +SHA512 (xpra-5.1.tar.gz) = dd35e17870e2c1da63ccf2d771c265c950289a88cfd8af572e75e98da3f7869a30b24399210689abf0bbd8b28a565c9ded5591c9b3d01c82758c7c213cfefa12 diff --git a/xpra.spec b/xpra.spec index 280863c..b5d8719 100644 --- a/xpra.spec +++ b/xpra.spec @@ -49,7 +49,7 @@ %endif Name: xpra -Version: 5.0.10 +Version: 5.1 Release: %autorelease Summary: Remote display server for applications and desktops # Automatically converted from old format: GPLv2+ and BSD and LGPLv3+ and MIT - review is highly recommended. @@ -58,7 +58,6 @@ URL: https://www.xpra.org/ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz # Appdata file for Fedora Source1: %{name}.appdata.xml -Patch1: ignore_assert_pandoc.patch # Add compatibility with FFMPEG 7.0 # https://github.com/Xpra-org/xpra/pull/4216 Patch2: 0001-Add-compatibility-with-FFMPEG-7.0.patch @@ -181,12 +180,9 @@ Xpra is usable over reasonably slow links and does its best to adapt to changing network bandwidth constraints. %prep -%setup -q -n %{name}-%{version} +%autosetup -N -n %{name}-%{version} -%patch -P1 -p1 -%if 0%{?fedora} >= 41 %patch -P2 -p1 -%endif # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} From f0726afea1575bd8f2880c6940916f204660ea4f Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 13 Jul 2025 21:25:15 +0200 Subject: [PATCH 06/42] Release 5.1.1 (rhbz#2378508) (rhbz#2377058) --- .gitignore | 1 + sources | 2 +- xpra.spec | 82 +++++++++++++----------------------------------------- 3 files changed, 21 insertions(+), 64 deletions(-) diff --git a/.gitignore b/.gitignore index 805a493..39816ea 100644 --- a/.gitignore +++ b/.gitignore @@ -90,3 +90,4 @@ /xpra-5.0.6.tar.gz /xpra-5.0.10.tar.gz /xpra-5.1.tar.gz +/xpra-5.1.1.tar.gz diff --git a/sources b/sources index ec6110c..a391340 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.1.tar.gz) = dd35e17870e2c1da63ccf2d771c265c950289a88cfd8af572e75e98da3f7869a30b24399210689abf0bbd8b28a565c9ded5591c9b3d01c82758c7c213cfefa12 +SHA512 (xpra-5.1.1.tar.gz) = 02c25931668cf655184eb4042e1d693a62bfd51318f0a3353c97c1b7372dab1b3e00eff42bd579c0ccf7c95ddba161a75435348700424b6c9505abe3d3131472 diff --git a/xpra.spec b/xpra.spec index b5d8719..02c51f0 100644 --- a/xpra.spec +++ b/xpra.spec @@ -1,42 +1,9 @@ -%bcond_with enc_x264 -%bcond_with enc_x265 -# Theses settings requires 64bit -%if 0%{?__isa_bits} == 64 -%bcond_without dec_avcodec2 -%bcond_without csc_swscale -%else -%bcond_with dec_avcodec2 -%bcond_with csc_swscale -%endif - # For debugging only %bcond_with debug -%if %{with debug} -%global _with_debug --with-debug -%endif # %global __js_jquery_latest %{_datadir}/javascript/jquery/latest/ -# These are necessary as the _with_foo is *not* defined if the -# --with flag isn't specifed, and we need to have the --without -# specified option in that case. -%if %{without enc_x264} -%global _with_enc_x264 --without-enc_x264 -%endif - -%if %{with enc_x265} -%global _with_enc_x265 --with-enc_x265 -%endif - -%if %{without dec_avcodec2} -%global _with_dec_avcodec2 --without-dec_avcodec2 -%endif - -%if %{without csc_swscale} -%global _with_csc_swscale --without-csc_swscale -%endif - # Remove private provides from .so files in the python3_sitearch directory %global __provides_exclude_from ^%{python3_sitearch}/.*\\.so$ @@ -49,11 +16,10 @@ %endif Name: xpra -Version: 5.1 +Version: 5.1.1 Release: %autorelease Summary: Remote display server for applications and desktops -# Automatically converted from old format: GPLv2+ and BSD and LGPLv3+ and MIT - review is highly recommended. -License: GPL-2.0-or-later AND LicenseRef-Callaway-BSD AND LGPL-3.0-or-later AND LicenseRef-Callaway-MIT +License: GPL-2.0-or-later AND BSD-2-Clause AND LGPL-3.0-or-later AND BSD-3-Clause URL: https://www.xpra.org/ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz # Appdata file for Fedora @@ -97,6 +63,7 @@ BuildRequires: pygobject3-devel BuildRequires: python3-gobject-devel %endif BuildRequires: libappstream-glib +BuildRequires: libasan BuildRequires: python3-cairo-devel BuildRequires: xorg-x11-server-Xorg BuildRequires: xorg-x11-drv-dummy @@ -194,30 +161,21 @@ cat >xpra.sysusers.conf < Date: Fri, 25 Jul 2025 21:03:00 +0000 Subject: [PATCH 07/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 2a65a0b84092fe4042490337a3cd4426396fd3f2 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Fri, 1 Aug 2025 21:51:38 +0200 Subject: [PATCH 08/42] enable OpenH264 codec --- xpra.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 02c51f0..957adb5 100644 --- a/xpra.spec +++ b/xpra.spec @@ -2,6 +2,12 @@ %bcond_with debug # +%if 0%{?fedora} +%bcond_without openh264 +%else +%bcond_with openh264 +%endif + %global __js_jquery_latest %{_datadir}/javascript/jquery/latest/ # Remove private provides from .so files in the python3_sitearch directory @@ -84,6 +90,9 @@ BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswscale) #endif +%if %{with openh264} +BuildRequires: noopenh264-devel +%endif Requires: python3-pillow Requires: python3-cups @@ -166,7 +175,7 @@ EOF %build export CFLAGS="%{optflags} -I%{_includedir}/security" -%pyproject_wheel -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-enc_ffmpeg -C--global-option=--with-vpx -C--global-option=--with-dec_avcodec2 -C--global-option=--with-csc_swscale -C--global-option=--with-debug +%pyproject_wheel -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-enc_ffmpeg -C--global-option=--with-vpx -C--global-option=--with-dec_avcodec2 -C--global-option=--with-csc_swscale -C--global-option=--with-debug -C--global-option=--with-openh264 -C--global-option=--with-openh264_decoder -C--global-option=--with-openh264_encoder %install %pyproject_install From 912f50d33e2ceae7c63b25b069b0b9f63026f5e3 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:23:26 +0200 Subject: [PATCH 09/42] Rebuilt for Python 3.14.0rc2 bytecode From b98426abb3501350a69d3fa923cb39861d479ce5 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 15:04:01 +0200 Subject: [PATCH 10/42] Rebuilt for Python 3.14.0rc3 bytecode From 661277ad120c51e23912b80ac1a1d9a93d5bb236 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Wed, 15 Oct 2025 10:45:29 +0200 Subject: [PATCH 11/42] Fixed build with FFmpeg 8 --- xpra-ffmpeg8.patch | 212 +++++++++++++++++++++++++++++++++++++++++++++ xpra.spec | 3 + 2 files changed, 215 insertions(+) create mode 100644 xpra-ffmpeg8.patch diff --git a/xpra-ffmpeg8.patch b/xpra-ffmpeg8.patch new file mode 100644 index 0000000..90e960e --- /dev/null +++ b/xpra-ffmpeg8.patch @@ -0,0 +1,212 @@ +diff -up xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx.ffmpeg8 xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx +--- xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx.ffmpeg8 2025-10-19 10:39:15.728402019 +0200 ++++ xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx 2025-10-19 10:40:43.019264310 +0200 +@@ -294,7 +294,6 @@ cdef extern from "libavcodec/avcodec.h": + int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) + AVFrame* av_frame_alloc() + void av_frame_free(AVFrame **frame) +- int avcodec_close(AVCodecContext *avctx) + + #actual decoding: + AVPacket *av_packet_alloc() nogil +@@ -816,11 +815,7 @@ cdef class Decoder: + if not img.freed: + img.clone_pixel_data() + log("clean_decoder() freeing AVCodecContext: %#x", self.codec_ctx) +- if self.codec_ctx!=NULL: +- r = avcodec_close(self.codec_ctx) +- if r!=0: +- log.error("Error: failed to close decoder context %#x:", self.codec_ctx) +- log.error(" %s", av_error_str(r)) ++ avcodec_free_context(&self.codec_ctx) + f = self.file + if f: + self.file = None +diff -up xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx.ffmpeg8 xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx +--- xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx.ffmpeg8 2025-10-19 10:39:15.728768966 +0200 ++++ xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx 2025-10-20 11:29:30.696347049 +0200 +@@ -144,28 +144,28 @@ cdef extern from "libavcodec/avcodec.h": + int FF_THREAD_SLICE #allow more than one thread per frame + int FF_THREAD_FRAME #Decode more than one frame at once + +- int FF_PROFILE_H264_CONSTRAINED +- int FF_PROFILE_H264_INTRA +- int FF_PROFILE_H264_BASELINE +- int FF_PROFILE_H264_CONSTRAINED_BASELINE +- int FF_PROFILE_H264_MAIN +- int FF_PROFILE_H264_EXTENDED +- int FF_PROFILE_H264_HIGH +- int FF_PROFILE_H264_HIGH_10 +- int FF_PROFILE_H264_HIGH_10_INTRA +- int FF_PROFILE_H264_MULTIVIEW_HIGH +- int FF_PROFILE_H264_HIGH_422 +- int FF_PROFILE_H264_HIGH_422_INTRA +- int FF_PROFILE_H264_STEREO_HIGH +- int FF_PROFILE_H264_HIGH_444 +- int FF_PROFILE_H264_HIGH_444_PREDICTIVE +- int FF_PROFILE_H264_HIGH_444_INTRA +- int FF_PROFILE_H264_CAVLC_444 +- +- int FF_PROFILE_HEVC_MAIN +- int FF_PROFILE_HEVC_MAIN_10 +- int FF_PROFILE_HEVC_MAIN_STILL_PICTURE +- int FF_PROFILE_HEVC_REXT ++ int AV_PROFILE_H264_CONSTRAINED ++ int AV_PROFILE_H264_INTRA ++ int AV_PROFILE_H264_BASELINE ++ int AV_PROFILE_H264_CONSTRAINED_BASELINE ++ int AV_PROFILE_H264_MAIN ++ int AV_PROFILE_H264_EXTENDED ++ int AV_PROFILE_H264_HIGH ++ int AV_PROFILE_H264_HIGH_10 ++ int AV_PROFILE_H264_HIGH_10_INTRA ++ int AV_PROFILE_H264_MULTIVIEW_HIGH ++ int AV_PROFILE_H264_HIGH_422 ++ int AV_PROFILE_H264_HIGH_422_INTRA ++ int AV_PROFILE_H264_STEREO_HIGH ++ int AV_PROFILE_H264_HIGH_444 ++ int AV_PROFILE_H264_HIGH_444_PREDICTIVE ++ int AV_PROFILE_H264_HIGH_444_INTRA ++ int AV_PROFILE_H264_CAVLC_444 ++ ++ int AV_PROFILE_HEVC_MAIN ++ int AV_PROFILE_HEVC_MAIN_10 ++ int AV_PROFILE_HEVC_MAIN_STILL_PICTURE ++ int AV_PROFILE_HEVC_REXT + + int AV_CODEC_FLAG_UNALIGNED + int AV_CODEC_FLAG_QSCALE +@@ -187,7 +187,6 @@ cdef extern from "libavcodec/avcodec.h": + #int AV_CODEC_CAP_TRUNCATED + int AV_CODEC_CAP_DELAY + int AV_CODEC_CAP_SMALL_LAST_FRAME +- int AV_CODEC_CAP_SUBFRAMES + int AV_CODEC_CAP_EXPERIMENTAL + int AV_CODEC_CAP_CHANNEL_CONF + int AV_CODEC_CAP_FRAME_THREADS +@@ -468,7 +467,6 @@ cdef extern from "libavcodec/avcodec.h": + + AVFrame* av_frame_alloc() + void av_frame_free(AVFrame **frame) +- int avcodec_close(AVCodecContext *avctx) + void av_frame_unref(AVFrame *frame) nogil + + AVPacket *av_packet_alloc() nogil +@@ -562,7 +560,6 @@ cdef extern from "libavformat/avformat.h + int AVFMT_NOBINSEARCH #Format does not allow to fall back on binary search via read_timestamp + int AVFMT_NOGENSEARCH #Format does not allow to fall back on generic search + int AVFMT_NO_BYTE_SEEK #Format does not allow seeking by bytes +- int AVFMT_ALLOW_FLUSH #Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function + int AVFMT_TS_NONSTRICT #Format does not require strictly increasing timestamps, but they must still be monotonic + int AVFMT_TS_NEGATIVE #Format allows muxing negative timestamps. + int AVFMT_SEEK_TO_PTS #Seeking is based on PTS +@@ -587,7 +584,7 @@ cdef extern from "libavformat/avformat.h + AVCodecID audio_codec + AVCodecID video_codec + AVCodecID subtitle_codec +- int flags #AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE More... ++ int flags #AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE More... + int (*query_codec)(AVCodecID id, int std_compliance) + + const AVOutputFormat *av_muxer_iterate(void **opaque) +@@ -641,31 +638,31 @@ cdef extern from "libavutil/hwcontext.h" + + + H264_PROFILE_NAMES = { +- FF_PROFILE_H264_CONSTRAINED : "constrained", +- FF_PROFILE_H264_INTRA : "intra", +- FF_PROFILE_H264_BASELINE : "baseline", +- FF_PROFILE_H264_CONSTRAINED_BASELINE : "constrained baseline", +- FF_PROFILE_H264_MAIN : "main", +- FF_PROFILE_H264_EXTENDED : "extended", +- FF_PROFILE_H264_HIGH : "high", +- FF_PROFILE_H264_HIGH_10 : "high10", +- FF_PROFILE_H264_HIGH_10_INTRA : "high10 intra", +- FF_PROFILE_H264_MULTIVIEW_HIGH : "multiview high", +- FF_PROFILE_H264_HIGH_422 : "high422", +- FF_PROFILE_H264_HIGH_422_INTRA : "high422 intra", +- FF_PROFILE_H264_STEREO_HIGH : "stereo high", +- FF_PROFILE_H264_HIGH_444 : "high444", +- FF_PROFILE_H264_HIGH_444_PREDICTIVE : "high444 predictive", +- FF_PROFILE_H264_HIGH_444_INTRA : "high444 intra", +- FF_PROFILE_H264_CAVLC_444 : "cavlc 444", ++ AV_PROFILE_H264_CONSTRAINED : "constrained", ++ AV_PROFILE_H264_INTRA : "intra", ++ AV_PROFILE_H264_BASELINE : "baseline", ++ AV_PROFILE_H264_CONSTRAINED_BASELINE : "constrained baseline", ++ AV_PROFILE_H264_MAIN : "main", ++ AV_PROFILE_H264_EXTENDED : "extended", ++ AV_PROFILE_H264_HIGH : "high", ++ AV_PROFILE_H264_HIGH_10 : "high10", ++ AV_PROFILE_H264_HIGH_10_INTRA : "high10 intra", ++ AV_PROFILE_H264_MULTIVIEW_HIGH : "multiview high", ++ AV_PROFILE_H264_HIGH_422 : "high422", ++ AV_PROFILE_H264_HIGH_422_INTRA : "high422 intra", ++ AV_PROFILE_H264_STEREO_HIGH : "stereo high", ++ AV_PROFILE_H264_HIGH_444 : "high444", ++ AV_PROFILE_H264_HIGH_444_PREDICTIVE : "high444 predictive", ++ AV_PROFILE_H264_HIGH_444_INTRA : "high444 intra", ++ AV_PROFILE_H264_CAVLC_444 : "cavlc 444", + } + H264_PROFILES = reverse_dict(H264_PROFILE_NAMES) + + HEVC_PROFILE_NAMES = { +- FF_PROFILE_HEVC_MAIN : "main", +- FF_PROFILE_HEVC_MAIN_10 : "main10", +- FF_PROFILE_HEVC_MAIN_STILL_PICTURE : "picture", +- FF_PROFILE_HEVC_REXT : "rext", ++ AV_PROFILE_HEVC_MAIN : "main", ++ AV_PROFILE_HEVC_MAIN_10 : "main10", ++ AV_PROFILE_HEVC_MAIN_STILL_PICTURE : "picture", ++ AV_PROFILE_HEVC_REXT : "rext", + } + HEVC_PROFILES = reverse_dict(HEVC_PROFILE_NAMES) + +@@ -762,7 +759,6 @@ AVFMT = { + AVFMT_NOBINSEARCH : "NOBINSEARCH", + AVFMT_NOGENSEARCH : "NOGENSEARCH", + AVFMT_NO_BYTE_SEEK : "NO_BYTE_SEEK", +- AVFMT_ALLOW_FLUSH : "ALLOW_FLUSH", + AVFMT_TS_NONSTRICT : "TS_NONSTRICT", + AVFMT_TS_NEGATIVE : "TS_NEGATIVE", + AVFMT_SEEK_TO_PTS : "SEEK_TO_PTS", +@@ -775,7 +771,6 @@ CAPS = { + #AV_CODEC_CAP_TRUNCATED : "TRUNCATED", + AV_CODEC_CAP_DELAY : "DELAY", + AV_CODEC_CAP_SMALL_LAST_FRAME : "SMALL_LAST_FRAME", +- AV_CODEC_CAP_SUBFRAMES : "SUBFRAMES", + AV_CODEC_CAP_EXPERIMENTAL : "EXPERIMENTAL", + AV_CODEC_CAP_CHANNEL_CONF : "CHANNEL_CONF", + AV_CODEC_CAP_FRAME_THREADS : "FRAME_THREADS", +@@ -1316,8 +1311,6 @@ cdef class Encoder: + raise ValueError(f"libavformat does not support {self.muxer_format}") + log("init_muxer(%i) AVOutputFormat(%s)=%#x, flags=%s", + gen, self.muxer_format, oformat, flagscsv(AVFMT, oformat.flags)) +- if oformat.flags & AVFMT_ALLOW_FLUSH==0: +- raise RuntimeError("AVOutputFormat(%s) does not support flushing!" % self.muxer_format) + r = avformat_alloc_output_context2(&self.muxer_ctx, oformat, strtobytes(self.muxer_format), NULL) + if r!=0: + msg = av_error_str(r) +@@ -1574,20 +1567,8 @@ cdef class Encoder: + av_free(self.buffer) + self.buffer = NULL + log("clean_encoder() freeing AVCodecContext: %#x", self.video_ctx) +- if self.video_ctx: +- r = avcodec_close(self.video_ctx) +- if r!=0: +- log.error("Error: failed to close video encoder context %#x", self.video_ctx) +- log.error(" %s", av_error_str(r)) +- av_free(self.video_ctx) +- self.video_ctx = NULL +- if self.audio_ctx: +- r = avcodec_close(self.audio_ctx) +- if r!=0: +- log.error("Error: failed to close audio encoder context %#x", self.audio_ctx) +- log.error(" %s", av_error_str(r)) +- av_free(self.audio_ctx) +- self.audio_ctx = NULL ++ avcodec_free_context(&self.video_ctx) ++ avcodec_free_context(&self.audio_ctx) + if self.hw_device_ctx: + av_buffer_unref(&self.hw_device_ctx) + log("clean_encoder() done") diff --git a/xpra.spec b/xpra.spec index 957adb5..03d219f 100644 --- a/xpra.spec +++ b/xpra.spec @@ -33,6 +33,8 @@ Source1: %{name}.appdata.xml # Add compatibility with FFMPEG 7.0 # https://github.com/Xpra-org/xpra/pull/4216 Patch2: 0001-Add-compatibility-with-FFMPEG-7.0.patch +# Fix build with FFmpeg 8.0 +Patch3: xpra-ffmpeg8.patch BuildRequires: python3-devel BuildRequires: gtk3-devel @@ -159,6 +161,7 @@ network bandwidth constraints. %autosetup -N -n %{name}-%{version} %patch -P2 -p1 +%patch -P3 -p1 -b .ffmpeg8 # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} From 6d45e7c80c7287682fc93228cb37ed1ddc278890 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Mon, 27 Oct 2025 22:40:40 +0100 Subject: [PATCH 12/42] Release 6.3.4 (rhbz#2266632) --- .gitignore | 1 + 0001-Add-compatibility-with-FFMPEG-7.0.patch | 156 -------------- sources | 2 +- xpra-ffmpeg8.patch | 212 ------------------- xpra.spec | 125 ++++++----- 5 files changed, 74 insertions(+), 422 deletions(-) delete mode 100644 0001-Add-compatibility-with-FFMPEG-7.0.patch delete mode 100644 xpra-ffmpeg8.patch diff --git a/.gitignore b/.gitignore index 39816ea..eaa5b82 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,4 @@ /xpra-5.0.10.tar.gz /xpra-5.1.tar.gz /xpra-5.1.1.tar.gz +/xpra-6.3.4.tar.gz diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch deleted file mode 100644 index d01a792..0000000 --- a/0001-Add-compatibility-with-FFMPEG-7.0.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 6722df9aeb90857bc1c979c92d47e57903e0ebd6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Tue, 7 May 2024 07:23:07 +0200 -Subject: [PATCH] Add compatibility with FFMPEG 7.0 - -channel_layout has been replaced with ch_layout - -avcodec_close has been deprecated in favor of avcodec_free_context - -avio: Constify data pointees of write callbacks - -FF_API_FRAME_PICTURE_NUMBER has been deprecated - -AV_PIX_FMT_XVMC has been deprecated ---- - xpra/codecs/ffmpeg/decoder.pyx | 9 ++------- - xpra/codecs/ffmpeg/encoder.pyx | 37 ++++++++++++++++++++++------------ - 2 files changed, 26 insertions(+), 20 deletions(-) - -diff --git a/xpra/codecs/ffmpeg/decoder.pyx b/xpra/codecs/ffmpeg/decoder.pyx -index 4f71b5bf1f..f1df36a85a 100644 ---- a/xpra/codecs/ffmpeg/decoder.pyx -+++ b/xpra/codecs/ffmpeg/decoder.pyx -@@ -295,6 +295,7 @@ cdef extern from "libavcodec/avcodec.h": - int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) - AVFrame* av_frame_alloc() - void av_frame_free(AVFrame **frame) -+ int avcodec_close(AVCodecContext *avctx) - - #actual decoding: - AVPacket *av_packet_alloc() nogil -@@ -818,7 +819,10 @@ cdef class Decoder: - img.clone_pixel_data() - log("clean_decoder() freeing AVCodecContext: %#x", self.codec_ctx) - if self.codec_ctx!=NULL: -- avcodec_free_context(&self.codec_ctx) -+ r = avcodec_close(self.codec_ctx) -+ if r!=0: -+ log.error("Error: failed to close decoder context %#x:", self.codec_ctx) -+ log.error(" %s", av_error_str(r)) - f = self.file - if f: - self.file = None -diff --git a/xpra/codecs/ffmpeg/encoder.pyx b/xpra/codecs/ffmpeg/encoder.pyx -index 6af88a5629..5df0c590c0 100644 ---- a/xpra/codecs/ffmpeg/encoder.pyx -+++ b/xpra/codecs/ffmpeg/encoder.pyx -@@ -120,10 +120,26 @@ cdef extern from "libavformat/avio.h": - AVIOContext *avio_alloc_context(unsigned char *buffer, int buffer_size, int write_flag, - void *opaque, - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), -- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size) except 0, -+ int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size) except 0, - int64_t (*seek)(void *opaque, int64_t offset, int whence)) - - -+cdef extern from "libavutil/channel_layout.h": -+ ctypedef int AVChannelOrder -+ ctypedef int AVChannel -+ ctypedef struct AVChannelCustom: -+ AVChannel id -+ char name[16] -+ void *opaque -+ ctypedef union ChannelUnion: -+ uint64_t mask -+ AVChannelCustom* map -+ ctypedef struct AVChannelLayout: -+ AVChannelOrder order -+ int nb_channels -+ ChannelUnion u -+ void *opaque -+ - cdef extern from "libavcodec/avcodec.h": - int FF_THREAD_SLICE #allow more than one thread per frame - int FF_THREAD_FRAME #Decode more than one frame at once -@@ -190,8 +206,6 @@ cdef extern from "libavcodec/avcodec.h": - int format - int key_frame - int64_t pts -- int coded_picture_number -- int display_picture_number - int quality - void *opaque - AVPictureType pict_type -@@ -288,14 +302,12 @@ cdef extern from "libavcodec/avcodec.h": - #skipped: AVColor* - int slices - int sample_rate -- int channels - AVSampleFormat sample_fmt -+ AVChannelLayout ch_layout - int frame_size - int frame_number - int block_align - int cutoff -- uint64_t channel_layout -- uint64_t request_channel_layout - #skipped: AVAudioServiceType - # AVSampleFormat - int refcounted_frames -@@ -483,7 +495,7 @@ cdef extern from "libavutil/opt.h": - AVOptionType AV_OPT_TYPE_VIDEO_RATE - AVOptionType AV_OPT_TYPE_DURATION - AVOptionType AV_OPT_TYPE_COLOR -- AVOptionType AV_OPT_TYPE_CHANNEL_LAYOUT -+ AVOptionType AV_OPT_TYPE_CHLAYOUT - AVOptionType AV_OPT_TYPE_BOOL - - int AV_OPT_SEARCH_CHILDREN -@@ -686,7 +698,7 @@ AV_OPT_TYPES = { - AV_OPT_TYPE_VIDEO_RATE : "VIDEO_RATE", - AV_OPT_TYPE_DURATION : "DURATION", - AV_OPT_TYPE_COLOR : "COLOR", -- AV_OPT_TYPE_CHANNEL_LAYOUT : "CHANNEL_LAYOUT", -+ AV_OPT_TYPE_CHLAYOUT : "CHANNEL_LAYOUT", - AV_OPT_TYPE_BOOL : "BOOL", - } - -@@ -1137,7 +1149,7 @@ cdef list_options(void *obj, const AVClass *av_class, int skip=1): - list_options(child, child_class, skip-1) - - --cdef int write_packet(void *opaque, uint8_t *buf, int buf_size) except 0: -+cdef int write_packet(void *opaque, const uint8_t *buf, int buf_size) except 0: - global GEN_TO_ENCODER - encoder = GEN_TO_ENCODER.get( opaque) - #log.warn("write_packet(%#x, %#x, %#x) encoder=%s", opaque, buf, buf_size, type(encoder)) -@@ -1504,7 +1517,7 @@ cdef class Encoder: - self.audio_ctx.time_base.num = 1 - self.audio_ctx.bit_rate = 64000 - self.audio_ctx.sample_rate = 44100 -- self.audio_ctx.channels = 2 -+ self.audio_ctx.ch_layout.nb_channels = 2 - #if audio_codec.capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE: - # pass - #cdef AVDictionary *opts = NULL -@@ -1689,8 +1702,6 @@ cdef class Encoder: - self.av_frame.height = self.height - self.av_frame.format = self.pix_fmt - self.av_frame.pts = self.frames+1 -- self.av_frame.coded_picture_number = self.frames+1 -- self.av_frame.display_picture_number = self.frames+1 - #if self.frames==0: - self.av_frame.pict_type = AV_PICTURE_TYPE_I - #self.av_frame.key_frame = 1 -@@ -1823,7 +1834,7 @@ cdef class Encoder: - - def write_packet(self, uintptr_t buf, int buf_size): - log("write_packet(%#x, %#x)", buf, buf_size) -- cdef uint8_t *cbuf = buf -+ cdef const uint8_t *cbuf = buf - buffer = cbuf[:buf_size] - self.buffers.append(buffer) - return buf_size --- -2.44.0 diff --git a/sources b/sources index a391340..7c3a737 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.1.1.tar.gz) = 02c25931668cf655184eb4042e1d693a62bfd51318f0a3353c97c1b7372dab1b3e00eff42bd579c0ccf7c95ddba161a75435348700424b6c9505abe3d3131472 +SHA512 (xpra-6.3.4.tar.gz) = f161bd9142d352c0d31ac64a55be9516c7fbc0f2e9021382a3444a1295436ecf977b693baec9b2a98816c0fa4e590ebcfc1a4f7f1433758113bbb99db932061c diff --git a/xpra-ffmpeg8.patch b/xpra-ffmpeg8.patch deleted file mode 100644 index 90e960e..0000000 --- a/xpra-ffmpeg8.patch +++ /dev/null @@ -1,212 +0,0 @@ -diff -up xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx.ffmpeg8 xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx ---- xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx.ffmpeg8 2025-10-19 10:39:15.728402019 +0200 -+++ xpra-5.1.1/xpra/codecs/ffmpeg/decoder.pyx 2025-10-19 10:40:43.019264310 +0200 -@@ -294,7 +294,6 @@ cdef extern from "libavcodec/avcodec.h": - int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) - AVFrame* av_frame_alloc() - void av_frame_free(AVFrame **frame) -- int avcodec_close(AVCodecContext *avctx) - - #actual decoding: - AVPacket *av_packet_alloc() nogil -@@ -816,11 +815,7 @@ cdef class Decoder: - if not img.freed: - img.clone_pixel_data() - log("clean_decoder() freeing AVCodecContext: %#x", self.codec_ctx) -- if self.codec_ctx!=NULL: -- r = avcodec_close(self.codec_ctx) -- if r!=0: -- log.error("Error: failed to close decoder context %#x:", self.codec_ctx) -- log.error(" %s", av_error_str(r)) -+ avcodec_free_context(&self.codec_ctx) - f = self.file - if f: - self.file = None -diff -up xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx.ffmpeg8 xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx ---- xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx.ffmpeg8 2025-10-19 10:39:15.728768966 +0200 -+++ xpra-5.1.1/xpra/codecs/ffmpeg/encoder.pyx 2025-10-20 11:29:30.696347049 +0200 -@@ -144,28 +144,28 @@ cdef extern from "libavcodec/avcodec.h": - int FF_THREAD_SLICE #allow more than one thread per frame - int FF_THREAD_FRAME #Decode more than one frame at once - -- int FF_PROFILE_H264_CONSTRAINED -- int FF_PROFILE_H264_INTRA -- int FF_PROFILE_H264_BASELINE -- int FF_PROFILE_H264_CONSTRAINED_BASELINE -- int FF_PROFILE_H264_MAIN -- int FF_PROFILE_H264_EXTENDED -- int FF_PROFILE_H264_HIGH -- int FF_PROFILE_H264_HIGH_10 -- int FF_PROFILE_H264_HIGH_10_INTRA -- int FF_PROFILE_H264_MULTIVIEW_HIGH -- int FF_PROFILE_H264_HIGH_422 -- int FF_PROFILE_H264_HIGH_422_INTRA -- int FF_PROFILE_H264_STEREO_HIGH -- int FF_PROFILE_H264_HIGH_444 -- int FF_PROFILE_H264_HIGH_444_PREDICTIVE -- int FF_PROFILE_H264_HIGH_444_INTRA -- int FF_PROFILE_H264_CAVLC_444 -- -- int FF_PROFILE_HEVC_MAIN -- int FF_PROFILE_HEVC_MAIN_10 -- int FF_PROFILE_HEVC_MAIN_STILL_PICTURE -- int FF_PROFILE_HEVC_REXT -+ int AV_PROFILE_H264_CONSTRAINED -+ int AV_PROFILE_H264_INTRA -+ int AV_PROFILE_H264_BASELINE -+ int AV_PROFILE_H264_CONSTRAINED_BASELINE -+ int AV_PROFILE_H264_MAIN -+ int AV_PROFILE_H264_EXTENDED -+ int AV_PROFILE_H264_HIGH -+ int AV_PROFILE_H264_HIGH_10 -+ int AV_PROFILE_H264_HIGH_10_INTRA -+ int AV_PROFILE_H264_MULTIVIEW_HIGH -+ int AV_PROFILE_H264_HIGH_422 -+ int AV_PROFILE_H264_HIGH_422_INTRA -+ int AV_PROFILE_H264_STEREO_HIGH -+ int AV_PROFILE_H264_HIGH_444 -+ int AV_PROFILE_H264_HIGH_444_PREDICTIVE -+ int AV_PROFILE_H264_HIGH_444_INTRA -+ int AV_PROFILE_H264_CAVLC_444 -+ -+ int AV_PROFILE_HEVC_MAIN -+ int AV_PROFILE_HEVC_MAIN_10 -+ int AV_PROFILE_HEVC_MAIN_STILL_PICTURE -+ int AV_PROFILE_HEVC_REXT - - int AV_CODEC_FLAG_UNALIGNED - int AV_CODEC_FLAG_QSCALE -@@ -187,7 +187,6 @@ cdef extern from "libavcodec/avcodec.h": - #int AV_CODEC_CAP_TRUNCATED - int AV_CODEC_CAP_DELAY - int AV_CODEC_CAP_SMALL_LAST_FRAME -- int AV_CODEC_CAP_SUBFRAMES - int AV_CODEC_CAP_EXPERIMENTAL - int AV_CODEC_CAP_CHANNEL_CONF - int AV_CODEC_CAP_FRAME_THREADS -@@ -468,7 +467,6 @@ cdef extern from "libavcodec/avcodec.h": - - AVFrame* av_frame_alloc() - void av_frame_free(AVFrame **frame) -- int avcodec_close(AVCodecContext *avctx) - void av_frame_unref(AVFrame *frame) nogil - - AVPacket *av_packet_alloc() nogil -@@ -562,7 +560,6 @@ cdef extern from "libavformat/avformat.h - int AVFMT_NOBINSEARCH #Format does not allow to fall back on binary search via read_timestamp - int AVFMT_NOGENSEARCH #Format does not allow to fall back on generic search - int AVFMT_NO_BYTE_SEEK #Format does not allow seeking by bytes -- int AVFMT_ALLOW_FLUSH #Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function - int AVFMT_TS_NONSTRICT #Format does not require strictly increasing timestamps, but they must still be monotonic - int AVFMT_TS_NEGATIVE #Format allows muxing negative timestamps. - int AVFMT_SEEK_TO_PTS #Seeking is based on PTS -@@ -587,7 +584,7 @@ cdef extern from "libavformat/avformat.h - AVCodecID audio_codec - AVCodecID video_codec - AVCodecID subtitle_codec -- int flags #AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE More... -+ int flags #AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE More... - int (*query_codec)(AVCodecID id, int std_compliance) - - const AVOutputFormat *av_muxer_iterate(void **opaque) -@@ -641,31 +638,31 @@ cdef extern from "libavutil/hwcontext.h" - - - H264_PROFILE_NAMES = { -- FF_PROFILE_H264_CONSTRAINED : "constrained", -- FF_PROFILE_H264_INTRA : "intra", -- FF_PROFILE_H264_BASELINE : "baseline", -- FF_PROFILE_H264_CONSTRAINED_BASELINE : "constrained baseline", -- FF_PROFILE_H264_MAIN : "main", -- FF_PROFILE_H264_EXTENDED : "extended", -- FF_PROFILE_H264_HIGH : "high", -- FF_PROFILE_H264_HIGH_10 : "high10", -- FF_PROFILE_H264_HIGH_10_INTRA : "high10 intra", -- FF_PROFILE_H264_MULTIVIEW_HIGH : "multiview high", -- FF_PROFILE_H264_HIGH_422 : "high422", -- FF_PROFILE_H264_HIGH_422_INTRA : "high422 intra", -- FF_PROFILE_H264_STEREO_HIGH : "stereo high", -- FF_PROFILE_H264_HIGH_444 : "high444", -- FF_PROFILE_H264_HIGH_444_PREDICTIVE : "high444 predictive", -- FF_PROFILE_H264_HIGH_444_INTRA : "high444 intra", -- FF_PROFILE_H264_CAVLC_444 : "cavlc 444", -+ AV_PROFILE_H264_CONSTRAINED : "constrained", -+ AV_PROFILE_H264_INTRA : "intra", -+ AV_PROFILE_H264_BASELINE : "baseline", -+ AV_PROFILE_H264_CONSTRAINED_BASELINE : "constrained baseline", -+ AV_PROFILE_H264_MAIN : "main", -+ AV_PROFILE_H264_EXTENDED : "extended", -+ AV_PROFILE_H264_HIGH : "high", -+ AV_PROFILE_H264_HIGH_10 : "high10", -+ AV_PROFILE_H264_HIGH_10_INTRA : "high10 intra", -+ AV_PROFILE_H264_MULTIVIEW_HIGH : "multiview high", -+ AV_PROFILE_H264_HIGH_422 : "high422", -+ AV_PROFILE_H264_HIGH_422_INTRA : "high422 intra", -+ AV_PROFILE_H264_STEREO_HIGH : "stereo high", -+ AV_PROFILE_H264_HIGH_444 : "high444", -+ AV_PROFILE_H264_HIGH_444_PREDICTIVE : "high444 predictive", -+ AV_PROFILE_H264_HIGH_444_INTRA : "high444 intra", -+ AV_PROFILE_H264_CAVLC_444 : "cavlc 444", - } - H264_PROFILES = reverse_dict(H264_PROFILE_NAMES) - - HEVC_PROFILE_NAMES = { -- FF_PROFILE_HEVC_MAIN : "main", -- FF_PROFILE_HEVC_MAIN_10 : "main10", -- FF_PROFILE_HEVC_MAIN_STILL_PICTURE : "picture", -- FF_PROFILE_HEVC_REXT : "rext", -+ AV_PROFILE_HEVC_MAIN : "main", -+ AV_PROFILE_HEVC_MAIN_10 : "main10", -+ AV_PROFILE_HEVC_MAIN_STILL_PICTURE : "picture", -+ AV_PROFILE_HEVC_REXT : "rext", - } - HEVC_PROFILES = reverse_dict(HEVC_PROFILE_NAMES) - -@@ -762,7 +759,6 @@ AVFMT = { - AVFMT_NOBINSEARCH : "NOBINSEARCH", - AVFMT_NOGENSEARCH : "NOGENSEARCH", - AVFMT_NO_BYTE_SEEK : "NO_BYTE_SEEK", -- AVFMT_ALLOW_FLUSH : "ALLOW_FLUSH", - AVFMT_TS_NONSTRICT : "TS_NONSTRICT", - AVFMT_TS_NEGATIVE : "TS_NEGATIVE", - AVFMT_SEEK_TO_PTS : "SEEK_TO_PTS", -@@ -775,7 +771,6 @@ CAPS = { - #AV_CODEC_CAP_TRUNCATED : "TRUNCATED", - AV_CODEC_CAP_DELAY : "DELAY", - AV_CODEC_CAP_SMALL_LAST_FRAME : "SMALL_LAST_FRAME", -- AV_CODEC_CAP_SUBFRAMES : "SUBFRAMES", - AV_CODEC_CAP_EXPERIMENTAL : "EXPERIMENTAL", - AV_CODEC_CAP_CHANNEL_CONF : "CHANNEL_CONF", - AV_CODEC_CAP_FRAME_THREADS : "FRAME_THREADS", -@@ -1316,8 +1311,6 @@ cdef class Encoder: - raise ValueError(f"libavformat does not support {self.muxer_format}") - log("init_muxer(%i) AVOutputFormat(%s)=%#x, flags=%s", - gen, self.muxer_format, oformat, flagscsv(AVFMT, oformat.flags)) -- if oformat.flags & AVFMT_ALLOW_FLUSH==0: -- raise RuntimeError("AVOutputFormat(%s) does not support flushing!" % self.muxer_format) - r = avformat_alloc_output_context2(&self.muxer_ctx, oformat, strtobytes(self.muxer_format), NULL) - if r!=0: - msg = av_error_str(r) -@@ -1574,20 +1567,8 @@ cdef class Encoder: - av_free(self.buffer) - self.buffer = NULL - log("clean_encoder() freeing AVCodecContext: %#x", self.video_ctx) -- if self.video_ctx: -- r = avcodec_close(self.video_ctx) -- if r!=0: -- log.error("Error: failed to close video encoder context %#x", self.video_ctx) -- log.error(" %s", av_error_str(r)) -- av_free(self.video_ctx) -- self.video_ctx = NULL -- if self.audio_ctx: -- r = avcodec_close(self.audio_ctx) -- if r!=0: -- log.error("Error: failed to close audio encoder context %#x", self.audio_ctx) -- log.error(" %s", av_error_str(r)) -- av_free(self.audio_ctx) -- self.audio_ctx = NULL -+ avcodec_free_context(&self.video_ctx) -+ avcodec_free_context(&self.audio_ctx) - if self.hw_device_ctx: - av_buffer_unref(&self.hw_device_ctx) - log("clean_encoder() done") diff --git a/xpra.spec b/xpra.spec index 03d219f..19003f5 100644 --- a/xpra.spec +++ b/xpra.spec @@ -8,8 +8,6 @@ %bcond_with openh264 %endif -%global __js_jquery_latest %{_datadir}/javascript/jquery/latest/ - # Remove private provides from .so files in the python3_sitearch directory %global __provides_exclude_from ^%{python3_sitearch}/.*\\.so$ @@ -21,20 +19,21 @@ %global cupslibdir %(cups-config --serverbin 2> /dev/null || echo "/usr/lib/cups") %endif +%global gnome_shell_extension input-source-manager@xpra_org + +%global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 + Name: xpra -Version: 5.1.1 +Version: 6.3.4 Release: %autorelease +Epoch: 1 Summary: Remote display server for applications and desktops License: GPL-2.0-or-later AND BSD-2-Clause AND LGPL-3.0-or-later AND BSD-3-Clause URL: https://www.xpra.org/ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz + # Appdata file for Fedora Source1: %{name}.appdata.xml -# Add compatibility with FFMPEG 7.0 -# https://github.com/Xpra-org/xpra/pull/4216 -Patch2: 0001-Add-compatibility-with-FFMPEG-7.0.patch -# Fix build with FFmpeg 8.0 -Patch3: xpra-ffmpeg8.patch BuildRequires: python3-devel BuildRequires: gtk3-devel @@ -54,8 +53,11 @@ BuildRequires: python3-rpm-macros BuildRequires: gcc-c++ BuildRequires: pam-devel BuildRequires: pandoc + # needs by setup.py to detect systemd `sd_listen_ENABLED = POSIX and pkg_config_ok("--exists", "libsystemd")` BuildRequires: systemd-devel + +BuildRequires: systemd-rpm-macros %if 0%{?fedora} BuildRequires: procps-ng-devel %endif @@ -63,53 +65,29 @@ BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libqrencode) BuildRequires: libdrm-devel BuildRequires: pkgconfig(libwebp) -%if 0%{?el8} -#BuildRequires: xorg-x11-server-Xvfb -#BuildRequires: cairo-devel -BuildRequires: pygobject3-devel -%else BuildRequires: python3-gobject-devel -%endif BuildRequires: libappstream-glib BuildRequires: libasan BuildRequires: python3-cairo-devel BuildRequires: xorg-x11-server-Xorg BuildRequires: xorg-x11-drv-dummy BuildRequires: xorg-x11-xauth +BuildRequires: xxhash-devel BuildRequires: xkbcomp BuildRequires: setxkbmap %if %{with debug} BuildRequires: libasan %endif - -%if %{with enc_x264} -BuildRequires: x264-devel -%endif -# While ffmpeg-devel should only be needed in theses conditions, setup.py requires it anyway -#if %%{with dec_avcodec2} || %%{with csc_swscale} BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswscale) -#endif %if %{with openh264} BuildRequires: noopenh264-devel %endif Requires: python3-pillow -Requires: python3-cups -Requires: python3-pyopengl -Requires: python3-gobject -Requires: python3-inotify Requires: python3-lz4 -Requires: python3-ldap3 -Requires: python3-rencode -Requires: python3-netifaces -Requires: python3-dbus -Requires: python3-numpy -%if 0%{?fedora} -Requires: python3-zeroconf -%endif Requires: dbus-x11 Requires: xmodmap Requires: xrandr @@ -129,21 +107,7 @@ Requires: pulseaudio-utils%{?_isa} %endif Requires: cups-filesystem Requires: shared-mime-info%{?_isa} -Requires: js-jquery - -# python3-opencv is required for webcam forwarding support, client-side only. -# Available on Fedora only. -# https://github.com/Xpra-org/xpra/issues/4035#issuecomment-2405430577 -#%%{?fedora:Requires: python3-opencv} - -# Needed to create the xpra group - -# xpra-html5 is now separately provided -Obsoletes: xpra-html5 < 0:4.1-1 - Requires: systemd-udev%{?_isa} -Obsoletes: xpra-udev < %{version}-%{release} -Provides: xpra-udev = %{version}-%{release} %description Xpra is "screen for X": it allows you to run X programs, usually on a remote @@ -157,11 +121,28 @@ 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. -%prep -%autosetup -N -n %{name}-%{version} +%package -n %{name}-client-gnome +Summary: Gnome integration for the xpra client +Requires: %{name}-client-gtk3 = 1:%{version}-%{release} +Requires: gnome-shell-extension-appindicator -%patch -P2 -p1 -%patch -P3 -p1 -b .ffmpeg8 +%description -n %{name}-client-gnome +This package installs the GNOME Shell extensions +that can help in restoring the system tray functionality. +It also includes the gnome_shell_extension extension which +is required for querying and activating keyboard input sources. + +%package -n %{name}-client-gtk3 +Summary: GTK3 xpra client +BuildRequires: xclip + +%description -n %{name}-client-gtk3 +This package contains the GTK3 xpra client. + +%prep +%autosetup -n %{name}-%{version} + +rm -rf *.egg-info # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} @@ -178,7 +159,7 @@ EOF %build export CFLAGS="%{optflags} -I%{_includedir}/security" -%pyproject_wheel -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-enc_ffmpeg -C--global-option=--with-vpx -C--global-option=--with-dec_avcodec2 -C--global-option=--with-csc_swscale -C--global-option=--with-debug -C--global-option=--with-openh264 -C--global-option=--with-openh264_decoder -C--global-option=--with-openh264_encoder +%pyproject_wheel %{build_opts} %install %pyproject_install @@ -245,6 +226,20 @@ install -pm 644 README.md %{buildroot}%{_docdir}/xpra/ install -m0644 -D xpra.sysusers.conf %{buildroot}%{_sysusersdir}/xpra.conf +%post +%systemd_post xpra-encoder.service +%systemd_post xpra.service +# Suggested by 'rpmlint -e post-without-tmpfile-creation' +%tmpfiles_create %{_tmpfilesdir}/xpra.conf + +%preun +%systemd_preun xpra-encoder.service +%systemd_preun xpra.service + +%postun +%systemd_postun_with_restart xpra-encoder.service +%systemd_postun_with_restart xpra.service + %check %{?fedora:appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/xpra.appdata.xml} desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop @@ -254,6 +249,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %license COPYING %dir %{_sysconfdir}/xpra %dir %{_sysconfdir}/xpra/conf.d +%dir %{_sysconfdir}/xpra/content-type +%dir %{_sysconfdir}/xpra/pulse +%dir %{_rundir}/xpra +%config(noreplace) %{_sysconfdir}/xpra/pulse/xpra.pa %config(noreplace) %{_sysconfdir}/xpra/*.conf %config(noreplace) %{_sysconfdir}/xpra/nvenc.keys %config(noreplace) %{_sysconfdir}/xpra/conf.d/*.conf @@ -267,8 +266,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %config(noreplace) %{_sysconfdir}/xpra/content-type/30_title.conf %config(noreplace) %{_sysconfdir}/xpra/content-type/50_class.conf %config(noreplace) %{_sysconfdir}/xpra/content-type/70_commands.conf +%config(noreplace) %{_sysconfdir}/xpra/content-type/90_fallback.conf %config(noreplace) %{_sysconfdir}/xpra/http-headers/00_nocache.txt %config(noreplace) %{_sysconfdir}/xpra/http-headers/10_content_security_policy.txt +%ghost %{_rundir}/xpra/proxy %{_libexecdir}/xpra/ %{_bindir}/xpra %{_bindir}/xpra_launcher @@ -286,12 +287,30 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_datadir}/xpra/ %{cupslibdir}/backend/xpraforwarder %{_tmpfilesdir}/xpra.conf -%dir %{_rundir}/xpra %{_docdir}/xpra %{_unitdir}/xpra.service +%{_unitdir}/xpra-encoder.service %{_unitdir}/xpra.socket +%{_unitdir}/xpra-encoder.socket %{_udevrulesdir}/71-xpra-virtual-pointer.rules %{_sysusersdir}/xpra.conf +%files -n %{name}-client-gtk3 +%{python3_sitearch}/xpra/client/gui/ +%{python3_sitearch}/xpra/client/gtk3/ +%{python3_sitearch}/xpra/client/mixins/ +%{_libexecdir}/xpra/xpra_signal_listener +%{_datadir}/applications/xpra-launcher.desktop +%{_datadir}/applications/xpra-gui.desktop +%{_datadir}/applications/xpra.desktop +%{_datadir}/mime/packages/application-x-xpraconfig.xml +%{_datadir}/xpra/autostart.desktop + +%files -n %{name}-client-gnome +%{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/COPYING +%{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/README.md +%{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/extension.js +%{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/metadata.json + %changelog %autochangelog From 0d4804da3977b90c0942197a5c77b67adf9b3fa7 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 5 Nov 2025 21:22:30 +0100 Subject: [PATCH 13/42] Release 6.3.5 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index eaa5b82..6f7ffb8 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,4 @@ /xpra-5.1.tar.gz /xpra-5.1.1.tar.gz /xpra-6.3.4.tar.gz +/xpra-6.3.5.tar.gz diff --git a/sources b/sources index 7c3a737..07c5cad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.3.4.tar.gz) = f161bd9142d352c0d31ac64a55be9516c7fbc0f2e9021382a3444a1295436ecf977b693baec9b2a98816c0fa4e590ebcfc1a4f7f1433758113bbb99db932061c +SHA512 (xpra-6.3.5.tar.gz) = 837e747700f909846297fd5e548ebd8439093997b7dcb9d590d2a8761661c3ffd3a5d19ef0e3cc0faa8dd2e79b07cdf3829a349f1325690a2b750e7e0886ceaf diff --git a/xpra.spec b/xpra.spec index 19003f5..8c1f99b 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.3.4 +Version: 6.3.5 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops From 86f820622b6d882159de08dfd89655da4f6e04dc Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 9 Nov 2025 15:56:32 +0100 Subject: [PATCH 14/42] Release 6.3.6 --- .gitignore | 1 + sources | 2 +- xpra-fix_audio.patch | 11 +++++++++++ xpra.spec | 21 +++++++++++++++++++-- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 xpra-fix_audio.patch diff --git a/.gitignore b/.gitignore index 6f7ffb8..b8204c4 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,4 @@ /xpra-5.1.1.tar.gz /xpra-6.3.4.tar.gz /xpra-6.3.5.tar.gz +/xpra-6.3.6.tar.gz diff --git a/sources b/sources index 07c5cad..7a53cf7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.3.5.tar.gz) = 837e747700f909846297fd5e548ebd8439093997b7dcb9d590d2a8761661c3ffd3a5d19ef0e3cc0faa8dd2e79b07cdf3829a349f1325690a2b750e7e0886ceaf +SHA512 (xpra-6.3.6.tar.gz) = 9c635645c7902d80d841ec50476e409a1c07d7e7a7bcbe5be56655187bf5729068a944211773a1a5f1a462462f81a79623d20d65c2a737494cf5407531d5286c diff --git a/xpra-fix_audio.patch b/xpra-fix_audio.patch new file mode 100644 index 0000000..5dab7ab --- /dev/null +++ b/xpra-fix_audio.patch @@ -0,0 +1,11 @@ +--- a/fs/etc/xpra/xpra.orig.conf 2025-11-02 12:49:06.000000000 +0100 ++++ b/fs/etc/xpra/xpra.conf 2025-11-09 15:18:11.280317871 +0100 +@@ -20,3 +20,8 @@ + # may just be specified multiple times. + # - You may break a long line into multiple lines + # by ending each line with a backslash '\'. ++ ++xvfb = Xvfb -screen 0 1920x1100x24 -nolisten tcp -noreset ++ ++# Use PipeWire's PulseAudio socket, do NOT spawn pulseaudio ++pulseaudio = no diff --git a/xpra.spec b/xpra.spec index 8c1f99b..9888cdd 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.3.5 +Version: 6.3.6 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops @@ -35,6 +35,10 @@ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/% # Appdata file for Fedora Source1: %{name}.appdata.xml +# Suggested from update testing +# https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961 +Patch0: %{name}-fix_audio.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -71,6 +75,7 @@ BuildRequires: libasan BuildRequires: python3-cairo-devel BuildRequires: xorg-x11-server-Xorg BuildRequires: xorg-x11-drv-dummy +BuildRequires: xorg-x11-server-Xvfb BuildRequires: xorg-x11-xauth BuildRequires: xxhash-devel BuildRequires: xkbcomp @@ -140,7 +145,11 @@ BuildRequires: xclip This package contains the GTK3 xpra client. %prep -%autosetup -n %{name}-%{version} +%autosetup -n %{name}-%{version} -N + +%if 0%{?fedora} || 0%{?rhel} >= 9 +%patch -P 0 -p1 -b .backup +%endif rm -rf *.egg-info @@ -154,6 +163,12 @@ cat >xpra.sysusers.conf <Xwrapper.config < Date: Wed, 3 Dec 2025 11:54:14 +0100 Subject: [PATCH 15/42] Fix rhbz#2417964 --- xpra-bug4724.patch | 59 ++++++++++++++++++++++++++++++++++++++++++++++ xpra.spec | 4 ++++ 2 files changed, 63 insertions(+) create mode 100644 xpra-bug4724.patch diff --git a/xpra-bug4724.patch b/xpra-bug4724.patch new file mode 100644 index 0000000..d9feb32 --- /dev/null +++ b/xpra-bug4724.patch @@ -0,0 +1,59 @@ +From 64d76c103d8d6534da22e52ff3c412548e622164 Mon Sep 17 00:00:00 2001 +From: ndias +Date: Tue, 2 Dec 2025 17:54:00 +0000 +Subject: [PATCH 1/2] Update extension.js + +Update extension to work with gnome-shell 49 +--- + .../extensions/input-source-manager@xpra_org/extension.js | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js +index 870927dbed..7b8478bdce 100644 +--- a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js ++++ b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js +@@ -18,8 +18,8 @@ + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +-const { Gio } = imports.gi; +-const { getInputSourceManager } = imports.ui.status.keyboard; ++import Gio from 'gi://Gio'; ++import * as getInputSourceManager from 'resource:///org/gnome/shell/ui/status/keyboard.js'; + + const XMLInterface = ` + +@@ -40,7 +40,7 @@ function init(meta) { + return new InputSourceManagerInterface(); + } + +-class InputSourceManagerInterface { ++export default class InputSourceManagerInterface { + enable() { + this._ism = new ISMWrapper(); + this._dbusObj= Gio.DBusExportedObject.wrapJSObject(XMLInterface, this._ism); + +From 4e7e4b54b37d4701c90ac2d6603d84b64e00e49b Mon Sep 17 00:00:00 2001 +From: ndias +Date: Tue, 2 Dec 2025 17:56:34 +0000 +Subject: [PATCH 2/2] Update metadata.json + +Update to work with gnome-shell 49 +--- + .../extensions/input-source-manager@xpra_org/metadata.json | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json +index c99d8362d9..cfc3c822c2 100644 +--- a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json ++++ b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json +@@ -9,7 +9,8 @@ + "41", + "42", + "43", +- "44" ++ "44", ++ "49" + ], + "url": "https://github.com/Xpra-org/xpra/", + "uuid": "input-source-manager@xpra_org", diff --git a/xpra.spec b/xpra.spec index 9888cdd..2c9c8cb 100644 --- a/xpra.spec +++ b/xpra.spec @@ -39,6 +39,9 @@ Source1: %{name}.appdata.xml # https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961 Patch0: %{name}-fix_audio.patch +# Fix rhbz#2417964 +Patch1: %{name}-bug4724.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -150,6 +153,7 @@ This package contains the GTK3 xpra client. %if 0%{?fedora} || 0%{?rhel} >= 9 %patch -P 0 -p1 -b .backup %endif +%patch -P 1 -p1 -b .backup rm -rf *.egg-info From 17859a7cbc34cfdd157753f1d39927345a9f0e60 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 3 Dec 2025 12:06:27 +0100 Subject: [PATCH 16/42] Avoid backup of patched file --- xpra.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 2c9c8cb..e80ad9a 100644 --- a/xpra.spec +++ b/xpra.spec @@ -153,7 +153,7 @@ This package contains the GTK3 xpra client. %if 0%{?fedora} || 0%{?rhel} >= 9 %patch -P 0 -p1 -b .backup %endif -%patch -P 1 -p1 -b .backup +%patch -P 1 -p1 rm -rf *.egg-info From 5edd0f38c94b76b4ea72b366b5930c1d16789197 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Mon, 8 Dec 2025 16:04:36 +0100 Subject: [PATCH 17/42] Release 6.4 --- .gitignore | 1 + sources | 2 +- xpra.spec | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b8204c4..7689e96 100644 --- a/.gitignore +++ b/.gitignore @@ -94,3 +94,4 @@ /xpra-6.3.4.tar.gz /xpra-6.3.5.tar.gz /xpra-6.3.6.tar.gz +/xpra-6.4.tar.gz diff --git a/sources b/sources index 7a53cf7..a030efb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.3.6.tar.gz) = 9c635645c7902d80d841ec50476e409a1c07d7e7a7bcbe5be56655187bf5729068a944211773a1a5f1a462462f81a79623d20d65c2a737494cf5407531d5286c +SHA512 (xpra-6.4.tar.gz) = c82010f635e2446e98ea68ebd330686d48362843205e164818f7a9d84d444800388ae485982a803ee2ef508d940f25da5e40462b52d7d4b591c308fc83946c85 diff --git a/xpra.spec b/xpra.spec index e80ad9a..c74f837 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.3.6 +Version: 6.4 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops @@ -319,7 +319,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files -n %{name}-client-gtk3 %{python3_sitearch}/xpra/client/gui/ %{python3_sitearch}/xpra/client/gtk3/ -%{python3_sitearch}/xpra/client/mixins/ %{_libexecdir}/xpra/xpra_signal_listener %{_datadir}/applications/xpra-launcher.desktop %{_datadir}/applications/xpra-gui.desktop From 2c5f1a286fe6de36763f2aff0d61d7352022cd9c Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Fri, 19 Dec 2025 17:01:21 +0100 Subject: [PATCH 18/42] Remove Xwrapper.config| Remove invalid paths (rhbz#2413528#c10) --- xpra.spec | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/xpra.spec b/xpra.spec index c74f837..172ab3b 100644 --- a/xpra.spec +++ b/xpra.spec @@ -167,12 +167,6 @@ cat >xpra.sysusers.conf <Xwrapper.config < Date: Fri, 19 Dec 2025 21:41:47 +0100 Subject: [PATCH 19/42] Set permmissions of /run/xpra/proxy directory --- xpra.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/xpra.spec b/xpra.spec index 172ab3b..febcea0 100644 --- a/xpra.spec +++ b/xpra.spec @@ -94,8 +94,6 @@ BuildRequires: pkgconfig(libswscale) BuildRequires: noopenh264-devel %endif -Requires: python3-pillow -Requires: python3-lz4 Requires: dbus-x11 Requires: xmodmap Requires: xrandr @@ -285,7 +283,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %config(noreplace) %{_sysconfdir}/xpra/content-type/90_fallback.conf %config(noreplace) %{_sysconfdir}/xpra/http-headers/00_nocache.txt %config(noreplace) %{_sysconfdir}/xpra/http-headers/10_content_security_policy.txt -%ghost %{_rundir}/xpra/proxy +%ghost %attr(1700,-,xpra) %{_rundir}/xpra/proxy %{_libexecdir}/xpra/ %{_bindir}/xpra %{_bindir}/xpra_launcher From 6b45e0bfebc0b6c60b1de324a2a0cd3b250e2da9 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Fri, 19 Dec 2025 22:02:28 +0100 Subject: [PATCH 20/42] Restore Requires packages --- xpra.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xpra.spec b/xpra.spec index febcea0..a2f8c25 100644 --- a/xpra.spec +++ b/xpra.spec @@ -94,6 +94,8 @@ BuildRequires: pkgconfig(libswscale) BuildRequires: noopenh264-devel %endif +Requires: python3-pillow +Requires: python3-lz4 Requires: dbus-x11 Requires: xmodmap Requires: xrandr From 441a7ed6a749485a78c0825ede44f5c2cc88d8cb Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Fri, 2 Jan 2026 13:56:03 +0100 Subject: [PATCH 21/42] Fix rhbz#2425762 --- xpra-6.4-fix_clipboard_on_wayland.patch | 31 +++++++++++++++++++++++++ xpra.spec | 4 ++++ 2 files changed, 35 insertions(+) create mode 100644 xpra-6.4-fix_clipboard_on_wayland.patch diff --git a/xpra-6.4-fix_clipboard_on_wayland.patch b/xpra-6.4-fix_clipboard_on_wayland.patch new file mode 100644 index 0000000..7fd7d91 --- /dev/null +++ b/xpra-6.4-fix_clipboard_on_wayland.patch @@ -0,0 +1,31 @@ +From 6fd2cd83ad2f69159287f6549032b30f3feb4696 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Fri, 5 Dec 2025 20:15:41 +0700 +Subject: [PATCH] #4728 match older function location + +--- + xpra/gtk/clipboard.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xpra/gtk/clipboard.py b/xpra/gtk/clipboard.py +index 586e4d740c..b1427c6129 100644 +--- a/xpra/gtk/clipboard.py ++++ b/xpra/gtk/clipboard.py +@@ -8,7 +8,7 @@ + from xpra.util.gobject import n_arg_signal, one_arg_signal + from xpra.clipboard.common import ClipboardCallback + from xpra.clipboard.targets import TEXT_TARGETS +-from xpra.clipboard.proxy import ClipboardProxyCore, filter_data ++from xpra.clipboard.proxy import ClipboardProxyCore + from xpra.clipboard.timeout import ClipboardTimeoutHelper + from xpra.os_util import gi_import + from xpra.util.str_fn import Ellipsizer +@@ -163,7 +163,7 @@ def get_targets(): + if sel: + data = sel.get_data() + if target in ("image/png", "image/jpeg"): +- data = filter_data(dtype=target, dformat=8, data=data) ++ data = self.filter_data(dtype=target, dformat=8, data=data) + got_contents(target, 8, data) + return + log.warn("Warning: can't find request target atom {target}") diff --git a/xpra.spec b/xpra.spec index a2f8c25..18b643d 100644 --- a/xpra.spec +++ b/xpra.spec @@ -42,6 +42,9 @@ Patch0: %{name}-fix_audio.patch # Fix rhbz#2417964 Patch1: %{name}-bug4724.patch +# Fix rhbz#2425762 +Patch2: %{name}-%{version}-fix_clipboard_on_wayland.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -154,6 +157,7 @@ This package contains the GTK3 xpra client. %patch -P 0 -p1 -b .backup %endif %patch -P 1 -p1 +%patch -P 2 -p1 rm -rf *.egg-info From 1d31ac32bef50a6c6a92c1b5948f73119035e34c Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 17 Jan 2026 19:31:18 +0100 Subject: [PATCH 22/42] Release 6.4.1 --- .gitignore | 1 + sources | 2 +- xpra-6.4-fix_clipboard_on_wayland.patch | 31 ------------------------- xpra.spec | 8 ++----- 4 files changed, 4 insertions(+), 38 deletions(-) delete mode 100644 xpra-6.4-fix_clipboard_on_wayland.patch diff --git a/.gitignore b/.gitignore index 7689e96..d55f8e6 100644 --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,4 @@ /xpra-6.3.5.tar.gz /xpra-6.3.6.tar.gz /xpra-6.4.tar.gz +/xpra-6.4.1.tar.gz diff --git a/sources b/sources index a030efb..279189e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.4.tar.gz) = c82010f635e2446e98ea68ebd330686d48362843205e164818f7a9d84d444800388ae485982a803ee2ef508d940f25da5e40462b52d7d4b591c308fc83946c85 +SHA512 (xpra-6.4.1.tar.gz) = a65ecfc9f095e7b4f75be7c45e2d7415bd964d492ab0b88239af632f6189866f2211d89cceb6732b3b7c04ae6fadcd229d4dee72af817470a24f1d60625992cd diff --git a/xpra-6.4-fix_clipboard_on_wayland.patch b/xpra-6.4-fix_clipboard_on_wayland.patch deleted file mode 100644 index 7fd7d91..0000000 --- a/xpra-6.4-fix_clipboard_on_wayland.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6fd2cd83ad2f69159287f6549032b30f3feb4696 Mon Sep 17 00:00:00 2001 -From: Antoine Martin -Date: Fri, 5 Dec 2025 20:15:41 +0700 -Subject: [PATCH] #4728 match older function location - ---- - xpra/gtk/clipboard.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xpra/gtk/clipboard.py b/xpra/gtk/clipboard.py -index 586e4d740c..b1427c6129 100644 ---- a/xpra/gtk/clipboard.py -+++ b/xpra/gtk/clipboard.py -@@ -8,7 +8,7 @@ - from xpra.util.gobject import n_arg_signal, one_arg_signal - from xpra.clipboard.common import ClipboardCallback - from xpra.clipboard.targets import TEXT_TARGETS --from xpra.clipboard.proxy import ClipboardProxyCore, filter_data -+from xpra.clipboard.proxy import ClipboardProxyCore - from xpra.clipboard.timeout import ClipboardTimeoutHelper - from xpra.os_util import gi_import - from xpra.util.str_fn import Ellipsizer -@@ -163,7 +163,7 @@ def get_targets(): - if sel: - data = sel.get_data() - if target in ("image/png", "image/jpeg"): -- data = filter_data(dtype=target, dformat=8, data=data) -+ data = self.filter_data(dtype=target, dformat=8, data=data) - got_contents(target, 8, data) - return - log.warn("Warning: can't find request target atom {target}") diff --git a/xpra.spec b/xpra.spec index 18b643d..b49d6c8 100644 --- a/xpra.spec +++ b/xpra.spec @@ -3,7 +3,7 @@ # %if 0%{?fedora} -%bcond_without openh264 +%bcond_with openh264 %else %bcond_with openh264 %endif @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.4 +Version: 6.4.1 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops @@ -42,9 +42,6 @@ Patch0: %{name}-fix_audio.patch # Fix rhbz#2417964 Patch1: %{name}-bug4724.patch -# Fix rhbz#2425762 -Patch2: %{name}-%{version}-fix_clipboard_on_wayland.patch - BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -157,7 +154,6 @@ This package contains the GTK3 xpra client. %patch -P 0 -p1 -b .backup %endif %patch -P 1 -p1 -%patch -P 2 -p1 rm -rf *.egg-info From a4ab6bd044376042f7dce2b1334ac3f2f60a8a2e Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 31 Jan 2026 15:32:32 +0100 Subject: [PATCH 23/42] Release 6.4.2 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d55f8e6..2d9eae0 100644 --- a/.gitignore +++ b/.gitignore @@ -96,3 +96,4 @@ /xpra-6.3.6.tar.gz /xpra-6.4.tar.gz /xpra-6.4.1.tar.gz +/xpra-6.4.2.tar.gz diff --git a/sources b/sources index 279189e..7b3cb3f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.4.1.tar.gz) = a65ecfc9f095e7b4f75be7c45e2d7415bd964d492ab0b88239af632f6189866f2211d89cceb6732b3b7c04ae6fadcd229d4dee72af817470a24f1d60625992cd +SHA512 (xpra-6.4.2.tar.gz) = e4324083afa7ccce749ee497d72ecc5e49cf67888250711ddc4daad73314c95521d51a5047e2b2d6f4a7b6fdd0af702092855f8bc8c2b20d21f45737ddec4eb2 diff --git a/xpra.spec b/xpra.spec index b49d6c8..71d159f 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.4.1 +Version: 6.4.2 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops From 93c0763d1412536c12d5ba11b695b5599fda5bbe Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 31 Jan 2026 16:10:51 +0100 Subject: [PATCH 24/42] Fix runtime dependencies --- xpra.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 71d159f..92d696b 100644 --- a/xpra.spec +++ b/xpra.spec @@ -131,7 +131,7 @@ network bandwidth constraints. %package -n %{name}-client-gnome Summary: Gnome integration for the xpra client -Requires: %{name}-client-gtk3 = 1:%{version}-%{release} +Requires: %{name}-client-gtk3%{?_isa} = 1:%{version}-%{release} Requires: gnome-shell-extension-appindicator %description -n %{name}-client-gnome @@ -143,6 +143,7 @@ is required for querying and activating keyboard input sources. %package -n %{name}-client-gtk3 Summary: GTK3 xpra client BuildRequires: xclip +Requires: %{name}%{?_isa} = 1:%{version}-%{release} %description -n %{name}-client-gtk3 This package contains the GTK3 xpra client. From 31ae8a7c1b565c799d7431bbe938ca6b5ff10dec Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 1 Feb 2026 15:34:33 +0100 Subject: [PATCH 25/42] Release 6.4.3 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2d9eae0..ef4ec76 100644 --- a/.gitignore +++ b/.gitignore @@ -97,3 +97,4 @@ /xpra-6.4.tar.gz /xpra-6.4.1.tar.gz /xpra-6.4.2.tar.gz +/xpra-6.4.3.tar.gz diff --git a/sources b/sources index 7b3cb3f..cea6b78 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.4.2.tar.gz) = e4324083afa7ccce749ee497d72ecc5e49cf67888250711ddc4daad73314c95521d51a5047e2b2d6f4a7b6fdd0af702092855f8bc8c2b20d21f45737ddec4eb2 +SHA512 (xpra-6.4.3.tar.gz) = 8d67ca654c240ce3c581d54e5ff002a0f658df0e02d7367249fc000b3462fc1d4441fc4b02a5152048a225681ff1dfd7497471105655155e09375e0ab02ef85c diff --git a/xpra.spec b/xpra.spec index 92d696b..e294d8d 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.4.2 +Version: 6.4.3 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops From 4dc62fbe24cd1e84f8f1889a12bc28b4cb08da8d Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Fri, 6 Feb 2026 12:49:34 +0100 Subject: [PATCH 26/42] Rebuild for procps-ng-4.0.6 From ea8cea7b0eac586df0eebfe917c89ca64b32aae3 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Fri, 6 Feb 2026 14:24:12 +0100 Subject: [PATCH 27/42] Set pygobject cflags --- xpra.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index e294d8d..d56446b 100644 --- a/xpra.spec +++ b/xpra.spec @@ -172,7 +172,7 @@ EOF %pyproject_buildrequires -x tests %build -export CFLAGS="%{optflags} -I%{_includedir}/security" +export CFLAGS="%{optflags} -I%{_includedir}/security %(pkgconf --cflags pygobject-3.0)" %pyproject_wheel %{build_opts} %install From 62f74a79ba1efa838b4103a40bb4087a45607b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= Date: Mon, 23 Feb 2026 15:30:29 +0100 Subject: [PATCH 28/42] Fix invalid extras in %pyproject_buildrequires -x The extras requested via -x do not match the project's upstream metadata, causing a build failure with the new extras validation in pyproject-rpm-macros. See: https://src.fedoraproject.org/rpms/pyproject-rpm-macros/pull-request/534 --- xpra.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index d56446b..1f59647 100644 --- a/xpra.spec +++ b/xpra.spec @@ -169,7 +169,7 @@ g xpra - EOF %generate_buildrequires -%pyproject_buildrequires -x tests +%pyproject_buildrequires %build export CFLAGS="%{optflags} -I%{_includedir}/security %(pkgconf --cflags pygobject-3.0)" From 2230f6450e6b8bd11a81aaaa9fcdf086df80540f Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 19 Mar 2026 22:29:16 +0100 Subject: [PATCH 29/42] Rebuilt for libvpx-1.6.0 From 44ba426fe7423994ceb5ba9e5230a19c3aca7cd7 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Mon, 4 May 2026 14:25:08 +0200 Subject: [PATCH 30/42] Release 6.4.4 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ef4ec76..62aa06f 100644 --- a/.gitignore +++ b/.gitignore @@ -98,3 +98,4 @@ /xpra-6.4.1.tar.gz /xpra-6.4.2.tar.gz /xpra-6.4.3.tar.gz +/xpra-6.4.4.tar.gz diff --git a/sources b/sources index cea6b78..a194e64 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.4.3.tar.gz) = 8d67ca654c240ce3c581d54e5ff002a0f658df0e02d7367249fc000b3462fc1d4441fc4b02a5152048a225681ff1dfd7497471105655155e09375e0ab02ef85c +SHA512 (xpra-6.4.4.tar.gz) = e4f19ce7d6090b8236faa0087116b7bd59782c923e96994040e3807842b09932b8f397ef2c85bf412537db4278e8b8baf23d216fa6b080d7196a2f82b5493342 diff --git a/xpra.spec b/xpra.spec index 1f59647..b08db79 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.4.3 +Version: 6.4.4 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops From 35f60a93156999cca49bb331fac6e8ed2872a7a8 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 3 Jun 2026 23:53:45 +0200 Subject: [PATCH 31/42] Rebuilt for Python 3.15 From 9c237c7b7165e1daf00dc95c7c7b95a8956a4bd1 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 17 Jun 2026 14:06:06 +0200 Subject: [PATCH 32/42] Release 6.5 --- .gitignore | 1 + sources | 2 +- xpra-bug4724.patch | 59 ---------------------------------------------- xpra.spec | 6 +---- 4 files changed, 3 insertions(+), 65 deletions(-) delete mode 100644 xpra-bug4724.patch diff --git a/.gitignore b/.gitignore index 62aa06f..11a50fc 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,4 @@ /xpra-6.4.2.tar.gz /xpra-6.4.3.tar.gz /xpra-6.4.4.tar.gz +/xpra-6.5.tar.gz diff --git a/sources b/sources index a194e64..0db8ef9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.4.4.tar.gz) = e4f19ce7d6090b8236faa0087116b7bd59782c923e96994040e3807842b09932b8f397ef2c85bf412537db4278e8b8baf23d216fa6b080d7196a2f82b5493342 +SHA512 (xpra-6.5.tar.gz) = 142871f51c2eab390317ffa1f4bd878bbcc4e122b7200c98e4f4125969a32c251da2a5b83b4c31992358abbd707196b1f4ddd2df78b199853af73b37266c089a diff --git a/xpra-bug4724.patch b/xpra-bug4724.patch deleted file mode 100644 index d9feb32..0000000 --- a/xpra-bug4724.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 64d76c103d8d6534da22e52ff3c412548e622164 Mon Sep 17 00:00:00 2001 -From: ndias -Date: Tue, 2 Dec 2025 17:54:00 +0000 -Subject: [PATCH 1/2] Update extension.js - -Update extension to work with gnome-shell 49 ---- - .../extensions/input-source-manager@xpra_org/extension.js | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js -index 870927dbed..7b8478bdce 100644 ---- a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js -+++ b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/extension.js -@@ -18,8 +18,8 @@ - * SPDX-License-Identifier: GPL-2.0-or-later - */ - --const { Gio } = imports.gi; --const { getInputSourceManager } = imports.ui.status.keyboard; -+import Gio from 'gi://Gio'; -+import * as getInputSourceManager from 'resource:///org/gnome/shell/ui/status/keyboard.js'; - - const XMLInterface = ` - -@@ -40,7 +40,7 @@ function init(meta) { - return new InputSourceManagerInterface(); - } - --class InputSourceManagerInterface { -+export default class InputSourceManagerInterface { - enable() { - this._ism = new ISMWrapper(); - this._dbusObj= Gio.DBusExportedObject.wrapJSObject(XMLInterface, this._ism); - -From 4e7e4b54b37d4701c90ac2d6603d84b64e00e49b Mon Sep 17 00:00:00 2001 -From: ndias -Date: Tue, 2 Dec 2025 17:56:34 +0000 -Subject: [PATCH 2/2] Update metadata.json - -Update to work with gnome-shell 49 ---- - .../extensions/input-source-manager@xpra_org/metadata.json | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json -index c99d8362d9..cfc3c822c2 100644 ---- a/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json -+++ b/fs/share/gnome-shell/extensions/input-source-manager@xpra_org/metadata.json -@@ -9,7 +9,8 @@ - "41", - "42", - "43", -- "44" -+ "44", -+ "49" - ], - "url": "https://github.com/Xpra-org/xpra/", - "uuid": "input-source-manager@xpra_org", diff --git a/xpra.spec b/xpra.spec index b08db79..cd62830 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.4.4 +Version: 6.5 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops @@ -39,9 +39,6 @@ Source1: %{name}.appdata.xml # https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961 Patch0: %{name}-fix_audio.patch -# Fix rhbz#2417964 -Patch1: %{name}-bug4724.patch - BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -154,7 +151,6 @@ This package contains the GTK3 xpra client. %if 0%{?fedora} || 0%{?rhel} >= 9 %patch -P 0 -p1 -b .backup %endif -%patch -P 1 -p1 rm -rf *.egg-info From 0abb78cc262640856a5f3a241e0638b676ae54fe Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Thu, 18 Jun 2026 16:34:46 +0200 Subject: [PATCH 33/42] Release 6.5 --- xpra.spec | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/xpra.spec b/xpra.spec index cd62830..c96406a 100644 --- a/xpra.spec +++ b/xpra.spec @@ -50,6 +50,7 @@ BuildRequires: desktop-file-utils BuildRequires: libvpx-devel BuildRequires: libXdamage-devel BuildRequires: libXres-devel +BuildRequires: lua-devel BuildRequires: cups-devel BuildRequires: python3-cups BuildRequires: redhat-rpm-config @@ -113,7 +114,6 @@ Requires: pulseaudio-utils%{?_isa} Requires: cups-filesystem Requires: shared-mime-info%{?_isa} Requires: systemd-udev%{?_isa} - %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 @@ -130,7 +130,6 @@ network bandwidth constraints. Summary: Gnome integration for the xpra client Requires: %{name}-client-gtk3%{?_isa} = 1:%{version}-%{release} Requires: gnome-shell-extension-appindicator - %description -n %{name}-client-gnome This package installs the GNOME Shell extensions that can help in restoring the system tray functionality. @@ -141,10 +140,19 @@ is required for querying and activating keyboard input sources. Summary: GTK3 xpra client BuildRequires: xclip Requires: %{name}%{?_isa} = 1:%{version}-%{release} - %description -n %{name}-client-gtk3 This package contains the GTK3 xpra client. +%package -n %{name}-plugin-lua +Summary: Wireshark/tshark Lua dissector for the Xpra remote display protocol +BuildRequires: wireshark-devel +%{?lua_version:Requires: lua(abi) = %{lua_version}} +Requires: %{name}%{?_isa} = 1:%{version}-%{release} +%description -n %{name}-plugin-lua +The dissector registers on TCP port 14500 (xpra default) and also +installs a heuristic detector so it picks up traffic on any port. +Use Decode As → Xpra to force it on a different port. + %prep %autosetup -n %{name}-%{version} -N @@ -239,6 +247,16 @@ install -m0644 -D xpra.sysusers.conf %{buildroot}%{_sysusersdir}/xpra.conf # Remove invalid paths sed -e 's|build/bdist.linux-%{?_arch}/wheel/xpra-%{version}.data/data||g' -i %{buildroot}%{_sysconfdir}/xpra/conf.d/55_server_x11.conf +# Move Lua script into wireshark plugin directory and remove invalid /usr sub-directory +%define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan +mkdir -p %{buildroot}%{wireshark_plugindir} +%ifarch %{ix86} +cp -p %{buildroot}/usr/%{_libdir}/wireshark/plugins/xpra_dissector.lua %{buildroot}%{wireshark_plugindir}/ +%else +cp -p %{buildroot}/usr/%{wireshark_plugindir}/xpra_dissector.lua %{buildroot}%{wireshark_plugindir}/ +%endif +rm -rf %{buildroot}/usr/%{_libdir} + %post %systemd_post xpra-encoder.service %systemd_post xpra.service @@ -292,6 +310,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_datadir}/icons/hicolor/48x48/apps/xpra-mdns.png %{_datadir}/icons/hicolor/48x48/apps/xpra-shadow.png %{_datadir}/icons/hicolor/64x64/apps/xpra.png +%{_datadir}/icons/xpra-large.png %{_mandir}/man1/xpra.1.* %{_mandir}/man1/xpra_*.1.* %{_mandir}/man1/run_scaled.1.* @@ -324,5 +343,8 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/extension.js %{_datadir}/gnome-shell/extensions/%{gnome_shell_extension}/metadata.json +%files -n %{name}-plugin-lua +%{wireshark_plugindir}/xpra_dissector.lua + %changelog %autochangelog From a738b6055a1b7b1f42643c59bd0bebdd84ca58db Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Thu, 18 Jun 2026 16:52:52 +0200 Subject: [PATCH 34/42] Add wireshark as required package --- xpra.spec | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/xpra.spec b/xpra.spec index c96406a..b1be425 100644 --- a/xpra.spec +++ b/xpra.spec @@ -126,28 +126,29 @@ 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 -n %{name}-client-gnome -Summary: Gnome integration for the xpra client -Requires: %{name}-client-gtk3%{?_isa} = 1:%{version}-%{release} -Requires: gnome-shell-extension-appindicator +%package -n %{name}-client-gnome +Summary: Gnome integration for the xpra client +Requires: %{name}-client-gtk3%{?_isa} = 1:%{version}-%{release} +Requires: gnome-shell-extension-appindicator %description -n %{name}-client-gnome This package installs the GNOME Shell extensions that can help in restoring the system tray functionality. It also includes the gnome_shell_extension extension which is required for querying and activating keyboard input sources. -%package -n %{name}-client-gtk3 -Summary: GTK3 xpra client -BuildRequires: xclip -Requires: %{name}%{?_isa} = 1:%{version}-%{release} +%package -n %{name}-client-gtk3 +Summary: GTK3 xpra client +BuildRequires: xclip +Requires: %{name}%{?_isa} = 1:%{version}-%{release} %description -n %{name}-client-gtk3 This package contains the GTK3 xpra client. -%package -n %{name}-plugin-lua -Summary: Wireshark/tshark Lua dissector for the Xpra remote display protocol -BuildRequires: wireshark-devel +%package -n %{name}-plugin-lua +Summary: Wireshark/tshark Lua dissector for the Xpra remote display protocol +BuildRequires: wireshark-devel %{?lua_version:Requires: lua(abi) = %{lua_version}} -Requires: %{name}%{?_isa} = 1:%{version}-%{release} +Requires: %{name}%{?_isa} = 1:%{version}-%{release} +Requires: wireshark%{?_isa} %description -n %{name}-plugin-lua The dissector registers on TCP port 14500 (xpra default) and also installs a heuristic detector so it picks up traffic on any port. From ede8108a1485550fffab7fbd67b434258fc9a101 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 21 Jun 2026 19:11:55 +0200 Subject: [PATCH 35/42] Fix wireshark dependency --- xpra.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index b1be425..d01942d 100644 --- a/xpra.spec +++ b/xpra.spec @@ -148,7 +148,7 @@ Summary: Wireshark/tshark Lua dissector for the Xpra remote display protocol BuildRequires: wireshark-devel %{?lua_version:Requires: lua(abi) = %{lua_version}} Requires: %{name}%{?_isa} = 1:%{version}-%{release} -Requires: wireshark%{?_isa} +Requires: wireshark-cli%{?_isa} %description -n %{name}-plugin-lua The dissector registers on TCP port 14500 (xpra default) and also installs a heuristic detector so it picks up traffic on any port. From 11cfad714133a0cd1a84585de49cf1371fb13c99 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 1 Jul 2026 22:37:58 +0200 Subject: [PATCH 36/42] Fix rhbz#2496082 --- xpra-6.5-rhbz2496082.patch | 27 +++++++++++++++++++++++++++ xpra.spec | 5 +++++ 2 files changed, 32 insertions(+) create mode 100644 xpra-6.5-rhbz2496082.patch diff --git a/xpra-6.5-rhbz2496082.patch b/xpra-6.5-rhbz2496082.patch new file mode 100644 index 0000000..4e75635 --- /dev/null +++ b/xpra-6.5-rhbz2496082.patch @@ -0,0 +1,27 @@ +From da3fa8745e7e67845e63cf6d80ed31c768f97138 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Thu, 25 Jun 2026 00:36:32 +0700 +Subject: [PATCH] #4938 always start the protocol, even with remote starts + +--- + xpra/scripts/main.py | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py +index ba06004fac..5f17508af4 100755 +--- a/xpra/scripts/main.py ++++ b/xpra/scripts/main.py +@@ -2075,7 +2075,12 @@ def handshake_complete(*_args) -> None: + while True: + try: + conn = connect_or_fail(params, opts) +- app.make_protocol(conn) ++ protocol = app.make_protocol(conn) ++ if opts.attach is not False: ++ # the command clients (attach=False) start the protocol from their own `run()` method, ++ # but the regular client relies on the caller to start it ++ # (just like `do_setup_connection` does for the normal attach path): ++ protocol.start() + may_show_progress(app, 80, "connecting to server") + break + except InitExit as e: diff --git a/xpra.spec b/xpra.spec index d01942d..68d9ebd 100644 --- a/xpra.spec +++ b/xpra.spec @@ -39,6 +39,9 @@ Source1: %{name}.appdata.xml # https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961 Patch0: %{name}-fix_audio.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2496082 +Patch1: %{name}-6.5-rhbz2496082.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -161,6 +164,8 @@ Use Decode As → Xpra to force it on a different port. %patch -P 0 -p1 -b .backup %endif +%patch -P 1 -p1 -b .backup + rm -rf *.egg-info # cc1: error: unrecognized compiler option ‘-mfpmath=387’ From 9b2db3c019a08974eaf7b9bcd47b046c6362d566 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 5 Jul 2026 21:38:10 +0200 Subject: [PATCH 37/42] Release 6.5.1 --- .gitignore | 1 + sources | 2 +- xpra-6.5-rhbz2496082.patch | 27 --------------------------- xpra.spec | 7 +------ 4 files changed, 3 insertions(+), 34 deletions(-) delete mode 100644 xpra-6.5-rhbz2496082.patch diff --git a/.gitignore b/.gitignore index 11a50fc..939446b 100644 --- a/.gitignore +++ b/.gitignore @@ -100,3 +100,4 @@ /xpra-6.4.3.tar.gz /xpra-6.4.4.tar.gz /xpra-6.5.tar.gz +/xpra-6.5.1.tar.gz diff --git a/sources b/sources index 0db8ef9..91639cf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.5.tar.gz) = 142871f51c2eab390317ffa1f4bd878bbcc4e122b7200c98e4f4125969a32c251da2a5b83b4c31992358abbd707196b1f4ddd2df78b199853af73b37266c089a +SHA512 (xpra-6.5.1.tar.gz) = b2e1b7975b79e6fa0790b63d879f9943471d4ce536ca17f20d96c997881ab5f75b6fc12bbe86730dbc4ea46a28c46960c23cdd984dc4090d6a09a74261081eab diff --git a/xpra-6.5-rhbz2496082.patch b/xpra-6.5-rhbz2496082.patch deleted file mode 100644 index 4e75635..0000000 --- a/xpra-6.5-rhbz2496082.patch +++ /dev/null @@ -1,27 +0,0 @@ -From da3fa8745e7e67845e63cf6d80ed31c768f97138 Mon Sep 17 00:00:00 2001 -From: Antoine Martin -Date: Thu, 25 Jun 2026 00:36:32 +0700 -Subject: [PATCH] #4938 always start the protocol, even with remote starts - ---- - xpra/scripts/main.py | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py -index ba06004fac..5f17508af4 100755 ---- a/xpra/scripts/main.py -+++ b/xpra/scripts/main.py -@@ -2075,7 +2075,12 @@ def handshake_complete(*_args) -> None: - while True: - try: - conn = connect_or_fail(params, opts) -- app.make_protocol(conn) -+ protocol = app.make_protocol(conn) -+ if opts.attach is not False: -+ # the command clients (attach=False) start the protocol from their own `run()` method, -+ # but the regular client relies on the caller to start it -+ # (just like `do_setup_connection` does for the normal attach path): -+ protocol.start() - may_show_progress(app, 80, "connecting to server") - break - except InitExit as e: diff --git a/xpra.spec b/xpra.spec index 68d9ebd..e614d5b 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.5 +Version: 6.5.1 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops @@ -39,9 +39,6 @@ Source1: %{name}.appdata.xml # https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961 Patch0: %{name}-fix_audio.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2496082 -Patch1: %{name}-6.5-rhbz2496082.patch - BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -164,8 +161,6 @@ Use Decode As → Xpra to force it on a different port. %patch -P 0 -p1 -b .backup %endif -%patch -P 1 -p1 -b .backup - rm -rf *.egg-info # cc1: error: unrecognized compiler option ‘-mfpmath=387’ From e26002cf3c62e6b35937b9b61173bf97007c26e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 09:24:59 +0000 Subject: [PATCH 38/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From bbefa6f1aad9107521f31119c565cfbb5c902281 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 22 Jul 2026 10:15:58 +0200 Subject: [PATCH 39/42] Rebuilt for Python 3.15.0b4 ABI change From 32dcee0869cd027bf573a6b2ebc6e0e0fc563800 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Mon, 27 Jul 2026 11:08:48 +0200 Subject: [PATCH 40/42] Release 6.5.2 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 939446b..5facf88 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,4 @@ /xpra-6.4.4.tar.gz /xpra-6.5.tar.gz /xpra-6.5.1.tar.gz +/xpra-6.5.2.tar.gz diff --git a/sources b/sources index 91639cf..17c7ca8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.5.1.tar.gz) = b2e1b7975b79e6fa0790b63d879f9943471d4ce536ca17f20d96c997881ab5f75b6fc12bbe86730dbc4ea46a28c46960c23cdd984dc4090d6a09a74261081eab +SHA512 (xpra-6.5.2.tar.gz) = 7e9097e046f6ca1cf82aca9896e6b97a1fea1ac7f2468fe5ac9fc6f6a7f56827eff5f8945c28a394002ca98db349190f5d3c9f63049417a5f1c99f18bff2b284 diff --git a/xpra.spec b/xpra.spec index e614d5b..1364608 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.5.1 +Version: 6.5.2 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops From aa267f21582ebffead1117d1dfbe0a293d6d449d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 11 Oct 2024 18:21:26 +0100 Subject: [PATCH 41/42] Rebuild for ffmpeg-7 (rhbz#2508238)| [bump release: 1] --- xpra.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/xpra.spec b/xpra.spec index 89c4b46..4ac5e54 100644 --- a/xpra.spec +++ b/xpra.spec @@ -50,7 +50,7 @@ Name: xpra Version: 5.0.10 -Release: %autorelease +Release: %autorelease -b 1 Summary: Remote display server for applications and desktops # Automatically converted from old format: GPLv2+ and BSD and LGPLv3+ and MIT - review is highly recommended. License: GPL-2.0-or-later AND LicenseRef-Callaway-BSD AND LGPL-3.0-or-later AND LicenseRef-Callaway-MIT @@ -185,9 +185,7 @@ network bandwidth constraints. %setup -q -n %{name}-%{version} %patch -P1 -p1 -%if 0%{?fedora} >= 41 %patch -P2 -p1 -%endif # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} From c20b1b3deb0ca9b6e5ec5f18f7d4852f3b7c6a8f Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 19 Aug 2026 18:16:14 +0200 Subject: [PATCH 42/42] Release 6.5.3 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5facf88..283cf77 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,4 @@ /xpra-6.5.tar.gz /xpra-6.5.1.tar.gz /xpra-6.5.2.tar.gz +/xpra-6.5.3.tar.gz diff --git a/sources b/sources index 17c7ca8..c8ed7c8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-6.5.2.tar.gz) = 7e9097e046f6ca1cf82aca9896e6b97a1fea1ac7f2468fe5ac9fc6f6a7f56827eff5f8945c28a394002ca98db349190f5d3c9f63049417a5f1c99f18bff2b284 +SHA512 (xpra-6.5.3.tar.gz) = 98eee6577d26cf15cdf8115352e73601438804a69d5081d7af908d9c4fc03e44e723eb74cc6f468c92c8e935cc5e897bcdeda316d3f756905b368e83ac051d91 diff --git a/xpra.spec b/xpra.spec index 1364608..933f86c 100644 --- a/xpra.spec +++ b/xpra.spec @@ -24,7 +24,7 @@ %global build_opts -C--global-option=--without-nvidia -C--global-option=--without-pandoc_lua -C--global-option=--with-verbose -C--global-option=--with-Xdummy -C--global-option=--with-Xdummy_wrapper -C--global-option=--without-strict -C--global-option=--with-vpx %{?with_debug:-C--global-option=--with-debug} %{?with_openh264:-C--global-option=--with-openh264} -C--global-option=--without-cuda_rebuild -C--global-option=--with-client -C--global-option=--without-qt6_client -C--global-option=--without-pyglet_client -C--global-option=--without-enc_x264 Name: xpra -Version: 6.5.2 +Version: 6.5.3 Release: %autorelease Epoch: 1 Summary: Remote display server for applications and desktops