SHA256
1
0
forked from pool/Mesa

Accepting request 565814 from X11:XOrg

- U_intel-Add-more-Coffee-Lake-PCI-IDs.patch
  * Add more Coffeelake PCI IDs (request by Intel)

- Update to 17.3.2
  * Multiple fixes in the RADV Vulkan driver, workaround when using
    slibtool and a GLSL workaround for various titles using Unreal
    Engine 4.
- Drop upstreamed u_r600-Add-support-for-B5G5R5A1.patch
- Modify u_mesa-python3-only.patch to not break python 2.

- Update to 17.3.1
  * Multiple fixes and improvements of the GLSL shader cache. The
    RADV driver no longer advertises VK_EXT_debug_report - there is
    no support for it.
  * The i965, radeonsi, nvc0 and freedreno drivers have received a
    few small fixes each.
  * A number of big endian fixes have been merged.

- Switch to python3 during build instead of python2
  * Add patch u_mesa-python3-only.patch

- Add Mesa-dri and Mesa-gallium to baselibs.conf.
- Require llvm >= 3.9.0
  * The build fails otherwise because it is required for multiple
    Mesa components.

- Drop some redundant wording from descriptions.
  Drop redundant %if guard around a %post section.

- Use different form of split for faster build (bnc#1071297)

OBS-URL: https://build.opensuse.org/request/show/565814
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=309
This commit is contained in:
Dominique Leuenberger 2018-01-16 08:39:12 +00:00 committed by Git OBS Bridge
commit bcfa8ad0bf
15 changed files with 6612 additions and 284 deletions

2
Mesa-drivers-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# Want to allow for multiple vendors
addFilter("shlib-policy-name-error")

4801
Mesa-drivers.changes Normal file

File diff suppressed because it is too large Load Diff

1256
Mesa-drivers.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,77 @@
-------------------------------------------------------------------
Mon Jan 15 15:08:13 UTC 2018 - msrb@suse.com
- U_intel-Add-more-Coffee-Lake-PCI-IDs.patch
* Add more Coffeelake PCI IDs (request by Intel)
-------------------------------------------------------------------
Wed Jan 10 08:28:09 UTC 2018 - msrb@suse.com
- Update to 17.3.2
* Multiple fixes in the RADV Vulkan driver, workaround when using
slibtool and a GLSL workaround for various titles using Unreal
Engine 4.
- Drop upstreamed u_r600-Add-support-for-B5G5R5A1.patch
- Modify u_mesa-python3-only.patch to not break python 2.
-------------------------------------------------------------------
Mon Jan 8 14:44:46 UTC 2018 - msrb@suse.com
- Update to 17.3.1
* Multiple fixes and improvements of the GLSL shader cache. The
RADV driver no longer advertises VK_EXT_debug_report - there is
no support for it.
* The i965, radeonsi, nvc0 and freedreno drivers have received a
few small fixes each.
* A number of big endian fixes have been merged.
-------------------------------------------------------------------
Thu Jan 8 14:26:50 UTC 2018 - tchvatal@suse.com
- Switch to python3 during build instead of python2
* Add patch u_mesa-python3-only.patch
-------------------------------------------------------------------
Mon Jan 8 07:55:49 UTC 2018 - msrb@suse.com
- Add Mesa-dri and Mesa-gallium to baselibs.conf.
- Require llvm >= 3.9.0
* The build fails otherwise because it is required for multiple
Mesa components.
-------------------------------------------------------------------
Fri Jan 5 11:46:52 UTC 2018 - jengelh@inai.de
- Drop some redundant wording from descriptions.
Drop redundant %if guard around a %post section.
-------------------------------------------------------------------
Wed Dec 13 15:13:14 UTC 2017 - msrb@suse.com
- Use different form of split for faster build (bnc#1071297)
* Mesa.spec does not use llvm and builds most of the *-devel
subpackages.
* Mesa-drivers.spec uses llvm and builds extra things installable
in addition to packages from Mesa.spec. These packages are
required for actual rendering.
-------------------------------------------------------------------
Fri Dec 8 16:47:00 UTC 2017 - mimi.vx@gmail.com
- update to 17.3.0
- drop U_configure.ac-rework-llvm-libs-handling-for-3.9.patch
* new major release comitng with changes in RADV, intel ANV,
S3TC support, RadeonSI driver with RX Vega. On-disk shader cache
-------------------------------------------------------------------
Wed Dec 6 12:37:01 UTC 2017 - msrb@suse.com
- Split Mesa into Mesa and Mesa-mini. Mesa-mini does not depend on
llvm and its purpose is to build fast and allow other packages
that BuildRequire Mesa to be build independently on llvm.
Packages built against Mesa-mini should work correctly when
installed with full Mesa package. (bsc#1071297)
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Nov 26 16:03:29 UTC 2017 - aavindraa@gmail.com Sun Nov 26 16:03:29 UTC 2017 - aavindraa@gmail.com

442
Mesa.spec
View File

@ -1,7 +1,7 @@
# #
# spec file for package Mesa # spec file for package Mesa
# #
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,49 +16,104 @@
# #
# Following define and the Name attribute are the only difference between
# Mesa.spec and Mesa-drivers.spec. Mesa-drivers.spec is generated from
# Mesa.spec using the pre_checkin.sh script.
#
# Mesa.spec builds everything that is hardware independent and does not
# require llvm. Most importantly it builds all OpenGL (ES) libraries.
#
# Mesa-drivers.spec builds hardware specific drivers and parts that require
# llvm.
#
# The purpose of this split is to be able to build most Mesa-* packages fast
# without waiting for llvm. This helps speed up whole distribution build in
# OBS. (https://bugzilla.suse.com/show_bug.cgi?id=1071297)
# Note that if you actually need to render something, you need the packages
# from Mesa-driver.
%define drivers 0
%define libglvnd 0 %define libglvnd 0
%if 0%{?suse_version} >= 1330 %if 0%{?suse_version} >= 1330
%define libglvnd 1 %define libglvnd 1
%endif %endif
%define glamor 1 %define glamor 1
%define _name_archive mesa %define _name_archive mesa
%define _version 17.2.6 %define _version 17.3.2
%define with_opencl 0 %define with_opencl 0
%define with_vulkan 0 %define with_vulkan 0
%define with_llvm 0
%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x %ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x
%define gallium_loader 1 %define gallium_loader 1
%else %else
%define gallium_loader 0 %define gallium_loader 0
%endif %endif
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%define xvmc_support 1
%define vdpau_nouveau 1
%define vdpau_radeon 1
%else
%define xvmc_support 0 %define xvmc_support 0
%define vdpau_nouveau 0 %define vdpau_nouveau 0
%define vdpau_radeon 0 %define vdpau_radeon 0
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%define xvmc_support 1
%define vdpau_nouveau 1
%define vdpau_radeon 1
%endif %endif
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define with_nine 1 %define with_nine 1
%endif %endif
%if 0%{gallium_loader} && 0%{?suse_version} >= 1330 %if 0%{gallium_loader} && 0%{?suse_version} >= 1330
# llvm >= 3.9 not provided for <= 1330 # llvm >= 3.9 not provided for <= 1330
%ifnarch ppc %ifnarch ppc
%define with_opencl 1 %define with_opencl 1
%endif
%ifarch %ix86 x86_64
%define with_vulkan 1
%endif
%endif %endif
%ifarch %ix86 x86_64
%define with_vulkan 1 %ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
%define with_llvm 1
%endif %endif
%if %{drivers}
%define glamor 0
%else
# No llvm dependencies
%define with_llvm 0
# OpenCL requires clang (LLVM)
%define with_opencl 0
# nine requires at least one non-swrast gallium driver
%define with_nine 0
# Not built because radeon driver is not built.
%define vdpau_radeon 0
# Not built because nouveau driver is not built.
%define vdpau_nouveau 0
# Not built. (Why?)
%define xvmc_support 0
# Vulkan includes radv driver which requires llvm
%define with_vulkan 0
%endif %endif
Name: Mesa Name: Mesa
Version: 17.2.6 Version: 17.3.2
Release: 0 Release: 0
Summary: System for rendering interactive 3-D graphics Summary: System for rendering 3-D graphics
License: MIT License: MIT
Group: System/Libraries Group: System/Libraries
Url: http://www.mesa3d.org Url: http://www.mesa3d.org
#Git-Clone: git://anongit.freedesktop.org/mesa/mesa
# For now directory structure of Mesa's ftp changed # For now directory structure of Mesa's ftp changed
# Source: ftp://ftp.freedesktop.org/pub/mesa/%%{version}/%%{_name_archive}-%%{_version}.tar.xz # Source: ftp://ftp.freedesktop.org/pub/mesa/%%{version}/%%{_name_archive}-%%{_version}.tar.xz
Source: ftp://ftp.freedesktop.org/pub/mesa/%{_name_archive}-%{_version}.tar.xz Source: ftp://ftp.freedesktop.org/pub/mesa/%{_name_archive}-%{_version}.tar.xz
@ -83,8 +138,9 @@ Patch21: n_Define-GLAPIVAR-separate-from-GLAPI.patch
# currently needed for libglvnd support # currently needed for libglvnd support
Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch
Patch32: archlinux_glvnd-fix-gl-dot-pc.patch Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
Patch42: u_r600-Add-support-for-B5G5R5A1.patch # Upstream
Patch43: U_configure.ac-rework-llvm-libs-handling-for-3.9.patch Patch43: u_mesa-python3-only.patch
Patch44: U_intel-Add-more-Coffee-Lake-PCI-IDs.patch
BuildRequires: autoconf >= 2.60 BuildRequires: autoconf >= 2.60
BuildRequires: automake BuildRequires: automake
@ -95,9 +151,9 @@ BuildRequires: gcc-c++
BuildRequires: imake BuildRequires: imake
BuildRequires: libtool BuildRequires: libtool
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: python-base BuildRequires: python3-base
BuildRequires: python-mako BuildRequires: python3-mako
BuildRequires: python-xml BuildRequires: python3-xml
BuildRequires: pkgconfig(dri2proto) BuildRequires: pkgconfig(dri2proto)
BuildRequires: pkgconfig(dri3proto) BuildRequires: pkgconfig(dri3proto)
BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(expat)
@ -138,6 +194,10 @@ Provides: Mesa-nouveau3d = %{version}
Provides: xorg-x11-Mesa = %{version} Provides: xorg-x11-Mesa = %{version}
Obsoletes: Mesa-nouveau3d < %{version} Obsoletes: Mesa-nouveau3d < %{version}
Obsoletes: xorg-x11-Mesa < %{version} Obsoletes: xorg-x11-Mesa < %{version}
Provides: s2tc = %{version}
Obsoletes: s2tc < %{version}
Provides: libtxc_dxtn = %{version}
Obsoletes: libtxc_dxtn < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%ifarch %arm %ifarch %arm
BuildRequires: pkgconfig(libdrm_freedreno) >= 2.4.74 BuildRequires: pkgconfig(libdrm_freedreno) >= 2.4.74
@ -157,8 +217,10 @@ BuildRequires: pkgconfig(wayland-client) >= 1.11
BuildRequires: pkgconfig(wayland-protocols) >= 1.8 BuildRequires: pkgconfig(wayland-protocols) >= 1.8
BuildRequires: pkgconfig(wayland-server) >= 1.11 BuildRequires: pkgconfig(wayland-server) >= 1.11
%endif %endif
%if 0%{with_llvm}
BuildRequires: llvm-devel >= 3.9.0
%endif
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64 %ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
BuildRequires: llvm-devel
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
%endif %endif
@ -207,6 +269,10 @@ Obsoletes: Mesa-devel-static < %{version}
Obsoletes: xorg-x11-Mesa-devel < %{version} Obsoletes: xorg-x11-Mesa-devel < %{version}
Provides: Mesa-libIndirectGL-devel = %{version} Provides: Mesa-libIndirectGL-devel = %{version}
Obsoletes: Mesa-libIndirectGL-devel < %{version} Obsoletes: Mesa-libIndirectGL-devel < %{version}
Provides: s2tc-devel = %{version}
Obsoletes: s2tc-devel < %{version}
Provides: libtxc_dxtn-devel = %{version}
Obsoletes: libtxc_dxtn-devel < %{version}
%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120300 && 0%{?is_opensuse}) %if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120300 && 0%{?is_opensuse})
Requires: libwayland-egl-devel Requires: libwayland-egl-devel
%endif %endif
@ -226,15 +292,15 @@ just Mesa or The Mesa 3-D graphics library.
* OpenGL is a trademark of Silicon Graphics Incorporated. * OpenGL is a trademark of Silicon Graphics Incorporated.
%package -n Mesa-libEGL1 %package libEGL1
# Kudos to Debian for the descriptions # Kudos to Debian for the descriptions
Summary: Free implementation of the EGL API Summary: EGL API implementation
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%description -n Mesa-libEGL1 %description libEGL1
This package contains the EGL native platform graphics interface This package contains the EGL native platform graphics interface
library. EGL provides a platform-agnostic mechanism for creating library. EGL provides a platform-agnostic mechanism for creating
rendering surfaces for use with other graphics libraries, such as rendering surfaces for use with other graphics libraries, such as
@ -245,7 +311,7 @@ GLX or DRI2 drivers to provide OpenGL via EGL. The Mesa main package
provides drivers to provide hardware-accelerated OpenGL|ES and OpenVG provides drivers to provide hardware-accelerated OpenGL|ES and OpenVG
support. support.
%package -n Mesa-libEGL-devel %package libEGL-devel
Summary: Development files for the EGL API Summary: Development files for the EGL API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libEGL1 = %{version} Requires: Mesa-libEGL1 = %{version}
@ -254,7 +320,7 @@ Requires: libglvnd-devel >= 0.1.0
%endif %endif
# Other requires taken care of by pkgconfig already # Other requires taken care of by pkgconfig already
%description -n Mesa-libEGL-devel %description libEGL-devel
This package contains the development environment required for This package contains the development environment required for
compiling programs against EGL native platform graphics interface compiling programs against EGL native platform graphics interface
library. EGL provides a platform-agnostic mechanism for creating library. EGL provides a platform-agnostic mechanism for creating
@ -264,7 +330,7 @@ OpenGL|ES and OpenVG.
This package provides the development environment for compiling This package provides the development environment for compiling
programs against the EGL library. programs against the EGL library.
%package -n Mesa-libGL1 %package libGL1
Summary: The GL/GLX runtime of the Mesa 3D graphics library Summary: The GL/GLX runtime of the Mesa 3D graphics library
Group: System/Libraries Group: System/Libraries
Requires: Mesa = %{version} Requires: Mesa = %{version}
@ -272,7 +338,7 @@ Requires: Mesa = %{version}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%description -n Mesa-libGL1 %description libGL1
Mesa is a software library for 3D computer graphics that provides a Mesa is a software library for 3D computer graphics that provides a
generic OpenGL implementation for rendering three-dimensional generic OpenGL implementation for rendering three-dimensional
graphics. graphics.
@ -282,7 +348,7 @@ interface connecting OpenGL and the X Window System: it enables
programs wishing to use OpenGL to do so within a window provided by programs wishing to use OpenGL to do so within a window provided by
the X Window System. the X Window System.
%package -n Mesa-libGL-devel %package libGL-devel
Summary: GL/GLX development files of the OpenGL API Summary: GL/GLX development files of the OpenGL API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libGL1 = %{version} Requires: Mesa-libGL1 = %{version}
@ -290,7 +356,7 @@ Requires: Mesa-libGL1 = %{version}
Requires: libglvnd-devel >= 0.1.0 Requires: libglvnd-devel >= 0.1.0
%endif %endif
%description -n Mesa-libGL-devel %description libGL-devel
Mesa is a software library for 3D computer graphics that provides a Mesa is a software library for 3D computer graphics that provides a
generic OpenGL implementation for rendering three-dimensional generic OpenGL implementation for rendering three-dimensional
graphics. graphics.
@ -298,22 +364,22 @@ graphics.
This package includes headers and static libraries for compiling This package includes headers and static libraries for compiling
programs with Mesa. programs with Mesa.
%package -n Mesa-libGLESv1_CM1 %package libGLESv1_CM1
Summary: Free implementation of the OpenGL|ES 1.x Common Profile API Summary: OpenGL|ES 1.x Common Profile API implementation
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%description -n Mesa-libGLESv1_CM1 %description libGLESv1_CM1
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is an API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems. extensions for the special needs of embedded systems.
OpenGL|ES 1.x provides an API for fixed-function hardware. OpenGL|ES 1.x provides an API for fixed-function hardware.
%package -n Mesa-libGLESv1_CM-devel %package libGLESv1_CM-devel
Summary: Development files for the OpenGL ES 1.x API Summary: Development files for the OpenGL ES 1.x API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv1_CM1 = %{version} Requires: Mesa-libGLESv1_CM1 = %{version}
@ -322,8 +388,8 @@ Requires: libglvnd-devel >= 0.1.0
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%description -n Mesa-libGLESv1_CM-devel %description libGLESv1_CM-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is an API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems. extensions for the special needs of embedded systems.
@ -333,15 +399,15 @@ OpenGL|ES 1.x provides an API for fixed-function hardware.
This package provides a development environment for building programs This package provides a development environment for building programs
using the OpenGL|ES 1.x APIs. using the OpenGL|ES 1.x APIs.
%package -n Mesa-libGLESv2-2 %package libGLESv2-2
Summary: Free implementation of the OpenGL|ES 2.x API Summary: OpenGL|ES 2.x API implementation
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%description -n Mesa-libGLESv2-2 %description libGLESv2-2
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is an API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems. extensions for the special needs of embedded systems.
@ -352,7 +418,7 @@ vertex and fragment shaders.
The libGLESv2.so.2 library provides symbols for all OpenGL ES 2 and The libGLESv2.so.2 library provides symbols for all OpenGL ES 2 and
ES 3 entry points. ES 3 entry points.
%package -n Mesa-libGLESv2-devel %package libGLESv2-devel
Summary: Development files for the OpenGL ES 2.x API Summary: Development files for the OpenGL ES 2.x API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv2-2 = %{version} Requires: Mesa-libGLESv2-2 = %{version}
@ -361,8 +427,8 @@ Requires: libglvnd-devel >= 0.1.0
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%description -n Mesa-libGLESv2-devel %description libGLESv2-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is an API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems. extensions for the special needs of embedded systems.
@ -373,7 +439,7 @@ vertex and fragment shaders.
This package provides a development environment for building This package provides a development environment for building
applications using the OpenGL|ES 2.x APIs. applications using the OpenGL|ES 2.x APIs.
%package -n Mesa-libGLESv3-devel %package libGLESv3-devel
Summary: Development files for the OpenGL ES 3.x API Summary: Development files for the OpenGL ES 3.x API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
@ -381,8 +447,8 @@ Requires: Mesa-libGLESv2-2 = %{version}
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%description -n Mesa-libGLESv3-devel %description libGLESv3-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is an API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems. extensions for the special needs of embedded systems.
@ -412,31 +478,40 @@ Development files for the OSmesa Mesa extension that allows programs to render t
off-screen buffer using the OpenGL API without having to create a off-screen buffer using the OpenGL API without having to create a
rendering context on an X Server. It uses a pure software renderer. rendering context on an X Server. It uses a pure software renderer.
%package -n Mesa-libglapi0 %package libglapi0
Summary: Free implementation of the GL API Summary: Free implementation of the GL API
Group: System/Libraries Group: System/Libraries
%description -n Mesa-libglapi0 %description libglapi0
The Mesa GL API module is responsible for dispatching all the gl* The Mesa GL API module is responsible for dispatching all the gl*
functions. It is intended to be mainly used by the Mesa-libGLES* functions. It is intended to be mainly used by the Mesa-libGLES*
packages. packages.
%package -n Mesa-libglapi-devel %package libglapi-devel
Summary: Development files for the free implementation of the GL API Summary: Development files for the Mesa GL API implementation
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libglapi0 = %{version} Requires: Mesa-libglapi0 = %{version}
%description -n Mesa-libglapi-devel %description libglapi-devel
Development files for the Mesa GL API module which is responsible for Development files for the Mesa GL API module which is responsible for
dispatching all the gl* functions. It is intended to be mainly used by dispatching all the gl* functions. It is intended to be mainly used by
the Mesa-libGLES* packages. the Mesa-libGLES* packages.
%package -n Mesa-dri-devel %package -n Mesa-dri
Summary: DRI plug-ins for 3D acceleration
Group: System/Libraries
Requires: Mesa = %{version}
Supplements: Mesa
%description -n Mesa-dri
This package contains Mesa DRI drivers for 3D acceleration.
%package dri-devel
Summary: Development files for the DRI API Summary: Development files for the DRI API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa = %{version} Requires: Mesa = %{version}
%description -n Mesa-dri-devel %description dri-devel
This package contains the development environment required for This package contains the development environment required for
compiling programs and libraries using the DRI API. compiling programs and libraries using the DRI API.
@ -451,6 +526,15 @@ This package contains nouveau_dri.so, which is necessary for
Nouveau's 3D acceleration to work. It is packaged separately Nouveau's 3D acceleration to work. It is packaged separately
since it is still experimental. since it is still experimental.
%package -n Mesa-gallium
Summary: Mesa Gallium GPU drivers
Group: System/Libraries
Requires: Mesa = %{version}
Supplements: Mesa
%description -n Mesa-gallium
This package contains Mesa Gallium drivers for 3D acceleration.
%package -n libgbm1 %package -n libgbm1
Summary: Generic buffer management API Summary: Generic buffer management API
Group: System/Libraries Group: System/Libraries
@ -497,7 +581,7 @@ Requires: libwayland-egl1 = %{version}
This package is required to link wayland client applications to the EGL This package is required to link wayland client applications to the EGL
implementation of Mesa. implementation of Mesa.
%package libd3d %package -n Mesa-libd3d
Summary: Mesa Direct3D9 state tracker Summary: Mesa Direct3D9 state tracker
# Manually provide d3d library (bnc#918294) # Manually provide d3d library (bnc#918294)
Group: System/Libraries Group: System/Libraries
@ -507,15 +591,15 @@ Provides: d3dadapter9.so.1()(64bit)
Provides: d3dadapter9.so.1 Provides: d3dadapter9.so.1
%endif %endif
%description libd3d %description -n Mesa-libd3d
Mesa Direct3D9 state tracker Mesa Direct3D9 state tracker
%package libd3d-devel %package -n Mesa-libd3d-devel
Summary: Mesa Direct3D9 state tracker development package Summary: Mesa Direct3D9 state tracker development package
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %{name}-libd3d = %{version} Requires: Mesa-libd3d = %{version}
%description libd3d-devel %description -n Mesa-libd3d-devel
Mesa Direct3D9 state tracker development package Mesa Direct3D9 state tracker development package
%package -n libXvMC_nouveau %package -n libXvMC_nouveau
@ -568,20 +652,20 @@ Supplements: xf86-video-ati
%description -n libvdpau_radeonsi %description -n libvdpau_radeonsi
This package contains the VDPAU state tracker for radeonsi. This package contains the VDPAU state tracker for radeonsi.
%package libOpenCL %package -n Mesa-libOpenCL
Summary: Mesa OpenCL implementation Summary: Mesa OpenCL implementation
Group: System/Libraries Group: System/Libraries
Requires: libclc Requires: libclc
%description libOpenCL %description -n Mesa-libOpenCL
This package contains the Mesa OpenCL implementation or GalliumCompute. This package contains the Mesa OpenCL implementation or GalliumCompute.
%package libva %package -n Mesa-libva
Summary: Mesa VA-API implementation Summary: Mesa VA-API implementation
Group: System/Libraries Group: System/Libraries
Supplements: Mesa Supplements: Mesa
%description libva %description -n Mesa-libva
This package contains the Mesa VA-API implementation provided through gallium. This package contains the Mesa VA-API implementation provided through gallium.
%package -n libvulkan_intel %package -n libvulkan_intel
@ -601,15 +685,15 @@ Supplements: xf86-video-amdgpu
%description -n libvulkan_radeon %description -n libvulkan_radeon
This package contains the Vulkan parts for Mesa. This package contains the Vulkan parts for Mesa.
%package libVulkan-devel %package -n Mesa-libVulkan-devel
Summary: Mesas Vulkan development files Summary: Mesa's Vulkan development files
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libvulkan_intel = %{version} Requires: libvulkan_intel = %{version}
Requires: libvulkan_radeon = %{version} Requires: libvulkan_radeon = %{version}
Conflicts: vulkan-devel Conflicts: vulkan-devel
%description libVulkan-devel %description -n Mesa-libVulkan-devel
This package contains the development files for Mesas Vulkan implementation. This package contains the development files for Mesa's Vulkan implementation.
%package -n libxatracker2 %package -n libxatracker2
Version: 1.0.0 Version: 1.0.0
@ -658,21 +742,21 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%patch32 -p1 %patch32 -p1
%endif %endif
%patch42 -p1
%patch43 -p1 %patch43 -p1
%patch44 -p1
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when # Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
# disabling libglvnd build; ugly ... # disabling libglvnd build; ugly ...
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
grep -v libglvnd $RPM_SOURCE_DIR/baselibs.conf > $RPM_SOURCE_DIR/temp && \ grep -v libglvnd "%{_sourcedir}/baselibs.conf" >"%{_sourcedir}/temp" && \
mv $RPM_SOURCE_DIR/temp $RPM_SOURCE_DIR/baselibs.conf mv "%{_sourcedir}/temp" "%{_sourcedir}/baselibs.conf"
%endif %endif
# Remove requires to vulkan libs from baselibs.conf on platforms # Remove requires to vulkan libs from baselibs.conf on platforms
# where vulkan build is disabled; ugly ... # where vulkan build is disabled; ugly ...
%if 0%{?with_vulkan} == 0 %if 0%{?with_vulkan} == 0
grep -v -i vulkan $RPM_SOURCE_DIR/baselibs.conf > $RPM_SOURCE_DIR/temp && \ grep -v -i vulkan "%{_sourcedir}/baselibs.conf" >"%{_sourcedir}/temp" && \
mv $RPM_SOURCE_DIR/temp $RPM_SOURCE_DIR/baselibs.conf mv "%{_sourcedir}/temp" "%{_sourcedir}/baselibs.conf"
%endif %endif
%build %build
@ -683,19 +767,31 @@ egl_platforms=x11,drm
%endif %endif
autoreconf -fvi autoreconf -fvi
export PYTHON2=/usr/bin/python3
%configure \ %configure \
%if %{drivers}
--disable-gles1 \
--disable-gles2 \
--disable-egl \
--disable-glx \
--disable-osmesa \
%else
%if 0%{?libglvnd} %if 0%{?libglvnd}
--enable-libglvnd \ --enable-libglvnd \
%endif %endif
--enable-gles1 \ --enable-gles1 \
--enable-gles2 \ --enable-gles2 \
--enable-dri \ --enable-egl \
--with-platforms=$egl_platforms \
--enable-shared-glapi \
--enable-texture-float \
--enable-osmesa \ --enable-osmesa \
%endif
--with-platforms=$egl_platforms \
--enable-dri \
--enable-texture-float \
--enable-dri3 \ --enable-dri3 \
%{?with_nine:--enable-nine} \ --enable-shared-glapi \
%if 0%{?with_nine}
--enable-nine \
%endif
%if %{glamor} %if %{glamor}
--enable-gbm \ --enable-gbm \
--enable-glx-tls \ --enable-glx-tls \
@ -705,7 +801,7 @@ autoreconf -fvi
--enable-opencl-icd \ --enable-opencl-icd \
%endif %endif
--with-dri-searchpath=%{_libdir}/dri \ --with-dri-searchpath=%{_libdir}/dri \
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64 %if 0%{with_llvm}
--enable-llvm \ --enable-llvm \
--enable-llvm-shared-libs \ --enable-llvm-shared-libs \
%endif %endif
@ -715,24 +811,29 @@ autoreconf -fvi
%if 0%{with_vulkan} %if 0%{with_vulkan}
--with-vulkan-drivers=intel,radeon \ --with-vulkan-drivers=intel,radeon \
%endif %endif
%ifarch %ix86 x86_64 %if %{drivers}
%ifarch %ix86 x86_64
--enable-xa \ --enable-xa \
--with-dri-drivers=i915,i965,nouveau,r200,radeon \ --with-dri-drivers=i915,i965,nouveau,r200,radeon \
--with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,svga,virgl \ --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,svga,virgl \
%endif %endif
%ifarch %arm aarch64 %ifarch %arm aarch64
--enable-xa \ --enable-xa \
--with-dri-drivers=nouveau \ --with-dri-drivers=nouveau \
--with-gallium-drivers=r300,r600,nouveau,swrast,freedreno,vc4 \ --with-gallium-drivers=r300,r600,nouveau,swrast,freedreno,vc4 \
%endif %endif
%ifarch ppc64 ppc64le %ifarch ppc64 ppc64le
--enable-xa \ --enable-xa \
--with-dri-drivers=nouveau \ --with-dri-drivers=nouveau \
--with-gallium-drivers=r300,r600,nouveau,swrast \ --with-gallium-drivers=r300,r600,nouveau,swrast \
%endif %endif
%ifarch ia64 ppc hppa s390 s390x %ifarch ia64 ppc hppa s390 s390x
--with-dri-drivers=swrast \ --with-dri-drivers=swrast \
--with-gallium-drivers=swrast \ --with-gallium-drivers=swrast \
%endif
%else
--with-dri-drivers= \
--with-gallium-drivers= \
%endif %endif
CFLAGS="%{optflags} -DNDEBUG" CFLAGS="%{optflags} -DNDEBUG"
make %{?_smp_mflags} make %{?_smp_mflags}
@ -741,6 +842,32 @@ make %{?_smp_mflags}
make DESTDIR=%{buildroot} install %{?_smp_mflags} make DESTDIR=%{buildroot} install %{?_smp_mflags}
find %{buildroot} -type f -name "*.la" -delete -print find %{buildroot} -type f -name "*.la" -delete -print
%if %{drivers}
# Delete things that we do not package in the Mesa-drivers variant, but can
# not disable from buildling and installing.
# in Mesa
rm %{buildroot}/%{_sysconfdir}/drirc
# in Mesa-libGL-devel
rm -rf %{buildroot}/%{_includedir}/GL
# in Mesa-libglapi0
rm %{buildroot}/%{_libdir}/libglapi.so*
# in libwayland-egl1
rm %{buildroot}/%{_libdir}/libwayland-egl.so*
rm %{buildroot}/%{_libdir}/pkgconfig/wayland-egl.pc
# in Mesa-dri-devel
rm %{buildroot}/%{_libdir}/pkgconfig/dri.pc
# in libgbm-devel
rm %{buildroot}/%{_includedir}/gbm.h
rm %{buildroot}/%{_libdir}/libgbm.so*
rm %{buildroot}/%{_libdir}/pkgconfig/gbm.pc
%else
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
# Make a symlink to libGL.so.1.2 for compatibility (bnc#809359, bnc#831306) # Make a symlink to libGL.so.1.2 for compatibility (bnc#809359, bnc#831306)
test -f %{buildroot}%{_libdir}/libGL.so.1.2 || \ test -f %{buildroot}%{_libdir}/libGL.so.1.2 || \
@ -759,30 +886,34 @@ for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
make install.man DESTDIR=%{buildroot} MANPATH=%{_mandir} LIBMANSUFFIX=3gl make install.man DESTDIR=%{buildroot} MANPATH=%{_mandir} LIBMANSUFFIX=3gl
popd popd
done done
%endif
%fdupes -s %{buildroot}/%{_mandir} %fdupes -s %{buildroot}/%{_mandir}
%if !%{drivers}
# Use dummy README file that can be included in both Mesa and Mesa-32bit. This way Mesa-32bit will be build (otherwise it would be skipped as empty) and it can be used by the other *-32bit packages.
echo "The \"Mesa\" package does not have the ability to render, but is supplemented by \"Mesa-dri\" and \"Mesa-gallium\" which contain the drivers for rendering" > docs/README.package.%{_arch}
%endif
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
%postun -p /sbin/ldconfig %postun -p /sbin/ldconfig
%post -n Mesa-libEGL1 -p /sbin/ldconfig %post libEGL1 -p /sbin/ldconfig
%postun -n Mesa-libEGL1 -p /sbin/ldconfig %postun libEGL1 -p /sbin/ldconfig
%post -n Mesa-libGL1 -p /sbin/ldconfig %post libGL1 -p /sbin/ldconfig
%postun -n Mesa-libGL1 -p /sbin/ldconfig %postun libGL1 -p /sbin/ldconfig
%if 0%{?libglvnd} == 0 %post libGLESv1_CM1 -p /sbin/ldconfig
%post -n Mesa-libGLESv1_CM1 -p /sbin/ldconfig
%postun -n Mesa-libGLESv1_CM1 -p /sbin/ldconfig %postun libGLESv1_CM1 -p /sbin/ldconfig
%post -n Mesa-libGLESv2-2 -p /sbin/ldconfig %post libGLESv2-2 -p /sbin/ldconfig
%postun -n Mesa-libGLESv2-2 -p /sbin/ldconfig %postun libGLESv2-2 -p /sbin/ldconfig
%endif
%post -n libOSMesa8 -p /sbin/ldconfig %post -n libOSMesa8 -p /sbin/ldconfig
@ -816,53 +947,37 @@ done
%postun -n libvdpau_radeonsi -p /sbin/ldconfig %postun -n libvdpau_radeonsi -p /sbin/ldconfig
%post -n Mesa-libglapi0 -p /sbin/ldconfig %post libglapi0 -p /sbin/ldconfig
%postun -n Mesa-libglapi0 -p /sbin/ldconfig %postun libglapi0 -p /sbin/ldconfig
%post -n libwayland-egl1 -p /sbin/ldconfig %post -n libwayland-egl1 -p /sbin/ldconfig
%postun -n libwayland-egl1 -p /sbin/ldconfig %postun -n libwayland-egl1 -p /sbin/ldconfig
%post libd3d -p /sbin/ldconfig %post -n Mesa-libd3d -p /sbin/ldconfig
%postun libd3d -p /sbin/ldconfig %postun -n Mesa-libd3d -p /sbin/ldconfig
%post libOpenCL -p /sbin/ldconfig %post -n Mesa-libOpenCL -p /sbin/ldconfig
%postun libOpenCL -p /sbin/ldconfig %postun -n Mesa-libOpenCL -p /sbin/ldconfig
%post libva -p /sbin/ldconfig %post -n Mesa-libva -p /sbin/ldconfig
%postun libva -p /sbin/ldconfig %postun -n Mesa-libva -p /sbin/ldconfig
%post -n libvulkan_intel -p /sbin/ldconfig %post -n libvulkan_intel -p /sbin/ldconfig
%postun -n libvulkan_intel -p /sbin/ldconfig %postun -n libvulkan_intel -p /sbin/ldconfig
%if !%{drivers}
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc docs/README* docs/license.html %doc docs/README* docs/license.html
%config %{_sysconfdir}/drirc %config %{_sysconfdir}/drirc
%dir %{_libdir}/dri
%{_libdir}/dri/*_dri.so
%if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so
%endif
%endif
%if 0%{with_opencl}
# only built with opencl
%dir %{_libdir}/gallium-pipe/
%{_libdir}/gallium-pipe/pipe_*.so
%endif
%if 0%{with_vulkan}
%dir %{_datadir}/vulkan
%dir %{_datadir}/vulkan/icd.d
%endif
%files -n Mesa-libEGL1 %files libEGL1
%defattr(-,root,root) %defattr(-,root,root)
%if 0%{?libglvnd} %if 0%{?libglvnd}
%{_libdir}/libEGL_mesa.so* %{_libdir}/libEGL_mesa.so*
@ -873,7 +988,7 @@ done
%{_libdir}/libEGL.so.1* %{_libdir}/libEGL.so.1*
%endif %endif
%files -n Mesa-libEGL-devel %files libEGL-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/EGL %{_includedir}/EGL
%{_includedir}/KHR %{_includedir}/KHR
@ -882,7 +997,7 @@ done
%endif %endif
%{_libdir}/pkgconfig/egl.pc %{_libdir}/pkgconfig/egl.pc
%files -n Mesa-libGL1 %files libGL1
%defattr(-,root,root) %defattr(-,root,root)
%if 0%{?libglvnd} %if 0%{?libglvnd}
%{_libdir}/libGLX_mesa.so* %{_libdir}/libGLX_mesa.so*
@ -891,7 +1006,7 @@ done
%{_libdir}/libGL.so.1* %{_libdir}/libGL.so.1*
%endif %endif
%files -n Mesa-libGL-devel %files libGL-devel
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_includedir}/GL %dir %{_includedir}/GL
%{_includedir}/GL/*.h %{_includedir}/GL/*.h
@ -902,13 +1017,13 @@ done
%{_libdir}/pkgconfig/gl.pc %{_libdir}/pkgconfig/gl.pc
%{_mandir}/man3/gl[A-Z]* %{_mandir}/man3/gl[A-Z]*
%files -n Mesa-libGLESv1_CM1 %files libGLESv1_CM1
%defattr(-,root,root) %defattr(-,root,root)
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
%{_libdir}/libGLESv1_CM.so.1* %{_libdir}/libGLESv1_CM.so.1*
%endif %endif
%files -n Mesa-libGLESv1_CM-devel %files libGLESv1_CM-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/GLES %{_includedir}/GLES
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
@ -916,13 +1031,13 @@ done
%endif %endif
%{_libdir}/pkgconfig/glesv1_cm.pc %{_libdir}/pkgconfig/glesv1_cm.pc
%files -n Mesa-libGLESv2-2 %files libGLESv2-2
%defattr(-,root,root) %defattr(-,root,root)
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
%{_libdir}/libGLESv2.so.2* %{_libdir}/libGLESv2.so.2*
%endif %endif
%files -n Mesa-libGLESv2-devel %files libGLESv2-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/GLES2 %{_includedir}/GLES2
%if 0%{?libglvnd} == 0 %if 0%{?libglvnd} == 0
@ -930,7 +1045,7 @@ done
%endif %endif
%{_libdir}/pkgconfig/glesv2.pc %{_libdir}/pkgconfig/glesv2.pc
%files -n Mesa-libGLESv3-devel %files libGLESv3-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/GLES3 %{_includedir}/GLES3
#%_libdir/libGLESv3.so #%_libdir/libGLESv3.so
@ -967,7 +1082,9 @@ done
%{_includedir}/gbm.h %{_includedir}/gbm.h
%{_libdir}/libgbm.so %{_libdir}/libgbm.so
%{_libdir}/pkgconfig/gbm.pc %{_libdir}/pkgconfig/gbm.pc
%endif
%if %{drivers}
%ifarch aarch64 %ix86 x86_64 %arm ppc64 ppc64le %ifarch aarch64 %ix86 x86_64 %arm ppc64 ppc64le
%files -n libxatracker2 %files -n libxatracker2
%defattr(-,root,root) %defattr(-,root,root)
@ -1029,19 +1146,34 @@ done
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0 %{_libdir}/vdpau/libvdpau_radeonsi.so.1.0
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0.0 %{_libdir}/vdpau/libvdpau_radeonsi.so.1.0.0
%endif %endif
%endif
%files -n Mesa-libglapi0 %if !%{drivers}
%files libglapi0
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libglapi.so.0* %{_libdir}/libglapi.so.0*
%files -n Mesa-libglapi-devel %files libglapi-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libglapi.so %{_libdir}/libglapi.so
%endif
%files -n Mesa-dri-devel %if %{drivers}
%defattr(-,root,root) %files -n Mesa-dri
%{_includedir}/GL/internal %{_libdir}/dri/*_dri.so
%{_libdir}/pkgconfig/dri.pc %if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so
%endif
%endif
%if 0%{with_opencl}
# only built with opencl
%files -n Mesa-gallium
%dir %{_libdir}/gallium-pipe/
%{_libdir}/gallium-pipe/pipe_*.so
%endif
%if 0%{?is_opensuse} %if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
@ -1051,18 +1183,30 @@ done
%endif %endif
%endif %endif
# drivers
%endif
%if !%{drivers}
%files dri-devel
%defattr(-,root,root)
%{_includedir}/GL/internal
%{_libdir}/pkgconfig/dri.pc
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%doc docs/*.html %doc docs/*.html
# !drivers
%endif
%if 0%{?with_nine} %if 0%{?with_nine}
%files libd3d %files -n Mesa-libd3d
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_libdir}/d3d/ %dir %{_libdir}/d3d/
%{_libdir}/d3d/*.so.* %{_libdir}/d3d/*.so.*
#%%{_sysconfdir}/OpenCL/vendors/mesa.icd #%%{_sysconfdir}/OpenCL/vendors/mesa.icd
%files libd3d-devel %files -n Mesa-libd3d-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/pkgconfig/d3d.pc %{_libdir}/pkgconfig/d3d.pc
%{_includedir}/d3dadapter/ %{_includedir}/d3dadapter/
@ -1070,7 +1214,7 @@ done
%endif %endif
%if 0%{with_opencl} %if 0%{with_opencl}
%files libOpenCL %files -n Mesa-libOpenCL
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_sysconfdir}/OpenCL %dir %{_sysconfdir}/OpenCL
%dir %{_sysconfdir}/OpenCL/vendors %dir %{_sysconfdir}/OpenCL/vendors
@ -1078,28 +1222,34 @@ done
%{_libdir}/libMesaOpenCL.so* %{_libdir}/libMesaOpenCL.so*
%endif %endif
%if %{drivers}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%files libva %files -n Mesa-libva
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_libdir}/dri %dir %{_libdir}/dri
%{_libdir}/dri/*_drv_video.so %{_libdir}/dri/*_drv_video.so
%endif %endif
%endif
%if 0%{with_vulkan} %if 0%{with_vulkan}
%files -n libvulkan_intel %files -n libvulkan_intel
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_datadir}/vulkan
%dir %{_datadir}/vulkan/icd.d
%{_datadir}/vulkan/icd.d/intel_icd.*.json %{_datadir}/vulkan/icd.d/intel_icd.*.json
%{_libdir}/libvulkan_intel.so %{_libdir}/libvulkan_intel.so
%files libVulkan-devel
%defattr(-,root,root)
%dir %_includedir/vulkan
%_includedir/vulkan
%files -n libvulkan_radeon %files -n libvulkan_radeon
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libvulkan_radeon.so %{_libdir}/libvulkan_radeon.so
%dir %{_datadir}/vulkan
%dir %{_datadir}/vulkan/icd.d
%{_datadir}/vulkan/icd.d/radeon_icd.*.json %{_datadir}/vulkan/icd.d/radeon_icd.*.json
%files -n Mesa-libVulkan-devel
%defattr(-,root,root)
%dir %_includedir/vulkan
%_includedir/vulkan
%endif %endif
%changelog %changelog

View File

@ -1,107 +0,0 @@
Git-commit: 13a53c4f5cdd664fd155c9e78fb46a4387af006c
Patch-Mainline: Upstream
Author: Emil Velikov <emil.velikov@collabora.com>
Subject: configure.ac: rework llvm libs handling for 3.9+
Signed-off-by: Michal Srb <msrb@suse.com>
Earlier versions need different quirks, but as of LLVM 3.9 llvm-config
provides --link-shared/link-static toggles.
The output of which seems to be reliable - looking at LLVM 3.9, 4.0 and
5.0.
Note that there are earlier code will be used for pre LLVM 3.9 and is
unchanged.
This effectively fixes LLVM static linking, while providing a clearer
and more robust solution for future versions.
Mildly interesting side notes:
- build-mode (introduced with 3.8) was buggy with 3.8
It shows "static" when build with -DLLVM_LINK_LLVM_DYLIB=ON, yet it was
consistent with --libs. The latter shows the static libraries.
- libnames and libfiles are broken with LVM 3.9
The library prefix and extension is printed twice liblibLLVM-3.9.so.so
v2: Invoke llvm-config twice, instead of using sed, to combine the two
lines into one (Tobias)
Cc: mesa-stable@lists.freedesktop.org
Cc: Dieter Nützel <Dieter@nuetzel-hh.de>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tobias Droste <tdroste@gmx.de>
---
configure.ac | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
Index: mesa-17.2.2/configure.ac
===================================================================
--- mesa-17.2.2.orig/configure.ac
+++ mesa-17.2.2/configure.ac
@@ -2684,44 +2684,28 @@ if test "x$enable_llvm" = xyes; then
if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then
AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed])
fi
- LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
-
- dnl llvm-config may not give the right answer when llvm is a built as a
- dnl single shared library, so we must work the library name out for
- dnl ourselves.
- dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823)
- if test "x$enable_llvm_shared_libs" = xyes; then
- dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
- LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
- AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes])
-
- if test "x$llvm_have_one_so" = xyes; then
- dnl LLVM was built using auto*, so there is only one shared object.
- LLVM_LIBS="-l$LLVM_SO_NAME"
+ if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then
+ if test "x$enable_llvm_shared_libs" = xyes; then
+ LLVM_LIBS="`$LLVM_CONFIG --link-shared --libs ${LLVM_COMPONENTS}`"
else
- dnl If LLVM was built with CMake, there will be one shared object per
- dnl component.
- AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"],
- [AC_MSG_ERROR([Could not find llvm shared libraries:
- Please make sure you have built llvm with the --enable-shared option
- and that your llvm libraries are installed in $LLVM_LIBDIR
- If you have installed your llvm libraries to a different directory you
- can use the --with-llvm-prefix= configure flag to specify this directory.
- NOTE: Mesa is attempting to use llvm shared libraries by default.
- If you do not want to build with llvm shared libraries and instead want to
- use llvm static libraries then add --disable-llvm-shared-libs to your configure
- invocation and rebuild.])])
-
- dnl We don't need to update LLVM_LIBS in this case because the LLVM
- dnl install uses a shared object for each component and we have
- dnl already added all of these objects to LLVM_LIBS.
+ dnl Invoking llvm-config with both -libs and --system-libs produces the
+ dnl two separate lines - each for the set of libraries.
+ dnl Call the program twice, effectively folding them into a single line.
+ LLVM_LIBS="`$LLVM_CONFIG --link-static --libs ${LLVM_COMPONENTS}`"
+ dnl We need to link to llvm system libs when using static libs
+ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --link-static --system-libs`"
fi
else
- AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
- dnl We need to link to llvm system libs when using static libs
- dnl However, only llvm 3.5+ provides --system-libs
- if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
- LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
+ LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
+ if test "x$enable_llvm_shared_libs" = xyes; then
+ detect_old_buggy_llvm
+ else
+ AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
+ dnl We need to link to llvm system libs when using static libs
+ dnl However, only llvm 3.5+ provides --system-libs
+ if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
+ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
+ fi
fi
fi
fi

View File

@ -0,0 +1,45 @@
From fe668b5c155aee4443dde0748065241e09293302 Mon Sep 17 00:00:00 2001
From: Anuj Phogat <anuj.phogat@gmail.com>
Date: Fri, 5 Jan 2018 09:17:36 -0800
Subject: [PATCH] intel: Add more Coffee Lake PCI IDs
More Coffee Lake PCI IDs have been added to the spec.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
include/pci_ids/i965_pci_ids.h | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/pci_ids/i965_pci_ids.h b/include/pci_ids/i965_pci_ids.h
index 0dd01a4343..9616f7de21 100644
--- a/include/pci_ids/i965_pci_ids.h
+++ b/include/pci_ids/i965_pci_ids.h
@@ -167,15 +167,23 @@ CHIPSET(0x3184, glk, "Intel(R) HD Graphics (Geminilake)")
CHIPSET(0x3185, glk_2x6, "Intel(R) HD Graphics (Geminilake 2x6)")
CHIPSET(0x3E90, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
CHIPSET(0x3E93, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
+CHIPSET(0x3E99, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
+CHIPSET(0x3EA1, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
+CHIPSET(0x3EA4, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
CHIPSET(0x3E91, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
CHIPSET(0x3E92, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
CHIPSET(0x3E96, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
+CHIPSET(0x3E9A, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
CHIPSET(0x3E9B, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
CHIPSET(0x3E94, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
+CHIPSET(0x3EA0, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
+CHIPSET(0x3EA3, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
+CHIPSET(0x3EA9, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
+CHIPSET(0x3EA2, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
+CHIPSET(0x3EA5, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
CHIPSET(0x3EA6, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
CHIPSET(0x3EA7, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
CHIPSET(0x3EA8, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
-CHIPSET(0x3EA5, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
CHIPSET(0x5A49, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
CHIPSET(0x5A4A, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
CHIPSET(0x5A41, cnl_3x8, "Intel(R) HD Graphics (Cannonlake 3x8 GT1)")
--
2.13.6

View File

@ -1,4 +1,9 @@
Mesa Mesa
# Include this special README file so dummy Mesa-<targettype> gets
# build and other arch packages can supplement it.
+/usr/share/doc/packages/Mesa/README.package.*
# Must require the base Mesa package to get /etc/drirc configuration file.
requires "Mesa = <version>"
obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>" obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
provides "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>" provides "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
provides "Mesa-libIndirectGL1-<targettype> = <version>" provides "Mesa-libIndirectGL1-<targettype> = <version>"
@ -28,7 +33,7 @@ Mesa-libEGL-devel
requires "Mesa-libEGL1-<targettype> = <version>" requires "Mesa-libEGL1-<targettype> = <version>"
requires "libglvnd-devel-<targettype> >= 0.1.0" requires "libglvnd-devel-<targettype> >= 0.1.0"
Mesa-libGL1 Mesa-libGL1
requires "Mesa-<targettype>" requires "Mesa-<targettype> = <version>"
requires "libglvnd-<targettype> >= 0.1.0" requires "libglvnd-<targettype> >= 0.1.0"
Mesa-libGL-devel Mesa-libGL-devel
requires "Mesa-libGL1-<targettype> = <version>" requires "Mesa-libGL1-<targettype> = <version>"
@ -99,3 +104,7 @@ libvdpau_r600
libvdpau_radeonsi libvdpau_radeonsi
libwayland-egl1 libwayland-egl1
Mesa-dri-nouveau Mesa-dri-nouveau
Mesa-dri
supplements "Mesa-<targettype> = <version>"
Mesa-gallium
supplements "Mesa-<targettype> = <version>"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6ad85224620330be26ab68c8fc78381b12b38b610ade2db8716b38faaa8f30de
size 10387604

Binary file not shown.

3
mesa-17.3.2.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e2844a13f2d6f8f24bee65804a51c42d8dc6ae9c36cff7ee61d0940e796d64c6
size 10670568

BIN
mesa-17.3.2.tar.xz.sig Normal file

Binary file not shown.

14
pre_checkin.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/sh
# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz)
# create a -drivers spec for systemd for bootstrapping
ORIG_SPEC=Mesa
EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n"
sed "s/^%define drivers .*$/${EDIT_WARNING}%define drivers 1/;
s/^Name:.*/&-drivers/
" < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-drivers.spec
cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-drivers.changes
cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-drivers-rpmlintrc
osc service localrun format_spec_file

111
u_mesa-python3-only.patch Normal file
View File

@ -0,0 +1,111 @@
diff --git a/src/gallium/drivers/r600/egd_tables.py b/src/gallium/drivers/r600/egd_tables.py
index d7b78c7fb1..7bda44ce83 100644
--- a/src/gallium/drivers/r600/egd_tables.py
+++ b/src/gallium/drivers/r600/egd_tables.py
@@ -1,4 +1,4 @@
-
+#!/usr/bin/python3
CopyRight = '''
/*
* Copyright 2015 Advanced Micro Devices, Inc.
@@ -60,7 +60,7 @@ class StringTable:
"""
fragments = [
'"%s\\0" /* %s */' % (
- te[0].encode('string_escape'),
+ te[0].encode('unicode_escape'),
', '.join(str(idx) for idx in te[2])
)
for te in self.table
@@ -217,10 +217,10 @@ def write_tables(regs, packets):
strings = StringTable()
strings_offsets = IntTable("int")
- print '/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */'
- print
- print CopyRight.strip()
- print '''
+ print('/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */')
+ print('')
+ print(CopyRight.strip())
+ print('''
#ifndef EG_TABLES_H
#define EG_TABLES_H
@@ -242,20 +242,20 @@ struct eg_packet3 {
unsigned name_offset;
unsigned op;
};
-'''
+''')
- print 'static const struct eg_packet3 packet3_table[] = {'
+ print('static const struct eg_packet3 packet3_table[] = {')
for pkt in packets:
- print '\t{%s, %s},' % (strings.add(pkt[5:]), pkt)
- print '};'
- print
+ print('\t{%s, %s},' % (strings.add(pkt[5:]), pkt))
+ print('};')
+ print('')
- print 'static const struct eg_field egd_fields_table[] = {'
+ print('static const struct eg_field egd_fields_table[] = {')
fields_idx = 0
for reg in regs:
if len(reg.fields) and reg.own_fields:
- print '\t/* %s */' % (fields_idx)
+ print('\t/* %s */' % (fields_idx))
reg.fields_idx = fields_idx
@@ -266,34 +266,34 @@ struct eg_packet3 {
while value[1] >= len(values_offsets):
values_offsets.append(-1)
values_offsets[value[1]] = strings.add(strip_prefix(value[0]))
- print '\t{%s, %s(~0u), %s, %s},' % (
+ print('\t{%s, %s(~0u), %s, %s},' % (
strings.add(field.name), field.s_name,
- len(values_offsets), strings_offsets.add(values_offsets))
+ len(values_offsets), strings_offsets.add(values_offsets)))
else:
- print '\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name)
+ print('\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name))
fields_idx += 1
- print '};'
- print
+ print('};')
+ print('')
- print 'static const struct eg_reg egd_reg_table[] = {'
+ print('static const struct eg_reg egd_reg_table[] = {')
for reg in regs:
if len(reg.fields):
- print '\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
- len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx)
+ print('\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
+ len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx))
else:
- print '\t{%s, %s},' % (strings.add(reg.name), reg.r_name)
- print '};'
- print
+ print('\t{%s, %s},' % (strings.add(reg.name), reg.r_name))
+ print('};')
+ print('')
strings.emit(sys.stdout, "egd_strings")
- print
+ print('')
strings_offsets.emit(sys.stdout, "egd_strings_offsets")
- print
- print '#endif'
+ print('')
+ print('#endif')
def main():

View File

@ -1,27 +0,0 @@
Author: Michal Srb <michalsrb@gmail.com>
Subject: r600: Add support for B5G5R5A1.
Patch-Mainline: To be upstreamed
References: bnc#1047154
Fixes rendercheck errors when using glamor acceleration in X server.
---
src/gallium/drivers/r600/r600_asm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 9e00528c5c..be2a086594 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -2350,6 +2350,12 @@ void r600_vertex_data_type(enum pipe_for
return;
}
+ if (pformat == PIPE_FORMAT_B5G5R5A1_UNORM) {
+ *format = FMT_1_5_5_5;
+ *endian = r600_endian_swap(16);
+ return;
+ }
+
desc = util_format_description(pformat);
if (desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) {
goto out_unknown;