Accepting request 555227 from home:michalsrb:branches:bnc1071297:X11:XOrg

- 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.

OBS-URL: https://build.opensuse.org/request/show/555227
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=666
This commit is contained in:
Stefan Dirsch 2017-12-09 07:37:06 +00:00 committed by Git OBS Bridge
parent 162fc6874a
commit f308b44782
6 changed files with 6331 additions and 122 deletions

2
Mesa-mini-rpmlintrc Normal file
View File

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

4736
Mesa-mini.changes Normal file

File diff suppressed because it is too large Load Diff

1277
Mesa-mini.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
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.
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Nov 26 16:03:29 UTC 2017 - aavindraa@gmail.com Sun Nov 26 16:03:29 UTC 2017 - aavindraa@gmail.com

382
Mesa.spec
View File

@ -16,32 +16,54 @@
# #
# Following two defines and the Name attribute are the only difference between
# Mesa.spec and Mesa-mini.spec. Mesa-mini.spec is generated from Mesa.spec
# using the pre_checkin.sh script.
#
# The purpose of Mesa-mini is to provide something that can be build fast
# without waiting for llvm and can be used as BuildRequirement for most
# packages that build against Mesa. These packages should later work correctly
# when installed together with the full Mesa package.
#
# At the moment Mesa-mini is Mesa without everything that requires llvm and
# without all dri and gallium drivers except for swrast.
%define bootstrap 0
%define mini %nil
%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.2.6
%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
%define xvmc_support 0
%define vdpau_nouveau 0
%define vdpau_radeon 0
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%define xvmc_support 1 %define xvmc_support 1
%define vdpau_nouveau 1 %define vdpau_nouveau 1
%define vdpau_radeon 1 %define vdpau_radeon 1
%else
%define xvmc_support 0
%define vdpau_nouveau 0
%define vdpau_radeon 0
%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
@ -52,6 +74,33 @@
%endif %endif
%endif %endif
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
%define with_llvm 1
%endif
%if %{bootstrap}
# 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
Name: Mesa Name: Mesa
Version: 17.2.6 Version: 17.2.6
Release: 0 Release: 0
@ -157,8 +206,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
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64 %if 0%{with_llvm}
BuildRequires: llvm-devel BuildRequires: llvm-devel
%endif
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
%endif %endif
@ -169,11 +220,17 @@ BuildRequires: libclc
%endif %endif
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: Mesa-libEGL1 = %{version} Requires: Mesa%{mini}-libEGL1 = %{version}
Requires: Mesa-libGL1 = %{version} Requires: Mesa%{mini}-libGL1 = %{version}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa = %{version}-%{release}
Conflicts: Mesa
%endif
%description %description
Mesa is a 3-D graphics library with an API which is very similar to Mesa is a 3-D graphics library with an API which is very similar to
that of OpenGL.* To the extent that Mesa utilizes the OpenGL command that of OpenGL.* To the extent that Mesa utilizes the OpenGL command
@ -192,15 +249,15 @@ just Mesa or The Mesa 3-D graphics library.
%package devel %package devel
Summary: Libraries, includes and more to develop Mesa applications Summary: Libraries, includes and more to develop Mesa applications
Group: Development/Libraries/X11 Group: Development/Libraries/X11
Requires: Mesa = %{version} Requires: Mesa%{?mini} = %{version}
Requires: Mesa-dri-devel = %{version} Requires: Mesa%{?mini}-dri-devel = %{version}
Requires: Mesa-libEGL-devel = %{version} Requires: Mesa%{?mini}-libEGL-devel = %{version}
Requires: Mesa-libGL-devel = %{version} Requires: Mesa%{?mini}-libGL-devel = %{version}
Requires: Mesa-libGLESv1_CM-devel = %{version} Requires: Mesa%{?mini}-libGLESv1_CM-devel = %{version}
Requires: Mesa-libGLESv2-devel = %{version} Requires: Mesa%{?mini}-libGLESv2-devel = %{version}
Requires: Mesa-libglapi-devel = %{version} Requires: Mesa%{?mini}-libglapi-devel = %{version}
Requires: libOSMesa-devel = %{version} Requires: libOSMesa%{?mini}-devel = %{version}
Requires: libgbm-devel Requires: libgbm%{?mini}-devel
Provides: Mesa-devel-static = %{version} Provides: Mesa-devel-static = %{version}
Provides: xorg-x11-Mesa-devel = %{version} Provides: xorg-x11-Mesa-devel = %{version}
Obsoletes: Mesa-devel-static < %{version} Obsoletes: Mesa-devel-static < %{version}
@ -208,7 +265,12 @@ 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}
%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%{?mini}-devel
%endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-devel = %{version}-%{release}
Conflicts: Mesa-devel
%endif %endif
%description devel %description devel
@ -226,15 +288,20 @@ 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: Free implementation of the EGL API
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libEGL1 = %{version}-%{release}
Conflicts: Mesa-libEGL1
%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,16 +312,21 @@ 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%{?mini}-libEGL1 = %{version}
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0 Requires: libglvnd-devel >= 0.1.0
%endif %endif
# Other requires taken care of by pkgconfig already # Other requires taken care of by pkgconfig already
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libEGL-devel = %{version}-%{release}
Conflicts: Mesa-libEGL-devel
%endif
%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,15 +336,20 @@ 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%{?mini} = %{version}
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGL1 = %{version}-%{release}
Conflicts: Mesa-libGL1
%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,15 +359,20 @@ 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%{?mini}-libGL1 = %{version}
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0 Requires: libglvnd-devel >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGL-devel = %{version}-%{release}
Conflicts: Mesa-libGL-devel
%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,14 +380,19 @@ 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: Free implementation of the OpenGL|ES 1.x Common Profile API
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGLESv1_CM1 = %{version}-%{release}
Conflicts: Mesa-libGLESv1_CM1
%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 a cross-platform 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
@ -313,16 +400,21 @@ 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%{?mini}-libGLESv1_CM1 = %{version}
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0 Requires: libglvnd-devel >= 0.1.0
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGLESv1_CM-devel = %{version}-%{release}
Conflicts: Mesa-libGLESv1_CM-devel
%endif
%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 a cross-platform 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
@ -333,14 +425,19 @@ 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: Free implementation of the OpenGL|ES 2.x API
Group: System/Libraries Group: System/Libraries
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0 Requires: libglvnd >= 0.1.0
%endif %endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGLESv2-2 = %{version}-%{release}
Conflicts: Mesa-libGLESv2-2
%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 a cross-platform 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
@ -352,16 +449,21 @@ 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%{?mini}-libGLESv2-2 = %{version}
%if 0%{?libglvnd} %if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0 Requires: libglvnd-devel >= 0.1.0
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGLESv2-devel = %{version}-%{release}
Conflicts: Mesa-libGLESv2-devel
%endif
%description -n Mesa-libGLESv2-devel %description libGLESv2-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is a cross-platform 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
@ -373,15 +475,20 @@ 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
Requires: Mesa-libGLESv2-2 = %{version} Requires: Mesa%{?mini}-libGLESv2-2 = %{version}
%endif %endif
Requires: pkgconfig(egl) Requires: pkgconfig(egl)
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libGLESv3-devel = %{version}-%{release}
Conflicts: Mesa-libGLESv3-devel
%endif
%description -n Mesa-libGLESv3-devel %description libGLESv3-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D OpenGL|ES is a cross-platform 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
@ -390,72 +497,107 @@ extensions for the special needs of embedded systems.
This package provides a development environment for building This package provides a development environment for building
applications using the OpenGL|ES 3.x APIs. applications using the OpenGL|ES 3.x APIs.
%package -n libOSMesa8 %package -n libOSMesa%{?mini}8
Summary: Mesa Off-screen rendering extension Summary: Mesa Off-screen rendering extension
# Wrongly named package shipped .so.8 # Wrongly named package shipped .so.8
Group: System/Libraries Group: System/Libraries
Obsoletes: libOSMesa9 < %{version}-%{release} Obsoletes: libOSMesa9 < %{version}-%{release}
Provides: libOSMesa9 = %{version}-%{release} Provides: libOSMesa9 = %{version}-%{release}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libOSMesa8 = %{version}-%{release}
Conflicts: libOSMesa8
%endif
%description -n libOSMesa8 %description -n libOSMesa%{?mini}8
OSmesa is a Mesa extension that allows programs to render to an OSmesa is a Mesa extension that allows programs to render to an
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 libOSMesa-devel %package -n libOSMesa%{?mini}-devel
Summary: Development files for the Mesa Offscreen Rendering extension Summary: Development files for the Mesa Offscreen Rendering extension
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libOSMesa8 = %{version} Requires: libOSMesa%{?mini}8 = %{version}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libOSMesa-devel = %{version}-%{release}
Conflicts: libOSMesa-devel
%endif
%description -n libOSMesa-devel %description -n libOSMesa%{?mini}-devel
Development files for the OSmesa Mesa extension that allows programs to render to an Development files for the OSmesa Mesa extension that allows programs to render to an
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
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libglapi0 = %{version}-%{release}
Conflicts: Mesa-libglapi0
%endif
%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 free implementation of the GL API
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: Mesa-libglapi0 = %{version} Requires: Mesa%{?mini}-libglapi0 = %{version}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-libglapi-devel = %{version}-%{release}
Conflicts: Mesa-libglapi-devel
%endif
%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 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%{?mini} = %{version}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-dri-devel = %{version}-%{release}
Conflicts: Mesa-dri-devel
%endif
%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.
%package -n Mesa-dri-nouveau %package dri-nouveau
Summary: Mesa DRI plug-in for 3D acceleration via Nouveau Summary: Mesa DRI plug-in for 3D acceleration via Nouveau
Group: System/Libraries Group: System/Libraries
Requires: Mesa = %{version} Requires: Mesa%{?mini} = %{version}
Supplements: xf86-video-nouveau Supplements: xf86-video-nouveau
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa-dri-nouveau = %{version}-%{release}
Conflicts: Mesa-dri-nouveau
%endif
%description -n Mesa-dri-nouveau %description dri-nouveau
This package contains nouveau_dri.so, which is necessary for 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 libgbm1 %package -n libgbm%{?mini}1
Summary: Generic buffer management API Summary: Generic buffer management API
Group: System/Libraries Group: System/Libraries
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libgbm1 = %{version}-%{release}
Conflicts: libgbm1
%endif
%description -n libgbm1 %description -n libgbm%{?mini}1
This package contains the GBM buffer management library. It provides This package contains the GBM buffer management library. It provides
a mechanism for allocating buffers for graphics rendering tied to a mechanism for allocating buffers for graphics rendering tied to
Mesa. Mesa.
@ -463,12 +605,17 @@ Mesa.
GBM is intended to be used as a native platform for EGL on drm or GBM is intended to be used as a native platform for EGL on drm or
openwfd. openwfd.
%package -n libgbm-devel %package -n libgbm%{?mini}-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: libgbm1 = %{version} Requires: libgbm%{?mini}1 = %{version}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libgbm-devel = %{version}-%{release}
Conflicts: libgbm-devel
%endif
%description -n libgbm-devel %description -n libgbm%{?mini}-devel
This package contains the GBM buffer management library. It provides This package contains the GBM buffer management library. It provides
a mechanism for allocating buffers for graphics rendering tied to a mechanism for allocating buffers for graphics rendering tied to
Mesa. Mesa.
@ -479,21 +626,31 @@ openwfd.
This package provides the development environment for compiling This package provides the development environment for compiling
programs against the GBM library. programs against the GBM library.
%package -n libwayland-egl1 %package -n libwayland-egl%{?mini}1
Summary: Additional egl functions for wayland Summary: Additional egl functions for wayland
Group: System/Libraries Group: System/Libraries
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libwayland-egl1 = %{version}-%{release}
Conflicts: libwayland-egl1
%endif
%description -n libwayland-egl1 %description -n libwayland-egl%{?mini}1
This package provides additional functions for egl-using programs This package provides additional functions for egl-using programs
that run within the wayland framework. This allows for applications that run within the wayland framework. This allows for applications
that need not run full-screen and cooperate with a compositor. that need not run full-screen and cooperate with a compositor.
%package -n libwayland-egl-devel %package -n libwayland-egl%{?mini}-devel
Summary: Development files for libwayland-egl1 Summary: Development files for libwayland-egl1
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libwayland-egl1 = %{version} Requires: libwayland-egl%{?mini}1 = %{version}
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: libwayland-egl-devel = %{version}-%{release}
Conflicts: libwayland-egl-devel
%endif
%description -n libwayland-egl-devel %description -n libwayland-egl%{?mini}-devel
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.
@ -695,7 +852,9 @@ autoreconf -fvi
--enable-texture-float \ --enable-texture-float \
--enable-osmesa \ --enable-osmesa \
--enable-dri3 \ --enable-dri3 \
%{?with_nine:--enable-nine} \ %if 0%{?with_nine}
--enable-nine \
%endif
%if %{glamor} %if %{glamor}
--enable-gbm \ --enable-gbm \
--enable-glx-tls \ --enable-glx-tls \
@ -705,7 +864,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,6 +874,10 @@ autoreconf -fvi
%if 0%{with_vulkan} %if 0%{with_vulkan}
--with-vulkan-drivers=intel,radeon \ --with-vulkan-drivers=intel,radeon \
%endif %endif
%if %{bootstrap}
--with-dri-drivers=swrast \
--with-gallium-drivers=swrast \
%else
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
--enable-xa \ --enable-xa \
--with-dri-drivers=i915,i965,nouveau,r200,radeon \ --with-dri-drivers=i915,i965,nouveau,r200,radeon \
@ -733,6 +896,7 @@ autoreconf -fvi
%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
%endif %endif
CFLAGS="%{optflags} -DNDEBUG" CFLAGS="%{optflags} -DNDEBUG"
make %{?_smp_mflags} make %{?_smp_mflags}
@ -766,31 +930,31 @@ done
%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 %if 0%{?libglvnd} == 0
%post -n Mesa-libGLESv1_CM1 -p /sbin/ldconfig %post 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 %endif
%post -n libOSMesa8 -p /sbin/ldconfig %post -n libOSMesa%{?mini}8 -p /sbin/ldconfig
%postun -n libOSMesa8 -p /sbin/ldconfig %postun -n libOSMesa%{?mini}8 -p /sbin/ldconfig
%post -n libgbm1 -p /sbin/ldconfig %post -n libgbm%{?mini}1 -p /sbin/ldconfig
%postun -n libgbm1 -p /sbin/ldconfig %postun -n libgbm%{?mini}1 -p /sbin/ldconfig
%post -n libxatracker2 -p /sbin/ldconfig %post -n libxatracker2 -p /sbin/ldconfig
@ -816,13 +980,13 @@ 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-egl%{?mini}1 -p /sbin/ldconfig
%postun -n libwayland-egl1 -p /sbin/ldconfig %postun -n libwayland-egl%{?mini}1 -p /sbin/ldconfig
%post libd3d -p /sbin/ldconfig %post libd3d -p /sbin/ldconfig
@ -846,7 +1010,7 @@ done
%config %{_sysconfdir}/drirc %config %{_sysconfdir}/drirc
%dir %{_libdir}/dri %dir %{_libdir}/dri
%{_libdir}/dri/*_dri.so %{_libdir}/dri/*_dri.so
%if 0%{?is_opensuse} %if 0%{?is_opensuse} && !%{bootstrap}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so %exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so %exclude %{_libdir}/dri/nouveau_vieux_dri.so
@ -862,7 +1026,7 @@ done
%dir %{_datadir}/vulkan/icd.d %dir %{_datadir}/vulkan/icd.d
%endif %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 +1037,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 +1046,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 +1055,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 +1066,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 +1080,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,45 +1094,46 @@ 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
#%_libdir/pkgconfig/glesv3.pc #%_libdir/pkgconfig/glesv3.pc
%files -n libOSMesa8 %files -n libOSMesa%{?mini}8
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libOSMesa.so.8.0.0 %{_libdir}/libOSMesa.so.8.0.0
%{_libdir}/libOSMesa.so.8 %{_libdir}/libOSMesa.so.8
%files -n libOSMesa-devel %files -n libOSMesa%{?mini}-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/GL/osmesa.h %{_includedir}/GL/osmesa.h
%{_libdir}/libOSMesa.so %{_libdir}/libOSMesa.so
%{_libdir}/pkgconfig/osmesa.pc %{_libdir}/pkgconfig/osmesa.pc
%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120300 && 0%{?is_opensuse}) %if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120300 && 0%{?is_opensuse})
%files -n libwayland-egl1 %files -n libwayland-egl%{?mini}1
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libwayland-egl.so.1* %{_libdir}/libwayland-egl.so.1*
%files -n libwayland-egl-devel %files -n libwayland-egl%{?mini}-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libwayland-egl.so %{_libdir}/libwayland-egl.so
%{_libdir}/pkgconfig/wayland-egl.pc %{_libdir}/pkgconfig/wayland-egl.pc
%endif %endif
%files -n libgbm1 %files -n libgbm%{?mini}1
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libgbm.so.1* %{_libdir}/libgbm.so.1*
%files -n libgbm-devel %files -n libgbm%{?mini}-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/gbm.h %{_includedir}/gbm.h
%{_libdir}/libgbm.so %{_libdir}/libgbm.so
%{_libdir}/pkgconfig/gbm.pc %{_libdir}/pkgconfig/gbm.pc
%ifarch aarch64 %ix86 x86_64 %arm ppc64 ppc64le %ifarch aarch64 %ix86 x86_64 %arm ppc64 ppc64le
%if !%{bootstrap}
%files -n libxatracker2 %files -n libxatracker2
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libxatracker.so.2* %{_libdir}/libxatracker.so.2*
@ -979,6 +1144,7 @@ done
%{_libdir}/libxatracker.so %{_libdir}/libxatracker.so
%{_libdir}/pkgconfig/xatracker.pc %{_libdir}/pkgconfig/xatracker.pc
%endif %endif
%endif
%if %{xvmc_support} %if %{xvmc_support}
%files -n libXvMC_nouveau %files -n libXvMC_nouveau
@ -1021,6 +1187,7 @@ done
%{_libdir}/vdpau/libvdpau_r600.so.1.0.0 %{_libdir}/vdpau/libvdpau_r600.so.1.0.0
%endif %endif
%if !%{bootstrap}
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%files -n libvdpau_radeonsi %files -n libvdpau_radeonsi
%defattr(-,root,root) %defattr(-,root,root)
@ -1029,23 +1196,24 @@ 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 %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
%files -n Mesa-dri-devel %files dri-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/GL/internal %{_includedir}/GL/internal
%{_libdir}/pkgconfig/dri.pc %{_libdir}/pkgconfig/dri.pc
%if 0%{?is_opensuse} %if 0%{?is_opensuse} && !%{bootstrap}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%files -n Mesa-dri-nouveau %files dri-nouveau
%{_libdir}/dri/nouveau_dri.so %{_libdir}/dri/nouveau_dri.so
%{_libdir}/dri/nouveau_vieux_dri.so %{_libdir}/dri/nouveau_vieux_dri.so
%endif %endif
@ -1079,11 +1247,13 @@ done
%endif %endif
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le %ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%if !%{bootstrap}
%files libva %files 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

15
pre_checkin.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/sh
# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz)
# create a -mini 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 bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/;
s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/;
s/^Name:.*/&-mini/
" < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec
cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-mini.changes
cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-mini-rpmlintrc
osc service localrun format_spec_file