### 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 rust cargo BuildRequires: gstreamer1-devel gstreamer1-plugins-base-devel libvpx-devel BuildRequires: rust cargo gcc-c++ libvpx-devel pam-devel BuildRequires: opus-devel libyuv-devel pkgconfig ExclusiveArch: x86_64 %description RuskDesk is a remote desktop software that allows you to access and control computers remotely. %prep # Clone the RustDesk repo with submodules git clone --recurse-submodules https://github.com/rustdesk/rustdesk.git rustdesk cd rustdesk git submodule update --init --recursive # Download libsciter 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 # Create .cargo config to use vendored sources mkdir -p .cargo cat > .cargo/config.toml <' "$MKVPARSER" fi # --- PATCH magnum-opus --- MAGNUM_RS=vendor/magnum-opus/build.rs MAGNUM_TOML=vendor/magnum-opus/Cargo.toml # Fix build.rs to use pkg-config if [ -f "$MAGNUM_RS" ]; then sed -i 's/^\s*panic!.*VCPKG_ROOT.*/pkg_config::probe_library("opus").unwrap();/' "$MAGNUM_RS" grep -q 'extern crate pkg_config;' "$MAGNUM_RS" || \ sed -i '1i extern crate pkg_config;' "$MAGNUM_RS" fi # Fix Cargo.toml for magnum-opus if [ -f "$MAGNUM_TOML" ]; then # 🔥 Remove any invalid or previously added optional/pkg-config junk sed -i '/^\[build-dependencies\.pkg-config\]/,+1d' "$MAGNUM_TOML" sed -i '/pkg-config\s*=\s*".*"/d' "$MAGNUM_TOML" sed -i '/optional\s*=\s*true/d' "$MAGNUM_TOML" # ✅ Add clean [build-dependencies] section if grep -q '^\[build-dependencies\]' "$MAGNUM_TOML"; then sed -i '/^\[build-dependencies\]/a pkg-config = "0.3"' "$MAGNUM_TOML" else echo -e '\n[build-dependencies]\npkg-config = "0.3"' >> "$MAGNUM_TOML" fi # Dummy feature for compatibility if grep -q 'linux-pkg-config' ../Cargo.toml; then grep -q '^\[features\]' "$MAGNUM_TOML" || echo -e '\n[features]' >> "$MAGNUM_TOML" grep -q '^linux-pkg-config' "$MAGNUM_TOML" || echo 'linux-pkg-config = []' >> "$MAGNUM_TOML" fi fi # Step 2: Patch Cargo.toml for path override cat >> Cargo.toml <