@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013, 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2019, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@@ -27,6 +27,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -74,7 +75,8 @@
#:use-module (gnu packages sdl)
#:use-module (gnu packages textutils)
#:use-module (gnu packages video)
- #:use-module (gnu packages web))
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xorg))
;;;
;;; Please: Try to add new module packages in alphabetic order.
@@ -7870,6 +7872,67 @@ technology to store hierarchical information such as links to other
documents within a single file.")
(license (package-license perl))))
+(define-public perl-opengl
+ (package
+ (name "perl-opengl")
+ (version "0.70")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/C/CH/CHM/OpenGL-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj"))))
+ (build-system perl-build-system)
+ (inputs `(("mesa" ,mesa) ; TODO: needed?
+ ("glu" ,glu) ; TODO: needed?
+ ("freeglut" ,freeglut) ; TODO: needed?
+ ("libxi" ,libxi)
+ ("libxmu" ,libxmu)))
+ (arguments
+ '(#:tests? #f ; test.pl fails with our empty glversion.txt, while
+ ; the package still seems to work on the examples
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'glversion
+ ;; Building utils/glversion.txt fails, and is probably
+ ;; dependent on the graphics card in the build system.
+ ;; Replace it by a content-free file; while this breaks
+ ;; the tests, the examples in the examples/ subdirectory
+ ;; can be run.
+ (lambda _
+ (substitute* "Makefile.PL"
+ (("unlink") "# unlink") ; prevent utils/glversion.txt
+ ; from being deleted once...
+ (("\\.\"\\$make_ver clean\"") "")) ; ...and twice...
+ (substitute* "utils/Makefile"
+ (("all: glversion.txt") "all: ")) ; ...and thrice.
+ (call-with-output-file "utils/glversion.txt"
+ (lambda (port)
+ (display (string-append "FREEGLUT=\nGLUT=\nVERSION=\n"
+ "VENDOR=\nRENDERER=\n"
+ "EXTENSIONS=\n")
+ port)))
+ #t))
+ (add-before 'configure 'fix-library-flags
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile.PL"
+ (("-L/usr/local/freeglut/lib")
+ (string-concatenate
+ (map (lambda (input)
+ (string-append "-L" (cdr input) "/lib\n"))
+ inputs))))
+ #t)))))
+ (home-page "https://metacpan.org/release/OpenGL")
+ (synopsis
+ "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT")
+ (description "The package provides Perl bindings to OpenGL, GLU
+and FreeGLUT.")
+ (license (package-license perl))))
+
(define-public perl-package-anon
(package
(name "perl-package-anon")