xorg-xserver 1.20.14: grab as is from oe-core/dunfell

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
Andreas Müller
2022-04-09 14:23:25 +02:00
parent d699820ef7
commit 11c94efca2
7 changed files with 420 additions and 0 deletions

View File

@@ -0,0 +1,191 @@
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"
INC_PR = "r8"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.gz"
CVE_PRODUCT = "xorg-server x_server"
# This is specific to Debian's xserver-wrapper.c
CVE_CHECK_WHITELIST += "CVE-2011-4613"
# As per upstream, exploiting this flaw is non-trivial and it requires exact
# timing on the behalf of the attacker. Many graphical applications exit if their
# connection to the X server is lost, so a typical desktop session is either
# impossible or difficult to exploit. There is currently no upstream patch
# available for this flaw.
CVE_CHECK_WHITELIST += "CVE-2020-25697"
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

@@ -0,0 +1,23 @@
From 84338444179cab7ede1252a11b66e3b8f657e6a4 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 e18cc37..3445cce 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -46,6 +46,7 @@
#include "xf86Crtc.h"
#include "drmmode_display.h"
#include "present.h"
+#include "mi.h"
#include <cursorstr.h>

View File

@@ -0,0 +1,36 @@
From 8a382c015cd3c69fcfc146ef03dcbf30c77ff207 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 1 Mar 2019 09:47:57 -0800
Subject: [PATCH] test/xtest: Initialize array with braces
Fixes an error when extra warnings are enabled, this is caught with clang
test/xtest.c:64:23: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
WindowRec root = {0};
^
{}
1 error generated.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/xtest.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/xtest.c b/test/xtest.c
index fc5e433..d7e6620 100644
--- a/test/xtest.c
+++ b/test/xtest.c
@@ -61,7 +61,7 @@ xtest_init_devices(void)
{
ScreenRec screen = {0};
ClientRec server_client = {0};
- WindowRec root = {0};
+ WindowRec root = {{0}};
WindowOptRec optional = {0};
/* random stuff that needs initialization */
--
2.21.0

View File

@@ -0,0 +1,53 @@
From d77cdc5e1eee26821ab98c947abea53fb7b18fe5 Mon Sep 17 00:00:00 2001
From: California Sullivan <california.l.sullivan@intel.com>
Date: Fri, 16 Mar 2018 17:23:11 -0700
Subject: [PATCH] xf86pciBus.c: use Intel ddx only for pre-gen4 hardware
Use intel ddx only on pre-gen4 hw, newer ones will fall back to modesetting
Author: Timo Aaltonen <tjaalton@debian.org>
Instead of defaulting to the Intel driver for all Intel hardware, only
default it for older hardware for which it has shown to be better for.
Others fall through to the -modesetting default.
Upstream-Status: Pending [Debian/Fedora patch
https://src.fedoraproject.org/rpms/xorg-x11-server/c/ee515e44b07e37689abf48cf2fffb41578f3bc1d]
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
---
hw/xfree86/common/xf86pciBus.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index e61ae0cd4..d70c99197 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1173,7 +1173,23 @@ xf86VideoPtrToDriverList(struct pci_device *dev,
case 0x0bef:
/* Use fbdev/vesa driver on Oaktrail, Medfield, CDV */
break;
- default:
+ /* Default to intel only on pre-gen4 chips */
+ case 0x3577:
+ case 0x2562:
+ case 0x3582:
+ case 0x358e:
+ case 0x2572:
+ case 0x2582:
+ case 0x258a:
+ case 0x2592:
+ case 0x2772:
+ case 0x27a2:
+ case 0x27ae:
+ case 0x29b2:
+ case 0x29c2:
+ case 0x29d2:
+ case 0xa001:
+ case 0xa011:
driverList[0] = "intel";
break;
}
--
2.14.3

View File

@@ -0,0 +1,34 @@
Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/22]
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 5f65a6246fe752764045dd1e38912f1dccec71e4 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Thu, 20 Sep 2018 20:12:24 +0100
Subject: [PATCH] xorg-server.m4: just all cflags instead of just sdkdir
Instead of fetching just the sdkdir variable of xorg-server using pkg-config,
simply get all of the CFLAGS. Aside from completeness, this helps builds in
sysroots as pkg-config knows what to do with --cflags but doesn't remap
arbitrary variables.
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
xorg-server.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xorg-server.m4 b/xorg-server.m4
index 18255b91a..195bda5d8 100644
--- a/xorg-server.m4
+++ b/xorg-server.m4
@@ -31,7 +31,7 @@ dnl
AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
+ CFLAGS="$CFLAGS `$PKG_CONFIG --cflags xorg-server`"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include "xorg-server.h"
#if !defined $1
--
2.11.0

View File

@@ -0,0 +1,50 @@
Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/253]
Signed-off-by: Ross Burton <ross.burton@intel.com>
From ca832598d38ba55a001088b57d73c6d7261dc9a7 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Thu, 1 Aug 2019 15:24:51 +0100
Subject: [PATCH] sdksyms.sh: don't embed the build path
This script generates a header that has a comment containing the build path for
no real reason. As this source can end up deployed on targets in debug packages
this means there is both potentially sensitive information leakage about the
build environment, and a source of change for reproducible builds.
---
hw/xfree86/sdksyms.sh | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
index 39e33711d..bdf47a71a 100755
--- a/hw/xfree86/sdksyms.sh
+++ b/hw/xfree86/sdksyms.sh
@@ -302,13 +302,16 @@ LC_ALL=C
export LC_ALL
${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $?
${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
+function basename(file) {
+ sub(".*/", "", file)
+ return file
+}
BEGIN {
sdk = 0;
print("/*");
print(" * These symbols are referenced to ensure they");
print(" * will be available in the X Server binary.");
print(" */");
- printf("/* topdir=%s */\n", topdir);
print("_X_HIDDEN void *xorg_symbols[] = {");
printf("sdksyms.c:") > "sdksyms.dep";
@@ -337,7 +340,7 @@ BEGIN {
# remove quotes
gsub(/"/, "", $3);
line = $2;
- header = $3;
+ header = basename($3);
if (! headers[$3]) {
printf(" \\\n %s", $3) >> "sdksyms.dep";
headers[$3] = 1;
--
2.20.1

View File

@@ -0,0 +1,33 @@
require xserver-xorg.inc
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[sha256sum] = "54b199c9280ff8bf0f73a54a759645bd0eeeda7255d1c99310d5b7595f3ac066"
CFLAGS += "-fcommon"
# 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 \
"