%global debug_package %{nil} Name: rustdesk Version: 1.4.9 Release: 2%{?dist} Summary: Remote desktop software written in Rust License: AGPL-3.0-only URL: https://rustdesk.com/ Source0: https://github.com/rustdesk/rustdesk/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: %{name}-vendor-%{version}.tar.gz # The release tarball leaves the hbb_common submodule empty; pin the commit # the upstream recipe uses. vendor-prep unpacks it before cargo vendor too. %global hbb_commit 7e1c392c62d39c364127307cd408421dd5f8cfb0 Source2: https://github.com/rustdesk/hbb_common/archive/%{hbb_commit}.tar.gz#/hbb_common-%{hbb_commit}.tar.gz BuildRequires: cargo BuildRequires: rust BuildRequires: gcc BuildRequires: perl BuildRequires: systemd-rpm-macros BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: make BuildRequires: nasm BuildRequires: yasm BuildRequires: clang BuildRequires: pkgconf-pkg-config BuildRequires: python3 BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(appindicator3-0.1) BuildRequires: pkgconfig(atspi-2) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-base-1.0) BuildRequires: pkgconfig(gstreamer-video-1.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(epoxy) BuildRequires: pam-devel BuildRequires: libxdo-devel Requires: xdotool Requires: alsa-lib Requires: libva Requires: pam Requires: pulseaudio-libs Requires: gstreamer1 Requires: gstreamer1-plugins-base Requires: hicolor-icon-theme Requires: xdg-utils Requires: xdg-user-dirs ExclusiveArch: x86_64 %description RustDesk is a remote desktop application written in Rust. It works out of the box with no configuration required. This Fedora port builds the default Rust workspace without the Flutter client bundle and the vcpkg hwcodec third-party stack; see the spec file for the full upstream Flutter plus vcpkg flow. %prep %autosetup -a 1 rm -rf libs/hbb_common tar -xzf %{SOURCE2} mv hbb_common-%{hbb_commit} libs/hbb_common %build export CARGO_TARGET_DIR=target cargo build --frozen --release %install install -D -m 0755 target/release/rustdesk %{buildroot}%{_bindir}/rustdesk install -D -m 0644 res/rustdesk.service %{buildroot}%{_unitdir}/rustdesk.service install -D -m 0644 res/32x32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/rustdesk.png install -D -m 0644 res/128x128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/rustdesk.png install -D -m 0644 res/128x128@2x.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/rustdesk.png install -d %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/rustdesk.desktop <<'EOF' [Desktop Entry] Version=1.0 Name=RustDesk GenericName=Remote Desktop Comment=Remote Desktop Exec=rustdesk %u Icon=rustdesk Terminal=false Type=Application StartupNotify=true Categories=Network;RemoteAccess;GTK; EOF %files %license LICENCE %{_bindir}/rustdesk %{_unitdir}/rustdesk.service %{_datadir}/applications/rustdesk.desktop %{_datadir}/icons/hicolor/32x32/apps/rustdesk.png %{_datadir}/icons/hicolor/128x128/apps/rustdesk.png %{_datadir}/icons/hicolor/256x256/apps/rustdesk.png %changelog * Sat Oct 03 2026 kamm3r - 1.4.9-2 - Add Perl for vendored OpenSSL and macros for the service path. * Wed Sep 30 2026 kamm3r - 1.4.9-1 - Port the upstream Omarchy recipe to Fedora.