offload: Exit with code 100 upon build failures.
[jackhill/guix/guix.git] / gnu / packages / gl.scm
CommitLineData
daca8666 1;;; GNU Guix --- Functional package management for GNU
10b4d0f6 2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
e6a9aa36 3;;; Copyright © 2013 Guy Grant <gzg@riseup.net>
daca8666
JG
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages gl)
21 #:use-module ((guix licenses)
22 #:renamer (symbol-prefix-proc 'l:))
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu)
26 #:use-module (guix packages)
200726ed
JD
27 #:use-module (gnu packages bison)
28 #:use-module (gnu packages flex)
29 #:use-module (gnu packages pkg-config)
30 #:use-module (gnu packages python)
daca8666 31 #:use-module (gnu packages xorg)
200726ed 32 #:use-module (gnu packages xml)
daca8666
JG
33 #:use-module (gnu packages fontutils))
34
35(define-public glu
36 (package
37 (name "glu")
38 (version "9.0.0")
39 (source (origin
40 (method url-fetch)
41 (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-"
42 version ".tar.gz"))
43 (sha256
44 (base32 "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3"))))
45 (build-system gnu-build-system)
46 (inputs `(("mesa" ,mesa)))
47 (home-page "http://www.opengl.org/archives/resources/faq/technical/glu.htm")
48 (synopsis "Mesa OpenGL Utility library")
49 (description
50 "GLU, or OpenGL Utility Library provides some higher-level functionality
51not provided by just OpenGL itself. Some of GLU's Features
52include: Scaling of 2D images and creation of mipmap pyramids,
53Transformation of object coordinates into device coordinates and
54vice versa, Support for NURBS surfaces, Support for tessellation
55of concave or bow tie polygonal primitives, Specialty transformation
56matrices for creating perspective and orthographic projections,
57positioning a camera, and selection/picking, Rendering of disk,
58cylinder, and sphere primitives, Interpreting OpenGL error values
59as ASCII text.")
60 (license (l:x11-style "http://directory.fsf.org/wiki/License:SGIFreeBv2"))))
61
62(define-public freeglut
63 (package
64 (name "freeglut")
65 (version "2.8.1")
66 (source (origin
67 (method url-fetch)
68 (uri (string-append "mirror://sourceforge/project/freeglut/freeglut/"
69 version "/freeglut-" version ".tar.gz"))
70 (sha256
71 (base32 "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x"))))
72 (build-system gnu-build-system)
73 (inputs `(("mesa" ,mesa)
74 ("libx11" ,libx11)
75 ("libxi" ,libxi)
76 ("libxrandr" ,libxrandr)
77 ("libxxf86vm" ,libxxf86vm)
78 ("inputproto" ,inputproto)
79 ("xinput" ,xinput)
80 ("glu" ,glu)))
81 (home-page "http://freeglut.sourceforge.net/")
82 (synopsis "Alternative to the OpenGL Utility Toolkit (GLUT)")
83 (description
84 "Freeglut is a completely Free/OpenSourced alternative to
85the OpenGL Utility Toolkit (GLUT) library. GLUT was originally
86written by Mark Kilgard to support the sample programs in the
87second edition OpenGL 'RedBook'. Since then, GLUT has been used
88in a wide variety of practical applications because it is simple,
89widely available and highly portable.
90
91GLUT (and hence freeglut) allows the user to create and manage windows
92containing OpenGL contexts on a wide range of platforms and also read
93the mouse, keyboard and joystick functions. freeglut is released under
94the X-Consortium license.")
95 (license l:x11)))
96
97(define-public ftgl
98 (package
99 (name "ftgl")
100 (version "2.1.3-rc5")
101 (source (origin
102 (method url-fetch)
103 (uri (string-append "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/ftgl-"
104 version ".tar.gz"))
105 (sha256
106 (base32 "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l"))))
107 (build-system gnu-build-system)
108 (inputs `(("freetype" ,freetype)
109 ("libx11" ,libx11)
110 ("mesa" ,mesa)
111 ("glu" ,glu)))
112 (home-page "http://ftgl.sourceforge.net")
113 (synopsis "Font rendering library for OpenGL applications")
114 (description
115 "FTGL is a font rendering library for OpenGL applications. Supported
116rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines,
117Polygon meshes, and Extruded polygon meshes")
118 (license l:x11)))
200726ed
JD
119
120(define-public mesa
121 (package
122 (name "mesa")
123 ;; In newer versions (9.0.5, 9.1 and 9.2 tested), "make" results in an
124 ;; infinite configure loop, see
125 ;; https://bugs.freedesktop.org/show_bug.cgi?id=58812
126 (version "8.0.5")
127 (source
128 (origin
129 (method url-fetch)
130 (uri (string-append
131 "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/"
132 version
133 "/MesaLib-" version
134 ".tar.bz2"))
135 (sha256
136 (base32
137 "0pjs8x51c0i6mawgd4w03lxpyx5fnx7rc8plr8jfsscf9yiqs6si"))))
138 (build-system gnu-build-system)
139 (propagated-inputs
140 `(("glproto" ,glproto)
141 ("libdrm" ,libdrm-2.4.33)
8bb1699b 142 ("libx11" ,libx11)
200726ed
JD
143 ("libxdamage" ,libxdamage)
144 ("libxxf86vm" ,libxxf86vm)))
145 (inputs
146 `(("dri2proto" ,dri2proto)
147 ("expat" ,expat)
200726ed
JD
148 ("libxfixes" ,libxfixes)
149 ("libxml2" ,libxml2)
150 ("makedepend" ,makedepend)))
151 (native-inputs
152 `(("pkg-config" ,pkg-config)
153 ("flex" ,flex)
154 ("bison" ,bison)
155 ("python" ,python-2))) ; incompatible with Python 3 (print syntax)
156 (arguments
157 `(#:configure-flags
158 `("--with-gallium-drivers=r600,svga,swrast") ; drop r300 from the default list as it requires llvm
159 #:phases
160 (alist-cons-after
161 'unpack 'remove-symlink
162 (lambda* (#:key #:allow-other-keys)
163 ;; remove dangling symlink to /usr/include/wine/windows
164 (delete-file "src/gallium/state_trackers/d3d1x/w32api"))
165 %standard-phases)))
166 (home-page "http://mesa3d.org/")
167 (synopsis "Mesa, an OpenGL implementation")
168 (description "Mesa is a free implementation of the OpenGL specification -
169a system for rendering interactive 3D graphics. A variety of device drivers
170allows Mesa to be used in many different environments ranging from software
171emulation to complete hardware acceleration for modern GPUs.")
172 (license l:x11)))