From af7e1d89e630bf2a71507da6bcd24f5fbb742f69 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 18 Oct 2024 12:19:17 +0100 Subject: gnu: python-glcontext: Move to python-graphics. * gnu/packages/python-xyz.scm (python-glcontext): Move from here ... * gnu/packages/python-graphics.scm: ... to here. Change-Id: If984a8b0c128df8bcaffae2cce8d9caabda7890b --- gnu/packages/python-graphics.scm | 66 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) (limited to 'gnu/packages/python-graphics.scm') diff --git a/gnu/packages/python-graphics.scm b/gnu/packages/python-graphics.scm index d0b4a1df74e..29b199922c9 100644 --- a/gnu/packages/python-graphics.scm +++ b/gnu/packages/python-graphics.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Adam Kandur -;;; Copyright © 2021 Daniel Meißner ;;; Copyright © 2021 Morgan Smith +;;; Copyright © 2021, 2023 Daniel Meißner ;;; Copyright © 2023 Adam Faiz +;;; Copyright © 2023 Simon Tournier ;;; Copyright © 2024 Sharlatan Hellseher (define-module (gnu packages python-graphics) @@ -11,6 +12,7 @@ #:use-module (guix build-system pyproject) #:use-module (guix download) #:use-module (guix gexp) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages audio) @@ -35,6 +37,68 @@ ;;; ;;; Code: +(define-public python-glcontext + (let (;; Upstream is known for abusing mutable tag, hence pinpoint the + ;; relevant commit. + (revision "2") + (commit "f2875abdb18b24e785c3958cc22845c81725d5cd")) + (package + (name "python-glcontext") + (version (git-version "3.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moderngl/glcontext") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15pngnc4agdvm8crq782vjlb5v1qrclln5xpqiyhz3jhmipsqb8q")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'fix-lib-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((mesa (assoc-ref inputs "mesa")) + (libx11 (assoc-ref inputs "libx11"))) + (substitute* '("glcontext/x11.cpp" + "glcontext/egl.cpp") + (("\"libGL.so\"") + (string-append "\"" mesa "/lib/libGL.so\"")) + (("\"libEGL.so\"") + (string-append "\"" mesa "/lib/libEGL.so\"")) + (("\"libX11.so\"") + (string-append "\"" libx11 "/lib/libX11.so\""))) + (substitute* '("glcontext/__init__.py") + (("find_library\\('GL'\\)") + (string-append "'" mesa "/lib/libGL.so'")) + (("find_library\\('EGL'\\)") + (string-append "'" mesa "/lib/libEGL.so'")) + (("find_library\\(\"X11\"\\)") + (string-append "'" libx11 "/lib/libX11.so'")))))) + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "tests"))))))) + (inputs + (list libx11 + mesa)) + (native-inputs + (list python-psutil + python-pytest + xorg-server-for-tests)) + (home-page "https://github.com/moderngl/glcontext") + (synopsis "Portable OpenGL Context for ModernGL") + (description + "Python-glcontext is a library providing an OpenGL implementation for +ModernGL on multiple platforms.") + (license license:expat)))) + (define-public python-pyglet (package (name "python-pyglet") -- cgit v1.3