recipes-graphics: xserver-xorg: Update recipes to new BSP release imx_5.4.47_2.2.0

Includes:
xserver-xorg: Upgrade to 1.20.8 version [YOCIMX-4697]

    Backport the recipes from poky master as the xserver is already upgraded to 1.20.8.

    Signed-off-by: Neena Busireddy <neenareddy.busireddy@nxp.com>
xserver-xorg: Remove comment that is no longer valid

    Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
xserver-xorg: Fix patch fuzz

    Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>

Signed-off-by: Hector Bujanda <Hector.Bujanda@digi.com>

Added FILESEXTRAPATHS_prepend to reuse some recipes from poky layer.
Patches refreshed with devtool finish --force-patch-refresh

Signed-off-by: Hector Bujanda <Hector.Bujanda@digi.com>
This commit is contained in:
Hector Bujanda 2020-11-03 01:25:09 +01:00
parent 544f152564
commit 306f0c2d43
7 changed files with 365 additions and 9 deletions

View File

@ -0,0 +1,88 @@
# Allow checking of required and conflicting DISTRO_FEATURES
#
# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included
# in DISTRO_FEATURES.
# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included
# in DISTRO_FEATURES.
# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in
# DISTRO_FEATURES.
# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included
# in MACHINE_FEATURES.
# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included
# in MACHINE_FEATURES.
# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in
# MACHINE_FEATURES.
# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included
# in COMBINED_FEATURES.
# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included
# in COMBINED_FEATURES.
# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in
# COMBINED_FEATURES.
#
# Copyright 2019 (C) Texas Instruments Inc.
# Copyright 2013 (C) O.S. Systems Software LTDA.
python () {
if d.getVar('PARSE_ALL_RECIPES', False):
return
# Assume at least one var is set.
distro_features = set((d.getVar('DISTRO_FEATURES') or '').split())
any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split())
if any_of_distro_features:
if set.isdisjoint(any_of_distro_features, distro_features):
raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features))
required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split())
if required_distro_features:
missing = set.difference(required_distro_features, distro_features)
if missing:
raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split())
if conflict_distro_features:
conflicts = set.intersection(conflict_distro_features, distro_features)
if conflicts:
raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
# Assume at least one var is set.
machine_features = set((d.getVar('MACHINE_FEATURES') or '').split())
any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split())
if any_of_machine_features:
if set.isdisjoint(any_of_machine_features, machine_features):
raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features))
required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split())
if required_machine_features:
missing = set.difference(required_machine_features, machine_features)
if missing:
raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split())
if conflict_machine_features:
conflicts = set.intersection(conflict_machine_features, machine_features)
if conflicts:
raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
# Assume at least one var is set.
combined_features = set((d.getVar('COMBINED_FEATURES') or '').split())
any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split())
if any_of_combined_features:
if set.isdisjoint(any_of_combined_features, combined_features):
raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features))
required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split())
if required_combined_features:
missing = set.difference(required_combined_features, combined_features)
if missing:
raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split())
if conflict_combined_features:
conflicts = set.intersection(conflict_combined_features, combined_features)
if conflicts:
raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
}

View File

