projects/guix·blob python-team · refs

501 lines · 17.4 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Ryan Prior <[email protected]>
3;;; Copyright © 2023 Wamm K. D. <[email protected]>
4;;; Copyright © 2023, 2024 altadil <[email protected]>
5;;; Copyright © 2024 jgart <[email protected]>
6;;; Copyright © 2026 Sughosha <[email protected]>
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages pantheon)
24 #:use-module (gnu packages calendar)
25 #:use-module (gnu packages cmake)
26 #:use-module (gnu packages freedesktop)
27 #:use-module (gnu packages gettext)
28 #:use-module (gnu packages glib)
29 #:use-module (gnu packages gnome)
30 #:use-module (gnu packages gnupg)
31 #:use-module (gnu packages gstreamer)
32 #:use-module (gnu packages gtk)
33 #:use-module (gnu packages image)
34 #:use-module (gnu packages libcanberra)
35 #:use-module (gnu packages package-management)
36 #:use-module (gnu packages pcre)
37 #:use-module (gnu packages photo)
38 #:use-module (gnu packages pkg-config)
39 #:use-module (gnu packages python)
40 #:use-module (gnu packages sqlite)
41 #:use-module (gnu packages xml)
42 #:use-module (gnu packages web)
43 #:use-module (gnu packages xorg)
44 #:use-module (gnu packages)
45 #:use-module (guix build-system meson)
46 #:use-module (guix gexp)
47 #:use-module (guix git-download)
48 #:use-module ((guix licenses) #:prefix license:)
49 #:use-module (guix packages)
50 #:use-module (guix utils))
51
52(define-public granite
53 (package
54 (name "granite")
55 (version "7.8.1")
56 (source (origin
57 (method git-fetch)
58 (uri (git-reference
59 (url "https://github.com/elementary/granite")
60 (commit version)))
61 (file-name (git-file-name name version))
62 (sha256
63 (base32
64 "01s37b6ssfhawbzxzq5yyjcxq9m2qf16q0h4g4vfhj1c6f4l8khy"))))
65 (build-system meson-build-system)
66 (arguments
67 (list
68 #:configure-flags
69 #~(list "-Ddemo=false") ;requires libshumate
70 #:phases
71 #~(modify-phases %standard-phases
72 (add-after 'unpack 'disable-icon-cache
73 (lambda _
74 (substitute* "meson.build"
75 (("gtk_update_icon_cache: true")
76 "gtk_update_icon_cache: false")))))))
77 (inputs (list sassc))
78 (propagated-inputs (list glib libgee gtk)) ;required in .pc file
79 (native-inputs (list gettext-minimal
80 `(,glib "bin")
81 gobject-introspection
82 pkg-config
83 python
84 vala))
85 (home-page "https://github.com/elementary/granite")
86 (synopsis "Library that extends GTK with common widgets and utilities")
87 (description "Granite is a companion library for GTK+ and GLib. Among other
88things, it provides complex widgets and convenience functions designed for use
89in apps built for the Pantheon desktop.")
90 (license license:lgpl3+)))
91
92;; This is required for pantheon apps that have not been ported to GTK4 yet.
93(define-public granite-6
94 (package
95 (inherit granite)
96 (version "6.2.0")
97 (source (origin
98 (method git-fetch)
99 (uri (git-reference
100 (url "https://github.com/elementary/granite")
101 (commit version)))
102 (file-name (git-file-name "granite" version))
103 (sha256
104 (base32
105 "0ilslmg63hh2x7h5rvs3mhzw1y9ixhhkqnn1j1lzwm12v2iidkaq"))))
106 (arguments
107 (substitute-keyword-arguments arguments
108 ((#:configure-flags _ '())
109 #~'())
110 ((#:phases phases)
111 #~(modify-phases #$phases
112 (replace 'disable-icon-cache
113 (lambda _
114 (setenv "DESTDIR" "/")))))))
115 (propagated-inputs (list glib libgee gtk+))))
116
117(define-public pantheon-calculator
118 (package
119 (name "pantheon-calculator")
120 (version "8.0.1")
121 (source
122 (origin
123 (method git-fetch)
124 (uri (git-reference
125 (url "https://github.com/elementary/calculator")
126 (commit version)))
127 (file-name (git-file-name name version))
128 (sha256
129 (base32
130 "157a2xryp9013m5grr3brfrs6hqz2ndg0ys8h0184am5zvg9w4sw"))))
131 (build-system meson-build-system)
132 (arguments
133 (list
134 #:glib-or-gtk? #t
135 #:phases #~(modify-phases %standard-phases
136 (add-after 'unpack 'disable-schema-cache-generation
137 (lambda _
138 (setenv "DESTDIR" "/"))))))
139 (inputs
140 (list granite
141 glib
142 gtk
143 libgee
144 libhandy))
145 (native-inputs
146 (list cmake-minimal
147 `(,glib "bin") ; for glib-compile-schemas
148 gettext-minimal
149 pkg-config
150 vala))
151 (home-page "https://github.com/elementary/calculator")
152 (synopsis "Desktop calculator")
153 (description "Calculator is an application for performing simple
154arithmetic. It is the default calculator application in the Pantheon
155desktop.")
156 (license license:gpl3)))
157
158(define-public pantheon-calendar
159 (package
160 (name "pantheon-calendar")
161 (version "8.0.1")
162 (source
163 (origin
164 (method git-fetch)
165 (uri (git-reference
166 (url "https://github.com/elementary/calendar")
167 (commit version)))
168 (file-name (git-file-name name version))
169 (sha256
170 (base32
171 "0344wr5ka2cfkr46vrclh1w9nhrrznn0jbb5g95dfww2czrp6iwj"))))
172 (build-system meson-build-system)
173 (arguments
174 (list
175 ;; Tests involve checking environment variable against particular TZ.
176 #:tests? #f
177 #:glib-or-gtk? #t
178 #:phases
179 #~(modify-phases %standard-phases
180 (add-after 'unpack 'disable-icon-cache
181 (lambda _
182 (substitute* "meson.build"
183 (("gtk_update_icon_cache: true")
184 "gtk_update_icon_cache: false"))))
185 (add-after 'install 'install-symlinks
186 (lambda _
187 (let* ((bin (string-append #$output
188 "/bin/io.elementary.calendar"))
189 (link (string-append #$output "/bin/pantheon-calendar")))
190 (symlink bin link)))))))
191 (inputs
192 (list clutter
193 evolution-data-server
194 folks
195 geoclue
196 geocode-glib
197 granite-6
198 glib
199 gtk
200 libchamplain
201 libgee
202 libhandy
203 libical
204 libportal))
205 (native-inputs
206 (list cmake-minimal
207 `(,glib "bin") ; for glib-compile-schemas
208 gettext-minimal
209 pkg-config
210 vala))
211 (home-page "https://github.com/elementary/calendar")
212 (synopsis "Desktop calendar")
213 (description "This package provides a desktop calendar app designed for
214elementary OS.")
215 (license license:gpl3+)))
216
217(define-public pantheon-icons
218 (package
219 (name "pantheon-icons")
220 (version "8.2.0")
221 (source
222 (origin
223 (method git-fetch)
224 (uri (git-reference
225 (url "https://github.com/elementary/icons")
226 (commit version)))
227 (file-name (git-file-name name version))
228 (sha256
229 (base32 "04x8r1kknm7iswlg71da24aqqgrs494mivdx3jx1wz1jz5wzxnwy"))))
230 (build-system meson-build-system)
231 (arguments
232 (list #:configure-flags #~(list "-Dvolume_icons=false"
233 "-Dpalettes=false")))
234 (native-inputs (list gettext-minimal ;for msgfmt
235 librsvg
236 xcursorgen))
237 (propagated-inputs (list adwaita-icon-theme))
238 (synopsis "Named, vector icons for the pantheon desktop")
239 (description
240 "pantheon-icons is an original set of vector icons designed
241for elementary OS and its desktop environment: Pantheon.")
242 (home-page "https://elementary.io/open-source")
243 (license license:gpl3)))
244
245(define-public pantheon-photos
246 (package
247 (name "pantheon-photos")
248 (version "8.0.1")
249 (source
250 (origin
251 (method git-fetch)
252 (uri (git-reference
253 (url "https://github.com/elementary/photos")
254 (commit version)))
255 (file-name (git-file-name name version))
256 (sha256
257 (base32 "15ppxzbj882i2hpm88nn5azijhmgjc9js07i3wdpick2ciw83apr"))))
258 (build-system meson-build-system)
259 (arguments
260 (list
261 #:glib-or-gtk? #t
262 #:phases
263 #~(modify-phases %standard-phases
264 (add-after 'unpack 'disable-icon-cache
265 (lambda _
266 (substitute* "meson.build"
267 (("gtk_update_icon_cache: true")
268 "gtk_update_icon_cache: false"))))
269 (add-after 'install 'install-symlinks
270 (lambda _
271 (let* ((bin (string-append #$output
272 "/bin/io.elementary.photos"))
273 (link (string-append #$output "/bin/pantheon-photos")))
274 (symlink bin link)))))))
275 (native-inputs
276 (list desktop-file-utils
277 `(,glib "bin")
278 intltool
279 pkg-config
280 python
281 vala))
282 (inputs
283 (list geocode-glib
284 gexiv2-0.14
285 granite-6
286 gst-plugins-bad
287 gst-plugins-base
288 gst-plugins-good
289 gst-plugins-ugly
290 gstreamer
291 gtk+
292 libexif
293 libgee
294 libgphoto2
295 libgudev
296 libhandy
297 libportal
298 libraw
299 libwebp
300 sqlite))
301 (synopsis "Photo viewer and organizer designed for the Pantheon desktop")
302 (description
303 "Photos is an image viewer and organizer. It originally comes
304from elementary OS and is designed for the Pantheon desktop environment (but can
305also be used on others.")
306 (home-page "https://elementary.io/open-source")
307 (license license:lgpl2.1+)))
308
309(define-public pantheon-screenshot
310 (package
311 (name "pantheon-screenshot")
312 (version "8.0.4")
313 (source
314 (origin
315 (method git-fetch)
316 (uri (git-reference
317 (url "https://github.com/elementary/screenshot")
318 (commit version)))
319 (file-name (git-file-name name version))
320 (sha256
321 (base32 "0ib6g47pykpscfazd12gssxv6in0v4jlcn8lfp0i1g0i4ap36ml5"))))
322 (build-system meson-build-system)
323 (arguments
324 (list
325 #:glib-or-gtk? #t
326 #:phases
327 #~(modify-phases %standard-phases
328 (add-after 'unpack 'disable-schema-cache-generation
329 (lambda _ (setenv "DESTDIR" "/")))
330 (add-after 'install 'install-symlinks
331 (lambda _
332 (let* ((bin (string-append #$output
333 "/bin/io.elementary.screenshot"))
334 (link (string-append #$output
335 "/bin/pantheon-screenshot")))
336 (symlink bin link)))))))
337 (native-inputs (list desktop-file-utils
338 gettext-minimal ;for msgfmt
339 `(,glib "bin")
340 pkg-config
341 vala))
342 (inputs (list granite
343 gtk
344 libcanberra
345 libgee
346 libportal
347 libhandy))
348 (propagated-inputs (list glib))
349 (synopsis "Screenshot tool")
350 (description "pantheon-screenshot is a screenshot tool designed for
351the Pantheon desktop environment.")
352 (home-page "https://elementary.io/open-source")
353 (license license:lgpl3)))
354
355(define-public pantheon-stylesheet
356 (package
357 (name "pantheon-stylesheet")
358 (version "8.2.2")
359 (source
360 (origin
361 (method git-fetch)
362 (uri (git-reference
363 (url "https://github.com/elementary/stylesheet")
364 (commit version)))
365 (file-name (git-file-name name version))
366 (sha256
367 (base32 "065zzv1b39i0j775kc60cywiwizw2rckg2kildfhs4mp81yswdv6"))))
368 (build-system meson-build-system)
369 (native-inputs (list gettext-minimal)) ;for msgfmt
370 (inputs (list sassc))
371 (synopsis "GTK stylesheet for the Pantheon desktop")
372 (description "pantheon-stylesheet is the GTK Stylesheet for the Pantheon
373desktop environment (originally from elementary OS).")
374 (home-page "https://elementary.io/open-source")
375 (license license:gpl3+)))
376
377(define-public pantheon-terminal
378 (package
379 (name "pantheon-terminal")
380 (version "8.0.0")
381 (source (origin
382 (method git-fetch)
383 (uri (git-reference
384 (url "https://github.com/elementary/terminal")
385 (commit version)))
386 (file-name (git-file-name name version))
387 (sha256
388 (base32
389 "0kldk74rmifgbf2wq9qbzv414dl4mgf94mzr5a4i2cags4rxlci3"))))
390 (build-system meson-build-system)
391 (arguments
392 (list
393 #:tests? #f ; Tests involve launching the terminal.
394 #:glib-or-gtk? #t
395 #:phases
396 #~(modify-phases %standard-phases
397 (add-after 'install 'install-symlinks
398 (lambda* (#:key outputs #:allow-other-keys)
399 (let* ((bin (string-append #$output
400 "/bin/io.elementary.terminal"))
401 (link (string-append #$output "/bin/pantheon-terminal")))
402 (symlink bin link)))))))
403 (native-inputs (list appstream
404 desktop-file-utils ;required for tests
405 gettext-minimal ;for msgfmt
406 `(,glib "bin") ;for glib-compile-resources
407 gobject-introspection
408 pkg-config
409 vala
410 xvfb-run))
411 (inputs (list granite
412 gtk
413 libadwaita
414 libgee
415 libhandy
416 pcre2
417 vte))
418 (synopsis "Terminal emulator from elementaryOS")
419 (description "pantheon-terminal is a lightweight, beautiful and simple
420terminal. It comes with sane defaults, browser-class tabs, sudo paste
421protection, smart copy/paste, and little to no configuration. It is the default
422terminal in the Pantheon desktop.")
423 (home-page "https://elementary.io/open-source")
424 (license license:lgpl3)))
425
426(define-public sideload
427 (package
428 (name "sideload")
429 (version "6.3.1")
430 (source
431 (origin
432 (method git-fetch)
433 (uri (git-reference
434 (url "https://github.com/elementary/sideload")
435 (commit version)))
436 (file-name (git-file-name name version))
437 (sha256
438 (base32
439 "0hn9gnzr25i0k6b81ia6c73lqmr43grfdwn18sfp8xhjiqlqqmlq"))))
440 (build-system meson-build-system)
441 (arguments
442 (list
443 #:glib-or-gtk? #t
444 #:phases
445 #~(modify-phases %standard-phases
446 (add-after 'install 'install-symlinks
447 (lambda _
448 (let ((bin (string-append #$output
449 "/bin/io.elementary.sideload"))
450 (link (string-append #$output "/bin/sideload")))
451 (symlink bin link)))))))
452 (inputs
453 (list flatpak
454 glib
455 granite
456 gtk+
457 hicolor-icon-theme
458 libgee
459 libhandy
460 libostree
461 libxml2))
462 (propagated-inputs
463 ;; Sideload needs these in the environment to fetch data securely from
464 ;; Flatpak remotes.
465 (list gnupg gpgme))
466 (native-inputs
467 (list desktop-file-utils ;for update-desktop-database
468 gettext-minimal
469 `(,glib "bin")
470 gobject-introspection
471 pkg-config
472 vala))
473 (home-page "https://github.com/elementary/sideload")
474 (synopsis "Graphical application to side-load Flatpaks")
475 (description "Sideload handles flatpakref files, like those you might find
476on Flathub or another third-party website providing a Flatpak app for
477download.")
478 (license license:gpl3+)))
479
480(define-public pantheon-wallpapers
481 (package
482 (name "pantheon-wallpapers")
483 (version "8.0.0")
484 (source (origin
485 (method git-fetch)
486 (uri (git-reference
487 (url "https://github.com/elementary/wallpapers/")
488 (commit version)))
489 (file-name (git-file-name name version))
490 (sha256 (base32
491 "163y98x0vc8icmd5prrjja7sp3clp8apvx0ha2shiaymxnprifm9"))))
492 (build-system meson-build-system)
493 (native-inputs (list gettext-minimal)) ; for msgfmt
494 (inputs (list libexif))
495 (synopsis "Wallpapers for the Pantheon desktop")
496 (description "This package provides wallpapers for the Pantheon desktop.")
497 (home-page "https://github.com/elementary/wallpapers")
498 (license (list license:cc-by-sa4.0
499 license:cc0
500 (license:non-copyleft "https://unsplash.com/license")
501 (license:non-copyleft "https://www.pexels.com/license/")))))