From cb7f7446caa0509f024f067af4a1ce602d7f4e37 Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Fri, 13 Dec 2024 15:12:46 +0100 Subject: [PATCH 1/6] Sync debian/ --- debian/README.Debian | 18 + debian/README.source | 47 + debian/changelog | 182 +++ debian/control | 436 ++++++ debian/control.in | 436 ++++++ debian/copyright | 365 +++++ debian/gbp.conf | 4 + debian/libd3dadapter9-mesa-dev.install | 5 + debian/libd3dadapter9-mesa.install | 1 + debian/libegl-mesa0.install | 2 + debian/libegl-mesa0.symbols | 2 + debian/libegl1-mesa-dev.install | 2 + debian/libgbm-dev.install | 3 + debian/libgbm1.install | 2 + debian/libgbm1.lintian-overrides | 1 + debian/libgbm1.symbols | 42 + debian/libgl1-mesa-dri.install | 1 + debian/libgl1-mesa-dri.maintscript | 1 + debian/libglapi-mesa.install | 1 + debian/libglapi-mesa.lintian-overrides | 1 + debian/libglx-mesa0.install | 1 + debian/libglx-mesa0.links.in | 1 + debian/libglx-mesa0.symbols | 1305 ++++++++++++++++++ debian/libglx-mesa0.symbols.hurd | 6 + debian/libosmesa6-dev.install | 3 + debian/libosmesa6.install | 1 + debian/libosmesa6.links.in | 1 + debian/libosmesa6.lintian-overrides | 1 + debian/libosmesa6.shlibs | 1 + debian/libxatracker-dev.install | 5 + debian/libxatracker2.install | 1 + debian/libxatracker2.symbols | 35 + debian/local/control | 1 + debian/local/script | 26 + debian/mesa-common-dev.install | 2 + debian/mesa-drm-shim.install | 1 + debian/mesa-libgallium.install | 1 + debian/mesa-libgallium.lintian-overrides | 1 + debian/mesa-opencl-icd.install | 3 + debian/mesa-opencl-icd.lintian-overrides | 1 + debian/mesa-vulkan-drivers.install | 7 + debian/mesa-vulkan-drivers.lintian-overrides | 3 + debian/mesa-vulkan-drivers.triggers | 1 + debian/rules | 321 +++++ debian/shlibs.local | 1 + debian/source/format | 1 + debian/tests/control | 7 + debian/tests/gles-gbm-build-test | 9 + debian/tests/gles-gbm.c | 179 +++ debian/upstream/signing-key.asc | 906 ++++++++++++ debian/watch | 3 + 51 files changed, 4387 insertions(+) create mode 100644 debian/README.Debian create mode 100644 debian/README.source create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/control.in create mode 100644 debian/copyright create mode 100644 debian/gbp.conf create mode 100644 debian/libd3dadapter9-mesa-dev.install create mode 100644 debian/libd3dadapter9-mesa.install create mode 100644 debian/libegl-mesa0.install create mode 100644 debian/libegl-mesa0.symbols create mode 100644 debian/libegl1-mesa-dev.install create mode 100644 debian/libgbm-dev.install create mode 100644 debian/libgbm1.install create mode 100644 debian/libgbm1.lintian-overrides create mode 100644 debian/libgbm1.symbols create mode 100644 debian/libgl1-mesa-dri.install create mode 100644 debian/libgl1-mesa-dri.maintscript create mode 100644 debian/libglapi-mesa.install create mode 100644 debian/libglapi-mesa.lintian-overrides create mode 100644 debian/libglx-mesa0.install create mode 100644 debian/libglx-mesa0.links.in create mode 100644 debian/libglx-mesa0.symbols create mode 100644 debian/libglx-mesa0.symbols.hurd create mode 100644 debian/libosmesa6-dev.install create mode 100644 debian/libosmesa6.install create mode 100644 debian/libosmesa6.links.in create mode 100644 debian/libosmesa6.lintian-overrides create mode 100644 debian/libosmesa6.shlibs create mode 100644 debian/libxatracker-dev.install create mode 100644 debian/libxatracker2.install create mode 100644 debian/libxatracker2.symbols create mode 100644 debian/local/control create mode 100644 debian/local/script create mode 100644 debian/mesa-common-dev.install create mode 100644 debian/mesa-drm-shim.install create mode 100644 debian/mesa-libgallium.install create mode 100644 debian/mesa-libgallium.lintian-overrides create mode 100644 debian/mesa-opencl-icd.install create mode 100644 debian/mesa-opencl-icd.lintian-overrides create mode 100644 debian/mesa-vulkan-drivers.install create mode 100644 debian/mesa-vulkan-drivers.lintian-overrides create mode 100644 debian/mesa-vulkan-drivers.triggers create mode 100755 debian/rules create mode 100644 debian/shlibs.local create mode 100644 debian/source/format create mode 100644 debian/tests/control create mode 100644 debian/tests/gles-gbm-build-test create mode 100644 debian/tests/gles-gbm.c create mode 100644 debian/upstream/signing-key.asc create mode 100644 debian/watch diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 000000000000..f4119621ba13 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,18 @@ +Documentation for the libegl1-x11, libgles1, and libgles2 virtual +packages. + +Although there are is no standardised linux ABI for GL|ES, there is +a “strongly encouraged” set of standard headers, type and linkage definitions +supplied by the Khronos group[1]. The mesa implementation provides this ABI. +Any non-mesa implementation that wants to provide these packages should +conform to the Khronos group's de-facto ABI. + +The case of EGL is similar; Khronos again supplies a de-facto linux ABI. +The EGL ABI is necessarily tied to the native windowing system by the +eglNativeDisplayType, eglNativeWindowType, and eglNativePixmapType typedefs. +The EGL virtual package therefore includes the name of the x11 windowing +system to leave room should further windowing ABIs be standardised. + +[1]: http://www.khronos.org/registry/implementers_guide.html#uncontrolled + + -- Cyril Brulebois , Sat, 22 Jan 2011 06:03:46 +0100 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 000000000000..091789b5285f --- /dev/null +++ b/debian/README.source @@ -0,0 +1,47 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. + +The .orig.tar.gz is upstream's mesa tarball. + +While building from git, dpkg-source can complain about symlinks vs. +normal files mismatches. To work around this issue, before uploading, +and without committing: + + find -type l | while read dest; do src=$(readlink -f $dest); rm $dest; cp $src $dest; done + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. + Thus, the patching system requires a build dependency on quilt. + +Updating debian/upstream/signing-key.asc with new keys requires the following steps: +* fetch the key: + gpg [--keyserver $server] --recv-keys $keyid +* export it to the file: + gpg --export-options export-minimal --export -a $keyid >> debian/upstream/signing-key.asc diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 000000000000..169cc671eee5 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,182 @@ +mesa (24.3.0~pre20241111-1asahi2.24.04) noble; urgency=medium + + * Build for noble + * Bump to asahi-20241111 + + -- Andreas Schröder Tue, 19 Nov 2024 01:03:00 +0100 + +mesa (24.3.0~pre20241111-1asahi1.24.10) oracular; urgency=medium + + * Build for oracular + * Bump to asahi-20241111 + + -- Andreas Schröder Mon, 18 Nov 2024 23:28:00 +0100 + +mesa (24.3.0~pre20241104-1asahi21.24.04) noble; urgency=medium + + * Build for noble + * Use rustc-1.80 + * Disable broadcom and other Vulkan drivers + * Disable RustICL for i386 + * Disable d3d12, r600 + * Add python3-yaml, which is required for building, but not installed on i386 build hosts + * Add dri_gbm.so and its symbols + + -- Andreas Schröder Sun, 17 Nov 2024 18:20:00 +0100 + +mesa (24.3.0~pre20241104-1asahi20.24.10) oracular; urgency=medium + + * Build for oracular + * Use rustc-1.80 + * Disable broadcom and other Vulkan drivers + * Disable RustICL for i386 + * Disable d3d12, r600 + * Add python3-yaml, which is required for building, but not installed on i386 build hosts + * Add dri_gbm.so and its symbols + + -- Andreas Schröder Sun, 17 Nov 2024 01:03:00 +0100 + +mesa (24.3.0~pre20241104-1asahi2.24.04) noble; urgency=medium + + * Remove unsupported build options + * Add new symbols + + -- Andreas Schröder Mon, 04 Nov 2024 09:06:00 +0100 + +mesa (24.3.0~pre20241104-1asahi1.24.04) noble; urgency=medium + + * Bump to asahi-20241104 + + -- Andreas Schröder Mon, 04 Nov 2024 08:51:00 +0100 + +mesa (24.3.0~pre20241101-1asahi1.24.04) noble; urgency=medium + + * Bump to asahi-20241101 + + -- Andreas Schröder Sun, 03 Nov 2024 07:42:00 +0100 + +mesa (24.3.0~pre20241006-1asahi3.24.04) noble; urgency=medium + + * Sync debian/ from ubuntu/oracular + + -- Tobias Heider Mon, 21 Oct 2024 21:18:59 +0200 + +mesa (24.2.0~pre20241006-1asahi3.24.04) oracular; urgency=medium + + * Make libgallium install path arch agnostic + * Build asahi vulkan driver on all archs + * Add i386 to RUSTICL_ARCHS + + -- Tobias Heider Sun, 20 Oct 2024 16:45:09 +0200 + +mesa (24.2.0~pre20241006-1asahi2.24.04) noble; urgency=medium + + * Use LLVM 18 + + -- Andreas Schröder Tue, 11 Oct 2024 14:31:00 +0200 + +mesa (24.2.0~pre20241006-1asahi1.24.04) noble; urgency=medium + + * Bump to asahi-20241006 + * Build on 24.04 + * Use LLVM 16, as Mesa requires LLVM 16+, which is not available on 22.04 + * Remove dri3 build option, as it's not supported anymore + * Disable r600 driver, as it caused build errors + + -- Andreas Schröder Tue, 11 Oct 2024 08:56:00 +0200 + +mesa (24.2.0~pre20240725-1asahi1.24.04) noble; urgency=medium + + * Build on 24.04 + + -- Tobias Heider Tue, 20 Aug 2024 02:57:19 +0200 + +mesa (24.2.0~pre20240725-1asahi1.22.04) jammy; urgency=medium + + * Bump to asahi-20240725 + * Backport to 22.04 + - Sync dependencies with kisak-mesa. We use the same build dependencies + so we don't have to do all the work twice + - Add symbols added with mesa 24.2.0 + - Add python3-pycparser dependency. In 24.04 this is part of python itself. + - Don't build rusticl on arm64 + - Use LLVM 15, 17 is not available on Ubuntu 22.04 + + -- Tobias Heider Thu, 15 Aug 2024 23:53:27 +0200 + +mesa (24.1.0~pre20240228-1asahi2.24.04) noble; urgency=medium + + * Reenable asahi driver + + -- Tobias Heider Thu, 25 Apr 2024 22:31:27 +0200 + +mesa (24.1.0~pre20240228-1asahi1.24.04) noble; urgency=medium + + * Bump version to match VERSION + * Port to 24.04 + + -- Tobias Heider Thu, 25 Apr 2024 16:52:15 +0200 + +mesa (24.0~pre20240228-0asahi6.23.10) mantic; urgency=medium + + [ Mark Esler ] + * Rebase to asahi-20240228 (eebfe841) + - Reset and rebase to upstream main branch + - https://gitlab.freedesktop.org/asahi/mesa + - Port debian packaging from 24.0~pre20231121-0asahi1 + + -- Tobias Heider Mon, 18 Mar 2024 14:17:08 +0100 + +mesa (24.0~pre20231121-0asahi1.23.10) mantic; urgency=medium + + * Bump wayland-protocols dependency + + -- Tobias Heider Thu, 23 Nov 2023 01:32:45 +0100 + +mesa (24.0~pre20231121-0asahi0.23.10) mantic; urgency=medium + + * Update to asahi-20231121 + + -- Tobias Heider Wed, 22 Nov 2023 09:36:16 +0100 + +mesa (23.3.0~pre20230904-1asahi1.23.10) mantic; urgency=medium + + * Update to asahi-20230904 + + -- Tobias Heider Sat, 30 Sep 2023 22:30:02 +0200 + +mesa (23.3.0~pre20230821-1asahi1.23.04) lunar; urgency=medium + + * Update to asahi-20230821 + + -- Tobias Heider Thu, 31 Aug 2023 18:47:18 +0200 + +mesa (23.3.0~pre20230801-1asahi1.23.04) lunar; urgency=medium + + * Update to asahi-20230801 + + -- Tobias Heider Thu, 10 Aug 2023 08:47:57 +0200 + +mesa (23.2.0~pre20230615-1asahi1.23.04) lunar; urgency=medium + + * Update to asahi-20230615 + + -- Tobias Heider Sun, 16 Jul 2023 17:08:28 +0200 + +mesa (23.2.0~pre20230606-1asahi1.23.04) lunar; urgency=medium + + * Update to asahi-20230606 + + -- Tobias Heider Sun, 11 Jun 2023 17:29:08 +0200 + +mesa (23.1.0-1asahi2.23.04~pre20230311) lunar; urgency=medium + + * Update to asahi-20230311 + + -- Tobias Heider Thu, 23 Mar 2023 01:09:04 +0100 + +mesa (23.0.0-1asahi1~pre20221205) kinetic; urgency=medium + + * Import mesa upstream asahi version for AGX + + -- Tobias Heider Thu, 08 Dec 2022 14:27:18 +0100 diff --git a/debian/control b/debian/control new file mode 100644 index 000000000000..ad9634802749 --- /dev/null +++ b/debian/control @@ -0,0 +1,436 @@ +Source: mesa +Section: graphics +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: Andreas Boll +Standards-Version: 4.1.4 +Build-Depends: + debhelper-compat (= 13), + directx-headers-dev (>= 1.610.0) [linux-amd64 linux-arm64], + glslang-tools [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + meson (>= 1.3.1), + quilt (>= 0.63-8.2~), + pkg-config, + libarchive-dev, + libdrm-dev (>= 2.4.119), + libx11-dev, + libxxf86vm-dev, + libexpat1-dev, + libsensors-dev [!hurd-any], + libxfixes-dev, + libxext-dev, + libva-dev (>= 1.6.0) [linux-any] , + libvdpau-dev (>= 1.1.1) [linux-any], + libvulkan-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + x11proto-dev, + linux-libc-dev (>= 2.6.31) [linux-any], + libx11-xcb-dev, + libxcb-dri2-0-dev (>= 1.8), + libxcb-glx0-dev (>= 1.8.1), + libxcb-xfixes0-dev, + libxcb-dri3-dev, + libxcb-present-dev, + libxcb-randr0-dev, + libxcb-shm0-dev, + libxcb-sync-dev, + libxrandr-dev, + libxshmfence-dev (>= 1.1), + libzstd-dev, + python3, + python3-mako, + python3-ply, + python3-pycparser [arm64 armhf], + python3-setuptools, + python3-yaml, + flex, + bison, + libelf-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libwayland-dev (>= 1.15.0) [linux-any], + libwayland-egl-backend-dev (>= 1.15.0) [linux-any], + llvm-18-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclang-18-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclang-cpp18-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclc-18-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclc-18 [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + wayland-protocols (>= 1.24), + zlib1g-dev, + libglvnd-core-dev (>= 1.3.2), + valgrind [amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x], + rustc-1.80 (>= 1.76) [amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + rustfmt-1.80 [amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + bindgen (>= 0.66.1~) [amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + cbindgen [amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + llvm-spirv-18 [amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + libllvmspirvlib-18-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], +Rules-Requires-Root: no +Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git +Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa +Homepage: https://mesa3d.org/ + +Package: libxatracker2 +Section: libs +Architecture: amd64 i386 x32 +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: X acceleration library -- runtime + This package contains the XA (X acceleration) library. It is used exclusively + by the X server to do render, copy and video acceleration. + . + XA is intended to be used by the vmware driver for virtualized X acceleration. + +Package: libxatracker-dev +Section: libdevel +Architecture: amd64 i386 x32 +Depends: + libxatracker2 (= ${binary:Version}), + ${misc:Depends}, +Multi-Arch: same +Description: X acceleration library -- development files + This package contains the XA (X acceleration) library. It is used exclusively + by the X server to do render, copy and video acceleration. + . + XA is intended to be used by the vmware driver for virtualized X acceleration. + . + This package provides the development environment for compiling programs + against the xatracker library. + +Package: libd3dadapter9-mesa +Section: libs +Architecture: amd64 arm64 armel armhf i386 +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libudev1 [linux-any], +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: state-tracker for Direct3D9 + This package contains a Gallium3D state tracker that implements the Direct3D9 + API. Combined with the gallium-nine branch of Wine, programs using D3D9 can + achieve native (or better) graphics performance. + +Package: libd3dadapter9-mesa-dev +Section: libdevel +Architecture: amd64 arm64 armel armhf i386 +Depends: + libd3dadapter9-mesa (= ${binary:Version}), + libudev1 [linux-any], + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: state-tracker for Direct3D9 -- development files + This package contains a Gallium3D state tracker that implements the Direct3D9 + API. Combined with the gallium-nine branch of Wine, programs using D3D9 can + achieve native (or better) graphics performance. + . + Development files + +Package: libgbm1 +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + mesa-libgallium (= ${binary:Version}), +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: generic buffer management API -- runtime + This package contains the GBM buffer management library. It provides a + mechanism for allocating buffers for graphics rendering tied to Mesa. + . + GBM is intended to be used as a native platform for EGL on drm or openwfd. + +Package: libgbm-dev +Section: libdevel +Architecture: linux-any +Depends: + libgbm1 (= ${binary:Version}), + ${misc:Depends}, +Multi-Arch: same +Description: generic buffer management API -- development files + This package contains the GBM buffer management library. It provides a + mechanism for allocating buffers for graphics rendering tied to Mesa. + . + GBM is intended to be used as a native platform for EGL on drm or openwfd. + . + This package provides the development environment for compiling programs + against the GBM library. + +Package: libegl-mesa0 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libgbm1 (= ${binary:Version}) [!hurd-any], + mesa-libgallium (= ${binary:Version}), +Provides: libegl-vendor +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the EGL API -- Mesa vendor library + 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 OpenGL|ES. + . + This package contains the Mesa vendor library for EGL. + +Package: libegl1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libegl-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: free implementation of the EGL API -- development files + 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 rendering surfaces + for use with other graphics libraries, such as OpenGL|ES. + . + This package provides the development environment for compiling programs + against the EGL library. + +Package: libgles2-mesa-dev +Section: oldlibs +Architecture: any +Depends: + libgles-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: transitional dummy package + This is a transitional dummy package, it can be safely removed. + +Package: libglapi-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the GL API -- shared library + The Mesa GL API module is responsible for dispatching all the gl* + functions. It is intended to be mainly used by both the libgles1-mesa + and libgles2-mesa packages. + +Package: libglx-mesa0 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libgl1-mesa-dri, + mesa-libgallium (= ${binary:Version}), +Provides: libglx-vendor +Breaks: + libopengl-perl (<< 0.6704+dfsg-2), + glx-diversions (<< 0.8.4~), +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the OpenGL API -- GLX vendor library + 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 + syntax or state machine, it is being used with authorization from + Silicon Graphics, Inc. However, the authors make no claim that Mesa + is in any way a compatible replacement for OpenGL or associated with + Silicon Graphics, Inc. + . + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the modules themselves: these can be found + in the libgl1-mesa-dri package. + +Package: libgl1-mesa-dri +Section: libs +Architecture: any +Pre-Depends: ${misc:Pre-Depends} +Depends: + libvulkan1 [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + ${shlibs:Depends}, + ${misc:Depends} +Recommends: + libgl1-amber-dri +Breaks: + libgl1-amber-dri (<< 21.3.9) +Replaces: + libgl1-amber-dri (<< 21.3.9) +Multi-Arch: same +Description: free implementation of the OpenGL API -- DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct rendering. + . + For a complete description of Mesa, please look at the + libglx-mesa0 package. + +Package: libgl1-mesa-dev +Section: oldlibs +Architecture: any +Depends: + libgl-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: transitional dummy package + This is a transitional dummy package, it can be safely removed. + +Package: mesa-common-dev +Section: libdevel +Architecture: any +Depends: + libgl-dev, + libglx-dev, + libx11-dev, + libdrm-dev (>= 2.4.95) [!hurd-any], + ${misc:Depends}, +Breaks: libegl1-mesa-dev (<< 18.2.5-2) +Replaces: libegl1-mesa-dev (<< 18.2.5-2) +Multi-Arch: same +Description: Developer documentation for Mesa + This package includes the specifications for the Mesa-specific OpenGL + extensions, the complete set of release notes and the development header + files common to all Mesa packages. + +Package: mesa-libgallium +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: shared infrastructure for Mesa drivers + This package contains libgallium, a private library shared between + multiple Mesa drivers. This library is an implementation detail of Mesa + and should not be used directly by user code. + +Package: libosmesa6 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: Mesa Off-screen rendering extension + 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. + . + This package provides both 16-bit and 32-bit versions of the off-screen + renderer which do not require external libraries to work. + +Package: libosmesa6-dev +Section: libdevel +Architecture: any +Depends: + libosmesa6 (= ${binary:Version}), + mesa-common-dev (= ${binary:Version}) | libgl-dev, + ${misc:Depends}, +Conflicts: libosmesa-dev +Replaces: libosmesa-dev +Provides: libosmesa-dev +Multi-Arch: same +Description: Mesa Off-screen rendering extension -- development files + This package provides the required environment for developing programs + that use the off-screen rendering extension of Mesa. + . + For more information on OSmesa see the libosmesa6 package. + +Package: mesa-va-drivers +Section: libs +Architecture: linux-any +Build-Profiles: +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Enhances: + libva2, +Provides: + va-driver, +Breaks: vdpau-va-driver (<< 0.7.4-5) +Replaces: vdpau-va-driver (<< 0.7.4-5) +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: Mesa VA-API video acceleration drivers + These libraries provide the Video Acceleration API (VA-API) for Unix. + They provide accelerated video playback (incl. H.264) and video + post-processing for the supported graphics cards. + . + This package enables support for VA-API for some gallium drivers. + +Package: mesa-vdpau-drivers +Section: libs +Architecture: linux-any +Depends: + libvdpau1, + ${shlibs:Depends}, + ${misc:Depends}, +Enhances: + libvdpau1, +Provides: + vdpau-driver, +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: Mesa VDPAU video acceleration drivers + These libraries provide the Video Decode and Presentation API for Unix. + They provide accelerated video playback (incl. H.264) and video + post-processing for the supported graphics cards. + . + This package enables support for VDPAU for some gallium drivers. + +Package: mesa-vulkan-drivers +Section: libs +Architecture: amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +Pre-Depends: ${misc:Pre-Depends} +Depends: + libvulkan1, + python3:any, + ${shlibs:Depends}, + ${misc:Depends} +Provides: vulkan-icd +Multi-Arch: same +Description: Mesa Vulkan graphics drivers + Vulkan is a low-overhead 3D graphics and compute API. This package + includes Vulkan drivers provided by the Mesa project. + +Package: mesa-opencl-icd +Section: libs +Architecture: amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +Pre-Depends: ${misc:Pre-Depends} +Depends: + libclc-18, + ocl-icd-libopencl1 | libopencl1, + ${shlibs:Depends}, + ${misc:Depends}, +Provides: opencl-icd +Multi-Arch: same +Description: free implementation of the OpenCL API -- ICD runtime + This package contains the mesa implementation of the OpenCL (Open Compute + Language) library, which is intended for use with an ICD loader. OpenCL + provides a standardized interface for computational analysis on graphical + processing units. + +Package: mesa-drm-shim +Section: libs +Architecture: amd64 arm64 armel armhf i386 mips64el powerpc ppc64 ppc64el s390x sparc64 +Pre-Depends: ${misc:Pre-Depends} +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Multi-Arch: same +Description: DRM shim libraries + This package provides drm-shim libraries which can be used for testing DRM + drivers when none exists on the host. + +# vim: tw=0 diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 000000000000..4dd45f4e0d46 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,436 @@ +Source: mesa +Section: graphics +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: Andreas Boll +Standards-Version: 4.1.4 +Build-Depends: + debhelper-compat (= 13), + directx-headers-dev (>= 1.610.0) [linux-amd64 linux-arm64], + glslang-tools [@LLVM_ARCHS@], + meson (>= 1.3.1), + quilt (>= 0.63-8.2~), + pkg-config, + libarchive-dev, + libdrm-dev (>= 2.4.119), + libx11-dev, + libxxf86vm-dev, + libexpat1-dev, + libsensors-dev [!hurd-any], + libxfixes-dev, + libxext-dev, + libva-dev (>= 1.6.0) [linux-any] , + libvdpau-dev (>= 1.1.1) [linux-any], + libvulkan-dev [@LLVM_ARCHS@], + x11proto-dev, + linux-libc-dev (>= 2.6.31) [linux-any], + libx11-xcb-dev, + libxcb-dri2-0-dev (>= 1.8), + libxcb-glx0-dev (>= 1.8.1), + libxcb-xfixes0-dev, + libxcb-dri3-dev, + libxcb-present-dev, + libxcb-randr0-dev, + libxcb-shm0-dev, + libxcb-sync-dev, + libxrandr-dev, + libxshmfence-dev (>= 1.1), + libzstd-dev, + python3, + python3-mako, + python3-ply, + python3-pycparser [arm64 armhf], + python3-setuptools, + python3-yaml, + flex, + bison, + libelf-dev [@LLVM_ARCHS@], + libwayland-dev (>= 1.15.0) [linux-any], + libwayland-egl-backend-dev (>= 1.15.0) [linux-any], + llvm-@LLVM_VERSION@-dev [@LLVM_ARCHS@], + libclang-@LLVM_VERSION@-dev [@LLVM_ARCHS@], + libclang-cpp@LLVM_VERSION@-dev [@LLVM_ARCHS@], + libclc-@LLVM_VERSION@-dev [@LLVM_ARCHS@], + libclc-@LLVM_VERSION@ [@LLVM_ARCHS@], + wayland-protocols (>= 1.24), + zlib1g-dev, + libglvnd-core-dev (>= 1.3.2), + valgrind [@VALGRIND_ARCHS@], + rustc-1.80 (>= 1.76) [@RUSTICL_ARCHS@], + rustfmt-1.80 [@RUSTICL_ARCHS@], + bindgen (>= 0.66.1~) [@RUSTICL_ARCHS@], + cbindgen [@RUSTICL_ARCHS@], + llvm-spirv-@LLVM_VERSION@ [@RUSTICL_ARCHS@], + libllvmspirvlib-@LLVM_VERSION@-dev [@LLVM_ARCHS@], +Rules-Requires-Root: no +Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git +Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa +Homepage: https://mesa3d.org/ + +Package: libxatracker2 +Section: libs +Architecture: amd64 i386 x32 +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: X acceleration library -- runtime + This package contains the XA (X acceleration) library. It is used exclusively + by the X server to do render, copy and video acceleration. + . + XA is intended to be used by the vmware driver for virtualized X acceleration. + +Package: libxatracker-dev +Section: libdevel +Architecture: amd64 i386 x32 +Depends: + libxatracker2 (= ${binary:Version}), + ${misc:Depends}, +Multi-Arch: same +Description: X acceleration library -- development files + This package contains the XA (X acceleration) library. It is used exclusively + by the X server to do render, copy and video acceleration. + . + XA is intended to be used by the vmware driver for virtualized X acceleration. + . + This package provides the development environment for compiling programs + against the xatracker library. + +Package: libd3dadapter9-mesa +Section: libs +Architecture: @WINE_ARCHS@ +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libudev1 [linux-any], +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: state-tracker for Direct3D9 + This package contains a Gallium3D state tracker that implements the Direct3D9 + API. Combined with the gallium-nine branch of Wine, programs using D3D9 can + achieve native (or better) graphics performance. + +Package: libd3dadapter9-mesa-dev +Section: libdevel +Architecture: @WINE_ARCHS@ +Depends: + libd3dadapter9-mesa (= ${binary:Version}), + libudev1 [linux-any], + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: state-tracker for Direct3D9 -- development files + This package contains a Gallium3D state tracker that implements the Direct3D9 + API. Combined with the gallium-nine branch of Wine, programs using D3D9 can + achieve native (or better) graphics performance. + . + Development files + +Package: libgbm1 +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + mesa-libgallium (= ${binary:Version}), +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: generic buffer management API -- runtime + This package contains the GBM buffer management library. It provides a + mechanism for allocating buffers for graphics rendering tied to Mesa. + . + GBM is intended to be used as a native platform for EGL on drm or openwfd. + +Package: libgbm-dev +Section: libdevel +Architecture: linux-any +Depends: + libgbm1 (= ${binary:Version}), + ${misc:Depends}, +Multi-Arch: same +Description: generic buffer management API -- development files + This package contains the GBM buffer management library. It provides a + mechanism for allocating buffers for graphics rendering tied to Mesa. + . + GBM is intended to be used as a native platform for EGL on drm or openwfd. + . + This package provides the development environment for compiling programs + against the GBM library. + +Package: libegl-mesa0 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libgbm1 (= ${binary:Version}) [!hurd-any], + mesa-libgallium (= ${binary:Version}), +Provides: libegl-vendor +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the EGL API -- Mesa vendor library + 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 OpenGL|ES. + . + This package contains the Mesa vendor library for EGL. + +Package: libegl1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libegl-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: free implementation of the EGL API -- development files + 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 rendering surfaces + for use with other graphics libraries, such as OpenGL|ES. + . + This package provides the development environment for compiling programs + against the EGL library. + +Package: libgles2-mesa-dev +Section: oldlibs +Architecture: any +Depends: + libgles-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: transitional dummy package + This is a transitional dummy package, it can be safely removed. + +Package: libglapi-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the GL API -- shared library + The Mesa GL API module is responsible for dispatching all the gl* + functions. It is intended to be mainly used by both the libgles1-mesa + and libgles2-mesa packages. + +Package: libglx-mesa0 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libgl1-mesa-dri, + mesa-libgallium (= ${binary:Version}), +Provides: libglx-vendor +Breaks: + libopengl-perl (<< 0.6704+dfsg-2), + glx-diversions (<< 0.8.4~), +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: free implementation of the OpenGL API -- GLX vendor library + 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 + syntax or state machine, it is being used with authorization from + Silicon Graphics, Inc. However, the authors make no claim that Mesa + is in any way a compatible replacement for OpenGL or associated with + Silicon Graphics, Inc. + . + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the modules themselves: these can be found + in the libgl1-mesa-dri package. + +Package: libgl1-mesa-dri +Section: libs +Architecture: any +Pre-Depends: ${misc:Pre-Depends} +Depends: + libvulkan1 [@LLVM_ARCHS@], + ${shlibs:Depends}, + ${misc:Depends} +Recommends: + libgl1-amber-dri +Breaks: + libgl1-amber-dri (<< 21.3.9) +Replaces: + libgl1-amber-dri (<< 21.3.9) +Multi-Arch: same +Description: free implementation of the OpenGL API -- DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct rendering. + . + For a complete description of Mesa, please look at the + libglx-mesa0 package. + +Package: libgl1-mesa-dev +Section: oldlibs +Architecture: any +Depends: + libgl-dev, + libglvnd-dev, + ${misc:Depends}, +Multi-Arch: same +Description: transitional dummy package + This is a transitional dummy package, it can be safely removed. + +Package: mesa-common-dev +Section: libdevel +Architecture: any +Depends: + libgl-dev, + libglx-dev, + libx11-dev, + libdrm-dev (>= 2.4.95) [!hurd-any], + ${misc:Depends}, +Breaks: libegl1-mesa-dev (<< 18.2.5-2) +Replaces: libegl1-mesa-dev (<< 18.2.5-2) +Multi-Arch: same +Description: Developer documentation for Mesa + This package includes the specifications for the Mesa-specific OpenGL + extensions, the complete set of release notes and the development header + files common to all Mesa packages. + +Package: mesa-libgallium +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: shared infrastructure for Mesa drivers + This package contains libgallium, a private library shared between + multiple Mesa drivers. This library is an implementation detail of Mesa + and should not be used directly by user code. + +Package: libosmesa6 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: Mesa Off-screen rendering extension + 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. + . + This package provides both 16-bit and 32-bit versions of the off-screen + renderer which do not require external libraries to work. + +Package: libosmesa6-dev +Section: libdevel +Architecture: any +Depends: + libosmesa6 (= ${binary:Version}), + mesa-common-dev (= ${binary:Version}) | libgl-dev, + ${misc:Depends}, +Conflicts: libosmesa-dev +Replaces: libosmesa-dev +Provides: libosmesa-dev +Multi-Arch: same +Description: Mesa Off-screen rendering extension -- development files + This package provides the required environment for developing programs + that use the off-screen rendering extension of Mesa. + . + For more information on OSmesa see the libosmesa6 package. + +Package: mesa-va-drivers +Section: libs +Architecture: linux-any +Build-Profiles: +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Enhances: + libva2, +Provides: + va-driver, +Breaks: vdpau-va-driver (<< 0.7.4-5) +Replaces: vdpau-va-driver (<< 0.7.4-5) +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: Mesa VA-API video acceleration drivers + These libraries provide the Video Acceleration API (VA-API) for Unix. + They provide accelerated video playback (incl. H.264) and video + post-processing for the supported graphics cards. + . + This package enables support for VA-API for some gallium drivers. + +Package: mesa-vdpau-drivers +Section: libs +Architecture: linux-any +Depends: + libvdpau1, + ${shlibs:Depends}, + ${misc:Depends}, +Enhances: + libvdpau1, +Provides: + vdpau-driver, +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: Mesa VDPAU video acceleration drivers + These libraries provide the Video Decode and Presentation API for Unix. + They provide accelerated video playback (incl. H.264) and video + post-processing for the supported graphics cards. + . + This package enables support for VDPAU for some gallium drivers. + +Package: mesa-vulkan-drivers +Section: libs +Architecture: @LLVM_ARCHS@ +Pre-Depends: ${misc:Pre-Depends} +Depends: + libvulkan1, + python3:any, + ${shlibs:Depends}, + ${misc:Depends} +Provides: vulkan-icd +Multi-Arch: same +Description: Mesa Vulkan graphics drivers + Vulkan is a low-overhead 3D graphics and compute API. This package + includes Vulkan drivers provided by the Mesa project. + +Package: mesa-opencl-icd +Section: libs +Architecture: @LLVM_ARCHS@ +Pre-Depends: ${misc:Pre-Depends} +Depends: + libclc-@LLVM_VERSION@, + ocl-icd-libopencl1 | libopencl1, + ${shlibs:Depends}, + ${misc:Depends}, +Provides: opencl-icd +Multi-Arch: same +Description: free implementation of the OpenCL API -- ICD runtime + This package contains the mesa implementation of the OpenCL (Open Compute + Language) library, which is intended for use with an ICD loader. OpenCL + provides a standardized interface for computational analysis on graphical + processing units. + +Package: mesa-drm-shim +Section: libs +Architecture: amd64 arm64 armel armhf i386 mips64el powerpc ppc64 ppc64el s390x sparc64 +Pre-Depends: ${misc:Pre-Depends} +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Multi-Arch: same +Description: DRM shim libraries + This package provides drm-shim libraries which can be used for testing DRM + drivers when none exists on the host. + +# vim: tw=0 diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 000000000000..9df54d4552f7 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,365 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: mesa +Source: https://mesa.freedesktop.org/archive/ + +Files: * +Copyright: + 2005 Aapo Tahkola + 2011 Adam Rak + 2014 Adrián Arroyo Calle + 2010-2018 Advanced Micro Devices, Inc. + 2002-2012 Apple Inc. + 2009 Artur Wyszynski + 2000-2001 ATI Technologies Inc. + 2015-2016 Axel Davy + 1988-2004 Bart Massey + 2016 Bas Nieuwenhuizen + 2011 Benjamin Franzke + 2005-2008 Ben Skeggs + 2015 Boyan Ding + 1999-2016 Brian Paul + 2014-2018 Broadcom + 2011 Bryan Cain + 2007 Carl Worth + 2009-2011 Chia-I Wu + 2016 Christian Gmeiner + 2010-2014 Christian König + 2010-2012 Christoph Bumiller + 2014-2017 Connor Abbott + 2008-2010 Corbin Simpson + 1999-2016 Dave Airlie + 2008 Dennis Smit + 2012-2017 Etnaviv Project + 2003 Felix Kuehling + 2009-2016 Francisco Jerez + 2008-2010 George Sapountzis + 2017 Gert Wollny + 2013-2017 Google, Inc. + 2017 Grazvydas Ignotas + 2013 Gregory Hainaut + 2002 Greg Parker + 2013 Grigori Goronzy + 2008-2013 Haiku, Inc. + 2002-2006 IBM Corporation + 2011-2017 Ilia Mirkin + 2006-2018 Intel Corporation + 2007-2012 Jakob Bornecrantz + 2017 Jason Ekstrand + 2008-2010 Jerome Glisse + 2009-2013 Joakim Sindholt + 2007 Joe Perches + 2006 John Maddock + 2014-2017 Jon Turney + 2008-2009 Jose Fonseca + 1988-2017 Keith Packard + 1997 Keith Whitwell + 2011 Lauri Kasanen + 2010 Luca Barbieri + 2010-2013 LunarG, Inc. + 2011-2013 Maarten Lankhorst + 2008-2010 Maciej Cencora + 2010-2014 Marek Olšák + 2011 Morgan Armand + 2016 Nayan Deshmukh + 2004-2009 Nicolai Haehnle + 2007-2013 Nouveau Project + 2012-2018 NVIDIA Corporation + 2010 Orasanu Lucian + 2015-2016 Patrick Rudolph + 2009 Pauli Nieminen + 2006-2008 Philippe Houdoin + 2015 Philip Taylor + 1998-1999 Precision Insight, Inc. + 2007-2018 Red Hat, Inc. + 2018 Rhys Perry + 2012-2018 Rob Clark + 2004 Roland Scheidegger + 2015 Samuel Pitoiset + 1991-2000 Silicon Graphics, Inc. + 2018 Stefan Schake + 2003-2005 Stefan Gustavson + 2008 Steven G. Johnson + 2016 Steven Toth + 2011-2014 The Chromium OS authors + 2007-2013 The Nouveau Project + 2001-2004 The SCons Foundation + 2002 The Weather Channel, Inc. + 2006 Thierry Reding + 2010 Thomas Balling Sörensen + 2015-2017 Thomas Helland + 1995 Thorsten Ohl + 2013-2018 Timothy Arceri + 2002 Todd C. Miller + 2010-2014 Tom Stellard + 2004 Torrey T. Lyons + 2003-2008 Tungsten Graphics, Inc. + 2012-2013 Vadim Girlin + 2000 VA Linux Systems Inc. + 2015-2018 Valve Corporation + 1998-2017 VMware, Inc. + 1992 Vrije Universiteit, The Netherlands + 1999 Wittawat Yamwong + 2005 Zack Rusin + 2015 Zoltan Gilian + 2018-2021 Igalia S.L. + 2017 Dylan Baker +License: MIT + +Files: include/drm-uapi/etnaviv_drm.h +Copyright: 2015 Etnaviv Project +License: GPL-2 + +Files: include/drm-uapi/lima_drm.h +Copyright: 2017-2018 Qiang Yu +License: GPL-2 or MIT + +Files: include/drm-uapi/sync_file.h +Copyright: 2012 Google, Inc. +License: GPL-1+ + +Files: include/EGL/eglextchromium.h +Copyright: 2013 The Chromium Authors +License: BSD-3-google + +Files: include/GL/glcorearb.h + include/GL/glext.h + include/GL/glxext.h +Copyright: 2013-2017 The Khronos Group Inc. +License: Khronos + +Files: include/GLES/egl.h + include/GLES/glplatform.h + include/GLES2/gl2platform.h + include/GLES3/gl3platform.h + include/vulkan/* +Copyright: 2015-2018 The Khronos Group Inc. + 2015 The Android Open Source Project + 2015-2016 Valve Corporation +License: Apache-2.0 + +Files: include/c11/* +Copyright: 2012 yohhoy +License: BSL + +Files: src/gallium/auxiliary/postprocess/pp_mlaa* +Copyright: 2010 Jorge Jimenez (jorge@iryoku.com) + 2010 Belen Masia (bmasia@unizar.es) + 2010 Jose I. Echevarria (joseignacioechevarria@gmail.com) + 2010 Fernando Navarro (fernandn@microsoft.com) + 2010 Diego Gutierrez (diegog@unizar.es) + 2011 Lauri Kasanen (cand@gmx.com) +License: MLAA + +Files: src/glx/clientattrib.c + src/glx/compsize.c + src/glx/eval.c + src/glx/glxclient.h + src/glx/glxcmds.c + src/glx/glxcurrent.c + src/glx/glxext.c + src/glx/packrender.h + src/glx/packsingle.h + src/glx/pixel.c + src/glx/pixelstore.c + src/glx/render2.c + src/glx/renderpix.c + src/glx/single2.c + src/glx/singlepix.c + src/glx/vertarr.c +Copyright: 1991-2000 Silicon Graphics, Inc. +License: SGI + +Files: src/getopt/* +Copyright: 2000 The NetBSD Foundation, Inc. +License: BSD-2-clause + +Files: src/gtest/include/* src/gtest/src/* +Copyright: 2008-2015 Google, Inc. +License: BSD-3-google + +Files: debian/* +Copyright: 2006, Thierry Reding +License: GPL + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +License: Khronos + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + . + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + +License: SGI + SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + . + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + . + The above copyright notice including the dates of first publication and + either this permission notice or a reference to + http://oss.sgi.com/projects/FreeB/ + shall be included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + . + Except as contained in this notice, the name of Silicon Graphics, Inc. + shall not be used in advertising or otherwise to promote the sale, use or + other dealings in this Software without prior written authorization from + Silicon Graphics, Inc. + +License: Apache-2.0 + On Debian systems, the full text of the Apache-2.0 license + can be found in the file '/usr/share/common-licenses/Apache-2.0'. + +License: GPL-1+ + On Debian systems, the full text of the GPL-1 license + can be found in the file '/usr/share/common-licenses/GPL-1'. + +License: GPL-2 + On Debian systems, the full text of the GPL-2 license + can be found in the file '/usr/share/common-licenses/GPL-2'. + +License: BSL + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare [[derivative work]]s of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + . + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +License: MLAA + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the following statement: + . + "Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia, + Jose I. Echevarria, Fernando Navarro and Diego Gutierrez." + . + Only for use in the Mesa project, this point 2 is filled by naming the + technique Jimenez's MLAA in the Mesa config options. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS + IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: GPL + On Debian systems, the full text of the GPL license + can be found in the file '/usr/share/common-licenses/GPL'. + +License: BSD-3-google + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 000000000000..7bcde62944f0 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,4 @@ +[DEFAULT] +debian-branch=ubuntu/mantic +upstream-branch=main +upstream-tag=asahi-%(version)s diff --git a/debian/libd3dadapter9-mesa-dev.install b/debian/libd3dadapter9-mesa-dev.install new file mode 100644 index 000000000000..174eb60429be --- /dev/null +++ b/debian/libd3dadapter9-mesa-dev.install @@ -0,0 +1,5 @@ +usr/lib/*/pkgconfig/d3d.pc +usr/include/d3dadapter/d3dadapter9.h +usr/include/d3dadapter/drm.h +usr/include/d3dadapter/present.h + diff --git a/debian/libd3dadapter9-mesa.install b/debian/libd3dadapter9-mesa.install new file mode 100644 index 000000000000..24b62ee27d5d --- /dev/null +++ b/debian/libd3dadapter9-mesa.install @@ -0,0 +1 @@ +usr/lib/*/d3d/d3dadapter9.so* diff --git a/debian/libegl-mesa0.install b/debian/libegl-mesa0.install new file mode 100644 index 000000000000..71c9951984df --- /dev/null +++ b/debian/libegl-mesa0.install @@ -0,0 +1,2 @@ +usr/lib/*/libEGL_mesa.so.0* +usr/share/glvnd/egl_vendor.d/50_mesa.json diff --git a/debian/libegl-mesa0.symbols b/debian/libegl-mesa0.symbols new file mode 100644 index 000000000000..2c094dfadaf2 --- /dev/null +++ b/debian/libegl-mesa0.symbols @@ -0,0 +1,2 @@ +libEGL_mesa.so.0 libegl-mesa0 #MINVER# + __egl_Main@Base 17.0.0~ diff --git a/debian/libegl1-mesa-dev.install b/debian/libegl1-mesa-dev.install new file mode 100644 index 000000000000..a266dced7438 --- /dev/null +++ b/debian/libegl1-mesa-dev.install @@ -0,0 +1,2 @@ +usr/include/EGL/eglmesaext.h +usr/include/EGL/eglext_angle.h diff --git a/debian/libgbm-dev.install b/debian/libgbm-dev.install new file mode 100644 index 000000000000..0b6e2d17ee2b --- /dev/null +++ b/debian/libgbm-dev.install @@ -0,0 +1,3 @@ +usr/lib/*/libgbm.so +usr/lib/*/pkgconfig/gbm.pc +usr/include/gbm.h diff --git a/debian/libgbm1.install b/debian/libgbm1.install new file mode 100644 index 000000000000..4ec2beed5e5e --- /dev/null +++ b/debian/libgbm1.install @@ -0,0 +1,2 @@ +usr/lib/*/libgbm.so.1* +usr/lib/*/gbm/dri_gbm.so \ No newline at end of file diff --git a/debian/libgbm1.lintian-overrides b/debian/libgbm1.lintian-overrides new file mode 100644 index 000000000000..4b9f4bdfa586 --- /dev/null +++ b/debian/libgbm1.lintian-overrides @@ -0,0 +1 @@ +symbols-declares-dependency-on-other-package libgbm1-private diff --git a/debian/libgbm1.symbols b/debian/libgbm1.symbols new file mode 100644 index 000000000000..6c9056860b4b --- /dev/null +++ b/debian/libgbm1.symbols @@ -0,0 +1,42 @@ +dri_gbm.so libgbm1 #MINVER# + gbmint_get_backend@Base 24.3.0~pre20241104-1asahi6.24.04 +libgbm.so.1 libgbm1 #MINVER# +| libgbm1-private + gbm_bo_create@Base 7.11~1 + gbm_bo_create_with_modifiers2@Base 21.3.0~rc1 + gbm_bo_create_with_modifiers@Base 17.1.0~rc2 + gbm_bo_destroy@Base 7.11~1 + gbm_bo_get_bpp@Base 17.3.0~rc1 + gbm_bo_get_device@Base 8.1~0 + gbm_bo_get_fd@Base 10.2~0 + gbm_bo_get_fd_for_plane@Base 21.1.0 + gbm_bo_get_format@Base 8.1~0 + gbm_bo_get_handle@Base 7.11~1 + gbm_bo_get_handle_for_plane@Base 17.1.0~rc2 + gbm_bo_get_height@Base 7.11~1 + gbm_bo_get_modifier@Base 17.1.0~rc2 + gbm_bo_get_offset@Base 17.1.0~rc2 + gbm_bo_get_plane_count@Base 17.1.0~rc2 + gbm_bo_get_stride@Base 8.1~0 + gbm_bo_get_stride_for_plane@Base 17.1.0~rc2 + gbm_bo_get_user_data@Base 8.1~0 + gbm_bo_get_width@Base 7.11~1 + gbm_bo_import@Base 8.1~0 + gbm_bo_map@Base 12.0.0~0 + gbm_bo_set_user_data@Base 8.1~0 + gbm_bo_unmap@Base 12.0.0~0 + gbm_bo_write@Base 8.1~0 + gbm_create_device@Base 7.11~1 + gbm_device_destroy@Base 7.11~1 + gbm_device_get_backend_name@Base 7.11~1 + gbm_device_get_fd@Base 7.11~1 + gbm_device_get_format_modifier_plane_count@Base 17.3.0~rc1 + gbm_device_is_format_supported@Base 8.1~0 + gbm_format_get_name@Base 19.0.0~rc5 + gbm_surface_create@Base 8.1~0 + gbm_surface_create_with_modifiers2@Base 21.3.0~rc1 + gbm_surface_create_with_modifiers@Base 17.1.0~rc2 + gbm_surface_destroy@Base 8.1~0 + gbm_surface_has_free_buffers@Base 8.1~0 + gbm_surface_lock_front_buffer@Base 8.1~0 + gbm_surface_release_buffer@Base 8.1~0 diff --git a/debian/libgl1-mesa-dri.install b/debian/libgl1-mesa-dri.install new file mode 100644 index 000000000000..395adc20ee87 --- /dev/null +++ b/debian/libgl1-mesa-dri.install @@ -0,0 +1 @@ +usr/share/drirc.d/00-mesa-defaults.conf diff --git a/debian/libgl1-mesa-dri.maintscript b/debian/libgl1-mesa-dri.maintscript new file mode 100644 index 000000000000..a80bf4156160 --- /dev/null +++ b/debian/libgl1-mesa-dri.maintscript @@ -0,0 +1 @@ +rm_conffile /etc/drirc 19.0.3-1~ diff --git a/debian/libglapi-mesa.install b/debian/libglapi-mesa.install new file mode 100644 index 000000000000..e93d0c3bc4d4 --- /dev/null +++ b/debian/libglapi-mesa.install @@ -0,0 +1 @@ +usr/lib/*/libglapi.so.0* diff --git a/debian/libglapi-mesa.lintian-overrides b/debian/libglapi-mesa.lintian-overrides new file mode 100644 index 000000000000..3aa3d99bed90 --- /dev/null +++ b/debian/libglapi-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libglapi0 diff --git a/debian/libglx-mesa0.install b/debian/libglx-mesa0.install new file mode 100644 index 000000000000..08cae63f722b --- /dev/null +++ b/debian/libglx-mesa0.install @@ -0,0 +1 @@ +usr/lib/*/libGLX_mesa.so.* diff --git a/debian/libglx-mesa0.links.in b/debian/libglx-mesa0.links.in new file mode 100644 index 000000000000..d01ce9261ac3 --- /dev/null +++ b/debian/libglx-mesa0.links.in @@ -0,0 +1 @@ +usr/lib/${DEB_HOST_MULTIARCH}/libGLX_mesa.so.0 usr/lib/${DEB_HOST_MULTIARCH}/libGLX_indirect.so.0 diff --git a/debian/libglx-mesa0.symbols b/debian/libglx-mesa0.symbols new file mode 100644 index 000000000000..f752fb0e284f --- /dev/null +++ b/debian/libglx-mesa0.symbols @@ -0,0 +1,1305 @@ +libGLX_mesa.so.0 libglx-mesa0 + (arch=!hurd-any)MesaGLInteropGLXExportObject@Base 12.0.4 + (arch=!hurd-any)MesaGLInteropGLXFlushObjects@Base 23.3.0~pre20230904-1asahi1.23.04 + (arch=!hurd-any)MesaGLInteropGLXQueryDeviceInfo@Base 12.0.4 + __glx_Main@Base 17.0.0~ + glAccum@Base 0 + glActiveShaderProgram@Base 12.0.1 + glActiveTexture@Base 0 + glActiveTextureARB@Base 0 + glAlphaFunc@Base 0 + glAlphaFuncx@Base 0 + glAreTexturesResident@Base 0 + glAreTexturesResidentEXT@Base 0 + glArrayElement@Base 0 + glArrayElementEXT@Base 0 + glAttachObjectARB@Base 0 + glAttachShader@Base 0 + glBegin@Base 0 + glBeginConditionalRender@Base 0 + glBeginConditionalRenderNV@Base 0 + glBeginQuery@Base 0 + glBeginQueryARB@Base 0 + glBeginQueryIndexed@Base 0 + glBeginTransformFeedback@Base 0 + glBindAttribLocation@Base 0 + glBindAttribLocationARB@Base 0 + glBindBuffer@Base 0 + glBindBufferARB@Base 0 + glBindBufferBase@Base 0 + glBindBufferRange@Base 0 + glBindBuffersBase@Base 0 + glBindBuffersRange@Base 0 + glBindFragDataLocation@Base 0 + glBindFragDataLocationEXT@Base 0 + glBindFragDataLocationIndexed@Base 0 + glBindFramebuffer@Base 0 + glBindFramebufferEXT@Base 0 + glBindImageTexture@Base 0 + glBindImageTextures@Base 0 + glBindProgramARB@Base 0 + glBindProgramPipeline@Base 12.0.1 + glBindRenderbuffer@Base 0 + glBindRenderbufferEXT@Base 0 + glBindSampler@Base 0 + glBindSamplers@Base 0 + glBindTexture@Base 0 + glBindTextureEXT@Base 0 + glBindTextures@Base 0 + glBindTransformFeedback@Base 0 + glBindVertexArray@Base 0 + glBindVertexBuffer@Base 0 + glBindVertexBuffers@Base 0 + glBitmap@Base 0 + glBlendBarrier@Base 13.0.0~ + glBlendColor@Base 0 + glBlendColorEXT@Base 0 + glBlendEquation@Base 0 + glBlendEquationEXT@Base 0 + glBlendEquationSeparate@Base 0 + glBlendEquationSeparatei@Base 13.0.0~ + glBlendEquationSeparateiARB@Base 0 + glBlendEquationi@Base 13.0.0~ + glBlendEquationiARB@Base 0 + glBlendFunc@Base 0 + glBlendFuncSeparate@Base 0 + glBlendFuncSeparateEXT@Base 0 + glBlendFuncSeparatei@Base 13.0.0~ + glBlendFuncSeparateiARB@Base 0 + glBlendFunci@Base 13.0.0~ + glBlendFunciARB@Base 0 + glBlitFramebuffer@Base 0 + glBufferData@Base 0 + glBufferDataARB@Base 0 + glBufferStorage@Base 0 + glBufferSubData@Base 0 + glBufferSubDataARB@Base 0 + glCallList@Base 0 + glCallLists@Base 0 + glCheckFramebufferStatus@Base 0 + glCheckFramebufferStatusEXT@Base 0 + glClampColor@Base 0 + glClampColorARB@Base 0 + glClear@Base 0 + glClearAccum@Base 0 + glClearBufferData@Base 0 + glClearBufferSubData@Base 0 + glClearBufferfi@Base 0 + glClearBufferfv@Base 0 + glClearBufferiv@Base 0 + glClearBufferuiv@Base 0 + glClearColor@Base 0 + glClearColorIiEXT@Base 0 + glClearColorIuiEXT@Base 0 + glClearColorx@Base 0 + glClearDepth@Base 0 + glClearDepthf@Base 0 + glClearDepthx@Base 0 + glClearIndex@Base 0 + glClearStencil@Base 0 + glClearTexImage@Base 0 + glClearTexSubImage@Base 0 + glClientActiveTexture@Base 0 + glClientActiveTextureARB@Base 0 + glClientWaitSync@Base 0 + glClipPlane@Base 0 + glClipPlanef@Base 0 + glClipPlanex@Base 0 + glColor3b@Base 0 + glColor3bv@Base 0 + glColor3d@Base 0 + glColor3dv@Base 0 + glColor3f@Base 0 + glColor3fv@Base 0 + glColor3i@Base 0 + glColor3iv@Base 0 + glColor3s@Base 0 + glColor3sv@Base 0 + glColor3ub@Base 0 + glColor3ubv@Base 0 + glColor3ui@Base 0 + glColor3uiv@Base 0 + glColor3us@Base 0 + glColor3usv@Base 0 + glColor4b@Base 0 + glColor4bv@Base 0 + glColor4d@Base 0 + glColor4dv@Base 0 + glColor4f@Base 0 + glColor4fv@Base 0 + glColor4i@Base 0 + glColor4iv@Base 0 + glColor4s@Base 0 + glColor4sv@Base 0 + glColor4ub@Base 0 + glColor4ubv@Base 0 + glColor4ui@Base 0 + glColor4uiv@Base 0 + glColor4us@Base 0 + glColor4usv@Base 0 + glColor4x@Base 0 + glColorMask@Base 0 + glColorMaskIndexedEXT@Base 0 + glColorMaski@Base 0 + glColorMaterial@Base 0 + glColorP3ui@Base 0 + glColorP3uiv@Base 0 + glColorP4ui@Base 0 + glColorP4uiv@Base 0 + glColorPointer@Base 0 + glColorPointerEXT@Base 0 + glColorSubTable@Base 0 + glColorTable@Base 0 + glColorTableParameterfv@Base 0 + glColorTableParameteriv@Base 0 + glCompileShader@Base 0 + glCompileShaderARB@Base 0 + glCompressedTexImage1D@Base 0 + glCompressedTexImage1DARB@Base 0 + glCompressedTexImage2D@Base 0 + glCompressedTexImage2DARB@Base 0 + glCompressedTexImage3D@Base 0 + glCompressedTexImage3DARB@Base 0 + glCompressedTexSubImage1D@Base 0 + glCompressedTexSubImage1DARB@Base 0 + glCompressedTexSubImage2D@Base 0 + glCompressedTexSubImage2DARB@Base 0 + glCompressedTexSubImage3D@Base 0 + glCompressedTexSubImage3DARB@Base 0 + glConvolutionFilter1D@Base 0 + glConvolutionFilter2D@Base 0 + glConvolutionParameterf@Base 0 + glConvolutionParameterfv@Base 0 + glConvolutionParameteri@Base 0 + glConvolutionParameteriv@Base 0 + glCopyBufferSubData@Base 0 + glCopyColorSubTable@Base 0 + glCopyColorTable@Base 0 + glCopyConvolutionFilter1D@Base 0 + glCopyConvolutionFilter2D@Base 0 + glCopyImageSubData@Base 0 + glCopyPixels@Base 0 + glCopyTexImage1D@Base 0 + glCopyTexImage2D@Base 0 + glCopyTexSubImage1D@Base 0 + glCopyTexSubImage2D@Base 0 + glCopyTexSubImage3D@Base 0 + glCopyTexSubImage3DEXT@Base 0 + glCreateProgram@Base 0 + glCreateProgramObjectARB@Base 0 + glCreateShader@Base 0 + glCreateShaderObjectARB@Base 0 + glCreateShaderProgramv@Base 12.0.1 + glCullFace@Base 0 + glDebugMessageCallback@Base 0 + glDebugMessageCallbackARB@Base 0 + glDebugMessageControl@Base 0 + glDebugMessageControlARB@Base 0 + glDebugMessageInsert@Base 0 + glDebugMessageInsertARB@Base 0 + glDeleteBuffers@Base 0 + glDeleteBuffersARB@Base 0 + glDeleteFramebuffers@Base 0 + glDeleteFramebuffersEXT@Base 0 + glDeleteLists@Base 0 + glDeleteObjectARB@Base 0 + glDeleteProgram@Base 0 + glDeleteProgramPipelines@Base 12.0.1 + glDeleteProgramsARB@Base 0 + glDeleteQueries@Base 0 + glDeleteQueriesARB@Base 0 + glDeleteRenderbuffers@Base 0 + glDeleteRenderbuffersEXT@Base 0 + glDeleteSamplers@Base 0 + glDeleteShader@Base 0 + glDeleteSync@Base 0 + glDeleteTextures@Base 0 + glDeleteTexturesEXT@Base 0 + glDeleteTransformFeedbacks@Base 0 + glDeleteVertexArrays@Base 0 + glDepthFunc@Base 0 + glDepthMask@Base 0 + glDepthRange@Base 0 + glDepthRangeArrayv@Base 0 + glDepthRangeIndexed@Base 0 + glDepthRangef@Base 0 + glDepthRangex@Base 0 + glDetachObjectARB@Base 0 + glDetachShader@Base 0 + glDisable@Base 0 + glDisableClientState@Base 0 + glDisableIndexedEXT@Base 0 + glDisableVertexAttribArray@Base 0 + glDisableVertexAttribArrayARB@Base 0 + glDisablei@Base 0 + glDispatchCompute@Base 0 + glDispatchComputeIndirect@Base 0 + glDrawArrays@Base 0 + glDrawArraysEXT@Base 0 + glDrawArraysIndirect@Base 0 + glDrawArraysInstanced@Base 0 + glDrawArraysInstancedARB@Base 0 + glDrawArraysInstancedBaseInstance@Base 0 + glDrawArraysInstancedEXT@Base 0 + glDrawBuffer@Base 0 + glDrawBuffers@Base 0 + glDrawBuffersARB@Base 0 + glDrawBuffersATI@Base 0 + glDrawElements@Base 0 + glDrawElementsBaseVertex@Base 0 + glDrawElementsIndirect@Base 0 + glDrawElementsInstanced@Base 0 + glDrawElementsInstancedARB@Base 0 + glDrawElementsInstancedBaseInstance@Base 0 + glDrawElementsInstancedBaseVertex@Base 0 + glDrawElementsInstancedBaseVertexBaseInstance@Base 0 + glDrawElementsInstancedEXT@Base 0 + glDrawPixels@Base 0 + glDrawRangeElements@Base 0 + glDrawRangeElementsBaseVertex@Base 0 + glDrawRangeElementsEXT@Base 0 + glDrawTransformFeedback@Base 0 + glDrawTransformFeedbackInstanced@Base 0 + glDrawTransformFeedbackStream@Base 0 + glDrawTransformFeedbackStreamInstanced@Base 0 + glEdgeFlag@Base 0 + glEdgeFlagPointer@Base 0 + glEdgeFlagPointerEXT@Base 0 + glEdgeFlagv@Base 0 + glEnable@Base 0 + glEnableClientState@Base 0 + glEnableIndexedEXT@Base 0 + glEnableVertexAttribArray@Base 0 + glEnableVertexAttribArrayARB@Base 0 + glEnablei@Base 0 + glEnd@Base 0 + glEndConditionalRender@Base 0 + glEndConditionalRenderNV@Base 0 + glEndList@Base 0 + glEndQuery@Base 0 + glEndQueryARB@Base 0 + glEndQueryIndexed@Base 0 + glEndTransformFeedback@Base 0 + glEvalCoord1d@Base 0 + glEvalCoord1dv@Base 0 + glEvalCoord1f@Base 0 + glEvalCoord1fv@Base 0 + glEvalCoord2d@Base 0 + glEvalCoord2dv@Base 0 + glEvalCoord2f@Base 0 + glEvalCoord2fv@Base 0 + glEvalMesh1@Base 0 + glEvalMesh2@Base 0 + glEvalPoint1@Base 0 + glEvalPoint2@Base 0 + glFeedbackBuffer@Base 0 + glFenceSync@Base 0 + glFinish@Base 0 + glFlush@Base 0 + glFlushMappedBufferRange@Base 0 + glFogCoordPointer@Base 0 + glFogCoordPointerEXT@Base 0 + glFogCoordd@Base 0 + glFogCoorddEXT@Base 0 + glFogCoorddv@Base 0 + glFogCoorddvEXT@Base 0 + glFogCoordf@Base 0 + glFogCoordfEXT@Base 0 + glFogCoordfv@Base 0 + glFogCoordfvEXT@Base 0 + glFogf@Base 0 + glFogfv@Base 0 + glFogi@Base 0 + glFogiv@Base 0 + glFogx@Base 0 + glFogxv@Base 0 + glFramebufferParameteri@Base 12.0.1 + glFramebufferRenderbuffer@Base 0 + glFramebufferRenderbufferEXT@Base 0 + glFramebufferTexture1D@Base 0 + glFramebufferTexture1DEXT@Base 0 + glFramebufferTexture2D@Base 0 + glFramebufferTexture2DEXT@Base 0 + glFramebufferTexture3D@Base 0 + glFramebufferTexture3DEXT@Base 0 + glFramebufferTexture@Base 0 + glFramebufferTextureLayer@Base 0 + glFramebufferTextureLayerEXT@Base 0 + glFramebufferTextureMultisampleMultiviewOVR@Base 24.3.0~pre20241104-1asahi2.24.04 + glFramebufferTextureMultiviewOVR@Base 24.3.0~pre20241104-1asahi2.24.04 + glFrontFace@Base 0 + glFrustum@Base 0 + glFrustumf@Base 0 + glFrustumx@Base 0 + glGenBuffers@Base 0 + glGenBuffersARB@Base 0 + glGenFramebuffers@Base 0 + glGenFramebuffersEXT@Base 0 + glGenLists@Base 0 + glGenProgramPipelines@Base 12.0.1 + glGenProgramsARB@Base 0 + glGenQueries@Base 0 + glGenQueriesARB@Base 0 + glGenRenderbuffers@Base 0 + glGenRenderbuffersEXT@Base 0 + glGenSamplers@Base 0 + glGenTextures@Base 0 + glGenTexturesEXT@Base 0 + glGenTransformFeedbacks@Base 0 + glGenVertexArrays@Base 0 + glGenerateMipmap@Base 0 + glGenerateMipmapEXT@Base 0 + glGetActiveAtomicCounterBufferiv@Base 0 + glGetActiveAttrib@Base 0 + glGetActiveAttribARB@Base 0 + glGetActiveUniform@Base 0 + glGetActiveUniformARB@Base 0 + glGetActiveUniformBlockName@Base 0 + glGetActiveUniformBlockiv@Base 0 + glGetActiveUniformName@Base 0 + glGetActiveUniformsiv@Base 0 + glGetAttachedObjectsARB@Base 0 + glGetAttachedShaders@Base 0 + glGetAttribLocation@Base 0 + glGetAttribLocationARB@Base 0 + glGetBooleanIndexedvEXT@Base 0 + glGetBooleani_v@Base 0 + glGetBooleanv@Base 0 + glGetBufferParameteri64v@Base 0 + glGetBufferParameteriv@Base 0 + glGetBufferParameterivARB@Base 0 + glGetBufferPointerv@Base 0 + glGetBufferPointervARB@Base 0 + glGetBufferSubData@Base 0 + glGetBufferSubDataARB@Base 0 + glGetClipPlane@Base 0 + glGetClipPlanef@Base 0 + glGetClipPlanex@Base 0 + glGetColorTable@Base 0 + glGetColorTableParameterfv@Base 0 + glGetColorTableParameteriv@Base 0 + glGetCompressedTexImage@Base 0 + glGetCompressedTexImageARB@Base 0 + glGetConvolutionFilter@Base 0 + glGetConvolutionParameterfv@Base 0 + glGetConvolutionParameteriv@Base 0 + glGetDebugMessageLog@Base 0 + glGetDebugMessageLogARB@Base 0 + glGetDoublei_v@Base 0 + glGetDoublev@Base 0 + glGetError@Base 0 + glGetFixedv@Base 0 + glGetFloati_v@Base 0 + glGetFloatv@Base 0 + glGetFragDataIndex@Base 0 + glGetFragDataLocation@Base 0 + glGetFragDataLocationEXT@Base 0 + glGetFramebufferAttachmentParameteriv@Base 0 + glGetFramebufferAttachmentParameterivEXT@Base 0 + glGetFramebufferParameteriv@Base 12.0.1 + glGetGraphicsResetStatus@Base 13.0.0~ + glGetGraphicsResetStatusARB@Base 0 + glGetHandleARB@Base 0 + glGetHistogram@Base 0 + glGetHistogramParameterfv@Base 0 + glGetHistogramParameteriv@Base 0 + glGetInfoLogARB@Base 0 + glGetInteger64i_v@Base 0 + glGetInteger64v@Base 0 + glGetIntegerIndexedvEXT@Base 0 + glGetIntegeri_v@Base 0 + glGetIntegerv@Base 0 + glGetLightfv@Base 0 + glGetLightiv@Base 0 + glGetLightxv@Base 0 + glGetMapdv@Base 0 + glGetMapfv@Base 0 + glGetMapiv@Base 0 + glGetMaterialfv@Base 0 + glGetMaterialiv@Base 0 + glGetMaterialxv@Base 0 + glGetMinmax@Base 0 + glGetMinmaxParameterfv@Base 0 + glGetMinmaxParameteriv@Base 0 + glGetMultisamplefv@Base 0 + glGetObjectLabel@Base 0 + glGetObjectLabelEXT@Base 23.0.0 + glGetObjectParameterfvARB@Base 0 + glGetObjectParameterivARB@Base 0 + glGetObjectPtrLabel@Base 0 + glGetPixelMapfv@Base 0 + glGetPixelMapuiv@Base 0 + glGetPixelMapusv@Base 0 + glGetPointerv@Base 0 + glGetPointervEXT@Base 0 + glGetPolygonStipple@Base 0 + glGetProgramBinary@Base 0 + glGetProgramEnvParameterdvARB@Base 0 + glGetProgramEnvParameterfvARB@Base 0 + glGetProgramInfoLog@Base 0 + glGetProgramInterfaceiv@Base 12.0.1 + glGetProgramLocalParameterdvARB@Base 0 + glGetProgramLocalParameterfvARB@Base 0 + glGetProgramPipelineInfoLog@Base 12.0.1 + glGetProgramPipelineiv@Base 12.0.1 + glGetProgramResourceIndex@Base 12.0.1 + glGetProgramResourceLocation@Base 12.0.1 + glGetProgramResourceName@Base 12.0.1 + glGetProgramResourceiv@Base 12.0.1 + glGetProgramStringARB@Base 0 + glGetProgramiv@Base 0 + glGetProgramivARB@Base 0 + glGetQueryIndexediv@Base 0 + glGetQueryObjectiv@Base 0 + glGetQueryObjectivARB@Base 0 + glGetQueryObjectuiv@Base 0 + glGetQueryObjectuivARB@Base 0 + glGetQueryiv@Base 0 + glGetQueryivARB@Base 0 + glGetRenderbufferParameteriv@Base 0 + glGetRenderbufferParameterivEXT@Base 0 + glGetSamplerParameterIiv@Base 0 + glGetSamplerParameterIuiv@Base 0 + glGetSamplerParameterfv@Base 0 + glGetSamplerParameteriv@Base 0 + glGetSeparableFilter@Base 0 + glGetShaderInfoLog@Base 0 + glGetShaderPrecisionFormat@Base 0 + glGetShaderSource@Base 0 + glGetShaderSourceARB@Base 0 + glGetShaderiv@Base 0 + glGetString@Base 0 + glGetStringi@Base 0 + glGetSynciv@Base 0 + glGetTexEnvfv@Base 0 + glGetTexEnviv@Base 0 + glGetTexEnvxv@Base 0 + glGetTexGendv@Base 0 + glGetTexGenfv@Base 0 + glGetTexGeniv@Base 0 + glGetTexImage@Base 0 + glGetTexLevelParameterfv@Base 0 + glGetTexLevelParameteriv@Base 0 + glGetTexParameterIiv@Base 0 + glGetTexParameterIivEXT@Base 0 + glGetTexParameterIuiv@Base 0 + glGetTexParameterIuivEXT@Base 0 + glGetTexParameterfv@Base 0 + glGetTexParameteriv@Base 0 + glGetTexParameterxv@Base 0 + glGetTransformFeedbackVarying@Base 0 + glGetUniformBlockIndex@Base 0 + glGetUniformIndices@Base 0 + glGetUniformLocation@Base 0 + glGetUniformLocationARB@Base 0 + glGetUniformfv@Base 0 + glGetUniformfvARB@Base 0 + glGetUniformiv@Base 0 + glGetUniformivARB@Base 0 + glGetUniformuiv@Base 0 + glGetUniformuivEXT@Base 0 + glGetVertexAttribIiv@Base 0 + glGetVertexAttribIivEXT@Base 0 + glGetVertexAttribIuiv@Base 0 + glGetVertexAttribIuivEXT@Base 0 + glGetVertexAttribPointerv@Base 0 + glGetVertexAttribPointervARB@Base 0 + glGetVertexAttribdv@Base 0 + glGetVertexAttribdvARB@Base 0 + glGetVertexAttribfv@Base 0 + glGetVertexAttribfvARB@Base 0 + glGetVertexAttribiv@Base 0 + glGetVertexAttribivARB@Base 0 + glGetnColorTableARB@Base 0 + glGetnCompressedTexImageARB@Base 0 + glGetnConvolutionFilterARB@Base 0 + glGetnHistogramARB@Base 0 + glGetnMapdvARB@Base 0 + glGetnMapfvARB@Base 0 + glGetnMapivARB@Base 0 + glGetnMinmaxARB@Base 0 + glGetnPixelMapfvARB@Base 0 + glGetnPixelMapuivARB@Base 0 + glGetnPixelMapusvARB@Base 0 + glGetnPolygonStippleARB@Base 0 + glGetnSeparableFilterARB@Base 0 + glGetnTexImageARB@Base 0 + glGetnUniformdvARB@Base 0 + glGetnUniformfv@Base 13.0.0~ + glGetnUniformfvARB@Base 0 + glGetnUniformiv@Base 13.0.0~ + glGetnUniformivARB@Base 0 + glGetnUniformuiv@Base 13.0.0~ + glGetnUniformuivARB@Base 0 + glHint@Base 0 + glHistogram@Base 0 + glIndexMask@Base 0 + glIndexPointer@Base 0 + glIndexPointerEXT@Base 0 + glIndexd@Base 0 + glIndexdv@Base 0 + glIndexf@Base 0 + glIndexfv@Base 0 + glIndexi@Base 0 + glIndexiv@Base 0 + glIndexs@Base 0 + glIndexsv@Base 0 + glIndexub@Base 0 + glIndexubv@Base 0 + glInitNames@Base 0 + glInterleavedArrays@Base 0 + glInvalidateBufferData@Base 0 + glInvalidateBufferSubData@Base 0 + glInvalidateFramebuffer@Base 0 + glInvalidateSubFramebuffer@Base 0 + glInvalidateTexImage@Base 0 + glInvalidateTexSubImage@Base 0 + glIsBuffer@Base 0 + glIsBufferARB@Base 0 + glIsEnabled@Base 0 + glIsEnabledIndexedEXT@Base 0 + glIsEnabledi@Base 0 + glIsFramebuffer@Base 0 + glIsFramebufferEXT@Base 0 + glIsList@Base 0 + glIsProgram@Base 0 + glIsProgramARB@Base 0 + glIsProgramPipeline@Base 12.0.1 + glIsQuery@Base 0 + glIsQueryARB@Base 0 + glIsRenderbuffer@Base 0 + glIsRenderbufferEXT@Base 0 + glIsSampler@Base 0 + glIsShader@Base 0 + glIsSync@Base 0 + glIsTexture@Base 0 + glIsTextureEXT@Base 0 + glIsTransformFeedback@Base 0 + glIsVertexArray@Base 0 + glLabelObjectEXT@Base 23.0.0 + glLightModelf@Base 0 + glLightModelfv@Base 0 + glLightModeli@Base 0 + glLightModeliv@Base 0 + glLightModelx@Base 0 + glLightModelxv@Base 0 + glLightf@Base 0 + glLightfv@Base 0 + glLighti@Base 0 + glLightiv@Base 0 + glLightx@Base 0 + glLightxv@Base 0 + glLineStipple@Base 0 + glLineWidth@Base 0 + glLineWidthx@Base 0 + glLinkProgram@Base 0 + glLinkProgramARB@Base 0 + glListBase@Base 0 + glLoadIdentity@Base 0 + glLoadMatrixd@Base 0 + glLoadMatrixf@Base 0 + glLoadMatrixx@Base 0 + glLoadName@Base 0 + glLoadTransposeMatrixd@Base 0 + glLoadTransposeMatrixdARB@Base 0 + glLoadTransposeMatrixf@Base 0 + glLoadTransposeMatrixfARB@Base 0 + glLockArraysEXT@Base 0 + glLogicOp@Base 0 + glMap1d@Base 0 + glMap1f@Base 0 + glMap2d@Base 0 + glMap2f@Base 0 + glMapBuffer@Base 0 + glMapBufferARB@Base 0 + glMapBufferRange@Base 0 + glMapGrid1d@Base 0 + glMapGrid1f@Base 0 + glMapGrid2d@Base 0 + glMapGrid2f@Base 0 + glMaterialf@Base 0 + glMaterialfv@Base 0 + glMateriali@Base 0 + glMaterialiv@Base 0 + glMaterialx@Base 0 + glMaterialxv@Base 0 + glMatrixMode@Base 0 + glMemoryBarrier@Base 0 + glMemoryBarrierByRegion@Base 12.0.1 + glMinSampleShading@Base 0 + glMinSampleShadingARB@Base 0 + glMinmax@Base 0 + glMultMatrixd@Base 0 + glMultMatrixf@Base 0 + glMultMatrixx@Base 0 + glMultTransposeMatrixd@Base 0 + glMultTransposeMatrixdARB@Base 0 + glMultTransposeMatrixf@Base 0 + glMultTransposeMatrixfARB@Base 0 + glMultiDrawArrays@Base 0 + glMultiDrawArraysEXT@Base 0 + glMultiDrawArraysIndirect@Base 0 + glMultiDrawElements@Base 0 + glMultiDrawElementsBaseVertex@Base 0 + glMultiDrawElementsEXT@Base 0 + glMultiDrawElementsIndirect@Base 0 + glMultiTexCoord1d@Base 0 + glMultiTexCoord1dARB@Base 0 + glMultiTexCoord1dv@Base 0 + glMultiTexCoord1dvARB@Base 0 + glMultiTexCoord1f@Base 0 + glMultiTexCoord1fARB@Base 0 + glMultiTexCoord1fv@Base 0 + glMultiTexCoord1fvARB@Base 0 + glMultiTexCoord1i@Base 0 + glMultiTexCoord1iARB@Base 0 + glMultiTexCoord1iv@Base 0 + glMultiTexCoord1ivARB@Base 0 + glMultiTexCoord1s@Base 0 + glMultiTexCoord1sARB@Base 0 + glMultiTexCoord1sv@Base 0 + glMultiTexCoord1svARB@Base 0 + glMultiTexCoord2d@Base 0 + glMultiTexCoord2dARB@Base 0 + glMultiTexCoord2dv@Base 0 + glMultiTexCoord2dvARB@Base 0 + glMultiTexCoord2f@Base 0 + glMultiTexCoord2fARB@Base 0 + glMultiTexCoord2fv@Base 0 + glMultiTexCoord2fvARB@Base 0 + glMultiTexCoord2i@Base 0 + glMultiTexCoord2iARB@Base 0 + glMultiTexCoord2iv@Base 0 + glMultiTexCoord2ivARB@Base 0 + glMultiTexCoord2s@Base 0 + glMultiTexCoord2sARB@Base 0 + glMultiTexCoord2sv@Base 0 + glMultiTexCoord2svARB@Base 0 + glMultiTexCoord3d@Base 0 + glMultiTexCoord3dARB@Base 0 + glMultiTexCoord3dv@Base 0 + glMultiTexCoord3dvARB@Base 0 + glMultiTexCoord3f@Base 0 + glMultiTexCoord3fARB@Base 0 + glMultiTexCoord3fv@Base 0 + glMultiTexCoord3fvARB@Base 0 + glMultiTexCoord3i@Base 0 + glMultiTexCoord3iARB@Base 0 + glMultiTexCoord3iv@Base 0 + glMultiTexCoord3ivARB@Base 0 + glMultiTexCoord3s@Base 0 + glMultiTexCoord3sARB@Base 0 + glMultiTexCoord3sv@Base 0 + glMultiTexCoord3svARB@Base 0 + glMultiTexCoord4d@Base 0 + glMultiTexCoord4dARB@Base 0 + glMultiTexCoord4dv@Base 0 + glMultiTexCoord4dvARB@Base 0 + glMultiTexCoord4f@Base 0 + glMultiTexCoord4fARB@Base 0 + glMultiTexCoord4fv@Base 0 + glMultiTexCoord4fvARB@Base 0 + glMultiTexCoord4i@Base 0 + glMultiTexCoord4iARB@Base 0 + glMultiTexCoord4iv@Base 0 + glMultiTexCoord4ivARB@Base 0 + glMultiTexCoord4s@Base 0 + glMultiTexCoord4sARB@Base 0 + glMultiTexCoord4sv@Base 0 + glMultiTexCoord4svARB@Base 0 + glMultiTexCoord4x@Base 0 + glMultiTexCoordP1ui@Base 0 + glMultiTexCoordP1uiv@Base 0 + glMultiTexCoordP2ui@Base 0 + glMultiTexCoordP2uiv@Base 0 + glMultiTexCoordP3ui@Base 0 + glMultiTexCoordP3uiv@Base 0 + glMultiTexCoordP4ui@Base 0 + glMultiTexCoordP4uiv@Base 0 + glNewList@Base 0 + glNormal3b@Base 0 + glNormal3bv@Base 0 + glNormal3d@Base 0 + glNormal3dv@Base 0 + glNormal3f@Base 0 + glNormal3fv@Base 0 + glNormal3i@Base 0 + glNormal3iv@Base 0 + glNormal3s@Base 0 + glNormal3sv@Base 0 + glNormal3x@Base 0 + glNormalP3ui@Base 0 + glNormalP3uiv@Base 0 + glNormalPointer@Base 0 + glNormalPointerEXT@Base 0 + glObjectLabel@Base 0 + glObjectPtrLabel@Base 0 + glOrtho@Base 0 + glOrthof@Base 0 + glOrthox@Base 0 + glPassThrough@Base 0 + glPatchParameteri@Base 13.0.0~ + glPauseTransformFeedback@Base 0 + glPixelMapfv@Base 0 + glPixelMapuiv@Base 0 + glPixelMapusv@Base 0 + glPixelStoref@Base 0 + glPixelStorei@Base 0 + glPixelTransferf@Base 0 + glPixelTransferi@Base 0 + glPixelZoom@Base 0 + glPointParameterf@Base 0 + glPointParameterfARB@Base 0 + glPointParameterfEXT@Base 0 + glPointParameterfv@Base 0 + glPointParameterfvARB@Base 0 + glPointParameterfvEXT@Base 0 + glPointParameteri@Base 0 + glPointParameteriv@Base 0 + glPointParameterx@Base 0 + glPointParameterxv@Base 0 + glPointSize@Base 0 + glPointSizePointerOES@Base 0 + glPointSizex@Base 0 + glPolygonMode@Base 0 + glPolygonOffset@Base 0 + glPolygonOffsetx@Base 0 + glPolygonStipple@Base 0 + glPopAttrib@Base 0 + glPopClientAttrib@Base 0 + glPopDebugGroup@Base 0 + glPopMatrix@Base 0 + glPopName@Base 0 + glPrimitiveBoundingBox@Base 13.0.0~ + glPrimitiveRestartIndex@Base 0 + glPrimitiveRestartIndexNV@Base 0 + glPrimitiveRestartNV@Base 0 + glPrioritizeTextures@Base 0 + glPrioritizeTexturesEXT@Base 0 + glProgramBinary@Base 0 + glProgramEnvParameter4dARB@Base 0 + glProgramEnvParameter4dvARB@Base 0 + glProgramEnvParameter4fARB@Base 0 + glProgramEnvParameter4fvARB@Base 0 + glProgramLocalParameter4dARB@Base 0 + glProgramLocalParameter4dvARB@Base 0 + glProgramLocalParameter4fARB@Base 0 + glProgramLocalParameter4fvARB@Base 0 + glProgramParameteri@Base 0 + glProgramStringARB@Base 0 + glProgramUniform1f@Base 12.0.1 + glProgramUniform1fv@Base 12.0.1 + glProgramUniform1i@Base 12.0.1 + glProgramUniform1iv@Base 12.0.1 + glProgramUniform1ui@Base 12.0.1 + glProgramUniform1uiv@Base 12.0.1 + glProgramUniform2f@Base 12.0.1 + glProgramUniform2fv@Base 12.0.1 + glProgramUniform2i@Base 12.0.1 + glProgramUniform2iv@Base 12.0.1 + glProgramUniform2ui@Base 12.0.1 + glProgramUniform2uiv@Base 12.0.1 + glProgramUniform3f@Base 12.0.1 + glProgramUniform3fv@Base 12.0.1 + glProgramUniform3i@Base 12.0.1 + glProgramUniform3iv@Base 12.0.1 + glProgramUniform3ui@Base 12.0.1 + glProgramUniform3uiv@Base 12.0.1 + glProgramUniform4f@Base 12.0.1 + glProgramUniform4fv@Base 12.0.1 + glProgramUniform4i@Base 12.0.1 + glProgramUniform4iv@Base 12.0.1 + glProgramUniform4ui@Base 12.0.1 + glProgramUniform4uiv@Base 12.0.1 + glProgramUniformMatrix2fv@Base 12.0.1 + glProgramUniformMatrix2x3fv@Base 12.0.1 + glProgramUniformMatrix2x4fv@Base 12.0.1 + glProgramUniformMatrix3fv@Base 12.0.1 + glProgramUniformMatrix3x2fv@Base 12.0.1 + glProgramUniformMatrix3x4fv@Base 12.0.1 + glProgramUniformMatrix4fv@Base 12.0.1 + glProgramUniformMatrix4x2fv@Base 12.0.1 + glProgramUniformMatrix4x3fv@Base 12.0.1 + glProvokingVertex@Base 0 + glProvokingVertexEXT@Base 0 + glPushAttrib@Base 0 + glPushClientAttrib@Base 0 + glPushDebugGroup@Base 0 + glPushMatrix@Base 0 + glPushName@Base 0 + glRasterPos2d@Base 0 + glRasterPos2dv@Base 0 + glRasterPos2f@Base 0 + glRasterPos2fv@Base 0 + glRasterPos2i@Base 0 + glRasterPos2iv@Base 0 + glRasterPos2s@Base 0 + glRasterPos2sv@Base 0 + glRasterPos3d@Base 0 + glRasterPos3dv@Base 0 + glRasterPos3f@Base 0 + glRasterPos3fv@Base 0 + glRasterPos3i@Base 0 + glRasterPos3iv@Base 0 + glRasterPos3s@Base 0 + glRasterPos3sv@Base 0 + glRasterPos4d@Base 0 + glRasterPos4dv@Base 0 + glRasterPos4f@Base 0 + glRasterPos4fv@Base 0 + glRasterPos4i@Base 0 + glRasterPos4iv@Base 0 + glRasterPos4s@Base 0 + glRasterPos4sv@Base 0 + glReadBuffer@Base 0 + glReadPixels@Base 0 + glReadnPixels@Base 13.0.0~ + glReadnPixelsARB@Base 0 + glRectd@Base 0 + glRectdv@Base 0 + glRectf@Base 0 + glRectfv@Base 0 + glRecti@Base 0 + glRectiv@Base 0 + glRects@Base 0 + glRectsv@Base 0 + glReleaseShaderCompiler@Base 0 + glRenderMode@Base 0 + glRenderbufferStorage@Base 0 + glRenderbufferStorageEXT@Base 0 + glRenderbufferStorageMultisample@Base 0 + glRenderbufferStorageMultisampleEXT@Base 0 + glResetHistogram@Base 0 + glResetMinmax@Base 0 + glResumeTransformFeedback@Base 0 + glRotated@Base 0 + glRotatef@Base 0 + glRotatex@Base 0 + glSampleCoverage@Base 0 + glSampleCoverageARB@Base 0 + glSampleCoveragex@Base 0 + glSampleMaski@Base 0 + glSamplerParameterIiv@Base 0 + glSamplerParameterIuiv@Base 0 + glSamplerParameterf@Base 0 + glSamplerParameterfv@Base 0 + glSamplerParameteri@Base 0 + glSamplerParameteriv@Base 0 + glScaled@Base 0 + glScalef@Base 0 + glScalex@Base 0 + glScissor@Base 0 + glScissorArrayv@Base 0 + glScissorIndexed@Base 0 + glScissorIndexedv@Base 0 + glSecondaryColor3b@Base 0 + glSecondaryColor3bEXT@Base 0 + glSecondaryColor3bv@Base 0 + glSecondaryColor3bvEXT@Base 0 + glSecondaryColor3d@Base 0 + glSecondaryColor3dEXT@Base 0 + glSecondaryColor3dv@Base 0 + glSecondaryColor3dvEXT@Base 0 + glSecondaryColor3f@Base 0 + glSecondaryColor3fEXT@Base 0 + glSecondaryColor3fv@Base 0 + glSecondaryColor3fvEXT@Base 0 + glSecondaryColor3i@Base 0 + glSecondaryColor3iEXT@Base 0 + glSecondaryColor3iv@Base 0 + glSecondaryColor3ivEXT@Base 0 + glSecondaryColor3s@Base 0 + glSecondaryColor3sEXT@Base 0 + glSecondaryColor3sv@Base 0 + glSecondaryColor3svEXT@Base 0 + glSecondaryColor3ub@Base 0 + glSecondaryColor3ubEXT@Base 0 + glSecondaryColor3ubv@Base 0 + glSecondaryColor3ubvEXT@Base 0 + glSecondaryColor3ui@Base 0 + glSecondaryColor3uiEXT@Base 0 + glSecondaryColor3uiv@Base 0 + glSecondaryColor3uivEXT@Base 0 + glSecondaryColor3us@Base 0 + glSecondaryColor3usEXT@Base 0 + glSecondaryColor3usv@Base 0 + glSecondaryColor3usvEXT@Base 0 + glSecondaryColorP3ui@Base 0 + glSecondaryColorP3uiv@Base 0 + glSecondaryColorPointer@Base 0 + glSecondaryColorPointerEXT@Base 0 + glSelectBuffer@Base 0 + glSeparableFilter2D@Base 0 + glShadeModel@Base 0 + glShaderBinary@Base 0 + glShaderSource@Base 0 + glShaderSourceARB@Base 0 + glStencilFunc@Base 0 + glStencilFuncSeparate@Base 0 + glStencilMask@Base 0 + glStencilMaskSeparate@Base 0 + glStencilOp@Base 0 + glStencilOpSeparate@Base 0 + glTexBuffer@Base 0 + glTexBufferARB@Base 0 + glTexBufferRange@Base 0 + glTexCoord1d@Base 0 + glTexCoord1dv@Base 0 + glTexCoord1f@Base 0 + glTexCoord1fv@Base 0 + glTexCoord1i@Base 0 + glTexCoord1iv@Base 0 + glTexCoord1s@Base 0 + glTexCoord1sv@Base 0 + glTexCoord2d@Base 0 + glTexCoord2dv@Base 0 + glTexCoord2f@Base 0 + glTexCoord2fv@Base 0 + glTexCoord2i@Base 0 + glTexCoord2iv@Base 0 + glTexCoord2s@Base 0 + glTexCoord2sv@Base 0 + glTexCoord3d@Base 0 + glTexCoord3dv@Base 0 + glTexCoord3f@Base 0 + glTexCoord3fv@Base 0 + glTexCoord3i@Base 0 + glTexCoord3iv@Base 0 + glTexCoord3s@Base 0 + glTexCoord3sv@Base 0 + glTexCoord4d@Base 0 + glTexCoord4dv@Base 0 + glTexCoord4f@Base 0 + glTexCoord4fv@Base 0 + glTexCoord4i@Base 0 + glTexCoord4iv@Base 0 + glTexCoord4s@Base 0 + glTexCoord4sv@Base 0 + glTexCoordP1ui@Base 0 + glTexCoordP1uiv@Base 0 + glTexCoordP2ui@Base 0 + glTexCoordP2uiv@Base 0 + glTexCoordP3ui@Base 0 + glTexCoordP3uiv@Base 0 + glTexCoordP4ui@Base 0 + glTexCoordP4uiv@Base 0 + glTexCoordPointer@Base 0 + glTexCoordPointerEXT@Base 0 + glTexEnvf@Base 0 + glTexEnvfv@Base 0 + glTexEnvi@Base 0 + glTexEnviv@Base 0 + glTexEnvx@Base 0 + glTexEnvxv@Base 0 + glTexGend@Base 0 + glTexGendv@Base 0 + glTexGenf@Base 0 + glTexGenfv@Base 0 + glTexGeni@Base 0 + glTexGeniv@Base 0 + glTexImage1D@Base 0 + glTexImage2D@Base 0 + glTexImage2DMultisample@Base 0 + glTexImage3D@Base 0 + glTexImage3DEXT@Base 0 + glTexImage3DMultisample@Base 0 + glTexStorageAttribs2DEXT@Base 24.2.0 + glTexStorageAttribs3DEXT@Base 24.2.0 + glTexParameterIiv@Base 0 + glTexParameterIivEXT@Base 0 + glTexParameterIuiv@Base 0 + glTexParameterIuivEXT@Base 0 + glTexParameterf@Base 0 + glTexParameterfv@Base 0 + glTexParameteri@Base 0 + glTexParameteriv@Base 0 + glTexParameterx@Base 0 + glTexParameterxv@Base 0 + glTexStorage1D@Base 0 + glTexStorage2D@Base 0 + glTexStorage2DMultisample@Base 0 + glTexStorage3D@Base 0 + glTexStorage3DMultisample@Base 0 + glTexSubImage1D@Base 0 + glTexSubImage2D@Base 0 + glTexSubImage3D@Base 0 + glTexSubImage3DEXT@Base 0 + glTextureBarrierNV@Base 0 + glTextureStorage1DEXT@Base 0 + glTextureStorage2DEXT@Base 0 + glTextureStorage3DEXT@Base 0 + glTextureView@Base 0 + glTransformFeedbackVaryings@Base 0 + glTranslated@Base 0 + glTranslatef@Base 0 + glTranslatex@Base 0 + glUniform1f@Base 0 + glUniform1fARB@Base 0 + glUniform1fv@Base 0 + glUniform1fvARB@Base 0 + glUniform1i@Base 0 + glUniform1iARB@Base 0 + glUniform1iv@Base 0 + glUniform1ivARB@Base 0 + glUniform1ui@Base 0 + glUniform1uiEXT@Base 0 + glUniform1uiv@Base 0 + glUniform1uivEXT@Base 0 + glUniform2f@Base 0 + glUniform2fARB@Base 0 + glUniform2fv@Base 0 + glUniform2fvARB@Base 0 + glUniform2i@Base 0 + glUniform2iARB@Base 0 + glUniform2iv@Base 0 + glUniform2ivARB@Base 0 + glUniform2ui@Base 0 + glUniform2uiEXT@Base 0 + glUniform2uiv@Base 0 + glUniform2uivEXT@Base 0 + glUniform3f@Base 0 + glUniform3fARB@Base 0 + glUniform3fv@Base 0 + glUniform3fvARB@Base 0 + glUniform3i@Base 0 + glUniform3iARB@Base 0 + glUniform3iv@Base 0 + glUniform3ivARB@Base 0 + glUniform3ui@Base 0 + glUniform3uiEXT@Base 0 + glUniform3uiv@Base 0 + glUniform3uivEXT@Base 0 + glUniform4f@Base 0 + glUniform4fARB@Base 0 + glUniform4fv@Base 0 + glUniform4fvARB@Base 0 + glUniform4i@Base 0 + glUniform4iARB@Base 0 + glUniform4iv@Base 0 + glUniform4ivARB@Base 0 + glUniform4ui@Base 0 + glUniform4uiEXT@Base 0 + glUniform4uiv@Base 0 + glUniform4uivEXT@Base 0 + glUniformBlockBinding@Base 0 + glUniformMatrix2fv@Base 0 + glUniformMatrix2fvARB@Base 0 + glUniformMatrix2x3fv@Base 0 + glUniformMatrix2x4fv@Base 0 + glUniformMatrix3fv@Base 0 + glUniformMatrix3fvARB@Base 0 + glUniformMatrix3x2fv@Base 0 + glUniformMatrix3x4fv@Base 0 + glUniformMatrix4fv@Base 0 + glUniformMatrix4fvARB@Base 0 + glUniformMatrix4x2fv@Base 0 + glUniformMatrix4x3fv@Base 0 + glUnlockArraysEXT@Base 0 + glUnmapBuffer@Base 0 + glUnmapBufferARB@Base 0 + glUseProgram@Base 0 + glUseProgramObjectARB@Base 0 + glUseProgramStages@Base 12.0.1 + glValidateProgram@Base 0 + glValidateProgramARB@Base 0 + glValidateProgramPipeline@Base 12.0.1 + glVertex2d@Base 0 + glVertex2dv@Base 0 + glVertex2f@Base 0 + glVertex2fv@Base 0 + glVertex2i@Base 0 + glVertex2iv@Base 0 + glVertex2s@Base 0 + glVertex2sv@Base 0 + glVertex3d@Base 0 + glVertex3dv@Base 0 + glVertex3f@Base 0 + glVertex3fv@Base 0 + glVertex3i@Base 0 + glVertex3iv@Base 0 + glVertex3s@Base 0 + glVertex3sv@Base 0 + glVertex4d@Base 0 + glVertex4dv@Base 0 + glVertex4f@Base 0 + glVertex4fv@Base 0 + glVertex4i@Base 0 + glVertex4iv@Base 0 + glVertex4s@Base 0 + glVertex4sv@Base 0 + glVertexAttrib1d@Base 0 + glVertexAttrib1dARB@Base 0 + glVertexAttrib1dv@Base 0 + glVertexAttrib1dvARB@Base 0 + glVertexAttrib1f@Base 0 + glVertexAttrib1fARB@Base 0 + glVertexAttrib1fv@Base 0 + glVertexAttrib1fvARB@Base 0 + glVertexAttrib1s@Base 0 + glVertexAttrib1sARB@Base 0 + glVertexAttrib1sv@Base 0 + glVertexAttrib1svARB@Base 0 + glVertexAttrib2d@Base 0 + glVertexAttrib2dARB@Base 0 + glVertexAttrib2dv@Base 0 + glVertexAttrib2dvARB@Base 0 + glVertexAttrib2f@Base 0 + glVertexAttrib2fARB@Base 0 + glVertexAttrib2fv@Base 0 + glVertexAttrib2fvARB@Base 0 + glVertexAttrib2s@Base 0 + glVertexAttrib2sARB@Base 0 + glVertexAttrib2sv@Base 0 + glVertexAttrib2svARB@Base 0 + glVertexAttrib3d@Base 0 + glVertexAttrib3dARB@Base 0 + glVertexAttrib3dv@Base 0 + glVertexAttrib3dvARB@Base 0 + glVertexAttrib3f@Base 0 + glVertexAttrib3fARB@Base 0 + glVertexAttrib3fv@Base 0 + glVertexAttrib3fvARB@Base 0 + glVertexAttrib3s@Base 0 + glVertexAttrib3sARB@Base 0 + glVertexAttrib3sv@Base 0 + glVertexAttrib3svARB@Base 0 + glVertexAttrib4Nbv@Base 0 + glVertexAttrib4NbvARB@Base 0 + glVertexAttrib4Niv@Base 0 + glVertexAttrib4NivARB@Base 0 + glVertexAttrib4Nsv@Base 0 + glVertexAttrib4NsvARB@Base 0 + glVertexAttrib4Nub@Base 0 + glVertexAttrib4NubARB@Base 0 + glVertexAttrib4Nubv@Base 0 + glVertexAttrib4NubvARB@Base 0 + glVertexAttrib4Nuiv@Base 0 + glVertexAttrib4NuivARB@Base 0 + glVertexAttrib4Nusv@Base 0 + glVertexAttrib4NusvARB@Base 0 + glVertexAttrib4bv@Base 0 + glVertexAttrib4bvARB@Base 0 + glVertexAttrib4d@Base 0 + glVertexAttrib4dARB@Base 0 + glVertexAttrib4dv@Base 0 + glVertexAttrib4dvARB@Base 0 + glVertexAttrib4f@Base 0 + glVertexAttrib4fARB@Base 0 + glVertexAttrib4fv@Base 0 + glVertexAttrib4fvARB@Base 0 + glVertexAttrib4iv@Base 0 + glVertexAttrib4ivARB@Base 0 + glVertexAttrib4s@Base 0 + glVertexAttrib4sARB@Base 0 + glVertexAttrib4sv@Base 0 + glVertexAttrib4svARB@Base 0 + glVertexAttrib4ubv@Base 0 + glVertexAttrib4ubvARB@Base 0 + glVertexAttrib4uiv@Base 0 + glVertexAttrib4uivARB@Base 0 + glVertexAttrib4usv@Base 0 + glVertexAttrib4usvARB@Base 0 + glVertexAttribBinding@Base 0 + glVertexAttribDivisor@Base 0 + glVertexAttribDivisorARB@Base 0 + glVertexAttribFormat@Base 0 + glVertexAttribI1i@Base 0 + glVertexAttribI1iEXT@Base 0 + glVertexAttribI1iv@Base 0 + glVertexAttribI1ivEXT@Base 0 + glVertexAttribI1ui@Base 0 + glVertexAttribI1uiEXT@Base 0 + glVertexAttribI1uiv@Base 0 + glVertexAttribI1uivEXT@Base 0 + glVertexAttribI2i@Base 0 + glVertexAttribI2iEXT@Base 0 + glVertexAttribI2iv@Base 0 + glVertexAttribI2ivEXT@Base 0 + glVertexAttribI2ui@Base 0 + glVertexAttribI2uiEXT@Base 0 + glVertexAttribI2uiv@Base 0 + glVertexAttribI2uivEXT@Base 0 + glVertexAttribI3i@Base 0 + glVertexAttribI3iEXT@Base 0 + glVertexAttribI3iv@Base 0 + glVertexAttribI3ivEXT@Base 0 + glVertexAttribI3ui@Base 0 + glVertexAttribI3uiEXT@Base 0 + glVertexAttribI3uiv@Base 0 + glVertexAttribI3uivEXT@Base 0 + glVertexAttribI4bv@Base 0 + glVertexAttribI4bvEXT@Base 0 + glVertexAttribI4i@Base 0 + glVertexAttribI4iEXT@Base 0 + glVertexAttribI4iv@Base 0 + glVertexAttribI4ivEXT@Base 0 + glVertexAttribI4sv@Base 0 + glVertexAttribI4svEXT@Base 0 + glVertexAttribI4ubv@Base 0 + glVertexAttribI4ubvEXT@Base 0 + glVertexAttribI4ui@Base 0 + glVertexAttribI4uiEXT@Base 0 + glVertexAttribI4uiv@Base 0 + glVertexAttribI4uivEXT@Base 0 + glVertexAttribI4usv@Base 0 + glVertexAttribI4usvEXT@Base 0 + glVertexAttribIFormat@Base 0 + glVertexAttribIPointer@Base 0 + glVertexAttribIPointerEXT@Base 0 + glVertexAttribLFormat@Base 0 + glVertexAttribP1ui@Base 0 + glVertexAttribP1uiv@Base 0 + glVertexAttribP2ui@Base 0 + glVertexAttribP2uiv@Base 0 + glVertexAttribP3ui@Base 0 + glVertexAttribP3uiv@Base 0 + glVertexAttribP4ui@Base 0 + glVertexAttribP4uiv@Base 0 + glVertexAttribPointer@Base 0 + glVertexAttribPointerARB@Base 0 + glVertexBindingDivisor@Base 0 + glVertexP2ui@Base 0 + glVertexP2uiv@Base 0 + glVertexP3ui@Base 0 + glVertexP3uiv@Base 0 + glVertexP4ui@Base 0 + glVertexP4uiv@Base 0 + glVertexPointer@Base 0 + glVertexPointerEXT@Base 0 + glViewport@Base 0 + glViewportArrayv@Base 0 + glViewportIndexedf@Base 0 + glViewportIndexedfv@Base 0 + glWaitSync@Base 0 + glWindowPos2d@Base 0 + glWindowPos2dARB@Base 0 + glWindowPos2dv@Base 0 + glWindowPos2dvARB@Base 0 + glWindowPos2f@Base 0 + glWindowPos2fARB@Base 0 + glWindowPos2fv@Base 0 + glWindowPos2fvARB@Base 0 + glWindowPos2i@Base 0 + glWindowPos2iARB@Base 0 + glWindowPos2iv@Base 0 + glWindowPos2ivARB@Base 0 + glWindowPos2s@Base 0 + glWindowPos2sARB@Base 0 + glWindowPos2sv@Base 0 + glWindowPos2svARB@Base 0 + glWindowPos3d@Base 0 + glWindowPos3dARB@Base 0 + glWindowPos3dv@Base 0 + glWindowPos3dvARB@Base 0 + glWindowPos3f@Base 0 + glWindowPos3fARB@Base 0 + glWindowPos3fv@Base 0 + glWindowPos3fvARB@Base 0 + glWindowPos3i@Base 0 + glWindowPos3iARB@Base 0 + glWindowPos3iv@Base 0 + glWindowPos3ivARB@Base 0 + glWindowPos3s@Base 0 + glWindowPos3sARB@Base 0 + glWindowPos3sv@Base 0 + glWindowPos3svARB@Base 0 diff --git a/debian/libglx-mesa0.symbols.hurd b/debian/libglx-mesa0.symbols.hurd new file mode 100644 index 000000000000..0a33c715210e --- /dev/null +++ b/debian/libglx-mesa0.symbols.hurd @@ -0,0 +1,6 @@ +libGLX_mesa.so.0 libglx-mesa0 + __glx_Main@Base 17.0.0~ + glAreTexturesResidentEXT@Base 0 + glDeleteTexturesEXT@Base 0 + glGenTexturesEXT@Base 0 + glIsTextureEXT@Base 0 diff --git a/debian/libosmesa6-dev.install b/debian/libosmesa6-dev.install new file mode 100644 index 000000000000..30ac369674d9 --- /dev/null +++ b/debian/libosmesa6-dev.install @@ -0,0 +1,3 @@ +usr/include/GL/osmesa.h +usr/lib/*/libOSMesa.so +usr/lib/*/pkgconfig/osmesa.pc diff --git a/debian/libosmesa6.install b/debian/libosmesa6.install new file mode 100644 index 000000000000..e1986f0b5aea --- /dev/null +++ b/debian/libosmesa6.install @@ -0,0 +1 @@ +usr/lib/*/libOSMesa.so.* diff --git a/debian/libosmesa6.links.in b/debian/libosmesa6.links.in new file mode 100644 index 000000000000..e087a2db3f81 --- /dev/null +++ b/debian/libosmesa6.links.in @@ -0,0 +1 @@ +usr/lib/${DEB_HOST_MULTIARCH}/libOSMesa.so.8 usr/lib/${DEB_HOST_MULTIARCH}/libOSMesa.so.6 diff --git a/debian/libosmesa6.lintian-overrides b/debian/libosmesa6.lintian-overrides new file mode 100644 index 000000000000..9ce8905a6834 --- /dev/null +++ b/debian/libosmesa6.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libOSMesa8 diff --git a/debian/libosmesa6.shlibs b/debian/libosmesa6.shlibs new file mode 100644 index 000000000000..070b8342bbbc --- /dev/null +++ b/debian/libosmesa6.shlibs @@ -0,0 +1 @@ +libOSMesa 8 libosmesa6 (>= 10.2~) diff --git a/debian/libxatracker-dev.install b/debian/libxatracker-dev.install new file mode 100644 index 000000000000..71a5eb0b800e --- /dev/null +++ b/debian/libxatracker-dev.install @@ -0,0 +1,5 @@ +usr/lib/*/libxatracker.so +usr/lib/*/pkgconfig/xatracker.pc +usr/include/xa_composite.h +usr/include/xa_context.h +usr/include/xa_tracker.h diff --git a/debian/libxatracker2.install b/debian/libxatracker2.install new file mode 100644 index 000000000000..80c85e009c48 --- /dev/null +++ b/debian/libxatracker2.install @@ -0,0 +1 @@ +usr/lib/*/libxatracker.so.2* diff --git a/debian/libxatracker2.symbols b/debian/libxatracker2.symbols new file mode 100644 index 000000000000..f021a3893483 --- /dev/null +++ b/debian/libxatracker2.symbols @@ -0,0 +1,35 @@ +libxatracker.so.2 libxatracker2 #MINVER# + xa_composite_allocation@Base 0 + xa_composite_check_accelerated@Base 0 + xa_composite_done@Base 0 + xa_composite_prepare@Base 0 + xa_composite_rect@Base 0 + xa_context_create@Base 0 + xa_context_default@Base 0 + xa_context_destroy@Base 0 + xa_context_flush@Base 0 + xa_copy@Base 0 + xa_copy_done@Base 0 + xa_copy_prepare@Base 0 + xa_fence_destroy@Base 0 + xa_fence_get@Base 0 + xa_fence_wait@Base 0 + xa_format_check_supported@Base 0 + xa_solid@Base 0 + xa_solid_done@Base 0 + xa_solid_prepare@Base 0 + xa_surface_create@Base 0 + xa_surface_dma@Base 0 + xa_surface_format@Base 0 + xa_surface_from_handle2@Base 11.1.0~ + xa_surface_from_handle@Base 0 + xa_surface_handle@Base 0 + xa_surface_map@Base 0 + xa_surface_redefine@Base 0 + xa_surface_ref@Base 0 + xa_surface_unmap@Base 0 + xa_surface_unref@Base 0 + xa_tracker_create@Base 0 + xa_tracker_destroy@Base 0 + xa_tracker_version@Base 0 + xa_yuv_planar_blit@Base 0 diff --git a/debian/local/control b/debian/local/control new file mode 100644 index 000000000000..ffd3ee4ef24b --- /dev/null +++ b/debian/local/control @@ -0,0 +1 @@ +report-with: xserver-xorg xserver-xorg-core diff --git a/debian/local/script b/debian/local/script new file mode 100644 index 000000000000..fb6b56c56377 --- /dev/null +++ b/debian/local/script @@ -0,0 +1,26 @@ +#!/bin/sh + +SERVER_BUG_SCRIPT=/usr/share/bug/xserver-xorg-core/script + +exec >&3 + +echo "glxinfo:" +echo "--------" + +if [ -z "$DISPLAY" ]; then + echo "DISPLAY is not set." +else + if which glxinfo >/dev/null 2>&1; then + glxinfo + else + echo "glxinfo is not available (missing mesa-utils package)." + fi +fi + +echo + +if [ -x "$SERVER_BUG_SCRIPT" ]; then + $SERVER_BUG_SCRIPT 3>&1 +else + echo "$SERVER_BUG_SCRIPT not available" +fi diff --git a/debian/mesa-common-dev.install b/debian/mesa-common-dev.install new file mode 100644 index 000000000000..016a6eeba78a --- /dev/null +++ b/debian/mesa-common-dev.install @@ -0,0 +1,2 @@ +usr/include/GL/internal/dri_interface.h +usr/lib/*/pkgconfig/dri.pc diff --git a/debian/mesa-drm-shim.install b/debian/mesa-drm-shim.install new file mode 100644 index 000000000000..1d3aa880b71b --- /dev/null +++ b/debian/mesa-drm-shim.install @@ -0,0 +1 @@ +usr/lib/*/lib*_drm_shim.so diff --git a/debian/mesa-libgallium.install b/debian/mesa-libgallium.install new file mode 100644 index 000000000000..9e1c57dfb5fe --- /dev/null +++ b/debian/mesa-libgallium.install @@ -0,0 +1 @@ +usr/lib/*/libgallium-*.so diff --git a/debian/mesa-libgallium.lintian-overrides b/debian/mesa-libgallium.lintian-overrides new file mode 100644 index 000000000000..7763abc06d11 --- /dev/null +++ b/debian/mesa-libgallium.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libgallium-* diff --git a/debian/mesa-opencl-icd.install b/debian/mesa-opencl-icd.install new file mode 100644 index 000000000000..07846386975a --- /dev/null +++ b/debian/mesa-opencl-icd.install @@ -0,0 +1,3 @@ +etc/OpenCL/vendors/mesa.icd +usr/lib/*/gallium-pipe/*.so +usr/lib/*/libMesaOpenCL* diff --git a/debian/mesa-opencl-icd.lintian-overrides b/debian/mesa-opencl-icd.lintian-overrides new file mode 100644 index 000000000000..fefa26b29546 --- /dev/null +++ b/debian/mesa-opencl-icd.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libMesaOpenCL1 diff --git a/debian/mesa-vulkan-drivers.install b/debian/mesa-vulkan-drivers.install new file mode 100644 index 000000000000..12f72b2ebb26 --- /dev/null +++ b/debian/mesa-vulkan-drivers.install @@ -0,0 +1,7 @@ +usr/bin/mesa-overlay-control.py +usr/share/drirc.d/00-radv-defaults.conf +usr/share/vulkan/explicit_layer.d/*.json +usr/share/vulkan/icd.d/*.json +usr/share/vulkan/implicit_layer.d/*.json +usr/lib/*/libvulkan_*.so +usr/lib/*/libVkLayer_*.so diff --git a/debian/mesa-vulkan-drivers.lintian-overrides b/debian/mesa-vulkan-drivers.lintian-overrides new file mode 100644 index 000000000000..a471774203e1 --- /dev/null +++ b/debian/mesa-vulkan-drivers.lintian-overrides @@ -0,0 +1,3 @@ +package-name-doesnt-match-sonames libvulkan-intel libvulkan-radeon +shlib-without-versioned-soname usr/lib/*/libvulkan_intel.so libvulkan_intel.so +shlib-without-versioned-soname usr/lib/*/libvulkan_radeon.so libvulkan_radeon.so diff --git a/debian/mesa-vulkan-drivers.triggers b/debian/mesa-vulkan-drivers.triggers new file mode 100644 index 000000000000..dd8660367847 --- /dev/null +++ b/debian/mesa-vulkan-drivers.triggers @@ -0,0 +1 @@ +activate-noawait ldconfig diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000000..4622113adfa2 --- /dev/null +++ b/debian/rules @@ -0,0 +1,321 @@ +#!/usr/bin/make -f +# debian/rules for the Debian mesa package +# Copyright © 2006 Thierry Reding + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/dpkg/pkg-info.mk + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) + +# for finding the correct llvm-config when meson doesn't know about it yet +LLVM_VERSION = 18 +export PATH:=/usr/lib/llvm-$(LLVM_VERSION)/bin/:$(PATH) + +# use specific rustc path +export RUSTC:=/usr/bin/rustc-1.80 + +export DEB_BUILD_MAINT_OPTIONS=optimize=-lto + +DEB_CFLAGS_MAINT_APPEND := -Wall +DEB_CXXFLAGS_MAINT_APPEND := -Wall +ifneq (,$(filter $(DEB_HOST_ARCH), armhf)) + # Workaround for a variant of LP: #725126 + DEB_CFLAGS_MAINT_APPEND += -fno-optimize-sibling-calls + DEB_CXXFLAGS_MAINT_APPEND += -fno-optimize-sibling-calls +else ifneq (,$(filter $(DEB_HOST_ARCH), loong64)) + # Workaround loong64 BFD linker crash related to TLSDESC + DEB_CFLAGS_MAINT_APPEND += -mtls-dialect=trad + DEB_CXXFLAGS_MAINT_APPEND += -mtls-dialect=trad +else ifneq (,$(filter $(DEB_HOST_ARCH), m68k)) + # This library has huge jump tables: Debian #1067207 + DEB_CFLAGS_MAINT_APPEND += -mlong-jump-table-offsets + DEB_CXXFLAGS_MAINT_APPEND += -mlong-jump-table-offsets +else ifneq (,$(filter $(DEB_HOST_ARCH), sh4)) + # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 + DEB_CFLAGS_MAINT_APPEND += -freorder-blocks-algorithm=simple + DEB_CXXFLAGS_MAINT_APPEND += -freorder-blocks-algorithm=simple +endif +buildflags = $(shell \ + DEB_CFLAGS_MAINT_APPEND='$(DEB_CFLAGS_MAINT_APPEND)' \ + DEB_CXXFLAGS_MAINT_APPEND='$(DEB_CXXFLAGS_MAINT_APPEND)' \ + dpkg-buildflags --export=configure) + +EGL_PLATFORMS = x11 +GALLIUM_DRIVERS = softpipe +VULKAN_DRIVERS = +VULKAN_LAYERS = + +confflags_OSMESA = -Dosmesa=true +confflags_SSE2 = -Dsse2=true +confflags_TEFLON = -Dteflon=false + +LLVM_ARCHS = amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +RUSTICL_ARCHS = amd64 arm64 armel armhf loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32 +NVK_ARCHS = +VALGRIND_ARCHS = amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x +WINE_ARCHS = amd64 arm64 armel armhf i386 + +# hurd doesn't do direct rendering +ifeq ($(DEB_HOST_ARCH_OS), hurd) + confflags_DIRECT_RENDERING = -Dglx-direct=false + confflags_GBM = -Dgbm=disabled +else + # Non-Linux ports lack epoll, so wayland isn't ready yet: + # https://gitlab.freedesktop.org/wayland/wayland/-/issues/72 + # hurd also lacks *_CLOEXEC + EGL_PLATFORMS += wayland + + GALLIUM_DRIVERS += asahi nouveau r300 virgl + VULKAN_DRIVERS += asahi + confflags_DIRECT_RENDERING = -Dglx-direct=true + confflags_GBM = -Dgbm=enabled + confflags_GALLIUM += -Dgallium-extra-hud=true + confflags_GALLIUM += -Dgallium-vdpau=enabled + confflags_GALLIUM += -Dlmsensors=enabled + + # Freedreno requires arm in addition + ifneq (,$(filter arm arm64,$(DEB_HOST_ARCH_CPU))) + GALLIUM_DRIVERS += freedreno + endif + +# # etnaviv, tegra, vc4 and v3d kernel support are only available on armhf and arm64 +# ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64)) +# GALLIUM_DRIVERS += etnaviv panfrost svga tegra vc4 v3d +# VULKAN_DRIVERS += broadcom freedreno +# endif + + ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64 loong64 riscv64)) + GALLIUM_DRIVERS += lima + endif + + # Build intel drivers on archs where libdrm-intel is installed + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32)) + GALLIUM_DRIVERS += crocus i915 iris svga + VULKAN_DRIVERS += intel intel_hasvk + # svga needs xa state tracker + confflags_GALLIUM += -Dgallium-xa=enabled + endif + + ifneq (,$(filter $(DEB_HOST_ARCH), amd64)) + confflags_GALLIUM += -Dintel-clc=enabled + endif + + ifneq (,$(filter $(DEB_HOST_ARCH), $(VALGRIND_ARCHS))) + confflags_VALGRIND += -Dvalgrind=enabled + endif + +# # WSL supports only amd64 and arm64 +# ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64)) +# GALLIUM_DRIVERS += d3d12 +# endif + + # LLVM is required for building r300g, radeonsi and llvmpipe drivers. + # It's also required for building OpenCL support. + ifneq (,$(filter $(DEB_HOST_ARCH), $(LLVM_ARCHS))) + GALLIUM_DRIVERS += radeonsi zink llvmpipe + + # drop virtio from armel, it doesn't build + ifneq (,$(filter $(DEB_HOST_ARCH), armel)) + VULKAN_DRIVERS += amd swrast + else + VULKAN_DRIVERS += amd swrast virtio + endif + + VULKAN_LAYERS += device-select intel-nullhw overlay + confflags_GALLIUM += -Dllvm=enabled + confflags_GALLIUM += -Dgallium-opencl=icd + + # Build rusticl for archs where rustc is available + ifneq (,$(filter $(DEB_HOST_ARCH), $(RUSTICL_ARCHS))) + confflags_GALLIUM += -Dgallium-rusticl=true + endif + + ifneq (,$(filter $(DEB_HOST_ARCH), $(NVK_ARCHS))) + export MESON_PACKAGE_CACHE_DIR=/usr/share/cargo/registry/ + VULKAN_DRIVERS += nouveau + endif + + # nine makes sense only on archs that build wine + ifneq (,$(filter $(DEB_HOST_ARCH), $(WINE_ARCHS))) + confflags_GALLIUM += -Dgallium-nine=true + endif + else + confflags_GALLIUM += -Dllvm=disabled + endif + + ifeq (,$(filter pkg.mesa.nolibva,$(DEB_BUILD_PROFILES))) + confflags_GALLIUM += -Dgallium-va=enabled + confflags_GALLIUM += -Dvideo-codecs="all" + endif + +endif + +ifeq ($(DEB_HOST_ARCH), i386) + confflags_SSE2 = -Dsse2=false +endif + + +empty:= +space := $(empty) $(empty) +comma := , +EGL_PLATFORMS := $(patsubst %,'%',$(EGL_PLATFORMS)) +EGL_PLATFORMS_LIST := $(subst $(space),$(comma),$(EGL_PLATFORMS)) +GALLIUM_DRIVERS := $(patsubst %,'%',$(GALLIUM_DRIVERS)) +GALLIUM_DRIVERS_LIST := $(subst $(space),$(comma),$(GALLIUM_DRIVERS)) +VULKAN_DRIVERS := $(patsubst %,'%',$(VULKAN_DRIVERS)) +VULKAN_DRIVERS_LIST := $(subst $(space),$(comma),$(VULKAN_DRIVERS)) +VULKAN_LAYERS := $(patsubst %,'%',$(VULKAN_LAYERS)) +VULKAN_LAYERS_LIST := $(subst $(space),$(comma),$(VULKAN_LAYERS)) + +confflags_GLES = -Dgles1=disabled -Dgles2=enabled +confflags_GALLIUM += -Dgallium-drivers="[$(GALLIUM_DRIVERS_LIST)]" + +confflags += \ + -Ddri-drivers-path=/usr/lib/$(DEB_HOST_MULTIARCH)/dri \ + -Dplatforms="[$(EGL_PLATFORMS_LIST)]" \ + -Dvulkan-drivers="[$(VULKAN_DRIVERS_LIST)]" \ + -Dvulkan-layers="[$(VULKAN_LAYERS_LIST)]" \ + -Dglvnd=enabled \ + -Dshared-glapi=enabled \ + -Db_ndebug=true \ + -Dbuild-tests=true \ + -Dtools=drm-shim \ + $(confflags_DIRECT_RENDERING) \ + $(confflags_GBM) \ + $(confflags_GALLIUM) \ + $(confflags_GLES) \ + $(confflags_OSMESA) \ + $(confflags_SSE2) \ + $(confflags_VALGRIND) \ + $(confflags_TEFLON) + +rewrite_wrap_files: + cp -r subprojects subprojects-save + for crate in paste proc-macro2 quote syn unicode-ident; \ + do \ + export crate_namever=`basename $$MESON_PACKAGE_CACHE_DIR/$$crate-*`; \ + sed -e"/source.*/d" -e"s,$${crate}-.*,$${crate_namever}," -i subprojects/$${crate}.wrap; \ + done + touch subprojects/rewrite + +override_dh_clean: regen_control + dpkg-parsechangelog | awk '/^Version:/ {print $$2}' | sed 's/-.*//;s/~/-/' > VERSION + rm -rf .pc + rm -rf build + rm -rf configure bin/config.guess bin/config.sub config.h.in + rm -rf $$(find -name Makefile.in) + rm -rf bin/install-sh bin/ltmain.sh + rm -rf src/intel/vulkan/grl/parser.out + rm -rf src/intel/vulkan/grl/parsetab.py + for file in debian/*.links.in; do rm -f $${file%%.in}; done + find -name '*.pyc' -delete + find -name '__pycache__' -delete + if [ -f subprojects/rewrite ]; then \ + rm -rf subprojects; \ + mv subprojects-save subprojects; \ + fi + dh_clean + +override_dh_auto_configure: rewrite_wrap_files + dpkg-parsechangelog | awk '/^Version:/ {print $$2}' > VERSION + $(buildflags) dh_auto_configure -- \ + $(confflags) + +override_dh_auto_install: + dh_auto_install + for file in debian/*.links.in; \ + do \ + sed -e"s,\$${DEB_HOST_MULTIARCH},$(DEB_HOST_MULTIARCH),g" \ + $${file} > $${file%%.in}; \ + done + +# some tests are expected to fail for now, drop this when upstream has +# better cross-build testing in place and expected failures fixed +override_dh_auto_test: + -dh_auto_test + +allpkg = $(shell dh_listpackages -a) + +override_dh_installchangelogs: + dh_installchangelogs -a + dh_installchangelogs -pmesa-common-dev + +override_dh_install: + # purge .la files + find debian/tmp/ -name '*.la' -exec rm '{}' ';' + + # Get rid of some files which aren't installed. Do not + # use -f to ensure we notice disappearing files: + rm debian/tmp/usr/lib/*/libglapi.so + rm debian/tmp/usr/lib/*/libEGL_mesa.so + rm debian/tmp/usr/lib/*/libGLX_mesa.so + ifneq (,$(filter $(DEB_HOST_ARCH), $(NVK_ARCHS))) + rm debian/tmp/usr/bin/mme_fermi_sim_hw_test + rm debian/tmp/usr/bin/mme_tu104_sim_hw_test + endif + # use -f here though + rm -f debian/tmp/usr/lib/*/libgrl.a + + # Copy the hardlinked *_dri.so correctly. + install -m755 -d debian/libgl1-mesa-dri/usr/lib/${DEB_HOST_MULTIARCH}/dri/ + mv debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/dri/*_dri.so \ + debian/libgl1-mesa-dri/usr/lib/${DEB_HOST_MULTIARCH}/dri/ + + ifneq ($(DEB_HOST_ARCH_OS), hurd) + # Copy the hardlinked vdpau drivers correctly. + install -m755 -d debian/mesa-vdpau-drivers/usr/lib/${DEB_HOST_MULTIARCH}/vdpau/ + mv debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/vdpau/libvdpau*.so* \ + debian/mesa-vdpau-drivers/usr/lib/${DEB_HOST_MULTIARCH}/vdpau/ + + ifeq (,$(filter pkg.mesa.nolibva,$(DEB_BUILD_PROFILES))) + # Copy the hardlinked va drivers correctly. + install -m755 -d debian/mesa-va-drivers/usr/lib/${DEB_HOST_MULTIARCH}/dri/ + mv debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/dri/*_drv_video.so \ + debian/mesa-va-drivers/usr/lib/${DEB_HOST_MULTIARCH}/dri/ + endif + endif + + ifneq (,$(filter $(DEB_HOST_ARCH), $(RUSTICL_ARCHS))) + install -m755 -d debian/mesa-opencl-icd/etc/OpenCL/vendors + mv debian/tmp/etc/OpenCL/vendors/rusticl.icd \ + debian/mesa-opencl-icd/etc/OpenCL/vendors + install -m755 -d debian/mesa-opencl-icd/usr/lib/${DEB_HOST_MULTIARCH}/ + mv debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libRusticlOpenCL* \ + debian/mesa-opencl-icd/usr/lib/${DEB_HOST_MULTIARCH}/ + endif + + dh_install -a + + # Install bug control and script: + set -e; for p in $(allpkg); do \ + install -d debian/$$p/usr/share/bug/$$p && \ + install -m 644 debian/local/control debian/$$p/usr/share/bug/$$p && \ + install -m 755 debian/local/script debian/$$p/usr/share/bug/$$p; \ + done + +override_dh_makeshlibs: + dh_makeshlibs -a -- -c4 + +%: + dh $@ --with quilt \ + --builddirectory=build/ \ + --buildsystem=meson + +# For maintainer use only, generate a tarball: +gentarball: + git archive --format=tar upstream-experimental --prefix=$(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)/ \ + | gzip -9 > ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz + +regen_control: + sed -e"s,@LLVM_VERSION@,$(LLVM_VERSION),g" \ + -e"s,@LLVM_ARCHS@,$(LLVM_ARCHS),g" \ + -e"s,@RUSTICL_ARCHS@,$(RUSTICL_ARCHS),g" \ + -e"s,@NVK_ARCHS@,$(NVK_ARCHS),g" \ + -e"s,@VALGRIND_ARCHS@,$(VALGRIND_ARCHS),g" \ + -e"s,@WINE_ARCHS@,$(WINE_ARCHS),g" \ + debian/control.in > debian/control diff --git a/debian/shlibs.local b/debian/shlibs.local new file mode 100644 index 000000000000..dc45f3f32138 --- /dev/null +++ b/debian/shlibs.local @@ -0,0 +1 @@ +libglapi 0 libglapi-mesa (= ${binary:Version}) diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 000000000000..d3827e75a5ca --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 000000000000..fc7f11d860a5 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,7 @@ +Tests: gles-gbm-build-test +Depends: + build-essential, + libgbm-dev, + libgles2-mesa-dev, + pkg-config, +Restrictions: superficial diff --git a/debian/tests/gles-gbm-build-test b/debian/tests/gles-gbm-build-test new file mode 100644 index 000000000000..72ae19623245 --- /dev/null +++ b/debian/tests/gles-gbm-build-test @@ -0,0 +1,9 @@ +#!/usr/bin/make -f + +CFLAGS=$(shell pkg-config --cflags glesv2 --cflags egl --cflags gbm) +LIBS=$(shell pkg-config --libs glesv2 --libs egl --libs gbm) + +debian/tests/gles-gbm: debian/tests/gles-gbm.c + gcc -g -o $@ $(CFLAGS) $< $(LIBS) + @echo "Build test of $< succeeded" + @rm -f $@ diff --git a/debian/tests/gles-gbm.c b/debian/tests/gles-gbm.c new file mode 100644 index 000000000000..73793c3d43e0 --- /dev/null +++ b/debian/tests/gles-gbm.c @@ -0,0 +1,179 @@ +// based on +// https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_platform_gbm.txt + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +struct my_display { + struct gbm_device *gbm; + EGLDisplay egl; +}; + +struct my_config { + struct my_display dpy; + EGLConfig egl; +}; + +struct my_window { + struct my_config config; + struct gbm_surface *gbm; + EGLSurface egl; +}; + +PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplayEXT; +PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC createPlatformWindowSurfaceEXT; + +static void +check_extensions(void) +{ + const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); + + if (!client_extensions) { + abort(); + } + if (!strstr(client_extensions, "EGL_MESA_platform_gbm")) { + abort(); + } + + if (!strstr(client_extensions, "EGL_EXT_platform_base")) { + abort(); + } + + getPlatformDisplayEXT = + (void *) eglGetProcAddress("eglGetPlatformDisplayEXT"); + createPlatformWindowSurfaceEXT = + (void *) eglGetProcAddress("eglCreatePlatformWindowSurfaceEXT"); + +} + +static struct my_display +get_display(void) +{ + struct my_display dpy; + EGLint major, minor; + + int fd = open("/dev/dri/card0", O_RDWR | FD_CLOEXEC); + if (fd < 0) + abort(); + + dpy.gbm = gbm_create_device(fd); + if (!dpy.gbm) + abort(); + + dpy.egl = getPlatformDisplayEXT(EGL_PLATFORM_GBM_MESA, dpy.gbm, NULL); + + if (dpy.egl == EGL_NO_DISPLAY) + abort(); + + if (eglInitialize(dpy.egl, &major, &minor)) + printf ("EGL %d.%d\n", major, minor); + else + abort(); + + return dpy; +} + +static struct my_config +get_config(struct my_display dpy) +{ + struct my_config config = { + .dpy = dpy, + }; + + EGLint egl_config_attribs[] = { + EGL_BUFFER_SIZE, 32, + EGL_DEPTH_SIZE, EGL_DONT_CARE, + EGL_STENCIL_SIZE, EGL_DONT_CARE, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_NONE, + }; + + EGLint num_configs; + if (!eglGetConfigs(dpy.egl, NULL, 0, &num_configs)) + abort(); + + EGLConfig *configs = malloc(num_configs * sizeof(EGLConfig)); + if (!eglChooseConfig(dpy.egl, egl_config_attribs, + configs, num_configs, &num_configs)) { + abort(); + } + if (num_configs == 0) + abort(); + + for (int i = 0; i < num_configs; ++i) { + EGLint gbm_format; + struct gbm_format_name_desc desc; + + if (!eglGetConfigAttrib(dpy.egl, configs[i], + EGL_NATIVE_VISUAL_ID, &gbm_format)) { + abort(); + } + + printf ("found gbm_format: %s\n", gbm_format_get_name (gbm_format, &desc)); + if (gbm_format == GBM_FORMAT_ARGB8888) { + config.egl = configs[i]; + free(configs); + return config; + } + } + + // no egl config matching gbm format + abort(); +} + +static struct my_window +get_window(struct my_config config) +{ + struct my_window window = { + .config = config, + }; + + window.gbm = gbm_surface_create(config.dpy.gbm, + 256, 256, + GBM_FORMAT_XRGB8888, + GBM_BO_USE_RENDERING); + if (!window.gbm) + abort(); + + window.egl = createPlatformWindowSurfaceEXT(config.dpy.egl, + config.egl, + window.gbm, + NULL); + if (window.egl == EGL_NO_SURFACE) + abort(); + + return window; +} + +int +main(void) +{ + check_extensions(); + + struct my_display dpy = get_display(); + struct my_config config = get_config(dpy); + struct my_window window = get_window(config); + EGLContext context; + + context = eglCreateContext(dpy.egl, config.egl, EGL_NO_CONTEXT, NULL); + eglMakeCurrent(dpy.egl, window.egl, window.egl, context); + + /* just so we have some gles symbols too */ + glClearColor(1.0, 1.0, 1.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT); + glFlush(); + + return EXIT_SUCCESS; +} diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 000000000000..c0513ce5f195 --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,906 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBFIuDKkBEADOqWYsVD1KSVn/+TQUOVKTNOmMrHut0nWhW+/ledLTglA0y/HL +b/AYCrnHv/Rvp+dl4Iyjuo7OXFkBO/LiqxvQ+xIhp2Cr7+UMlBpNUEHWa07QgU38 +JRf9P/igkrRQG30bSRxVqq8gfJVRHwb/ZEawnO53NBnhi83NSDsfFW4t3jMOeD07 +4hGDiDQVi7LySf2b3Do4O5sJkkbKGFOJRbK2d7VWkdRDTuVzxu4TKcbJQ859ikOO +NFTMDeSLSft+TN7ev7G9iGHt/J466SdBVclNPz9uzjqxKWMtY5TAp1kz0n2PQTyJ +atmz+DJ6AMHxsk0qJOKJ4FG1EPlrHI39TtqQRouef0NHZPd+0kwy4TZ29hZkIrkG +3bOwHxHWnff1kMz570zcMeLakZ9ExmpJYQfaJeK/hwkqHRU/dNAQiSRkpTWI4EFH +HQ9ZYE4E0u+BqwbNasSgeRlPoC3NuyxHwOkYFfyZPNsUZlgJ8jB9+u4kGUaFnT14 +AEU85ymvx5wDAVUXXHn9sNGySl0HKr6+RS3Q9GJ/X9RNTkDxgZ+qPXV4Dc/rLXzW +TAczrUkeqKaUx7F0X57nG6480v1a7o126+JctQthX+/Oh2NobL3hNj6pzzOZBoeY +Pg14W8j7wbBnjtKa4QxZONyFfKYcvtVCCFSX216zLGbsguJVSU6dNijy2QARAQAB +tB5DYXJsIFdvcnRoIDxjd29ydGhAY3dvcnRoLm9yZz6JAjoEEwEIACQCGwMFCwkI +BwMFFQoJCAsFFgIDAQACHgECF4AFAlIuEiICGQEACgkQYAIzup5U3GGBTQ/+MRjB +F01vQ+NQLm+fQ4WHkf9Qt2XAyZakO1/7tRxGkTUiWtCE0SXwxikC+ZmrjjjP88K9 +4hUApDmNdcSyCRhuIZaJDr0n+KCO64mvoe+VYioX34FKaXsOkWSZ2svyFP9vPADu +63cwJfxnkLraf99IMBQDzmDCxwHIq8bMO0n4sKcv4QOcGQh2/DoeOr10pHLiP1du +oBQjHjWY9isYjKJIskSLv9G1L5jKDMRZskSueh97RLHzcwoGMy0lczylsi+88gig +Y89wqb0/w7zml/MYP2aKiHqH9X3hi92x7KUCeQ7eRCDKqJG7mxedEz7z4TGMx00p +aTKl4sIOAAHwdJl909B9R7deQUJB/giBgNmC6NnJa8BsSTKhpRh8nNc95Vkqsowy +1os4auxr9QBwlGDEkBD7nLeNNDAZ+EHL882UGKa5PXwVQ6HbuWLhPPGbR9CeLFTm +xOifAgPc5XGHI/gZ7SrEbltUwpU/RsxAq5CSb7kC3fCzFaK+XlxhRm5iX01OkEuV +CZfi41Ss5k2g8aD5EZHu2ixWeeAgJT3aEycZs9+RWeMD3H0qFGc2TehPM0mQ7Uj4 +JvaZcIwk1bhuS81vAdrQV6e8dbU9/z0QW8AAtSeegoqxkJJX8N8D3RdpisIMpYJp +zhUjthMOI87f3q7lpvymthqeyaAWgS4pt6cXRXG0HkNhcmwgV29ydGggPGN3b3J0 +aEBkZWJpYW4ub3JnPokCNwQTAQgAIQUCUi4NsAIbAwULCQgHAwUVCgkICwUWAgMB +AAIeAQIXgAAKCRBgAjO6nlTcYfCHD/wPurAxW8Lp3vBgOpW93eAiKVs8DSVUmJhv +Z8IjfMeNvr6ak0VRnj38cxrpNm4/v/vPnoYUUiD+LCMRizM71vkI6hj2IrUxHB+4 +S3M4HBGp5UrltOl/2XwbW4KAXgVQNWM9OMPfMNY+clCVC0VO47hN4RxVZkYAeUvN +BJXoVWOmsrQ2YZ3W7MuY1eo1G6tNUHcoBLrRsiF6d+bzvn3KEJihr/7erd3LOmZv +YUDgQBGfzPmxd0eCMAqBUN6PeDIjaAus2sznqE4Wwjb82xyOEfjbzp+n2OK/TiJp +9tXWwnDAw8Z2qkeP8LriC6kzzmYc7ODN4Llz1o+Hgj/bepEFnc6MzetijGlTWvSZ +svwojPADODDTw4a3vBEjS5t1SrC+wvCQ+5KlzlKjK3WNhpgm+jAEUKhV22DpSRmA +UQZPkNWHVJegkOJlqG5r4wenp9D1my024blR8tl+z7iAeUC0O/1X6eHQRCU5LGQI +muf9TX2mhkFZheFXS+vl/Mek6O/8M8J1ueudv1YvyS+uYSYM0gh4LhtDz0VFJKUf +bhFevljJbJQjmLFMLE5L/z4rYOvnbqVt7H1qqierXirbpyAiuh0SfLU1cBG5/HC4 +hgRXqWC4391r5IM9k07SghXCruvNaTIbXfu5+Tf358DJDZfhnes6oXGfJ5IE5XI8 +2jNzY3YPQ7QfQ2FybCBXb3J0aCA8Y2FybEB0aGV3b3J0aHMub3JnPokCNwQTAQgA +IQUCUi4N0wIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBgAjO6nlTcYWjW +EADHoYul0hpkpywOMQZFkJtTCvNJ3trPFUglvzid7LX2cK6uzNHnoMpvHAnH3pOF +59kNVX5vxRDYtkR7nrw04v7aq20y48Wm3aSD7966jhXVUoeO1bX4CgjIpoXoKBC0 +QyfoEknTdg2DDxxfePQKVt7HKygXyxSx513NUcmRJhoE205pF/9lPeAOCmOdC/Wd +mAbrZrAm2jmgjBB+AyAt+PfcTRWoTmmzNAyP7i7jqB3ezaWATVBQlOM3pcDmqdLZ +HFVCm5HS0sc/sAn11ilzfIdYNwY4ibMNhBel0OrDpxdbCGggVbzJrQFdESI7mP0n +1PXE7hUMfMPoHPBX7xYJHSoh5eaN7cxyljjMmw0l6dflj4dnarflhndpas52nSs3 +YmvDQUWLaJTJgCnRVLHxnBNwx4o+yLK+RsApKARord45WoAgPdC6CbIJbVeWaJja +wDyBlTrZ5qP9L2QbDUDygHP7RBonoBK/zh+3+mmLwJb5YIGOrvsjvqDhoiRX5zPW +Cw6Hg/bGyIOaC7tM+BiHT1WJ9nubWzYH6GtsA/pT1md0OX4KCty7STSOwv9+1KOL +lGYMocBFm/sV9TOQxH4f85vZj9oBnZFuZ+ZxkdwGgjCMCgTcfigV8PnR0qWFQzrl +I3sJslAPzjes6ssEBKG/xFy3bQat4aL+MK+hHxmdwiDUW7QjQ2FybCBXb3J0aCA8 +Y2FybC5kLndvcnRoQGludGVsLmNvbT6JAjcEEwEIACEFAlIuDd8CGwMFCwkIBwMF +FQoJCAsFFgIDAQACHgECF4AACgkQYAIzup5U3GFZUQ//R1OtLBkQhaXNgGKJIf6r +tJ6kJvDOhZ4M3zxa8KYfG8kZBtPQcqeuSCHowwRW1VyZE1g1iweQAb9TELhT2GxA +bY5pHBtST7MZec7Iz7PFXuz0PFdouTJk8f92sX3+mt3kHwA7HoTsrKSr65w8bNay +Rvym6q4fbeppnIPmKO+CnawT34rP3E3zB745Dq6vzjCBlu7jIYuSIyNdVuo3ttgs +ubIK7qzZk9wdjTslm2+rIqhyTX/7TQXus2NBh2fEvL9hwaAg4BYnEZG6qCJjETqp +qq5+6RLNNeICuqFLgzABHPp0ChtDMlOPh27OtbfLaU6wZmbHwbxooHCBfyzvGj6y +3T6ox9JUs6JhJSUfWwG6PtvQKqxusHF3qYucR203Q9FXMiX2IuXnG6bbZspV7fCf +YcL38by3REYHN37DZr5PLueVLWZQhL0s0kzZ8JW1DSsmhtTQ9xdGDKnLxKYBFyZM +xtqiCwC+aJAXvNySp11WQ+hpDPv311Zvdm+PS2V8aXk8UbHFSRhCWHOlwVJ3AxYq +ADFA8SNXiBhoAeq8dwJrjKEK6VSyGk/emcUToKOiaXEsJM+3sGuPLo/fruFTEzTL +pVvsYqwQVguZjIX15PGhZTXC9omZa3nWh4OrByFrAzxBpX3w0ojw5atAnkI5gKM4 +bT/nElv8T48zcgo1S9dwrQvR/wAAW4T/AABbfwEQAAEBAAAAAAAAAAAAAAAA/9j/ +4AAQSkZJRgABAQEASABIAAD/4QLURXhpZgAATU0AKgAAAAgACwEPAAIAAAAGAAAA +kgEQAAIAAAAOAAAAmAESAAMAAAABAAEAAAEaAAUAAAABAAAApgEbAAUAAAABAAAA +rgEoAAMAAAABAAIAAAExAAIAAAALAAAAtgEyAAIAAAAUAAAAwgE7AAIAAAANAAAA +1oKYAAIAAAAVAAAA5IdpAAQAAAABAAAA+gAAAABDYW5vbgBDYW5vbiBFT1MgNjBE +AAAAAEgAAAABAAAASAAAAAFHSU1QIDIuOC42AAAyMDEzOjA5OjA5IDExOjE4OjU1 +AFJ5YW4gV2FybmljawAAT3BhY2l0eSBJbmNvcnBvcmF0ZWQAAAAdgpoABQAAAAEA +AAJcgp0ABQAAAAEAAAJkiCIAAwAAAAEAAQAAiCcAAwAAAAEAZAAAkAAABwAAAAQw +MjMwkAMAAgAAABQAAAJskAQAAgAAABQAAAKAkQEABwAAAAQBAgMAkgEACgAAAAEA +AAKUkgIABQAAAAEAAAKckgQACgAAAAEAAAKkkgUABQAAAAEAAAKskgcAAwAAAAEA +BQAAkgkAAwAAAAEAEAAAkgoABQAAAAEAAAK0kpAAAgAAAAMyMwAAkpEAAgAAAAMy +MwAAkpIAAgAAAAMyMwAAoAAABwAAAAQwMTAwoAEAAwAAAAEAAQAAoAIABAAAAAEA +AADwoAMABAAAAAEAAAEgog4ABQAAAAEAAAK8og8ABQAAAAEAAALEohAAAwAAAAEA +AgAApAEAAwAAAAEAAAAApAIAAwAAAAEAAQAApAMAAwAAAAEAAAAApAYAAwAAAAEA +AAAAAAAAAAAAAAEAAACgAAAABQAAAAEyMDEyOjExOjI4IDAyOjU1OjA0ADIwMTI6 +MTE6MjggMDI6NTU6MDQAAAAAOwAAAAgAAAAlAAAACAAAAAAAAAABAAANIwAABKUA +AAAfAAAAAQABfGMAAAAiAAUNRwAAAHL/4QoVaHR0cDovL25zLmFkb2JlLmNvbS94 +YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJl +U3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEv +Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy +LzIyLXJkZi1zeW50YXgtbnMjJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmV4 +aWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvJz4KICA8ZXhpZjpNYWtl +PkNhbm9uPC9leGlmOk1ha2U+CiAgPGV4aWY6TW9kZWw+Q2Fub24gRU9TIDYwRDwv +ZXhpZjpNb2RlbD4KICA8ZXhpZjpPcmllbnRhdGlvbj5Ub3AtbGVmdDwvZXhpZjpP +cmllbnRhdGlvbj4KICA8ZXhpZjpYUmVzb2x1dGlvbj43MjwvZXhpZjpYUmVzb2x1 +dGlvbj4KICA8ZXhpZjpZUmVzb2x1dGlvbj43MjwvZXhpZjpZUmVzb2x1dGlvbj4K +ICA8ZXhpZjpSZXNvbHV0aW9uVW5pdD5JbmNoPC9leGlmOlJlc29sdXRpb25Vbml0 +PgogIDxleGlmOlNvZnR3YXJlPkFwZXJ0dXJlIDMuNC4zPC9leGlmOlNvZnR3YXJl +PgogIDxleGlmOkRhdGVUaW1lPjIwMTI6MTE6MjggMDI6NTU6MDQ8L2V4aWY6RGF0 +ZVRpbWU+CiAgPGV4aWY6QXJ0aXN0PlJ5YW4gV2FybmljazwvZXhpZjpBcnRpc3Q+ +CiAgPGV4aWY6Q29weXJpZ2h0Pk9wYWNpdHkgSW5jb3Jwb3JhdGVkIChQaG90b2dy +YXBoZXIpIC0gW05vbmVdIChFZGl0b3IpPC9leGlmOkNvcHlyaWdodD4KICA8ZXhp +ZjpFeHBvc3VyZVRpbWU+MS8xNjAgc2VjLjwvZXhpZjpFeHBvc3VyZVRpbWU+CiAg +PGV4aWY6Rk51bWJlcj5mLzUuMDwvZXhpZjpGTnVtYmVyPgogIDxleGlmOkV4cG9z +dXJlUHJvZ3JhbT5NYW51YWw8L2V4aWY6RXhwb3N1cmVQcm9ncmFtPgogIDxleGlm +OklTT1NwZWVkUmF0aW5ncz4KICAgPHJkZjpTZXE+CiAgICA8cmRmOmxpPjEwMDwv +cmRmOmxpPgogICA8L3JkZjpTZXE+CiAgPC9leGlmOklTT1NwZWVkUmF0aW5ncz4K +ICA8ZXhpZjpFeGlmVmVyc2lvbj5FeGlmIFZlcnNpb24gMi4zPC9leGlmOkV4aWZW +ZXJzaW9uPgogIDxleGlmOkRhdGVUaW1lT3JpZ2luYWw+MjAxMjoxMToyOCAwMjo1 +NTowNDwvZXhpZjpEYXRlVGltZU9yaWdpbmFsPgogIDxleGlmOkRhdGVUaW1lRGln +aXRpemVkPjIwMTI6MTE6MjggMDI6NTU6MDQ8L2V4aWY6RGF0ZVRpbWVEaWdpdGl6 +ZWQ+CiAgPGV4aWY6Q29tcG9uZW50c0NvbmZpZ3VyYXRpb24+CiAgIDxyZGY6U2Vx +PgogICAgPHJkZjpsaT5ZIENiIENyIC08L3JkZjpsaT4KICAgPC9yZGY6U2VxPgog +IDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICA8ZXhpZjpTaHV0dGVy +U3BlZWRWYWx1ZT43LjM4IEVWICgxLzE2NSBzZWMuKTwvZXhpZjpTaHV0dGVyU3Bl +ZWRWYWx1ZT4KICA8ZXhpZjpBcGVydHVyZVZhbHVlPjQuNjIgRVYgKGYvNS4wKTwv +ZXhpZjpBcGVydHVyZVZhbHVlPgogIDxleGlmOkV4cG9zdXJlQmlhc1ZhbHVlPjAu +MDAgRVY8L2V4aWY6RXhwb3N1cmVCaWFzVmFsdWU+CiAgPGV4aWY6TWF4QXBlcnR1 +cmVWYWx1ZT4yLjgzIEVWIChmLzIuNyk8L2V4aWY6TWF4QXBlcnR1cmVWYWx1ZT4K +ICA8ZXhpZjpNZXRlcmluZ01vZGU+UGF0dGVybjwvZXhpZjpNZXRlcmluZ01vZGU+ +CiAgPGV4aWY6Rmxhc2ggcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogIDwvZXhp +ZjpGbGFzaD4KICA8ZXhpZjpGb2NhbExlbmd0aD4zMS4wIG1tPC9leGlmOkZvY2Fs +TGVuZ3RoPgogIDxleGlmOlN1YnNlY1RpbWU+MjM8L2V4aWY6U3Vic2VjVGltZT4K +ICA8ZXhpZjpTdWJTZWNUaW1lT3JpZ2luYWw+MjM8L2V4aWY6U3ViU2VjVGltZU9y +aWdpbmFsPgogIDxleGlmOlN1YlNlY1RpbWVEaWdpdGl6ZWQ+MjM8L2V4aWY6U3Vi +U2VjVGltZURpZ2l0aXplZD4KICA8ZXhpZjpGbGFzaFBpeFZlcnNpb24+Rmxhc2hQ +aXggVmVyc2lvbiAxLjA8L2V4aWY6Rmxhc2hQaXhWZXJzaW9uPgogIDxleGlmOkNv +bG9yU3BhY2U+c1JHQjwvZXhpZjpDb2xvclNwYWNlPgogIDxleGlmOlBpeGVsWERp +bWVuc2lvbj44MDA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlmOlBpeGVs +WURpbWVuc2lvbj41MzM8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogIDxleGlmOkZv +Y2FsUGxhbmVYUmVzb2x1dGlvbj4yODY0LjA5PC9leGlmOkZvY2FsUGxhbmVYUmVz +b2x1dGlvbj4KICA8ZXhpZjpGb2NhbFBsYW5lWVJlc29sdXRpb24+MjkwNC4yMDwv +ZXhpZjpGb2NhbFBsYW5lWVJlc29sdXRpb24+CiAgPGV4aWY6Rm9jYWxQbGFuZVJl +c29sdXRpb25Vbml0PkluY2g8L2V4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0 +PgogIDxleGlmOkN1c3RvbVJlbmRlcmVkPk5vcm1hbCBwcm9jZXNzPC9leGlmOkN1 +c3RvbVJlbmRlcmVkPgogIDxleGlmOkV4cG9zdXJlTW9kZT5NYW51YWwgZXhwb3N1 +cmU8L2V4aWY6RXhwb3N1cmVNb2RlPgogIDxleGlmOldoaXRlQmFsYW5jZT5BdXRv +IHdoaXRlIGJhbGFuY2U8L2V4aWY6V2hpdGVCYWxhbmNlPgogIDxleGlmOlNjZW5l +Q2FwdHVyZVR5cGU+U3RhbmRhcmQ8L2V4aWY6U2NlbmVDYXB0dXJlVHlwZT4KIDwv +cmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFj +a2V0IGVuZD0ncic/Pgr/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy +UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAA +AAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0 +AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFla +AAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3 +AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJD +AAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdo +dCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS +c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +WFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA +AABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+E +AAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAA +FklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERl +ZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5 +NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 +aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5n +IENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAA +AEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAAC +c2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3 +ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCu +ALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy +ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHh +AekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB +AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPT +A+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUc +BSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAad +Bq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRgha +CG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpU +CmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyO +DKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8J +DyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJ +EegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO +FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgb +GEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2Mbihuy +G9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+U +H78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPC +I/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/ +KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M +LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIq +MmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDec +N9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h +PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9 +Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnw +SjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7 +UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfg +WC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19h +X7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9 +Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94 +b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gR +eG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK +gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opk +isqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQg +lIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5A +nq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjE +qTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu +tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/ +v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3 +yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY +11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj +4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY +8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26 +/kv+3P9t////2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsN +DhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsN +FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU +FBT/wgARCAEgAPADAREAAhEBAxEB/8QAHAAAAAcBAQAAAAAAAAAAAAAAAAECAwQF +BgcI/8QAGgEAAwEBAQEAAAAAAAAAAAAAAAECAwQFBv/aAAwDAQACEAMQAAAB8ykA +agUBgAMABjAAQAAAAGAANhAAABAYACIDAAAA45JjUCgAGAAAZSwIkJvJoBQJBAGw +mADEYiKSIxADAAQyGwSoFAAAGBprBSp5CE4w1IMHQbEkGm5IhUhhAAIEtKAwAEAG +ySYKAAYADSkLVWdRgjMQyQixG+mCa5gCC0BIabCY08w2GAAAAIGSTAxqGQAHpVpl +tEZEYoJ4TpqFDr7io1TqSRR6kMCFoU3bATQAAAAAGSTGYADBad1nqrOnxpBBVtJn +Wqe4jXKwAktPK3WkSEKBc2zDaIAAAgANEmMxgkx6PLWVno6ycEIJU60tZZ+ps40n +zUWpaIlsrWBplNoir1i0YbSQAAAABkkyjAKXlp0THWnKnChJzSm51qoesm9rN246 +4KJzEorGRnNNU5m+el15rCm45AEAAwAMkmMwOTTLW/y0CKVa3uXVoVrqMdtrL0RE +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 +=LxfO +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.11 (GNU/Linux) + +mQINBFQDrA8BEACyGXUc6vSmNkwZdTTzX1vHRgIDWoppot56E5oOO+gM6ukyMDY7 +60FxKvmh704I8NqTfg3Rcs18fSOXeRj1gDG84MsU7QM3g6IQyxCA+IV7d2r/DPZE +z7HxEIKFxGJw24swsQJy/iiZf/b8flqiJbx3Ye1LF7T5iw/gKDsN6eqzAtLKqw9I +/4TBVE766nwmKNQZiw2jAFCs3lwfmNIm7ZaQNBpHTRabMTLMJiFFynLsa1eVsf9D +R3eVXW4c2oHKZbxDvSWR2yz6XcQ9ldii89sUNeclnjSFNOt761P4zBNwcEX2GuQs +JO/haw5FyrMJJexAbdUTtshZ7XvhDv/UCHtyqQBUw/vwYe8Rx79Hq/fOOUdMjWOW +cDCzyYTmGdbEJYRHrENcsOhoti3IkOjgzw0UDyCHyjapFV1ZJT/Kz7rkMmsdNtoi +1BVTLIdOvQmeXQtN2caZSN20wZWHdZnrz1/JOfOxpEsf2R78zavIfobReQdFoYMC +jv4b49WB/Gytd5vneqk9yi9DEhCYw5uGxQgjIKC4AZPVtD//GY+iYiPe5dPwrhU1 +FyD3b9SgYxFE/uZlgbzBIV4akK11vC5Q+Co5PYzhnPPgd7cYLjr/ceMfGPkeWLCY +OxZbXg92BZKKJnFHYx7FJ04WKS8SjzIn/qEzvy7SmPGxSCX6zdwn0fKZYQARAQAB +tCdFbWlsIFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT6JAjkEEwEC +ACMFAlQDrA8CGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRDtrjewLOtJ +DV/AEACd/RKvSzL0L4/9HYvFskjNR40NPFyQHyMaPg9eeblhfbnH7mWYXJ2MPGTR +bgvQCr0zZ3R7u8E8Rxulwifbm20x0WhYOKkDuSROjroRqvDhxfuLtXtBKqfVGw6T +0rMEOOWdqGhql4yuVpqGbgHa5ZfFvQi2EtT40QDdD052adzWeT96aFQB6Gf3CRMf +a4y7hawbUV10XL3BUljUcyh+SJv9lPclW09WNE+tuCmdIqoP927BSjXwh2GR6dM0 +z0aDf3wOxRc9S8q34jS+xN8hsXmYFAqkn0YkVIQ0M0PaQ89ltcyonbG6rZ+1rNgx +tiLEpfOZpzr7LowVsw9R6ky/pvhBHfVIM4aT17hbi2XfnMihmt/T1SZqb36+aYFt +j8Bc/o9I5crPXwOP4in3heY2ZmDWeGkPSRNix0VLQHL0HzOxjMAEm+y5ROLDo7Z/ +sGOebYxMYPIK5mJzrKhk737FEI57cvUSRXzbjmV3CIOIJbaNULWFXkCHRhdyk8mh +sVzKkl7IDiWPBj1RC5r0EXmrjUzK8QfzrTWiOa6z9WIkZ4sSs0bz14Q4pZR2qi8L +KLVjCNf/FusqCTgbZU06x1S/75XJwcsFENWkWYPEaxxzQiCs1rVzG8SnrOjcyc5F +T0rEAQLWU7eq9U6nd4BXMkokiuzlOKWqsDyXibR3wkhI80kAJw== +=XSpT +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +yc3LzJA+b6/cPamySsetyO6jSkApaLbAOl99 +=FK/k +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +7VQeKOrR3qSFObFF0Zde+tGDvy7p +=tfFV +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEWnyK+hYJKwYBBAHaRw8BAQdAciqI9uB5/t6i0/M+WXq4meqx9RtBN3y0bo09 +IckAQSy0IUR5bGFuIEJha2VyIDxkeWxhbkBwbndiYWtlcnMuY29tPoiZBBMWCgBB +AhsDBQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEEccS3ViC8dXCLS9sl +TJX6qz6wc+wFAlp8kfoCGQEACgkQTJX6qz6wc+xHwwD/Wum1XIULb5mG0nLL3QSJ +MnYr2aOa9Wa5gncUx/5Z5noBAJpuKs0LQFHl7qPdGF3eXEfCqqz8AS8O1CVGVJ0u +JLILtCVEeWxhbiBCYWtlciA8YmFrZXIuZHlsYW4uY0BnbWFpbC5jb20+iJYEExYK +AD4WIQRxxLdWILx1cItL2yVMlfqrPrBz7AUCWnyRvwIbAwUJA8JnAAULCQgHAwUV +CgkICwUWAgMBAAIeAQIXgAAKCRBMlfqrPrBz7E4yAQDeLnajXKGm0cOKTTKZciCr +wCu+adRzN2OICwTD74EkhwD/fxFpWbRF+j0x8I1IhQKCDSzg9XWRBlr/CXMYHooW +MgG0JUR5bGFuIEJha2VyIDxkeWxhbmJha2VyQGZhc3RtYWlsLmNvbT6IlgQTFgoA +PhYhBHHEt1YgvHVwi0vbJUyV+qs+sHPsBQJafJE3AhsDBQkDwmcABQsJCAcDBRUK +CQgLBRYCAwEAAh4BAheAAAoJEEyV+qs+sHPsRI0A/Rse2e31DK6ZExY2hMWz9hsZ +hNM1j/BwlwevpkpyttLVAP9ESri0JrTZ0weqTIFcTPTXzaGYAiOp9VNCjWxDACKY +CbQtRHlsYW4gQmFrZXIgKEludGVsKSA8ZHlsYW4uYy5iYWtlckBpbnRlbC5jb20+ +iJYEExYKAD4WIQRxxLdWILx1cItL2yVMlfqrPrBz7AUCWnyRTQIbAwUJA8JnAAUL +CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBMlfqrPrBz7Lp3AQCl4i0jh6W5XpBT +2LyBLLNmzESBuu2kB+GrAs3CHqSO8AD/eE8POE0+01ngnDtAfl+VqrJ4l7Wf7a2s +h3FR0PgZNw64OARafIr6EgorBgEEAZdVAQUBAQdA3VHAaYhkaOfoGJSd3xV+AQBG +SUTsyFxlJ0e0giyLjigDAQgHiH4EGBYIACYWIQRxxLdWILx1cItL2yVMlfqrPrBz +7AUCWnyK+gIbDAUJA8JnAAAKCRBMlfqrPrBz7JLLAQCGnVUyjuvWZwLLlH3sRqa7 +QRHfqfgBSVZqcds2FeHNTQEAwapDlvM3VbK6QLblu2wnSkQWiOiZ86/0uC9FMUFP +tgA= +=37PC +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBF5i1J4BCACsKVBDxUpz0m03D6ojiR4zZTuLJuI8qrc5HivZiJOKBWvKUm8/ +SUSCCbJ5ka7zwfEQMepm0rdQfFj6BDqAqEAmG/WU9TTbNx3TBDtT3CBBXSDaiWjO +BFlglWKXJeUfHYpfIB1sC6aIIdSnPlU57Fs7jA9FtHbJM3SSwab/492udHZY/bKV +s53Z7KcZDKPMtuZCnGbOZ1+lu8EMHuw9TfqQZODUOvDPYjpzqZAjsTJwdNtOeyWv +dafED7PTpuod6eQnvgUKFlj6aqoZhZa9/hWdGDhexLzRGM4pwZcUMEb+1pd1TBko +wqXJbW3XLs5B/cGiEbqHyDVoaI6J/JleDY1RABEBAAG0IkVyaWMgRW5nZXN0cm9t +IDxlcmljQGVuZ2VzdHJvbS5jaD6JAU4EEwEIADgWIQRXVR3hW5aPY0HCSPaNjjGv +wyQopgUCXmLUngIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCNjjGvwyQo +puKwCACTeD0Eh+M8IIEAuGVtPgy3jCDIoOnNg+QI6VAh9qNB4Yx0uPzvOwmvAODY +fUdPbBxn9CIU1X3buJmI1G75c2ZT+ZXJbkute6oif+f2E6vLe+Ox0GeGIBNQK4iZ ++pV0JPn3seqhDJAekRBWXNJszuVNxSDFsVi+qEoTPJZze7yOcc1QMcRsnJ+S7YFg +jf/5aRrqdnLxVbph53Vrawas3rQk97Ln+vNd/Ca1HMv8vXMPtEFLk5JQI+gmdVv3 +xcpz2ss3mMU5+YnY69T1EBemZIMcE17wPo7ROvT8x1fG2fnPwHqJieQFCMGKLW29 +5peUY2OiHdLgaepbqWrB2Xxy+BY+ +=rSFv +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +UnRVR1Ln06pOfJxmNA== +=HZlC +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch new file mode 100644 index 000000000000..6353d4e1ccca --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +opts=uversionmangle=s/^/23.3.0~pre/ \ + https://gitlab.freedesktop.org/asahi/mesa/tags?sort=updated_desc archive/asahi-\d[\d.]+/mesa-asahi-([\d.]+)@ARCHIVE_EXT@ From 7b914443fd2d516f26d2e07bd572762acfe9e22e Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Fri, 13 Dec 2024 15:13:01 +0100 Subject: [PATCH 2/6] Changelog for 20241211 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 169cc671eee5..81aa80fe6f9b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +mesa (25.0.0~pre20241112-1asahi0.24.04) noble; urgency=medium + + * Bump to asahi-20241112 + + -- Tobias Heider Fri, 13 Dec 2024 15:12:08 +0100 + mesa (24.3.0~pre20241111-1asahi2.24.04) noble; urgency=medium * Build for noble From 231cf399f5522c5b057e5112a7db91bfd395639c Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Fri, 13 Dec 2024 17:55:42 +0100 Subject: [PATCH 3/6] source format -> quilt --- debian/source/format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/source/format b/debian/source/format index d3827e75a5ca..163aaf8d82b6 100644 --- a/debian/source/format +++ b/debian/source/format @@ -1 +1 @@ -1.0 +3.0 (quilt) From b7b2e7663db04a77526ada1b9a513dd931ddfa13 Mon Sep 17 00:00:00 2001 From: Tobias Heider Date: Fri, 13 Dec 2024 17:55:58 +0100 Subject: [PATCH 4/6] Don't update VERSION --- debian/rules | 2 -- 1 file changed, 2 deletions(-) diff --git a/debian/rules b/debian/rules index 4622113adfa2..3b4130e52d3b 100755 --- a/debian/rules +++ b/debian/rules @@ -204,7 +204,6 @@ rewrite_wrap_files: touch subprojects/rewrite override_dh_clean: regen_control - dpkg-parsechangelog | awk '/^Version:/ {print $$2}' | sed 's/-.*//;s/~/-/' > VERSION rm -rf .pc rm -rf build rm -rf configure bin/config.guess bin/config.sub config.h.in @@ -222,7 +221,6 @@ override_dh_clean: regen_control dh_clean override_dh_auto_configure: rewrite_wrap_files - dpkg-parsechangelog | awk '/^Version:/ {print $$2}' > VERSION $(buildflags) dh_auto_configure -- \ $(confflags) From f04bde92ed0896ba1eb560e8b8047cb0cd951efc Mon Sep 17 00:00:00 2001 From: kaazoo Date: Mon, 17 Mar 2025 21:55:01 +0100 Subject: [PATCH 5/6] remove libglapi, as it seems to be gone --- debian/libglapi-mesa.install | 1 - debian/libglapi-mesa.lintian-overrides | 1 - debian/rules | 1 - 3 files changed, 3 deletions(-) delete mode 100644 debian/libglapi-mesa.install delete mode 100644 debian/libglapi-mesa.lintian-overrides diff --git a/debian/libglapi-mesa.install b/debian/libglapi-mesa.install deleted file mode 100644 index e93d0c3bc4d4..000000000000 --- a/debian/libglapi-mesa.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/libglapi.so.0* diff --git a/debian/libglapi-mesa.lintian-overrides b/debian/libglapi-mesa.lintian-overrides deleted file mode 100644 index 3aa3d99bed90..000000000000 --- a/debian/libglapi-mesa.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -package-name-doesnt-match-sonames libglapi0 diff --git a/debian/rules b/debian/rules index 3b4130e52d3b..da1e13a5be31 100755 --- a/debian/rules +++ b/debian/rules @@ -249,7 +249,6 @@ override_dh_install: # Get rid of some files which aren't installed. Do not # use -f to ensure we notice disappearing files: - rm debian/tmp/usr/lib/*/libglapi.so rm debian/tmp/usr/lib/*/libEGL_mesa.so rm debian/tmp/usr/lib/*/libGLX_mesa.so ifneq (,$(filter $(DEB_HOST_ARCH), $(NVK_ARCHS))) From dda100c8165f0ec3880b66642dbc3a05d6756556 Mon Sep 17 00:00:00 2001 From: kaazoo Date: Mon, 17 Mar 2025 21:55:46 +0100 Subject: [PATCH 6/6] update changelog for 25.0.0~pre20250221 on noble and oracular --- debian/changelog | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/debian/changelog b/debian/changelog index 81aa80fe6f9b..54eb81082d5f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +mesa (25.0.0~pre20250221-1asahi2.24.10) oracular; urgency=medium + + * Build for oracular + * Bump to asahi-20250221 + + -- Andreas Schröder Mon, 17 Mar 2025 06:37:00 +0100 + +mesa (25.0.0~pre20250221-1asahi2.24.04) noble; urgency=medium + + * Build for noble + * Bump to asahi-20250221 + + -- Andreas Schröder Sat, 16 Mar 2025 21:08:00 +0100 + mesa (25.0.0~pre20241112-1asahi0.24.04) noble; urgency=medium * Bump to asahi-20241112