@ -0,0 +1,182 @@
SUMMARY = "The X.Org X server"
HOMEPAGE = "http://www.x.org"
SECTION = "x11/base"
LICENSE = "MIT-X"
LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
# xf86-*-* packages depend on an X server built with the xfree86 DDX
# so we have a virtual to represent that:
# deprecated, we should use virtual/xserver instead
PROVIDES = "virtual/xserver-xf86"
# Other packages tend to just care that there is *an* X server:
PROVIDES += "virtual/xserver"
PE = "2"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
CVE_PRODUCT = "xorg-server"
S = "${WORKDIR}/${XORG_PN}-${PV}"
inherit autotools pkgconfig
inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess"
DEPENDS = "xorgproto ${LIB_DEPS} font-util"
# Split out some modules and extensions from the main package
# These aren't needed for basic operations and only take up space:
# 32.0k libdri.so
# 91.0k libexa.so
# 336.0k libglx.so
# 1360k libint10.so
# 180.0k libwfb.so
# 320.0k libxaa.so
# 124.0k libxf1bpp.so
# 84.0k libxf4bpp.so
# librecord.so
# libextmod.so
# libdbe.so
PACKAGES =+ "${PN}-sdl \
${PN}-fbdev \
${PN}-xvfb \
${PN}-utils \
${PN}-xephyr \
${PN}-xwayland \
${PN}-multimedia-modules \
${PN}-extension-dri \
${PN}-extension-dri2 \
${PN}-extension-glx \
${PN}-extension-record \
${PN}-extension-extmod \
${PN}-extension-dbe \
${PN}-module-libint10 \
${PN}-module-libafb \
${PN}-module-libwfb \
${PN}-module-libmfb \
${PN}-module-libcfb \
${PN}-module-exa \
${PN}-module-xaa \
${PN}-module-libxf1bpp \
${PN}-module-libxf4bpp \
xf86-video-modesetting"
SUMMARY_xf86-video-modesetting = "X.Org X server -- modesetting display driver"
INSANE_SKIP_${MLPREFIX}xf86-video-modesetting = "xorg-driver-abi"
XSERVER_RRECOMMENDS = "xkeyboard-config rgb xserver-xf86-config xkbcomp xf86-input-libinput"
RRECOMMENDS_${PN} += "${XSERVER_RRECOMMENDS}"
RRECOMMENDS_${PN}-xwayland += "${XSERVER_RRECOMMENDS}"
RDEPENDS_${PN}-xvfb += "xkeyboard-config"
RDEPENDS_${PN}-module-exa = "${PN} (= ${EXTENDPKGV})"
FILES_${PN} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules/*.so ${libdir}/xorg/modules/*.so /etc/X11 ${libdir}/xorg/protocol.txt ${datadir}/X11/xorg.conf.d"
FILES_${PN}-dev += "${libdir}/xorg/modules/*.la ${libdir}/xorg/modules/*/*.la"
FILES_${PN}-doc += "${libdir}/X11/doc ${datadir}/X11/xkb/compiled/README.compiled ${localstatedir}/lib/xkb/README.compiled"
FILES_${PN}-sdl = "${bindir}/Xsdl"
FILES_${PN}-fbdev = "${bindir}/Xfbdev"
FILES_${PN}-xvfb = "${bindir}/Xvfb"
FILES_${PN}-utils = "${bindir}/scanpci ${bindir}/pcitweak ${bindir}/ioport ${bindir}/in[bwl] ${bindir}/out[bwl] ${bindir}/mmap[rw] ${bindir}/gtf ${bindir}/getconfig ${bindir}/getconfig.pl"
FILES_${PN}-xephyr = "${bindir}/Xephyr"
FILES_${PN}-xwayland = "${bindir}/Xwayland"
FILES_${PN}-multimedia-modules = "${libdir}/xorg/modules/multimedia/*drv*"
FILES_${PN}-extension-dri = "${libdir}/xorg/modules/extensions/libdri.so"
FILES_${PN}-extension-dri2 = "${libdir}/xorg/modules/extensions/libdri2.so"
FILES_${PN}-extension-glx = "${libdir}/xorg/modules/extensions/libglx.so"
FILES_${PN}-extension-record = "${libdir}/xorg/modules/extensions/librecord.so"
FILES_${PN}-extension-extmod = "${libdir}/xorg/modules/extensions/libextmod.so"
FILES_${PN}-extension-dbe = "${libdir}/xorg/modules/extensions/libdbe.so"
FILES_${PN}-module-libint10 = "${libdir}/xorg/modules/libint10.so"
FILES_${PN}-module-libafb = "${libdir}/xorg/modules/libafb.so"
FILES_${PN}-module-libwfb = "${libdir}/xorg/modules/libwfb.so"
FILES_${PN}-module-libmfb = "${libdir}/xorg/modules/libmfb.so"
FILES_${PN}-module-libcfb = "${libdir}/xorg/modules/libcfb.so"
FILES_${PN}-module-exa = "${libdir}/xorg/modules/libexa.so"
FILES_${PN}-module-xaa = "${libdir}/xorg/modules/libxaa.so"
FILES_${PN}-module-libxf1bpp = "${libdir}/xorg/modules/libxf1bpp.so"
FILES_${PN}-module-libxf4bpp = "${libdir}/xorg/modules/libxf4bpp.so"
FILES_xf86-video-modesetting = "${libdir}/xorg/modules/drivers/modesetting_drv.so"
EXTRA_OECONF += "--with-fop=no \
--with-pic \
--disable-static \
--disable-record \
--disable-dmx \
--disable-xnest \
--enable-xvfb \
--enable-composite \
--without-dtrace \
--with-int10=x86emu \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
--with-xkb-output=/var/lib/xkb \
--with-os-name=Linux \
"
OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence"
PACKAGECONFIG ??= "dga dri2 udev ${XORG_CRYPTO} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'xwayland', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-logind', '', d)} \
"
PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev"
PACKAGECONFIG[dga] = "--enable-dga,--disable-dga"
PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,virtual/mesa"
PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2"
# DRI3 requires xshmfence to also be enabled
PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3"
PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl virtual/libx11"
PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor,libepoxy virtual/libgbm,libegl"
PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind"
PACKAGECONFIG[xshmfence] = "--enable-xshmfence,--disable-xshmfence,libxshmfence"
PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
PACKAGECONFIG[systemd-logind] = "--enable-systemd-logind=yes,--enable-systemd-logind=no,dbus,"
PACKAGECONFIG[systemd] = "--with-systemd-daemon,--without-systemd-daemon,systemd"
PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama"
PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,wayland wayland-native wayland-protocols libepoxy"
# Xorg requires a SHA1 implementation, pick one
XORG_CRYPTO ??= "openssl"
PACKAGECONFIG[openssl] = "--with-sha1=libcrypto,,openssl"
PACKAGECONFIG[nettle] = "--with-sha1=libnettle,,nettle"
PACKAGECONFIG[gcrypt] = "--with-sha1=libgcrypt,,libgcrypt"
do_install_append () {
# Its assumed base-files creates this for us
rmdir ${D}${localstatedir}/log/
sed -i -e 's,${libdir}/xorg/modules,${prefix}/lib*/xorg/modules,' ${D}${mandir}/man5/xorg.conf.5
}
# Add runtime provides for the ABI versions of the video and input subsystems,
# so that drivers can depend on the relevant version.
python populate_packages_prepend() {
import subprocess
# Set PKG_CONFIG_PATH so pkg-config looks at the .pc files that are going
# into the new package, not the staged ones.
newenv = dict(os.environ)
newenv["PKG_CONFIG_PATH"] = d.expand("${PKGD}${libdir}/pkgconfig/")
def get_abi(name):
abis = {
"video": "abi_videodrv",
"input": "abi_xinput"
}
p = subprocess.Popen(args="pkg-config --variable=%s xorg-server" % abis[name],
shell=True, env=newenv, stdout=subprocess.PIPE)
stdout, stderr = p.communicate()
output = stdout.decode("utf-8").split(".")[0]
mlprefix = d.getVar('MLPREFIX') or ''
return "%sxorg-abi-%s-%s" % (mlprefix, name, output)
pn = d.getVar("PN")
d.appendVar("RPROVIDES_" + pn, " " + get_abi("input"))
d.appendVar("RPROVIDES_" + pn, " " + get_abi("video"))
}

