projects/guix·blob ruby-team · refs

312 lines · 10.7 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Ludovic Courtès <[email protected]>
3;;; Copyright © 2017 Thomas Danckaert <[email protected]>
4;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <[email protected]>
5;;; Copyright © 2018, 2024, 2026 Efraim Flashner <[email protected]>
6;;; Copyright © 2019 Leo Famulari <[email protected]>
7;;; Copyright © 2019 Eric Bavier <[email protected]>
8;;; Copyright © 2023 Maxim Cournoyer <[email protected]>
9;;; Copyright © 2025 Janneke Nieuwenhuizen <[email protected]>
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26(define-module (gnu packages rdesktop)
27 #:use-module ((guix licenses) #:prefix license:)
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module (guix gexp)
31 #:use-module (guix git-download)
32 #:use-module (guix utils)
33 #:use-module (guix build-system cmake)
34 #:use-module (guix build-system gnu)
35 #:use-module (gnu packages)
36 #:use-module (gnu packages assembly)
37 #:use-module (gnu packages audio)
38 #:use-module (gnu packages autotools)
39 #:use-module (gnu packages bison)
40 #:use-module (gnu packages check)
41 #:use-module (gnu packages compression)
42 #:use-module (gnu packages cups)
43 #:use-module (gnu packages docbook)
44 #:use-module (gnu packages compiler-tools)
45 #:use-module (gnu packages freedesktop)
46 #:use-module (gnu packages gettext)
47 #:use-module (gnu packages glib)
48 #:use-module (gnu packages gstreamer)
49 #:use-module (gnu packages gtk)
50 #:use-module (gnu packages icu4c)
51 #:use-module (gnu packages image)
52 #:use-module (gnu packages kerberos)
53 #:use-module (gnu packages libusb)
54 #:use-module (gnu packages linux)
55 #:use-module (gnu packages mp3)
56 #:use-module (gnu packages nettle)
57 #:use-module (gnu packages opencl)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages python-xyz)
61 #:use-module (gnu packages pulseaudio)
62 #:use-module (gnu packages sdl)
63 #:use-module (gnu packages security-token)
64 #:use-module (gnu packages tls)
65 #:use-module (gnu packages version-control)
66 #:use-module (gnu packages video)
67 #:use-module (gnu packages xdisorg)
68 #:use-module (gnu packages xorg)
69 #:use-module (gnu packages xml))
70
71(define-public freerdp
72 (package
73 (name "freerdp")
74 (version "2.11.7")
75 (source
76 (origin
77 (method git-fetch)
78 (uri (git-reference
79 (url "https://github.com/FreeRDP/FreeRDP")
80 (commit version)))
81 (file-name (git-file-name name version))
82 (sha256
83 (base32 "0h7yxjnl4zgl07ilh7dzbig8r7phll0wid72hm92jav6s4q75v63"))))
84 (build-system cmake-build-system)
85 (native-inputs
86 (list docbook-xml
87 docbook-xsl
88 glib
89 libxml2
90 libxslt
91 pkg-config
92 xmlto))
93 (inputs
94 (list alsa-lib
95 cairo
96 cups
97 dbus
98 ffmpeg-4
99 gsm
100 lame
101 libjpeg-turbo
102 libusb
103 libx11
104 libxkbfile
105 libxcursor
106 libxdamage
107 libxext
108 libxi
109 libxv
110 libxrandr
111 libxrender
112 libxinerama
113 libxshmfence
114 opencl-headers
115 openh264
116 opensles
117 openssl
118 pcsc-lite ; for smartcard support
119 pulseaudio
120 zlib))
121 (propagated-inputs (list libxkbcommon openssl wayland))
122 (arguments
123 (list #:build-type "RELEASE"
124 #:configure-flags
125 #~(list
126 ;; Relax gcc-14's strictness.
127 (string-append "-DCMAKE_C_FLAGS="
128 " -Wno-error=incompatible-pointer-types"
129 " -Wno-error=int-conversion")
130 "-DWITH_JPEG=ON"
131 #$@(if (target-x86-64?)
132 #~("-DWITH_SSE2=ON")
133 #~())
134 "-DWITH_PULSE=ON"
135 "-DWITH_CUPS=ON"
136 "-DWITH_SERVER=ON" ;build servers
137 "-DWITH_SHADOW=ON" ;build shadow server
138 "-DWITH_PROXY=ON")))
139 (home-page "https://www.freerdp.com")
140 (synopsis "Remote Desktop Protocol implementation")
141 (description "FreeRDP implements Microsoft's Remote Desktop Protocol.
142It consists of the @code{xfreerdp} client, libraries for client and server
143functionality, and Windows Portable Runtime (WinPR), a portable implementation
144of parts of the Windows API.")
145 (license license:asl2.0)))
146
147(define-public freerdp-3
148 (package
149 (inherit freerdp)
150 (name "freerdp")
151 (version "3.25.0")
152 (source
153 (origin
154 (method git-fetch)
155 (uri (git-reference
156 (url "https://github.com/FreeRDP/FreeRDP")
157 (commit version)))
158 (file-name (git-file-name name version))
159 (sha256
160 (base32 "1plynfsr0hbp8f1mmshx2ab1c90vhamgirk0cdqwibm8y4kgc63y"))))
161 (inputs
162 (modify-inputs inputs
163 (replace "ffmpeg" ffmpeg)
164 (prepend fuse icu4c mit-krb5 sdl3 sdl3-gfx sdl3-ttf v4l-utils)))
165 (arguments
166 (list #:build-type "Release"
167 #:test-exclude "TestFreeRDPCodecInterleaved|TestClientRdpFile"
168 #:configure-flags
169 #~(list
170 "-DWITH_VERBOSE_WINPR_ASSERT=OFF"
171 "-DWITH_JPEG=ON"
172 #$@(if (target-x86-64?)
173 #~("-DWITH_SSE2=ON")
174 #~())
175 "-DWITH_PULSE=ON"
176 "-DWITH_CAIRO=ON"
177 "-DWITH_CUPS=ON"
178 "-DCHANNEL_RDPECAM_CLIENT=ON" ;webcam support
179 "-DBUILD_TESTING=ON"
180 "-DWITH_SERVER=ON" ;build servers
181 "-DWITH_SHADOW=ON" ;build shadow server
182 "-DWITH_PROXY=ON"
183 "-DWITH_OPENH264=ON") ; could also use ffmpeg instead
184 #:phases
185 #~(modify-phases %standard-phases
186 (add-after 'unpack 'patch-dlopen-paths
187 (lambda* (#:key inputs #:allow-other-keys)
188 (substitute* "winpr/libwinpr/smartcard/smartcard_pcsc.c"
189 (("\"libpcsclite[.]so[.]1\"")
190 (string-append "\""
191 (search-input-file inputs "/lib/libpcsclite.so.1")
192 "\""))))))))))
193
194(define-public xrdp
195 (package
196 (name "xrdp")
197 (version "0.10.6")
198 (source (origin
199 (method url-fetch)
200 (uri (string-append
201 "https://github.com/neutrinolabs/xrdp/releases/download/v"
202 version "/xrdp-" version ".tar.gz"))
203 (sha256
204 (base32
205 "0xw68i55yz7mp3psramasdgz0nv8ddq3cywqhgsjqr1vc1fivhnz"))))
206 (build-system gnu-build-system)
207 (inputs (list check
208 fuse
209 imlib2
210 lame
211 libjpeg-turbo
212 libx11
213 libxfixes
214 libxml2
215 libxpm
216 libxrandr
217 libxslt
218 libxt
219 linux-pam
220 openssl
221 pixman
222 python))
223 (native-inputs
224 (append
225 (list bison
226 cmocka
227 flex
228 gettext-minimal
229 intltool)
230 (maybe-nasm)
231 (list pkg-config
232 pixman)))
233 (arguments
234 (list #:configure-flags #~(list "--enable-strict-locations=yes"
235 "--enable-fuse=yes"
236 "--enable-mp3lame=yes"
237 "--enable-pixman=yes"
238 "--enable-imlib2=yes"
239 "--enable-pam-config=unix"
240 "--enable-ipv6=yes")
241 #:phases
242 #~(modify-phases %standard-phases
243 (add-after 'unpack 'set-cflags-file-offset-bit-64
244 (lambda _
245 (setenv "CFLAGS"
246 "-D_FILE_OFFSET_BITS=64"))))))
247 (home-page "https://www.xrdp.org")
248 (synopsis "Remote Desktop Protocol (RDP) server")
249 (description
250 "Xrdp provides a graphical login to remote machines using
251Microsoft Remote Desktop Protocol (RDP). Xrdp accepts connections from a
252variety of RDP clients:
253@itemize
254@item FreeRDP
255@item rdesktop
256@item KRDC
257@item NeutrinoRDP
258@item Windows MSTSC (Microsoft Terminal Services Client, aka mstsc.exe)
259@item Microsoft Remote Desktop (found on Microsoft Store, which is distinct from MSTSC).
260@end itemize")
261 (license license:asl2.0)))
262
263(define-public xorgxrdp
264 (package
265 (name "xorgxrdp")
266 (version "0.10.4")
267 (source (origin
268 (method git-fetch)
269 (uri (git-reference
270 (url "https://github.com/neutrinolabs/xorgxrdp")
271 (commit (string-append "v" version))))
272 (file-name (git-file-name name version))
273 (sha256
274 (base32
275 "0y243h7mk9jy5yrdgngjkcr6rzq4116ip7pvc6vwz7yfnxxd9v2f"))))
276 (build-system gnu-build-system)
277 (inputs (list check
278 imlib2
279 libx11
280 libxfixes
281 libxfont2
282 libxml2
283 libxpm
284 libxrandr
285 libxslt
286 libxt
287 pixman
288 xdpyinfo
289 xorg-server
290 xrdp))
291 (native-inputs
292 (append
293 (list autoconf
294 automake
295 intltool
296 libtool)
297 (maybe-nasm)
298 (list pkg-config
299 pixman)))
300 (arguments
301 (list #:configure-flags #~(list "--enable-strict-locations=yes"
302 (string-append "XRDP_CFLAGS=-I"
303 #$(this-package-input
304 "xrdp") "/common"))))
305 (home-page "https://github.com/neutrinolabs/xorgxrdp")
306 (synopsis "Xorg drivers for xrdp")
307 (description
308 "xorgxrdp is a collection of modules to be used with a pre-existing X.Org
309install to make the X server act like X11rdp. Unlike X11rdp, you don't have to
310recompile the whole X Window System. Instead, additional modules are installed
311to a location where the existing Xorg installation would pick them.")
312 (license license:x11)))