aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-12-28 00:28:15 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2020-01-28 10:33:30 +0100
commit3450bb81e212187a2c65d7e884668d4fc805ef09 (patch)
tree0b1368e5c1f46903e4050562211b642fd3a08568
parent2fe83ce10fcfc50d49cdafe2d6981adaf4a27d9d (diff)
downloadpatches-3450bb81e212187a2c65d7e884668d4fc805ef09.tar
patches-3450bb81e212187a2c65d7e884668d4fc805ef09.tar.gz
gnu: Add omnitux.
* gnu/packages/education.scm (omnitux): New variable.
-rw-r--r--gnu/packages/education.scm102
1 files changed, 102 insertions, 0 deletions
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index ecb8678b02..7d785233e1 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -485,6 +485,108 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
(home-page "http://www.schoolsplay.org")
(license license:gpl3+)))
+(define-public omnitux
+ (package
+ (name "omnitux")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/omnitux/omnitux/"
+ "v" version "/omnitux-" version ".tar.bz2"))
+ (sha256
+ (base32 "1wmmmbzmxd0blhn00d4g91xwavnab143a31ca3i8hrqgzh6qz9w6"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove pre-compiled .pyc files from source.
+ (for-each delete-file (find-files "bin" "\\.pyc$"))
+ #t))))
+ (build-system python-build-system)
+ (inputs
+ `(("python2-pygame" ,python2-pygame)
+ ("python2-pygtk" ,python2-pygtk)))
+ (arguments
+ `(#:tests? #f ;no test
+ #:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build) ;no setup.py
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (data (string-append share "/omnitux")))
+ ;; Install documentation.
+ (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+ (for-each (lambda (f) (install-file f doc))
+ '("LICENSE.txt" "README.txt")))
+ ;; Install data.
+ (install-file "omnitux.sh" data)
+ (for-each (lambda (d)
+ (copy-recursively d (string-append data "/" d)))
+ '("bin" "data"))
+ ;; Install the launcher.
+ (let* ((bin (string-append out "/bin"))
+ (script (string-append bin "/omnitux"))
+ (bash (string-append (assoc-ref %build-inputs "bash")
+ "/bin/bash"))
+ (python (string-append (assoc-ref %build-inputs "python")
+ "/bin/python2")))
+ (mkdir-p bin)
+ (with-output-to-file script
+ (lambda ()
+ (format #t "#!~a~%" bash)
+ (format #t
+ "cd ~a; ~a menu.py~%"
+ (string-append data "/bin")
+ python)))
+ (chmod script #o755))
+ ;; Install icon and desktop file.
+ (let ((pixmaps (string-append share "/pixmaps")))
+ (install-file "data/default/icons/Omnitux_logo.svg" pixmaps))
+ (let ((apps (string-append out "/share/applications")))
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/omnitux.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Omnitux~@
+ GenericName=Omnitux
+ Comment=An educational game based on multimedia elements.~@
+ Comment[fr]=Un jeu ludo-éducatif basé sur des éléments multimédias.~@
+ Exec=~a/bin/omnitux~@
+ Type=Application~@
+ Categories=Game;Education;~@
+ Terminal=false~@
+ Icon=Omnitux_logo.svg~@"
+ out))))
+ #t))))))
+ (home-page "http://omnitux.sourceforge.net/")
+ (synopsis "Educational activities based on multimedia elements")
+ (description "The project aims to provide various educational
+activities around multimedia elements (images, sounds, texts). Types
+of activities include:
+@itemize
+@item associations,
+@item items to place on a map or a schema,
+@item counting activities,
+@item puzzles,
+@item card faces to remember,
+@item find differences between two pictures,
+@item ...
+@end itemize
+
+Activities are available in English, French, German, Polish,
+Portuguese, Spanish and Italian.")
+ ;; Project's license is GPL3+, but multimedia elements are
+ ;; released under various licenses.
+ (license (list license:gpl3+
+ license:gpl2+
+ license:cc-by-sa2.0
+ license:cc-by-sa3.0
+ license:public-domain))))
+
(define-public fet
(package
(name "fet")