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

414
Mesa.spec
View File

@ -16,40 +16,89 @@
#
# 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
%if 0%{?suse_version} >= 1330
%define libglvnd 1
%define libglvnd 1
%endif
%define glamor 1
%define _name_archive mesa
%define _version 17.2.6
%define with_opencl 0
%define with_vulkan 0
%define with_llvm 0
%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x
%define gallium_loader 1
%define gallium_loader 1
%else
%define gallium_loader 0
%define gallium_loader 0
%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 vdpau_nouveau 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
%ifarch %ix86 x86_64
%define with_nine 1
%define with_nine 1
%endif
%if 0%{gallium_loader} && 0%{?suse_version} >= 1330
# llvm >= 3.9 not provided for <= 1330
%ifnarch ppc
%define with_opencl 1
%ifnarch ppc
%define with_opencl 1
%endif
%ifarch %ix86 x86_64
%define with_vulkan 1
%endif
%endif
%ifarch %ix86 x86_64
%define with_vulkan 1
%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
@ -157,8 +206,10 @@ BuildRequires: pkgconfig(wayland-client) >= 1.11
BuildRequires: pkgconfig(wayland-protocols) >= 1.8
BuildRequires: pkgconfig(wayland-server) >= 1.11
%endif
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
%if 0%{with_llvm}
BuildRequires: llvm-devel
%endif
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
BuildRequires: ncurses-devel
%endif
@ -169,11 +220,17 @@ BuildRequires: libclc
%endif
%if 0%{?libglvnd}
Requires: Mesa-libEGL1 = %{version}
Requires: Mesa-libGL1 = %{version}
Requires: Mesa%{mini}-libEGL1 = %{version}
Requires: Mesa%{mini}-libGL1 = %{version}
Requires: libglvnd >= 0.1.0
%endif
%if 0%{?bootstrap}
Requires: this-is-only-for-build-envs
Provides: Mesa = %{version}-%{release}
Conflicts: Mesa
%endif
%description
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
@ -192,15 +249,15 @@ just Mesa or The Mesa 3-D graphics library.
%package devel
Summary: Libraries, includes and more to develop Mesa applications
Group: Development/Libraries/X11
Requires: Mesa = %{version}
Requires: Mesa-dri-devel = %{version}
Requires: Mesa-libEGL-devel = %{version}
Requires: Mesa-libGL-devel = %{version}
Requires: Mesa-libGLESv1_CM-devel = %{version}
Requires: Mesa-libGLESv2-devel = %{version}
Requires: Mesa-libglapi-devel = %{version}
Requires: libOSMesa-devel = %{version}
Requires: libgbm-devel
Requires: Mesa%{?mini} = %{version}
Requires: Mesa%{?mini}-dri-devel = %{version}
Requires: Mesa%{?mini}-libEGL-devel = %{version}
Requires: Mesa%{?mini}-libGL-devel = %{version}
Requires: Mesa%{?mini}-libGLESv1_CM-devel = %{version}
Requires: Mesa%{?mini}-libGLESv2-devel = %{version}
Requires: Mesa%{?mini}-libglapi-devel = %{version}
Requires: libOSMesa%{?mini}-devel = %{version}
Requires: libgbm%{?mini}-devel
Provides: Mesa-devel-static = %{version}
Provides: xorg-x11-Mesa-devel = %{version}
Obsoletes: Mesa-devel-static < %{version}
@ -208,7 +265,12 @@ Obsoletes: xorg-x11-Mesa-devel < %{version}
Provides: Mesa-libIndirectGL-devel = %{version}
Obsoletes: Mesa-libIndirectGL-devel < %{version}
%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
%description devel
@ -226,15 +288,20 @@ just Mesa or The Mesa 3-D graphics library.
* OpenGL is a trademark of Silicon Graphics Incorporated.
%package -n Mesa-libEGL1
%package libEGL1
# Kudos to Debian for the descriptions
Summary: Free implementation of the EGL API
Group: System/Libraries
%if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0
%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
library. EGL provides a platform-agnostic mechanism for creating
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
support.
%package -n Mesa-libEGL-devel
%package libEGL-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libEGL1 = %{version}
Requires: Mesa%{?mini}-libEGL1 = %{version}
%if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0
%endif
# 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
compiling programs against EGL native platform graphics interface
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
programs against the EGL library.
%package -n Mesa-libGL1
%package libGL1
Summary: The GL/GLX runtime of the Mesa 3D graphics library
Group: System/Libraries
Requires: Mesa = %{version}
Requires: Mesa%{?mini} = %{version}
%if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0
%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
generic OpenGL implementation for rendering three-dimensional
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
the X Window System.
%package -n Mesa-libGL-devel
%package libGL-devel
Summary: GL/GLX development files of the OpenGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libGL1 = %{version}
Requires: Mesa%{?mini}-libGL1 = %{version}
%if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0
%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
generic OpenGL implementation for rendering three-dimensional
graphics.
@ -298,14 +380,19 @@ graphics.
This package includes headers and static libraries for compiling
programs with Mesa.
%package -n Mesa-libGLESv1_CM1
%package libGLESv1_CM1
Summary: Free implementation of the OpenGL|ES 1.x Common Profile API
Group: System/Libraries
%if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0
%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
graphics on embedded systems - including consoles, phones, appliances
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.
%package -n Mesa-libGLESv1_CM-devel
%package libGLESv1_CM-devel
Summary: Development files for the OpenGL ES 1.x API
Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv1_CM1 = %{version}
Requires: Mesa%{?mini}-libGLESv1_CM1 = %{version}
%if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0
%endif
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
graphics on embedded systems - including consoles, phones, appliances
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
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
Group: System/Libraries
%if 0%{?libglvnd}
Requires: libglvnd >= 0.1.0
%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
graphics on embedded systems - including consoles, phones, appliances
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
ES 3 entry points.
%package -n Mesa-libGLESv2-devel
%package libGLESv2-devel
Summary: Development files for the OpenGL ES 2.x API
Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv2-2 = %{version}
Requires: Mesa%{?mini}-libGLESv2-2 = %{version}
%if 0%{?libglvnd}
Requires: libglvnd-devel >= 0.1.0
%endif
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
graphics on embedded systems - including consoles, phones, appliances
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
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
Group: Development/Libraries/C and C++
%if 0%{?libglvnd} == 0
Requires: Mesa-libGLESv2-2 = %{version}
Requires: Mesa%{?mini}-libGLESv2-2 = %{version}
%endif
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
graphics on embedded systems - including consoles, phones, appliances
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
applications using the OpenGL|ES 3.x APIs.
%package -n libOSMesa8
%package -n libOSMesa%{?mini}8
Summary: Mesa Off-screen rendering extension
# Wrongly named package shipped .so.8
Group: System/Libraries
Obsoletes: 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
off-screen buffer using the OpenGL API without having to create a
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
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
off-screen buffer using the OpenGL API without having to create a
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
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*
functions. It is intended to be mainly used by the Mesa-libGLES*
packages.
%package -n Mesa-libglapi-devel
%package libglapi-devel
Summary: Development files for the free implementation of the GL API
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
dispatching all the gl* functions. It is intended to be mainly used by
the Mesa-libGLES* packages.
%package -n Mesa-dri-devel
%package dri-devel
Summary: Development files for the DRI API
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
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
Group: System/Libraries
Requires: Mesa = %{version}
Requires: Mesa%{?mini} = %{version}
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
Nouveau's 3D acceleration to work. It is packaged separately
since it is still experimental.
%package -n libgbm1
%package -n libgbm%{?mini}1
Summary: Generic buffer management API
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
a mechanism for allocating buffers for graphics rendering tied to
Mesa.
@ -463,12 +605,17 @@ Mesa.
GBM is intended to be used as a native platform for EGL on drm or
openwfd.
%package -n libgbm-devel
%package -n libgbm%{?mini}-devel
Summary: Development files for the EGL API
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
a mechanism for allocating buffers for graphics rendering tied to
Mesa.
@ -479,21 +626,31 @@ openwfd.
This package provides the development environment for compiling
programs against the GBM library.
%package -n libwayland-egl1
%package -n libwayland-egl%{?mini}1
Summary: Additional egl functions for wayland
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
that run within the wayland framework. This allows for applications
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
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
implementation of Mesa.
@ -695,7 +852,9 @@ autoreconf -fvi
--enable-texture-float \
--enable-osmesa \
--enable-dri3 \
%{?with_nine:--enable-nine} \
%if 0%{?with_nine}
--enable-nine \
%endif
%if %{glamor}
--enable-gbm \
--enable-glx-tls \
@ -705,7 +864,7 @@ autoreconf -fvi
--enable-opencl-icd \
%endif
--with-dri-searchpath=%{_libdir}/dri \
%ifarch aarch64 %arm ppc64 ppc64le s390x %ix86 x86_64
%if 0%{with_llvm}
--enable-llvm \
--enable-llvm-shared-libs \
%endif
@ -715,24 +874,29 @@ autoreconf -fvi
%if 0%{with_vulkan}
--with-vulkan-drivers=intel,radeon \
%endif
%ifarch %ix86 x86_64
%if %{bootstrap}
--with-dri-drivers=swrast \
--with-gallium-drivers=swrast \
%else
%ifarch %ix86 x86_64
--enable-xa \
--with-dri-drivers=i915,i965,nouveau,r200,radeon \
--with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,svga,virgl \
%endif
%ifarch %arm aarch64
%endif
%ifarch %arm aarch64
--enable-xa \
--with-dri-drivers=nouveau \
--with-gallium-drivers=r300,r600,nouveau,swrast,freedreno,vc4 \
%endif
%ifarch ppc64 ppc64le
%endif
%ifarch ppc64 ppc64le
--enable-xa \
--with-dri-drivers=nouveau \
--with-gallium-drivers=r300,r600,nouveau,swrast \
%endif
%ifarch ia64 ppc hppa s390 s390x
%endif
%ifarch ia64 ppc hppa s390 s390x
--with-dri-drivers=swrast \
--with-gallium-drivers=swrast \
%endif
%endif
CFLAGS="%{optflags} -DNDEBUG"
make %{?_smp_mflags}
@ -766,31 +930,31 @@ done
%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 -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
%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
@ -816,13 +980,13 @@ done
%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
@ -846,7 +1010,7 @@ done
%config %{_sysconfdir}/drirc
%dir %{_libdir}/dri
%{_libdir}/dri/*_dri.so
%if 0%{?is_opensuse}
%if 0%{?is_opensuse} && !%{bootstrap}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so
@ -862,7 +1026,7 @@ done
%dir %{_datadir}/vulkan/icd.d
%endif
%files -n Mesa-libEGL1
%files libEGL1
%defattr(-,root,root)
%if 0%{?libglvnd}
%{_libdir}/libEGL_mesa.so*
@ -873,7 +1037,7 @@ done
%{_libdir}/libEGL.so.1*
%endif
%files -n Mesa-libEGL-devel
%files libEGL-devel
%defattr(-,root,root)
%{_includedir}/EGL
%{_includedir}/KHR
@ -882,7 +1046,7 @@ done
%endif
%{_libdir}/pkgconfig/egl.pc
%files -n Mesa-libGL1
%files libGL1
%defattr(-,root,root)
%if 0%{?libglvnd}
%{_libdir}/libGLX_mesa.so*
@ -891,7 +1055,7 @@ done
%{_libdir}/libGL.so.1*
%endif
%files -n Mesa-libGL-devel
%files libGL-devel
%defattr(-,root,root)
%dir %{_includedir}/GL
%{_includedir}/GL/*.h
@ -902,13 +1066,13 @@ done
%{_libdir}/pkgconfig/gl.pc
%{_mandir}/man3/gl[A-Z]*
%files -n Mesa-libGLESv1_CM1
%files libGLESv1_CM1
%defattr(-,root,root)
%if 0%{?libglvnd} == 0
%{_libdir}/libGLESv1_CM.so.1*
%endif
%files -n Mesa-libGLESv1_CM-devel
%files libGLESv1_CM-devel
%defattr(-,root,root)
%{_includedir}/GLES
%if 0%{?libglvnd} == 0
@ -916,13 +1080,13 @@ done
%endif
%{_libdir}/pkgconfig/glesv1_cm.pc
%files -n Mesa-libGLESv2-2
%files libGLESv2-2
%defattr(-,root,root)
%if 0%{?libglvnd} == 0
%{_libdir}/libGLESv2.so.2*
%endif
%files -n Mesa-libGLESv2-devel
%files libGLESv2-devel
%defattr(-,root,root)
%{_includedir}/GLES2
%if 0%{?libglvnd} == 0
@ -930,45 +1094,46 @@ done
%endif
%{_libdir}/pkgconfig/glesv2.pc
%files -n Mesa-libGLESv3-devel
%files libGLESv3-devel
%defattr(-,root,root)
%{_includedir}/GLES3
#%_libdir/libGLESv3.so
#%_libdir/pkgconfig/glesv3.pc
%files -n libOSMesa8
%files -n libOSMesa%{?mini}8
%defattr(-,root,root)
%{_libdir}/libOSMesa.so.8.0.0
%{_libdir}/libOSMesa.so.8
%files -n libOSMesa-devel
%files -n libOSMesa%{?mini}-devel
%defattr(-,root,root)
%{_includedir}/GL/osmesa.h
%{_libdir}/libOSMesa.so
%{_libdir}/pkgconfig/osmesa.pc
%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)
%{_libdir}/libwayland-egl.so.1*
%files -n libwayland-egl-devel
%files -n libwayland-egl%{?mini}-devel
%defattr(-,root,root)
%{_libdir}/libwayland-egl.so
%{_libdir}/pkgconfig/wayland-egl.pc
%endif
%files -n libgbm1
%files -n libgbm%{?mini}1
%defattr(-,root,root)
%{_libdir}/libgbm.so.1*
%files -n libgbm-devel
%files -n libgbm%{?mini}-devel
%defattr(-,root,root)
%{_includedir}/gbm.h
%{_libdir}/libgbm.so
%{_libdir}/pkgconfig/gbm.pc
%ifarch aarch64 %ix86 x86_64 %arm ppc64 ppc64le
%if !%{bootstrap}
%files -n libxatracker2
%defattr(-,root,root)
%{_libdir}/libxatracker.so.2*
@ -979,6 +1144,7 @@ done
%{_libdir}/libxatracker.so
%{_libdir}/pkgconfig/xatracker.pc
%endif
%endif
%if %{xvmc_support}
%files -n libXvMC_nouveau
@ -1021,6 +1187,7 @@ done
%{_libdir}/vdpau/libvdpau_r600.so.1.0.0
%endif
%if !%{bootstrap}
%ifarch %ix86 x86_64
%files -n libvdpau_radeonsi
%defattr(-,root,root)
@ -1029,23 +1196,24 @@ done
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0
%{_libdir}/vdpau/libvdpau_radeonsi.so.1.0.0
%endif
%endif
%files -n Mesa-libglapi0
%files libglapi0
%defattr(-,root,root)
%{_libdir}/libglapi.so.0*
%files -n Mesa-libglapi-devel
%files libglapi-devel
%defattr(-,root,root)
%{_libdir}/libglapi.so
%files -n Mesa-dri-devel
%files dri-devel
%defattr(-,root,root)
%{_includedir}/GL/internal
%{_libdir}/pkgconfig/dri.pc
%if 0%{?is_opensuse}
%if 0%{?is_opensuse} && !%{bootstrap}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%files -n Mesa-dri-nouveau
%files dri-nouveau
%{_libdir}/dri/nouveau_dri.so
%{_libdir}/dri/nouveau_vieux_dri.so
%endif
@ -1079,11 +1247,13 @@ done
%endif
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%if !%{bootstrap}
%files libva
%defattr(-,root,root)
%dir %{_libdir}/dri
%{_libdir}/dri/*_drv_video.so
%endif
%endif
%if 0%{with_vulkan}
%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