gnu: tipp10: Fix description.
[jackhill/guix/guix.git] / gnu / packages / education.scm
CommitLineData
2614de3c
DM
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
9e39ac41 3;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
b84257c0 4;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
2614de3c
DM
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages education)
22 #:use-module (ice-9 regex)
23 #:use-module (gnu packages)
24 #:use-module (gnu packages qt)
25 #:use-module (gnu packages compression)
0ea179fd 26 #:use-module (gnu packages databases)
2614de3c 27 #:use-module (gnu packages gettext)
0ea179fd
RW
28 #:use-module (gnu packages glib)
29 #:use-module (gnu packages gnome)
30 #:use-module (gnu packages gtk)
2614de3c 31 #:use-module (gnu packages perl)
0ea179fd
RW
32 #:use-module (gnu packages pkg-config)
33 #:use-module (gnu packages python)
34 #:use-module (gnu packages sdl)
35 #:use-module (gnu packages texinfo)
36 #:use-module (gnu packages xml)
2614de3c
DM
37 #:use-module ((guix licenses) #:prefix license:)
38 #:use-module (guix packages)
39 #:use-module (guix download)
40 #:use-module (guix svn-download)
41 #:use-module (guix utils)
42 #:use-module (guix build-system gnu)
43 #:use-module (guix build-system cmake)
44 #:use-module (srfi srfi-1))
45
46(define-public stellarium
47 (package
48 (name "stellarium")
49 (version "0.14.2")
50 (source (origin
51 (method url-fetch)
52 (uri (string-append "mirror://sourceforge/stellarium/"
53 "Stellarium-sources/"
54 version "/stellarium-" version ".tar.gz"))
55 (sha256 (base32
56 "1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a"))))
57 (build-system cmake-build-system)
58 (inputs
59 `(("qtbase" ,qtbase)
60 ("zlib" ,zlib)
61 ("qtserialport" ,qtserialport)
62 ("qtscript" ,qtscript)
b94a6ca0 63 ("gettext" ,gettext-minimal)))
2614de3c
DM
64 (native-inputs
65 `(("qtbase" ,qtbase) ;Qt MOC is needed at compile time
66 ("qttools" ,qttools)
67 ("perl" ,perl))) ;for 'pod2man'
68 (arguments
69 `(#:test-target "tests"
70 #:phases (modify-phases %standard-phases
71 (add-before 'check 'set-offscreen-display
72 (lambda _
73 (setenv "QT_QPA_PLATFORM" "offscreen")
74 (setenv "HOME" "/tmp")
75 #t)))))
76 (home-page "http://www.stellarium.org/")
77 (synopsis "3D sky viewer")
78 (description "Stellarium is a planetarium. It shows a realistic sky in
6661db4e
LF
793D, just like what you see with the naked eye, binoculars, or a telescope. It
80can be used to control telescopes over a serial port for tracking celestial
81objects.")
2614de3c 82 (license license:gpl2+)))
0ea179fd
RW
83
84(define-public gcompris
85 (package
86 (name "gcompris")
87 (version "15.10")
88 (source (origin
89 (method url-fetch)
90 (uri (string-append "http://gcompris.net/download/gtk/src/gcompris-"
91 version ".tar.bz2"))
92 (sha256
93 (base32
94 "0f7wa27vvpn9ansp2aald1pajqlx5d51mvj07ba503yvl7i77fka"))))
95 (build-system gnu-build-system)
96 (arguments
97 `(#:configure-flags
98 ;; Use SDL mixer because otherwise GCompris would need an old version
99 ;; of Gstreamer.
100 (list "--enable-sdlmixer"
101 "LDFLAGS=-lgmodule-2.0")
102 #:phases
103 (modify-phases %standard-phases
104 (add-after 'set-paths 'set-sdl-paths
105 (lambda* (#:key inputs #:allow-other-keys)
106 (setenv "CPATH"
107 (string-append (assoc-ref inputs "sdl-mixer")
108 "/include/SDL"))
109 #t)))))
110 (inputs
111 `(("gtk+" ,gtk+-2)
112 ("librsvg" ,librsvg)
113 ("libxml2" ,libxml2)
114 ("sdl-mixer" ,sdl-mixer)
115 ("sqlite" ,sqlite)
116 ("glib:bin" ,glib)
117 ("python" ,python)))
118 (native-inputs
119 `(("intltool" ,intltool)
120 ("texinfo" ,texinfo)
121 ("texi2html" ,texi2html)
122 ("glib:bin" ,glib "bin")
123 ("pkg-config" ,pkg-config)))
124 (home-page "http://gcompris.net")
125 (synopsis "Educational software suite")
126 (description "GCompris is an educational software suite comprising of
127numerous activities for children aged 2 to 10. Some of the activities are
128game orientated, but nonetheless still educational. Below you can find a list
129of categories with some of the activities available in that category.
130
131@enumerate
132@item computer discovery: keyboard, mouse, different mouse gestures, ...
133@item arithmetic: table memory, enumeration, double entry table, mirror image, ...
134@item science: the canal lock, the water cycle, the submarine, electric simulation ...
135@item geography: place the country on the map
136@item games: chess, memory, connect 4, oware, sudoku ...
137@item reading: reading practice
138@item other: learn to tell time, puzzle of famous paintings, vector drawing, cartoon making, ...
139@end enumerate
140")
141 (license license:gpl3+)))
b84257c0
HG
142
143(define-public tipp10
144 (package
145 (name "tipp10")
146 (version "2.1.0")
147 (source (origin
148 (method url-fetch)
149 ;; guix download is not able to handle the download links on the
150 ;; home-page, which use '<meta http-equiv="refresh" …>'
151 (uri (string-append "mirror://debian/pool/main/"
152 "t/tipp10/tipp10_2.1.0.orig.tar.gz"))
153 (sha256
154 (base32
155 "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx"))
156 (patches (search-patches "tipp10-fix-compiling.patch"
157 "tipp10-remove-license-code.patch"))))
158 (build-system cmake-build-system)
159 (arguments
160 `(#:tests? #f ; packages has no tests
161 #:phases
162 (modify-phases %standard-phases
163 (add-after 'unpack 'disable-new-version-check
164 (lambda _
165 ;; Make new version check to default to false.
166 ;; TODO: Remove the checkbox from the dialog and the check itself
167 (substitute* '("widget/settingspages.cpp" "widget/mainwindow.cpp")
168 (("settings.value(\"check_new_version\", true)")
169 "settings.value(\"check_new_version\", false)"))))
170 (replace 'configure
171 (lambda* (#:key outputs #:allow-other-keys)
172 (let ((out (assoc-ref outputs "out")))
173 ;; Make program honor $PREFIX
174 (substitute* "tipp10.pro"
175 (("\\.path = /usr/") (string-append ".path = " out "/")))
176 (substitute* "def/defines.h"
177 (("\"/usr/") (string-append "\"" out "/")))
178 ;; Recreate Makefile
179 (zero? (system* "qmake"))))))))
180 (inputs
181 `(("qt4" ,qt-4)
182 ("sqlite" ,sqlite)))
183 (home-page "https://www.tipp10.com/")
184 (synopsis "Touch typing tutor")
9e39ac41
RW
185 (description "Tipp10 is a touch typing tutor. The ingenious thing about
186the software is its intelligence feature: characters that are mistyped are
187repeated more frequently. Beginners will find their way around right away so
188they can start practicing without a hitch.
b84257c0
HG
189
190Useful support functions and an extensive progress tracker, topical lessons
191and the ability to create your own practice lessons make learning to type
9e39ac41 192easy.")
b84257c0 193 (license license:gpl2)))