5a61bd4623
* gnu/packages/rdesktop.scm (freerdp): Enable server build. [phases] (configure-flags): Enable server build flags. [inputs]: Add server build dependencies and additional protocols cairo, dbus, gsm, lame, libxdamage, opencl, openh264, openssl. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
270 lines
9.5 KiB
Scheme
270 lines
9.5 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
|
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
|
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
|
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
|
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
|
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages rdesktop)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix gexp)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix build-system cmake)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (gnu packages assembly)
|
|
#:use-module (gnu packages audio)
|
|
#:use-module (gnu packages autotools)
|
|
#:use-module (gnu packages bison)
|
|
#:use-module (gnu packages check)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages cups)
|
|
#:use-module (gnu packages docbook)
|
|
#:use-module (gnu packages flex)
|
|
#:use-module (gnu packages freedesktop)
|
|
#:use-module (gnu packages gettext)
|
|
#:use-module (gnu packages glib)
|
|
#:use-module (gnu packages gstreamer)
|
|
#:use-module (gnu packages gtk)
|
|
#:use-module (gnu packages image)
|
|
#:use-module (gnu packages libusb)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages mp3)
|
|
#:use-module (gnu packages nettle)
|
|
#:use-module (gnu packages opencl)
|
|
#:use-module (gnu packages pkg-config)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages pulseaudio)
|
|
#:use-module (gnu packages tls)
|
|
#:use-module (gnu packages version-control)
|
|
#:use-module (gnu packages video)
|
|
#:use-module (gnu packages xdisorg)
|
|
#:use-module (gnu packages xorg)
|
|
#:use-module (gnu packages xml))
|
|
|
|
(define-public rdesktop
|
|
(package
|
|
(name "rdesktop")
|
|
(version "1.9.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append "https://github.com/rdesktop/rdesktop/"
|
|
"releases/download/v" version "/rdesktop-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1222f2srlq16bydhy44gph997iajg39sl774xxh9jdwi4cqjyg27"))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
`(#:configure-flags (list ;; XXX: optional dependencies missing
|
|
"--disable-credssp"
|
|
"--disable-smartcard")
|
|
#:tests? #f)) ; No 'check' target
|
|
(native-inputs
|
|
(list pkg-config))
|
|
(inputs
|
|
(list gnutls libx11 libxcursor nettle))
|
|
(home-page "https://www.rdesktop.org/")
|
|
(synopsis "Client for Windows Terminal Services")
|
|
(description
|
|
"rdesktop is a client for Microsoft's Windows Remote Desktop Services,
|
|
capable of natively speaking Remote Desktop Protocol (RDP). It allows users
|
|
to remotely control a user's Windows desktop.")
|
|
(license license:gpl3+)))
|
|
|
|
(define-public freerdp
|
|
(package
|
|
(name "freerdp")
|
|
(version "2.10.0")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/FreeRDP/FreeRDP")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "0j5waq4h7l5f0vrh7wmrv6r27p537qwbg7ab8j0n0ia5p4nvgjp2"))))
|
|
(build-system cmake-build-system)
|
|
(native-inputs
|
|
(list docbook-xml
|
|
docbook-xsl
|
|
glib
|
|
libxml2
|
|
libxslt
|
|
pkg-config
|
|
xmlto))
|
|
(inputs
|
|
(list alsa-lib
|
|
cairo
|
|
cups
|
|
dbus
|
|
ffmpeg-4
|
|
gsm
|
|
lame
|
|
libjpeg-turbo
|
|
libusb
|
|
libx11
|
|
libxkbfile
|
|
libxcursor
|
|
libxdamage
|
|
libxext
|
|
libxi
|
|
libxv
|
|
libxrandr
|
|
libxrender
|
|
libxinerama
|
|
libxshmfence
|
|
opencl-headers
|
|
openh264
|
|
opensles
|
|
openssl
|
|
pulseaudio
|
|
zlib))
|
|
(propagated-inputs (list libxkbcommon openssl wayland))
|
|
(arguments
|
|
(list #:build-type "RELEASE"
|
|
#:configure-flags
|
|
#~(list "-DWITH_JPEG=ON"
|
|
#$@(if (target-x86-64?)
|
|
#~("-DWITH_SSE2=ON")
|
|
#~())
|
|
"-DWITH_PULSE=ON"
|
|
"-DWITH_CUPS=ON"
|
|
"-DBUILD_TESTING=ON"
|
|
"-DWITH_SERVER=ON" ;build servers
|
|
"-DWITH_SHADOW=ON" ;build shadow server
|
|
"-DWITH_PROXY=ON")))
|
|
(home-page "https://www.freerdp.com")
|
|
(synopsis "Remote Desktop Protocol implementation")
|
|
(description "FreeRDP implements Microsoft's Remote Desktop Protocol.
|
|
It consists of the @code{xfreerdp} client, libraries for client and server
|
|
functionality, and Windows Portable Runtime (WinPR), a portable implementation
|
|
of parts of the Windows API.")
|
|
(license license:asl2.0)))
|
|
|
|
(define-public xrdp
|
|
(package
|
|
(name "xrdp")
|
|
(version "0.9.22.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"https://github.com/neutrinolabs/xrdp/releases/download/v"
|
|
version "/xrdp-" version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1jzknwy003fk5lqzrncbypirq3smpghxy2prg2m2ljjrx77j1lvd"))))
|
|
(build-system gnu-build-system)
|
|
(inputs (list check
|
|
fuse-2
|
|
imlib2
|
|
lame
|
|
libjpeg-turbo
|
|
libx11
|
|
libxfixes
|
|
libxml2
|
|
libxpm
|
|
libxrandr
|
|
libxslt
|
|
libxt
|
|
linux-pam
|
|
openssl
|
|
pixman
|
|
python
|
|
python-libxml2))
|
|
(native-inputs (list bison
|
|
flex
|
|
gettext-minimal
|
|
intltool
|
|
nasm
|
|
pkg-config
|
|
pixman))
|
|
(arguments
|
|
(list #:configure-flags #~(list "--enable-strict-locations=yes"
|
|
"--enable-fuse=yes"
|
|
"--enable-mp3lame=yes"
|
|
"--enable-pixman=yes"
|
|
"--enable-imlib2=yes"
|
|
"--enable-pam-config=unix"
|
|
"--enable-ipv6=yes")))
|
|
(home-page "https://www.xrdp.org")
|
|
(synopsis "Remote Desktop Protocol (RDP) server")
|
|
(description
|
|
"Xrdp provides a graphical login to remote machines using
|
|
Microsoft Remote Desktop Protocol (RDP). Xrdp accepts connections from a
|
|
variety of RDP clients:
|
|
@itemize
|
|
@item FreeRDP
|
|
@item rdesktop
|
|
@item KRDC
|
|
@item NeutrinoRDP
|
|
@item Windows MSTSC (Microsoft Terminal Services Client, aka mstsc.exe)
|
|
@item Microsoft Remote Desktop (found on Microsoft Store, which is distinct from MSTSC).
|
|
@end itemize")
|
|
(license license:asl2.0)))
|
|
|
|
(define-public xorgxrdp
|
|
(package
|
|
(name "xorgxrdp")
|
|
(version "0.9.19")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"https://github.com/neutrinolabs/xorgxrdp/releases/download/v"
|
|
version "/xorgxrdp-" version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0m8lvdnhfvwwqrr56difgy3mblplp23x6iy12kl4r8i87ic4rky1"))))
|
|
(build-system gnu-build-system)
|
|
(inputs (list check
|
|
imlib2
|
|
libx11
|
|
libxfixes
|
|
libxfont2
|
|
libxml2
|
|
libxpm
|
|
libxrandr
|
|
libxslt
|
|
libxt
|
|
pixman
|
|
xdpyinfo
|
|
xorg-server
|
|
xrdp))
|
|
(native-inputs (list nasm
|
|
intltool
|
|
pkg-config
|
|
pixman))
|
|
(arguments
|
|
(list #:configure-flags #~(list "--enable-strict-locations=yes"
|
|
(string-append "XRDP_CFLAGS=-I"
|
|
#$(this-package-input
|
|
"xrdp") "/common"))))
|
|
(home-page "https://github.com/neutrinolabs/xorgxrdp")
|
|
(synopsis "Xorg drivers for xrdp")
|
|
(description
|
|
"xorgxrdp is a collection of modules to be used with a pre-existing X.Org
|
|
install to make the X server act like X11rdp. Unlike X11rdp, you don't have to
|
|
recompile the whole X Window System. Instead, additional modules are installed
|
|
to a location where the existing Xorg installation would pick them.")
|
|
(license license:x11)))
|