net-misc/rustdesk - 9999 (chloverlay)

Search

Install

Install this version:

emerge -a =net-misc/rustdesk-9999

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =net-misc/rustdesk-9999

Or alternatively:

emerge --autounmask-write -a =net-misc/rustdesk-9999

Package Information

Description:
An open-source remote desktop, and alternative to TeamViewer
Homepage:
https://rustdesk.com/
License:
AGPL-3 Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 CC0-1.0 CDLA-Permissive-2.0 GPL-3+ IJG ISC MIT MIT-0 MPL-2.0 Unicode-DFS-2016 Unlicense WTFPL-2 ZLIB

Ebuild Details

Version EAPI Keywords Slot
9999 8 0
View Raw Ebuild
# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# Autogenerated by pycargoebuild 0.13.2

EAPI=8

CRATES="
"
LLVM_COMPAT=( 18 19 20 21 22 )
# have no idea why CI use rust-bin-9999, rustix broken on it
# https://github.com/bytecodealliance/rustix/issues/1620
# set RUST_MAX_VER to a max version now
RUST_MAX_VER="1.95.0"
RUST_MIN_VER="1.81.0"
RUST_NEEDS_LLVM=1
inherit cargo desktop llvm-r1 systemd xdg git-r3

DESCRIPTION="An open-source remote desktop, and alternative to TeamViewer"
HOMEPAGE="https://rustdesk.com/"
EGIT_REPO_URI="https://github.com/rustdesk/rustdesk.git"

# grep -i vcpkg .github/workflows/flutter-build.yml
#_VCPKG_TAG="2025.08.27"
#SRC_URI+=" https://github.com/gentoo-zh-drafts/rustdesk-vcpkg/releases/download/${PV}/${P}-vcpkg-${_VCPKG_TAG}-lite.tar.gz"

# FIX:
# 1. missing rust-webm-*/src/sys/libwebm
# 2. gcc15 build: https://github.com/microcai/gentoo-zh/issues/7234
#_LIBWEBM_COMMIT="3b630045052e1e4d563207ab9e3be8d137c26067"
#SRC_URI+=" https://github.com/webmproject/libwebm/archive/${_LIBWEBM_COMMIT}.tar.gz -> libwebm-${_LIBWEBM_COMMIT}.tar.gz"

# FIX: missing hwcodec-*/externals
# curl https://api.github.com/repos/rustdesk-org/hwcodec/contents/externals | jq -r '.sha'
#_HWCODEC_EXTERNALS_COMMIT="8903740a1f47884906a6e347ad3d8d56304d9771"
#SRC_URI+=" https://github.com/rustdesk-org/externals/archive/${_HWCODEC_EXTERNALS_COMMIT}.tar.gz -> hwcodec-externals-${_HWCODEC_EXTERNALS_COMMIT}.tar.gz"

# FIX: missing libs/hbb_common
# curl https://api.github.com/repos/rustdesk/rustdesk/contents/libs/hbb_common | jq -r '.sha'
#3_HBB_COMMON_COMMIT="7e1c392c62d39c364127307cd408421dd5f8cfb0"
#SRC_URI+=" https://github.com/rustdesk/hbb_common/archive/${_HBB_COMMON_COMMIT}.tar.gz -> hbb_common-${_HBB_COMMON_COMMIT}.tar.gz"

# FIX: missing kcp-sys-*/kcp
# curl https://api.github.com/repos/rustdesk-org/kcp-sys/contents/kcp | jq -r '.sha'
#_KCP_COMMIT="7f9805887b0909c52c825925f123e7a84da37167"
#SRC_URI+=" https://github.com/skywind3000/kcp/archive/${_KCP_COMMIT}.tar.gz -> kcp-${_KCP_COMMIT}.tar.gz"

LICENSE="AGPL-3"
# Dependent crate licenses
LICENSE+="
	Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0
	CC0-1.0 CDLA-Permissive-2.0 GPL-3+ IJG ISC MIT MIT-0 MPL-2.0
	Unicode-DFS-2016 Unlicense WTFPL-2 ZLIB
"
SLOT="0"
KEYWORDS=""

IUSE="wayland +hwaccel"

RDEPEND="
	media-libs/alsa-lib
	x11-libs/gtk+:3
	x11-libs/libxcb
	x11-libs/libXfixes
	media-libs/libpulse
	x11-misc/xdotool
	media-libs/libva[X]
	wayland? ( media-video/pipewire[gstreamer] )
	hwaccel? ( x11-libs/libvdpau )
