From c04a7c0e4812b4d1e815fb11293c7181684c2b35 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Fri, 13 Jul 2018 02:25:07 -0500 Subject: user/xorg-server: pull in, bump, take, fix --- user/xorg-server/20-modules.conf | 18 +++++ user/xorg-server/APKBUILD | 148 ++++++++++++++++++++++++++++++++++ user/xorg-server/autoconfig-sis.patch | 21 +++++ user/xorg-server/fix-musl-arm.patch | 20 +++++ 4 files changed, 207 insertions(+) create mode 100644 user/xorg-server/20-modules.conf create mode 100644 user/xorg-server/APKBUILD create mode 100644 user/xorg-server/autoconfig-sis.patch create mode 100644 user/xorg-server/fix-musl-arm.patch (limited to 'user/xorg-server') diff --git a/user/xorg-server/20-modules.conf b/user/xorg-server/20-modules.conf new file mode 100644 index 000000000..4ddcdd461 --- /dev/null +++ b/user/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/user/xorg-server/APKBUILD b/user/xorg-server/APKBUILD new file mode 100644 index 000000000..bcfc77eca --- /dev/null +++ b/user/xorg-server/APKBUILD @@ -0,0 +1,148 @@ +# Contributor: Łukasz Jendrysik +# Maintainer: A. Wilcox +pkgname=xorg-server +pkgver=1.20.0 +pkgrel=0 +pkgdesc="X.Org X11 server" +url="https://www.X.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-cursor-misc font-misc-misc xkeyboard-config xkbcomp xinit" +depends_dev="libepoxy-dev libxfont2-dev mesa-dev" +makedepends="$depends_dev autoconf automake libtool util-macros + eudev-dev libpciaccess-dev + libdrm-dev libepoxy-dev pixman-dev wayland-dev wayland-protocols + libx11-dev libxdamage-dev libxinerama-dev libxkbfile-dev libxkbui-dev + libxv-dev libxxf86dga-dev libxxf86misc-dev xcb-util-dev + xcb-util-image-dev xcb-util-keysyms-dev xcb-util-renderutil-dev + xcb-util-wm-dev xorgproto-dev + xtrans + openssl-dev perl zlib-dev + " +source="https://www.X.Org/releases/individual/xserver/$pkgname-$pkgver.tar.bz2 + autoconfig-sis.patch + fix-musl-arm.patch + " + +# 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,${_fontroot}/truetype \ + --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-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:-Adélie 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 -m755 -d "$pkgdir"/var/lib/xkb + install -m644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING +} + +xvfb() { + pkgdesc="X.Org server for virtual framebuffer (for testing)" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xvfb "$subpkgdir"/usr/bin/ +} + +xephyr() { + pkgdesc="kdrive-based X11 server (windowed framebuffer on X11 server)" + depends= + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xephyr "$subpkgdir"/usr/bin/ +} + +xnest() { + pkgdesc="X.Org nested server" + depends= + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xnest "$subpkgdir"/usr/bin/ +} + +xwayland() { + pkgdesc="X.Org server for Wayland" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/Xwayland "$subpkgdir"/usr/bin/ +} + +sha512sums="1489e8511c9da682ef0460182dfeeddd241c72d4ef4d206d9706f1e39572c09953df851fab18cefb65a1ee4c6710c6ba13c63c9c9fc0bc1b5f12c50780412cde xorg-server-1.20.0.tar.bz2 +30a78f4278edd535c45ee3f80933427cb029a13abaa4b041f816515fdd8f64f00b9c6aef50d4eba2aaf0d4f333e730399864fd97fa18891273601c77a6637200 autoconfig-sis.patch +b799e757a22a61ac283adbd7a8df1ad4eccce0bb6cac38a0c962ba8438bba3cf6637a65bb64859e7b32399fca672283a49960207e186c271ba574580de360d09 fix-musl-arm.patch" diff --git a/user/xorg-server/autoconfig-sis.patch b/user/xorg-server/autoconfig-sis.patch new file mode 100644 index 000000000..e97d82114 --- /dev/null +++ b/user/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/user/xorg-server/fix-musl-arm.patch b/user/xorg-server/fix-musl-arm.patch new file mode 100644 index 000000000..e661ae175 --- /dev/null +++ b/user/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 */ -- cgit v1.2.3-60-g2f50