Subject: [PATCH 2/2] gnu: Add piglit.

From: Liliana Marie Prikler <[email-masked]>
Date: Thu, 25 Jan 2024 10:19:29 +0100

* gnu/packages/gl.scm (piglit): New variable.
---
 gnu/packages/gl.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 35fb1e618c..f8dc8c1d9d 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -1248,3 +1248,55 @@ (define-public waffle
     (description "Waffle is a library that allows one to defer selection of an
  OpenGL API and a window system until runtime.")
     (license license:bsd-2)))
+
+(define-public piglit
+  (let ((revision "1")
+        (commit "814046fe6942eac660ee4a6cc5fcc54011a49945"))
+    (package
+     (name "piglit")
+     (version (git-version "0.0.0" revision commit))
+     (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.freedesktop.org/mesa/piglit")
+                    (commit commit)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1bzaalcxskckfnwprw77sbbmfqi59by2j8imaq8ghnlzhlxv7mk7"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list #:configure-flags #~(list "-DPIGLIT_SSE2=OFF")
+            ;; Tests are not invoked through cmake.  Instead, there are
+            ;; pytest/tox-based tests for the framework, but they require
+            ;; unpackaged plugins.
+            #:tests? #f
+            #:phases
+            #~(modify-phases %standard-phases
+                (add-after 'unpack 'patch-source
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    (substitute* (find-files "framework/" "\\.py$")
+                      (("'wflinfo'")
+                       (string-append "'"
+                                      (search-input-file inputs "/bin/wflinfo")
+                                      "'")))))
+                (add-after 'install 'wrap
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (wrap-script (string-append (assoc-ref outputs "out")
+                                                "/bin/piglit")
+                      `("GUIX_PYTHONPATH" prefix
+                        (,(getenv "GUIX_PYTHONPATH")))))))))
+     (inputs (list guile-3.0            ; for wrap-script
+                   libxkbcommon
+                   python python-lxml python-mako python-numpy
+                   glslang vulkan-headers vulkan-loader
+                   waffle))
+     (native-inputs (list pkg-config))
+     (home-page "https://piglit.freedesktop.org/")
+     (synopsis "Test OpenGL implementations")
+     (description "Piglit is a collection of automated tests for OpenGL and
+OpenCL implementations.")
+     ;; A mix of licenses for various tests
+     (license (list license:expat
+                    license:bsd-3
+                    license:gpl2+
+                    license:gpl3+)))))
-- 
2.41.0