gnu: r-zellkonverter: Update to 1.6.5.
[jackhill/guix/guix.git] / gnu / packages / education.scm
index 5551fd0..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,7 +177,7 @@ 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
@@ -448,7 +451,7 @@ specialized device.")
 (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
@@ -540,7 +543,7 @@ specialized device.")
                     (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
@@ -562,7 +565,7 @@ specialized device.")
              qtmultimedia-5
              qtsvg-5
              qtwebchannel-5
-             qtwebengine
+             qtwebengine-5
              qtxmlpatterns
              quazip-0
              sdl
@@ -579,7 +582,7 @@ a pen-tablet display and a beamer.")
 (define-public fet
   (package
     (name "fet")
-    (version "6.5.3")
+    (version "6.5.7")
     (source
      (origin
        (method url-fetch)
@@ -588,7 +591,7 @@ a pen-tablet display and a beamer.")
               (list (string-append directory base)
                     (string-append directory "old/" base))))
        (sha256
-        (base32 "030njv53azzw6fn2d5mkxn7hyvyb45yss2y49wxb8bgj3ayv1rgp"))))
+        (base32 "08j5i3dlp290fz142ljn68j8ssi5f3kabs0dd75ig33kms30hjs7"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -807,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
@@ -991,7 +994,7 @@ formats.")
     (arguments
      '(#:tests? #f)) ; no test target
     (native-inputs
-     (list qttools))
+     (list qttools-5))
     (inputs
      (list libeb
            qtbase-5
@@ -999,7 +1002,7 @@ formats.")
            qtquickcontrols2-5
            qtdeclarative-5
            qtwebchannel-5
-           qtwebengine
+           qtwebengine-5
            zlib))
     (synopsis "EPWING dictionary reader")
     (description "qolibri is a dictionary viewer for the EPWING dictionary
@@ -1062,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)))