Subject: "Forgotten" education packages

From: phodina <[email-masked]>
Date: Thu, 01 Dec 2022 21:46:02 +0000

Hi,

as I was upstreaming KDE packages, I had also some education ones like kalzium etc.

By chance I found out there is a branch (commit a640b1fc7249cba5d9961d187e32b290138b2b35, branch wip-kde-education) with these packages. Not sure what happened to the branch so I kindly reused them and here they are updated.

The ones prefixed by ! are not working yet. (khangman, cantor, artikulate)

----
Petr

From 437718442ca758a3857702cecfe5c80aa5df272b Mon Sep 17 00:00:00 2001
From: Yarl Baudig <[email-masked]>
Date: Mon, 21 Nov 2022 15:16:27 +0100
Subject: [PATCH 01/17] gnu: Add texlive-mathdots.

* gnu/packages/tex.scm (texlive-mathdots): New variable.

Signed-off-by: Nicolas Goaziou <[email-masked]>

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 81f74f17df..a600bcae58 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3993,6 +3993,47 @@ (define-public texlive-amsmath
 
 (define-deprecated-package texlive-latex-amsmath texlive-amsmath)
 
+(define-public texlive-mathdots
+  (let ((template
+         (simple-texlive-package
+          "texlive-mathdots"
+          (list "doc/generic/mathdots/"
+                "source/generic/mathdots/"
+                "tex/generic/mathdots/")
+          (base32"1jaffj343p1chdxs2g7s6lpckvihk0jfw22nw0vmijyjxfiy9yg0"))))
+    (package
+      (inherit template)
+      (outputs '("out" "doc"))
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ '())
+          "generic/mathdots")
+         ((#:build-targets _ '())
+          '(list "mathdots.ins"))
+         ((#:phases phases)
+          #~(modify-phases #$phases
+              (add-after 'unpack 'chdir
+                (lambda _
+                  (chdir "source/generic/mathdots")))
+              (replace 'copy-files
+                (lambda* (#:key inputs outputs #:allow-other-keys)
+                  (let ((origin (assoc-ref inputs "source"))
+                        (source (string-append (assoc-ref outputs "out")
+                                               "/share/texmf-dist/source"))
+                        (doc (string-append (assoc-ref outputs "doc")
+                                            "/share/texmf-dist/doc")))
+                    (copy-recursively (string-append origin "/source") source)
+                    (copy-recursively (string-append origin "/doc") doc))))))))
+      (home-page "https://ctan.org/macros/generic/mathdots")
+      (synopsis "Commands to produce dots in math that respect font size")
+      (description
+       "Mathdots redefines @code{\\ddots} and @code{\\vdots}, and defines
+@code{\\iddots}.  The dots produced by @code{\\iddots} slant in the opposite
+direction to @code{\\ddots}.  All the commands are designed to change size
+appropriately in scripts, as well as in response to LaTeX size changing
+commands.  The commands may also be used in plain TeX.")
+      (license license:lppl))))
+
 (define-public texlive-amscls
   (let ((template (simple-texlive-package
                    "texlive-amscls"
-- 
2.38.1

From 574fe79ca5217c08d49f6e5c05575599783da27d Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 12:08:26 +0100
Subject: [PATCH 12/17] gnu: Add klettres.

* gnu/packages/education.scm (klettres): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 7ee74f17af..9152b35d2b 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -1081,6 +1081,51 @@ (define-public klavaro
 language and very flexible regarding to new or unknown keyboard layouts.")
     (license license:gpl3+)))
 
+(define-public klettres
+  (package
+    (name "klettres")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/klettres-" version ".tar.xz"))
+       (sha256
+        (base32 "1j96d76x744mr916jcfacrqj7vsks2xnbnf7rzpsfipm75klhgyp"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list breeze-icons ;; default icon-set
+       kcompletion
+       kconfigwidgets
+       kcoreaddons
+       kcrash
+       kemoticons
+       ki18n
+       knewstuff
+       kwidgetsaddons
+       phonon
+       qtbase-5
+       qtsvg-5))
+    (home-page "https://kde.org/applications/education/org.kde.klettres")
+    (synopsis "Learn the alphabet (in a new language)")
+    (description "KLettres aims to help the user to learn an alphabet in a new
+language and then to learn to read simple syllables.  It is meant to help
+learning the very first sounds of a new language, for children or for adults.
+
+There are currently 25 languages available: Arabian, Brazilian Portuguese,
+Czech, Danish, Dutch, British English, US English, Phonics English, French,
+German, Hebrew, Hungarian, Italian, Kannada, Low Saxon, Malayalam, Norwegian
+Bokmål, Punjabi, Luganda, Romanized Hindi, Russian, Spanish, Slovak, Telugu
+and Ukrainian.  KLettres provides a special user interface and themes for
+younger users.
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public ktouch
   (package
     (name "ktouch")
-- 
2.38.1

From 5cba0c1fa7394ef4d37cb6dde5097e1c358af408 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 20:47:58 +0100
Subject: [PATCH 02/17] gnu: Add analitza.

* gnu/package/education.scm (analitza): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index c0f7778c1c..c09edc4fe4 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020 Prafulla Giri <[email-masked]>
 ;;; Copyright © 2021 Nicolò Balzarotti <[email-masked]>
 ;;; Copyright © 2022 Luis Felipe López Acevedo <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@ (define-module (gnu packages education)
   #:use-module (ice-9 regex)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
@@ -86,6 +88,36 @@ (define-module (gnu packages education)
   #:use-module (guix build-system trivial)
   #:use-module (srfi srfi-1))
 
+(define-public analitza
+  (package
+    (name "analitza")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/analitza-" version ".tar.xz"))
+       (sha256
+        (base32 "08m9alxzwflhklizwi87z42jm2p188v48b7y81ki5rh9as76r2xc"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list eigen
+           extra-cmake-modules
+           qttools-5))
+    (inputs
+     (list oxygen-icons ;; default icon set
+           qtbase-5
+           qtdeclarative-5
+           qtsvg-5))
+    (home-page "https://invent.kde.org/education/analitza")
+    (synopsis "Library to add mathematical features to your program")
+    (description "This library is used by KAlgebra and may be used by other
+software to parse and work with mathematical expressions.
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public gcompris
   (package
     (name "gcompris")
-- 
2.38.1

From 9c5ac87dff681c4500a947905eb9d5be10b26280 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:42:20 +0100
Subject: [PATCH 04/17] gnu: Add kalgebra.

* gnu/packages/education.scm (kalgebra): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 66fa35abb8..1e978894b7 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -45,6 +45,8 @@ (define-module (gnu packages education)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages golang)
@@ -694,6 +696,50 @@ (define-public fet
 hours.")
     (license license:agpl3+)))
 
+(define-public kalgebra
+  (package
+    (name "kalgebra")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kalgebra-" version ".tar.xz"))
+      (sha256
+       (base32 "054d7kjk1n2z506iwjjp3d93y0zz4xa5rmmapg9zax0acag33lfh"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list analitza
+           kconfigwidgets
+           ki18n
+           kio
+           kirigami
+           kwidgetsaddons
+           mesa
+           ncurses
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtdeclarative-5
+           qtgraphicaleffects
+           qtquickcontrols2-5
+           qtsvg-5
+           qtwebengine-5
+           readline))
+    (home-page "https://kde.org/applications/education/org.kde.kalgebra")
+    (synopsis "Algebraic graphing calculator")
+    (description "KAlgebra is an application that can replace your graphing
+calculator.  It has numerical, logical, symbolic, and analysis features that
+let you calculate mathematical expressions on the console and graphically plot
+the results in 2D or 3D.  KAlgebra is rooted in the Mathematical Markup
+Language (MathML); however, one does not need to know MathML to use KAlgebra.
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public klavaro
   (package
     (name "klavaro")
-- 
2.38.1

From bfb457d99fca7214e5f6cae09948688bfff3fbda Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:49:27 +0100
Subject: [PATCH 07/17] gnu: Add kanagram.

* gnu/packages/education.scm (kanagram): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index ba9b34c79a..d613033db3 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -798,6 +798,52 @@ (define-public kalzium
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
 
+(define-public kanagram
+  (package
+    (name "kanagram")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kanagram-" version ".tar.xz"))
+       (sha256
+        (base32 "1bx5ns6a1rz3f433drlhzsphsxqrwnvxl6bx09jhldccx42p3a3y"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdeclarative
+           ki18n
+           kio
+           knewstuff
+           libkeduvocdocument
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtdeclarative-5
+           qtmultimedia-5
+           qtquickcontrols-5
+           qtspeech
+           sonnet))
+    (home-page "https://kde.org/applications/education/org.kde.kanagram")
+    (synopsis "Letter order game")
+    (description "Kanagram is a game based on anagrams of words: the puzzle is
+solved when the letters of the scrambled word are put back in the correct
+order.  There is no limit on either time taken, or the amount of attempts to
+solve the word.  It features several included word lists, a hints-and-cheats
+help system, a word list editor, and allows for updating and distributing
+wordlists via KNewStuff.  The interface is scalable and appropriate for
+children.
+
+This package is part of the KDE education module")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public libkeduvocdocument
   (package
     (name "libkeduvocdocument")
-- 
2.38.1

From 2197051e07941288338ceedf3abd4ddabbf2c165 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:19:49 +0100
Subject: [PATCH 15/17] !gnu: Add artikulate.

* gnu/packages/education.scm (artikulate): New variable.

Patch libsound/src/outputdevicecontroller.cpp.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index c81feb2b3a..e375b619e9 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -1,10 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <[email-masked]>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <[email-masked]>
-;;; Copyright © 2016 Hartmut Goebel <[email-masked]>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2018-2022 Nicolas Goaziou <[email-masked]>
+;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <[email-masked]>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2020 Robert Smith <[email-masked]>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <[email-masked]>
 ;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
@@ -95,6 +98,42 @@ (define-module (gnu packages education)
   #:use-module (guix build-system trivial)
   #:use-module (srfi srfi-1))
 
+(define-public artikulate
+  (package
+    (name "artikulate")
+    (version "22.04.3")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://kde/stable/release-service/" version
+                          "/src/artikulate-" version ".tar.xz"))
+      (sha256
+       (base32 "0qls3xdv01a65c7l84hrw80gs5vi9mfbqj00lbznnvpgh66s1ar3"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list karchive
+           kconfig
+           kcrash
+           ki18n
+           kirigami
+           knewstuff
+           kxmlgui
+           libvorbis
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtdeclarative-5
+           qtmultimedia-5
+           qtxmlpatterns))
+    (home-page "https://kde.org/applications/education/org.kde.artikulate")
+    (synopsis "Learning software to improve pronunciation skills")
+    (description "Artikulate is a learning software that helps improving
+pronunciation skills by listening to native speakers.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public analitza
   (package
     (name "analitza")
-- 
2.38.1

From 26e56c9e071bcfeca7d69d70136ea4b65d779b9c Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:37:34 +0100
Subject: [PATCH 16/17] !gnu: Add cantor.

* gnu/packages/education.scm (cantor): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index e375b619e9..fea0ee5190 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -34,6 +34,7 @@
 (define-module (gnu packages education)
   #:use-module (ice-9 regex)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages astronomy)
@@ -60,10 +61,16 @@ (define-module (gnu packages education)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
+  #:use-module (gnu packages julia)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages markup)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages pdf)
@@ -77,6 +84,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages statistics)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
@@ -202,6 +210,72 @@ (define-public blinken
 the sequence of lights in the correct order, they advance to the next stage,
 where an identical sequence with one extra step is presented.
 
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public cantor
+  (package
+    (name "cantor")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/cantor-" version ".tar.xz"))
+      (sha256
+       (base32 "007x06fi9wbw7f0bwry8aj5khynma3zw5gmllwz1lgn3zhpxqih3"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+       kdoctools
+       pkg-config
+       qttools-5))
+    (inputs
+     (list karchive
+           kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           ki18n
+           kiconthemes
+           kio
+           knewstuff
+           kparts
+           kpty
+           ksyntaxhighlighting
+           ktexteditor
+           ktextwidgets
+           kxmlgui
+           libuv
+           oxygen-icons ;; default icon set
+           poppler-qt5
+           qtbase-5
+           qtdeclarative-5
+           qtsvg-5
+           qtwebchannel-5
+           qtwebengine-5
+           qtxmlpatterns
+           shared-mime-info
+           ; optional:
+           discount
+           libspectre
+           ; back-ends:
+           analitza
+           gmp  ;; for libqalculate
+           julia
+           libqalculate
+           luajit
+           mpfr  ;; for libqalculate
+           python))
+       ;; TODO: ("r" ,r) ; also requires gfortran
+    (home-page "https://kde.org/applications/education/org.kde.cantor")
+    (synopsis "Front-end for doing Mathematics and Scientific Computing")
+    (description "Cantor is a front-end to powerful mathematics and
+statistics packages.  Cantor integrates them into the KDE Platform and provides
+a nice, worksheet-based, graphical user interface.  It supports environments
+for KAlgebra, Lua, Maxima, R, Sage, Octave, Python, Scilab, and Qalculate!
+
 This package is part of the KDE education module.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
-- 
2.38.1

From e4c6f292ae18962ff29fcfa72c1dc8d96573337b Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:57:10 +0100
Subject: [PATCH 17/17] !gnu: Add khangman.

* gnu/packages/education.scm (khangman): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index fea0ee5190..4a4fa6aa0e 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -1070,7 +1070,51 @@ (define-public kgeography
 @item The game tells you a map division name and you have to guess its flag
 @item The game shows an empty map and you have to place divisions on it one by one
 @end itemize
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
 
+(define-public khangman
+  (package
+    (name "khangman")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/khangman-" version ".tar.xz"))
+       (sha256
+        (base32 "00xanpzkd7r41bn5pp44jnyvwvdygsx7j6l454pp32m8a2d9iala"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kcompletion
+       kconfig
+       kconfigwidgets
+       kcoreaddons
+       kcrash
+       kdeclarative
+       ki18n
+       kio
+       knewstuff
+       knotifications
+       kxmlgui
+       libkeduvocdocument
+       oxygen-icons ;; default icon set
+       qtbase-5
+       qtdeclarative-5
+       qtsvg-5))
+    (home-page "https://kde.org/applications/education/org.kde.khangman")
+    (synopsis "Classical hangman game")
+    (description "KHangMan is a game based on the well-known hangman game.  It
+is aimed at children aged six and over.  The game has several categories of
+words to play with, for example: Animals (animals words) and three difficulty
+categories: Easy, Medium and Hard.  A word is picked at random, the letters
+are hidden, and you must guess the word by trying one letter after another.
+Each time you guess a wrong letter, part of a picture of a hangman is drawn.
+You must guess the word before being hanged! You have 10 tries.
 This package is part of the KDE education module.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
@@ -1112,7 +1156,6 @@ (define-public kig
 and all elements can be modified directly by using the mouse.  Kig helps
 teachers and students to make conjectures and to understand how to prove
 geometric theorems.
-
 This package is part of the KDE education module.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
-- 
2.38.1

From e82b521f0a8897b2a85dfa3c790a45a90008236e Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:59:56 +0100
Subject: [PATCH 10/17] gnu: Add kig.

* gnu/packages/education.scm (kig): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 2339993853..6502be7451 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -35,6 +35,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages chemistry)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -955,6 +956,48 @@ (define-public kgeography
 @item The game shows an empty map and you have to place divisions on it one by one
 @end itemize
 
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kig
+  (package
+    (name "kig")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kig-" version ".tar.xz"))
+       (sha256
+        (base32 "0a8cyn6lx6gm23mmsxp12i4wlj55a9naqscxxpfwrya9k30k33b1"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list boost
+           karchive
+           kconfigwidgets
+           kcrash
+           ki18n
+           kiconthemes
+           kparts
+           ktexteditor
+           kxmlgui
+           qtbase-5
+           qtsvg-5
+           qtxmlpatterns))
+    (home-page "https://kde.org/applications/education/org.kde.kig")
+    (synopsis "Interactive geometry tool")
+    (description "Kig is an interactive mathematics software for learning and
+teaching geometry.  It allows to explore mathematical figures and concepts
+using the computer and also can serve as a drawing tool for mathematical
+figures.  Constructions can be made with points, vectors, lines, and polygons
+and all elements can be modified directly by using the mouse.  Kig helps
+teachers and students to make conjectures and to understand how to prove
+geometric theorems.
+
 This package is part of the KDE education module.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
-- 
2.38.1

From c523beff6d5377e52b365d006d5040d47d58597f Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 12:03:42 +0100
Subject: [PATCH 11/17] gnu: Add kiten.

* gnu/packages/education.scm (kiten): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 6502be7451..7ee74f17af 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -1002,6 +1002,62 @@ (define-public kig
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
 
+(define-public kiten
+  (package
+    (name "kiten")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kiten-" version ".tar.xz"))
+       (sha256
+        (base32 "1ayf2nz1vrcvvq25wcpg4749icp99749fpwwqhrksmqcy9zn4473"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list karchive
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           khtml
+           ki18n
+           kio
+           kjs
+           knotifications
+           kparts
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase))
+    (home-page "https://kde.org/applications/education/org.kde.kiten")
+    (synopsis "Japanese reference and learning tool")
+    (description "Kiten is a Japanese reference and study tool.  It features
+an English to Japanese and Japanese to English dictionary, as well as a Kanji
+dictionary.  For the Kanji dictionary there are multiple ways supported to
+look up characters.
+
+Kiten features:
+@itemize
+@item Search with english keyword, Japanese reading, or a Kanji string on a
+      list of EDICT files.
+@item Search with english keyword, Japanese reading, number of strokes, grade
+      number, or a Kanji on a list of KANJIDIC files.
+@item Limit searches to only common entries.
+@item Nested searches of results possible.
+@item Learning dialog. (One can even open up multiple ones and have them sync
+      between each other.)
+@item Browse Kanji by grade.
+@item Add Kanji to a list for later learning.
+@item Browse list, and get quizzed on them.
+@end itemize
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public klavaro
   (package
     (name "klavaro")
-- 
2.38.1

From 4f20b9aac2ff2bf3d52b38db2144eb01a0903104 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:27:10 +0100
Subject: [PATCH 03/17] gnu: Add blinken.

* gnu/packages/education.scm (blinken): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index c09edc4fe4..66fa35abb8 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -118,6 +118,48 @@ (define-public analitza
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
 
+(define-public blinken
+  (package
+    (name "blinken")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/blinken-" version ".tar.xz"))
+       (sha256
+        (base32 "0rq4f1s7kb3gfsxs9fnhrgdsrmlw5746bh5720m84mp6nafpvd37"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kauth
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kguiaddons
+           ki18n
+           kxmlgui
+           oxygen-icons ;; default icon set
+           phonon
+           qtbase-5
+           qtsvg-5))
+    (home-page "https://kde.org/applications/education/org.kde.blinken")
+    (synopsis "Simon Says memory game")
+    (description "Blinken is based on an electronic game released in 1978,
+which challenges players to remember sequences of increasing length.  On the
+face of the device, there are 4 different color buttons, each with its own
+distinctive sound.  These buttons light up randomly, creating the sequence
+that the player must then recall.  If the player is successful in remembering
+the sequence of lights in the correct order, they advance to the next stage,
+where an identical sequence with one extra step is presented.
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public gcompris
   (package
     (name "gcompris")
-- 
2.38.1

From e01e88a73f9ba6ddeaecaac910e863e35008e32a Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:54:28 +0100
Subject: [PATCH 09/17] gnu: Add kgeography.

* gnu/packages/education.scm (kgeography): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 454ef46248..2339993853 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -910,6 +910,55 @@ (define-public libkeduvocdocument
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
 
+(define-public kgeography
+  (package
+    (name "kgeography")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kgeography-" version ".tar.xz"))
+       (sha256
+        (base32 "02a4xz4xh11gl1fhq5dbh7d5i2hvm8kxm9r4kmrjv5hryv9n732s"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kauth
+           kcodecs
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           ki18n
+           kiconthemes
+           kitemviews
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase))
+    (home-page "hhttps://kde.org/applications/education/org.kde.kgeography")
+    (synopsis "Geography Trainer")
+    (description "KGeography is a geography learning tool, which allows you to
+learn about the political divisions of some countries (divisions, capitals of
+those divisions and their associated flags if there are some).
+
+Features:
+@itemize
+@item Browse the maps clicking in a map division to see its name, capital and flag
+@item The game tells you a map division name and you have to click on it
+@item The game tells you a capital and you have to guess the division it belongs to
+@item The game tells you a division and you have to guess its capital
+@item The game shows you a map division flag and you have to guess its name
+@item The game tells you a map division name and you have to guess its flag
+@item The game shows an empty map and you have to place divisions on it one by one
+@end itemize
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public klavaro
   (package
     (name "klavaro")
-- 
2.38.1

From 156c4c95292989c043b3eca2c1970e6a3a9cc0b5 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 12:17:58 +0100
Subject: [PATCH 13/17] gnu: Add kmplot.

* gnu/packages/education.scm (kmplot): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 9152b35d2b..201d7c4f5e 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -1126,6 +1126,52 @@ (define-public klettres
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
 
+(define-public kmplot
+  (package
+    (name "kmplot")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kmplot-" version ".tar.xz"))
+       (sha256
+        (base32 "0k8n3jjj30hzcp3kmi1ygi36bv3zkgnwrv5xbxf40k62x3v32rdq"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kcrash
+           kdbusaddons
+           kdelibs4support
+           kguiaddons
+           ki18n
+           kparts
+           kwidgetsaddons
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtsvg-5))
+    (home-page "https://kde.org/applications/education/org.kde.kmplot")
+    (synopsis "Mathematical function plotter")
+    (description "KmPlot is a powerful mathematical plotter, capable of
+plotting multiple functions simultaneously and combining them into new
+functions.
+
+Cartesian, parametric, and differential functions are supported, as well as
+functions using polar coordinates.  Plots are printed with high precision at
+the correct aspect ratio.  The graphs can be colorized and the view is
+configurable, is scalable, and can be zoomed.
+
+KmPlot also provides numerical and visual features such as filling and
+calculating the area between the plot and the first axis, finding maxima and
+minima, changing function parameters dynamically, and plotting derivatives
+and integral functions.
+
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public ktouch
   (package
     (name "ktouch")
-- 
2.38.1

From 6df5934d37226552990f99a5734833378589d43e Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:51:45 +0100
Subject: [PATCH 08/17] gnu: Add kbruch.

* gnu/packages/education.scm (kbruch): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index d613033db3..454ef46248 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -844,6 +844,42 @@ (define-public kanagram
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
 
+(define-public kbruch
+  (package
+    (name "kbruch")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kbruch-" version ".tar.xz"))
+       (sha256
+        (base32 "1r0m9zyxnvnsxv1rys34a8g14ppw5h4nrs9k85wxdbvizp6xnm54"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules
+           kdoctools))
+    (inputs
+     (list kauth
+       kconfig
+       kconfigwidgets
+       kcoreaddons
+       kcrash
+       ki18n
+       kwidgetsaddons
+       kxmlgui
+       oxygen-icons ;; default icon set
+       qtbase-5))
+    (home-page "https://kde.org/applications/education/org.kde.kbruch")
+    (synopsis "Practice calculating with fractions")
+    (description "KBruch is a small program to practice calculating with
+fractions and percentages.  Different exercises are provided for this purpose
+and you can use the learning mode to practice with fractions.  The program
+checks the user's input and gives feedback.
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public libkeduvocdocument
   (package
     (name "libkeduvocdocument")
-- 
2.38.1

From 8130cb7f6788537a6774023b9ccb5d513a3628f4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 1 Dec 2022 12:47:14 +0100
Subject: [PATCH 06/17] gnu: Add libkeduvocdocument.

* gnu/packages/education.scm (libkeduvocdocument): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index d720cf2986..ba9b34c79a 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -798,6 +798,36 @@ (define-public kalzium
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
 
+(define-public libkeduvocdocument
+  (package
+    (name "libkeduvocdocument")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/libkeduvocdocument-" version ".tar.xz"))
+       (sha256
+        (base32 "0cv0gphcmj68f5gn3ffxsvrfc4zng1kxksdqhjbi334kbjabb902"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+        #~(modify-phases %standard-phases
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke "ctest" "-E" "keduvocdocumenttest")))))))
+    (native-inputs
+     (list extra-cmake-modules))
+    (inputs
+     (list karchive ki18n kio))
+    (home-page "https://invent.kde.org/education/libkeduvocdocument")
+    (synopsis "Library to parse, convert, and manipulate KVTML files")
+    (description "This package provides library to parse, convert and
+manipulate KVTML files.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
 (define-public klavaro
   (package
     (name "klavaro")
-- 
2.38.1

From 4fad3d122ba46c2451aae7094e2c7907323a04f4 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 12:21:34 +0100
Subject: [PATCH 14/17] gnu: Add kstars.

* gnu/packages/education.scm (kstars): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 201d7c4f5e..c81feb2b3a 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -33,6 +33,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages astronomy)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
@@ -64,6 +65,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
@@ -1168,6 +1170,73 @@ (define-public kmplot
 minima, changing function parameters dynamically, and plotting derivatives
 and integral functions.
 
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kstars
+  (package
+    (name "kstars")
+    (version "3.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+	   "https://invent.kde.org/education/kstars/-/archive/stable-" version
+	   "/kstars-stable-" version ".tar.gz"))
+       (sha256
+        (base32 "0slrhlr1j8nhs033h7xjfblbs59n89588k48jk77apvc20fi3nav"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases
+        #~(modify-phases %standard-phases
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke "ctest" "-E" "(TestKSUserDB|TestKSPaths)")))))))
+    (native-inputs
+     (list eigen
+           extra-cmake-modules
+           kdoctools
+           pkg-config))
+    (inputs
+     (list ;; TODO: cfitsio building this backend fails
+           kauth
+           kconfig
+           kcrash
+           ki18n
+           kio
+           knewstuff
+           knotifications
+           knotifyconfig
+           kplotting
+           kwidgetsaddons
+           kxmlgui
+           libraw
+           mesa
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtdatavis3d
+           qtdeclarative-5
+           qtkeychain
+           qtlocation
+           qtquickcontrols2-5
+           qtsvg-5
+           qtwebsockets-5
+           wcslib
+           xplanet
+           zlib))
+    ;; TODO: INDI http://www.indilib.org
+    ;; TODO: OpenMP # Needed for LibRaw
+    ;; TODO: AstrometryNet
+    (home-page "https://kde.org/applications/education/org.kde.kstars")
+    (synopsis "Desktop planetarium")
+    (description "KStars provides an accurate graphical simulation of the
+night sky, from any location on Earth, at any date and time.  The display
+includes 130,000 stars, 13,000 deep-sky objects, all 8 planets, the Sun and
+Moon, and thousands of comets and asteroids.  It includes tools for
+astronomical calculations and can control telescopes and cameras.
+
 This package is part of the KDE education module.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
-- 
2.38.1

From 13e062453fbd3ec8eb604dbb47e0362fa21ca41e Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <[email-masked]>
Date: Mon, 2 Dec 2019 11:47:10 +0100
Subject: [PATCH 05/17] gnu: Add kalzium.

* gnu/packages/education.scm (kalzium): New variable.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 1e978894b7..d720cf2986 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -35,6 +35,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages chemistry)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
@@ -59,6 +60,7 @@ (define-module (gnu packages education)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages ocaml)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -736,6 +738,62 @@ (define-public kalgebra
 the results in 2D or 3D.  KAlgebra is rooted in the Mathematical Markup
 Language (MathML); however, one does not need to know MathML to use KAlgebra.
 
+This package is part of the KDE education module.")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kalzium
+  (package
+    (name "kalzium")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/kalzium-" version ".tar.xz"))
+       (sha256
+        (base32 "0h1yk0da6z0y52z1hk5z4x2a22krcgxzg57jc2my2vgbrbhcrh26"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list eigen
+           extra-cmake-modules
+           kdoctools
+           pkg-config))
+    (inputs
+     (list ;; TODO: ("avogadrolibs" ,avogadrolibs)
+       ;; TODO: facile
+           karchive
+           kcodecs
+           kconfig
+           kcoreaddons
+           khtml
+           ki18n
+           kjs
+           kparts
+           kplotting
+           kunitconversion
+           kwidgetsaddons
+           ocaml
+           openbabel
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtscript
+           qtsvg-5
+           solid))
+    (home-page "https://kde.org/applications/education/org.kde.kalzium")
+    (synopsis "Periodic table of chemistry elements")
+    (description "Kalzium is a program that shows you the Periodic Table of
+Elements.
+
+You can use Kalzium to search for information about the elements or to learn
+facts about the periodic table.  It provides an overview of the important
+data (like melting points, electron affinity, electron negativity, electron
+configuration, radii, mass, ionisation energy), an isotope table, and
+different colored views of the periodic table (separation of the different
+blocks, year simulator, temperature simulator).  It contains tools to
+visualize the spectral lines of each element, a molecular weight calculator, a
+3D molecule editor, and an equation solver for stoichiometric problems.
+
 This package is part of the KDE education module.")
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
-- 
2.38.1