pmaports/temp/libdrm-grate/APKBUILD
Minecrell b334362d72
temp/libdrm-grate: build all drivers, not just tegra (!897)
At the moment, installing the rootfs for ouya-ouya fails with:

ERROR: unsatisfiable constraints:
  libdrm-grate-2.4.100_git20191221-r0:
    conflicts: libdrm-2.4.100-r0[libdrm]
               libdrm-2.4.100-r0[so:libdrm.so.2=2.4.0]
               libdrm-2.4.100-r0[so:libdrm_tegra.so.0=0.0.0]
               libdrm-2.4.100-r0[so:libkms.so.1=1.0.0]
    satisfies: device-ouya-ouya-1-r12[libdrm-grate]
               libvdpau-tegra-0_git20190315-r0[libdrm-grate]
               .pmbootstrap-20200110.144341[libdrm-grate]
               .pmbootstrap-20200110.144341[libdrm]
               mesa-gl-19.3.2-r0[so:libdrm.so.2]
               directfb-1.7.7-r1[so:libdrm.so.2]
               directfb-1.7.7-r1[so:libkms.so.1]
               mesa-dri-swrast-19.3.2-r0[so:libdrm.so.2]
               mesa-19.3.2-r0[so:libdrm.so.2]
  libdrm-2.4.100-r0:
    conflicts: libdrm-grate-2.4.100_git20191221-r0
               libdrm-grate-2.4.100_git20191221-r0[so:libdrm.so.2=2.4.0]
               libdrm-grate-2.4.100_git20191221-r0[so:libdrm_tegra.so.0=0.0.0]
               libdrm-grate-2.4.100_git20191221-r0[so:libkms.so.1=1.0.0]
    satisfies: .pmbootstrap-20200110.144341[libdrm]
               mesa-gl-19.3.2-r0[so:libdrm.so.2]
               directfb-1.7.7-r1[so:libdrm.so.2]
               directfb-1.7.7-r1[so:libkms.so.1]
               mesa-dri-swrast-19.3.2-r0[so:libdrm.so.2]
               mesa-dri-swrast-19.3.2-r0[so:libdrm_amdgpu.so.1]
               mesa-dri-swrast-19.3.2-r0[so:libdrm_nouveau.so.2]
               mesa-dri-swrast-19.3.2-r0[so:libdrm_radeon.so.1]
               mesa-19.3.2-r0[so:libdrm.so.2]
               mesa-19.3.2-r0[so:libdrm_amdgpu.so.1]
               mesa-19.3.2-r0[so:libdrm_nouveau.so.2]
               mesa-19.3.2-r0[so:libdrm_radeon.so.1]

Looking closer at the error we see that:
  1. We want to explicitly install libdrm-grate for device-ouya-ouya.
  2. libdrm-grate provides
     - so:libdrm.so.2=2.4.0
     - so:libdrm_tegra.so.0=0.0.0
     - so:libkms.so.1=1.0.0
  3. But the mesa package also builds AMD and Nouveau drivers and
     therefore requires:
     - so:libdrm_amdgpu.so.1
     - so:libdrm_nouveau.so.2
     - so:libdrm_radeon.so.1

These libraries are not provided by libdrm-grate, therefore it is impossible
to install mesa and libdrm-grate at the same time.

A simple solution to fix this problem is to let libdrm-grate provide
these additional libraries as well - the package size overhead is negligible
and the additional drivers build just fine.

[ci:skip-build]: already built successfully in CI
2020-01-26 23:18:35 +01:00

51 lines
1.4 KiB
Text

# Maintainer: David Heidelberg <david@ixit.cz>
pkgname=libdrm-grate
pkgver=2.4.100_git20191221
pkgrel=1
pkgdesc="Userspace interface to kernel DRM services"
url="https://github.com/grate-driver/libdrm"
arch="armhf armv7"
# Requires a computer with gfx, no X running, build user in 'video' group..
options="!check"
license="MIT"
depends_dev="linux-headers"
provides="libdrm"
makedepends="$depends_dev meson libpthread-stubs eudev-dev libpciaccess-dev xmlto"
checkdepends="cunit-dev bash"
subpackages="$pkgname-dev $pkgname-doc"
_commit="fb342d0d78446f5f8898d8676fa986610d01c766"
source="$pkgname-$_commit.tar.gz::https://github.com/grate-driver/libdrm/archive/$_commit.tar.gz
ioctl.patch
"
_pkgname=libdrm
builddir="$srcdir/$_pkgname-$_commit"
build() {
meson \
-Dprefix=/usr \
-Dfreedreno=true \
-Dtegra=true \
-Detnaviv=true \
-Dudev=true \
. build
ninja -C build
}
check() {
cd "$builddir"/build
meson test
}
package() {
DESTDIR="$pkgdir" ninja -C build install
}
dev() {
default_dev
provides="libdrm-dev"
}
sha512sums="90618e48589bb74a5846c991f51cb53f0e483124db6c05a4dafafc2d63c3763972ef24dc62a4f2244c0ba23828894f7040111ba9f60421fc7ce19d19e726312a libdrm-grate-fb342d0d78446f5f8898d8676fa986610d01c766.tar.gz
af52fef51aaa05a4dd17919371cb9d92a77480402730bf53ba223e54df52f3825be05a7f28e6aef8c904db5ee59fe38a6c15bc6aafa7f8d31a719e80399dd51f ioctl.patch"