From 95b6d96c0125dc5bcbc7551cbf3f4f186a6c1322 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Wed, 15 Aug 2018 21:47:44 +0200 Subject: [PATCH] temp/xorg-server: update to 1.20.1 Fixes #1625. --- temp/xorg-server/20-modules.conf | 18 +++ temp/xorg-server/APKBUILD | 188 +++++++++++++++++++++++ temp/xorg-server/autoconfig-nvidia.patch | 28 ++++ temp/xorg-server/autoconfig-sis.patch | 21 +++ temp/xorg-server/fix-musl-arm.patch | 20 +++ 5 files changed, 275 insertions(+) create mode 100644 temp/xorg-server/20-modules.conf create mode 100644 temp/xorg-server/APKBUILD create mode 100644 temp/xorg-server/autoconfig-nvidia.patch create mode 100644 temp/xorg-server/autoconfig-sis.patch create mode 100644 temp/xorg-server/fix-musl-arm.patch diff --git a/temp/xorg-server/20-modules.conf b/temp/xorg-server/20-modules.conf new file mode 100644 index 000000000..4ddcdd461 --- /dev/null +++ b/temp/xorg-server/20-modules.conf @@ -0,0 +1,18 @@ +Section "Module" + Load "exa" +# Load "wfb" + + Load "dri" + Load "dri2" + Load "glx" + + Load "int10" + Load "vbe" + Load "fb" + Load "shadowfb" + Load "shadow" + Load "vgahw" + Load "evdev" + Load "fbdevhw" + Load "glamoregl" +EndSection diff --git a/temp/xorg-server/APKBUILD b/temp/xorg-server/APKBUILD new file mode 100644 index 000000000..ee40febe6 --- /dev/null +++ b/temp/xorg-server/APKBUILD @@ -0,0 +1,188 @@ +# Temporarily forked from Alpine to update to 1.20.1, to fix XFCE4. +# Pull request and pmOS issue: +# - https://github.com/alpinelinux/aports/pull/4983 +# - https://gitlab.com/postmarketOS/pmbootstrap/issues/1625 +pkgname=xorg-server +pkgver=1.20.1 +pkgrel=0 +pkgdesc="X.Org X servers" +url="http://xorg.freedesktop.org" +arch="all" +license="MIT" +options="suid" +subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc xvfb $pkgname-xephyr + $pkgname-xnest $pkgname-xwayland" +# the modesetting driver is now shipped with xorg server +replaces="xf86-video-modesetting" +depends=" + font-misc-misc + font-cursor-misc + xkeyboard-config + xkbcomp + xinit + " +depends_dev=" + libepoxy-dev + libxfont2-dev + mesa-dev + " +makedepends=" + $depends_dev + autoconf + automake + eudev-dev + libdrm-dev + libepoxy-dev + libpciaccess-dev + libressl-dev + libtool + libx11-dev + libxdamage-dev + libxinerama-dev + libxkbfile-dev + libxkbui-dev + libxv-dev + libxxf86dga-dev + libxxf86misc-dev + perl + pixman-dev + util-macros + wayland-dev + wayland-protocols + xcb-util-dev + xcb-util-image-dev + xcb-util-keysyms-dev + xcb-util-renderutil-dev + xcb-util-wm-dev + xorgproto + xtrans + zlib-dev + " +source="http://www.x.org/releases/individual/xserver/$pkgname-$pkgver.tar.bz2 + autoconfig-nvidia.patch + autoconfig-sis.patch + fix-musl-arm.patch + 20-modules.conf + " +builddir="$srcdir"/$pkgname-$pkgver + +# secfixes: +# 1.19.5-r0: +# - CVE-2017-12176 +# - CVE-2017-12177 +# - CVE-2017-12178 +# - CVE-2017-12179 +# - CVE-2017-12180 +# - CVE-2017-12181 +# - CVE-2017-12182 +# - CVE-2017-12183 +# - CVE-2017-12184 +# - CVE-2017-12185 +# - CVE-2017-12186 +# - CVE-2017-12187 +# - CVE-2017-13721 +# - CVE-2017-13723 + +prepare() { + cd "$builddir" + default_prepare + + # Fix dbus config path + sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.* + sed -i -e 's/termio.h/termios.h/' hw/xfree86/os-support/xf86_OSlib.h +} + +build() { + cd "$builddir" + # xorg modules does not work with the -z now and it seems like we + # cannot pass over the linker flag to .so files. so we tweak the + # gcc specs. + export CFLAGS="$CFLAGS -D_GNU_SOURCE" + [ "$CLIBC" == musl ] && export CFLAGS="$CFLAGS -D__gid_t=gid_t -D__uid_t=uid_t" + export LDFLAGS="$LDFLAGS -Wl,-z,lazy" + _fontroot="/usr/share/fonts" + + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc/X11 \ + --localstatedir=/var \ + --with-fontrootdir=$_fontroot \ + --with-default-font-path=${_fontroot}/misc,${_fontroot}/100dpi:unscaled,${_fontroot}/75dpi:unscaled,${_fontroot}/TTF,${_fontroot}/Type1 \ + --with-xkb-path=/usr/share/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --without-systemd-daemon \ + --enable-composite \ + --enable-config-udev \ + --enable-dri \ + --enable-dri2 \ + --enable-dri3 \ + --enable-glamor \ + --enable-ipv6 \ + --enable-kdrive \ + --enable-xace \ + --enable-xcsecurity \ + --enable-xephyr \ + --enable-xnest \ + --enable-xorg \ + --enable-xres \ + --enable-xv \ + --enable-xwayland \ + --disable-config-hal \ + --disable-dmx \ + --disable-systemd-logind \ + --with-os-vendor="${DISTRO_NAME:-Alpine Linux}" + make +} + +check() { + cd "$builddir" + make check +} + +package() { + cd "$builddir" + make -j1 DESTDIR="$pkgdir" install + chmod u+s "$pkgdir"/usr/bin/Xorg + + # Don't conflict with xf86-input-evdev + rm -f "$pkgdir"/usr/share/X11/xorg.conf.d/10-evdev.conf + + install -m755 -d "$pkgdir"/etc/X11/xorg.conf.d + install -m644 "$srcdir"/20-modules.conf "$pkgdir"/etc/X11/xorg.conf.d/ + install -m755 -d "$pkgdir"/var/lib/xkb + install -m644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING +} + +xvfb() { + pkgdesc="Virtual Framebuffer 'fake' X server" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xvfb "$subpkgdir"/usr/bin/ +} + +xephyr() { + pkgdesc="kdrive based X Server which targets a window on a host X Server as its framebuffer" + depends= + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xephyr "$subpkgdir"/usr/bin/ +} + +xnest() { + pkgdesc="A nested Xorg server" + depends= + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xnest "$subpkgdir"/usr/bin/ +} + +xwayland() { + pkgdesc="run X clients under wayland" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xwayland "$subpkgdir"/usr/bin/ +} + +sha512sums="ef2b93a61683c8ca8d1f14b771e70db65ba119a73db8a46e7cdbf2ac2243e3f4b2732068eb5aa5d7b76f460db995a3c04390870198a5210ec30df4360ad9f94b xorg-server-1.20.1.tar.bz2 +4dcaa60fbfc61636e7220a24a72bba19984a6dc752061cb40b1bd566c0e614d08927b6c223ffaaaa05636765fddacdc3113fde55d25fd09cd0c786ff44f51447 autoconfig-nvidia.patch +30a78f4278edd535c45ee3f80933427cb029a13abaa4b041f816515fdd8f64f00b9c6aef50d4eba2aaf0d4f333e730399864fd97fa18891273601c77a6637200 autoconfig-sis.patch +b799e757a22a61ac283adbd7a8df1ad4eccce0bb6cac38a0c962ba8438bba3cf6637a65bb64859e7b32399fca672283a49960207e186c271ba574580de360d09 fix-musl-arm.patch +95036f2452732cc31f6b646da9f46b7be30f4c9392724386b02f67fece1f506b00e15d14cbd8cf0ce75ca1fd144b4bea7e59288d4aaf4d6c1e06e5168931eb67 20-modules.conf" diff --git a/temp/xorg-server/autoconfig-nvidia.patch b/temp/xorg-server/autoconfig-nvidia.patch new file mode 100644 index 000000000..6d5220ac7 --- /dev/null +++ b/temp/xorg-server/autoconfig-nvidia.patch @@ -0,0 +1,28 @@ +diff -Nur xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c +--- xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c 2012-02-10 10:10:37.583014924 +0000 ++++ xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c 2012-02-10 11:16:07.148971317 +0000 +@@ -1144,7 +1144,23 @@ + int idx = 0; + + #ifdef __linux__ +- driverList[idx++] = "nouveau"; ++ switch (dev->device_id) ++ { ++ /* NV1 */ ++ case 0x0008: ++ case 0x0009: ++ driverList[idx++] = "vesa"; ++ break; ++ /* NV3 */ ++ case 0x0018: ++ case 0x0019: ++ driverList[idx++] = "nouveau"; ++ break; ++ default: ++ driverList[idx++] = "nouveau"; ++ driverList[idx++] = "nvidia"; ++ break; ++ } + #endif + driverList[idx++] = "nv"; + break; diff --git a/temp/xorg-server/autoconfig-sis.patch b/temp/xorg-server/autoconfig-sis.patch new file mode 100644 index 000000000..e97d82114 --- /dev/null +++ b/temp/xorg-server/autoconfig-sis.patch @@ -0,0 +1,21 @@ +--- ./hw/xfree86/common/xf86pciBus.c.orig 2011-09-24 10:53:45.421697668 +0000 ++++ ./hw/xfree86/common/xf86pciBus.c 2011-09-24 10:55:56.416250708 +0000 +@@ -1200,9 +1200,15 @@ + break; + } + break; +- case 0x1039: +- driverList[0] = "sis"; +- break; ++ case 0x1039: ++ switch (dev->device_id) ++ { ++ case 0x6350: case 0x6351: ++ driverList[0] = "sisimedia"; driverList[1] = "sis"; break; ++ default: ++ driverList[0] = "sis"; break; ++ } ++ break; + case 0x126f: + driverList[0] = "siliconmotion"; + break; diff --git a/temp/xorg-server/fix-musl-arm.patch b/temp/xorg-server/fix-musl-arm.patch new file mode 100644 index 000000000..e661ae175 --- /dev/null +++ b/temp/xorg-server/fix-musl-arm.patch @@ -0,0 +1,20 @@ +--- ./hw/xfree86/common/compiler.h.orig ++++ ./hw/xfree86/common/compiler.h +@@ -721,7 +721,7 @@ + :"r"(val), "r"(addr), "i"(ASI_PL)); + } + +-#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__)) ++#elif defined(__mips__) || (defined(__arm32__) && !defined(__GLIBC__)) + #if defined(__arm32__) || defined(__mips64) + #define PORT_SIZE long + #else +@@ -996,7 +996,7 @@ + return xf86ReadMmio32Le((void *) ioBase, port); + } + +-#elif defined(__arm__) && defined(__linux__) ++#elif defined(__arm__) && defined(__GLIBC__) + + /* for Linux on ARM, we use the LIBC inx/outx routines */ + /* note that the appropriate setup via "ioperm" needs to be done */