"
BDEPEND="
	dev-lang/nasm
	dev-lang/yasm
	media-libs/alsa-lib
	media-libs/libpulse
	dev-build/cmake
	dev-build/ninja
	media-libs/gstreamer
	media-libs/gst-plugins-base
	$(llvm_gen_dep '
		llvm-core/clang:${LLVM_SLOT}
		llvm-core/llvm:${LLVM_SLOT}
	')
"

QA_PRESTRIPPED="
	/usr/share/${PN}/${PN}
	/usr/share/${PN}/libsciter-gtk.so
"

#PATCHES=(
#	"${FILESDIR}"/${PN}-1.4.8-fix-llvm22-bindgen.patch
#	"${FILESDIR}"/${PN}-1.4.8-disable-check-x11.patch
#)

src_unpack() {
	git-r3_src_unpack
	cargo_live_src_unpack
	default
}

pkg_setup() {
	llvm-r1_pkg_setup
	rust_pkg_setup
}

src_prepare() {
	default
	cargo_gen_config
#	cd "${S}"/.. || die
#	eapply "${FILESDIR}"/rust-sciter.patch
#
#	rm -rf "${S}"/libs/hbb_common || die
#	ln -s "${WORKDIR}/hbb_common-${_HBB_COMMON_COMMIT}" "${S}"/libs/hbb_common || die
#
#	local _RUSTWEBM_COMMIT=`echo "${GIT_CRATES[webm]}" | awk -F';' '{print $2}'`
#	rm -rf "${WORKDIR}/rust-webm-${_RUSTWEBM_COMMIT}"/src/sys/libwebm || die
#	ln -s "${WORKDIR}/libwebm-${_LIBWEBM_COMMIT}" "${WORKDIR}/rust-webm-${_RUSTWEBM_COMMIT}"/src/sys/libwebm || die
#
#	local _HWCODEC_COMMIT=`echo "${GIT_CRATES[hwcodec]}" | awk -F';' '{print $2}'`
#	rm -rf "${WORKDIR}/hwcodec-${_HWCODEC_COMMIT}"/externals || die
#	ln -s "${WORKDIR}/externals-${_HWCODEC_EXTERNALS_COMMIT}" "${WORKDIR}/hwcodec-${_HWCODEC_COMMIT}"/externals || die
#
#	local _KCPSYS_COMMIT=`echo "${GIT_CRATES[kcp-sys]}" | awk -F';' '{print $2}'`
#	rm -rf "${WORKDIR}/kcp-sys-${_KCPSYS_COMMIT}"/kcp || die
#	ln -s "${WORKDIR}/kcp-${_KCP_COMMIT}" "${WORKDIR}/kcp-sys-${_KCPSYS_COMMIT}"/kcp || die
}

src_configure() {
	if use hwaccel ;then
		local myfeatures=(hwcodec)
	fi

	cargo_src_configure
}

src_compile() {
	cargo_src_compile
}

src_install() {
	local rustdesk_dir="/usr/share/${PN}"

	exeinto "${rustdesk_dir}"
	insinto "${rustdesk_dir}"
	doexe $(cargo_target_dir)/rustdesk
	newins "${DISTDIR}/${PN}-libsciter-gtk.so" libsciter-gtk.so
	rm src/ui/*.rs || die
	newbin "${FILESDIR}/rustdesk.sh" rustdesk
	insinto "${rustdesk_dir}/src"
	doins -r src/ui

	newicon -s 32 res/32x32.png rustdesk.png
	newicon -s 128 res/128x128.png rustdesk.png
	newicon -s 256 res/128x128@2x.png rustdesk.png

	domenu "${FILESDIR}"/rustdesk{,-link}.desktop
	systemd_dounit "${FILESDIR}"/rustdesk.service

	einstalldocs
}

USE Flags

Manage flags for this package: euse -i <flag> -p net-misc/rustdesk | euse -E <flag> -p net-misc/rustdesk | euse -D <flag> -p net-misc/rustdesk

Global/Standard Flags

hwaccel
❓ Default: Enabled (+)

Inherited Eclasses

xdg

Dependencies

RDEPEND

	media-libs/alsa-lib
	x11-libs/gtk+:3
	x11-libs/libxcb
	x11-libs/libXfixes
	media-libs/libpulse
	x11-misc/xdotool
	media-libs/libva[X]
	wayland? ( media-video/pipewire[gstreamer] )
	hwaccel? ( x11-libs/libvdpau )

BDEPEND

	dev-lang/nasm
	dev-lang/yasm
	media-libs/alsa-lib
	media-libs/libpulse
	dev-build/cmake
	dev-build/ninja
	media-libs/gstreamer
	media-libs/gst-plugins-base
	$(llvm_gen_dep '
		llvm-core/clang:${LLVM_SLOT}
		llvm-core/llvm:${LLVM_SLOT}
	')