%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$ # 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 Name: xpra 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. 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 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 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 %if 0%{?fedora} BuildRequires: procps-ng-devel %endif 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: python3-cairo-devel BuildRequires: xorg-x11-server-Xorg BuildRequires: xorg-x11-drv-dummy BuildRequires: xorg-x11-xauth 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 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 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: 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 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. %prep %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} sed -i 's|-mfpmath=387|-mfloat-abi=hard|' setup.py %endif # Create a sysusers.d config file cat >xpra.sysusers.conf <