From 9c90c1c44c309002a7b4d207f3947a1e1634f824 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 26 Jun 2023 12:28:03 +0200 Subject: [PATCH 01/63] Rebuilt for Python 3.12 From 2b82082deb80bced10cc0f9366e5eef402f0842d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 19:14:59 +0000 Subject: [PATCH 02/63] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 13c7a2cb0419c34c91fc9042d3f3331c7e06bfe4 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 27 Aug 2023 11:21:24 +0200 Subject: [PATCH 03/63] Release 5.0 --- .gitignore | 1 + sources | 2 +- xpra.spec | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 885ad48..11e01e0 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ /xpra-4.4.4.tar.gz /xpra-4.4.5.tar.gz /xpra-4.4.6.tar.gz +/xpra-5.0.tar.gz diff --git a/sources b/sources index 3f1674e..b1e889e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.6.tar.gz) = b6236ded715d661c0de79b5e2e0315ed3077b410792986d85e88a89ead119cfcf31d49a6aad719e488300e800e585fc060d51cbf1b6aeccb0b0d8c8168712c81 +SHA512 (xpra-5.0.tar.gz) = 94d4ec4fa9581a9e184ee47b8f8d53a6f73cbbce1156e21c033805482f84779272a69a746efdb37ce564fdd5c74ef74f4e14351c858408f6b43e267f0ca03d62 diff --git a/xpra.spec b/xpra.spec index 2109c62..f7ec12a 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,7 +43,7 @@ %endif Name: xpra -Version: 4.4.6 +Version: 5.0 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -76,6 +76,7 @@ BuildRequires: systemd-devel BuildRequires: procps-ng-devel %endif BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libqrencode) BuildRequires: libdrm-devel BuildRequires: pkgconfig(libwebp) @@ -175,7 +176,7 @@ sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %build %set_build_flags -%{__python3} setup.py build --executable="%{__python3} -s" \ +%py3_build -- \ --with-verbose \ --with-vpx \ %{?_with_enc_x264} \ From 6a0712f0031aaccd11d1bb7fa07ad6a657a4aba8 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 2 Sep 2023 19:04:05 +0200 Subject: [PATCH 04/63] Release 5.0.1 --- .gitignore | 1 + sources | 2 +- xpra.spec | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 11e01e0..8119bd3 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,4 @@ /xpra-4.4.5.tar.gz /xpra-4.4.6.tar.gz /xpra-5.0.tar.gz +/xpra-5.0.1.tar.gz diff --git a/sources b/sources index b1e889e..2fdb546 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.tar.gz) = 94d4ec4fa9581a9e184ee47b8f8d53a6f73cbbce1156e21c033805482f84779272a69a746efdb37ce564fdd5c74ef74f4e14351c858408f6b43e267f0ca03d62 +SHA512 (xpra-5.0.1.tar.gz) = 202c05fb191fdc462a07c5659b33763b2090435ca16cfe2dd5261394a7092fdca432c8ac66a016cbe945802a3ecd8863b88c0822317739cbd477b37b8a3494cd diff --git a/xpra.spec b/xpra.spec index f7ec12a..63b44a1 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,7 +43,7 @@ %endif Name: xpra -Version: 5.0 +Version: 5.0.1 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -177,6 +177,7 @@ sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %build %set_build_flags %py3_build -- \ + --without-nvidia --without-pandoc_lua \ --with-verbose \ --with-vpx \ %{?_with_enc_x264} \ From cce31e65e8e70bbd3a013085a2880823662f232d Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 2 Sep 2023 20:02:01 +0200 Subject: [PATCH 05/63] Add python3-cups BR --- xpra.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xpra.spec b/xpra.spec index 63b44a1..c9d53f8 100644 --- a/xpra.spec +++ b/xpra.spec @@ -65,6 +65,7 @@ BuildRequires: libvpx-devel BuildRequires: libXdamage-devel BuildRequires: libXres-devel BuildRequires: cups-devel, cups +BuildRequires: python3-cups BuildRequires: redhat-rpm-config BuildRequires: python3-rpm-macros BuildRequires: gcc From 9048d2cd2a3c54acab6663d3eb06adf89579ecc1 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Tue, 19 Sep 2023 14:01:28 +0200 Subject: [PATCH 06/63] Release 5.0.2 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8119bd3..56a2467 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,4 @@ /xpra-4.4.6.tar.gz /xpra-5.0.tar.gz /xpra-5.0.1.tar.gz +/xpra-5.0.2.tar.gz diff --git a/sources b/sources index 2fdb546..17ff60f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.1.tar.gz) = 202c05fb191fdc462a07c5659b33763b2090435ca16cfe2dd5261394a7092fdca432c8ac66a016cbe945802a3ecd8863b88c0822317739cbd477b37b8a3494cd +SHA512 (xpra-5.0.2.tar.gz) = 66dfa31d4cdab078d2b6447b4b57ca1a51dab0b2911430ea3b96c6cf124b4a9a064d4fbe70e96faaf522f7a190374f12bafa7e97c9496d52733c56fa52bdbdfd diff --git a/xpra.spec b/xpra.spec index c9d53f8..e009bbd 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,7 +43,7 @@ %endif Name: xpra -Version: 5.0.1 +Version: 5.0.2 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT From c76677cdd35ed8d481ecc8b1402e7cd1211c9ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sat, 23 Sep 2023 23:58:02 +0100 Subject: [PATCH 07/63] Move ffmpeg plugin to Fedora one motivation was dnf Transaction test error: file /usr/lib64/python3.11/site-packages/xpra/codecs/ffmpeg/av_log.cpython-311-x86_64-linux-gnu.so conflicts between attempted installs of xpra-codecs-freeworld-5.0.1-2.fc38.1.x86_64 and xpra-5.0.1-2.fc38.x86_64 --- xpra.spec | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/xpra.spec b/xpra.spec index e009bbd..a855216 100644 --- a/xpra.spec +++ b/xpra.spec @@ -1,7 +1,13 @@ %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 @@ -64,11 +70,11 @@ BuildRequires: desktop-file-utils BuildRequires: libvpx-devel BuildRequires: libXdamage-devel BuildRequires: libXres-devel -BuildRequires: cups-devel, cups +BuildRequires: cups-devel BuildRequires: python3-cups BuildRequires: redhat-rpm-config BuildRequires: python3-rpm-macros -BuildRequires: gcc +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")` @@ -77,7 +83,6 @@ BuildRequires: systemd-devel BuildRequires: procps-ng-devel %endif BuildRequires: pkgconfig(libavif) -BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libqrencode) BuildRequires: libdrm-devel BuildRequires: pkgconfig(libwebp) @@ -102,9 +107,13 @@ BuildRequires: libasan %if %{with enc_x264} BuildRequires: x264-devel %endif -%if %{with dec_avcodec2} || %{with csc_swscale} -BuildRequires: ffmpeg-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 Requires: python3-pillow Requires: python3-cups @@ -189,7 +198,7 @@ sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py --with-Xdummy \ --with-Xdummy_wrapper \ --without-strict \ - --without-enc_ffmpeg + --with-enc_ffmpeg %install %py3_install From dfa1606cde140e5362409f43cb966983625ad31d Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 15 Oct 2023 14:42:05 +0200 Subject: [PATCH 08/63] Release 5.0.3 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 56a2467..01a0cf8 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,4 @@ /xpra-5.0.tar.gz /xpra-5.0.1.tar.gz /xpra-5.0.2.tar.gz +/xpra-5.0.3.tar.gz diff --git a/sources b/sources index 17ff60f..0d6abdf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.2.tar.gz) = 66dfa31d4cdab078d2b6447b4b57ca1a51dab0b2911430ea3b96c6cf124b4a9a064d4fbe70e96faaf522f7a190374f12bafa7e97c9496d52733c56fa52bdbdfd +SHA512 (xpra-5.0.3.tar.gz) = 8c028f0437213e5d0849258e2bb93a227ae3404b768853b597515db9b31b05fbbe60b45c58e4a2ed17349c4b77b9e0d15dbb8c48bef8cc27fe378ac8caba3686 diff --git a/xpra.spec b/xpra.spec index a855216..2ad4e51 100644 --- a/xpra.spec +++ b/xpra.spec @@ -49,7 +49,7 @@ %endif Name: xpra -Version: 5.0.2 +Version: 5.0.3 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT From 14038cc9cf3ee3a16071a83a42251229bda10c63 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 10:07:01 +0000 Subject: [PATCH 09/63] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 7fbb5931b1243435ffac989514e7d004a9654b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Wed, 31 Jan 2024 15:53:10 +0100 Subject: [PATCH 10/63] GCC 14 Fix Backport (Fixes RHBZ#2261813) --- 0001-GCC-14.patch | 102 ++++++++++++++++++++++++++++++++++++++++++++++ xpra.spec | 5 +++ 2 files changed, 107 insertions(+) create mode 100644 0001-GCC-14.patch diff --git a/0001-GCC-14.patch b/0001-GCC-14.patch new file mode 100644 index 0000000..ef6d726 --- /dev/null +++ b/0001-GCC-14.patch @@ -0,0 +1,102 @@ +From d8790b37d0da7fdcad9cad6e2a1d23e574965395 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= +Date: Wed, 31 Jan 2024 15:43:23 +0100 +Subject: [PATCH] GCC 14 + +--- + setup.py | 2 +- + xpra/platform/posix/proc_libproc.pyx | 44 +++++++++++----------------- + 2 files changed, 18 insertions(+), 28 deletions(-) + +diff --git a/setup.py b/setup.py +index 48c55ce..c38f7a2 100755 +--- a/setup.py ++++ b/setup.py +@@ -2189,7 +2189,7 @@ if pam_ENABLED: + #platform: + tace(sd_listen_ENABLED, "xpra.platform.posix.sd_listen", "libsystemd") + tace(proc_ENABLED and proc_use_procps, "xpra.platform.posix.proc_procps", "libprocps", extra_compile_args = "-Wno-error") +-tace(proc_ENABLED and proc_use_libproc, "xpra.platform.posix.proc_libproc", "libproc2", extra_compile_args = "-Wno-error") ++tace(proc_ENABLED and proc_use_libproc, "xpra.platform.posix.proc_libproc", "libproc2", language="c++") + + #codecs: + toggle_packages(enc_proxy_ENABLED, "xpra.codecs.proxy") +diff --git a/xpra/platform/posix/proc_libproc.pyx b/xpra/platform/posix/proc_libproc.pyx +index 577a542..0de8914 100644 +--- a/xpra/platform/posix/proc_libproc.pyx ++++ b/xpra/platform/posix/proc_libproc.pyx +@@ -1,10 +1,8 @@ + # This file is part of Xpra. +-# Copyright (C) 2022 Antoine Martin ++# Copyright (C) 2022-2024 Antoine Martin + # Xpra is released under the terms of the GNU GPL v2, or, at your option, any + # later version. See the file COPYING for details. + +-from libc.string cimport memset +- + from xpra.log import Logger + + log = Logger("util", "exec") +@@ -14,6 +12,9 @@ DEF PROC_PID = 0x1000 #process id numbers ( 0 terminated ) + + + cdef extern from "libproc2/pids.h": ++ ctypedef enum pids_item: ++ PIDS_ID_PPID ++ + # Opaque handle used by procps to store its buffers + struct pids_info: + pass +@@ -38,36 +39,25 @@ cdef extern from "libproc2/pids.h": + pids_counts *counts + pids_stack **stacks + +- # Flag used to query the parent process, part of the pids_item enum +- int PIDS_ID_PPID +- +- # Flag used to return one value per process, part of pids_select_type enum. +- # All we care about here is PPID which is the same for each thread within a +- # process. +- int PIDS_SELECT_PID ++ ctypedef enum pids_select_type: ++ PIDS_SELECT_PID ++ PIDS_SELECT_PID_THREADS ++ PIDS_SELECT_UID ++ PIDS_SELECT_UID_THREADS + +- int procps_pids_new(pids_info **info, int *items, int numitems) ++ int procps_pids_new(pids_info **info, pids_item *items, int numitems) + int procps_pids_unref(pids_info **info) +- pids_fetch *procps_pids_select(pids_info *info, unsigned int *pids, int pidcount, int select_type) ++ pids_fetch *procps_pids_select(pids_info *info, unsigned*pids, int pidcount, int select_type) + +-def get_parent_pid(int pid) -> int: +- cdef pids_info *handle +- cdef int selector +- +- handle = NULL +- selector = PIDS_ID_PPID ++def get_parent_pid(unsigned int pid) -> int: ++ cdef pids_info *handle = NULL ++ cdef pids_item selector = PIDS_ID_PPID + if procps_pids_new(&handle, &selector, 1) != 0: + return 0 + +- cdef unsigned int upid +- cdef pids_fetch *query +- cdef int retval +- +- upid = pid +- query = procps_pids_select(handle, &upid, 1, PIDS_SELECT_PID) +- if query == NULL or query.counts.total != 1 or query.stacks[0].head.item != PIDS_ID_PPID: +- retval = 0 +- else: ++ cdef pids_fetch *query = procps_pids_select(handle, &pid, 1, PIDS_SELECT_PID) ++ cdef int retval = 0 ++ if query != NULL and query.counts.total == 1 and query.stacks[0].head.item == PIDS_ID_PPID: + retval = query.stacks[0].head.result.s_int + + procps_pids_unref(&handle) +-- +2.43.0 + diff --git a/xpra.spec b/xpra.spec index 2ad4e51..b9f74c0 100644 --- a/xpra.spec +++ b/xpra.spec @@ -59,6 +59,11 @@ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/% Source1: %{name}.appdata.xml Patch1: ignore_assert_pandoc.patch +# GCC 14 Fix backport +# https://github.com/Xpra-org/xpra/issues/4113 +# https://github.com/Xpra-org/xpra/commit/f12369ad493b0987cd62c1baca24b1067183e657 +Patch2: 0001-GCC-14.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel From 96c56894c4dacb7accf4131c6273b6eb316fd6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Wed, 31 Jan 2024 16:26:11 +0100 Subject: [PATCH 11/63] Rebuilt for libavif 1.0.3 From 1efb3066bb02623a98d3b54bb22949dd3be26547 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 8 Feb 2024 00:06:28 +0000 Subject: [PATCH 12/63] Rebuild for libvpx 1.14.x From ea007192d58a5e33f2dbfa2f29c7365fb60997bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 23 Feb 2024 14:11:42 +0000 Subject: [PATCH 13/63] Update xpra to 5.0.6 --- .gitignore | 1 + 0001-GCC-14.patch | 102 ---------------------------------------------- sources | 2 +- 3 files changed, 2 insertions(+), 103 deletions(-) delete mode 100644 0001-GCC-14.patch diff --git a/.gitignore b/.gitignore index 01a0cf8..145891b 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,4 @@ /xpra-5.0.1.tar.gz /xpra-5.0.2.tar.gz /xpra-5.0.3.tar.gz +/xpra-5.0.6.tar.gz diff --git a/0001-GCC-14.patch b/0001-GCC-14.patch deleted file mode 100644 index ef6d726..0000000 --- a/0001-GCC-14.patch +++ /dev/null @@ -1,102 +0,0 @@ -From d8790b37d0da7fdcad9cad6e2a1d23e574965395 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= -Date: Wed, 31 Jan 2024 15:43:23 +0100 -Subject: [PATCH] GCC 14 - ---- - setup.py | 2 +- - xpra/platform/posix/proc_libproc.pyx | 44 +++++++++++----------------- - 2 files changed, 18 insertions(+), 28 deletions(-) - -diff --git a/setup.py b/setup.py -index 48c55ce..c38f7a2 100755 ---- a/setup.py -+++ b/setup.py -@@ -2189,7 +2189,7 @@ if pam_ENABLED: - #platform: - tace(sd_listen_ENABLED, "xpra.platform.posix.sd_listen", "libsystemd") - tace(proc_ENABLED and proc_use_procps, "xpra.platform.posix.proc_procps", "libprocps", extra_compile_args = "-Wno-error") --tace(proc_ENABLED and proc_use_libproc, "xpra.platform.posix.proc_libproc", "libproc2", extra_compile_args = "-Wno-error") -+tace(proc_ENABLED and proc_use_libproc, "xpra.platform.posix.proc_libproc", "libproc2", language="c++") - - #codecs: - toggle_packages(enc_proxy_ENABLED, "xpra.codecs.proxy") -diff --git a/xpra/platform/posix/proc_libproc.pyx b/xpra/platform/posix/proc_libproc.pyx -index 577a542..0de8914 100644 ---- a/xpra/platform/posix/proc_libproc.pyx -+++ b/xpra/platform/posix/proc_libproc.pyx -@@ -1,10 +1,8 @@ - # This file is part of Xpra. --# Copyright (C) 2022 Antoine Martin -+# Copyright (C) 2022-2024 Antoine Martin - # Xpra is released under the terms of the GNU GPL v2, or, at your option, any - # later version. See the file COPYING for details. - --from libc.string cimport memset -- - from xpra.log import Logger - - log = Logger("util", "exec") -@@ -14,6 +12,9 @@ DEF PROC_PID = 0x1000 #process id numbers ( 0 terminated ) - - - cdef extern from "libproc2/pids.h": -+ ctypedef enum pids_item: -+ PIDS_ID_PPID -+ - # Opaque handle used by procps to store its buffers - struct pids_info: - pass -@@ -38,36 +39,25 @@ cdef extern from "libproc2/pids.h": - pids_counts *counts - pids_stack **stacks - -- # Flag used to query the parent process, part of the pids_item enum -- int PIDS_ID_PPID -- -- # Flag used to return one value per process, part of pids_select_type enum. -- # All we care about here is PPID which is the same for each thread within a -- # process. -- int PIDS_SELECT_PID -+ ctypedef enum pids_select_type: -+ PIDS_SELECT_PID -+ PIDS_SELECT_PID_THREADS -+ PIDS_SELECT_UID -+ PIDS_SELECT_UID_THREADS - -- int procps_pids_new(pids_info **info, int *items, int numitems) -+ int procps_pids_new(pids_info **info, pids_item *items, int numitems) - int procps_pids_unref(pids_info **info) -- pids_fetch *procps_pids_select(pids_info *info, unsigned int *pids, int pidcount, int select_type) -+ pids_fetch *procps_pids_select(pids_info *info, unsigned*pids, int pidcount, int select_type) - --def get_parent_pid(int pid) -> int: -- cdef pids_info *handle -- cdef int selector -- -- handle = NULL -- selector = PIDS_ID_PPID -+def get_parent_pid(unsigned int pid) -> int: -+ cdef pids_info *handle = NULL -+ cdef pids_item selector = PIDS_ID_PPID - if procps_pids_new(&handle, &selector, 1) != 0: - return 0 - -- cdef unsigned int upid -- cdef pids_fetch *query -- cdef int retval -- -- upid = pid -- query = procps_pids_select(handle, &upid, 1, PIDS_SELECT_PID) -- if query == NULL or query.counts.total != 1 or query.stacks[0].head.item != PIDS_ID_PPID: -- retval = 0 -- else: -+ cdef pids_fetch *query = procps_pids_select(handle, &pid, 1, PIDS_SELECT_PID) -+ cdef int retval = 0 -+ if query != NULL and query.counts.total == 1 and query.stacks[0].head.item == PIDS_ID_PPID: - retval = query.stacks[0].head.result.s_int - - procps_pids_unref(&handle) --- -2.43.0 - diff --git a/sources b/sources index 0d6abdf..0fb0044 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.3.tar.gz) = 8c028f0437213e5d0849258e2bb93a227ae3404b768853b597515db9b31b05fbbe60b45c58e4a2ed17349c4b77b9e0d15dbb8c48bef8cc27fe378ac8caba3686 +SHA512 (xpra-5.0.6.tar.gz) = c25a763f4925c2ee987d7994cb040538635ba32bdfec830f386cae48e6acf4644b68198f79f42ddfef8174a16d6b40cdcedd75756fec1b23baa2319947a573be From cada609a295451582d113a15b170cdfc60bf609f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 23 Feb 2024 14:22:12 +0000 Subject: [PATCH 14/63] Update xpra to 5.0.6 --- xpra.spec | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/xpra.spec b/xpra.spec index b9f74c0..a4adb04 100644 --- a/xpra.spec +++ b/xpra.spec @@ -49,7 +49,7 @@ %endif Name: xpra -Version: 5.0.3 +Version: 5.0.6 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -59,11 +59,6 @@ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/% Source1: %{name}.appdata.xml Patch1: ignore_assert_pandoc.patch -# GCC 14 Fix backport -# https://github.com/Xpra-org/xpra/issues/4113 -# https://github.com/Xpra-org/xpra/commit/f12369ad493b0987cd62c1baca24b1067183e657 -Patch2: 0001-GCC-14.patch - BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel From af3f8fefccfef9cb251e220bd74572577a4fbb46 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 14:12:53 +0200 Subject: [PATCH 15/63] Rebuilt for Python 3.13 From 851ab605bf542f9412eadab6500815add3c24332 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 10:25:17 +0000 Subject: [PATCH 16/63] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From dcacc70157f3a43a637a10ef265ce56b2d7ea085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Wed, 4 Sep 2024 22:57:05 +0200 Subject: [PATCH 17/63] convert license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- xpra.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index a4adb04..fbd0be9 100644 --- a/xpra.spec +++ b/xpra.spec @@ -52,7 +52,8 @@ Name: xpra Version: 5.0.6 Release: %autorelease Summary: Remote display server for applications and desktops -License: GPLv2+ and BSD and LGPLv3+ and MIT +# 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 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 From 3464c2d5e0522ada20d1a6195dcb70cf5aca59ec Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Mon, 23 Sep 2024 17:03:09 +0200 Subject: [PATCH 18/63] Rebuild for ffmpeg 7 From ff1e77045f0cb17894a9ed2c5fca205b695d32cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= Date: Tue, 7 May 2024 07:25:22 +0200 Subject: [PATCH 19/63] Add compatibility with FFMPEG 7.0 --- 0001-Add-compatibility-with-FFMPEG-7.0.patch | 182 +++++++++++++++++++ xpra.spec | 3 + 2 files changed, 185 insertions(+) create mode 100644 0001-Add-compatibility-with-FFMPEG-7.0.patch diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch new file mode 100644 index 0000000..93a6890 --- /dev/null +++ b/0001-Add-compatibility-with-FFMPEG-7.0.patch @@ -0,0 +1,182 @@ +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 +@@ -203,7 +203,6 @@ cdef extern from "libavutil/pixfmt.h": + AVPixelFormat AV_PIX_FMT_BAYER_GBRG16BE + AVPixelFormat AV_PIX_FMT_BAYER_GRBG16LE + AVPixelFormat AV_PIX_FMT_BAYER_GRBG16BE +- AVPixelFormat AV_PIX_FMT_XVMC + AVPixelFormat AV_PIX_FMT_YUV440P10LE + AVPixelFormat AV_PIX_FMT_YUV440P10BE + AVPixelFormat AV_PIX_FMT_YUV440P12LE +@@ -294,7 +293,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) ++ void avcodec_free_context(AVCodecContext **avctx) + + #actual decoding: + AVPacket *av_packet_alloc() nogil +@@ -462,7 +461,6 @@ FORMAT_TO_STR = { + AV_PIX_FMT_BAYER_GBRG16BE : "BAYER_GBRG16BE", + AV_PIX_FMT_BAYER_GRBG16LE : "BAYER_GRBG16LE", + AV_PIX_FMT_BAYER_GRBG16BE : "BAYER_GRBG16BE", +- AV_PIX_FMT_XVMC : "XVMC", + AV_PIX_FMT_YUV440P10LE : "YUV440P10LE", + AV_PIX_FMT_YUV440P10BE : "YUV440P10BE", + AV_PIX_FMT_YUV440P12LE : "YUV440P12LE", +@@ -812,10 +810,7 @@ cdef class Decoder: + 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) + av_free(self.codec_ctx) + self.codec_ctx = NULL + f = self.file +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)) +@@ -1146,6 +1158,7 @@ cdef int write_packet(void *opaque, uint8_t *buf, int buf_size) except 0: + return -1 + return encoder.write_packet( buf, buf_size) + ++ + MAX_WIDTH, MAX_HEIGHT = (4096, 4096) + def get_specs(encoding, colorspace): + assert encoding in get_encodings(), "invalid encoding: %s (must be one of %s" % (encoding, get_encodings()) +@@ -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/xpra.spec b/xpra.spec index fbd0be9..fd2e3ea 100644 --- a/xpra.spec +++ b/xpra.spec @@ -59,6 +59,9 @@ Source0: https://github.com/Xpra-org/xpra/archive/refs/tags/v%{version}/% # 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 BuildRequires: python3-devel BuildRequires: gtk3-devel From 639b0a7626ad11fa4c39e4e66d768dfb10b52531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 10 Oct 2024 22:22:46 +0100 Subject: [PATCH 20/63] Simply removing the unnecessary python-opencv dependency --- xpra.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index fd2e3ea..0408794 100644 --- a/xpra.spec +++ b/xpra.spec @@ -156,7 +156,8 @@ Requires: js-jquery # python3-opencv is required for webcam forwarding support, client-side only. # Available on Fedora only. -%{?fedora:Requires: python3-opencv} +# https://github.com/Xpra-org/xpra/issues/4035#issuecomment-2405430577 +#%%{?fedora:Requires: python3-opencv} # Needed to create the xpra group Requires(pre): shadow-utils From a3143a0e1d85f4c1d9837f56d59efb06961cb1b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 11 Oct 2024 14:29:38 +0100 Subject: [PATCH 21/63] Update xpra to 5.0.10 --- .gitignore | 1 + 0001-Add-compatibility-with-FFMPEG-7.0.patch | 39 ++++++-------------- ignore_assert_pandoc.patch | 8 ++-- sources | 2 +- xpra.spec | 2 +- 5 files changed, 19 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index 145891b..2d3c94c 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,4 @@ /xpra-5.0.2.tar.gz /xpra-5.0.3.tar.gz /xpra-5.0.6.tar.gz +/xpra-5.0.10.tar.gz diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch index 93a6890..dfb37d8 100644 --- a/0001-Add-compatibility-with-FFMPEG-7.0.patch +++ b/0001-Add-compatibility-with-FFMPEG-7.0.patch @@ -21,43 +21,26 @@ 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 -@@ -203,7 +203,6 @@ cdef extern from "libavutil/pixfmt.h": - AVPixelFormat AV_PIX_FMT_BAYER_GBRG16BE - AVPixelFormat AV_PIX_FMT_BAYER_GRBG16LE - AVPixelFormat AV_PIX_FMT_BAYER_GRBG16BE -- AVPixelFormat AV_PIX_FMT_XVMC - AVPixelFormat AV_PIX_FMT_YUV440P10LE - AVPixelFormat AV_PIX_FMT_YUV440P10BE - AVPixelFormat AV_PIX_FMT_YUV440P12LE -@@ -294,7 +293,7 @@ cdef extern from "libavcodec/avcodec.h": +@@ -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) -+ void avcodec_free_context(AVCodecContext **avctx) ++ int avcodec_close(AVCodecContext *avctx) #actual decoding: AVPacket *av_packet_alloc() nogil -@@ -462,7 +461,6 @@ FORMAT_TO_STR = { - AV_PIX_FMT_BAYER_GBRG16BE : "BAYER_GBRG16BE", - AV_PIX_FMT_BAYER_GRBG16LE : "BAYER_GRBG16LE", - AV_PIX_FMT_BAYER_GRBG16BE : "BAYER_GRBG16BE", -- AV_PIX_FMT_XVMC : "XVMC", - AV_PIX_FMT_YUV440P10LE : "YUV440P10LE", - AV_PIX_FMT_YUV440P10BE : "YUV440P10BE", - AV_PIX_FMT_YUV440P12LE : "YUV440P12LE", -@@ -812,10 +810,7 @@ cdef class Decoder: +@@ -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: -- 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) - av_free(self.codec_ctx) - 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 @@ -180,3 +163,5 @@ index 6af88a5629..5df0c590c0 100644 -- 2.44.0 +--- xpra/codecs/ffmpeg/decoder.pyx.orig 2024-10-11 13:55:29.562576235 +0100 ++++ xpra/codecs/ffmpeg/decoder.pyx 2024-10-11 14:00:42.835059698 +0100 diff --git a/ignore_assert_pandoc.patch b/ignore_assert_pandoc.patch index ceacee9..81f654e 100644 --- a/ignore_assert_pandoc.patch +++ b/ignore_assert_pandoc.patch @@ -28,12 +28,12 @@ Traceback (most recent call last): 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 2023-03-13 17:59:39.193977373 +0000 -+++ ./setup.py 2023-03-13 17:59:48.477944801 +0000 -@@ -410,7 +410,7 @@ def convert_doc(fsrc, fdst, fmt="html", +--- ./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(30) + r = subprocess.Popen(cmd).wait(TIMEOUT) - assert r==0, "'%s' returned %s" % (" ".join(cmd), r) + #assert r==0, "'%s' returned %s" % (" ".join(cmd), r) diff --git a/sources b/sources index 0fb0044..ede007b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-5.0.6.tar.gz) = c25a763f4925c2ee987d7994cb040538635ba32bdfec830f386cae48e6acf4644b68198f79f42ddfef8174a16d6b40cdcedd75756fec1b23baa2319947a573be +SHA512 (xpra-5.0.10.tar.gz) = e1b01eb1d36351db460d7631dd33efd24e68d374784d803fcd8ad6774b25509dcd42c2d62fd00999ec513265745a3be17dde611a61c07fa70136f319a9a4eaca diff --git a/xpra.spec b/xpra.spec index 0408794..7d8f4db 100644 --- a/xpra.spec +++ b/xpra.spec @@ -49,7 +49,7 @@ %endif Name: xpra -Version: 5.0.6 +Version: 5.0.10 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. From ba3b7a9dbcda22a03abaed5767ea2d21ef3e9639 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 22/63] Apply FFMPEG-7 only on Fedora 41+ --- 0001-Add-compatibility-with-FFMPEG-7.0.patch | 11 ----------- xpra.spec | 7 ++++++- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch index dfb37d8..d01a792 100644 --- a/0001-Add-compatibility-with-FFMPEG-7.0.patch +++ b/0001-Add-compatibility-with-FFMPEG-7.0.patch @@ -125,14 +125,6 @@ index 6af88a5629..5df0c590c0 100644 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)) -@@ -1146,6 +1158,7 @@ cdef int write_packet(void *opaque, uint8_t *buf, int buf_size) except 0: - return -1 - return encoder.write_packet( buf, buf_size) - -+ - MAX_WIDTH, MAX_HEIGHT = (4096, 4096) - def get_specs(encoding, colorspace): - assert encoding in get_encodings(), "invalid encoding: %s (must be one of %s" % (encoding, get_encodings()) @@ -1504,7 +1517,7 @@ cdef class Encoder: self.audio_ctx.time_base.num = 1 self.audio_ctx.bit_rate = 64000 @@ -162,6 +154,3 @@ index 6af88a5629..5df0c590c0 100644 return buf_size -- 2.44.0 - ---- xpra/codecs/ffmpeg/decoder.pyx.orig 2024-10-11 13:55:29.562576235 +0100 -+++ xpra/codecs/ffmpeg/decoder.pyx 2024-10-11 14:00:42.835059698 +0100 diff --git a/xpra.spec b/xpra.spec index 7d8f4db..89c4b46 100644 --- a/xpra.spec +++ b/xpra.spec @@ -182,7 +182,12 @@ Xpra is usable over reasonably slow links and does its best to adapt to changing network bandwidth constraints. %prep -%autosetup -p1 -n %{name}-%{version} +%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 7c57f6a49641fe5f8bb3b4a154625f640727ec02 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 16:14:48 +0000 Subject: [PATCH 23/63] 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 24/63] 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 25/63] 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 26/63] 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 27/63] 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 28/63] 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 29/63] 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 30/63] 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 31/63] 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 32/63] 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 33/63] 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 34/63] 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 35/63] 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 36/63] 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 37/63] 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 38/63] 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 39/63] 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 40/63] 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 41/63] 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 42/63] 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 43/63] 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 44/63] 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 45/63] 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 46/63] 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 47/63] 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 48/63] 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 49/63] 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 50/63] 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 51/63] 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 52/63] 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 53/63] 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 54/63] 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 55/63] 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 56/63] 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 57/63] 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 58/63] 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 59/63] 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 60/63] 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 61/63] 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 62/63] 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 c20b1b3deb0ca9b6e5ec5f18f7d4852f3b7c6a8f Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Wed, 19 Aug 2026 18:16:14 +0200 Subject: [PATCH 63/63] 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