Subject: [PATCH v2 1/2] gnu: Add python-pyglet.

From: [email-masked]
Date: Fri, 23 Dec 2022 18:08:31 -0500

From: Morgan Smith <[email-masked]>

* gnu/packages/python-xyz.scm (python-pyglet): New variable.
---

I updated the patches with the latest style.  python-pyglet has released a version 2 but printrun doesn't work with that.  Everything still works fine.  I would appreciate a review

 gnu/packages/python-xyz.scm | 58 +++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ee25a2d655..e609507032 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -4973,6 +4973,64 @@ (define-public python-doc8
 text styles of documentation.")
     (license license:asl2.0)))
 
+(define-public python-pyglet
+  (package
+    (name "python-pyglet")
+    (version "1.5.27")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyglet" version ".zip"))
+              (sha256
+               (base32
+                "01ghxgkaiw1m5gp498rd58vl8m5nvbyn95xna7yi0fqz8mky002d"))))
+    (build-system python-build-system)
+    (inputs (list mesa glu freetype fontconfig libx11))
+    (native-inputs (list python-pytest python-pytest-cov python-pillow
+                         xorg-server-for-tests unzip))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'fix-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "pyglet/gl/lib_glx.py"
+                (("'GL'")
+                 (string-append "'"
+                                (search-input-file inputs
+                                                   "lib/libGL.so") "'"))
+                (("'GLU'")
+                 (string-append "'"
+                                (search-input-file inputs
+                                                   "lib/libGLU.so")
+                                "'")))
+              (substitute* "pyglet/font/freetype_lib.py"
+                (("'freetype'")
+                 (string-append "'"
+                                (search-input-file inputs
+                                                   "lib/libfreetype.so") "'")))
+              (substitute* "pyglet/font/fontconfig.py"
+                (("'fontconfig'")
+                 (string-append "'"
+                                (search-input-file inputs
+                                                   "lib/libfontconfig.so") "'")))
+              (substitute* "pyglet/libs/x11/xlib.py"
+                (("'X11'")
+                 (string-append "'"
+                                (search-input-file inputs
+                                                   "lib/libX11.so")
+                                "'")))))
+          (replace 'check
+            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+              (when tests?
+                (add-installed-pythonpath inputs outputs)
+                (system "Xvfb :1 &")
+                (setenv "DISPLAY" ":1")
+                (invoke "pytest" "tests/unit")))))))
+    (home-page "http://pyglet.readthedocs.io/en/latest/")
+    (synopsis "Cross-platform windowing and multimedia library")
+    (description "Cross-platform windowing and multimedia library")
+    (license license:bsd-3)))
+
 (define-public python-pygments
   (package
     (name "python-pygments")
-- 
2.38.1