Compare commits

..

No commits in common. "rawhide" and "f37" have entirely different histories.

5 changed files with 143 additions and 179 deletions

20
.gitignore vendored
View file

@ -83,23 +83,3 @@
/xpra-4.4.4.tar.gz
/xpra-4.4.5.tar.gz
/xpra-4.4.6.tar.gz
/xpra-5.0.tar.gz
/xpra-5.0.1.tar.gz
/xpra-5.0.2.tar.gz
/xpra-5.0.3.tar.gz
/xpra-5.0.6.tar.gz
/xpra-5.0.10.tar.gz
/xpra-5.1.tar.gz
/xpra-5.1.1.tar.gz
/xpra-6.3.4.tar.gz
/xpra-6.3.5.tar.gz
/xpra-6.3.6.tar.gz
/xpra-6.4.tar.gz
/xpra-6.4.1.tar.gz
/xpra-6.4.2.tar.gz
/xpra-6.4.3.tar.gz
/xpra-6.4.4.tar.gz
/xpra-6.5.tar.gz
/xpra-6.5.1.tar.gz
/xpra-6.5.2.tar.gz
/xpra-6.5.3.tar.gz

View file

@ -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 <module>
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))

View file

@ -1 +1 @@
SHA512 (xpra-6.5.3.tar.gz) = 98eee6577d26cf15cdf8115352e73601438804a69d5081d7af908d9c4fc03e44e723eb74cc6f468c92c8e935cc5e897bcdeda316d3f756905b368e83ac051d91
SHA512 (xpra-4.4.6.tar.gz) = b6236ded715d661c0de79b5e2e0315ed3077b410792986d85e88a89ead119cfcf31d49a6aad719e488300e800e585fc060d51cbf1b6aeccb0b0d8c8168712c81

View file

@ -1,11 +0,0 @@
--- 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

248
xpra.spec
View file

@ -1,11 +1,34 @@
%bcond_with enc_x264
%bcond_with enc_x265
%bcond_with dec_avcodec2
%bcond_with csc_swscale
# For debugging only
%bcond_with debug
%if %{with debug}
%global _with_debug --with-debug
%endif
#
%if 0%{?fedora}
%bcond_with openh264
%else
%bcond_with openh264
%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
@ -19,25 +42,16 @@
%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: 6.5.3
Version: 4.4.6
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
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
# Suggested from update testing
# https://bodhi.fedoraproject.org/updates/FEDORA-2025-0882918c25#comment-4407961
Patch0: %{name}-fix_audio.patch
Patch1: ignore_assert_pandoc.patch
BuildRequires: python3-devel
BuildRequires: gtk3-devel
@ -50,19 +64,14 @@ BuildRequires: desktop-file-utils
BuildRequires: libvpx-devel
BuildRequires: libXdamage-devel
BuildRequires: libXres-devel
BuildRequires: lua-devel
BuildRequires: cups-devel
BuildRequires: python3-cups
BuildRequires: cups-devel, cups
BuildRequires: redhat-rpm-config
BuildRequires: python3-rpm-macros
BuildRequires: gcc-c++
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: systemd-rpm-macros
%if 0%{?fedora}
BuildRequires: procps-ng-devel
%endif
@ -70,30 +79,45 @@ 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-server-Xvfb
BuildRequires: xorg-x11-xauth
BuildRequires: xxhash-devel
BuildRequires: xkbcomp
BuildRequires: setxkbmap
%if %{with debug}
BuildRequires: libasan
%endif
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libswscale)
%if %{with openh264}
BuildRequires: noopenh264-devel
%if %{with enc_x264}
BuildRequires: x264-devel
%endif
%if %{with dec_avcodec2} || %{with csc_swscale}
BuildRequires: ffmpeg-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
@ -113,7 +137,22 @@ 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.
%{?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
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
@ -126,68 +165,36 @@ 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
%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}
%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}
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.
Use Decode As Xpra to force it on a different port.
%prep
%autosetup -n %{name}-%{version} -N
%if 0%{?fedora} || 0%{?rhel} >= 9
%patch -P 0 -p1 -b .backup
%endif
rm -rf *.egg-info
%autosetup -p1 -n %{name}-%{version}
# cc1: error: unrecognized compiler option -mfpmath=387
%ifarch %{arm}
sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py
%endif
# Create a sysusers.d config file
cat >xpra.sysusers.conf <<EOF
g xpra -
EOF
%generate_buildrequires
%pyproject_buildrequires
%build
export CFLAGS="%{optflags} -I%{_includedir}/security %(pkgconf --cflags pygobject-3.0)"
%pyproject_wheel %{build_opts}
%set_build_flags
%{__python3} setup.py build --executable="%{__python3} -s" \
--with-verbose \
--with-vpx \
%{?_with_enc_x264} \
%{?_with_enc_x265} \
%{?_with_dec_avcodec2} \
%{?_with_csc_swscale} \
%{?_with_debug} \
--with-Xdummy \
--with-Xdummy_wrapper \
--without-strict \
--without-enc_ffmpeg
%install
%pyproject_install
%pyproject_save_files xpra
%py3_install
# Install config files in the right directory
mv %{buildroot}%{_prefix}/etc %{buildroot}/
mkdir -p %{buildroot}%{_unitdir}
mv %{buildroot}/lib/systemd/system/xpra.* %{buildroot}%{_unitdir}/
# move icon to proper directory
#move icon to proper directory
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps
@ -200,25 +207,25 @@ install -pm 644 fs/share/icons/xpra-mdns.png %{buildroot}%{_datadir}/icons/hicol
rm -f %{buildroot}%{_datadir}/icons/xpra-shadow.png
install -pm 644 fs/share/icons/xpra-shadow.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
# replace old file with horrible WindowsXP old image
#replace old file with horrible WindowsXP old image
rm -rf %{buildroot}%{_datadir}/appdata
mkdir -p %{buildroot}%{_metainfodir}
install -pm 644 %{SOURCE1} %{buildroot}%{_metainfodir}/
# Install nvenc.keys file
#Install nvenc.keys file
mkdir -p %{buildroot}%{_sysconfdir}/xpra
install -pm 644 fs/etc/xpra/nvenc.keys %{buildroot}%{_sysconfdir}/xpra
# remove doc stuff from /usr/share
#remove doc stuff from /usr/share
rm %{buildroot}%{_datadir}/xpra/COPYING
# fix 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
done
# fix permissions on shared objects
#fix permissions on shared objects
find %{buildroot}%{python3_sitearch}/xpra -name '*.so' \
-exec chmod 0755 {} \;
@ -243,48 +250,17 @@ rm -rf %{buildroot}%{_docdir}/xpra/Build
install -pm 644 README.md %{buildroot}%{_docdir}/xpra/
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
# 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
%pre
getent group xpra >/dev/null || groupadd -r xpra
%files -f %{pyproject_files}
%files
%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
@ -298,20 +274,19 @@ 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 %attr(1700,-,xpra) %{_rundir}/xpra/proxy
%{_libexecdir}/xpra/
%{_bindir}/xpra
%{_bindir}/xpra_launcher
%{_bindir}/run_scaled
%{_bindir}/xpra_Xdummy
%{_sysusersdir}/*.conf
%{python3_sitearch}/xpra/
%{python3_sitearch}/*.egg-info
%{_datadir}/applications/xpra*.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.*
@ -320,32 +295,11 @@ 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/
%{_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
%files -n %{name}-plugin-lua
%{wireshark_plugindir}/xpra_dissector.lua
%changelog
%autochangelog