mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-20 04:23:16 -04:00
net-misc/lamco-rdp-server: new package
Signed-off-by: Greg Lamberson <greg@lamco.io>
This commit is contained in:
179
licenses/BUSL-1.1
Normal file
179
licenses/BUSL-1.1
Normal file
@@ -0,0 +1,179 @@
|
||||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: Lamco Development LLC
|
||||
|
||||
Licensed Work: lamco-rdp-server
|
||||
The Licensed Work is (c) 2025-2026 Lamco Development LLC.
|
||||
|
||||
The Licensed Work is the lamco-rdp-server desktop
|
||||
remote-desktop-sharing product. The Licensed Work does
|
||||
not include, and this License does not grant any rights
|
||||
in, the lamco-qemu-rdp hypervisor console or any other
|
||||
hypervisor, virtual-desktop, or console product, which
|
||||
are licensed separately.
|
||||
|
||||
Additional Use Grant: You may make production use of the Licensed Work only
|
||||
if both of the following are true:
|
||||
|
||||
(i) Your use does not include a Competitive Use (as
|
||||
defined below); and
|
||||
|
||||
(ii) at least one of the following classes applies to
|
||||
Your use:
|
||||
|
||||
1. You are a non-profit organization.
|
||||
|
||||
2. Your use is limited to a single server instance. A
|
||||
"server instance" means one running invocation of the
|
||||
Licensed Work serving remote-desktop sessions,
|
||||
counted once per operating-system environment in
|
||||
which it runs, whether that environment is a physical
|
||||
host, a virtual machine, or a container. Two or more
|
||||
concurrently running invocations, or invocations
|
||||
across two or more such environments, are two or more
|
||||
server instances.
|
||||
|
||||
3. Your use is for non-commercial educational or
|
||||
research purposes, including use by an educational
|
||||
institution to provide remote access to its students,
|
||||
faculty, or researchers.
|
||||
|
||||
4. Your use is of a Community Edition of the Licensed
|
||||
Work. A "Community Edition" is a binary distribution
|
||||
of the lamco-rdp-server desktop product that is
|
||||
published by the Licensor and designated as
|
||||
"Community Edition" in or with that distribution,
|
||||
including in its embedded package metadata, in the
|
||||
documentation accompanying it, or in a list of
|
||||
Community Edition distributions published by the
|
||||
Licensor. This class applies only to such
|
||||
desktop-product distributions and to no other product;
|
||||
no distribution of any hypervisor, console, or
|
||||
virtual-desktop product is a Community Edition under
|
||||
this License, regardless of how its documentation
|
||||
describes it.
|
||||
|
||||
If Your use does not satisfy both (i) and (ii) above, You
|
||||
must purchase a commercial license from the Licensor.
|
||||
Visit https://lamco.ai for pricing, or contact
|
||||
office@lamco.io.
|
||||
|
||||
A "Competitive Use" means using the Licensed Work to
|
||||
create, offer, host, or distribute a Competitive
|
||||
Product. A "Competitive Product" is any product or
|
||||
service made available to third parties that provides
|
||||
RDP server, remote desktop, virtual desktop
|
||||
infrastructure (VDI), hypervisor console access, or
|
||||
remote access functionality where such functionality is
|
||||
substantially derived from the Licensed Work.
|
||||
|
||||
The following are not Competitive Uses:
|
||||
|
||||
(a) Using the Licensed Work to provide managed
|
||||
services, cloud hosting, or IT infrastructure
|
||||
where the Licensed Work is a tool used in
|
||||
delivering those services rather than the basis
|
||||
of a competing product.
|
||||
(b) Using the Licensed Work for internal purposes
|
||||
within Your organization, including use by Your
|
||||
employees, contractors, and affiliates under
|
||||
common control.
|
||||
(c) Using the Licensed Work for non-commercial
|
||||
education or research.
|
||||
(d) Redistributing the Licensed Work in unmodified
|
||||
source form with this License intact.
|
||||
(e) Redistributing unmodified binary distributions of
|
||||
the Licensed Work published by the Licensor, with
|
||||
this License intact.
|
||||
|
||||
Change Date: 2029-06-01
|
||||
|
||||
Change License: Apache License 2.0
|
||||
|
||||
Standing policy: each released version carries its own
|
||||
Change Date approximately three years after that
|
||||
version's first publication, so that on any version's
|
||||
Change Date only that three-year-old version converts.
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the "License") is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
For information about alternative licensing arrangements for the Licensed Work,
|
||||
please visit https://lamco.ai or contact office@lamco.io.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License's text to license
|
||||
your works, and to refer to it using the trademark "Business Source License",
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License's text and the "Business
|
||||
Source License" name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where "compatible" means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text "None".
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
1
net-misc/lamco-rdp-server/Manifest
Normal file
1
net-misc/lamco-rdp-server/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST lamco-rdp-server-1.4.4.tar.xz 85348044 BLAKE2B 456d34b0ce8e1ed22826ddc28add7288c66cd1a29b243f2471b06ed2f6952d77f818eacd526de00dbd33e1c48020eade6e3299d476f8bd4401b174b21071bb3a SHA512 93f3083786850420367c229feca3267576add14db80cad06090abe323c87824cc6a9c4ec2476d518495727aa16f8b67134f1f8fe5781858eaef16113daa4b5fa
|
||||
12
net-misc/lamco-rdp-server/files/cros-libva-vp9-compat.patch
Normal file
12
net-misc/lamco-rdp-server/files/cros-libva-vp9-compat.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
--- a/vendor/cros-libva/src/buffer/vp9.rs
|
||||
+++ b/vendor/cros-libva/src/buffer/vp9.rs
|
||||
@@ -434,7 +434,8 @@
|
||||
skip_frame_flag,
|
||||
number_skip_frames,
|
||||
skip_frames_size,
|
||||
- va_reserved: Default::default(),
|
||||
+ va_reserved: Default::default(),
|
||||
+ ..Default::default()
|
||||
}))
|
||||
}
|
||||
|
||||
103
net-misc/lamco-rdp-server/lamco-rdp-server-1.4.4.ebuild
Normal file
103
net-misc/lamco-rdp-server/lamco-rdp-server-1.4.4.ebuild
Normal file
@@ -0,0 +1,103 @@
|
||||
# Copyright 2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
RUST_MIN_VER="1.89.0"
|
||||
|
||||
inherit cargo desktop systemd xdg
|
||||
|
||||
DESCRIPTION="Native Wayland RDP server for GNOME, KDE, Sway and Hyprland (H.264, VA-API)"
|
||||
HOMEPAGE="https://lamco.ai/ https://github.com/lamco-admin/lamco-rdp-server"
|
||||
SRC_URI="https://github.com/lamco-admin/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
|
||||
# Business Source License 1.1 (source-available; converts to Apache-2.0 on the
|
||||
# change date). The release tarball vendors every crate under vendor/ with a
|
||||
# .cargo/config.toml, so the build is fully offline and CRATES is unused.
|
||||
LICENSE="BUSL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
IUSE="+gui +pam +vaapi"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/libei
|
||||
media-video/pipewire
|
||||
sys-apps/dbus
|
||||
sys-apps/xdg-desktop-portal
|
||||
sys-fs/fuse:3
|
||||
x11-libs/libxkbcommon
|
||||
pam? ( sys-libs/pam )
|
||||
vaapi? ( media-libs/libva )
|
||||
gui? ( media-libs/vulkan-loader )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
llvm-core/clang
|
||||
dev-build/cmake
|
||||
dev-lang/nasm
|
||||
virtual/pkgconfig
|
||||
"
|
||||
# Soft runtime helpers: Cisco OpenH264 for software H.264, wl-clipboard for the
|
||||
# Linux->Windows clipboard path.
|
||||
PDEPEND="
|
||||
media-libs/openh264
|
||||
gui-apps/wl-clipboard
|
||||
"
|
||||
|
||||
# libva >= 2.22 added fields to VAEncPictureParameterBufferVP9 that the vendored
|
||||
# cros-libva 0.0.13 does not know about; add ..Default::default() so it compiles.
|
||||
PATCHES=( "${FILESDIR}/cros-libva-vp9-compat.patch" )
|
||||
|
||||
src_unpack() {
|
||||
# The tarball already carries vendor/ and .cargo/config.toml, so use a plain
|
||||
# unpack rather than cargo_src_unpack (which is for CRATES-fetched builds).
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
# The patch above edits a vendored crate; clear its recorded checksum so the
|
||||
# --frozen/--offline cargo build does not reject the modified file.
|
||||
sed -i 's/"files":{[^}]*}/"files":{}/' vendor/cros-libva/.cargo-checksum.json || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local features="h264,wayland,libei,wl-clipboard"
|
||||
use gui && features+=",gui"
|
||||
use pam && features+=",pam-auth"
|
||||
use vaapi && features+=",vaapi"
|
||||
|
||||
# rust-lld (Rust >= 1.93 default) can't link the bundled native C libraries
|
||||
# (aws-lc-sys, ring, opus); force the system cc linker. Thin LTO + 4 codegen
|
||||
# units keep peak memory near 4GB (fat LTO peaks 8-10GB over ~900 crates).
|
||||
CARGO_HOME="${T}/cargo" \
|
||||
RUSTFLAGS="-C linker=cc ${RUSTFLAGS}" \
|
||||
CARGO_PROFILE_RELEASE_LTO=thin \
|
||||
CARGO_PROFILE_RELEASE_CODEGEN_UNITS=4 \
|
||||
cargo build --release --frozen --offline \
|
||||
--no-default-features --features "${features}" || die "cargo build failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin target/release/lamco-rdp-server
|
||||
use gui && dobin target/release/lamco-rdp-server-gui
|
||||
|
||||
systemd_douserunit packaging/systemd/lamco-rdp-server.service
|
||||
|
||||
insinto /usr/share/dbus-1/services
|
||||
doins packaging/dbus/io.lamco.RdpServer.service
|
||||
insinto /etc/dbus-1/system.d
|
||||
doins packaging/dbus/io.lamco.RdpServer.System.conf
|
||||
insinto /usr/share/polkit-1/actions
|
||||
doins packaging/polkit/io.lamco.RdpServer.policy
|
||||
|
||||
domenu data/io.lamco.rdp-server.desktop
|
||||
insinto /usr/share/metainfo
|
||||
doins data/io.lamco.rdp-server.metainfo.xml
|
||||
|
||||
doicon -s scalable data/icons/io.lamco.rdp-server.svg
|
||||
local s
|
||||
for s in 32 48 64 128 256; do
|
||||
newicon -s "${s}" "data/icons/io.lamco.rdp-server-${s}.png" io.lamco.rdp-server.png
|
||||
done
|
||||
}
|
||||
25
net-misc/lamco-rdp-server/metadata.xml
Normal file
25
net-misc/lamco-rdp-server/metadata.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>greg@lamco.io</email>
|
||||
<name>Greg Lamberson</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
lamco-rdp-server is a native Wayland RDP server built on IronRDP. It uses
|
||||
xdg-desktop-portal for screen capture and input injection and works with
|
||||
any Wayland compositor that supports the RemoteDesktop and ScreenCast
|
||||
portals (GNOME, KDE, Sway, Hyprland). Features H.264 (AVC420/AVC444)
|
||||
encoding with optional VA-API acceleration, a configuration GUI,
|
||||
clipboard, and audio streaming. Distributed under BUSL-1.1.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="gui">Build the graphical configuration tool (pulls in wgpu/Vulkan)</flag>
|
||||
<flag name="pam">Enable PAM authentication</flag>
|
||||
<flag name="vaapi">Enable VA-API hardware-accelerated H.264 encoding</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<bugs-to>https://github.com/lamco-admin/lamco-rdp-server/issues</bugs-to>
|
||||
<remote-id type="github">lamco-admin/lamco-rdp-server</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user