projects/guix·blob python-team · refs

445 lines · 15.3 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017-2023 Efraim Flashner <[email protected]>
3;;; Copyright © 2019-2021 Tobias Geerinckx-Rice <[email protected]>
4;;; Copyright © 2019, 2020 Marius Bakke <[email protected]>
5;;; Copyright © 2020-2021 Nicolas Goaziou <[email protected]>
6;;; Copyright © 2021 Ludovic Courtès <[email protected]>
7;;; Copyright © 2021, 2023, 2025 Vinicius Monego <[email protected]>
8;;; Copyright © 2022 Michael Rohleder <[email protected]>
9;;; Copyright © 2023-2025 Zheng Junjie <[email protected]>
10;;; Copyright © 2022 Brendan Tildesley <[email protected]>
11;;; Copyright © 2022 Petr Hodina <[email protected]>
12;;; Copyright © 2025, 2026 Sughosha <[email protected]>
13
14;;;
15;;; This file is part of GNU Guix.
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages kde-education)
31 #:use-module (guix packages)
32 #:use-module (guix download)
33 #:use-module (guix git-download)
34 #:use-module (guix build-system qt)
35 #:use-module (guix gexp)
36 #:use-module (guix utils)
37 #:use-module ((guix licenses) #:prefix license:)
38 #:use-module (gnu packages)
39 #:use-module (gnu packages algebra)
40 #:use-module (gnu packages astronomy)
41 #:use-module (gnu packages bison)
42 #:use-module (gnu packages compression)
43 #:use-module (gnu packages cpp)
44 #:use-module (gnu packages freedesktop)
45 #:use-module (gnu packages geo)
46 #:use-module (gnu packages gettext)
47 #:use-module (gnu packages gps)
48 #:use-module (gnu packages kde-frameworks)
49 #:use-module (gnu packages kde-multimedia)
50 #:use-module (gnu packages kde-plasma)
51 #:use-module (gnu packages libreoffice)
52 #:use-module (gnu packages markup)
53 #:use-module (gnu packages maths)
54 #:use-module (gnu packages ncurses)
55 #:use-module (gnu packages pdf)
56 #:use-module (gnu packages perl)
57 #:use-module (gnu packages protobuf)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages qt)
61 #:use-module (gnu packages readline)
62 #:use-module (gnu packages tls)
63 #:use-module (gnu packages xorg))
64
65(define-public kqtquickcharts
66 (package
67 (name "kqtquickcharts")
68 (version "26.04.1")
69 (source (origin
70 (method url-fetch)
71 (uri (string-append "mirror://kde/stable/release-service/"
72 version "/src/kqtquickcharts-" version ".tar.xz"))
73 (sha256
74 (base32
75 "0d4i7l41wrhgn8m408y8fj50w0s9y0v1lv2v8dyqssqbimdxgk8l"))))
76 (build-system qt-build-system)
77 ;; As required by KQtQuickChartsConfig.cmake.
78 (propagated-inputs (list qtdeclarative))
79 (native-inputs (list extra-cmake-modules))
80 (inputs (list qtdeclarative))
81 (arguments
82 (list #:qtbase qtbase
83 #:tests? #f))
84 (home-page "https://invent.kde.org/libraries/kqtquickcharts")
85 (synopsis "QtQuick plugin to render beautiful and interactive charts")
86 (description
87 "This package provides a QtQuick plugin to render beautiful and interactive
88charts.")
89 (license (list license:lgpl2.0+ license:gpl2+))))
90
91(define-public analitza
92 (package
93 (name "analitza")
94 (version "26.04.1")
95 (source
96 (origin
97 (method url-fetch)
98 (uri (string-append "mirror://kde/stable/release-service/"
99 version "/src/analitza-" version ".tar.xz"))
100 (sha256
101 (base32 "1rn1w6spz776zl23ri5fdk499f7ihldkh3iv03cimda1l26h6v61"))))
102 ;; As required by the QML modules.
103 (propagated-inputs (list qtdeclarative))
104 (native-inputs (list extra-cmake-modules qttools))
105 (inputs (list eigen qtbase qtsvg))
106 (build-system qt-build-system)
107 (home-page "https://invent.kde.org/education/analitza")
108 (synopsis "Library to add mathematical features to a program")
109 (description "Analitza is a library to work with mathematical objects.
110It adds mathematical features to your program, such as symbolic computations
111and some numerical methods; for instance the library can parse mathematical
112expressions and let you evaluate and draw them.")
113 (license license:gpl2+)))
114
115(define-public gcompris-qt
116 (package
117 (name "gcompris-qt")
118 (version "26.1")
119 (source
120 (origin
121 (method url-fetch)
122 (uri (string-append
123 "mirror://kde//stable/gcompris/qt/src/gcompris-qt-"
124 version ".tar.xz"))
125 (sha256
126 (base32 "0f8kycj62ipfjwrk8bisq5a7cv7zh84p9vry3g62q0czn9ivi2f3"))))
127 (build-system qt-build-system)
128 (arguments
129 (list #:qtbase qtbase
130 #:phases
131 #~(modify-phases %standard-phases
132 (add-before 'check 'start-xorg-server
133 (lambda* (#:key inputs #:allow-other-keys)
134 ;; The test suite requires a running X server.
135 (system "Xvfb :1 &")
136 (setenv "DISPLAY" ":1")
137 ;; The test suite wants to write to /homeless-shelter
138 (setenv "HOME" (getcwd)))))
139 #:configure-flags #~(list "-DQML_BOX2D_MODULE=disabled")))
140 (native-inputs
141 (list extra-cmake-modules
142 gettext-minimal
143 kdoctools
144 perl
145 pkg-config
146 qttools
147 xorg-server-for-tests))
148 (inputs
149 (list openssl
150 python-wrapper
151 qtcharts
152 qtdeclarative
153 qtgraphs
154 qtmultimedia
155 qtquick3d
156 qtsensors
157 qtshadertools
158 qtsvg
159 qtwayland
160 wayland))
161 (home-page "https://gcompris.net/index-en.html")
162 (synopsis "Educational games for small children")
163 (description
164 "Gcompris offers a large collection of educational games for small
165children, designed to be a unified interface to integrate more educational
166games. Language-oriented games contain vocabulary, sounds, and voices for
167many different languages.
168Currently available boards include:
169@enumerate
170@item learning how to use a mouse and keyboard
171@item learning simple arithmetic
172@item learning how to read an analog clock
173@item recognize letters after hearing their names
174@item reading practice
175@item small games (memory games, jigsaw puzzles, ...)
176@end enumerate")
177 (license (list license:silofl1.1 ; bundled fonts
178 license:agpl3+))))
179
180;; 2026-02-15
181(define-deprecated-package gcompris gcompris-qt)
182
183(define-public kalgebra
184 (package
185 (name "kalgebra")
186 (version "26.04.1")
187 (source
188 (origin
189 (method url-fetch)
190 (uri (string-append "mirror://kde/stable/release-service/"
191 version "/src/kalgebra-" version ".tar.xz"))
192 (sha256
193 (base32 "0br2ffh50p7l7w3ym5393vjcw8pzr3z9snqk9j99qdm1kpslxhck"))))
194 (build-system qt-build-system)
195 (arguments
196 (list
197 #:qtbase qtbase
198 #:tests? #f
199 #:phases
200 #~(modify-phases %standard-phases
201 (add-after 'install 'wrap-qt-process-path
202 (lambda* (#:key inputs #:allow-other-keys)
203 (let ((bin (string-append #$output "/bin/kalgebra"))
204 (qt-process-path
205 (search-input-file
206 inputs "/lib/qt6/libexec/QtWebEngineProcess")))
207 (wrap-program bin
208 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
209 (native-inputs
210 (list extra-cmake-modules qttools))
211 (inputs
212 (list analitza
213 kconfigwidgets
214 kcoreaddons
215 kdoctools
216 ki18n
217 kio
218 kwidgetsaddons
219 kxmlgui
220 libplasma
221 ncurses
222 qtdeclarative
223 qtsvg
224 qtwayland
225 qtwebengine
226 qtwebchannel
227 readline))
228 (home-page "https://invent.kde.org/education/kalgebra")
229 (synopsis "Calculator and plotting tool")
230 (description "KAlgebra is a calculator that lets you plot different types
231of 2D and 3D functions and to calculate easy (and not so easy) calculations,
232such as addition, trigonometric functions or derivatives.")
233 (license license:gpl2+)))
234
235(define-public ktouch
236 (package
237 (name "ktouch")
238 (version "26.04.1")
239 (source
240 (origin
241 (method url-fetch)
242 (uri (string-append "mirror://kde/stable/release-service/"
243 version "/src/ktouch-" version ".tar.xz"))
244 (sha256
245 (base32 "0hd2vp8yj24aa8wa3hh2lhnsjqh4i7p65i5036h0272ciyhzp4zy"))))
246 (build-system qt-build-system)
247 (native-inputs
248 (list extra-cmake-modules kdoctools pkg-config))
249 (inputs
250 (list kcmutils
251 kcompletion
252 kconfig
253 kconfigwidgets
254 kcoreaddons
255 kdeclarative
256 ki18n
257 kiconthemes
258 kitemviews
259 ktextwidgets
260 kwidgetsaddons
261 kwindowsystem
262 kxmlgui
263 kqtquickcharts
264 libxcb
265 libxkbfile
266 qtdeclarative
267 qtwayland))
268 (arguments
269 (list #:qtbase qtbase
270 #:tests? #f))
271 (home-page "https://edu.kde.org/ktouch/")
272 (synopsis "Touch typing tutor")
273 (description
274 "KTouch is an aid for learning how to type with speed and accuracy. It
275provides a sample text to type and indicates which fingers should be used for
276each key. A collection of lessons are included for a wide range of different
277languages and keyboard layouts, and typing statistics are used to dynamically
278adjust the level of difficulty.")
279 (license license:gpl2)))
280
281(define-public labplot
282 (package
283 (name "labplot")
284 (version "2.12.1")
285 (source
286 (origin
287 (method url-fetch)
288 (uri (string-append "mirror://kde//stable/labplot"
289 "/labplot-" version ".tar.xz"))
290 (sha256
291 (base32 "0shhdinrynsi1lhny8ag0hw83r6iaqsk34a7gipmn3plvnzmb0g2"))))
292 (build-system qt-build-system)
293 (arguments
294 (list #:qtbase qtbase
295 #:configure-flags
296 #~(list "-DENABLE_CANTOR=OFF" ;not packaged
297 "-DENABLE_MQTT=OFF" ;not packaged (qtmqtt)
298 ;; FIXME: readstat (optional dependency) is available in the
299 ;; statistics module, but that module can't be used here.
300 "-DENABLE_READSTAT=OFF"
301 ;; This is a bundled library that is not packaged.
302 "-DENABLE_LIBORIGIN=ON")
303 #:test-exclude
304 (string-append "("
305 (string-join '("ParserTest"
306 "ReadStatFilterTest"
307 "WorksheetElementTest")
308 "|")
309 ")")
310 #:phases
311 #~(modify-phases %standard-phases
312 (replace 'check
313 (lambda* (#:key tests? (test-exclude "") #:allow-other-keys)
314 (when tests?
315 (setenv "HOME" (getcwd))
316 ;; This test fails, I don't know why.
317 (invoke "ctest" "-E" test-exclude)))))))
318 (native-inputs (list bison
319 extra-cmake-modules
320 kdoctools
321 pkg-config
322 python-wrapper
323 qttools))
324 (inputs
325 (list breeze ;for dark themes
326 breeze-icons ;for icons
327 discount
328 eigen
329 gsl
330 karchive
331 kcompletion
332 kconfig
333 kconfigwidgets
334 kcoreaddons
335 kcrash
336 ki18n
337 kiconthemes
338 kio
339 knewstuff
340 kparts
341 kservice
342 ksyntaxhighlighting
343 ktextwidgets
344 kwidgetsaddons
345 kxmlgui
346 matio
347 orcus
348 purpose
349 poppler-qt6
350 qtsvg
351 shared-mime-info
352 ;; Optional.
353 cfitsio
354 fftw
355 hdf5
356 libcerf
357 lz4
358 netcdf
359 qt-advanced-docking-system
360 qtserialport
361 qtwayland
362 qxlsx
363 zlib
364 zstd))
365 (home-page "https://labplot.kde.org/")
366 (synopsis "Interactive graphing and analysis of scientific data")
367 (description "LabPlot is a tool for interactive graphing and analysis of
368scientific data. It provides an easy way to create, manage and edit plots and
369to perform data analysis.")
370 (license (list license:gpl2+ ;labplot
371 license:gpl3+)))) ;liborigin
372
373(define-public marble
374 (package
375 (name "marble")
376 (version "26.04.1")
377 (source
378 (origin
379 (method url-fetch)
380 (uri (string-append "mirror://kde/stable/release-service/"
381 version "/src/marble-" version ".tar.xz"))
382 (sha256
383 (base32 "04gz0ivzs385c87myh1pwiy92c8j9ycm6i979bw3k2al0jxfnjqp"))))
384 (build-system qt-build-system)
385 (arguments
386 (list
387 #:test-exclude "MarbleRunnerManagerTest"
388 #:qtbase qtbase
389 #:configure-flags
390 #~(list "-DBUILD_MARBLE_TOOLS=YES" ;file conversion tools
391 "-DBUILD_TOUCH=YES")
392 #:phases
393 #~(modify-phases %standard-phases
394 (add-after 'unpack 'alter-osmctools-lookup
395 (lambda _
396 (substitute* "tools/vectorosm-tilecreator/autotests/CMakeLists.txt"
397 (("\\$<TARGET_FILE:osmconvert>")
398 (which "osmconvert")))))
399 ;; Some tests rely on plugins being installed, so
400 ;; check should be run after install.
401 (delete 'check)
402 (add-after 'install 'check
403 (assoc-ref %standard-phases 'check)))))
404 (native-inputs (list abseil-cpp
405 extra-cmake-modules
406 kdoctools
407 osmctools
408 python-minimal
409 qttools))
410 ;; One optional dependency missing: libwlocate.
411 (inputs (list gpsd
412 kcoreaddons
413 kcrash
414 ki18n
415 kio
416 knewstuff
417 kparts
418 krunner
419 kwallet
420 perl
421 phonon
422 protobuf
423 qt5compat
424 qtdeclarative
425 qtlocation
426 qtpositioning
427 qtserialport
428 qtsvg
429 qtwayland
430 qtwebchannel
431 qtwebengine
432 shapelib
433 shared-mime-info
434 zlib))
435 (home-page "https://marble.kde.org/")
436 (synopsis "Virtual globe and world atlas")
437 (description
438 "Marble is similar to a desktop globe. At closer scale it
439becomes a world atlas, while OpenStreetMap takes the user to street level. It
440supports searching for places of interest, viewing Wikipedia articles,
441creating routes by drag and drop and more.")
442 (license license:lgpl2.1+)))
443
444;; 2026-01-07
445(define-deprecated-package marble-qt marble)