summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/mesa/autotools-x11-nodri.patch14
-rw-r--r--var/spack/repos/builtin/packages/mesa/glproto-mr806.patch32
-rw-r--r--var/spack/repos/builtin/packages/mesa/meson-expose-glapi-through-osmesa.patch45
-rw-r--r--var/spack/repos/builtin/packages/mesa/package.py107
4 files changed, 68 insertions, 130 deletions
diff --git a/var/spack/repos/builtin/packages/mesa/autotools-x11-nodri.patch b/var/spack/repos/builtin/packages/mesa/autotools-x11-nodri.patch
new file mode 100644
index 0000000000..a88f5f5113
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mesa/autotools-x11-nodri.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index cd9ff25..79bc511 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1859,7 +1859,9 @@ for plat in $platforms; do
+ ;;
+
+ x11)
+- PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
++ if test "x$enable_dri" = "xyes"; then
++ PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
++ fi
+ DEFINES="$DEFINES -DHAVE_X11_PLATFORM"
+ ;;
diff --git a/var/spack/repos/builtin/packages/mesa/glproto-mr806.patch b/var/spack/repos/builtin/packages/mesa/glproto-mr806.patch
deleted file mode 100644
index 9dda290c0a..0000000000
--- a/var/spack/repos/builtin/packages/mesa/glproto-mr806.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/meson.build b/meson.build
-index d975b0d..cbd4a2c 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1387,12 +1387,14 @@ if with_platform_x11
- dep_xshmfence = dependency('xshmfence', version : '>= 1.1')
- endif
- endif
-- if with_glx == 'dri'
-+ if with_glx == 'dri' or with_glx == 'gallium-xlib'
-+ dep_glproto = dependency('glproto', version : '>= 1.4.14')
-+ endif
-+ if with_glx == 'dri'
- if with_dri_platform == 'drm'
- dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
- dep_xxf86vm = dependency('xxf86vm')
- endif
-- dep_glproto = dependency('glproto', version : '>= 1.4.14')
- endif
- if (with_egl or (
- with_gallium_vdpau or with_gallium_xvmc or with_gallium_xa or
-diff --git a/src/gallium/state_trackers/glx/xlib/meson.build b/src/gallium/state_trackers/glx/xlib/meson.build
-index f4ee754..34b93c9 100644
---- a/src/gallium/state_trackers/glx/xlib/meson.build
-+++ b/src/gallium/state_trackers/glx/xlib/meson.build
-@@ -23,5 +23,5 @@ libxlib = static_library(
- files('glx_api.c', 'glx_getproc.c', 'glx_usefont.c', 'xm_api.c', 'xm_st.c'),
- c_args : c_vis_args,
- include_directories : [inc_common, inc_mapi, inc_mesa],
-- dependencies : [dep_x11, dep_xext, dep_xcb],
-+ dependencies : [dep_x11, dep_xext, dep_xcb, dep_glproto],
- )
diff --git a/var/spack/repos/builtin/packages/mesa/meson-expose-glapi-through-osmesa.patch b/var/spack/repos/builtin/packages/mesa/meson-expose-glapi-through-osmesa.patch
deleted file mode 100644
index a61a058a00..0000000000
--- a/var/spack/repos/builtin/packages/mesa/meson-expose-glapi-through-osmesa.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-commit ccb8ea7acfb710c6c5298f3ffcadbe3d79b9b913
-Author: Eric Engestrom <eric.engestrom@intel.com>
-Date: Thu May 2 12:42:48 2019 +0100
-
- meson: expose glapi through osmesa
-
- Suggested-by: Pierre Guillou <pierre.guillou@lip6.fr>
- Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109659
- Fixes: f121a669c7d94d2ff672 "meson: build gallium based osmesa"
- Fixes: cbbd5bb889a2c271a504 "meson: build classic osmesa"
- Cc: Brian Paul <brianp@vmware.com>
- Cc: Dylan Baker <dylan@pnwbakers.com>
- Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
- Tested-by: Chuck Atkins <chuck.atkins@kitware.com>
-
-diff --git a/src/gallium/targets/osmesa/meson.build b/src/gallium/targets/osmesa/meson.build
-index b4ae8f4..e873e31 100644
---- a/src/gallium/targets/osmesa/meson.build
-+++ b/src/gallium/targets/osmesa/meson.build
-@@ -43,9 +43,9 @@ libosmesa = shared_library(
- inc_gallium_drivers,
- ],
- link_depends : osmesa_link_deps,
-- link_whole : [libosmesa_st],
-+ link_whole : [libosmesa_st, libglapi_static],
- link_with : [
-- libmesa_gallium, libgallium, libglapi_static, libws_null, osmesa_link_with,
-+ libmesa_gallium, libgallium, libws_null, osmesa_link_with,
- ],
- dependencies : [
- dep_selinux, dep_thread, dep_clock, dep_unwind,
-diff --git a/src/mesa/drivers/osmesa/meson.build b/src/mesa/drivers/osmesa/meson.build
-index a406bb3..c479b74 100644
---- a/src/mesa/drivers/osmesa/meson.build
-+++ b/src/mesa/drivers/osmesa/meson.build
-@@ -33,7 +33,8 @@ libosmesa = shared_library(
- include_directories : [
- inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux,
- ],
-- link_with : [libmesa_classic, libglapi_static, osmesa_link_with],
-+ link_whole : libglapi_static,
-+ link_with : [libmesa_classic, osmesa_link_with],
- dependencies : [dep_thread, dep_selinux],
- version : '8.0.0',
- install : true,
diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py
index 9336f3cb60..9cc0801dad 100644
--- a/var/spack/repos/builtin/packages/mesa/package.py
+++ b/var/spack/repos/builtin/packages/mesa/package.py
@@ -8,7 +8,7 @@ from spack import *
import sys
-class Mesa(MesonPackage):
+class Mesa(AutotoolsPackage):
"""Mesa is an open-source implementation of the OpenGL specification
- a system for rendering interactive 3D graphics."""
@@ -20,22 +20,19 @@ class Mesa(MesonPackage):
# whatever version of LLVM you're using.
git = "https://gitlab.freedesktop.org/mesa/mesa.git"
- version('develop', branch='master')
- version('19.1.develop', branch='19.1')
- version('19.0.develop', branch='19.0')
- version('19.0.4', tag='mesa-19.0.4', preferred=True)
- version('19.0.3', tag='mesa-19.0.3')
- version('19.0.2', tag='mesa-19.0.2')
- version('19.0.1', tag='mesa-19.0.1')
- version('19.0.0', tag='mesa-19.0.0')
-
- depends_on('meson@0.45:', type='build')
- depends_on('binutils', type='build')
+ version('18.3.6', tag='mesa-18.3.6', preferred=True)
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('binutils', when=(sys.platform != 'darwin'), type='build')
depends_on('bison', type='build')
depends_on('flex', type='build')
depends_on('gettext', type='build')
depends_on('pkgconfig', type='build')
- depends_on('python@3:', type='build')
+ depends_on('python', type='build')
depends_on('py-mako@0.8.0:', type='build')
depends_on('libxml2')
depends_on('zlib')
@@ -77,27 +74,29 @@ class Mesa(MesonPackage):
depends_on('libxext', when='+glx')
depends_on('glproto@1.4.14:', when='+glx', type='build')
- # Fix glproto dependency for glx=gallium-xlib
- # https://gitlab.freedesktop.org/mesa/mesa/merge_requests/806
- # Was included in the upstream patch release for 19.0.4
- patch('glproto-mr806.patch', when='@19.0.0:19.0.3')
+ # Prevent an unnecessary xcb-dri dependency
+ patch('autotools-x11-nodri.patch')
- # Fix missing gl symbols in OSMesa
- # https://bugs.freedesktop.org/show_bug.cgi?id=109659
- patch('meson-expose-glapi-through-osmesa.patch', when='@19.0.0:')
+ def autoreconf(self, spec, prefix):
+ which('autoreconf')('--force', '--verbose', '--install')
- def meson_args(self):
+ def configure_args(self):
spec = self.spec
args = [
- '-Dglvnd=false',
- '-Dgallium-nine=false',
- '-Dgallium-omx=disabled',
- '-Dgallium-opencl=disabled',
- '-Dgallium-va=false',
- '-Dgallium-vdpau=false',
- '-Dgallium-xa=false',
- '-Dgallium-xvmc=false',
- '-Dvulkan-drivers=']
+ '--enable-shared',
+ '--disable-static',
+ '--disable-libglvnd',
+ '--disable-nine',
+ '--disable-omx-bellagio',
+ '--disable-omx-tizonia',
+ '--disable-opencl',
+ '--disable-opencl-icd',
+ '--disable-va',
+ '--disable-vdpau',
+ '--disable-xa',
+ '--disable-xvmc',
+ '--disable-osmesa',
+ '--with-vulkan-drivers=']
args_platforms = []
args_gallium_drivers = ['swrast']
args_dri_drivers = []
@@ -105,49 +104,51 @@ class Mesa(MesonPackage):
num_frontends = 0
if '+osmesa' in spec:
num_frontends += 1
- args.append('-Dosmesa=gallium')
+ args.append('--enable-gallium-osmesa')
else:
- args.append('-Dosmesa=disabled')
+ args.append('--disable-gallium-osmesa')
if '+glx' in spec:
num_frontends += 1
- args.append('-Dglx=gallium-xlib')
+ if '+egl' in spec:
+ args.append('--enable-glx=dri')
+ else:
+ args.append('--enable-glx=gallium-xlib')
args_platforms.append('x11')
else:
- args.append('-Dglx=disabled')
+ args.append('--disable-glx')
if '+egl' in spec:
num_frontends += 1
- args.extend(['-Degl=true', '-Dgbm=true'])
+ args.extend(['--enable-egl', '--enable-gbm', '--enable-dri'])
+ args_platforms.append('surfaceless')
else:
- args.extend(['-Degl=false', '-Dgbm=false'])
+ args.extend(['--disable-egl', '--disable-gbm', '--disable-dri'])
if '+opengl' in spec:
- args.append('-Dopengl=true')
+ args.append('--enable-opengl')
else:
- args.append('-Dopengl=false')
+ args.append('--disable-opengl')
if '+opengles' in spec:
- args.extend(['-Dgles1=true', '-Dgles2=true'])
+ args.extend(['--enable-gles1', '--enable-gles2'])
else:
- args.extend(['-Dgles1=false', '-Dgles2=false'])
-
- if '+egl' in spec or '+osmesa' in spec:
- args_platforms.append('surfaceless')
+ args.extend(['--disable-gles1', '--disable-gles2'])
if num_frontends > 1:
- args.append('-Dshared-glapi=true')
+ args.append('--enable-shared-glapi')
else:
- args.append('-Dshared-glapi=false')
+ args.append('--disable-shared-glapi')
if '+llvm' in spec:
- args.append('-Dllvm=true')
+ args.append('--enable-llvm')
+ args.append('--with-llvm-prefix=%s' % spec['llvm'].prefix)
if '+link_dylib' in spec['llvm']:
- args.append('-Dshared-llvm=true')
+ args.append('--enable-llvm-shared-libs')
else:
- args.append('-Dshared-llvm=false')
+ args.append('--disable-llvm-shared-libs')
else:
- args.append('-Dllvm=false')
+ args.append('--disable-llvm')
args_swr_arches = []
if 'swr=avx' in spec:
@@ -162,11 +163,11 @@ class Mesa(MesonPackage):
if '+llvm' not in spec:
raise SpecError('Variant swr requires +llvm')
args_gallium_drivers.append('swr')
- args.append('-Dswr-arches=' + ','.join(args_swr_arches))
+ args.append('--with-swr-archs=' + ','.join(args_swr_arches))
# Add the remaining list args
- args.append('-Dplatforms=' + ','.join(args_platforms))
- args.append('-Dgallium-drivers=' + ','.join(args_gallium_drivers))
- args.append('-Ddri-drivers=' + ','.join(args_dri_drivers))
+ args.append('--with-platforms=' + ','.join(args_platforms))
+ args.append('--with-gallium-drivers=' + ','.join(args_gallium_drivers))
+ args.append('--with-dri-drivers=' + ','.join(args_dri_drivers))
return args