# For debugging only %bcond_with debug # %if 0%{?fedora} %bcond_without openh264 %else %bcond_with openh264 %endif # Remove private provides from .so files in the python3_sitearch directory %global __provides_exclude_from ^%{python3_sitearch}/.*\\.so$ # Note: cups-config not in buildroot during srpm build, so we use the # conditional execution to silence erros during srpm build. %if 0%{?_cups_serverbin:1} %global cupslibdir %_cups_serverbin %else %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.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 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: cups-devel BuildRequires: python3-cups BuildRequires: redhat-rpm-config 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 BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libqrencode) BuildRequires: libdrm-devel BuildRequires: pkgconfig(libwebp) BuildRequires: python3-gobject-devel 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 BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswscale) %if %{with openh264} BuildRequires: noopenh264-devel %endif Requires: python3-pillow Requires: python3-lz4 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: gstreamer1%{?_isa} Requires: gstreamer1-plugins-base%{?_isa} Requires: gstreamer1-plugins-good%{?_isa} %if 0%{?fedora} || 0%{?rhel} >= 9 Requires: pipewire%{?_isa} Requires: pipewire-utils%{?_isa} Requires: pipewire-pulseaudio%{?_isa} %else Requires: pulseaudio%{?_isa} Requires: pulseaudio-utils%{?_isa} %endif 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 these programs and reconnect from the same or another machine, without losing any state. It gives you remote access to individual applications. Xpra is "rootless" or "seamless": programs you run under it show up on your desktop as regular programs, managed by your regular window manager. 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 = 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 %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} sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %endif # Create a sysusers.d config file cat >xpra.sysusers.conf <