### REF: https://rustdesk.com/docs/en/dev/build/linux/ Name: rustdesk Version: 1.4.0 Release: 1%{?dist} Summary: Remote desktop software for control and file transfer License: GPL-3.0-only URL: https://github.com/rustdesk/rustdesk Source0: %{url}/archive/refs/tags/%{version}.tar.gz BuildRequires: gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang BuildRequires: libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel BuildRequires: cmake alsa-lib-devel openssl-devel pkgconfig rust cargo BuildRequires: gstreamer1-devel gstreamer1-plugins-base-devel libvpx-devel BuildRequires: rust cargo gcc-c++ pkgconfig libvpx-devel Requires: hicolor-icon-theme ExclusiveArch: x86_64 %description RuskDesk is a remote desktop software that allows you to access and control computers remotely. %prep # Clone the repository with submodules git clone --recurse-submodules https://github.com/rustdesk/rustdesk.git rustdesk cd rustdesk git submodule update --init --recursive # Download libsciter runtime mkdir -p target/debug wget -O target/debug/libsciter-gtk.so https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so # Vendor dependencies locally cargo vendor vendor # Patch vendored webm-sys sed -i 's/build.flag_if_supported("-fno-exceptions");/\/\/ removed -fno-exceptions/' vendor/webm-sys/build.rs sed -i 's/build.flag_if_supported("-fno-rtti");/\/\/ removed -fno-rtti/' vendor/webm-sys/build.rs # Move to build root cd .. cp -a rustdesk/. ./ rm -rf rustdesk %build export CXXFLAGS="%{optflags} -fexceptions -frtti" export RUSTFLAGS="-C link-arg=-Wl,-rpath=%{_libdir}" # Set this to use system libvpx instead of compiling libwebm export WEBM_SYS_USE_PKG_CONFIG=1 # Create .cargo/config if needed mkdir -p .cargo cat > .cargo/config <