rustdesk/rustdesk.spec
2024-09-06 11:25:55 +00:00

102 lines
3.2 KiB
RPMSpec

%define debug %nil
%define debug_package %nil
%define rustver 1.79.0
%define vcpkg_ver 2024.07.12
Name: rustdesk
Version: 1.3.0
Release: 2
Summary: Virtual / remote desktop infrastructure
URL: https://rustdesk.com
Source0: https://github.com/rustdesk/rustdesk/archive/%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/microsoft/vcpkg/archive/%{vcpkg_ver}/vcpkg-%{vcpkg_ver}.tar.gz
License: GPLv3
Group: Office
%if %{mdvver} > 201610
BuildRequires: cargo
BuildRequires: rust
%else
BuildRequires: curl
%endif
BuildRequires: yasm
BuildRequires: nasm
BuildRequires: cmake >= 3.21
BuildRequires: zip
BuildRequires: git-core
BuildRequires: ninja
BuildRequires: python3
BuildRequires: %{_lib}pam-devel
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(libyuv)
BuildRequires: pkgconfig(opus) >= 1.3.1
BuildRequires: %{_lib}opus-static-devel
BuildRequires: %{_lib}vpx-static-devel
BuildRequires: %{_lib}aom-static-devel
BuildRequires: %{_lib}yuv-static-devel
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-app-1.0)
BuildRequires: pkgconfig(gdk-3.0)
BuildRequires: pkgconfig(aom) >= 3
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(libxdo)
Requires: sciter-sdk-bin
%description
Yet another remote desktop software, written in Rust.
Works out of the box, no configuration required. You
have full control of your data, with no concerns about
security. You can use our rendezvous/relay server, set
up your own, or write your own rendezvous/relay server.
%prep
%setup -q
%if %{mdvver} <= 201610
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |\
sh -s -- -y --profile default --default-toolchain %{rustver}
%endif
# setup vcpkg
tar -xf %{SOURCE1}
mv vcpkg-%{vcpkg_ver} vcpkg
# hardcode ui files
sed -i 's|"file://{}/src/ui/{}"|"file:/%{_datadir}/%{name}/ui/{}"|g' src/ui.rs
%build
%if %{mdvver} <= 201610
source "$HOME/.cargo/env"
%endif
export VCPKG_ROOT=./vcpkg
export RUSTFLAGS="-L%{_libdir}"
cargo build --release
%install
install -d %{buildroot}%{_datadir}/%{name}/files
install -Dm0755 target/release/%{name} %{buildroot}%{_bindir}/%{name}
install -Dm0644 res/rustdesk.service %{buildroot}%{_unitdir}/%{name}.service
install -Dm0644 res/rustdesk.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
install -Dm0644 res/rustdesk-link.desktop %{buildroot}%{_datadir}/apprlications/%{name}-link.desktop
install -Dm0644 res/32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{name}.png
install -Dm0644 res/64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/%{name}.png
install -Dm0644 res/128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/%{name}.png
install -Dm0644 res/128x128@2x.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/%{name}.png
install -Dm0644 res/scalable.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
cp -a src/ui %{buildroot}%{_datadir}/%{name}
%files
%doc README* LICENCE docs
%{_bindir}/%{name}
%{_unitdir}/%{name}.service
%{_datadir}/applications/%{name}.desktop
%{_datadir}/apprlications/%{name}-link.desktop
%{_iconsdir}/hicolor/*/apps/%{name}.png
%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
%{_datadir}/%{name}/