gnu: Add gcompris-qt.
[jackhill/guix/guix.git] / gnu / packages / education.scm
index 14c1bac..b600c2e 100644 (file)
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +29,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (guix build-system cmake)
   #:use-module (srfi srfi-1))
 
-(define-public stellarium
-  (package
-    (name "stellarium")
-    (version "0.14.2")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://sourceforge/stellarium/"
-                                 "Stellarium-sources/"
-                                 version "/stellarium-" version ".tar.gz"))
-             (sha256 (base32
-                      "1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a"))))
-    (build-system cmake-build-system)
-    (inputs
-      `(("qtbase" ,qtbase)
-        ("zlib" ,zlib)
-        ("qtserialport" ,qtserialport)
-        ("qtscript" ,qtscript)
-        ("gettext" ,gnu-gettext)))
-    (native-inputs
-      `(("qtbase" ,qtbase)                   ;Qt MOC is needed at compile time
-        ("qttools" ,qttools)
-        ("perl" ,perl)))                          ;for 'pod2man'
-    (arguments
-      `(#:test-target "tests"
-        #:phases (modify-phases %standard-phases
-                   (add-before 'check 'set-offscreen-display
-                     (lambda _
-                       (setenv "QT_QPA_PLATFORM" "offscreen")
-                       (setenv "HOME" "/tmp")
-                       #t)))))
-    (home-page "http://www.stellarium.org/")
-    (synopsis "3D sky viewer")
-    (description "Stellarium is a planetarium.  It shows a realistic sky in
-3D, just like what you see with the naked eye, binoculars, or a telescope.  It
-can be used to control telescopes over a serial port for tracking celestial
-objects.")
-    (license license:gpl2+)))
-
 (define-public gcompris
   (package
     (name "gcompris")
@@ -138,3 +103,99 @@ of categories with some of the activities available in that category.
 @end enumerate
 ")
     (license license:gpl3+)))
+
+(define-public gcompris-qt
+  (package
+    (name "gcompris-qt")
+    (version "0.70")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://gcompris.net/download/qt/src/gcompris-qt-"
+               version ".tar.xz"))
+        (sha256
+         (base32
+          "01r7i8dmwb2nlfyp0y0mzs8yydmvn5gq7xn1w7g21lysak1mliwa"))))
+    (build-system cmake-build-system)
+    (arguments
+      ;; Qml_box2d is unmaintained and not actually required for building
+     '(#:configure-flags (list "-DQML_BOX2D_MODULE=disabled")
+       #:tests? #f)) ; no test target
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("gettext" ,gettext-minimal)
+       ("perl" ,perl)))
+    (inputs
+     `(("python-2" ,python-2)
+       ("qt" ,qt))) ; Cannot find qtquick at runtime with modular qt.
+    (home-page "http://gcompris.net/index-en.html")
+    (synopsis "Educational games for small children")
+    (description
+     "Gcompris offers a large collection of educational games for small
+children, designed to be a unified interface to integrate more educational
+games.  Language-oriented games contain vocabulary, sounds, and voices for
+many different languages.
+Currently available boards include:
+@enumerate
+@item learning how to use a mouse and keyboard
+@item learning simple arithmetic
+@item learning how to read an analog clock
+@item recognize letters after hearing their names
+@item reading practice
+@item small games (memory games, jigsaw puzzles, ...)
+@end enumerate\n")
+    (license license:gpl3+)))
+
+(define-public tipp10
+  (package
+    (name "tipp10")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              ;; guix download is not able to handle the download links on the
+              ;; home-page, which use '<meta http-equiv="refresh" …>'
+              (uri (string-append "mirror://debian/pool/main/"
+                                  "t/tipp10/tipp10_2.1.0.orig.tar.gz"))
+              (sha256
+               (base32
+                "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx"))
+              (patches (search-patches "tipp10-fix-compiling.patch"
+                                       "tipp10-remove-license-code.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; packages has no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-new-version-check
+           (lambda _
+             ;; Make new version check to default to false.
+             ;; TODO: Remove the checkbox from the dialog and the check itself
+             (substitute* '("widget/settingspages.cpp" "widget/mainwindow.cpp")
+               (("settings.value(\"check_new_version\", true)")
+                "settings.value(\"check_new_version\", false)"))
+             #t))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; Make program honor $PREFIX
+               (substitute* "tipp10.pro"
+                 (("\\.path = /usr/") (string-append ".path = " out "/")))
+               (substitute* "def/defines.h"
+                 (("\"/usr/") (string-append "\"" out "/")))
+               ;; Recreate Makefile
+               (zero? (system* "qmake"))))))))
+    (inputs
+     `(("qt4" ,qt-4)
+       ("sqlite" ,sqlite)))
+    (home-page "https://www.tipp10.com/")
+    (synopsis "Touch typing tutor")
+    (description "Tipp10 is a touch typing tutor.  The ingenious thing about
+the software is its intelligence feature: characters that are mistyped are
+repeated more frequently.  Beginners will find their way around right away so
+they can start practicing without a hitch.
+
+Useful support functions and an extensive progress tracker, topical lessons
+and the ability to create your own practice lessons make learning to type
+easy.")
+    (license license:gpl2)))