projects/guix·blob python-team · refs

530 lines · 18.4 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Mathieu Lirzin <[email protected]>
3;;; Copyright © 2016 Efraim Flashner <[email protected]>
4;;; Copyright © 2017 Nikita <[email protected]>
5;;; Copyright © 2017 Mathieu Othacehe <[email protected]>
6;;; Copyright © 2017 Brendan Tildesley <[email protected]>
7;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <[email protected]>
8;;; Copyright © 2018 ison <[email protected]>
9;;; Copyright © 2018, 2019, 2021 Ludovic Courtès <[email protected]>
10;;; Copyright © 2018 Ricardo Wurmus <[email protected]>
11;;; Copyright © 2019 Meiyo Peng <[email protected]>
12;;; Copyright © 2021 Guillaume Le Vaillant <[email protected]>
13;;; Copyright © 2022 Maxim Cournoyer <[email protected]>
14;;; Copyright © 2025 John Khoo <[email protected]>
15;;;
16;;; This file is part of GNU Guix.
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31(define-module (gnu packages lxde)
32 #:use-module (gnu packages)
33 #:use-module (gnu packages admin)
34 #:use-module (gnu packages autotools)
35 #:use-module (gnu packages base)
36 #:use-module (gnu packages bash)
37 #:use-module (gnu packages curl)
38 #:use-module (gnu packages disk)
39 #:use-module (gnu packages docbook)
40 #:use-module (gnu packages file-systems)
41 #:use-module (gnu packages freedesktop)
42 #:use-module (gnu packages gettext)
43 #:use-module (gnu packages glib)
44 #:use-module (gnu packages gnome)
45 #:use-module (gnu packages gtk)
46 #:use-module (gnu packages image-viewers)
47 #:use-module (gnu packages libusb)
48 #:use-module (gnu packages linux)
49 #:use-module (gnu packages lsof)
50 #:use-module (gnu packages photo)
51 #:use-module (gnu packages pkg-config)
52 #:use-module (gnu packages polkit)
53 #:use-module (gnu packages text-editors)
54 #:use-module (gnu packages video)
55 #:use-module (gnu packages wget)
56 #:use-module (gnu packages window-management)
57 #:use-module (gnu packages xdisorg)
58 #:use-module (gnu packages xml)
59 #:use-module (gnu packages xorg)
60 #:use-module (guix build-system glib-or-gtk)
61 #:use-module (guix build-system gnu)
62 #:use-module (guix build-system trivial)
63 #:use-module (guix download)
64 #:use-module (guix gexp)
65 #:use-module (guix git-download)
66 #:use-module ((guix licenses) #:prefix license:)
67 #:use-module (guix packages)
68 #:use-module (guix utils))
69
70(define delete-generated-c-files
71 ;; Remove C files generated by Vala so we can build from source.
72 '(let* ((c->vala
73 (lambda (file)
74 (string-append (string-drop-right file 2)
75 ".vala")))
76 (generated-c-file?
77 (lambda (file stat)
78 (and (string-suffix? ".c" file)
79 (file-exists? (c->vala file))))))
80 (for-each delete-file
81 (find-files "." generated-c-file?))))
82
83(define-public libfm
84 (package
85 (name "libfm")
86 (version "1.4.0")
87 (source (origin
88 (method git-fetch)
89 (uri
90 (git-reference
91 (url "https://github.com/lxde/libfm")
92 (commit version)))
93 (file-name (git-file-name name version))
94 (sha256
95 (base32 "1gxg09lcacy7dh5pg1bm3rw11jffg7y59j0cb2cfsrgf0g5bjsvn"))
96 (modules '((guix build utils)))
97 (snippet delete-generated-c-files)))
98 (build-system gnu-build-system)
99 (arguments (list #:configure-flags #~(list "--with-gtk=3")))
100 (inputs (list glib gtk+))
101 (native-inputs (list intltool
102 which
103 automake
104 autoconf
105 gtk-doc
106 `(,glib "bin") ; for gtester
107 libtool
108 menu-cache
109 pkg-config
110 vala))
111 (synopsis "File management support (core library)")
112 (description "LibFM provides file management functions built on top of
113Glib/GIO giving a higher-level API.")
114 (home-page "https://www.lxde.org/")
115 (license license:gpl2+)))
116
117(define-public libfm-extra
118 (package (inherit libfm)
119 (name "libfm-extra")
120 (arguments '(#:configure-flags '("--with-extra-only")))
121 (inputs (list glib libexif))
122 (native-inputs
123 (list autoconf automake gtk-doc intltool libtool pkg-config which))
124 (synopsis "File management support (extra library)")
125 (description "This package contains a stand-alone library which extends the
126libFM file management library.")))
127
128(define-public lxappearance
129 (package
130 (name "lxappearance")
131 (version "0.6.4")
132 (source (origin
133 (method git-fetch)
134 (uri
135 (git-reference
136 (url "https://github.com/lxde/lxappearance")
137 (commit version)))
138 (file-name (git-file-name name version))
139 (sha256
140 (base32 "1cia6mkb3fqy3rgfprlmq0ajh15cnazdwdkv4zd19klrh4jzg4xp"))))
141 (build-system gnu-build-system)
142 (arguments (list #:configure-flags #~(list "--enable-gtk3")))
143 (inputs (list gtk+))
144 (native-inputs (list automake autoconf intltool pkg-config))
145 (synopsis "LXDE GTK+ theme switcher")
146 (description "LXAppearance is a desktop-independent GTK+ theme switcher
147able to change themes, icons, and fonts used by GTK+ applications.")
148 (home-page "https://www.lxde.org/")
149 (license license:gpl2+)))
150
151(define-public lxrandr
152 (package
153 (name "lxrandr")
154 (version "0.3.3")
155 (source (origin
156 (method git-fetch)
157 (uri
158 (git-reference
159 (url "https://github.com/lxde/lxrandr")
160 (commit version)))
161 (file-name (git-file-name name version))
162 (sha256
163 (base32 "1vh5r6bwafh9mq7syhdw1f2ahwvibq2wdc1ij84hbaa5bnyjfr8h"))))
164 (build-system gnu-build-system)
165 (arguments
166 `(#:configure-flags (list "--enable-gtk3")
167 #:phases
168 (modify-phases %standard-phases
169 (add-after 'unpack 'xrandr-absolutely
170 ;; lxrandr is useless without xrandr and gives an unhelpful error
171 ;; message if it's not in $PATH, so make it a hard dependency.
172 (lambda* (#:key input #:allow-other-keys)
173 (substitute* "src/lxrandr.c"
174 (("(\"|')xrandr\"" _ match)
175 (string-append match (which "xrandr") "\""))))))))
176 (inputs (list gtk+ xrandr))
177 (native-inputs (list automake autoconf intltool pkg-config))
178 (synopsis "LXDE monitor configuration tool")
179 (description "LXRandR is a very basic monitor configuration tool. It
180relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
181full frontend of it. LXRandR only gives you some easy and quick options which
182are intuitive. It's suitable for laptop users who frequently uses projectors
183or external monitor.")
184 (home-page "https://www.lxde.org/")
185 (license license:gpl2+)))
186
187(define-public lxtask
188 (package
189 (name "lxtask")
190 (version "0.1.12")
191 (source (origin
192 (method git-fetch)
193 (uri
194 (git-reference
195 (url "https://github.com/lxde/lxtask")
196 (commit version)))
197 (file-name (git-file-name name version))
198 (sha256
199 (base32 "11vcl0k2yhx59599fdk8gv5jh2gsgh7rmp2syybk3vpmby6p93h4"))))
200 (build-system gnu-build-system)
201 (arguments (list #:configure-flags #~(list "--enable-gtk3")))
202 (inputs (list gtk+))
203 (native-inputs (list automake autoconf intltool pkg-config))
204 (synopsis "LXDE task manager")
205 (description "LXTask is a lightweight task manager derived from Xfce task
206manager with all dependencies on Xfce removed. LXTask is based on the GTK+
207toolkit. It allows users to monitor and control of running processes.")
208 (home-page "https://www.lxde.org/")
209 (license license:gpl2+)))
210
211(define-public lxterminal
212 (package
213 (name "lxterminal")
214 (version "0.4.1")
215 (source (origin
216 (method git-fetch)
217 (uri
218 (git-reference
219 (url "https://github.com/lxde/lxterminal")
220 (commit version)))
221 (file-name (git-file-name name version))
222 (sha256
223 (base32 "159p34caid7ca679ly1lhvw4qclqh23ddsiphlw9yn0h9v8s2dd0"))))
224 (build-system gnu-build-system)
225 (arguments (list #:configure-flags #~(list "--enable-gtk3")))
226 (inputs (list gtk+ vte/gtk+-3))
227 (native-inputs (list automake autoconf intltool pkg-config))
228 (synopsis "LXDE terminal emulator")
229 (description "LXTerminal is a VTE-based terminal emulator. It supports
230multiple tabs and has only minimal dependencies thus being completely
231desktop-independent. In order to reduce memory usage and increase the
232performance, all instances of the terminal are sharing a single process.")
233 (home-page "https://www.lxde.org/")
234 (license license:gpl2+)))
235
236(define-public menu-cache
237 (package
238 (name "menu-cache")
239 (version "1.1.1")
240 (source (origin
241 (method git-fetch)
242 (uri
243 (git-reference
244 (url "https://github.com/lxde/menu-cache")
245 (commit version)))
246 (file-name (git-file-name name version))
247 (sha256
248 (base32 "0qhc72xinxmd68nfrph9jfwymkw9x71drgksz2r2k5nzv9p7cnp5"))))
249 (build-system gnu-build-system)
250 (inputs (list glib libfm-extra))
251 (native-inputs (list automake autoconf libtool gtk-doc pkg-config))
252 (arguments
253 `(#:configure-flags '("CFLAGS=-fcommon")))
254 (synopsis "LXDE implementation of the freedesktop menu's cache")
255 (description "Menu-cache is a library creating and utilizing caches to
256speed up the access to freedesktop.org defined application menus.")
257 (home-page "https://www.lxde.org/")
258 (license license:lgpl2.1+)))
259
260(define-public pcmanfm
261 (package
262 (name "pcmanfm")
263 (version "1.4.0")
264 (source (origin
265 (method git-fetch)
266 (uri
267 (git-reference
268 (url "https://github.com/lxde/pcmanfm")
269 (commit version)))
270 (file-name (git-file-name name version))
271 (sha256
272 (base32
273 "0dkl12a6x9w3ka4g2qx0ssxdv7v432xar6v2gddzbzsxg4546hp2"))))
274 (build-system gnu-build-system)
275 (arguments (list #:configure-flags #~(list "--with-gtk=3")))
276 (inputs (list gtk+ gvfs ;for trash and mount support
277 libfm libx11))
278 (native-inputs (list intltool automake autoconf libtool pkg-config))
279 (propagated-inputs
280 (list lxmenu-data)) ;for "Open With..." application list
281 (synopsis "LXDE file manager")
282 (description "PCMan is a lightweight GTK+ based file manager, compliant
283with freedesktop.org standard.")
284 (home-page "https://www.lxde.org/")
285 (license license:gpl2+)))
286
287(define-public lxmenu-data
288 (package
289 (name "lxmenu-data")
290 (version "0.1.6")
291 (source (origin
292 (method git-fetch)
293 (uri
294 (git-reference
295 (url "https://github.com/lxde/lxmenu-data")
296 (commit version)))
297 (file-name (git-file-name name version))
298 (sha256
299 (base32 "1abicrm66pn4vphlwx0rg2q3wvjmzijf0vgpml1vr3zkp7xm01z5"))))
300 (build-system gnu-build-system)
301 (native-inputs
302 (list glib automake autoconf pkg-config intltool))
303 (synopsis "Freedesktop.org desktop menus for LXDE")
304 (description
305 "Lxmenu-data provides files required to build freedesktop.org
306menu spec-compliant desktop menus for LXDE.")
307 (home-page "https://www.lxde.org/")
308 (license license:lgpl2.1+)))
309
310(define-public lxde-icon-theme
311 (package
312 (name "lxde-icon-theme")
313 (version "0.5.2")
314 (source (origin
315 (method git-fetch)
316 (uri
317 (git-reference
318 (url "https://github.com/lxde/lxde-icon-theme")
319 (commit version)))
320 (file-name (git-file-name name version))
321 (sha256
322 (base32 "0sv3pzvxs1gxa7dpqs7zls3wc7kj9x8w99i4h56mdsc6vz61y3mp"))))
323 (build-system gnu-build-system)
324 (native-inputs
325 (list automake autoconf pkg-config))
326 (synopsis "LXDE default icon theme based on nuoveXT2")
327 (description
328 "Lxde-icon-theme provides an default icon theme for LXDE.")
329 (home-page "https://www.lxde.org/")
330 (license license:lgpl3)))
331
332(define-public lxde-common
333 (package
334 (name "lxde-common")
335 (version "0.99.3")
336 (source (origin
337 (method git-fetch)
338 (uri
339 (git-reference
340 (url "https://github.com/lxde/lxde-common")
341 (commit version)))
342 (file-name (git-file-name name version))
343 (sha256
344 (base32 "0py5dazjmz7yh5p0zv7psgsx4291cg21h5kw6ww5bzvr34kpbnwc"))))
345 (build-system gnu-build-system)
346 (arguments
347 '(#:phases (modify-phases %standard-phases
348 (add-before 'configure 'set-lxsession
349 (lambda* (#:key inputs #:allow-other-keys)
350 ;; Set the right file name for 'lxsession'.
351 (let ((lxsession (assoc-ref inputs "lxsession")))
352 (substitute* "startlxde.in"
353 (("^exec .*/bin/lxsession")
354 (string-append "exec " lxsession
355 "/bin/lxsession")))
356 #t))))))
357 (native-inputs
358 (list automake autoconf pkg-config intltool lxmenu-data lxde-icon-theme))
359 (inputs
360 (list lxsession
361 ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
362 ))
363 (synopsis "Common files of the LXDE Desktop")
364 (description
365 "Lxde-common provides common files of the LXDE Desktop.")
366 (home-page "https://www.lxde.org/")
367 (license license:gpl2+)))
368
369(define-public lxinput
370 (package
371 (name "lxinput")
372 (version "0.3.6")
373 (source (origin
374 (method git-fetch)
375 (uri
376 (git-reference
377 (url "https://github.com/lxde/lxinput")
378 (commit version)))
379 (file-name (git-file-name name version))
380 (sha256
381 (base32 "13xqxwsb00h20yg514pjmdlvmfqv029nwdy70aaqn0r0jz670sm7"))))
382 (build-system gnu-build-system)
383 (arguments (list #:configure-flags #~(list "--enable-gtk3")))
384 (inputs
385 (list gtk+))
386 (native-inputs
387 (list automake autoconf pkg-config intltool))
388 (synopsis "Tool for mouse and keyboard configuration in LXDE")
389 (description
390 "Lxinput provides a small program to configure keyboard and mouse
391in LXDE.")
392 (home-page "https://www.lxde.org/")
393 (license license:gpl2+)))
394
395(define-public lxsession
396 (package
397 (name "lxsession")
398 (version "0.5.6")
399 (source
400 (origin
401 (method git-fetch)
402 (uri
403 (git-reference
404 (url "https://github.com/lxde/lxsession")
405 (commit version)))
406 (file-name (git-file-name name version))
407 (sha256
408 (base32 "0mgykzhd5n11mfcbpaqb841f4jwy1yhmd1xn49dxc2hci8bx26fx"))
409 ;; Fix https://github.com/lxde/lxsession/issues/42
410 (patches (search-patches "lxsession-potfiles-ignore.patch"))
411 (modules '((guix build utils)))
412 (snippet delete-generated-c-files)))
413 (build-system gnu-build-system)
414 (arguments
415 `(#:configure-flags (list "--enable-gtk3")))
416 (inputs
417 (list gtk+
418 polkit))
419 (native-inputs
420 (list pkg-config
421 intltool
422 docbook-xsl
423 vala
424 ;; For bootstrapping.
425 autoconf
426 automake))
427 (synopsis "Lightweight X11 session manager")
428 (description
429 "Lxsession provides an lightweight X11 session manager.")
430 (home-page "https://www.lxde.org/")
431 (license license:gpl2+)))
432
433(define-public lxpanel
434 (package
435 (name "lxpanel")
436 (version "0.11.1")
437 (source
438 (origin
439 (method git-fetch)
440 (uri
441 (git-reference
442 (url "https://github.com/lxde/lxpanel")
443 (commit version)))
444 (file-name (git-file-name name version))
445 (sha256
446 (base32 "1xqhxcwhx2qlgsri10gwldb0xz9ajsc3iqnn8d53bjb4yh0vk5wf"))))
447 (build-system gnu-build-system)
448 (arguments
449 (list
450 #:configure-flags #~(list "--enable-gtk3")
451 #:phases
452 #~(modify-phases %standard-phases
453 (add-after 'install 'wrap
454 (lambda* (#:key inputs outputs #:allow-other-keys)
455 (wrap-program (search-input-file outputs "bin/lxpanel")
456 `("XDG_DATA_DIRS" ":" prefix
457 (,(string-append #$(this-package-input "lxmenu-data")
458 "/share")))))))))
459 (inputs
460 (list alsa-lib
461 bash-minimal ;for wrap-program
462 cairo
463 curl
464 gtk+
465 keybinder
466 libindicator
467 libwnck
468 libx11
469 libxml2
470 libxmu
471 libxpm
472 wireless-tools))
473 (native-inputs
474 (list docbook-xml
475 libtool
476 automake
477 autoconf
478 gettext-minimal
479 intltool
480 pkg-config))
481 (propagated-inputs
482 (list libfm
483 lxmenu-data
484 menu-cache))
485 (synopsis "X11 Desktop panel for LXDE")
486 (description
487 "Lxpanel provides an X11 desktop panel for LXDE.")
488 (home-page "https://www.lxde.org/")
489 (license license:gpl2+)))
490
491(define-public lxde
492 (package
493 (name "lxde")
494 (version (package-version lxde-common))
495 (source #f)
496 (build-system trivial-build-system)
497 (arguments '(#:builder (begin (mkdir %output) #t)))
498 (propagated-inputs
499 ;; TODO:
500 ;; lxshortcut, lxsession-edit
501 ;; lxappearance-obconf
502 (list menu-cache
503 gpicview
504 leafpad
505 lxappearance
506 lxde-icon-theme
507 lxde-common
508 lxmenu-data
509 lxpanel
510 lxrandr
511 lxsession
512 libfm
513 libfm-extra
514 lxtask
515 lxterminal
516 pcmanfm
517 openbox
518 obconf))
519 (synopsis "Lightweight X11 Desktop Environment")
520 (description
521 "LXDE, which stands for Lightweight X11 Desktop Environment, is a
522desktop environment which is lightweight and fast. It is designed to be
523user friendly and slim, while keeping the resource usage low. LXDE uses
524less RAM and less CPU while being a feature rich desktop environment. Unlike
525other tightly integrated desktops LXDE strives to be modular, so each
526component can be used independently with few dependencies.")
527 (home-page "https://www.lxde.org/")
528 (license license:gpl2+))) ; And others.
529
530;;; lxde.scm ends here