diff options
Diffstat (limited to 'gnu/packages/education.scm')
-rw-r--r-- | gnu/packages/education.scm | 273 |
1 files changed, 133 insertions, 140 deletions
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 2039347ddc..1e19d83fc1 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -2,9 +2,9 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2018-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> @@ -96,15 +96,16 @@ ;; of Gstreamer. (list "--enable-sdlmixer" "LDFLAGS=-lgmodule-2.0") + #:make-flags + (list "CFLAGS=-fcommon") #:phases (modify-phases %standard-phases (add-after 'set-paths 'set-sdl-paths (lambda* (#:key inputs #:allow-other-keys) (setenv "CPATH" - (string-append (assoc-ref inputs "sdl-mixer") - "/include/SDL:" - (or (getenv "CPATH") ""))) - #t))))) + (string-append + (search-input-directory inputs "include/SDL") + ":" (or (getenv "CPATH") "")))))))) (inputs `(("gtk+" ,gtk+-2) ("librsvg" ,librsvg) @@ -141,15 +142,15 @@ of categories with some of the activities available in that category. (define-public gcompris-qt (package (name "gcompris-qt") - (version "1.1") + (version "2.1") (source (origin (method url-fetch) (uri (string-append - "https://gcompris.net/download/qt/src/gcompris-qt-" + "https://download.kde.org/stable/gcompris/qt/src/gcompris-qt-" version ".tar.xz")) (sha256 - (base32 "1bpjwrv83rhikbycpyfpf6dbqr0xfq6amgdpqfgfph6nzr3zka7h")))) + (base32 "02j3xv8sa3s5g50zs15wy2giabmhg1q0b8ar73q3fpwvxkz9hcwn")))) (build-system qt-build-system) (arguments `(#:phases @@ -157,32 +158,30 @@ of categories with some of the activities available in that category. (add-before 'check 'start-xorg-server (lambda* (#:key inputs #:allow-other-keys) ;; The test suite requires a running X server. - (system (string-append (assoc-ref inputs "xorg-server") - "/bin/Xvfb :1 &")) + (system "Xvfb :1 &") (setenv "DISPLAY" ":1") ;; The test suite wants to write to /homeless-shelter - (setenv "HOME" (getcwd)) - #t))) + (setenv "HOME" (getcwd))))) #:configure-flags (list "-DQML_BOX2D_MODULE=disabled" "-DBUILD_TESTING=TRUE"))) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules) - ("gettext" ,gettext-minimal) - ("kdoctools" ,kdoctools) - ("perl" ,perl) - ("qttools" ,qttools) - ("xorg-server" ,xorg-server-for-tests))) + (list extra-cmake-modules + gettext-minimal + kdoctools + perl + qttools + xorg-server-for-tests)) (inputs - `(("openssl" ,openssl) - ("python" ,python-wrapper) - ("qtbase" ,qtbase-5) - ("qtdeclarative" ,qtdeclarative) - ("qtgraphicaleffects" ,qtgraphicaleffects) - ("qtmultimedia" ,qtmultimedia) - ("qtquickcontrols" ,qtquickcontrols) - ("qtsensors" ,qtsensors) - ("qtsvg" ,qtsvg) - ("qtxmlpatterns" ,qtxmlpatterns))) + (list openssl + python-wrapper + qtbase-5 + qtdeclarative + qtgraphicaleffects + qtmultimedia + qtquickcontrols + qtsensors + qtsvg + qtxmlpatterns)) (home-page "https://gcompris.net/index-en.html") (synopsis "Educational games for small children") (description @@ -198,9 +197,9 @@ Currently available boards include: @item recognize letters after hearing their names @item reading practice @item small games (memory games, jigsaw puzzles, ...) -@end enumerate\n") +@end enumerate") (license (list license:silofl1.1 ; bundled fonts - license:gpl3+)))) + license:agpl3+)))) (define-public gotypist (let ((revision "0") @@ -243,8 +242,7 @@ Currently available boards include: (with-directory-excursion bin (rename-file "v1" "gotypist")))))))) (native-inputs - `(("go-github-com-gizak-termui" ,go-github-com-gizak-termui) - ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (list go-github-com-gizak-termui go-github-com-stretchr-testify)) (home-page "https://github.com/KappaDistributive/gotypist") (synopsis "Simple typing trainer for text terminals") (description @@ -299,8 +297,7 @@ frequently used words in American English.") ;; Recreate Makefile (invoke "qmake"))))))) (inputs - `(("qtbase" ,qtbase-5) - ("qtmultimedia" ,qtmultimedia))) + (list qtbase-5 qtmultimedia)) (home-page "https://www.tipp10.com/") (synopsis "Touch typing tutor") (description "Tipp10 is a touch typing tutor. The ingenious thing about @@ -316,7 +313,7 @@ easy.") (define-public snap (package (name "snap") - (version "6.9.0") + (version "7.0.5") (source (origin (method git-fetch) @@ -325,7 +322,7 @@ easy.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1wppz57lrrribrfnaiv6jrrf703w7i6ja0dnz8yx8naxhbsglwyf")))) + (base32 "13j52r810yijvkj85c356c342drc3947j28z3va7kz75mi26whsf")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -339,26 +336,23 @@ easy.") ;; Replace the sole minified file in the package. (with-directory-excursion (string-append share "/src") (delete-file "FileSaver.min.js") - (symlink (string-append (assoc-ref %build-inputs "js-filesaver") - "/share/javascript/FileSaver.min.js") + (symlink (search-input-file %build-inputs + "/share/javascript/FileSaver.min.js") "FileSaver.min.js")) ;; Create a "snap" executable. (let* ((bin (string-append out "/bin")) (script (string-append bin "/snap")) (snap (string-append share "/snap.html")) - (bash (string-append (assoc-ref %build-inputs "bash") - "/bin/sh")) - (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils") - "/bin/xdg-open"))) + (bash (search-input-file %build-inputs "/bin/sh")) + (xdg-open (search-input-file %build-inputs + "/bin/xdg-open"))) (mkdir-p bin) (call-with-output-file script (lambda (port) (format port "#!~a\n~a '~a'" bash xdg-open snap))) (chmod script #o555)))))) (inputs - `(("bash" ,bash-minimal) - ("js-filesaver" ,js-filesaver) - ("xdg-utils" ,xdg-utils))) + (list bash-minimal js-filesaver xdg-utils)) (home-page "https://snap.berkeley.edu") (synopsis "Visual, blocks based programming language") (description "Snap! (formerly BYOB) is a visual, drag-and-drop @@ -380,8 +374,12 @@ to open the application in a web browser, for offline usage.") (source (origin (method url-fetch) - (uri (string-append "http://www.bipede.fr/downloads/logiciels/" - "ToutEnClic-" version "-src.zip")) + (uri (list + ;; XXX: Upstream does not exist anymore. + (string-append "http://www.bipede.fr/downloads/logiciels/" + "ToutEnClic-" version "-src.zip") + (string-append "https://archive.org/download/tout-en-clic-" version + "-src/ToutEnClic-" version "-src.zip"))) (sha256 (base32 "0xg24p925rl5bfqsq3jb2lrkidb0f3kbmay5iyxxmjsn3ra0blyh")))) (build-system python-build-system) @@ -409,8 +407,7 @@ to open the application in a web browser, for offline usage.") (mkdir-p bin) (with-directory-excursion bin (symlink (string-append share "/" executable ".py") - executable))) - #t)) + executable))))) (add-after 'install 'create-desktop-file (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -428,12 +425,11 @@ to open the application in a web browser, for offline usage.") Terminal=false~@ Icon=toutenclic~@ Type=Application~%" - out))) - #t)))))) + out))))))))) (native-inputs - `(("unzip" ,unzip))) + (list unzip)) (inputs - `(("python-pyqt" ,python-pyqt))) + (list python-pyqt)) (synopsis "School tools for physically disabled children") (description "ToutEnClic is intended to facilitate the schooling of physically disabled children in ordinary schools. It is both @@ -498,8 +494,7 @@ specialized device.") #t))) (add-after 'install 'create-executable (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((python (string-append (assoc-ref inputs "python") - "/bin/python")) + (let* ((python (search-input-file inputs "/bin/python")) (out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (executable (string-append bin "/childsplay"))) @@ -567,8 +562,7 @@ letters of the alphabet, spelling, eye-hand coordination, etc.") #t)))) (build-system python-build-system) (inputs - `(("python2-pygame" ,python2-pygame) - ("python2-pygtk" ,python2-pygtk))) + (list python2-pygame python2-pygtk)) (arguments `(#:tests? #f ;no test #:python ,python-2 @@ -592,10 +586,9 @@ letters of the alphabet, spelling, eye-hand coordination, etc.") ;; Install the launcher. (let* ((bin (string-append out "/bin")) (script (string-append bin "/omnitux")) - (bash (string-append (assoc-ref %build-inputs "bash") - "/bin/bash")) - (python (string-append (assoc-ref %build-inputs "python") - "/bin/python2"))) + (bash (search-input-file %build-inputs "/bin/bash")) + (python (search-input-file %build-inputs + "/bin/python2"))) (mkdir-p bin) (with-output-to-file script (lambda () @@ -653,14 +646,16 @@ Portuguese, Spanish and Italian.") (define-public fet (package (name "fet") - (version "6.0.4") + (version "6.2.2") (source (origin (method url-fetch) - (uri (string-append "https://www.lalescu.ro/liviu/fet/download/" - "fet-" version ".tar.bz2")) + (uri (let ((directory "https://www.lalescu.ro/liviu/fet/download/") + (base (string-append "fet-" version ".tar.bz2"))) + (list (string-append directory base) + (string-append directory "old/" base)))) (sha256 - (base32 "16yajwbvm2ain1p2h81qfm8pbrdp70zljck67j9yijwyr6xqdj2a")))) + (base32 "1x8m543n88iqprh4zccx1zcfm20balmh0h6syrbv03cszmkvfw07")))) (build-system gnu-build-system) (arguments `(#:phases @@ -671,12 +666,11 @@ Portuguese, Spanish and Italian.") "src/src.pro" "src/src-cl.pro" "src/interface/fet.cpp") - (("/usr") (assoc-ref outputs "out"))) - #t)) + (("/usr") (assoc-ref outputs "out"))))) (replace 'configure (lambda _ (invoke "qmake" "fet.pro")))))) (inputs - `(("qtbase" ,qtbase))) + (list qtbase)) (home-page "https://www.lalescu.ro/liviu/fet/") (synopsis "Timetabling software") (description @@ -702,14 +696,9 @@ hours.") (base32 "0z6c3lqikk50mkz3ipm93l48qj7b98lxyip8y6ndg9y9k0z0n878")))) (build-system gnu-build-system) (native-inputs - `(("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + (list intltool pkg-config)) (inputs - `(("cairo" ,cairo) - ("curl" ,curl) - ("gtk+" ,gtk+) - ("gtkdatabox" ,gtkdatabox) - ("pango" ,pango))) + (list cairo curl gtk+ gtkdatabox pango)) (home-page "https://klavaro.sourceforge.io/en/index.html") (synopsis "Touch typing tutor") (description @@ -730,32 +719,30 @@ language and very flexible regarding to new or unknown keyboard layouts.") (base32 "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib")))) (build-system qt-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules) - ("kdoctools" ,kdoctools) - ("pkg-config" ,pkg-config))) + (list extra-cmake-modules kdoctools pkg-config)) (inputs - `(("kcmutils" ,kcmutils) - ("kcompletion" ,kcompletion) - ("kconfig" ,kconfig) - ("kconfigwidgets" ,kconfigwidgets) - ("kcoreaddons" ,kcoreaddons) - ("kdeclarative" ,kdeclarative) - ("ki18n" ,ki18n) - ("kiconthemes" ,kiconthemes) - ("kitemviews" ,kitemviews) - ("kqtquickcharts" ,kqtquickcharts) - ("ktextwidgets" ,ktextwidgets) - ("kwidgetsaddons" ,kwidgetsaddons) - ("kwindowsystem" ,kwindowsystem) - ("kxmlgui" ,kxmlgui) - ("libxcb" ,libxcb) - ("libxkbfile" ,libxkbfile) - ("qtbase" ,qtbase-5) - ("qtdeclarative" ,qtdeclarative) - ("qtgraphicaleffects" ,qtgraphicaleffects) - ("qtquickcontrols2" ,qtquickcontrols2) - ("qtx11extras" ,qtx11extras) - ("qtxmlpatterns" ,qtxmlpatterns))) + (list kcmutils + kcompletion + kconfig + kconfigwidgets + kcoreaddons + kdeclarative + ki18n + kiconthemes + kitemviews + kqtquickcharts + ktextwidgets + kwidgetsaddons + kwindowsystem + kxmlgui + libxcb + libxkbfile + qtbase-5 + qtdeclarative + qtgraphicaleffects + qtquickcontrols2 + qtx11extras + qtxmlpatterns)) (home-page "https://edu.kde.org/ktouch/") (synopsis "Touch typing tutor") (description @@ -785,11 +772,10 @@ adjust the level of difficulty.") (base32 "0dz63m9p4ggzw0yb309qmgnl664qb5q268vaa3i9v0i8qsl66d78")))) (build-system gnu-build-system) (native-inputs - `(("gettext" ,gettext-minimal) ; for msgfmt - ("pkg-config" ,pkg-config))) + (list gettext-minimal ; for msgfmt + pkg-config)) (inputs - `(("libxml2" ,libxml2) - ("gtk+" ,gtk+))) + (list libxml2 gtk+)) (home-page "https://kanatest.sourceforge.io/") (synopsis "Hiragana and Katakana simple flashcard tool") (description "Kanatest is a Japanese kana (Hiragana and Katakana) simple @@ -853,8 +839,8 @@ stored and user can review his performance in any time.") (string-prefix? "python-" label))) inputs))) (qtwebengineprocess - (string-append (assoc-ref inputs "qtwebengine") - "/lib/qt5/libexec/QtWebEngineProcess"))) + (search-input-file inputs + "lib/qt5/libexec/QtWebEngineProcess"))) ;; The program fails to find the QtWebEngineProcess program, so ;; we set QTWEBENGINEPROCESS_PATH to help it. PYTHONPATH is ;; wrapped to avoid declaring Python libraries as propagated @@ -866,11 +852,11 @@ stored and user can review his performance in any time.") `("PATH" prefix (,(string-append (assoc-ref inputs "mpv") "/bin"))) - `("PYTHONPATH" = ,site-packages))) + `("GUIX_PYTHONPATH" = ,site-packages))) (find-files bin "."))) #t))))) (native-inputs - `(("xdg-utils" ,xdg-utils))) + (list xdg-utils)) (inputs `(("lame" ,lame) ("mpv" ,mpv) @@ -924,8 +910,13 @@ endless. For example: (file-name (git-file-name name version)) (sha256 (base32 "13q02xpmps9qg8zrzzy2gzv4a6afgi28lxk4z242j780v0gphchp")) - (patches - (search-patches "t4k-common-libpng16.patch")))) + (patches (search-patches "t4k-common-libpng16.patch")) + (modules '((guix build utils))) + (snippet + `(begin + (substitute* "src/t4k_common.h" + (("char wrapped_lines") "extern char wrapped_lines")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;FIXME: cannot find how to run tests @@ -933,9 +924,10 @@ endless. For example: (modify-phases %standard-phases (add-after 'set-paths 'set-sdl-paths (lambda* (#:key inputs #:allow-other-keys) - (setenv "CPATH" (string-append (assoc-ref inputs "sdl") - "/include/SDL:" - (or (getenv "CPATH") ""))))) + (setenv "CPATH" + (string-append + (search-input-directory inputs "/include/SDL") + ":" (or (getenv "CPATH") ""))))) (add-after 'unpack 'fix-andika-font-path (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/t4k_sdl.c" @@ -944,7 +936,7 @@ endless. For example: "/share/fonts/truetype"))) #t))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs `(("font-andika" ,font-sil-andika) ("libpng" ,libpng) @@ -974,6 +966,9 @@ TuxMath and TuxType.") ;; Unbundle fonts. (snippet `(begin + ;; Remove duplicate definition. + (substitute* "src/menu_lan.c" + (("lan_player_type.*MAX_CLIENTS\\];") "")) (for-each delete-file (find-files "data/fonts" "\\.ttf$")) #t)))) (build-system gnu-build-system) @@ -984,10 +979,10 @@ TuxMath and TuxType.") (add-after 'set-paths 'set-sdl-paths (lambda* (#:key inputs #:allow-other-keys) (setenv "CPATH" - (string-append (assoc-ref inputs "sdl") - "/include/SDL:" - (or (getenv "CPATH") ""))) - #t)) + (string-append + (search-input-directory inputs "/include/SDL") + ":" + (or (getenv "CPATH") ""))))) (add-after 'install 'install-desktop-file (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -999,7 +994,7 @@ TuxMath and TuxType.") "tuxmath\\.(png|ico|svg)$")) #t)))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs `(("librsvg" ,librsvg) ("libxml2" ,libxml2) @@ -1033,9 +1028,9 @@ floating through space.") "0psbdzirazfnn02hp3gsx7xxss9f1brv4ywp6a15ihvggjki1rxb")))) (build-system gnu-build-system) (native-inputs ; Required for building docs - `(("perl" ,perl))) + (list perl)) (inputs - `(("zlib" ,zlib))) + (list zlib)) (synopsis "C library for accessing Japanese CD-ROM books") (description "The EB library is a library for accessing CD-ROM books, which are a common way to distribute electronic dictionaries in @@ -1062,16 +1057,16 @@ formats.") (arguments '(#:tests? #f)) ; no test target (native-inputs - `(("qttools", qttools))) + (list qttools)) (inputs - `(("libeb" ,libeb) - ("qtbase" ,qtbase-5) - ("qtmultimedia" ,qtmultimedia) - ("qtquickcontrols2" ,qtquickcontrols2) - ("qtdeclarative" ,qtdeclarative) - ("qtwebchannel" ,qtwebchannel) - ("qtwebengine" ,qtwebengine) - ("zlib" ,zlib))) + (list libeb + qtbase-5 + qtmultimedia + qtquickcontrols2 + qtdeclarative + qtwebchannel + qtwebengine + zlib)) (synopsis "EPWING dictionary reader") (description "qolibri is a dictionary viewer for the EPWING dictionary format. Most monolingual Japanese dictionaries can only be found in the @@ -1095,16 +1090,14 @@ EPWING format.") (arguments `(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes"))) (native-inputs - `(("flex" ,flex) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + (list flex intltool pkg-config)) (inputs - `(("glib" ,glib) - ("gtk+" ,gtk+) - ("libglade" ,libglade) - ("ncurses" ,ncurses) - ("pango" ,pango) - ("readline" ,readline))) + (list glib + gtk+ + libglade + ncurses + pango + readline)) (home-page "https://www.gnu.org/software/mdk/manual/") (synopsis "Virtual development environment for Knuth's MIX") (description |