Subject: [bug#66013] [PATCH 3/4] gnu: python-glcontext: Update to 2.4.0-0.beebc1f.

From: Simon Tournier <[email-masked]>
Date: Fri, 15 Sep 2023 21:10:39 +0200

* gnu/packages/python-xyz.scm (python-glcontext): Explicitly refer to commit
instead of mutable Git tag.
---
 gnu/packages/python-xyz.scm | 100 +++++++++++++++++++-----------------
 1 file changed, 52 insertions(+), 48 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2230310a0350..481326b8e162 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -22986,55 +22986,59 @@ (define-public python-pyopengl-accelerate
      "This is the Cython-coded accelerator module for PyOpenGL.")))
 
 (define-public python-glcontext
-  (package
-    (name "python-glcontext")
-    (version "2.4.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/moderngl/glcontext")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0zzpwyqg19y600n09xz07cxk4jimh9vjraszda7g7ipijq6iasac"))))
-    (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 xorg-server-for-tests python-pytest python-psutil))
-    (home-page "https://github.com/moderngl/glcontext")
-    (synopsis "Portable OpenGL Context for ModernGL")
-    (description "Python-glcontext is a library providing an OpenGL
+  (let (;; Upstream is known for abusing mutable tag, hence pinpoint the
+        ;; relevant commit.
+        (revision "0")
+        (commit "beebc1fd08ee850f06f4390be4b280824e383074"))
+    (package
+      (name "python-glcontext")
+      (version (git-version "2.4.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
+                  "0zzpwyqg19y600n09xz07cxk4jimh9vjraszda7g7ipijq6iasac"))))
+      (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 xorg-server-for-tests python-pytest python-psutil))
+      (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)))
+      (license license:expat))))
 
 (define-public python-rencode
   (package
-- 
2.38.1