X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/1524851f58d8d69f6c6e1c6406cf174083bbe82d..c353d0140e2f20fd75c8dc97fe65411337fb259a:/gnu/packages/gl.scm diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 40b756394e..421e946bed 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -8,6 +8,8 @@ ;;; Copyright © 2016 David Thompson ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +32,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -40,11 +43,11 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix download) #:use-module (guix build utils) #:use-module (guix build-system gnu) @@ -217,20 +220,21 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.0.4") + (version "17.2.1") (source (origin (method url-fetch) - (uri (list (string-append "ftp://ftp.freedesktop.org/pub/mesa/" + (uri (list (string-append "https://mesa.freedesktop.org/archive/" + "mesa-" version ".tar.xz") + (string-append "ftp://ftp.freedesktop.org/pub/mesa/" "mesa-" version ".tar.xz") (string-append "ftp://ftp.freedesktop.org/pub/mesa/" version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "0im3ca1vwwmkjf5w761vh7vabr4vrrdxpckr0wm974x18n2xqs8j")) + "07msr6xismw2jq87irwhz7vygvzj6hi38d71paij9zvwh8bmsf3p")) (patches - (search-patches "mesa-fix-32bit-test-failures.patch" - "mesa-wayland-egl-symbols-check-mips.patch" + (search-patches "mesa-wayland-egl-symbols-check-mips.patch" "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) (propagated-inputs @@ -247,32 +251,39 @@ also known as DXTn or DXTC) for Mesa.") `(("expat" ,expat) ("dri2proto" ,dri2proto) ("dri3proto" ,dri3proto) + ("libelf" ,libelf) ;required for r600 when using llvm ("libva" ,(force libva-without-mesa)) ("libxml2" ,libxml2) ;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support ("libxvmc" ,libxvmc) ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - `(("llvm" ,llvm))) + `(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast (_ `())) ("makedepend" ,makedepend) ("presentproto" ,presentproto) ("s2tc" ,s2tc) - ("wayland" ,wayland))) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) (native-inputs `(("pkg-config" ,pkg-config) - ("python" ,python-2))) + ("python" ,python-2) + ("which" ,(@ (gnu packages base) which)))) (arguments `(#:configure-flags '(,@(match (%current-system) - ((or "armhf-linux" "aarch64-linux") - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,svga,swrast,vc4,virgl")) + ("armhf-linux" + ;; TODO: Add etnaviv,imx when libdrm supports etnaviv. + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) + ("aarch64-linux" + ;; TODO: Fix svga driver for aarch64 and armhf. + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio - "--with-egl-platforms=x11,drm,wayland" + "--with-platforms=x11,drm,wayland,surfaceless" "--enable-glx-tls" ;Thread Local Storage, improves performance ;; "--enable-opencl" ;; "--enable-omx" @@ -294,7 +305,7 @@ also known as DXTn or DXTC) for Mesa.") ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") '("--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast" - "--enable-gallium-llvm")) ; default is x86/x86_64 only + "--enable-llvm")) ; default is x86/x86_64 only (_ '("--with-dri-drivers=nouveau,r200,radeon,swrast")))) #:phases @@ -421,7 +432,7 @@ glxgears, glxheads, and glxinfo.") (("/lib64") "/lib"))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "GLEW_PREFIX=" (assoc-ref %outputs "out")) (string-append "GLEW_DEST=" @@ -640,7 +651,7 @@ and visualizations.") (define-public gl2ps (package (name "gl2ps") - (version "1.3.9") + (version "1.4.0") (source (origin (method url-fetch) @@ -649,7 +660,7 @@ and visualizations.") version ".tgz")) (sha256 (base32 - "0h1nrhmkc4qjw2ninwpj2zbgwhc0qg6pdhpsibbvry0d2bzhns4a")))) + "1qpidkz8x3bxqf69hlhyz1m0jmfi9kq24fxsp7rq6wfqzinmxjq3")))) (build-system cmake-build-system) (inputs `(("libpng" ,libpng) @@ -665,6 +676,40 @@ capable of handling intersecting and stretched polygons, as well as non-manifold objects. GL2PS provides many features including advanced smooth shading and text rendering, culling of invisible primitives and mixed vector/bitmap output.") + ;; GL2PS is dual-licenced and can be used under the terms of either. (license (list license:lgpl2.0+ (license:fsf-free "http://www.geuz.org/gl2ps/COPYING.GL2PS" "GPL-incompatible copyleft license"))))) + +(define-public virtualgl + (package + (name "virtualgl") + (version "2.5.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/VirtualGL/virtualgl/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0rnid3hwrry9d5d4m7sygq00xxx976rgk00a3557m9r5kxbmy476")))) + (arguments + `(#:tests? #f ;; no tests are available + #:configure-flags (list "-DVGL_USESSL=1" ;; use OpenSSL + (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") "/lib")))) + (build-system cmake-build-system) + (inputs `(("glu" ,glu) + ("libjpeg-turbo" ,libjpeg-turbo) + ("mesa" ,mesa) + ("openssl" ,openssl))) + (native-inputs `(("pkg-config", pkg-config))) + (home-page "https://www.virtualgl.org") + (synopsis "Redirects 3D commands from an OpenGL application onto a 3D +graphics card") + (description "VirtualGL redirects the 3D rendering commands from OpenGL +applications to 3D accelerator hardware in a dedicated server and displays the +rendered output interactively to a thin client located elsewhere on the +network.") + (license license:wxwindows3.1+)))