gnu: r-zellkonverter: Update to 1.6.5.
[jackhill/guix/guix.git] / gnu / packages / education.scm
index 0784314..0d4719f 100644 (file)
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
@@ -45,6 +47,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages kde)
@@ -174,18 +177,18 @@ of categories with some of the activities available in that category.
            gettext-minimal
            kdoctools
            perl
-           qttools
+           qttools-5
            xorg-server-for-tests))
     (inputs
      (list openssl
            python-wrapper
            qtbase-5
-           qtdeclarative
+           qtdeclarative-5
            qtgraphicaleffects
-           qtmultimedia
-           qtquickcontrols
+           qtmultimedia-5
+           qtquickcontrols-5
            qtsensors
-           qtsvg
+           qtsvg-5
            qtxmlpatterns))
     (home-page "https://gcompris.net/index-en.html")
     (synopsis "Educational games for small children")
@@ -302,7 +305,7 @@ frequently used words in American English.")
                ;; Recreate Makefile
                (invoke "qmake")))))))
     (inputs
-     (list qtbase-5 qtmultimedia))
+     (list qtbase-5 qtmultimedia-5))
     (home-page "https://www.tipp10.com/")
     (synopsis "Touch typing tutor")
     (description "Tipp10 is a touch typing tutor.  The ingenious thing about
@@ -445,113 +448,10 @@ specialized device.")
     (home-page "https://bipede.fr/contrib/")
     (license license:gpl3)))
 
