xserver-xorg_1.7.7: add recipe with refined hacks
authorGrazvydas Ignotas <notasas@gmail.com>
Thu, 1 May 2014 22:46:35 +0000 (01:46 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sun, 4 May 2014 15:17:26 +0000 (18:17 +0300)
recipes/xorg-xserver/xserver-xorg-1.7.7/hack-assume-pixman-supports-overlapped-blt.patch [new file with mode: 0644]
recipes/xorg-xserver/xserver-xorg-1.7.7/pnd-inputswitch-perf-hack.patch [new file with mode: 0644]
recipes/xorg-xserver/xserver-xorg-1.7.7/sysroot_fix.patch [new file with mode: 0644]
recipes/xorg-xserver/xserver-xorg-1.7.7/xorg-kill-ugly-pattern.patch [new file with mode: 0644]
recipes/xorg-xserver/xserver-xorg_1.7.7.bb [new file with mode: 0644]

diff --git a/recipes/xorg-xserver/xserver-xorg-1.7.7/hack-assume-pixman-supports-overlapped-blt.patch b/recipes/xorg-xserver/xserver-xorg-1.7.7/hack-assume-pixman-supports-overlapped-blt.patch
new file mode 100644 (file)
index 0000000..a947582
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/fb/fbcopy.c b/fb/fbcopy.c
+index 07eb663..ba394b7 100644
+--- a/fb/fbcopy.c
++++ b/fb/fbcopy.c
+@@ -91,8 +91,7 @@ fbCopyNtoN (DrawablePtr      pSrcDrawable,
+     while (nbox--)
+     {
+ #ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */
+-      if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
+-          !upsidedown)
++      if (pm == FB_ALLONES && alu == GXcopy)
+       {
+           if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
+                            (pbox->x1 + dx + srcXoff),
diff --git a/recipes/xorg-xserver/xserver-xorg-1.7.7/pnd-inputswitch-perf-hack.patch b/recipes/xorg-xserver/xserver-xorg-1.7.7/pnd-inputswitch-perf-hack.patch
new file mode 100644 (file)
index 0000000..12eca45
--- /dev/null
@@ -0,0 +1,25 @@
+diff -ur xorg-server-1.7.7_orig/xkb/xkbUtils.c xorg-server-1.7.7/xkb/xkbUtils.c
+--- xorg-server-1.7.7_orig/xkb/xkbUtils.c      2014-05-02 00:17:59.955721525 +0300
++++ xorg-server-1.7.7/xkb/xkbUtils.c   2014-05-02 01:39:59.727909694 +0300
+@@ -2092,12 +2092,21 @@
+ Bool
+ XkbCopyDeviceKeymap(DeviceIntPtr dst, DeviceIntPtr src)
+ {
++    static int had_pnd_internal_dev;
++    int is_pnd_internal_dev;
+     xkbNewKeyboardNotify nkn;
+     Bool ret;
+     if (!dst->key || !src->key)
+         return FALSE;
++    /* pnd hack: avoid perf penalty for switching between gpio-keys/keypad */
++    is_pnd_internal_dev = src->name != NULL &&
++      (!strcmp(src->name, "keypad") || !strcmp(src->name, "gpio-keys"));
++    if (had_pnd_internal_dev == is_pnd_internal_dev)
++        return XkbCopyKeymap(dst->key->xkbInfo->desc, src->key->xkbInfo->desc);
++    had_pnd_internal_dev = is_pnd_internal_dev;
++
+     memset(&nkn, 0, sizeof(xkbNewKeyboardNotify));
+     nkn.oldMinKeyCode = dst->key->xkbInfo->desc->min_key_code;
+     nkn.oldMaxKeyCode = dst->key->xkbInfo->desc->max_key_code;
diff --git a/recipes/xorg-xserver/xserver-xorg-1.7.7/sysroot_fix.patch b/recipes/xorg-xserver/xserver-xorg-1.7.7/sysroot_fix.patch
new file mode 100644 (file)
index 0000000..b7eb198
--- /dev/null
@@ -0,0 +1,13 @@
+diff -ur xorg-server-1.7.7_orig/xorg-server.m4 xorg-server-1.7.7/xorg-server.m4
+--- xorg-server-1.7.7_orig/xorg-server.m4      2014-05-02 00:17:54.275721330 +0300
++++ xorg-server-1.7.7/xorg-server.m4   2014-05-02 00:18:59.671723716 +0300
+@@ -31,7 +31,7 @@
+ 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
+Only in xorg-server-1.7.7_orig: .xorg-server.m4.swp
diff --git a/recipes/xorg-xserver/xserver-xorg-1.7.7/xorg-kill-ugly-pattern.patch b/recipes/xorg-xserver/xserver-xorg-1.7.7/xorg-kill-ugly-pattern.patch
new file mode 100644 (file)
index 0000000..11acec9
--- /dev/null
@@ -0,0 +1,16 @@
+Remove the default root window grey stipple pattern, replacing it with
+blackness.
+
+--- xc/dix/window.c.die-ugly-pattern-die-die-die       Tue Feb 12 16:33:04 2002
++++ xc/dix/window.c    Tue Feb 12 16:45:32 2002
+@@ -119,8 +119,8 @@
+  *
+  ******/
+-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
+-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
+ int screenIsSaved = SCREEN_SAVER_OFF;
diff --git a/recipes/xorg-xserver/xserver-xorg_1.7.7.bb b/recipes/xorg-xserver/xserver-xorg_1.7.7.bb
new file mode 100644 (file)
index 0000000..fe87387
--- /dev/null
@@ -0,0 +1,37 @@
+require xorg-xserver-common.inc
+
+DESCRIPTION = "the X.Org X server"
+DEPENDS += "pixman libpciaccess openssl dri2proto glproto xorg-minimal-fonts"
+PE = "2"
+PR = "${INC_PR}.2"
+
+SRC_URI = " http://xorg.freedesktop.org/archive/individual/xserver/${XORG_PN}-${PV}.tar.bz2;name=archive \
+            file://sysroot_fix.patch;patch=1 \
+            file://dolt-fix-1.7.0.patch;patch=1 \
+            file://randr-support-1.7.0.patch;patch=1 \
+            file://hack-fbdev-ignore-return-mode.patch;patch=1 \
+           "
+
+SRC_URI_append_angstrom = " file://hack-assume-pixman-supports-overlapped-blt.patch;patch=1"
+SRC_URI_append_shr = " file://hack-assume-pixman-supports-overlapped-blt.patch;patch=1"
+
+# OpenPandora HACK! - Temp! - Do NOT put into mainline.
+SRC_URI_append_omap3-pandora = " \
+            file://pnd-inputswitch-perf-hack.patch;patch=1 \
+            file://xorg-kill-ugly-pattern.patch;patch=1 \
+"
+
+do_install_prepend() {
+        mkdir -p ${D}/${libdir}/X11/fonts
+}
+
+# The NVidia driver requires Xinerama support in the X server. Ion uses it.
+XINERAMA = "${@['--disable-xinerama','--enable-xinerama'][bb.data.getVar('MACHINE',d) in ['ion']]}"
+
+EXTRA_OECONF += " ${CONFIG_MANAGER_OPTION} ${XINERAMA} --disable-kdrive --disable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-dmx"
+EXTRA_OECONF += " --disable-glx-tls --enable-dri2 --disable-unit-tests "
+
+export LDFLAGS += " -ldl "
+
+SRC_URI[archive.md5sum] = "8c0146330fb155c23d947ac37d431d4b"
+SRC_URI[archive.sha256sum] = "54c4d32bfeb8852adbea3ddae6981f3bc2eadb330124d9b35226c617c01926ff"