;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017, 2018 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages education) #:use-module (ice-9 regex) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages freedesktop)
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-05-13only allow a single injection payload for page, rely on script bags for ↵Wojtek Kosior
complex payloads
2021-05-12rename "bundles" to "bags"Wojtek Kosior
2021-05-12stop using js modulesWojtek Kosior
    (lambda* (#:key inputs #:allow-other-keys) ;; The test suite requires a running X server. (system (string-append (assoc-ref inputs "xorg-server") "/bin/Xvfb :1 &")) (setenv "DISPLAY" ":1") #t)) (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (wrap-program (string-append out "/bin/gcompris-qt") `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (label) (string-append (assoc-ref inputs label) "/lib/qt5/plugins")) '("qtbase" "qtdeclarative" "qtmultimedia" "qtsvg"))) `("QML2_IMPORT_PATH" ":" prefix ,(map (lambda (label) (string-append (assoc-ref inputs label) "/lib/qt5/qml")) '("qtdeclarative" "qtgraphicaleffects" "qtmultimedia" "qtquickcontrols")))) #t)))) #:configure-flags (list "-DQML_BOX2D_MODULE=disabled" "-DBUILD_TESTING=TRUE"))) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("gettext" ,gettext-minimal) ("perl" ,perl) ("qttools" ,qttools) ("xorg-server" ,xorg-server))) (inputs `(("python-2" ,python-2) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols" ,qtquickcontrols) ("qtsensors" ,qtsensors) ("qtsvg" ,qtsvg) ("qtxmlpatterns" ,qtxmlpatterns))) (home-page "https://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 '' (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 (invoke "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))) (define-public snap (package (name "snap") (version "4.2.2.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jmoenig/Snap.git") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "07qyhh4f8gr1fqyvxa2i6lkzaaa0vl12yzllgp81rdil8z8bi976")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils)) (let* ((source (assoc-ref %build-inputs "source")) (out (assoc-ref %outputs "out")) (share (string-append out "/share/snap"))) (copy-recursively source share) ;; Replace the sole minified file in the package. (with-directory-excursion (string-append share "/src") (delete-file "FileSaver.min.js") (symlink (string-append (assoc-ref %build-inputs "js-filesaver") "/share/javascript/FileSaver.min.js") "FileSaver.min.js")) ;; Create a "snap" executable. (let* ((bin (string-append out "/bin")) (script (string-append bin "/snap")) (snap (string-append share "/snap.html")) (bash (string-append (assoc-ref %build-inputs "bash") "/bin/sh")) (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils") "/bin/xdg-open"))) (mkdir-p bin) (call-with-output-file script (lambda (port) (format port "#!~a\n~a '~a'" bash xdg-open snap))) (chmod script #o555))) #t))) (inputs `(("bash" ,bash-minimal) ("js-filesaver" ,js-filesaver) ("xdg-utils" ,xdg-utils))) (home-page "https://snap.berkeley.edu") (synopsis "Visual, blocks based programming language") (description "Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students. This package provides a @command{snap} executable calling @command{xdg-open} to open the application in a web browser, for offline usage.") (license license:agpl3+)))