From f0c839eb8a7846ee7c545876a3bea8e6a9489ab1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Feb 2024 22:30:46 +0100 Subject: gnu: Add sugar-physics-activity. * gnu/packages/sugar.scm (sugar-physics-activity): New variable. Change-Id: Ic6b3da1a5ffe0ae177fa6b502d4ab34e84bbf082 --- gnu/packages/sugar.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/sugar.scm b/gnu/packages/sugar.scm index 59d1f13730..5db070a72d 100644 --- a/gnu/packages/sugar.scm +++ b/gnu/packages/sugar.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -728,6 +729,67 @@ looking for why an activity or Sugar is not working properly.") or you can also play with a friend!") (license license:gpl3+))) +(define-public sugar-physics-activity + (let ((commit "cfd17b82b783f1ce4952ccdef6a8ddbe3d8f3e46") + (revision "1")) + (package + (name "sugar-physics-activity") + (version (git-version "35" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sugarlabs/physics") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0yzq4cbgcngf1ayi4bsn04l3mz6pnayd6db9bv0v9xfrpjmffvyk")))) + (build-system python-build-system) + (arguments + (list + #:test-target "check" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-launcher + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "activity/activity.info" + (("exec = sugar-activity3") + (string-append "exec = " + (search-input-file inputs "/bin/sugar-activity3")))))) + (add-after 'unpack 'inject-load-path + (lambda _ + (substitute* "activity.py" + (("^import os") + (string-append "\ +import sys, os +for directory in \"" (getenv "GUIX_PYTHONPATH") "\".split(\":\"): + try: + sys.path.index(directory) + except ValueError: + sys.path.insert(1, directory) +"))))) + (replace 'install + (lambda _ + (setenv "HOME" "/tmp") + (invoke "python" "setup.py" "install" + (string-append "--prefix=" #$output))))))) + ;; All these libraries are accessed via gobject introspection. + (propagated-inputs + (list gtk+ + gdk-pixbuf)) + (inputs + (list python-pybox2d + python-pygame + sugar-toolkit-gtk3 + gettext-minimal)) + (home-page "https://github.com/sugarlabs/physics") + (synopsis "Physical world simulator and playground") + (description "Physics is a physical world simulator and playground---you +can add squares, circles, triangles, or draw your own shapes, and see them +come to life with forces (think gravity, Newton!), friction (scrrrrape), and +inertia (ahh, slow down!).") + (license license:gpl3+)))) + (define-public sugar-read-activity (let ((commit "25f69e41a4fa69d93c73c0c9367b4777a014b1cd") (revision "1")) -- cgit v1.2.3