From db12405c4a06be9803f8b13e061faa9fd3005bb1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 13:29:19 +0000 Subject: [PATCH 01/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xpra.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 60546ae..ee0673a 100644 --- a/xpra.spec +++ b/xpra.spec @@ -39,7 +39,7 @@ Name: xpra Version: 4.3.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -308,6 +308,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 4.3.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sun Jun 26 2022 Antonio Trande - 4.3.4-1 - Release 4.3.4 From 56435205da39a69892b37d79f5a5c6b68f2c25cf Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 1 Oct 2022 21:08:11 +0200 Subject: [PATCH 02/85] Release 4.4 --- .gitignore | 1 + sources | 2 +- xpra.spec | 35 ++++++++++++++++++++--------------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 9054991..e3068de 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,4 @@ /xpra-4.3.2.tar.gz /xpra-4.3.3.tar.gz /xpra-4.3.4.tar.gz +/xpra-4.4.tar.gz diff --git a/sources b/sources index 52a17ad..df77435 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.3.4.tar.gz) = 02b0ab2769278649b35c255d64560d393c1749112d24e8c65917ec09c40223fbd8b80b5959988e5dfcf2578827cfe7d027072515a5910db63cdade96a21b830e +SHA512 (xpra-4.4.tar.gz) = a85e0934ee31d4db7cbb43107e19bde502c54cbf270e019fcafeabcbc781f7b0329533f275bfa48db2552aa26193b82cc8b411e8ef3212f6ee0cb9352d2ae859 diff --git a/xpra.spec b/xpra.spec index ee0673a..7da11ff 100644 --- a/xpra.spec +++ b/xpra.spec @@ -38,8 +38,8 @@ %endif Name: xpra -Version: 4.3.4 -Release: 2%{?dist} +Version: 4.4 +Release: 1%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -64,6 +64,7 @@ BuildRequires: desktop-file-utils BuildRequires: libvpx-devel BuildRequires: libXdamage-devel BuildRequires: libXres-devel +BuildRequires: lz4-devel BuildRequires: cups-devel, cups BuildRequires: redhat-rpm-config BuildRequires: gcc @@ -95,23 +96,23 @@ BuildRequires: x264-devel BuildRequires: ffmpeg-devel %endif -Requires: python3-pillow%{?_isa} -Requires: python3-cups%{?_isa} -Requires: python3-pyopengl%{?_isa} +Requires: python3-pillow +Requires: python3-cups +Requires: python3-pyopengl Requires: python3-gobject Requires: python3-inotify -Requires: python3-lz4%{?_isa} +Requires: python3-lz4 Requires: python3-ldap3 -Requires: python3-rencode%{?_isa} -Requires: python3-netifaces%{?_isa} -Requires: python3-dbus%{?_isa} -Requires: dbus-x11%{?_isa} +Requires: python3-rencode +Requires: python3-netifaces +Requires: python3-dbus +Requires: dbus-x11 Requires: xmodmap Requires: xrandr Requires: xorg-x11-drv-dummy%{?_isa} Requires: xorg-x11-xauth%{?_isa} Requires: xorg-x11-server-Xorg%{?_isa} -Requires: python3-numpy%{?_isa} +Requires: python3-numpy Requires: gstreamer1%{?_isa} Requires: gstreamer1-plugins-base%{?_isa} Requires: gstreamer1-plugins-good%{?_isa} @@ -129,7 +130,7 @@ Requires: js-jquery # python3-opencv is required for webcam forwarding support, client-side only. # Available on Fedora only. -%{?fedora:Requires: python3-opencv%{?_isa}} +%{?fedora:Requires: python3-opencv} # Needed to create the xpra group Requires(pre): shadow-utils @@ -185,7 +186,8 @@ export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" %{?_with_debug} \ --with-Xdummy \ --with-Xdummy_wrapper \ - --without-strict + --without-strict \ + --without-enc_ffmpeg %install %py3_install @@ -275,6 +277,7 @@ getent group xpra >/dev/null || groupadd -r xpra %config(noreplace) %{_sysconfdir}/sysconfig/xpra %config(noreplace) %{_sysconfdir}/pam.d/xpra %config(noreplace) %{_sysconfdir}/xpra/content-categories/10_default.conf +%config(noreplace) %{_sysconfdir}/xpra/content-parent/10_default.conf %config(noreplace) %{_sysconfdir}/xpra/content-type/10_role.conf %config(noreplace) %{_sysconfdir}/xpra/content-type/30_title.conf %config(noreplace) %{_sysconfdir}/xpra/content-type/50_class.conf @@ -283,7 +286,7 @@ getent group xpra >/dev/null || groupadd -r xpra %config(noreplace) %{_sysconfdir}/xpra/http-headers/10_content_security_policy.txt %{_libexecdir}/xpra/ %{_bindir}/xpra -%{_bindir}/xpra_* +%{_bindir}/xpra_launcher %{_bindir}/run_scaled %{_sysusersdir}/*.conf %{python3_sitearch}/xpra/ @@ -304,10 +307,12 @@ getent group xpra >/dev/null || groupadd -r xpra %{_pkgdocdir}/ %files udev -%{_bindir}/xpra_udev_product_version %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Sat Oct 01 2022 Antonio Trande - 4.4-1 +- Release 4.4 + * Sat Jul 23 2022 Fedora Release Engineering - 4.3.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 9d17921e970f432e39dce0beb2d5cd80b67d49bb Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Mon, 24 Oct 2022 10:44:18 +0200 Subject: [PATCH 03/85] Release 4.4.1 --- .gitignore | 1 + sources | 2 +- xpra.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e3068de..885df71 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ /xpra-4.3.3.tar.gz /xpra-4.3.4.tar.gz /xpra-4.4.tar.gz +/xpra-4.4.1.tar.gz diff --git a/sources b/sources index df77435..67c449d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.tar.gz) = a85e0934ee31d4db7cbb43107e19bde502c54cbf270e019fcafeabcbc781f7b0329533f275bfa48db2552aa26193b82cc8b411e8ef3212f6ee0cb9352d2ae859 +SHA512 (xpra-4.4.1.tar.gz) = 41c2ebdb156262262330c8a40c915a7d42b801c51021e44fc417bb7bae01083fef9efda17f04e6a6ad17f579e0316f45fcdbcc0ee086a9e558155e3793f5c007 diff --git a/xpra.spec b/xpra.spec index 7da11ff..b491d61 100644 --- a/xpra.spec +++ b/xpra.spec @@ -38,7 +38,7 @@ %endif Name: xpra -Version: 4.4 +Version: 4.4.1 Release: 1%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -310,6 +310,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Mon Oct 24 2022 Antonio Trande - 4.4.1-1 +- Release 4.4.1 + * Sat Oct 01 2022 Antonio Trande - 4.4-1 - Release 4.4 From 5d3f5f689926e37879f1ab8df300b3951a54e4e7 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Tue, 1 Nov 2022 07:21:33 +0100 Subject: [PATCH 04/85] Change location of pathfix.py For more info see https://fedoraproject.org/wiki/Changes/Python3.12#pathfix.py_tool_will_be_removed --- xpra.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xpra.spec b/xpra.spec index b491d61..7dff7f6 100644 --- a/xpra.spec +++ b/xpra.spec @@ -225,7 +225,7 @@ rm -f \ %{buildroot}%{_datadir}/xpra/COPYING #fix shebangs from python3_sitearch -find %{buildroot}%{python3_sitearch}/xpra -name '*.py' | xargs pathfix.py -pn -i "%{__python3}" +find %{buildroot}%{python3_sitearch}/xpra -name '*.py' | xargs %{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" find %{buildroot}%{python3_sitearch}/xpra -name '*.py' | xargs chmod 0755 for i in `ack -rl '^#!/.*python' %{buildroot}%{python3_sitearch}/xpra`; do chmod 0755 $i @@ -245,9 +245,9 @@ find %{buildroot}%{_datadir}/xpra -name '*.swf' -exec rm {} \; mkdir -p %{buildroot}%{_rundir}/xpra # Remove use of /usr/bin/enx on scripts -pathfix.py -pn -i "%{__python3}" %{buildroot}%{cupslibdir}/backend/xpraforwarder -pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/auth_dialog -pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/xdg-open +%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{cupslibdir}/backend/xpraforwarder +%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/auth_dialog +%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/xdg-open for i in `find %{buildroot}%{_bindir} -perm /644 -type f \( -name "*" \)`; do chmod 0755 $i From d2698affda76d3b2561431ae8823faa6942f89a2 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sun, 13 Nov 2022 16:02:22 +0100 Subject: [PATCH 05/85] Release 4.4.2 --- .gitignore | 1 + sources | 2 +- xpra.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 885df71..b7723df 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,4 @@ /xpra-4.3.4.tar.gz /xpra-4.4.tar.gz /xpra-4.4.1.tar.gz +/xpra-4.4.2.tar.gz diff --git a/sources b/sources index 67c449d..a8d33b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.1.tar.gz) = 41c2ebdb156262262330c8a40c915a7d42b801c51021e44fc417bb7bae01083fef9efda17f04e6a6ad17f579e0316f45fcdbcc0ee086a9e558155e3793f5c007 +SHA512 (xpra-4.4.2.tar.gz) = efe364c170169bb1487e1eff2fb5d04dc86e209a88f95400633fb749204b377af1dc7c675de4fa4a36e84e719ec73e500e3acf4a6dea2221295351c8feb559e0 diff --git a/xpra.spec b/xpra.spec index 7dff7f6..7c956c9 100644 --- a/xpra.spec +++ b/xpra.spec @@ -38,7 +38,7 @@ %endif Name: xpra -Version: 4.4.1 +Version: 4.4.2 Release: 1%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -310,6 +310,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Sun Nov 13 2022 Antonio Trande - 4.4.2-1 +- Release 4.4.2 + * Mon Oct 24 2022 Antonio Trande - 4.4.1-1 - Release 4.4.1 From a8d1637791d158c6b6a89bc8f96cf939952882e0 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Thu, 8 Dec 2022 12:02:45 +0100 Subject: [PATCH 06/85] Release 4.4.3 --- .gitignore | 1 + sources | 2 +- xpra.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b7723df..ce68d1d 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ /xpra-4.4.tar.gz /xpra-4.4.1.tar.gz /xpra-4.4.2.tar.gz +/xpra-4.4.3.tar.gz diff --git a/sources b/sources index a8d33b0..c47b01d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.2.tar.gz) = efe364c170169bb1487e1eff2fb5d04dc86e209a88f95400633fb749204b377af1dc7c675de4fa4a36e84e719ec73e500e3acf4a6dea2221295351c8feb559e0 +SHA512 (xpra-4.4.3.tar.gz) = db1815ce3b2220b7494ebaac22bf94df264fd440cf9d57a9088d29afe24481895de0633f70dc0f4f7ca3566454d6febe015d68339efb0b206564acc35ec672d2 diff --git a/xpra.spec b/xpra.spec index 7c956c9..ac6bb75 100644 --- a/xpra.spec +++ b/xpra.spec @@ -38,7 +38,7 @@ %endif Name: xpra -Version: 4.4.2 +Version: 4.4.3 Release: 1%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT @@ -310,6 +310,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Thu Dec 08 2022 Antonio Trande - 4.4.3-1 +- Release 4.4.3 + * Sun Nov 13 2022 Antonio Trande - 4.4.2-1 - Release 4.4.2 From 26db8d57b124d3edde39f782fa9b9760bf924004 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Thu, 8 Dec 2022 15:01:04 +0100 Subject: [PATCH 07/85] Release 4.4.3| Disable CUDA rebuilds --- xpra.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index ac6bb75..82b83ee 100644 --- a/xpra.spec +++ b/xpra.spec @@ -187,7 +187,9 @@ export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" --with-Xdummy \ --with-Xdummy_wrapper \ --without-strict \ - --without-enc_ffmpeg + --without-enc_ffmpeg \ + --without-cuda_rebuild \ + --without-cuda_kernels %install %py3_install @@ -312,6 +314,7 @@ getent group xpra >/dev/null || groupadd -r xpra %changelog * Thu Dec 08 2022 Antonio Trande - 4.4.3-1 - Release 4.4.3 +- Disable CUDA rebuilds * Sun Nov 13 2022 Antonio Trande - 4.4.2-1 - Release 4.4.2 From 76387817391d40ebb128497faca9359100ac7010 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Thu, 8 Dec 2022 15:14:00 +0100 Subject: [PATCH 08/85] Release 4.4.3| Patched for bug #3693 --- xpra-bug3693.patch | 272 +++++++++++++++++++++++++++++++++++++++++++++ xpra.spec | 7 +- 2 files changed, 276 insertions(+), 3 deletions(-) create mode 100644 xpra-bug3693.patch diff --git a/xpra-bug3693.patch b/xpra-bug3693.patch new file mode 100644 index 0000000..cc2a0e3 --- /dev/null +++ b/xpra-bug3693.patch @@ -0,0 +1,272 @@ +From 23b2c55737ca8b368197f01cc547d5439c84b862 Mon Sep 17 00:00:00 2001 +From: totaam +Date: Sun, 27 Nov 2022 21:19:47 +0700 +Subject: [PATCH] make sure to include cuda libs when needed + +(on MS Windows) +--- + setup.py | 187 +++++++++++++++++++++++++++++++------------------------ + 1 file changed, 106 insertions(+), 81 deletions(-) + +diff --git a/setup.py b/setup.py +index fc5831cdc..22a2256b8 100755 +--- a/setup.py ++++ b/setup.py +@@ -1503,7 +1503,7 @@ def add_service_exe(script, icon, base_name): + add_console_exe("xpra/codecs/nv_util.py", "nvidia.ico", "NVidia_info") + if nvfbc_ENABLED: + add_console_exe("xpra/codecs/nvfbc/capture.py", "nvidia.ico", "NvFBC_capture") +- if nvfbc_ENABLED or nvenc_ENABLED: ++ if nvfbc_ENABLED or nvenc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: + add_console_exe("xpra/codecs/cuda_common/cuda_context.py", "cuda.ico", "CUDA_info") + + if ("install_exe" in sys.argv) or ("install" in sys.argv): +@@ -2043,22 +2043,18 @@ def add_cython_ext(*_args, **_kwargs): + toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.cuda_common") + toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.nv_util") + +-CUDA_BIN = "%s/cuda" % share_xpra +-if (nvenc_ENABLED and cuda_kernels_ENABLED) or nvjpeg_encoder_ENABLED: ++nvidia_ENABLED = nvenc_ENABLED or nvfbc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED ++toggle_packages(nvidia_ENABLED, "xpra.codecs.nvidia") ++if nvidia_ENABLED: ++ CUDA_BIN = f"{share_xpra}/cuda" + #find nvcc: +- from xpra.util import sorted_nicely ++ from xpra.util import sorted_nicely # pylint: disable=import-outside-toplevel + path_options = os.environ.get("PATH", "").split(os.path.pathsep) + if WIN32: +- external_includes += ["pycuda"] ++ external_includes.append("pycuda") + nvcc_exe = "nvcc.exe" + CUDA_DIR = os.environ.get("CUDA_DIR", "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA") +- path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob("%s\\*\\bin" % CUDA_DIR)))) +- #pycuda may link against curand, find it and ship it: +- for p in path_options: +- if os.path.exists(p): +- add_data_files("", glob.glob("%s\\curand64*.dll" % p)) +- add_data_files("", glob.glob("%s\\cudart64*.dll" % p)) +- break ++ path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob(f"{CUDA_DIR}\\*\\bin")))) + else: + nvcc_exe = "nvcc" + path_options += ["/usr/local/cuda/bin", "/opt/cuda/bin"] +@@ -2066,12 +2062,9 @@ def add_cython_ext(*_args, **_kwargs): + path_options += list(reversed(sorted_nicely(glob.glob("/opt/cuda*/bin")))) + options = [os.path.join(x, nvcc_exe) for x in path_options] + #prefer the one we find on the $PATH, if any: +- try: +- v = shutil.which(nvcc_exe) +- if v and (v not in options): +- options.insert(0, v) +- except: +- pass ++ v = shutil.which(nvcc_exe) ++ if v and (v not in options): ++ options.insert(0, v) + nvcc_versions = {} + def get_nvcc_version(command): + if not os.path.exists(command): +@@ -2082,30 +2075,94 @@ def get_nvcc_version(command): + vpos = out.rfind(", V") + if vpos>0: + version = out[vpos+3:].split("\n")[0] +- version_str = " version %s" % version ++ version_str = f" version {version}" + else: + version = "0" + version_str = " unknown version!" +- print("found CUDA compiler: %s%s" % (filename, version_str)) ++ print(f"found CUDA compiler: {filename}{version_str}") + return tuple(int(x) for x in version.split(".")) + for filename in options: + vnum = get_nvcc_version(filename) + if vnum: + nvcc_versions[vnum] = filename ++ nvcc_version = nvcc = None + if nvcc_versions: + #choose the most recent one: + nvcc_version, nvcc = list(reversed(sorted(nvcc_versions.items())))[0] + if len(nvcc_versions)>1: +- print(" using version %s from %s" % (nvcc_version, nvcc)) +- else: +- nvcc_version = nvcc = None +- if ((nvenc_ENABLED or nvjpeg_encoder_ENABLED) and cuda_kernels_ENABLED): +- assert nvcc_versions, "cannot find nvcc compiler!" ++ print(f" using version {nvcc_version} from {nvcc}") ++ if cuda_kernels_ENABLED and (nvenc_ENABLED or nvjpeg_encoder_ENABLED): ++ def get_gcc_version(): ++ if CC_is_clang(): ++ return (0, ) ++ cc = os.environ.get("CC", "gcc") ++ r, _, err = get_status_output([cc, "-v"]) ++ if r==0: ++ V_LINE = "gcc version " ++ tmp_version = [] ++ for line in err.splitlines(): ++ if not line.startswith(V_LINE): ++ continue ++ v_str = line[len(V_LINE):].strip().split(" ")[0] ++ for p in v_str.split("."): ++ try: ++ tmp_version.append(int(p)) ++ except ValueError: ++ break ++ print("found gcc version: %s" % ".".join(str(x) for x in tmp_version)) ++ break ++ return tuple(tmp_version) ++ return (0, ) ++ assert nvcc, "cannot find nvcc compiler!" ++ def get_nvcc_args(): ++ nvcc_cmd = [nvcc, "-fatbin"] ++ gcc_version = get_gcc_version() ++ if gcc_version<(7, 5): ++ print("gcc versions older than 7.5 are not supported!") ++ for _ in range(5): ++ sleep(1) ++ print(".") ++ if (8,1)<=gcc_version<(9, ): ++ #GCC 8.1 has compatibility issues with CUDA 9.2, ++ #so revert to C++03: ++ nvcc_cmd.append("-std=c++03") ++ #GCC 6 uses C++11 by default: ++ else: ++ nvcc_cmd.append("-std=c++11") ++ if gcc_version>=(12, 0) or CC_is_clang(): ++ nvcc_cmd.append("--allow-unsupported-compiler") ++ if nvcc_version>=(11, 5): ++ nvcc_cmd += ["-arch=all", ++ "-Wno-deprecated-gpu-targets", ++ ] ++ if nvcc_version>=(11, 6): ++ nvcc_cmd += ["-Xnvlink", "-ignore-host-info"] ++ return nvcc_cmd ++ #older versions, add every arch we know about: ++ comp_code_options = [] ++ if nvcc_version>=(7, 5): ++ comp_code_options.append((52, 52)) ++ comp_code_options.append((53, 53)) ++ if nvcc_version>=(8, 0): ++ comp_code_options.append((60, 60)) ++ comp_code_options.append((61, 61)) ++ comp_code_options.append((62, 62)) ++ if nvcc_version>=(9, 0): ++ comp_code_options.append((70, 70)) ++ if nvcc_version>=(10, 0): ++ comp_code_options.append((75, 75)) ++ if nvcc_version>=(11, 0): ++ comp_code_options.append((80, 80)) ++ if nvcc_version>=(11, 1): ++ comp_code_options.append((86, 86)) ++ #if nvcc_version>=(11, 6): ++ # comp_code_options.append((87, 87)) ++ for arch, code in comp_code_options: ++ nvcc_cmd.append(f"-gencode=arch=compute_{arch},code=sm_{code}") ++ return nvcc_cmd ++ nvcc_args = get_nvcc_args() + #first compile the cuda kernels + #(using the same cuda SDK for both nvenc modules for now..) +- #TODO: +- # * compile directly to output directory instead of using data files? +- # * detect which arches we want to build for? (does it really matter much?) + kernels = [] + if nvenc_ENABLED: + kernels += ["XRGB_to_NV12", "XRGB_to_YUV444", "BGRX_to_NV12", "BGRX_to_YUV444"] +@@ -2113,67 +2170,26 @@ def get_nvcc_version(command): + kernels += ["BGRX_to_RGB", "RGBX_to_RGB", "RGBA_to_RGBAP", "BGRA_to_RGBAP"] + nvcc_commands = [] + for kernel in kernels: +- cuda_src = "fs/share/xpra/cuda/%s.cu" % kernel +- cuda_bin = "fs/share/xpra/cuda/%s.fatbin" % kernel ++ cuda_src = f"fs/share/xpra/cuda/{kernel}.cu" ++ cuda_bin = f"fs/share/xpra/cuda/{kernel}.fatbin" + if os.path.exists(cuda_bin) and (cuda_rebuild_ENABLED is False): + continue + reason = should_rebuild(cuda_src, cuda_bin) + if not reason: + continue +- print("rebuilding %s: %s" % (kernel, reason)) +- cmd = [nvcc, +- '-fatbin', +- "-c", cuda_src, +- "-o", cuda_bin] +- gcc_version = get_gcc_version() +- if (8,1)<=gcc_version<(9, ): +- #GCC 8.1 has compatibility issues with CUDA 9.2, +- #so revert to C++03: +- cmd.append("-std=c++03") +- #GCC 6 uses C++11 by default: +- else: +- cmd.append("-std=c++11") +- if gcc_version>=(12, 0) or CC_is_clang(): +- cmd.append("--allow-unsupported-compiler") +- if nvcc_version>=(11, 5): +- cmd += ["-arch=all", +- "-Wno-deprecated-gpu-targets", +- ] +- if nvcc_version>=(11, 6): +- cmd += ["-Xnvlink", "-ignore-host-info"] +- else: +- comp_code_options = [] +- if nvcc_version>=(7, 5): +- comp_code_options.append((52, 52)) +- comp_code_options.append((53, 53)) +- if nvcc_version>=(8, 0): +- comp_code_options.append((60, 60)) +- comp_code_options.append((61, 61)) +- comp_code_options.append((62, 62)) +- if nvcc_version>=(9, 0): +- comp_code_options.append((70, 70)) +- if nvcc_version>=(10, 0): +- comp_code_options.append((75, 75)) +- if nvcc_version>=(11, 0): +- comp_code_options.append((80, 80)) +- if nvcc_version>=(11, 1): +- comp_code_options.append((86, 86)) +- #if nvcc_version>=(11, 6): +- # comp_code_options.append((87, 87)) +- for arch, code in comp_code_options: +- cmd.append("-gencode=arch=compute_%s,code=sm_%s" % (arch, code)) +- print("CUDA compiling %s (%s)" % (kernel.ljust(16), reason)) +- print(" %s" % " ".join("'%s'" % x for x in cmd)) +- nvcc_commands.append(cmd) +- ++ print(f"rebuilding {kernel}: {reason}") ++ kbuild_cmd = nvcc_args + ["-c", cuda_src, "-o", cuda_bin] ++ print(f"CUDA compiling %s ({reason})" % kernel.ljust(16)) ++ print(" "+" ".join(f"{x!r}" for x in kbuild_cmd)) ++ nvcc_commands.append(kbuild_cmd) + #parallel build: + nvcc_errors = [] +- def nvcc_compile(cmd): +- c, stdout, stderr = get_status_output(cmd) ++ def nvcc_compile(nvcc_cmd): ++ c, stdout, stderr = get_status_output(nvcc_cmd) + if c!=0: + nvcc_errors.append(c) +- print("Error: failed to compile CUDA kernel %s" % kernel) +- print(" using command: %s" % (cmd,)) ++ print(f"Error: failed to compile CUDA kernel {kernel}") ++ print(f" using command: {nvcc_cmd}") + print(stdout or "") + print(stderr or "") + nvcc_threads = [] +@@ -2186,8 +2202,17 @@ def nvcc_compile(cmd): + if nvcc_errors: + sys.exit(1) + t.join() ++ add_data_files(CUDA_BIN, [f"fs/share/xpra/cuda/{x}.fatbin" for x in kernels]) ++ add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) ++ if WIN32 and (nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED or nvenc_ENABLED): ++ assert nvcc_versions ++ CUDA_BIN_DIR = os.path.dirname(nvcc) ++ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/cudart64*dll")) ++ #if pycuda is built with curand, add this: ++ #add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/curand64*dll")) ++ if nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: ++ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/nvjpeg64*dll")) + +- add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/%s.fatbin" % x for x in kernels]) + add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) + + tace(nvenc_ENABLED, "xpra.codecs.nvenc.encoder", "nvenc") diff --git a/xpra.spec b/xpra.spec index 82b83ee..08e97c3 100644 --- a/xpra.spec +++ b/xpra.spec @@ -54,6 +54,8 @@ Patch0: %{name}-find_py3cairo.patch # Install into /usr/libexec always Patch1: %{name}-force_always_libexec.patch +Patch2: %{name}-bug3693.patch + BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel @@ -166,6 +168,7 @@ Udev rules of xpra. %patch1 -p1 -b .backup sed -i 's|@@python3_sitearch@@|%{python3_sitearch}|' setup.py %endif +%patch2 -p1 -b .backup # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} @@ -187,9 +190,7 @@ export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" --with-Xdummy \ --with-Xdummy_wrapper \ --without-strict \ - --without-enc_ffmpeg \ - --without-cuda_rebuild \ - --without-cuda_kernels + --without-enc_ffmpeg %install %py3_install From b49472a367ea58466b4c93f9473e15bc9b992ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 2 Jan 2023 22:32:06 +0000 Subject: [PATCH 09/85] sync and fix the way of the patch is applied --- xpra.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/xpra.spec b/xpra.spec index 08e97c3..ad9df00 100644 --- a/xpra.spec +++ b/xpra.spec @@ -1,4 +1,5 @@ %bcond_with enc_x264 +%bcond_with enc_x265 %bcond_with dec_avcodec2 %bcond_with csc_swscale @@ -18,6 +19,10 @@ %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 @@ -51,7 +56,7 @@ Source1: %{name}.appdata.xml # Horrible fix to find py3cairo.h in python3-cairo-1.16.3 Patch0: %{name}-find_py3cairo.patch -# Install into /usr/libexec always +# Install into /usr/libexec always Patch1: %{name}-force_always_libexec.patch Patch2: %{name}-bug3693.patch @@ -168,7 +173,7 @@ Udev rules of xpra. %patch1 -p1 -b .backup sed -i 's|@@python3_sitearch@@|%{python3_sitearch}|' setup.py %endif -%patch2 -p1 -b .backup +%patch2 -p1 -R -b .backup # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} @@ -184,6 +189,7 @@ export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" --with-verbose \ --with-vpx \ %{?_with_enc_x264} \ + %{?_with_enc_x265} \ %{?_with_dec_avcodec2} \ %{?_with_csc_swscale} \ %{?_with_debug} \ From 70ec1d014bb84c0a48c65ab289819696285130ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 6 Jan 2023 00:47:50 +0000 Subject: [PATCH 10/85] sync xpra --- xpra.spec | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/xpra.spec b/xpra.spec index ad9df00..8f8e34f 100644 --- a/xpra.spec +++ b/xpra.spec @@ -12,7 +12,7 @@ %global __js_jquery_latest %{_datadir}/javascript/jquery/latest/ -# These are nececessary as the _with_foo is *not* defined if the +# 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} @@ -65,13 +65,13 @@ BuildRequires: python3-devel BuildRequires: gtk3-devel BuildRequires: libXtst-devel BuildRequires: libxkbfile-devel +BuildRequires: lz4-devel BuildRequires: python3-Cython BuildRequires: ack BuildRequires: desktop-file-utils BuildRequires: libvpx-devel BuildRequires: libXdamage-devel BuildRequires: libXres-devel -BuildRequires: lz4-devel BuildRequires: cups-devel, cups BuildRequires: redhat-rpm-config BuildRequires: gcc @@ -241,10 +241,8 @@ for i in `ack -rl '^#!/.*python' %{buildroot}%{python3_sitearch}/xpra`; do done #fix permissions on shared objects -pushd %{buildroot}%{python3_sitearch}/xpra -find . -name '*.so' \ +find %{buildroot}%{python3_sitearch}/xpra -name '*.so' \ -exec chmod 0755 {} \; -popd # delete any bundled SWFs - binary content forbidden by packaging # guidelines From 06ee1778aa8f06f0ffe1257c15ed92e798ac700c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 15 Jan 2023 01:45:25 +0000 Subject: [PATCH 11/85] Add unitdir, we may have unitdir but by default disabled, preset just enable service by default which understandably was not approved. to check presets run `systemctl status xpra | grep preset` Un-split xpra-udev and other improvements Add support to procps, avif, qrencode, libdrm and libwebp --- xpra.spec | 57 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/xpra.spec b/xpra.spec index 8f8e34f..4319d5c 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,7 +44,7 @@ Name: xpra Version: 4.4.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -74,9 +74,17 @@ BuildRequires: libXdamage-devel BuildRequires: libXres-devel BuildRequires: cups-devel, cups BuildRequires: redhat-rpm-config +BuildRequires: python3-rpm-macros BuildRequires: gcc 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: pkgconfig(libprocps) +BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: libdrm-devel +BuildRequires: pkgconfig(libwebp) %if 0%{?el8} BuildRequires: xorg-x11-server-Xvfb BuildRequires: python3-cairo @@ -142,9 +150,13 @@ Requires: js-jquery # Needed to create the xpra group Requires(pre): shadow-utils -# xpra-html5 is now separately provided +# 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 host, direct their display to your local machine, and then to disconnect from @@ -157,14 +169,6 @@ 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 udev -Summary: xpra udev files -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: systemd-udev%{?_isa} - -%description udev -Udev rules of xpra. - %prep %autosetup -n %{name}-%{version} -N @@ -201,10 +205,8 @@ export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" %install %py3_install -# Installation of these service files is not permitted on Fedora -# See https://pagure.io/fesco/issue/1759 -rm -f %{buildroot}/lib/systemd/system/xpra.service -rm -f %{buildroot}/lib/systemd/system/xpra.socket +mkdir -p %{buildroot}%{_unitdir} +mv %{buildroot}/lib/systemd/system/xpra.* %{buildroot}%{_unitdir}/ #move icon to proper directory mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps @@ -229,14 +231,11 @@ mkdir -p %{buildroot}%{_sysconfdir}/xpra install -pm 644 fs/etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra #remove doc stuff from /usr/share -rm -f \ - %{buildroot}%{_datadir}/xpra/README \ - %{buildroot}%{_datadir}/xpra/COPYING +rm %{buildroot}%{_datadir}/xpra/COPYING -#fix shebangs from python3_sitearch -find %{buildroot}%{python3_sitearch}/xpra -name '*.py' | xargs %{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" -find %{buildroot}%{python3_sitearch}/xpra -name '*.py' | xargs chmod 0755 +#fi shebangs from python3_sitearch for i in `ack -rl '^#!/.*python' %{buildroot}%{python3_sitearch}/xpra`; do + %py3_shebang_fix $i chmod 0755 $i done @@ -252,9 +251,9 @@ find %{buildroot}%{_datadir}/xpra -name '*.swf' -exec rm {} \; mkdir -p %{buildroot}%{_rundir}/xpra # Remove use of /usr/bin/enx on scripts -%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{cupslibdir}/backend/xpraforwarder -%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/auth_dialog -%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pn -i "%{__python3}" %{buildroot}%{_libexecdir}/xpra/xdg-open +%py3_shebang_fix %{buildroot}%{cupslibdir}/backend/xpraforwarder +%py3_shebang_fix %{buildroot}%{_libexecdir}/xpra/auth_dialog +%py3_shebang_fix %{buildroot}%{_libexecdir}/xpra/xdg-open for i in `find %{buildroot}%{_bindir} -perm /644 -type f \( -name "*" \)`; do chmod 0755 $i @@ -311,12 +310,18 @@ getent group xpra >/dev/null || groupadd -r xpra %{cupslibdir}/backend/xpraforwarder %{_tmpfilesdir}/xpra.conf %dir %{_rundir}/xpra -%{_pkgdocdir}/ - -%files udev +%{_docdir}/xpra +%{_unitdir}/xpra.service +%{_unitdir}/xpra.socket %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Sun Jan 08 2023 Sérgio Basto - 4.4.3-2 +- Add unitdir, we may have unitdir but by default disabled, preset just enable service by default which understandably was not approved. + to check presets run `systemctl status xpra | grep preset` +- Un-split xpra-udev and other improvements +- Add support to procps, avif, qrencode, libdrm and libwebp + * Thu Dec 08 2022 Antonio Trande - 4.4.3-1 - Release 4.4.3 - Disable CUDA rebuilds From 3da1878e51d7d2466c4046a8ab0aa02efcd8aa0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 18 Jan 2023 11:44:14 +0000 Subject: [PATCH 12/85] Fix epel builds, seems upstream sort out py3cairo hack on el8 el8 now also have xorg-x11-drv-dummy --- xpra-find_py3cairo.patch | 33 --------------------------------- xpra-force_always_libexec.patch | 11 ----------- xpra.spec | 31 ++++++++++--------------------- 3 files changed, 10 insertions(+), 65 deletions(-) delete mode 100644 xpra-find_py3cairo.patch delete mode 100644 xpra-force_always_libexec.patch diff --git a/xpra-find_py3cairo.patch b/xpra-find_py3cairo.patch deleted file mode 100644 index d055d51..0000000 --- a/xpra-find_py3cairo.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/setup.orig.py 2020-06-05 11:40:10.000000000 +0200 -+++ b/setup.py 2020-07-15 11:07:19.084531962 +0200 -@@ -1899,8 +1899,8 @@ - #cairo workaround: - add_cython_ext("xpra.client.gtk3.cairo_workaround", - ["xpra/client/gtk3/cairo_workaround.pyx"], -- **pkgconfig("py3cairo") -- ) -+ ["@@python3_sitearch@@"] -+ ) - - if client_ENABLED or server_ENABLED: - add_packages("xpra.codecs.argb") ---- a/xpra/client/gtk3/cairo_workaround.orig.pyx 2020-05-10 19:00:53.000000000 +0200 -+++ b/xpra/client/gtk3/cairo_workaround.pyx 2020-07-15 11:17:57.586807490 +0200 -@@ -35,7 +35,7 @@ - pass - void * PyCapsule_Import(const char *name, int no_block) - --cdef extern from "cairo/cairo.h": -+cdef extern from "cairo/include/py3cairo.h": - ctypedef struct cairo_surface_t: - pass - -@@ -59,7 +59,7 @@ - void cairo_surface_flush (cairo_surface_t *surface) - void cairo_surface_mark_dirty (cairo_surface_t *surface) - --cdef extern from "pycairo/py3cairo.h": -+cdef extern from "cairo/include/py3cairo.h": - ctypedef struct Pycairo_CAPI_t: - pass - ctypedef struct PycairoSurface: diff --git a/xpra-force_always_libexec.patch b/xpra-force_always_libexec.patch deleted file mode 100644 index 577570a..0000000 --- a/xpra-force_always_libexec.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/setup.orig.py 2020-07-15 17:54:25.805747151 +0200 -+++ b/setup.py 2020-07-15 17:53:15.841073182 +0200 -@@ -1510,7 +1510,7 @@ - if is_Fedora() or is_CentOS() or is_RedHat() or FREEBSD: - libexec = "libexec" - else: -- libexec = "lib" -+ libexec = "libexec" - if LINUX or FREEBSD: - if scripts_ENABLED: - scripts += ["fs/bin/xpra_udev_product_version", "fs/bin/xpra_signal_listener"] diff --git a/xpra.spec b/xpra.spec index 4319d5c..96c97c0 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,21 +44,13 @@ Name: xpra Version: 4.4.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and 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 Source1: %{name}.appdata.xml - -# Horrible fix to find py3cairo.h in python3-cairo-1.16.3 -Patch0: %{name}-find_py3cairo.patch - -# Install into /usr/libexec always -Patch1: %{name}-force_always_libexec.patch - Patch2: %{name}-bug3693.patch BuildRequires: python3-devel @@ -80,18 +72,20 @@ 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 +%if 0%{?fedora} BuildRequires: pkgconfig(libprocps) +%endif BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libqrencode) BuildRequires: libdrm-devel BuildRequires: pkgconfig(libwebp) %if 0%{?el8} -BuildRequires: xorg-x11-server-Xvfb -BuildRequires: python3-cairo -BuildRequires: cairo-devel +#BuildRequires: xorg-x11-server-Xvfb +#BuildRequires: cairo-devel BuildRequires: pygobject3-devel %else BuildRequires: python3-gobject-devel +%endif BuildRequires: libappstream-glib BuildRequires: python3-cairo-devel BuildRequires: xorg-x11-server-Xorg @@ -99,7 +93,6 @@ BuildRequires: xorg-x11-drv-dummy BuildRequires: xorg-x11-xauth BuildRequires: xkbcomp BuildRequires: setxkbmap -%endif %if %{with debug} BuildRequires: libasan %endif @@ -172,11 +165,6 @@ network bandwidth constraints. %prep %autosetup -n %{name}-%{version} -N -%if 0%{?el8} -%patch0 -p1 -b .backup -%patch1 -p1 -b .backup -sed -i 's|@@python3_sitearch@@|%{python3_sitearch}|' setup.py -%endif %patch2 -p1 -R -b .backup # cc1: error: unrecognized compiler option ‘-mfpmath=387’ @@ -186,9 +174,6 @@ sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %build %set_build_flags -%if 0%{?el8} -export CFLAGS="%{build_cflags} -I%{_includedir}/cairo" -%endif %{__python3} setup.py build --executable="%{__python3} -s" \ --with-verbose \ --with-vpx \ @@ -316,6 +301,10 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Wed Jan 18 2023 Sérgio Basto - 4.4.3-3 +- Fix epel builds, seems upstream sort out py3cairo hack on el8 +- el8 now also have xorg-x11-drv-dummy + * Sun Jan 08 2023 Sérgio Basto - 4.4.3-2 - Add unitdir, we may have unitdir but by default disabled, preset just enable service by default which understandably was not approved. to check presets run `systemctl status xpra | grep preset` From a37a2f734aef92d699f35914317dfef6df6f72ce Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 07:49:26 +0000 Subject: [PATCH 13/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xpra.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 96c97c0..1aee6e1 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,7 +44,7 @@ Name: xpra Version: 4.4.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -301,6 +301,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 4.4.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Jan 18 2023 Sérgio Basto - 4.4.3-3 - Fix epel builds, seems upstream sort out py3cairo hack on el8 - el8 now also have xorg-x11-drv-dummy From d44662aee52f6693b8a846ee4a9e995c24a567ad Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 15 Feb 2023 17:44:27 -0500 Subject: [PATCH 14/85] rebuild for libvpx --- xpra.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xpra.spec b/xpra.spec index 1aee6e1..5fab20f 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,7 +44,7 @@ Name: xpra Version: 4.4.3 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -301,6 +301,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Wed Feb 15 2023 Tom Callaway - 4.4.3-5 +- rebuild for libvpx + * Sat Jan 21 2023 Fedora Release Engineering - 4.4.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 92211a6f61e7eb58ebddd1d615ef0e55e8bd52ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 13 Mar 2023 16:13:47 +0000 Subject: [PATCH 15/85] Add python3-zeroconf to requires, we need to see if it iwe choose be just recommend xpra-bug3693.patch already available in source code --- xpra-bug3693.patch | 272 --------------------------------------------- xpra.spec | 17 +-- 2 files changed, 10 insertions(+), 279 deletions(-) delete mode 100644 xpra-bug3693.patch diff --git a/xpra-bug3693.patch b/xpra-bug3693.patch deleted file mode 100644 index cc2a0e3..0000000 --- a/xpra-bug3693.patch +++ /dev/null @@ -1,272 +0,0 @@ -From 23b2c55737ca8b368197f01cc547d5439c84b862 Mon Sep 17 00:00:00 2001 -From: totaam -Date: Sun, 27 Nov 2022 21:19:47 +0700 -Subject: [PATCH] make sure to include cuda libs when needed - -(on MS Windows) ---- - setup.py | 187 +++++++++++++++++++++++++++++++------------------------ - 1 file changed, 106 insertions(+), 81 deletions(-) - -diff --git a/setup.py b/setup.py -index fc5831cdc..22a2256b8 100755 ---- a/setup.py -+++ b/setup.py -@@ -1503,7 +1503,7 @@ def add_service_exe(script, icon, base_name): - add_console_exe("xpra/codecs/nv_util.py", "nvidia.ico", "NVidia_info") - if nvfbc_ENABLED: - add_console_exe("xpra/codecs/nvfbc/capture.py", "nvidia.ico", "NvFBC_capture") -- if nvfbc_ENABLED or nvenc_ENABLED: -+ if nvfbc_ENABLED or nvenc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: - add_console_exe("xpra/codecs/cuda_common/cuda_context.py", "cuda.ico", "CUDA_info") - - if ("install_exe" in sys.argv) or ("install" in sys.argv): -@@ -2043,22 +2043,18 @@ def add_cython_ext(*_args, **_kwargs): - toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.cuda_common") - toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.nv_util") - --CUDA_BIN = "%s/cuda" % share_xpra --if (nvenc_ENABLED and cuda_kernels_ENABLED) or nvjpeg_encoder_ENABLED: -+nvidia_ENABLED = nvenc_ENABLED or nvfbc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED -+toggle_packages(nvidia_ENABLED, "xpra.codecs.nvidia") -+if nvidia_ENABLED: -+ CUDA_BIN = f"{share_xpra}/cuda" - #find nvcc: -- from xpra.util import sorted_nicely -+ from xpra.util import sorted_nicely # pylint: disable=import-outside-toplevel - path_options = os.environ.get("PATH", "").split(os.path.pathsep) - if WIN32: -- external_includes += ["pycuda"] -+ external_includes.append("pycuda") - nvcc_exe = "nvcc.exe" - CUDA_DIR = os.environ.get("CUDA_DIR", "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA") -- path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob("%s\\*\\bin" % CUDA_DIR)))) -- #pycuda may link against curand, find it and ship it: -- for p in path_options: -- if os.path.exists(p): -- add_data_files("", glob.glob("%s\\curand64*.dll" % p)) -- add_data_files("", glob.glob("%s\\cudart64*.dll" % p)) -- break -+ path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob(f"{CUDA_DIR}\\*\\bin")))) - else: - nvcc_exe = "nvcc" - path_options += ["/usr/local/cuda/bin", "/opt/cuda/bin"] -@@ -2066,12 +2062,9 @@ def add_cython_ext(*_args, **_kwargs): - path_options += list(reversed(sorted_nicely(glob.glob("/opt/cuda*/bin")))) - options = [os.path.join(x, nvcc_exe) for x in path_options] - #prefer the one we find on the $PATH, if any: -- try: -- v = shutil.which(nvcc_exe) -- if v and (v not in options): -- options.insert(0, v) -- except: -- pass -+ v = shutil.which(nvcc_exe) -+ if v and (v not in options): -+ options.insert(0, v) - nvcc_versions = {} - def get_nvcc_version(command): - if not os.path.exists(command): -@@ -2082,30 +2075,94 @@ def get_nvcc_version(command): - vpos = out.rfind(", V") - if vpos>0: - version = out[vpos+3:].split("\n")[0] -- version_str = " version %s" % version -+ version_str = f" version {version}" - else: - version = "0" - version_str = " unknown version!" -- print("found CUDA compiler: %s%s" % (filename, version_str)) -+ print(f"found CUDA compiler: {filename}{version_str}") - return tuple(int(x) for x in version.split(".")) - for filename in options: - vnum = get_nvcc_version(filename) - if vnum: - nvcc_versions[vnum] = filename -+ nvcc_version = nvcc = None - if nvcc_versions: - #choose the most recent one: - nvcc_version, nvcc = list(reversed(sorted(nvcc_versions.items())))[0] - if len(nvcc_versions)>1: -- print(" using version %s from %s" % (nvcc_version, nvcc)) -- else: -- nvcc_version = nvcc = None -- if ((nvenc_ENABLED or nvjpeg_encoder_ENABLED) and cuda_kernels_ENABLED): -- assert nvcc_versions, "cannot find nvcc compiler!" -+ print(f" using version {nvcc_version} from {nvcc}") -+ if cuda_kernels_ENABLED and (nvenc_ENABLED or nvjpeg_encoder_ENABLED): -+ def get_gcc_version(): -+ if CC_is_clang(): -+ return (0, ) -+ cc = os.environ.get("CC", "gcc") -+ r, _, err = get_status_output([cc, "-v"]) -+ if r==0: -+ V_LINE = "gcc version " -+ tmp_version = [] -+ for line in err.splitlines(): -+ if not line.startswith(V_LINE): -+ continue -+ v_str = line[len(V_LINE):].strip().split(" ")[0] -+ for p in v_str.split("."): -+ try: -+ tmp_version.append(int(p)) -+ except ValueError: -+ break -+ print("found gcc version: %s" % ".".join(str(x) for x in tmp_version)) -+ break -+ return tuple(tmp_version) -+ return (0, ) -+ assert nvcc, "cannot find nvcc compiler!" -+ def get_nvcc_args(): -+ nvcc_cmd = [nvcc, "-fatbin"] -+ gcc_version = get_gcc_version() -+ if gcc_version<(7, 5): -+ print("gcc versions older than 7.5 are not supported!") -+ for _ in range(5): -+ sleep(1) -+ print(".") -+ if (8,1)<=gcc_version<(9, ): -+ #GCC 8.1 has compatibility issues with CUDA 9.2, -+ #so revert to C++03: -+ nvcc_cmd.append("-std=c++03") -+ #GCC 6 uses C++11 by default: -+ else: -+ nvcc_cmd.append("-std=c++11") -+ if gcc_version>=(12, 0) or CC_is_clang(): -+ nvcc_cmd.append("--allow-unsupported-compiler") -+ if nvcc_version>=(11, 5): -+ nvcc_cmd += ["-arch=all", -+ "-Wno-deprecated-gpu-targets", -+ ] -+ if nvcc_version>=(11, 6): -+ nvcc_cmd += ["-Xnvlink", "-ignore-host-info"] -+ return nvcc_cmd -+ #older versions, add every arch we know about: -+ comp_code_options = [] -+ if nvcc_version>=(7, 5): -+ comp_code_options.append((52, 52)) -+ comp_code_options.append((53, 53)) -+ if nvcc_version>=(8, 0): -+ comp_code_options.append((60, 60)) -+ comp_code_options.append((61, 61)) -+ comp_code_options.append((62, 62)) -+ if nvcc_version>=(9, 0): -+ comp_code_options.append((70, 70)) -+ if nvcc_version>=(10, 0): -+ comp_code_options.append((75, 75)) -+ if nvcc_version>=(11, 0): -+ comp_code_options.append((80, 80)) -+ if nvcc_version>=(11, 1): -+ comp_code_options.append((86, 86)) -+ #if nvcc_version>=(11, 6): -+ # comp_code_options.append((87, 87)) -+ for arch, code in comp_code_options: -+ nvcc_cmd.append(f"-gencode=arch=compute_{arch},code=sm_{code}") -+ return nvcc_cmd -+ nvcc_args = get_nvcc_args() - #first compile the cuda kernels - #(using the same cuda SDK for both nvenc modules for now..) -- #TODO: -- # * compile directly to output directory instead of using data files? -- # * detect which arches we want to build for? (does it really matter much?) - kernels = [] - if nvenc_ENABLED: - kernels += ["XRGB_to_NV12", "XRGB_to_YUV444", "BGRX_to_NV12", "BGRX_to_YUV444"] -@@ -2113,67 +2170,26 @@ def get_nvcc_version(command): - kernels += ["BGRX_to_RGB", "RGBX_to_RGB", "RGBA_to_RGBAP", "BGRA_to_RGBAP"] - nvcc_commands = [] - for kernel in kernels: -- cuda_src = "fs/share/xpra/cuda/%s.cu" % kernel -- cuda_bin = "fs/share/xpra/cuda/%s.fatbin" % kernel -+ cuda_src = f"fs/share/xpra/cuda/{kernel}.cu" -+ cuda_bin = f"fs/share/xpra/cuda/{kernel}.fatbin" - if os.path.exists(cuda_bin) and (cuda_rebuild_ENABLED is False): - continue - reason = should_rebuild(cuda_src, cuda_bin) - if not reason: - continue -- print("rebuilding %s: %s" % (kernel, reason)) -- cmd = [nvcc, -- '-fatbin', -- "-c", cuda_src, -- "-o", cuda_bin] -- gcc_version = get_gcc_version() -- if (8,1)<=gcc_version<(9, ): -- #GCC 8.1 has compatibility issues with CUDA 9.2, -- #so revert to C++03: -- cmd.append("-std=c++03") -- #GCC 6 uses C++11 by default: -- else: -- cmd.append("-std=c++11") -- if gcc_version>=(12, 0) or CC_is_clang(): -- cmd.append("--allow-unsupported-compiler") -- if nvcc_version>=(11, 5): -- cmd += ["-arch=all", -- "-Wno-deprecated-gpu-targets", -- ] -- if nvcc_version>=(11, 6): -- cmd += ["-Xnvlink", "-ignore-host-info"] -- else: -- comp_code_options = [] -- if nvcc_version>=(7, 5): -- comp_code_options.append((52, 52)) -- comp_code_options.append((53, 53)) -- if nvcc_version>=(8, 0): -- comp_code_options.append((60, 60)) -- comp_code_options.append((61, 61)) -- comp_code_options.append((62, 62)) -- if nvcc_version>=(9, 0): -- comp_code_options.append((70, 70)) -- if nvcc_version>=(10, 0): -- comp_code_options.append((75, 75)) -- if nvcc_version>=(11, 0): -- comp_code_options.append((80, 80)) -- if nvcc_version>=(11, 1): -- comp_code_options.append((86, 86)) -- #if nvcc_version>=(11, 6): -- # comp_code_options.append((87, 87)) -- for arch, code in comp_code_options: -- cmd.append("-gencode=arch=compute_%s,code=sm_%s" % (arch, code)) -- print("CUDA compiling %s (%s)" % (kernel.ljust(16), reason)) -- print(" %s" % " ".join("'%s'" % x for x in cmd)) -- nvcc_commands.append(cmd) -- -+ print(f"rebuilding {kernel}: {reason}") -+ kbuild_cmd = nvcc_args + ["-c", cuda_src, "-o", cuda_bin] -+ print(f"CUDA compiling %s ({reason})" % kernel.ljust(16)) -+ print(" "+" ".join(f"{x!r}" for x in kbuild_cmd)) -+ nvcc_commands.append(kbuild_cmd) - #parallel build: - nvcc_errors = [] -- def nvcc_compile(cmd): -- c, stdout, stderr = get_status_output(cmd) -+ def nvcc_compile(nvcc_cmd): -+ c, stdout, stderr = get_status_output(nvcc_cmd) - if c!=0: - nvcc_errors.append(c) -- print("Error: failed to compile CUDA kernel %s" % kernel) -- print(" using command: %s" % (cmd,)) -+ print(f"Error: failed to compile CUDA kernel {kernel}") -+ print(f" using command: {nvcc_cmd}") - print(stdout or "") - print(stderr or "") - nvcc_threads = [] -@@ -2186,8 +2202,17 @@ def nvcc_compile(cmd): - if nvcc_errors: - sys.exit(1) - t.join() -+ add_data_files(CUDA_BIN, [f"fs/share/xpra/cuda/{x}.fatbin" for x in kernels]) -+ add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) -+ if WIN32 and (nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED or nvenc_ENABLED): -+ assert nvcc_versions -+ CUDA_BIN_DIR = os.path.dirname(nvcc) -+ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/cudart64*dll")) -+ #if pycuda is built with curand, add this: -+ #add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/curand64*dll")) -+ if nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: -+ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/nvjpeg64*dll")) - -- add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/%s.fatbin" % x for x in kernels]) - add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) - - tace(nvenc_ENABLED, "xpra.codecs.nvenc.encoder", "nvenc") diff --git a/xpra.spec b/xpra.spec index 96c97c0..d531f43 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,14 +44,13 @@ Name: xpra Version: 4.4.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and 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 Source1: %{name}.appdata.xml -Patch2: %{name}-bug3693.patch BuildRequires: python3-devel BuildRequires: gtk3-devel @@ -73,7 +72,7 @@ BuildRequires: pandoc # needs by setup.py to detect systemd `sd_listen_ENABLED = POSIX and pkg_config_ok("--exists", "libsystemd")` BuildRequires: systemd-devel %if 0%{?fedora} -BuildRequires: pkgconfig(libprocps) +BuildRequires: procps-ng-devel %endif BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libqrencode) @@ -114,13 +113,14 @@ Requires: python3-ldap3 Requires: python3-rencode Requires: python3-netifaces Requires: python3-dbus +Requires: python3-numpy +Requires: python3-zeroconf Requires: dbus-x11 Requires: xmodmap Requires: xrandr Requires: xorg-x11-drv-dummy%{?_isa} Requires: xorg-x11-xauth%{?_isa} Requires: xorg-x11-server-Xorg%{?_isa} -Requires: python3-numpy Requires: gstreamer1%{?_isa} Requires: gstreamer1-plugins-base%{?_isa} Requires: gstreamer1-plugins-good%{?_isa} @@ -165,8 +165,6 @@ network bandwidth constraints. %prep %autosetup -n %{name}-%{version} -N -%patch2 -p1 -R -b .backup - # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py @@ -218,7 +216,7 @@ install -pm 644 fs/etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra #remove doc stuff from /usr/share rm %{buildroot}%{_datadir}/xpra/COPYING -#fi shebangs from python3_sitearch +#fix shebangs from python3_sitearch for i in `ack -rl '^#!/.*python' %{buildroot}%{python3_sitearch}/xpra`; do %py3_shebang_fix $i chmod 0755 $i @@ -301,6 +299,11 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Mon Mar 13 2023 Sérgio Basto - 4.4.3-4 +- Add python3-zeroconf to requires, we need to see if it iwe choose be just + recommend +- xpra-bug3693.patch already available in source code + * Wed Jan 18 2023 Sérgio Basto - 4.4.3-3 - Fix epel builds, seems upstream sort out py3cairo hack on el8 - el8 now also have xorg-x11-drv-dummy From cc9ebaeb09b6c599f8ac403f3d4e0bf7982af76e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 13 Mar 2023 16:18:47 +0000 Subject: [PATCH 16/85] Add python3-zeroconf to requires, we need to see if it iwe choose be just recommend xpra-bug3693.patch already available in source code --- xpra-bug3693.patch | 272 --------------------------------------------- xpra.spec | 17 +-- 2 files changed, 10 insertions(+), 279 deletions(-) delete mode 100644 xpra-bug3693.patch diff --git a/xpra-bug3693.patch b/xpra-bug3693.patch deleted file mode 100644 index cc2a0e3..0000000 --- a/xpra-bug3693.patch +++ /dev/null @@ -1,272 +0,0 @@ -From 23b2c55737ca8b368197f01cc547d5439c84b862 Mon Sep 17 00:00:00 2001 -From: totaam -Date: Sun, 27 Nov 2022 21:19:47 +0700 -Subject: [PATCH] make sure to include cuda libs when needed - -(on MS Windows) ---- - setup.py | 187 +++++++++++++++++++++++++++++++------------------------ - 1 file changed, 106 insertions(+), 81 deletions(-) - -diff --git a/setup.py b/setup.py -index fc5831cdc..22a2256b8 100755 ---- a/setup.py -+++ b/setup.py -@@ -1503,7 +1503,7 @@ def add_service_exe(script, icon, base_name): - add_console_exe("xpra/codecs/nv_util.py", "nvidia.ico", "NVidia_info") - if nvfbc_ENABLED: - add_console_exe("xpra/codecs/nvfbc/capture.py", "nvidia.ico", "NvFBC_capture") -- if nvfbc_ENABLED or nvenc_ENABLED: -+ if nvfbc_ENABLED or nvenc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: - add_console_exe("xpra/codecs/cuda_common/cuda_context.py", "cuda.ico", "CUDA_info") - - if ("install_exe" in sys.argv) or ("install" in sys.argv): -@@ -2043,22 +2043,18 @@ def add_cython_ext(*_args, **_kwargs): - toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.cuda_common") - toggle_packages(nvenc_ENABLED or nvfbc_ENABLED, "xpra.codecs.nv_util") - --CUDA_BIN = "%s/cuda" % share_xpra --if (nvenc_ENABLED and cuda_kernels_ENABLED) or nvjpeg_encoder_ENABLED: -+nvidia_ENABLED = nvenc_ENABLED or nvfbc_ENABLED or nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED -+toggle_packages(nvidia_ENABLED, "xpra.codecs.nvidia") -+if nvidia_ENABLED: -+ CUDA_BIN = f"{share_xpra}/cuda" - #find nvcc: -- from xpra.util import sorted_nicely -+ from xpra.util import sorted_nicely # pylint: disable=import-outside-toplevel - path_options = os.environ.get("PATH", "").split(os.path.pathsep) - if WIN32: -- external_includes += ["pycuda"] -+ external_includes.append("pycuda") - nvcc_exe = "nvcc.exe" - CUDA_DIR = os.environ.get("CUDA_DIR", "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA") -- path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob("%s\\*\\bin" % CUDA_DIR)))) -- #pycuda may link against curand, find it and ship it: -- for p in path_options: -- if os.path.exists(p): -- add_data_files("", glob.glob("%s\\curand64*.dll" % p)) -- add_data_files("", glob.glob("%s\\cudart64*.dll" % p)) -- break -+ path_options += ["./cuda/bin/"]+list(reversed(sorted_nicely(glob.glob(f"{CUDA_DIR}\\*\\bin")))) - else: - nvcc_exe = "nvcc" - path_options += ["/usr/local/cuda/bin", "/opt/cuda/bin"] -@@ -2066,12 +2062,9 @@ def add_cython_ext(*_args, **_kwargs): - path_options += list(reversed(sorted_nicely(glob.glob("/opt/cuda*/bin")))) - options = [os.path.join(x, nvcc_exe) for x in path_options] - #prefer the one we find on the $PATH, if any: -- try: -- v = shutil.which(nvcc_exe) -- if v and (v not in options): -- options.insert(0, v) -- except: -- pass -+ v = shutil.which(nvcc_exe) -+ if v and (v not in options): -+ options.insert(0, v) - nvcc_versions = {} - def get_nvcc_version(command): - if not os.path.exists(command): -@@ -2082,30 +2075,94 @@ def get_nvcc_version(command): - vpos = out.rfind(", V") - if vpos>0: - version = out[vpos+3:].split("\n")[0] -- version_str = " version %s" % version -+ version_str = f" version {version}" - else: - version = "0" - version_str = " unknown version!" -- print("found CUDA compiler: %s%s" % (filename, version_str)) -+ print(f"found CUDA compiler: {filename}{version_str}") - return tuple(int(x) for x in version.split(".")) - for filename in options: - vnum = get_nvcc_version(filename) - if vnum: - nvcc_versions[vnum] = filename -+ nvcc_version = nvcc = None - if nvcc_versions: - #choose the most recent one: - nvcc_version, nvcc = list(reversed(sorted(nvcc_versions.items())))[0] - if len(nvcc_versions)>1: -- print(" using version %s from %s" % (nvcc_version, nvcc)) -- else: -- nvcc_version = nvcc = None -- if ((nvenc_ENABLED or nvjpeg_encoder_ENABLED) and cuda_kernels_ENABLED): -- assert nvcc_versions, "cannot find nvcc compiler!" -+ print(f" using version {nvcc_version} from {nvcc}") -+ if cuda_kernels_ENABLED and (nvenc_ENABLED or nvjpeg_encoder_ENABLED): -+ def get_gcc_version(): -+ if CC_is_clang(): -+ return (0, ) -+ cc = os.environ.get("CC", "gcc") -+ r, _, err = get_status_output([cc, "-v"]) -+ if r==0: -+ V_LINE = "gcc version " -+ tmp_version = [] -+ for line in err.splitlines(): -+ if not line.startswith(V_LINE): -+ continue -+ v_str = line[len(V_LINE):].strip().split(" ")[0] -+ for p in v_str.split("."): -+ try: -+ tmp_version.append(int(p)) -+ except ValueError: -+ break -+ print("found gcc version: %s" % ".".join(str(x) for x in tmp_version)) -+ break -+ return tuple(tmp_version) -+ return (0, ) -+ assert nvcc, "cannot find nvcc compiler!" -+ def get_nvcc_args(): -+ nvcc_cmd = [nvcc, "-fatbin"] -+ gcc_version = get_gcc_version() -+ if gcc_version<(7, 5): -+ print("gcc versions older than 7.5 are not supported!") -+ for _ in range(5): -+ sleep(1) -+ print(".") -+ if (8,1)<=gcc_version<(9, ): -+ #GCC 8.1 has compatibility issues with CUDA 9.2, -+ #so revert to C++03: -+ nvcc_cmd.append("-std=c++03") -+ #GCC 6 uses C++11 by default: -+ else: -+ nvcc_cmd.append("-std=c++11") -+ if gcc_version>=(12, 0) or CC_is_clang(): -+ nvcc_cmd.append("--allow-unsupported-compiler") -+ if nvcc_version>=(11, 5): -+ nvcc_cmd += ["-arch=all", -+ "-Wno-deprecated-gpu-targets", -+ ] -+ if nvcc_version>=(11, 6): -+ nvcc_cmd += ["-Xnvlink", "-ignore-host-info"] -+ return nvcc_cmd -+ #older versions, add every arch we know about: -+ comp_code_options = [] -+ if nvcc_version>=(7, 5): -+ comp_code_options.append((52, 52)) -+ comp_code_options.append((53, 53)) -+ if nvcc_version>=(8, 0): -+ comp_code_options.append((60, 60)) -+ comp_code_options.append((61, 61)) -+ comp_code_options.append((62, 62)) -+ if nvcc_version>=(9, 0): -+ comp_code_options.append((70, 70)) -+ if nvcc_version>=(10, 0): -+ comp_code_options.append((75, 75)) -+ if nvcc_version>=(11, 0): -+ comp_code_options.append((80, 80)) -+ if nvcc_version>=(11, 1): -+ comp_code_options.append((86, 86)) -+ #if nvcc_version>=(11, 6): -+ # comp_code_options.append((87, 87)) -+ for arch, code in comp_code_options: -+ nvcc_cmd.append(f"-gencode=arch=compute_{arch},code=sm_{code}") -+ return nvcc_cmd -+ nvcc_args = get_nvcc_args() - #first compile the cuda kernels - #(using the same cuda SDK for both nvenc modules for now..) -- #TODO: -- # * compile directly to output directory instead of using data files? -- # * detect which arches we want to build for? (does it really matter much?) - kernels = [] - if nvenc_ENABLED: - kernels += ["XRGB_to_NV12", "XRGB_to_YUV444", "BGRX_to_NV12", "BGRX_to_YUV444"] -@@ -2113,67 +2170,26 @@ def get_nvcc_version(command): - kernels += ["BGRX_to_RGB", "RGBX_to_RGB", "RGBA_to_RGBAP", "BGRA_to_RGBAP"] - nvcc_commands = [] - for kernel in kernels: -- cuda_src = "fs/share/xpra/cuda/%s.cu" % kernel -- cuda_bin = "fs/share/xpra/cuda/%s.fatbin" % kernel -+ cuda_src = f"fs/share/xpra/cuda/{kernel}.cu" -+ cuda_bin = f"fs/share/xpra/cuda/{kernel}.fatbin" - if os.path.exists(cuda_bin) and (cuda_rebuild_ENABLED is False): - continue - reason = should_rebuild(cuda_src, cuda_bin) - if not reason: - continue -- print("rebuilding %s: %s" % (kernel, reason)) -- cmd = [nvcc, -- '-fatbin', -- "-c", cuda_src, -- "-o", cuda_bin] -- gcc_version = get_gcc_version() -- if (8,1)<=gcc_version<(9, ): -- #GCC 8.1 has compatibility issues with CUDA 9.2, -- #so revert to C++03: -- cmd.append("-std=c++03") -- #GCC 6 uses C++11 by default: -- else: -- cmd.append("-std=c++11") -- if gcc_version>=(12, 0) or CC_is_clang(): -- cmd.append("--allow-unsupported-compiler") -- if nvcc_version>=(11, 5): -- cmd += ["-arch=all", -- "-Wno-deprecated-gpu-targets", -- ] -- if nvcc_version>=(11, 6): -- cmd += ["-Xnvlink", "-ignore-host-info"] -- else: -- comp_code_options = [] -- if nvcc_version>=(7, 5): -- comp_code_options.append((52, 52)) -- comp_code_options.append((53, 53)) -- if nvcc_version>=(8, 0): -- comp_code_options.append((60, 60)) -- comp_code_options.append((61, 61)) -- comp_code_options.append((62, 62)) -- if nvcc_version>=(9, 0): -- comp_code_options.append((70, 70)) -- if nvcc_version>=(10, 0): -- comp_code_options.append((75, 75)) -- if nvcc_version>=(11, 0): -- comp_code_options.append((80, 80)) -- if nvcc_version>=(11, 1): -- comp_code_options.append((86, 86)) -- #if nvcc_version>=(11, 6): -- # comp_code_options.append((87, 87)) -- for arch, code in comp_code_options: -- cmd.append("-gencode=arch=compute_%s,code=sm_%s" % (arch, code)) -- print("CUDA compiling %s (%s)" % (kernel.ljust(16), reason)) -- print(" %s" % " ".join("'%s'" % x for x in cmd)) -- nvcc_commands.append(cmd) -- -+ print(f"rebuilding {kernel}: {reason}") -+ kbuild_cmd = nvcc_args + ["-c", cuda_src, "-o", cuda_bin] -+ print(f"CUDA compiling %s ({reason})" % kernel.ljust(16)) -+ print(" "+" ".join(f"{x!r}" for x in kbuild_cmd)) -+ nvcc_commands.append(kbuild_cmd) - #parallel build: - nvcc_errors = [] -- def nvcc_compile(cmd): -- c, stdout, stderr = get_status_output(cmd) -+ def nvcc_compile(nvcc_cmd): -+ c, stdout, stderr = get_status_output(nvcc_cmd) - if c!=0: - nvcc_errors.append(c) -- print("Error: failed to compile CUDA kernel %s" % kernel) -- print(" using command: %s" % (cmd,)) -+ print(f"Error: failed to compile CUDA kernel {kernel}") -+ print(f" using command: {nvcc_cmd}") - print(stdout or "") - print(stderr or "") - nvcc_threads = [] -@@ -2186,8 +2202,17 @@ def nvcc_compile(cmd): - if nvcc_errors: - sys.exit(1) - t.join() -+ add_data_files(CUDA_BIN, [f"fs/share/xpra/cuda/{x}.fatbin" for x in kernels]) -+ add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) -+ if WIN32 and (nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED or nvenc_ENABLED): -+ assert nvcc_versions -+ CUDA_BIN_DIR = os.path.dirname(nvcc) -+ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/cudart64*dll")) -+ #if pycuda is built with curand, add this: -+ #add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/curand64*dll")) -+ if nvjpeg_encoder_ENABLED or nvjpeg_decoder_ENABLED: -+ add_data_files("", glob.glob(f"{CUDA_BIN_DIR}/nvjpeg64*dll")) - -- add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/%s.fatbin" % x for x in kernels]) - add_data_files(CUDA_BIN, ["fs/share/xpra/cuda/README.md"]) - - tace(nvenc_ENABLED, "xpra.codecs.nvenc.encoder", "nvenc") diff --git a/xpra.spec b/xpra.spec index 5fab20f..6f3ed66 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,14 +44,13 @@ Name: xpra Version: 4.4.3 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and 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 Source1: %{name}.appdata.xml -Patch2: %{name}-bug3693.patch BuildRequires: python3-devel BuildRequires: gtk3-devel @@ -73,7 +72,7 @@ BuildRequires: pandoc # needs by setup.py to detect systemd `sd_listen_ENABLED = POSIX and pkg_config_ok("--exists", "libsystemd")` BuildRequires: systemd-devel %if 0%{?fedora} -BuildRequires: pkgconfig(libprocps) +BuildRequires: procps-ng-devel %endif BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libqrencode) @@ -114,13 +113,14 @@ Requires: python3-ldap3 Requires: python3-rencode Requires: python3-netifaces Requires: python3-dbus +Requires: python3-numpy +Requires: python3-zeroconf Requires: dbus-x11 Requires: xmodmap Requires: xrandr Requires: xorg-x11-drv-dummy%{?_isa} Requires: xorg-x11-xauth%{?_isa} Requires: xorg-x11-server-Xorg%{?_isa} -Requires: python3-numpy Requires: gstreamer1%{?_isa} Requires: gstreamer1-plugins-base%{?_isa} Requires: gstreamer1-plugins-good%{?_isa} @@ -165,8 +165,6 @@ network bandwidth constraints. %prep %autosetup -n %{name}-%{version} -N -%patch2 -p1 -R -b .backup - # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py @@ -218,7 +216,7 @@ install -pm 644 fs/etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra #remove doc stuff from /usr/share rm %{buildroot}%{_datadir}/xpra/COPYING -#fi shebangs from python3_sitearch +#fix shebangs from python3_sitearch for i in `ack -rl '^#!/.*python' %{buildroot}%{python3_sitearch}/xpra`; do %py3_shebang_fix $i chmod 0755 $i @@ -301,6 +299,11 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Mon Mar 13 2023 Sérgio Basto - 4.4.3-6 +- Add python3-zeroconf to requires, we need to see if it iwe choose be just + recommend +- xpra-bug3693.patch already available in source code + * Wed Feb 15 2023 Tom Callaway - 4.4.3-5 - rebuild for libvpx From 87e1e203f87e20080709c0e71718770f2ccdab99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 13 Mar 2023 18:44:16 +0000 Subject: [PATCH 17/85] Update xpra to 4.4.4 (#2177195) --- .gitignore | 1 + ignore_assert_pandoc.patch | 41 ++++++++++++++++++++++++++++++++++++++ sources | 2 +- xpra.spec | 10 +++++++--- 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 ignore_assert_pandoc.patch diff --git a/.gitignore b/.gitignore index ce68d1d..16258a5 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,4 @@ /xpra-4.4.1.tar.gz /xpra-4.4.2.tar.gz /xpra-4.4.3.tar.gz +/xpra-4.4.4.tar.gz diff --git a/ignore_assert_pandoc.patch b/ignore_assert_pandoc.patch new file mode 100644 index 0000000..ceacee9 --- /dev/null +++ b/ignore_assert_pandoc.patch @@ -0,0 +1,41 @@ +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 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", + else: + cmd += ["--lua-filter", "./fs/bin/links-to-html.lua"] + r = subprocess.Popen(cmd).wait(30) +- 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 c47b01d..b2b8e1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.3.tar.gz) = db1815ce3b2220b7494ebaac22bf94df264fd440cf9d57a9088d29afe24481895de0633f70dc0f4f7ca3566454d6febe015d68339efb0b206564acc35ec672d2 +SHA512 (xpra-4.4.4.tar.gz) = b2e5928bcf9a483fdb5c3096206e26b5bab690bfa2190b2c17ea43986cf53e4584546b2f5af7d3c63798096b648ec2f843d82a4bfd74719f3cf1f3c8cadaf9b7 diff --git a/xpra.spec b/xpra.spec index 6f3ed66..ff33f78 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,14 +43,15 @@ %endif Name: xpra -Version: 4.4.3 -Release: 6%{?dist} +Version: 4.4.4 +Release: 1%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and 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 Source1: %{name}.appdata.xml +Patch1: ignore_assert_pandoc.patch BuildRequires: python3-devel BuildRequires: gtk3-devel @@ -163,7 +164,7 @@ Xpra is usable over reasonably slow links and does its best to adapt to changing network bandwidth constraints. %prep -%autosetup -n %{name}-%{version} -N +%autosetup -p1 -n %{name}-%{version} # cc1: error: unrecognized compiler option ‘-mfpmath=387’ %ifarch %{arm} @@ -299,6 +300,9 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Mon Mar 13 2023 Sérgio Basto - 4.4.4-1 +- Update xpra to 4.4.4 (#2177195) + * Mon Mar 13 2023 Sérgio Basto - 4.4.3-6 - Add python3-zeroconf to requires, we need to see if it iwe choose be just recommend From 4ed00855f372e205e12c7448422ce1894950e82d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 22 May 2023 15:48:17 +0100 Subject: [PATCH 18/85] Fix epel 8 and 9 builds , no python3-zeroconf on epel and use pipewire on el9 --- xpra.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/xpra.spec b/xpra.spec index ff33f78..0ca9023 100644 --- a/xpra.spec +++ b/xpra.spec @@ -44,7 +44,7 @@ Name: xpra Version: 4.4.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -115,7 +115,9 @@ 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 @@ -125,7 +127,7 @@ Requires: xorg-x11-server-Xorg%{?_isa} Requires: gstreamer1%{?_isa} Requires: gstreamer1-plugins-base%{?_isa} Requires: gstreamer1-plugins-good%{?_isa} -%if 0%{?fedora} +%if 0%{?fedora} || 0%{?rhel} >= 9 Requires: pipewire%{?_isa} Requires: pipewire-utils%{?_isa} Requires: pipewire-pulseaudio%{?_isa} @@ -300,12 +302,14 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog +* Mon May 22 2023 Sérgio Basto - 4.4.4-2 +- Fix epel 8 and 9 builds , no python3-zeroconf on epel and use pipewire on el9 + * Mon Mar 13 2023 Sérgio Basto - 4.4.4-1 - Update xpra to 4.4.4 (#2177195) * Mon Mar 13 2023 Sérgio Basto - 4.4.3-6 -- Add python3-zeroconf to requires, we need to see if it iwe choose be just - recommend +- Add python3-zeroconf to the requires, we need to see if we choose to be recommend only - xpra-bug3693.patch already available in source code * Wed Feb 15 2023 Tom Callaway - 4.4.3-5 From 19677b8b6bd0ed76a2c6abbc59eefd02363c2579 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 27 May 2023 19:53:57 +0200 Subject: [PATCH 19/85] Release 4.4.5 --- .gitignore | 1 + sources | 2 +- xpra.spec | 669 +---------------------------------------------------- 3 files changed, 5 insertions(+), 667 deletions(-) diff --git a/.gitignore b/.gitignore index 16258a5..5c06611 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ /xpra-4.4.2.tar.gz /xpra-4.4.3.tar.gz /xpra-4.4.4.tar.gz +/xpra-4.4.5.tar.gz diff --git a/sources b/sources index b2b8e1c..cd7ef36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.4.tar.gz) = b2e5928bcf9a483fdb5c3096206e26b5bab690bfa2190b2c17ea43986cf53e4584546b2f5af7d3c63798096b648ec2f843d82a4bfd74719f3cf1f3c8cadaf9b7 +SHA512 (xpra-4.4.5.tar.gz) = 518f52dddd59aa958aaa31bca9e87e1eb55755760307342c6d95693e886c6a4adba1906513f3dcb015f0b2a4b12890760169b8e5afccdbd2007ca75fc227b536 diff --git a/xpra.spec b/xpra.spec index 0ca9023..d034413 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,8 +43,8 @@ %endif Name: xpra -Version: 4.4.4 -Release: 2%{?dist} +Version: 4.4.5 +Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT URL: https://www.xpra.org/ @@ -302,667 +302,4 @@ getent group xpra >/dev/null || groupadd -r xpra %{_udevrulesdir}/71-xpra-virtual-pointer.rules %changelog -* Mon May 22 2023 Sérgio Basto - 4.4.4-2 -- Fix epel 8 and 9 builds , no python3-zeroconf on epel and use pipewire on el9 - -* Mon Mar 13 2023 Sérgio Basto - 4.4.4-1 -- Update xpra to 4.4.4 (#2177195) - -* Mon Mar 13 2023 Sérgio Basto - 4.4.3-6 -- Add python3-zeroconf to the requires, we need to see if we choose to be recommend only -- xpra-bug3693.patch already available in source code - -* Wed Feb 15 2023 Tom Callaway - 4.4.3-5 -- rebuild for libvpx - -* Sat Jan 21 2023 Fedora Release Engineering - 4.4.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jan 18 2023 Sérgio Basto - 4.4.3-3 -- Fix epel builds, seems upstream sort out py3cairo hack on el8 -- el8 now also have xorg-x11-drv-dummy - -* Sun Jan 08 2023 Sérgio Basto - 4.4.3-2 -- Add unitdir, we may have unitdir but by default disabled, preset just enable service by default which understandably was not approved. - to check presets run `systemctl status xpra | grep preset` -- Un-split xpra-udev and other improvements -- Add support to procps, avif, qrencode, libdrm and libwebp - -* Thu Dec 08 2022 Antonio Trande - 4.4.3-1 -- Release 4.4.3 -- Disable CUDA rebuilds - -* Sun Nov 13 2022 Antonio Trande - 4.4.2-1 -- Release 4.4.2 - -* Mon Oct 24 2022 Antonio Trande - 4.4.1-1 -- Release 4.4.1 - -* Sat Oct 01 2022 Antonio Trande - 4.4-1 -- Release 4.4 - -* Sat Jul 23 2022 Fedora Release Engineering - 4.3.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sun Jun 26 2022 Antonio Trande - 4.3.4-1 -- Release 4.3.4 - -* Fri Apr 29 2022 Antonio Trande - 4.3.3-1 -- Release 4.3.3 - -* Wed Feb 16 2022 Sérgio Basto - 4.3.2-1 -- Update xpra to 4.3.2 - -* Thu Jan 27 2022 Tom Callaway - 4.3.1-3 -- rebuild for libvpx - -* Sat Jan 22 2022 Fedora Release Engineering - 4.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jan 04 2022 Antonio Trande - 4.3.1-1 -- Release 4.3.1 - -* Fri Dec 17 2021 Antonio Trande - 4.3.0-1 -- Release 4.3 - -* Wed Oct 06 2021 Antonio Trande - 4.2.3-1 -- Release 4.2.3 - -* Thu Aug 12 2021 Antonio Trande - 4.2.2-1 -- Release 4.2.2 - -* Fri Jul 23 2021 Fedora Release Engineering - 4.2.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Sun Jul 11 2021 Antonio Trande - 4.2.1-1 -- Release 4.2.1 - -* Fri Jun 04 2021 Python Maint - 4.2-2 -- Rebuilt for Python 3.10 - -* Sat May 22 2021 Antonio Trande - 4.2-1 -- Release 4.2 - -* Sun May 16 2021 Antonio Trande - 4.1.3-2 -- Switch from pulseaudio to pipewire (rhbz#1960903) - -* Wed Apr 21 2021 Antonio Trande - 4.1.3-1 -- Release 4.1.3 - -* Tue Apr 06 2021 Antonio Trande - 4.1.2-1 -- Release 4.1.2 - -* Sun Mar 07 2021 Antonio Trande - 4.1.1-1 -- Release 4.1.1 - -* Wed Mar 03 2021 Antonio Trande - 4.1-2 -- Fix epel8 builds - -* Mon Mar 01 2021 Antonio Trande - 4.1-1 -- Release 4.1 - -* Thu Jan 28 2021 Fedora Release Engineering - 4.0.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Jan 14 2021 Antonio Trande - 4.0.6-2 -- Fix rhbz#1916026 - -* Thu Dec 31 2020 Antonio Trande - 4.0.6-1 -- Release 4.0.6 - -* Wed Nov 18 2020 Antonio Trande - 4.0.5-2 -- Fix BR packages for epel8 - -* Wed Nov 18 2020 Antonio Trande - 4.0.5-1 -- Release 4.0.5 - -* Mon Sep 28 2020 Antonio Trande - 4.0.4-1 -- Release 4.0.4 - -* Sat Aug 08 2020 Antonio Trande - 4.0.3-1 -- Release 4.0.3 - -* Wed Aug 05 2020 Antonio Trande - 4.0.2-4 -- Requires xmodmap xrandr without %%?_isa wrapper (rhbz#1864529) - -* Tue Jul 28 2020 Adam Jackson - 4.0.2-3 -- Requires xmodmap xrandr, not xorg-x11-server-utils - -* Thu Jul 16 2020 Antonio Trande - 4.0.2-2 -- Built on EPEL8 -- Drop (obsolete) python-websockify dependency -- Add MPLv2.0 LICENSE file for HTML5 version - -* Fri Jun 05 2020 Antonio Trande - 4.0.2-1 -- Release 4.0.2 - -* Tue May 26 2020 Miro Hrončok - 4.0.1-2 -- Rebuilt for Python 3.9 - -* Sun May 17 2020 Antonio Trande - 4.0.1-1 -- Release 4.0.1 - -* Fri May 15 2020 Antonio Trande - 4.0-2 -- Remove uglify-js - -* Sun May 10 2020 Antonio Trande - 4.0-1 -- Release 4.0 - -* Tue Apr 14 2020 Antonio Trande - 3.0.9-1 -- Release 3.0.9 - -* Thu Apr 02 2020 Antonio Trande - 3.0.8-1 -- Release 3.0.8 - -* Sat Mar 14 2020 Antonio Trande - 3.0.7-2 -- Add PAM support (rhbz#1812903) - -* Sat Mar 14 2020 Antonio Trande - 3.0.7-1 -- Release 3.0.7 - -* Wed Feb 12 2020 Antonio Trande - 3.0.6-2 -- Fix symlinks to js-jquery (rhbz#1801878) - -* Sat Feb 08 2020 Antonio Trande - 3.0.6-1 -- Release 3.0.6 - -* Fri Jan 31 2020 Fedora Release Engineering - 3.0.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Jan 10 2020 Antonio Trande - 3.0.5-1 -- Release 3.0.5 - -* Thu Dec 12 2019 Antonio Trande - 3.0.3-1 -- Release 3.0.3 - -* Tue Nov 05 2019 Antonio Trande - 3.0.2-1 -- Release 3.0.2 - -* Sat Nov 02 2019 Sérgio Basto - 3.0.1-3 -- Use %%{_sysusersdir} to fix rpmlint E: hardcoded-library-path - -* Fri Nov 01 2019 Antonio Trande - 3.0.1-2 -- Create /run/xpra (rhbz#1381005) - -* Mon Oct 28 2019 Antonio Trande - 3.0.1-1 -- Release 3.0.1 - -* Wed Oct 02 2019 Antonio Trande - 3.0-1 -- Release 3.0 - -* Tue Sep 24 2019 Sérgio Basto - 2.5.3-4 -- BR: the new python3-gobject-devel instead pygobject3-devel (#1749589) - -* Thu Sep 05 2019 Sérgio Basto - 2.5.3-3 -- Remove BR: pygtk2-devel and Requires: pygtkglext (#1738465) - -* Mon Aug 19 2019 Miro Hrončok - 2.5.3-2 -- Rebuilt for Python 3.8 - -* Thu Jul 25 2019 Antonio Trande - 2.5.3-1 -- Release to 2.5.3 -- Switch to Python3 definitively - -* Sat Jun 08 2019 Antonio Trande - 2.5.2-1 -- Release to 2.5.2 - -* Thu Apr 18 2019 Antonio Trande - 2.5.1-1 -- Release to 2.5.1 - -* Wed Mar 20 2019 Antonio Trande - 2.5.0-1 -- Release to 2.5.0 -- Switch to Python3 on Fedora 29+ - -* Tue Feb 05 2019 Björn Esser - 2.4.3-3 -- Rebuilt (libvpx) - -* Sun Feb 03 2019 Fedora Release Engineering - 2.4.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jan 17 2019 Antonio Trande - 2.4.3-1 -- Update to 2.4.3 - -* Mon Nov 26 2018 Antonio Trande - 2.4.2-2 -- Add inotify dependency (rhbz#1653096) - -* Fri Nov 23 2018 Antonio Trande - 2.4.2-1 -- Update to 2.4.2 - -* Wed Oct 31 2018 Antonio Trande - 2.4.1-1 -- Update to 2.4.1 -- Add Python Cairo library BR - -* Mon Oct 15 2018 Antonio Trande - 2.4-1 -- Update to 2.4 - -* Sun Sep 23 2018 Antonio Trande - 2.3.4-1 -- Update to 2.3.4 - -* Sun Aug 19 2018 Antonio Trande - 2.3.3-1 -- Update to 2.3.3 - -* Sat Jul 14 2018 Fedora Release Engineering - 2.3.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jul 05 2018 Antonio Trande - 2.3.2-3 -- SPEC file modified for EPEL7 - -* Mon Jul 02 2018 Miro Hrončok - 2.3.2-2 -- Rebuilt for Python 3.7 - -* Wed Jun 27 2018 Antonio Trande - 2.3.2-1 -- Update to 2.3.2 - -* Sun Jun 24 2018 Antonio Trande - 2.3.1-3 -- Define build conditions for debugging -- Switch back to Python2 (see xpra.org/trac/ticket/1885) (bz#1583319) - -* Sat Jun 23 2018 Antonio Trande - 2.3.1-2 -- Rebuilt for Python 3.7 -- Use --without-strict option - -* Wed May 30 2018 Antonio Trande - 2.3.1-1 -- Update to 2.3.1 - -* Thu May 10 2018 Antonio Trande - 2.3-1 -- Update to 2.3 -- Switch to Python3 - -* Tue Apr 03 2018 Antonio Trande - 2.2.6-1 -- Update to 2.2.6 - -* Wed Mar 07 2018 Antonio Trande - 2.2.5-1 -- Update to 2.2.5 - -* Thu Feb 22 2018 Antonio Trande - 2.2.4-2 -- Add gcc BR - -* Fri Feb 09 2018 Antonio Trande - 2.2.4-1 -- Update to 2.2.4 - -* Sun Jan 28 2018 Antonio Trande - 2.2.3-5 -- Rebuild for libvpx again - -* Fri Jan 26 2018 Tom Callaway - 2.2.3-4 -- rebuild for new libvpx - -* Thu Jan 25 2018 Antonio Trande - 2.2.3-3 -- Still require python-gobject on fedora < 27 - -* Thu Jan 18 2018 Igor Gnatenko - 2.2.3-2 -- Remove obsolete scriptlets - -* Thu Jan 18 2018 Antonio Trande - 2.2.3-1 -- Update to 2.2.3 - -* Wed Jan 17 2018 Antonio Trande - 2.2.2-2 -- Fix python2-gobject as Requires package - -* Wed Jan 17 2018 Antonio Trande - 2.2.2-1 -- Update to 2.2.2 - -* Thu Dec 21 2017 Antonio Trande - 2.2.1-2 -- Remove unused directory - -* Thu Dec 21 2017 Antonio Trande - 2.2.1-1 -- Update to 2.2.1 -- Appdata file moved into metainfo data directory - -* Wed Dec 13 2017 Antonio Trande - 2.2-2 -- Fix dependency - -* Tue Dec 12 2017 Antonio Trande - 2.2-1 -- Update to 2.2 -- Split off udev files - -* Thu Oct 26 2017 Antonio Trande - 2.1.3-1 -- Update to 2.1.3 - -* Mon Sep 18 2017 Antonio Trande - 2.1.2-1 -- Update to 2.1.2 - -* Fri Aug 18 2017 Antonio Trande - 2.1.1-2 -- Fix Requires - -* Fri Aug 18 2017 Antonio Trande - 2.1.1-1 -- Update to 2.1.1 -- Replace appdata file with horrible WindowsXP image - -* Thu Aug 03 2017 Fedora Release Engineering - 2.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Antonio Trande - 2.1-2 -- Fix Python2 shebang - -* Wed Jul 26 2017 Antonio Trande - 2.1-1 -- Update to 2.1 (bz#1475316) -- Drop old Werror patch -- Fix systemd files management - -* Tue Jul 04 2017 Antonio Trande - 2.0.3-1 -- Update to 2.0.3 - -* Tue May 09 2017 Antonio Trande - 2.0.2-1 -- Update to 2.0.2 -- webp option deprecated - -* Mon Feb 6 2017 Orion Poplawski - 1.0.2-1 -- Update to 1.0.2 -- Drop webp import patch applied upstream - -* Sat Dec 10 2016 Jonathan Underwood - 1.0-2 -- Disable webp by default, consistent with upstream - https://www.xpra.org/trac/ticket/1379 - -* Sat Dec 10 2016 Jonathan Underwood - 1.0-1 -- Update to version 1.0 -- No longer unbundle javascript libs - shipped versions in html4 client newer than packaged -- Enumerate all bundled js Provides properly -- Improve commentary of Werror patch -- Include all new conf files in pakcage -- Include systemd serice and add BR for systemd - -* Tue Nov 8 2016 Orion Poplawski - 0.17.6-1 -- Update to 0.17.6 -- Fix build on EPEL7 -- Use %%license - -* Sat Oct 1 2016 Jonathan Underwood - 0.17.5-2 -- Clean up some rpmlint errors -- Use %%_cups_serverbin if defined -- Use %%{_tmpfilesdir} - -* Sun Sep 11 2016 Jonathan Underwood - 0.17.5-1 -- Update to 0.17.5 - -* Sun Jul 31 2016 Jonathan Underwood - 0.17.4-1 -- Update to 0.17.4 - -* Fri Jul 22 2016 Tom Callaway - 0.16.3-5 -- rebuild for libvpx 1.6.0 - -* Tue Jul 19 2016 Fedora Release Engineering - 0.16.3-4 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Thu Apr 14 2016 Jonathan Underwood - 0.16.3-3 -- Fix deps for F22 - -* Thu Apr 14 2016 Jonathan Underwood - 0.16.3-2 -- Correctly enable use of shared sockets with the xpra group -- Require(pre) for shadow-utils -- Create xpra group during %%pre -- Create and ghost own %%{_localstatedir}/run/lightdm/ - -* Thu Mar 24 2016 Jonathan Underwood - 0.16.3-1 -- Update to 0.16.3 - -* Mon Feb 29 2016 Jonathan Underwood - 0.16.2-8 -- Properly enable opencl support on Fedora 23 -- Change PyOpenGL requires to python2-opengl on f24 and higher - -* Sun Feb 28 2016 Jonathan Underwood - 0.16.2-7 -- Change python-imaging dep to python[2]-pillow -- Change python-cups to python2-cups of F24 and higher - -* Sun Feb 28 2016 Jonathan Underwood - 0.16.2-6 -- Remove python-numeric Requires -- Change python-rencode dep to python2-rencode -- Change python-lz4 dep to python2-lz4 - -* Mon Feb 22 2016 Jonathan Underwood - 0.16.2-5 -- Fix cupslibdir macro to not spew errors during SRPM build - -* Fri Feb 19 2016 Jonathan Underwood - 0.16.2-4 -- Move icon files back into main package - -* Fri Feb 19 2016 Jonathan Underwood - 0.16.2-3 -- Drop xpra-0.16.2-move-to-var-run.patch - broken - -* Fri Feb 19 2016 Jonathan Underwood - 0.16.2-2 -- Add pyopencl Suggests for F23 -- No longer move the run script to /var/run - breaks other clients -- Use XDG_RUNTIME_DIR for socket and logs (BZ 1309872) - -* Fri Feb 19 2016 Jonathan Underwood - 0.16.2-1 -- Uodate to 0.16.2 (BZ 1301357) -- Replace gstreamer Requires with gstreamer1 Requires (BZ 1309811) -- Require python-gobject (BZ 1309811) -- No longer Require gstreamer-python (BZ 1309811) -- Require xorg-x11-xauth (BZ 1309804) -- Require dbus-x11 (BZ 1309827) - -* Fri Feb 05 2016 Fedora Release Engineering - 0.16.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 26 2016 Jonathan Underwood - 0.16.1-2 -- Split html5 support out into subpackage - -* Tue Jan 26 2016 Jonathan Underwood - 0.16.1-1 -- Update to 0.16.1 - -* Thu Jan 7 2016 Jonathan Underwood - 0.16.0-3 -- Re-add ~/.xpra to socket-dirs for backwards compatibility as second - in search order - -* Thu Jan 7 2016 Jonathan Underwood - 0.16.0-2 -- Add patch to Move sockets, log files, script files from ~/.xpra to - /var/run/user/$UID/xpra - -* Thu Jan 7 2016 Jonathan Underwood - 0.16.0-1 -- Update to 0.16.0 - -* Tue Dec 29 2015 Jonathan Underwood - 0.15.10-2 -- Rebuild for libwebp 0.5.0 - -* Sat Dec 19 2015 Jonathan Underwood - 0.15.10-1 -- Update to 0.15.10 - -* Wed Dec 2 2015 Jonathan Underwood - 0.15.9-1 -- Update to 0.15.9 - -* Tue Dec 1 2015 Tom Callaway - 0.15.8-3 -- rebuild for libvpx 1.5.0 - -* Mon Nov 30 2015 Jonathan Underwood - 0.15.8-2 -- Use same options for build and install -- Add csc_opencl support for Fedora 24 and later - -* Sat Nov 14 2015 Jonathan Underwood - 0.15.8-1 -- Update to 0.15.8 -- Fix typo in spec file - -* Wed Sep 16 2015 Jonathan Underwood - 0.15.7-1 -- Update to 0.15.7 -- Fix typo in spec changelog - -* Wed Sep 16 2015 Jonathan Underwood - 0.15.6-1 -- Update to 0.15.6 - -* Wed Sep 2 2015 Jonathan Underwood - 0.15.5-1 -- Update to 0.15.5 -- Drop patches related to color encoding - -* Fri Aug 21 2015 Jonathan G. Underwood - 0.15.4-4 -- Remove xpra-r10393.patch and add xpra-r10396.patch and xpra-r10399.patch - as second attempt to fix the color encoding issues - -* Fri Aug 21 2015 Jonathan G. Underwood - 0.15.4-3 -- No longer revert r9983, but include xpra-r10393.patch to fix the - color encoding - -* Wed Aug 5 2015 Jonathan G. Underwood - 0.15.4-2 -- Add patch to revert upstream commit r9983 which breaks color encodding - -* Tue Aug 4 2015 Jonathan G. Underwood - 0.15.4-1 -- Update to 0.15.4 -- Add missing release tag to previous rpm changelog entry - -* Tue Jul 14 2015 Jonathan G. Underwood - 0.15.3-1 -- Update to 0.15.3 -- Remove xpra-0.15.2-9768.patch -- Add BuildRequires for redhat-lsb-core to make lsb_release available - at build time (used to detect system type) -- Add --with-Xdummy and --with-Xdummy_wrapper to install options to - ensure Xdummy is used - -* Thu Jul 2 2015 Jonathan G. Underwood - 0.15.2-2 -- Add small fix from upsteam (rev 9768) - -* Thu Jul 2 2015 Jonathan G. Underwood - 0.15.2-1 -- Update to 0.15.2 -- Add Requires for python-lz4 and python-cups - -* Mon Jun 22 2015 Jonathan G. Underwood - 0.15.1-1 -- Update to 0.15.1 -- Add Requires shared-mime-info for (/usr/share/mime/packages ownership) -- Add /usr/share/mime/packages/application-x-xpraconfig.xml file - -* Fri Jun 19 2015 Fedora Release Engineering - 0.15.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Jun 4 2015 Jonathan G. Underwood - 0.15.0-2 -- Remove extraneous second definition of cupslibdir - -* Mon Jun 1 2015 Jonathan G. Underwood - 0.15.0-1 -- Update to 0.15.0 -- Add BuildRequires for cups-devel and Requires for cups-filesystem -- Replace mention of avcodec with avcodec2 -- Drop xpra-unbundle-rencode.patch, and no longer patch to use system - rencode -- Drop xpra-0.14-stop-using-void-driver.patch -- Drop xpra-0.14.22-fedora22-xorg.patch - -* Wed May 27 2015 Jonathan G. Underwood - 0.14.24-1 -- Update to 0.14.24 -- Remove Requires for xorg-x11-server-Xvfb -- Remove upstreamed appdata patch - -* Tue May 26 2015 Jonathan G. Underwood - 0.14.22-5 -- Add patch to correctly locate Xorg binary in Fedora 22 onwards (BZ 1224678) - -* Tue Apr 28 2015 Jonathan G. Underwood - 0.14.22-4 -- Patch appdata file to have more information and proper paragraph - ending period so validation works - -* Mon Apr 27 2015 Jonathan G. Underwood - 0.14.22-3 -- Remove Requires for xorg-x11-drv-void - -* Mon Apr 27 2015 Jonathan G. Underwood - 0.14.22-2 -- Validate and own /usr/share/appdata/xpra.appdata.xml -- Add BuildRequires libappstream-glib - -* Mon Apr 27 2015 Jonathan G. Underwood - 0.14.22-1 -- Update to 0.14.22 - -* Mon Apr 27 2015 Jonathan G. Underwood - 0.14.21-5 -- Add patch to remove reference to the xorg void driver in xorg.conf (BZ #1215527) - -* Mon Apr 6 2015 Tom Callaway - 0.14.21-4 -- rebuild for libvpx 1.4.0 - -* Tue Mar 24 2015 Jonathan G. Underwood - 0.14.21-3 -- Update license tag from GPLv2+ to GPLv2+ and BSD and LGPLv3+ and MIT - -* Mon Mar 23 2015 Jonathan G. Underwood - 0.14.21-2 -- Add conditionals for building with ffmpeg and x264 support, disabled - by default -- Remove Provides for bundled(js-web-socket-js) -- Use system js-zlib on Fedora >= 21 -- On Fedora < 21 add Provides for bundled(js-zlib) - -* Wed Mar 18 2015 Jonathan G. Underwood - 0.14.21-1 -- Update to 0.14.21 - -* Wed Mar 18 2015 Jonathan G. Underwood - 0.14.19-6 -- Unbundle js-query even on Fedora 20 - -* Wed Mar 18 2015 Jonathan G. Underwood - 0.14.19-5 -- Unbundle web-socket-js - -* Tue Mar 3 2015 Jonathan G. Underwood - 0.14.19-4 -- Add --with-Xdummy and --with-Xdummy_wrapper build options since Xorg - not installed at build time so autodetection fails - -* Tue Mar 3 2015 Jonathan G. Underwood - 0.14.19-3 -- Use js-jquery package only on F22 or later - not available on - earlier distros - -* Tue Mar 3 2015 Jonathan G. Underwood - 0.14.19-2 -- Update Summary to be more descriptive of package -- Use packaged js-jquery -- Add provides for bundled(js-jquery-ui) and bundled(js-web-socket-js) -- Build with vpx and webp support enabled -- Remove any installed SWF files -- Remove executable flag for all .js files -- Remove Requires for python-webm - -* Tue Mar 3 2015 Jonathan G. Underwood - 0.14.19-1 -- Update to upstream 0.14.19 -- Add BuildRequires for libxkbfile-devel -- No longer need to unbundle webp -- Rework and rename patch for unbundling of rencode - -* Fri Oct 18 2013 T.C. Hollingsworth - 0.10.6-1 -- new upstream release 0.10.6 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-October/000726.html - -* Tue Oct 08 2013 T.C. Hollingsworth - 0.10.4-2 -- reenable webp support -- fix webm unbundling to support importing all modules in the webm package -- require latest python-webm so it matches what's bundled upstream - -* Mon Oct 07 2013 T.C. Hollingsworth - 0.10.4-1 -- rebase to 0.10.4 -- don't ship webm stuff that doesn't work without ffmpeg anyway - -* Thu Aug 01 2013 T.C. Hollingsworth - 0.9.8-1 -- new upstream release 0.9.8 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-July/000615.html -- use HTTPS for URL and Source0 - -* Wed Jul 03 2013 T.C. Hollingsworth - 0.9.6-1 -- new upstream release 0.9.6 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-June/000552.html - -* Thu Jun 27 2013 T.C. Hollingsworth - 0.9.5-1 -- new upstream release 0.9.5 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-June/000549.html - -* Thu May 30 2013 T.C. Hollingsworth - 0.9.4-1 -- new upstream release 0.9.4 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-May/000539.html - -* Mon May 13 2013 T.C. Hollingsworth - 0.9.2-1 -- new upstream release 0.9.2 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-May/000525.html - -* Fri May 10 2013 T.C. Hollingsworth - 0.9.1-1 -- new upstream release 0.9.1 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-May/000522.html - -* Tue May 07 2013 T.C. Hollingsworth - 0.9.0-2 -- fix rencode __version__ importing - -* Thu May 02 2013 T.C. Hollingsworth - 0.9.0-1 -- new upstream release 0.9.0 - http://lists.devloop.org.uk/pipermail/shifter-users/2013-April/000479.html -- delete the bundled code in prep instead of inside the patches -- don't bother including parti; it's going away upstream soon -- merge python-wimpiggy into main xpra package; it won't be seperated upstream soon - -* Thu Apr 18 2013 T.C. Hollingsworth - 0.8.8-4 -- unbundle rencode and webm -- fix equality operator in Requires -- drop unnecessary multiple copies of NEWS -- don't remove buildroot - -* Thu Apr 11 2013 T.C. Hollingsworth - 0.8.8-3 -- drop unmet dependency on gstreamer-plugins-ugly -- fix permissions on shared objects -- add scriptlets necessary for icon/desktop file - -* Thu Mar 28 2013 T.C. Hollingsworth - 0.8.8-2 -- disable codecs prohibited in Fedora - -* Thu Mar 14 2013 T.C. Hollingsworth - 0.8.8-1 -- initial package +%autochangelog From a0f04c2100c46223b8838247d2f34c0ee0bea714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 31 May 2023 23:41:00 +0100 Subject: [PATCH 20/85] Rebuild for procps-ng-4.x.x From ca403d9f20405c84ef63424365a9daf0963cee07 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Thu, 15 Jun 2023 17:01:03 +0200 Subject: [PATCH 21/85] Rebuilt for Python 3.12 From 2bafbf36054f70b780279d756f269dc8fec95ce0 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Tue, 20 Jun 2023 19:54:43 +0200 Subject: [PATCH 22/85] Release 4.4.6 --- .gitignore | 1 + sources | 2 +- xpra.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5c06611..885ad48 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,4 @@ /xpra-4.4.3.tar.gz /xpra-4.4.4.tar.gz /xpra-4.4.5.tar.gz +/xpra-4.4.6.tar.gz diff --git a/sources b/sources index cd7ef36..3f1674e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xpra-4.4.5.tar.gz) = 518f52dddd59aa958aaa31bca9e87e1eb55755760307342c6d95693e886c6a4adba1906513f3dcb015f0b2a4b12890760169b8e5afccdbd2007ca75fc227b536 +SHA512 (xpra-4.4.6.tar.gz) = b6236ded715d661c0de79b5e2e0315ed3077b410792986d85e88a89ead119cfcf31d49a6aad719e488300e800e585fc060d51cbf1b6aeccb0b0d8c8168712c81 diff --git a/xpra.spec b/xpra.spec index d034413..2109c62 100644 --- a/xpra.spec +++ b/xpra.spec @@ -43,7 +43,7 @@ %endif Name: xpra -Version: 4.4.5 +Version: 4.4.6 Release: %autorelease Summary: Remote display server for applications and desktops License: GPLv2+ and BSD and LGPLv3+ and MIT From 9c90c1c44c309002a7b4d207f3947a1e1634f824 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 26 Jun 2023 12:28:03 +0200 Subject: [PATCH 23/85] 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 24/85] 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 25/85] 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 26/85] 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 27/85] 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 28/85] 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 29/85] 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 30/85] 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 31/85] 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 32/85] 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 33/85] 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 34/85] 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 35/85] 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 36/85] 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 37/85] 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 38/85] 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 39/85] 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 40/85] 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 41/85] 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 42/85] 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 43/85] 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 44/85] 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 45/85] 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 46/85] 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 47/85] 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 48/85] 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 49/85] 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 50/85] 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 51/85] 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 52/85] 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 53/85] 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 54/85] 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 55/85] 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 56/85] 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 57/85] 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 58/85] 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 59/85] 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 60/85] 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 61/85] 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 62/85] 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 63/85] 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 64/85] 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 65/85] 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 66/85] 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 67/85] 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 68/85] 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 69/85] 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 70/85] 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 71/85] 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 72/85] 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 73/85] 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 74/85] 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 75/85] 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 76/85] 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 77/85] 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 78/85] 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 79/85] 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 80/85] 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 81/85] 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 82/85] 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 83/85] 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 84/85] 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 85/85] 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