View File

@ -1,7 +1,8 @@
From ed3c55fa6260ad125a32f9ac67f9e44a9bce7cf1 Mon Sep 17 00:00:00 2001
From 6e467c13b7412cc862eab91edb4e59a5984f248f Mon Sep 17 00:00:00 2001
From: Prabhu Sundararaj <prabhu.sundarara@nxp.com>
Date: Mon, 11 May 2020 19:12:51 -0500
Subject: [PATCH] MGS-5186 Per Specification EGL_NATIVE_PIXMAP_KHR requires
EGL_NO_CONTEXT
https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_image_pixmap.txt
@ -10,15 +11,16 @@ Per Specification EGL_NATIVE_PIXMAP_KHR requires EGL_NO_CONTEXT.
So passing context will result in error.
Signed-off-by: Prabhu Sundararaj <prabhu.sundarara@nxp.com>
---
hw/xwayland/xwayland-glamor-gbm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index a211e09..f5be403 100644
index dce782f..e274fcd 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -166,7 +166,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(ScreenPtr screen, struct gbm_bo *bo,
@@ -167,7 +167,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(ScreenPtr screen, struct gbm_bo *bo,
xwl_pixmap->bo = bo;
xwl_pixmap->buffer = NULL;
xwl_pixmap->image = eglCreateImageKHR(xwl_screen->egl_display,
@ -26,7 +28,4 @@ index a211e09..f5be403 100644
+ EGL_NO_CONTEXT /*xwl_screen->egl_context*/,
EGL_NATIVE_PIXMAP_KHR,
xwl_pixmap->bo, NULL);
--
2.17.1
if (xwl_pixmap->image == EGL_NO_IMAGE_KHR)

View File

@ -0,0 +1,29 @@
From e0a460c8f3f43b96dad184cddbaf0aae05620a68 Mon Sep 17 00:00:00 2001
From: Prabhu Sundararaj <prabhu.sundarara@nxp.com>
Date: Tue, 30 Jun 2020 02:24:59 +0000
Subject: [PATCH] Use GLES Config when the opengl context fails
Signed-off-by: Prabhu Sundararaj <prabhu.sundarara@nxp.com>
---
hw/xwayland/xwayland-glamor-gbm.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index e274fcd..954abed 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -952,8 +952,12 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
xwl_screen->egl_context = eglCreateContext(
xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, config_attribs_core);
if (xwl_screen->egl_context == EGL_NO_CONTEXT) {
+ static const EGLint config_attribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
+ EGL_NONE
+ };
xwl_screen->egl_context = eglCreateContext(
- xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, NULL);
+ xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, config_attribs);
}
if (xwl_screen->egl_context == EGL_NO_CONTEXT) {

View File

@ -0,0 +1,24 @@
From e108605c2a14d6643b620c5f09443d95bfa35147 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 7 Feb 2020 20:36:45 +0100
Subject: [PATCH] drmmode_display.c: add missing mi.h include
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
hw/xfree86/drivers/modesetting/drmmode_display.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index ae06fa3..4fb2314 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -47,6 +47,7 @@
#include "xf86Crtc.h"
#include "drmmode_display.h"
#include "present.h"
+#include "mi.h"
#include <cursorstr.h>

View File

@ -1,8 +1,8 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
# Trailing space is intentional due to a bug in meta-freescale
SRC_URI += "file://0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch \
file://0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \
file://0002-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch"
file://0002-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \
file://0001-Use-GLES-Config-when-the-opengl-context-fails.patch"
PACKAGECONFIG_append_mx8 = " glamor"

View File

@ -0,0 +1,34 @@
require xserver-xorg.inc
FILESEXTRAPATHS_prepend := "${COREBASE}/meta/recipes-graphics/xorg-xserver/xserver-xorg:"
SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
file://pkgconfig.patch \
file://0001-test-xtest-Initialize-array-with-braces.patch \
file://sdksyms-no-build-path.patch \
file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
"
SRC_URI[md5sum] = "a770aec600116444a953ff632f51f839"
SRC_URI[sha256sum] = "d17b646bee4ba0fb7850c1cc55b18e3e8513ed5c02bdf38da7e107f84e2d0146"
# These extensions are now integrated into the server, so declare the migration
# path for in-place upgrades.
RREPLACES_${PN} = "${PN}-extension-dri \
${PN}-extension-dri2 \
${PN}-extension-record \
${PN}-extension-extmod \
${PN}-extension-dbe \
"
RPROVIDES_${PN} = "${PN}-extension-dri \
${PN}-extension-dri2 \
${PN}-extension-record \
${PN}-extension-extmod \
${PN}-extension-dbe \
"
RCONFLICTS_${PN} = "${PN}-extension-dri \
${PN}-extension-dri2 \
${PN}-extension-record \
${PN}-extension-extmod \
${PN}-extension-dbe \
"