guix/gnu/packages/rdesktop.scm

273 lines
9.6 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 security-token)
#: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.11.2")
(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 "1c17skq16ic036829bndqsr5g0yrp0ya5lmn2w28x9gkz2qjgqkf"))))
(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
pcsc-lite ; for smartcard support
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.23.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/neutrinolabs/xrdp/releases/download/v"
version "/xrdp-" version ".tar.gz"))
(sha256
(base32
"1jpmwywzb6law2hrzm94qy2hgivs7izc2ci0w2h9yxn2j1mizdwg"))))
(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)))