-(define-public childsplay
-  (package
-    (name "childsplay")
-    (version "3.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/schoolsplay/"
-                    "childsplay-" version ".tgz"))
-              (sha256
-               (base32
-                "0z7yp2swjnbz51vn2zyfnjn40jq38l5mbh15yafmx1z3vn2z1m77"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unbundle-dejavu-font
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((dejavu-dir
-                     (string-append (assoc-ref inputs "font-dejavu")
-                                    "/share/fonts/truetype"))
-                    (dejavu-font
-                     (string-append dejavu-dir
-                                    "/DejaVuSansCondensed-Bold.ttf")))
-               (substitute* "SPConstants.py"
-                 (("^(TTF(BOLD)? = ).*" _ prefix)
-                  (string-append prefix "'" dejavu-font "'\n")))
-               (for-each (lambda (f) (delete-file f))
-                         (find-files "lib/SPData" "DejaVu"))
-               #t)))
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (pixmaps (string-append out "/share/pixmaps"))
-                    (share (string-append out "/share/childsplay"))
-                    (doc (string-append out "/share/doc/" ,name "-",version)))
-               ;; Install icon.
-               (install-file "lib/SPData/themes/childsplay/logo_cp.svg" pixmaps)
-               ;; Install data.
-               (mkdir-p share)
-               (for-each (lambda (f)
-                           (copy-recursively f (string-append share "/" f)))
-                         '("alphabet-sounds" "lib" "locale" "SPWidgets"))
-               (for-each (lambda (f) (install-file f share))
-                         (find-files "." "\\.(py|dev|db)$"))
-               ;; Install documentation.
-               (mkdir-p doc)
-               (copy-recursively "docs" doc)
-               #t)))
-         (add-after 'install 'create-executable
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             (let* ((python (search-input-file inputs "/bin/python"))
-                    (out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (executable (string-append bin "/childsplay")))
-               (mkdir-p bin)
-               (call-with-output-file executable
-                 (lambda (file)
-                   (format file
-                           "~a ~a"
-                           python
-                           (string-append out "/share/childsplay/childsplay.py"))))
-               (chmod executable #o555)
-               #t)))
-         (add-after 'install 'create-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (applications (string-append out "/share/applications")))
-               (mkdir-p applications)
-               (call-with-output-file
-                   (string-append applications "/childsplay.desktop")
-                 (lambda (file)
-                   (format file
-                           "[Desktop Entry]~@
-                            Name=Childsplay~@
-                            Comment=Suite of educational games for young children~@
-                            Comment[ca]=Conjunt de jocs educatius per a xiquets~@
-                            Comment[es]=Conjunto de juegos educativos para niños~@
-                            Comment[de]=Sammlung mit lehrreichen Spielen für kleine Kinder~@
-                            Exec=~a/bin/childsplay~@
-                            Terminal=false~@
-                            Icon=logo_cp.svg~@
-                            Type=Application~@
-                            Categories=Application;Game;Education;KidsGame;~@
-                            Keywords=suite;children;games;young;educational;~%"
-                           out)))
-               #t))))))
-    (inputs
-     `(("font-dejavu" ,font-dejavu)
-       ("pygame" ,python2-pygame)
-       ("sqlalchemy" ,python2-sqlalchemy)))
-    (synopsis "Suite of educational games for young children")
-    (description "Childsplay is a collection of educational activities
-for young children.  Childsplay can be used at home, kindergartens and
-pre-schools.  Childsplay is a fun and safe way to let young children
-use the computer and at the same time teach them a little math,
-letters of the alphabet, spelling, eye-hand coordination, etc.")
-    (home-page "http://www.schoolsplay.org")
-    (license license:gpl3+)))
-
 (define-public openboard
   ;; The last release builds from qtwebkit, which is planned for removal in
   ;; Guix, so use the latest commit of the 1.7-dev branch, which builds with
-  ;; qtwebengine.
+  ;; qtwebengine-5.
   (let ((commit "39e914f600d26565706f0e5b6ea2482b8b4038c7") ;1.6.2-rc0311
         (revision "1"))
     (package
@@ -643,7 +543,7 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
                     (symlink (string-append openboard "/OpenBoard")
                              (string-append bin "/openboard")))))))))
       (native-inputs
-       (list qttools))
+       (list qttools-5))
       (inputs
        (list alsa-lib
              coreutils-minimal          ;for patched 'env' shebang
@@ -661,11 +561,11 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
              opus
              poppler
              qtbase-5
-             qtdeclarative
-             qtmultimedia
-             qtsvg
-             qtwebchannel
-             qtwebengine
+             qtdeclarative-5
+             qtmultimedia-5
+             qtsvg-5
+             qtwebchannel-5
+             qtwebengine-5
              qtxmlpatterns
              quazip-0
              sdl
@@ -682,7 +582,7 @@ a pen-tablet display and a beamer.")
 (define-public fet
   (package
     (name "fet")
-    (version "6.2.2")
+    (version "6.5.7")
     (source
      (origin
        (method url-fetch)
@@ -691,20 +591,21 @@ a pen-tablet display and a beamer.")
               (list (string-append directory base)
                     (string-append directory "old/" base))))
        (sha256
-        (base32 "1x8m543n88iqprh4zccx1zcfm20balmh0h6syrbv03cszmkvfw07"))))
+        (base32 "08j5i3dlp290fz142ljn68j8ssi5f3kabs0dd75ig33kms30hjs7"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-hardcoded-directories
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* (list "fet.pro"
-                                "src/src.pro"
-                                "src/src-cl.pro"
-                                "src/interface/fet.cpp")
-               (("/usr") (assoc-ref outputs "out")))))
-         (replace 'configure
-           (lambda _ (invoke "qmake" "fet.pro"))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-hardcoded-directories
+            (lambda _
+              (substitute* (list "fet.pro"
+                                 "src/src.pro"
+                                 "src/src-cl.pro"
+                                 "src/interface/fet.cpp")
+                (("/usr") #$output))))
+          (replace 'configure
+            (lambda _ (invoke "qmake" "fet.pro"))))))
     (inputs
      (list qtbase))
     (home-page "https://www.lalescu.ro/liviu/fet/")
@@ -774,9 +675,9 @@ language and very flexible regarding to new or unknown keyboard layouts.")
            libxcb
            libxkbfile
            qtbase-5
-           qtdeclarative
+           qtdeclarative-5
            qtgraphicaleffects
-           qtquickcontrols2
+           qtquickcontrols2-5
            qtx11extras
            qtxmlpatterns))
     (home-page "https://edu.kde.org/ktouch/")
@@ -909,9 +810,9 @@ stored and user can review his performance in any time.")
        ("python-requests" ,python-requests)
        ("python-send2trash" ,python-send2trash)
        ("python-sip" ,python-sip)
-       ;; `qtwebengine' is included in `pyqtwebengine', included here for easy
+       ;; `qtwebengine-5' is included in `pyqtwebengine', included here for easy
        ;; wrapping.
-       ("qtwebengine" ,qtwebengine)))
+       ("qtwebengine-5" ,qtwebengine-5)))
     (home-page "https://apps.ankiweb.net/")
     (synopsis "Powerful, intelligent flash cards")
     (description "Anki is a program which makes remembering things
@@ -1093,15 +994,15 @@ formats.")
     (arguments
      '(#:tests? #f)) ; no test target
     (native-inputs
-     (list qttools))
+     (list qttools-5))
     (inputs
      (list libeb
            qtbase-5
-           qtmultimedia
-           qtquickcontrols2
-           qtdeclarative
-           qtwebchannel
-           qtwebengine
+           qtmultimedia-5
+           qtquickcontrols2-5
+           qtdeclarative-5
+           qtwebchannel-5
+           qtwebengine-5
            zlib))
     (synopsis "EPWING dictionary reader")
     (description "qolibri is a dictionary viewer for the EPWING dictionary
@@ -1164,16 +1065,109 @@ machine, and more.")
     (arguments
      `(#:import-path "github.com/exercism/cli/exercism"
        #:unpack-path "github.com/exercism/cli"
-       #:install-source? #f))
+       #:install-source? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (bash (string-append out "/etc/bash_completion.d/exercism"))
+                    (fish (string-append
+                            out "/share/fish/vendor_completions.d/exercism.fish"))
+                    (zsh  (string-append out "/share/zsh/site-functions/_exercism")))
+               (mkdir-p (dirname bash))
+               (with-output-to-file bash
+                 (lambda ()
+                   (invoke (string-append out "/bin/exercism") "completion" "bash")))
+               (mkdir-p (dirname fish))
+               (with-output-to-file fish
+                 (lambda ()
+                   (invoke (string-append out "/bin/exercism") "completion" "fish")))
+               (mkdir-p (dirname zsh))
+               (with-output-to-file zsh
+                 (lambda ()
+                   (invoke (string-append out "/bin/exercism") "completion" "zsh")))))))))
     (inputs
-     `(("github.com/blang/semver" ,go-github-com-blang-semver)
-       ("github.com/spf13/cobra" ,go-github-com-spf13-cobra)
-       ("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
-       ("github.com/spf13/viper" ,go-github-com-spf13-viper)
-       ("golang.org/x/net" ,go-golang-org-x-net)
-       ("golang.org/x/text" ,go-golang-org-x-text)))
-    (home-page "https://exercism.io")
+     (list go-github-com-blang-semver
+           go-github-com-spf13-cobra
+           go-github-com-spf13-pflag
+           go-github-com-spf13-viper
+           go-golang-org-x-net
+           go-golang-org-x-text))
+    (home-page "https://exercism.org/")
     (synopsis "Mentored learning for programming languages")
     (description "Commandline client for exercism.io, a free service providing
 mentored learning for programming languages.")
     (license license:expat)))
+
+(define-public mazo
+  (package
+    (name "mazo")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/luis-felipe/mazo.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "06246380i5rxycniwg5syn0aldd2zy10cbqk1lgyc0qfqb2lyrwj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:use-setuptools? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (let* ((out (assoc-ref outputs "out"))
+                      (home (string-append out "/tmp")))
+                 (add-installed-pythonpath inputs outputs)
+                 (setenv "HOME" home)
+                 (invoke "python3" "manage.py" "test")))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (script (string-append bin "/mazo"))
+                    (share (string-append out "/share"))
+                    (help (string-append share "/help/C/mazo"))
+                    (icons (string-append
+                            share
+                            "/icons/hicolor/scalable/apps"))
+                    (apps (string-append share "/applications"))
+                    (site (string-append
+                           (site-packages inputs outputs)
+                           "/mazo")))
+               (mkdir-p help)
+               (mkdir-p bin)
+               (copy-file "mazo.py" script)
+               (chmod script #o555)
+               (install-file "icons/mazo.svg" icons)
+               (install-file "lugare.ulkeva.Mazo.desktop" apps)
+               (copy-recursively "help/C/mazo" help)
+               (copy-recursively "mazo" site)))))))
+    (native-inputs
+     (list python-django
+           python-django-cleanup
+           python-django-svg-image-form-field
+           python-pillow
+           python-pycairo))
+    (propagated-inputs
+     (list gstreamer
+           gtk+
+           python
+           python-django
+           python-django-cleanup
+           python-django-svg-image-form-field
+           python-pillow
+           python-pycairo
+           python-pygobject
+           yelp))
+    (home-page "https://luis-felipe.gitlab.io/mazo/")
+    (synopsis "Memorize concepts using multimedia flash cards")
+    (description "Mazo is a learning application that helps you memorize
+simple concepts using multimedia flash cards and spaced reviews.")
+    (license license:public-domain)))