summaryrefslogtreecommitdiff
path: root/meta/packages/xorg-xserver
diff options
context:
space:
mode:
authorChris Larson <kergoth@openedhand.com>2006-08-15 11:58:37 +0000
committerChris Larson <kergoth@openedhand.com>2006-08-15 11:58:37 +0000
commitca10363baac7de9581ec90ab47957f973e1dbdc4 (patch)
tree2000b53f806c79510671d8fd1a6a36125f8b25b3 /meta/packages/xorg-xserver
parentc210d01a7ca8c00ddc45d292878b89086b137129 (diff)
downloadopenembedded-core-ca10363baac7de9581ec90ab47957f973e1dbdc4.tar.gz
openembedded-core-ca10363baac7de9581ec90ab47957f973e1dbdc4.tar.bz2
openembedded-core-ca10363baac7de9581ec90ab47957f973e1dbdc4.zip
Numerous new xorg package versions from upstream OE. Pester me if any local changes got inadvertantly lost, or if any packages need upgrading.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@607 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/xorg-xserver')
-rw-r--r--meta/packages/xorg-xserver/xorg-xserver-common.inc43
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-omap/configure-tslib.patch13
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-omap/fbdev-not-fix.patch14
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-omap/kmode.patch19
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-omap_6.6.3.bb23
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/build-20050207-against-X11R7.diff464
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/devfs.patch47
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/disable-apm.patch20
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch37
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/enable-builtin-fonts.patch12
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch23
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/epson.patch11
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch241
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/fbdev-not-fix.patch14
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/kdrive-evdev.patch515
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/kdrive-use-evdev.patch53
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/kmode.patch28
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/no-serial-probing.patch13
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/onlyfb.patch21
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch54
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/xcalibrate.patch351
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/xserver-kdrive-poodle.patch44
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_20050207.bb74
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_20050624.bb49
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_20060312.bb52
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb46
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_cvs.bb51
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_git.bb48
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/dri.patch10
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/drmfix.patch13
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/fontfile.patch11
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/freetype.patch22
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/imake-installed.patch11
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/imake-staging.patch38
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/miext_layer_shadow_h.patch11
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/xorg.conf149
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg/xpconfig-parentdir.patch30
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg_6.8.99.10.bb65
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg_6.8.99.11.bb65
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg_X11R7.0-1.0.1.bb9
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg_X11R7.1-1.1.0.bb9
-rw-r--r--meta/packages/xorg-xserver/xserver-xorg_cvs.bb61
42 files changed, 2884 insertions, 0 deletions
diff --git a/meta/packages/xorg-xserver/xorg-xserver-common.inc b/meta/packages/xorg-xserver/xorg-xserver-common.inc
new file mode 100644
index 0000000000..6c1bbd34a9
--- /dev/null
+++ b/meta/packages/xorg-xserver/xorg-xserver-common.inc
@@ -0,0 +1,43 @@
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/base"
+#MAINTAINER = ""
+LICENSE = "MIT-X"
+
+RPROVIDES = "virtual/xserver"
+PROVIDES = "virtual/xserver"
+
+DEPENDS = "fontconfig freetype flex-native lbxutil kbproto \
+xf86driproto drm glproto randrproto renderproto fixesproto damageproto \
+xcmiscproto xextproto xproto xf86miscproto xf86vidmodeproto xf86bigfontproto \
+scrnsaverproto bigreqsproto resourceproto fontsproto inputproto \
+xf86dgaproto videoproto compositeproto trapproto recordproto dmxproto \
+resourceproto xineramaproto xtrans evieext libxkbfile libxfont libxau \
+libfontenc libxdmcp libxxf86vm libxaw libxmu libxt libxpm libxext libx11 \
+libxkbui libxxf86misc libxi libdmx libxtst libxres mesa"
+
+REPENDS="rgb"
+
+XORG_PN = "xorg-server"
+SRC_URI = "${XORG_MIRROR}/${@bb.data.getVar('PV', d, 1)[0:7]}/src/xserver/${XORG_PN}-${PV}.tar.gz \
+ file://xorg.conf"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "${PN}-xprint ${PN}-xvfb ${PN}-utils"
+
+FILES_${PN}-xprint = "${libdir}/X11/xserver/*/print"
+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} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/xserver/SecurityPolicy ${libdir}/modules ${libdir}/xorg/modules /etc/X11 "
+FILES_${PN}-doc += "${libdir}/X11/doc /usr/share/X11/xkb/compiled/README.compiled"
+
+do_stage() {
+ autotools_stage_all
+}
+
+do_install_append () {
+ install -d ${D}/etc/X11
+ install -m0644 ${WORKDIR}/xorg.conf ${D}/etc/X11/
+}
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-omap/configure-tslib.patch b/meta/packages/xorg-xserver/xserver-kdrive-omap/configure-tslib.patch
new file mode 100644
index 0000000000..0c0b64bf14
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-omap/configure-tslib.patch
@@ -0,0 +1,13 @@
+--- configure.ac~ 2005-06-03 17:23:36.000000000 +0200
++++ configure.ac 2005-06-03 17:23:36.000000000 +0200
+@@ -447,10 +447,6 @@
+ KDRIVE_INCS="$KDRIVE_PURE_INCS $KDRIVE_OS_INC"
+ fi
+
+-if test "$TSLIB" = yes; then
+- KDRIVE_LIBS="${KDRIVE_LIBS} -lts"
+-fi
+-
+ AC_SUBST([KDRIVE_PURE_LIBS])
+ AC_SUBST([KDRIVE_PURE_INCS])
+ AC_SUBST([KDRIVE_LIBS])
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-omap/fbdev-not-fix.patch b/meta/packages/xorg-xserver/xserver-kdrive-omap/fbdev-not-fix.patch
new file mode 100644
index 0000000000..f87e7cc2cd
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-omap/fbdev-not-fix.patch
@@ -0,0 +1,14 @@
+--- xserver/hw/kdrive/fbdev/fbdev.c~ 2004-09-15 00:08:10.000000000 +0100
++++ xserver/hw/kdrive/fbdev/fbdev.c 2004-11-13 17:47:02.000000000 +0000
+@@ -198,6 +198,11 @@
+ return FALSE;
+ }
+
++ /* Re-get the "fixed" parameters since they might have changed */
++ k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
++ if (k < 0)
++ perror ("FBIOGET_FSCREENINFO");
++
+ /* Now get the new screeninfo */
+ ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
+ depth = priv->var.bits_per_pixel;
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-omap/kmode.patch b/meta/packages/xorg-xserver/xserver-kdrive-omap/kmode.patch
new file mode 100644
index 0000000000..22ad51c5ad
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-omap/kmode.patch
@@ -0,0 +1,19 @@
+Index: hw/kdrive/src/kmode.c
+===================================================================
+RCS file: /cvs/xserver/xserver/hw/kdrive/src/kmode.c,v
+retrieving revision 1.13
+diff -u -r1.13 kmode.c
+--- xserver/hw/kdrive/src/kmode.c 26 Jul 2004 17:14:26 -0000 1.13
++++ xserver/hw/kdrive/src/kmode.c 28 Aug 2004 14:04:19 -0000
+@@ -41,6 +41,11 @@
+ 1, 11, 14, KdSyncNegative,
+ },
+
++ { 240, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
+ /* Other VESA modes */
+ { 640, 350, 85, 31500, /* VESA */
+ 32, 96, 192, KdSyncPositive, /* 26.413 */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-omap_6.6.3.bb b/meta/packages/xorg-xserver/xserver-kdrive-omap_6.6.3.bb
new file mode 100644
index 0000000000..b7e192dc76
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-omap_6.6.3.bb
@@ -0,0 +1,23 @@
+LICENSE = "MIT"
+DEPENDS = "xsp tslib-maemo xproto libxdmcp xextensions xtrans libxau virtual/libx11 libxext libxrandr fixesext damageext libxfont resourceext compositeext xcalibrateext recordext"
+PROVIDES = "virtual/xserver"
+PACKAGES = "${PN} ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-omap = "X server from freedesktop.org with patches from maemo.org, supporting X on OMAP based devices"
+
+PR = "r2"
+
+FILES_${PN} = "${bindir}/Xomap"
+
+SRC_URI = " http://stage.maemo.org/pool/maemo/ossw/source/x/xserver-kdrive/xserver-kdrive_${PV}-5.tar.gz \
+ file://kmode.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1 \
+ file://configure-tslib.patch;patch=1;pnum=0"
+
+S = "${WORKDIR}/xserver"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --disable-xinerama --enable-xomapserver \
+ --enable-xsp --disable-xlocale --disable-rpath --prefix=/usr"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/build-20050207-against-X11R7.diff b/meta/packages/xorg-xserver/xserver-kdrive/build-20050207-against-X11R7.diff
new file mode 100644
index 0000000000..596e498b80
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/build-20050207-against-X11R7.diff
@@ -0,0 +1,464 @@
+--- xserver.orig/configure.ac 2006-03-11 16:27:42.000000000 +0100
++++ xserver/configure.ac 2006-03-11 16:46:51.000000000 +0100
+@@ -79,7 +79,7 @@
+ # tslib touchscreen driver
+ AC_CHECK_HEADERS([tslib.h])
+
+-REQUIRED_MODULES="randr render fixesext damageext xextensions xfont xproto xtrans xau"
++REQUIRED_MODULES="randrproto renderproto fixesproto damageproto xextproto xfont xproto xtrans xau"
+
+ DEFAULT_FONT_PATH="/usr/lib/X11/fonts/misc,/usr/lib/X11/fonts/100dpi,/usr/lib/X11/fonts/75dpi"
+ DEFAULT_VENDOR_STRING="freedesktop.org"
+--- xserver.orig/dix/dispatch.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/dix/dispatch.c 2006-03-11 16:30:59.000000000 +0100
+@@ -79,7 +79,6 @@
+ #endif
+
+ #include "windowstr.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "gcstruct.h"
+ #include "selection.h"
+--- xserver.orig/dix/glyphcurs.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/dix/glyphcurs.c 2006-03-11 16:31:57.000000000 +0100
+@@ -51,7 +51,6 @@
+ #include <config.h>
+ #endif
+ #include "misc.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "scrnintstr.h"
+ #include "gcstruct.h"
+--- xserver.orig/dix/main.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/dix/main.c 2006-03-11 16:32:05.000000000 +0100
+@@ -89,7 +89,6 @@
+ #include "colormap.h"
+ #include "colormapst.h"
+ #include "cursorstr.h"
+-#include "font.h"
+ #include "opaque.h"
+ #include "servermd.h"
+ #include "site.h"
+--- xserver.orig/dix/swaprep.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/dix/swaprep.c 2006-03-11 16:32:24.000000000 +0100
+@@ -57,7 +57,7 @@
+ #include <X11/Xproto.h>
+ #include "misc.h"
+ #include "dixstruct.h"
+-#include "fontstruct.h"
++#include "dixfont.h"
+ #include "scrnintstr.h"
+ #include "swaprep.h"
+ #include "globals.h"
+--- xserver.orig/dix/xpstubs.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/dix/xpstubs.c 2006-03-11 16:32:34.000000000 +0100
+@@ -31,7 +31,7 @@
+ #include <config.h>
+ #endif
+ #include "misc.h"
+-#include "font.h"
++#include "dixfont.h"
+
+ Bool
+ XpClientIsBitmapClient(ClientPtr client)
+--- xserver.orig/fb/fbglyph.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/fb/fbglyph.c 2006-03-11 16:52:01.000000000 +0100
+@@ -26,7 +26,6 @@
+ #include <config.h>
+ #endif
+ #include "fb.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+
+ Bool
+--- xserver.orig/hw/kdrive/epson/epson13806draw.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/hw/kdrive/epson/epson13806draw.c 2006-03-11 16:34:56.000000000 +0100
+@@ -38,7 +38,6 @@
+ #include "pixmapstr.h"
+ #include "regionstr.h"
+ #include "mistruct.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "fb.h"
+ #include "migc.h"
+--- xserver.orig/hw/kdrive/i810/i810draw.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/hw/kdrive/i810/i810draw.c 2006-03-11 16:34:41.000000000 +0100
+@@ -51,7 +51,6 @@
+ #include "pixmapstr.h"
+ #include "regionstr.h"
+ #include "mistruct.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "fb.h"
+ #include "migc.h"
+--- xserver.orig/hw/kdrive/src/kaa.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/hw/kdrive/src/kaa.c 2006-03-11 16:35:39.000000000 +0100
+@@ -29,7 +29,6 @@
+ #endif
+ #include "kdrive.h"
+ #include "kaa.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+
+ #define DEBUG_MIGRATE 0
+--- xserver.orig/include/dixfont.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/include/dixfont.h 2006-03-11 16:43:25.000000000 +0100
+@@ -27,10 +27,10 @@
+ #define DIXFONT_H 1
+
+ #include "dix.h"
+-#include "font.h"
+-#include "fontconf.h"
++#include <X11/fonts/font.h>
++#include <X11/fonts/fontconf.h>
+ #include "closure.h"
+-#include "fontstruct.h"
++#include <X11/fonts/fontstruct.h>
+
+ #define NullDIXFontProp ((DIXFontPropPtr)0)
+
+--- xserver.orig/include/dixfontstr.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/include/dixfontstr.h 2006-03-11 16:43:31.000000000 +0100
+@@ -27,7 +27,6 @@
+
+ #include "servermd.h"
+ #include "dixfont.h"
+-#include "fontstruct.h"
+ #include "closure.h"
+ #define NEED_REPLIES
+ #include "X11/Xproto.h" /* for xQueryFontReply */
+--- xserver.orig/mi/mibstore.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/mibstore.c 2006-03-11 16:36:26.000000000 +0100
+@@ -57,7 +57,6 @@
+ #include "gcstruct.h"
+ #include "windowstr.h"
+ #include "pixmapstr.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "dixstruct.h" /* For requestingClient */
+ #include "mi.h"
+--- xserver.orig/mi/miglblt.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/miglblt.c 2006-03-11 16:53:52.000000000 +0100
+@@ -55,7 +55,6 @@
+ #include <X11/Xmd.h>
+ #include <X11/Xproto.h>
+ #include "misc.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "gcstruct.h"
+ #include "windowstr.h"
+--- xserver.orig/mi/mi.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/mi.h 2006-03-11 16:36:16.000000000 +0100
+@@ -54,7 +54,7 @@
+ #include "validate.h"
+ #include "window.h"
+ #include "gc.h"
+-#include "font.h"
++#include "dixfont.h"
+ #include "input.h"
+ #include "cursor.h"
+
+--- xserver.orig/mi/miinitext.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/miinitext.c 2006-03-11 16:36:41.000000000 +0100
+@@ -54,6 +54,8 @@
+ #include "extension.h"
+ #include "micmap.h"
+ #include "xext.h"
++#include "pixmap.h"
++#include "gc.h"
+
+ #ifdef NOPEXEXT /* sleaze for Solaris cpp building XsunMono */
+ #undef PEXEXT
+--- xserver.orig/mi/mipolytext.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/mipolytext.c 2006-03-11 16:36:48.000000000 +0100
+@@ -63,7 +63,6 @@
+ #include <X11/Xproto.h>
+ #include "misc.h"
+ #include "gcstruct.h"
+-#include "fontstruct.h"
+ #include "dixfontstr.h"
+ #include "mi.h"
+
+--- xserver.orig/mi/misprite.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/mi/misprite.c 2006-03-11 16:37:00.000000000 +0100
+@@ -42,7 +42,6 @@
+ # include "input.h"
+ # include "mi.h"
+ # include "cursorstr.h"
+-# include "font.h"
+ # include "scrnintstr.h"
+ # include "colormapst.h"
+ # include "windowstr.h"
+@@ -50,7 +49,6 @@
+ # include "mipointer.h"
+ # include "mispritest.h"
+ # include "dixfontstr.h"
+-# include "fontstruct.h"
+ #ifdef RENDER
+ # include "mipict.h"
+ #endif
+--- xserver.orig/miext/damage/damage.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/damage/damage.c 2006-03-11 16:37:17.000000000 +0100
+@@ -28,9 +28,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shadow.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shadow.c 2006-03-11 16:38:13.000000000 +0100
+@@ -29,9 +29,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shalloc.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shalloc.c 2006-03-11 16:38:25.000000000 +0100
+@@ -29,9 +29,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shpacked.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shpacked.c 2006-03-11 16:38:33.000000000 +0100
+@@ -28,9 +28,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shplanar8.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shplanar8.c 2006-03-11 16:38:44.000000000 +0100
+@@ -28,9 +28,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shplanar.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shplanar.c 2006-03-11 16:38:39.000000000 +0100
+@@ -28,9 +28,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shrotate.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shrotate.c 2006-03-11 16:38:56.000000000 +0100
+@@ -28,9 +28,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shrotpack.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shrotpack.h 2006-03-11 16:39:02.000000000 +0100
+@@ -30,9 +30,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/miext/shadow/shrotpackYX.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/miext/shadow/shrotpackYX.h 2006-03-11 16:39:08.000000000 +0100
+@@ -25,9 +25,7 @@
+ #include <X11/X.h>
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+-#include "font.h"
+ #include "dixfontstr.h"
+-#include "fontstruct.h"
+ #include "mi.h"
+ #include "regionstr.h"
+ #include "globals.h"
+--- xserver.orig/os/xstrans.c 2006-03-11 16:27:42.000000000 +0100
++++ xserver/os/xstrans.c 2006-03-11 16:39:31.000000000 +0100
+@@ -27,4 +27,4 @@
+
+ #include "config.h"
+
+-#include <transport.c>
++#include <X11/Xtrans/transport.c>
+--- xserver.orig/os/xstrans.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/os/xstrans.h 2006-03-11 16:39:37.000000000 +0100
+@@ -25,4 +25,4 @@
+ #define XSERV_t
+ #define TRANS_SERVER
+
+-#include <Xtrans.h>
++#include <X11/Xtrans/Xtrans.h>
+--- xserver.orig/Xext/shmint.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/Xext/shmint.h 2006-03-11 16:29:24.000000000 +0100
+@@ -32,27 +32,6 @@
+ #include "pixmap.h"
+ #include "gc.h"
+
+-typedef struct _ShmFuncs {
+- PixmapPtr (* CreatePixmap)(ScreenPtr pScreen,
+- int width,
+- int height,
+- int depth,
+- char *addr);
+- void (* PutImage)(DrawablePtr dst,
+- GCPtr pGC,
+- int depth,
+- unsigned int format,
+- int w,
+- int h,
+- int sx,
+- int sy,
+- int sw,
+- int sh,
+- int dx,
+- int dy,
+- char *data);
+-} ShmFuncs, *ShmFuncsPtr;
+-
+ void
+ ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
+
+--- xserver.orig/Xext/syncint.h 2006-03-11 16:27:42.000000000 +0100
++++ xserver/Xext/syncint.h 2006-03-11 16:30:16.000000000 +0100
+@@ -48,7 +48,7 @@
+ PERFORMANCE OF THIS SOFTWARE.
+
+ ******************************************************************/
+-/* $Id: syncint.h,v 3.1 2003-11-02 19:56:10 keithp Exp $ */
++/* $Id: syncint.h,v 3.2 2005-04-20 18:42:31 clee Exp $ */
+
+ #ifndef _SYNCINT_H_
+ #define _SYNCINT_H_
+@@ -57,26 +57,10 @@
+
+ #define CARD64 XSyncValue /* XXX temporary! need real 64 bit values for Alpha */
+
+-typedef struct _SyncCounter {
+- ClientPtr client; /* Owning client. 0 for system counters */
+- XSyncCounter id; /* resource ID */
+- CARD64 value; /* counter value */
+- struct _SyncTriggerList *pTriglist; /* list of triggers */
+- Bool beingDestroyed; /* in process of going away */
+- struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */
+-} SyncCounter;
+-
+ /*
+ * The System Counter interface
+ */
+
+-typedef enum {
+- XSyncCounterNeverChanges,
+- XSyncCounterNeverIncreases,
+- XSyncCounterNeverDecreases,
+- XSyncCounterUnrestricted
+-} SyncCounterType;
+-
+ typedef void
+ (*SyncQueryValueProcPtr) (pointer pCounter,
+ CARD64 *freshvalue);
+@@ -86,16 +70,6 @@
+ CARD64 *lessthan,
+ CARD64 *greaterthan);
+
+-typedef struct _SysCounterInfo {
+- char *name;
+- CARD64 resolution;
+- CARD64 bracket_greater;
+- CARD64 bracket_less;
+- SyncCounterType counterType; /* how can this counter change */
+- SyncQueryValueProcPtr QueryValue;
+- SyncBracketValuesProcPtr BracketValues;
+-} SysCounterInfo;
+-
+ struct _SyncTrigger;
+
+ typedef Bool
+@@ -108,55 +82,6 @@
+ typedef void
+ (*SyncCounterDestroyedProcPtr) (struct _SyncTrigger *pTrigger);
+
+-typedef struct _SyncTrigger {
+- SyncCounter *pCounter;
+- CARD64 wait_value; /* wait value */
+- unsigned int value_type; /* Absolute or Relative */
+- unsigned int test_type; /* transition or Comparision type */
+- CARD64 test_value; /* trigger event threshold value */
+- SyncCheckTriggerProcPtr CheckTrigger;
+- SyncTriggerFiredProcPtr TriggerFired;
+- SyncCounterDestroyedProcPtr CounterDestroyed;
+-} SyncTrigger;
+-
+-typedef struct _SyncTriggerList {
+- SyncTrigger *pTrigger;
+- struct _SyncTriggerList *next;
+-} SyncTriggerList;
+-
+-typedef struct _SyncAlarmClientList {
+- ClientPtr client;
+- XID delete_id;
+- struct _SyncAlarmClientList *next;
+-} SyncAlarmClientList;
+-
+-typedef struct _SyncAlarm {
+- SyncTrigger trigger;
+- ClientPtr client;
+- XSyncAlarm alarm_id;
+- CARD64 delta;
+- int events;
+- int state;
+- SyncAlarmClientList *pEventClients;
+-} SyncAlarm;
+-
+-typedef struct {
+- ClientPtr client;
+- CARD32 delete_id;
+- int num_waitconditions;
+-} SyncAwaitHeader;
+-
+-typedef struct {
+- SyncTrigger trigger;
+- CARD64 event_threshold;
+- SyncAwaitHeader *pHeader;
+-} SyncAwait;
+-
+-typedef union {
+- SyncAwaitHeader header;
+- SyncAwait await;
+-} SyncAwaitUnion;
+-
+ pointer
+ SyncCreateSystemCounter(char *name,
+ CARD64 inital_value,
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/devfs.patch b/meta/packages/xorg-xserver/xserver-kdrive/devfs.patch
new file mode 100644
index 0000000000..a6238126c0
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/devfs.patch
@@ -0,0 +1,47 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xserver/hw/kdrive/linux/linux.c~devfs
++++ xserver/hw/kdrive/linux/linux.c
+@@ -82,10 +82,10 @@
+ vtno = kdVirtualTerminal;
+ else
+ {
+- if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0)
++ if ((fd = open("/dev/vc/0",O_WRONLY,0)) < 0)
+ {
+ FatalError(
+- "LinuxInit: Cannot open /dev/tty0 (%s)\n",
++ "LinuxInit: Cannot open /dev/tty/0 (%s)\n",
+ strerror(errno));
+ }
+ if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) ||
+@@ -96,7 +96,7 @@
+ }
+ close(fd);
+
+- sprintf(vtname,"/dev/tty%d",vtno); /* /dev/tty1-64 */
++ sprintf(vtname,"/dev/vc/%d",vtno); /* /dev/tty1-64 */
+
+ if ((LinuxConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0)
+ {
+@@ -113,7 +113,7 @@
+ *
+ * Why is this needed?
+ */
+- LinuxCheckChown ("/dev/tty0");
++ LinuxCheckChown ("/dev/vc/0");
+ /*
+ * Linux doesn't switch to an active vt after the last close of a vt,
+ * so we do this ourselves by remembering which is active now.
+@@ -453,7 +453,7 @@
+ activeVT = -1;
+ }
+ close(LinuxConsoleFd); /* make the vt-manager happy */
+- fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);
++ fd = open ("/dev/vc/0", O_RDWR|O_NDELAY, 0);
+ if (fd >= 0)
+ {
+ memset (&vts, '\0', sizeof (vts)); /* valgrind */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/disable-apm.patch b/meta/packages/xorg-xserver/xserver-kdrive/disable-apm.patch
new file mode 100644
index 0000000000..bd8842721b
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/disable-apm.patch
@@ -0,0 +1,20 @@
+--- xserver/hw/kdrive/linux/linux.c.orig 2005-04-23 15:56:13.988849232 +0000
++++ xserver/hw/kdrive/linux/linux.c 2005-04-23 15:57:05.001094192 +0000
+@@ -342,7 +342,7 @@
+ /*
+ * Open the APM driver
+ */
+- LinuxApmFd = open ("/dev/apm_bios", 2);
++ /*LinuxApmFd = open ("/dev/apm_bios", 2);
+ if (LinuxApmFd < 0 && errno == ENOENT)
+ LinuxApmFd = open ("/dev/misc/apm_bios", 2);
+ if (LinuxApmFd >= 0)
+@@ -352,7 +352,7 @@
+ RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
+ AddEnabledDevice (LinuxApmFd);
+ }
+-
++ */
+ /*
+ * now get the VT
+ */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch b/meta/packages/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch
new file mode 100644
index 0000000000..9c43e52ead
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch
@@ -0,0 +1,37 @@
+--- git/configure.ac.orig 2006-05-22 22:40:00.000000000 +0200
++++ git/configure.ac 2006-06-10 15:10:14.000000000 +0200
+@@ -505,7 +505,11 @@
+ XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
+
+ dnl Core modules for most extensions, et al.
++if test "$KDRIVE" = yes; then
++REQUIRED_MODULES="randrproto renderproto [fixesproto >= 4.0] damageproto xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto"
++else
+ REQUIRED_MODULES="randrproto renderproto [fixesproto >= 4.0] damageproto xcmiscproto xextproto xproto xtrans xf86miscproto xf86vidmodeproto xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto xf86dgaproto"
++fi
+ REQUIRED_LIBS="xfont xau fontenc"
+
+ AM_CONDITIONAL(XV, [test "x$XV" = xyes])
+@@ -1514,7 +1526,9 @@
+ AC_SUBST(XKB_COMPILED_DIR)
+
+ dnl and the rest of these are generic, so they're in config.h
++if test ! x"$KDRIVE" = xyes; then
+ AC_DEFINE(XFreeXDGA, 1, [Build XDGA support])
++fi
+ AC_DEFINE(XResExtension, 1, [Build XRes extension])
+
+ dnl CYGWIN does not define fd_set if _POSIX_SOURCE is defined
+@@ -1534,10 +1548,12 @@
+
+ AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix])
+
++if test ! "x$KDRIVE" = xyes ; then
+ dnl xorgconfig CLI configuration utility
+ PKG_CHECK_MODULES([XORGCONFIG_DEP], [xkbfile x11])
+ AC_SUBST(XORGCONFIG_DEP_CFLAGS)
+ AC_SUBST(XORGCONFIG_DEP_LIBS)
++fi
+
+ dnl xorgcfg GUI configuration utility
+ AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([--enable-xorgcfg],
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/enable-builtin-fonts.patch b/meta/packages/xorg-xserver/xserver-kdrive/enable-builtin-fonts.patch
new file mode 100644
index 0000000000..13a6c2c954
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/enable-builtin-fonts.patch
@@ -0,0 +1,12 @@
+--- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig 2006-06-08 14:49:12.158684250 +0200
++++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c 2006-06-08 14:49:52.493205000 +0200
+@@ -52,8 +52,8 @@
+ /* $Xorg: dixfonts.c,v 1.4 2000/08/17 19:48:18 cpqbld Exp $ */
+
+ #define NEED_REPLIES
+ #ifdef HAVE_DIX_CONFIG_H
+-#include <dix-config.h>
++#include <kdrive-config.h>
+ #endif
+
+ #include <X11/X.h>
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch b/meta/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch
new file mode 100644
index 0000000000..e488657b74
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch
@@ -0,0 +1,23 @@
+--- git/configure.ac.orig 2006-05-22 22:40:00.000000000 +0200
++++ git/configure.ac 2006-06-10 15:10:14.000000000 +0200
+@@ -1438,6 +1446,10 @@
+ fi
+
+- # tslib...
++ AC_CHECK_HEADERS([tslib.h])
++ if test "$ac_cv_header_tslib_h" = yes; then
++ AC_DEFINE(TSLIB, 1, [Build kdrive with tslib support])
++ AC_DEFINE(TOUCHSCREEN, 1, [Build kdrive with touchscreen support])
++ fi
+
+ # damage shadow extension glx (NOTYET) fb mi
+ KDRIVE_INC='-I$(top_srcdir)/hw/kdrive/src'
+@@ -1467,7 +1479,7 @@
+ AC_SUBST(KDRIVE_CFLAGS)
+ AC_SUBST(KDRIVE_PURE_LIBS)
+ AC_SUBST(KDRIVE_LIBS)
+-AM_CONDITIONAL(TSLIB, false)
++AM_CONDITIONAL(TSLIB, [test x"$ac_cv_header_tslib_h" = xyes])
+ AM_CONDITIONAL(H3600_TS, false)
+ AM_CONDITIONAL(KDRIVEVESA, [test x"$ac_cv_header_sys_vm86_h" = xyes])
+ AM_CONDITIONAL(KDRIVEFBDEV, [test x"$ac_cv_header_linux_fb_h" = xyes])
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/epson.patch b/meta/packages/xorg-xserver/xserver-kdrive/epson.patch
new file mode 100644
index 0000000000..07009bdc40
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/epson.patch
@@ -0,0 +1,11 @@
+--- xserver.orig/hw/kdrive/epson/epson13806stub.c 2004-10-20 10:20:51.000000000 +0200
++++ xserver/hw/kdrive/epson/epson13806stub.c 2005-03-17 14:38:22.000000000 +0100
+@@ -55,7 +55,7 @@
+ {
+ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
+ #ifdef TOUCHSCREEN
+- KdInitTouchScreen (&TsFuncs);
++ KdAddMouseDriver (&TsFuncs);
+ #endif
+ }
+
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch b/meta/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch
new file mode 100644
index 0000000000..eaf7ddec36
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch
@@ -0,0 +1,241 @@
+Index: xserver/miext/shadow/shrotate.c
+===================================================================
+RCS file: /scratch/openbsd/cvs/XF4/xc/programs/Xserver/miext/shadow/shrotate.c,v
+retrieving revision 1.2
+diff -u -r1.2 shrotate.c
+--- xserver/miext/shadow/shrotate.c 3 Nov 2004 00:09:54 -0000 1.2
++++ xserver/miext/shadow/shrotate.c 20 Sep 2005 23:07:58 -0000
+@@ -45,6 +45,106 @@
+ #define TOP_TO_BOTTOM 2
+ #define BOTTOM_TO_TOP -2
+
++
++static void
++shadowUpdateRotatePackedSubRectangle(shadowBufPtr pBuf,
++ FbBits *shaLine, int shaFirstShift,
++ int shaStepOverX, int shaStepOverY,
++ int shaStepDownX, int shaStepDownY,
++ int shaBpp, FbBits shaMask,
++ ScreenPtr pScreen,
++ int scr_x1, int scr_y,
++ int scr_h, int scr_w,
++ int pixelsPerBits)
++{
++ FbBits *sha;
++ int shaShift;
++ int scr_x;
++ int w;
++
++ /*
++ * Copy the bits, always write across the physical frame buffer
++ * to take advantage of write combining.
++ */
++ while (scr_h--)
++ {
++ int p;
++ FbBits bits;
++ FbBits *win;
++ int i;
++ CARD32 winSize;
++
++ sha = shaLine;
++ shaShift = shaFirstShift;
++ w = scr_w;
++ scr_x = scr_x1 * shaBpp >> FB_SHIFT;
++
++ while (w)
++ {
++ /*
++ * Map some of this line
++ */
++ win = (FbBits *) (*pBuf->window) (pScreen,
++ scr_y,
++ scr_x << 2,
++ SHADOW_WINDOW_WRITE,
++ &winSize,
++ pBuf->closure);
++ i = (winSize >> 2);
++ if (i > w)
++ i = w;
++ w -= i;
++ scr_x += i;
++ /*
++ * Copy the portion of the line mapped
++ */
++ while (i--)
++ {
++ bits = 0;
++ p = pixelsPerBits;
++ /*
++ * Build one word of output from multiple inputs
++ */
++ while (p--)
++ {
++ bits = FbScrLeft(bits, shaBpp);
++ bits |= FbScrRight (*sha, shaShift) & shaMask;
++
++ shaShift -= shaStepOverX;
++ if (shaShift >= FB_UNIT)
++ {
++ shaShift -= FB_UNIT;
++ sha--;
++ }
++ else if (shaShift < 0)
++ {
++ shaShift += FB_UNIT;
++ sha++;
++ }
++ sha += shaStepOverY;
++ }
++ *win++ = bits;
++ }
++ }
++ scr_y++;
++ shaFirstShift -= shaStepDownX;
++ if (shaFirstShift >= FB_UNIT)
++ {
++ shaFirstShift -= FB_UNIT;
++ shaLine--;
++ }
++ else if (shaFirstShift < 0)
++ {
++ shaFirstShift += FB_UNIT;
++ shaLine++;
++ }
++ shaLine += shaStepDownY;
++ }
++}
++
++#define BLOCKSIZE_HEIGHT 32
++#define BLOCKSIZE_WIDTH 32
++
+ void
+ shadowUpdateRotatePacked (ScreenPtr pScreen,
+ shadowBufPtr pBuf)
+@@ -61,7 +161,6 @@
+ int sha_x1 = 0, sha_y1 = 0;
+ int scr_x1 = 0, scr_x2 = 0, scr_y1 = 0, scr_y2 = 0, scr_w, scr_h;
+ int scr_x, scr_y;
+- int w;
+ int pixelsPerBits;
+ int pixelsMask;
+ FbStride shaStepOverY = 0, shaStepDownY = 0;
+@@ -221,86 +320,46 @@
+ ((sha_x1 * shaBpp) >> FB_SHIFT));
+
+ /*
+- * Copy the bits, always write across the physical frame buffer
+- * to take advantage of write combining.
++ * Copy in blocks of size BLOCKSIZE_WIDTH x BLOCKSIZE_HEIGHT
++ * to reduce the number of cache misses when rotating 90 or
++ * 270 degrees.
+ */
+- while (scr_h--)
++ for (scr_y = scr_y1; scr_y < scr_y2; scr_y += BLOCKSIZE_HEIGHT)
+ {
+- int p;
+- FbBits bits;
+- FbBits *win;
+- int i;
+- CARD32 winSize;
+-
+ sha = shaLine;
+ shaShift = shaFirstShift;
+- w = scr_w;
+- scr_x = scr_x1 * shaBpp >> FB_SHIFT;
+
+- while (w)
++ for (scr_x = scr_x1; scr_x < scr_x2; scr_x += BLOCKSIZE_WIDTH)
+ {
+- /*
+- * Map some of this line
+- */
+- win = (FbBits *) (*pBuf->window) (pScreen,
+- scr_y,
+- scr_x << 2,
+- SHADOW_WINDOW_WRITE,
+- &winSize,
+- pBuf->closure);
+- i = (winSize >> 2);
+- if (i > w)
+- i = w;
+- w -= i;
+- scr_x += i;
+- /*
+- * Copy the portion of the line mapped
+- */
+- while (i--)
+- {
+- bits = 0;
+- p = pixelsPerBits;
+- /*
+- * Build one word of output from multiple inputs
+- *
+- * Note that for 90/270 rotations, this will walk
+- * down the shadow hitting each scanline once.
+- * This is probably not very efficient.
+- */
+- while (p--)
+- {
+- bits = FbScrLeft(bits, shaBpp);
+- bits |= FbScrRight (*sha, shaShift) & shaMask;
++ int h = BLOCKSIZE_HEIGHT;
++ int w = BLOCKSIZE_WIDTH;
+
+- shaShift -= shaStepOverX;
+- if (shaShift >= FB_UNIT)
+- {
+- shaShift -= FB_UNIT;
+- sha--;
+- }
+- else if (shaShift < 0)
+- {
+- shaShift += FB_UNIT;
+- sha++;
+- }
+- sha += shaStepOverY;
+- }
+- *win++ = bits;
+- }
+- }
+- scr_y++;
+- shaFirstShift -= shaStepDownX;
+- if (shaFirstShift >= FB_UNIT)
+- {
+- shaFirstShift -= FB_UNIT;
+- shaLine--;
+- }
+- else if (shaFirstShift < 0)
+- {
+- shaFirstShift += FB_UNIT;
+- shaLine++;
++ if (scr_y + h > scr_y2)
++ h = scr_y2 - scr_y;
++ if (scr_x + w > scr_x2)
++ w = scr_x2 - scr_x;
++ w = (w * shaBpp) >> FB_SHIFT;
++
++ shadowUpdateRotatePackedSubRectangle
++ (pBuf,
++ sha, shaShift,
++ shaStepOverX, shaStepOverY,
++ shaStepDownX, shaStepDownY,
++ shaBpp, shaMask,
++ pScreen,
++ scr_x, scr_y,
++ h, w,
++ pixelsPerBits);
++
++ shaShift -= BLOCKSIZE_WIDTH * shaStepOverX;
++ sha += BLOCKSIZE_WIDTH * shaStepOverY;
++ sha -= (shaShift >> FB_SHIFT);
++ shaShift &= FB_MASK;
+ }
+- shaLine += shaStepDownY;
++ shaFirstShift -= BLOCKSIZE_HEIGHT * shaStepDownX;
++ shaLine += BLOCKSIZE_HEIGHT * shaStepDownY;
++ shaLine -= (shaFirstShift >> FB_SHIFT);
++ shaFirstShift &= FB_MASK;
+ }
+ }
+ }
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/fbdev-not-fix.patch b/meta/packages/xorg-xserver/xserver-kdrive/fbdev-not-fix.patch
new file mode 100644
index 0000000000..f87e7cc2cd
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/fbdev-not-fix.patch
@@ -0,0 +1,14 @@
+--- xserver/hw/kdrive/fbdev/fbdev.c~ 2004-09-15 00:08:10.000000000 +0100
++++ xserver/hw/kdrive/fbdev/fbdev.c 2004-11-13 17:47:02.000000000 +0000
+@@ -198,6 +198,11 @@
+ return FALSE;
+ }
+
++ /* Re-get the "fixed" parameters since they might have changed */
++ k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
++ if (k < 0)
++ perror ("FBIOGET_FSCREENINFO");
++
+ /* Now get the new screeninfo */
+ ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
+ depth = priv->var.bits_per_pixel;
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/kdrive-evdev.patch b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-evdev.patch
new file mode 100644
index 0000000000..2dc22bf50e
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-evdev.patch
@@ -0,0 +1,515 @@
+# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
+# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
+diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
+--- xserver.original/hw/kdrive/linux/evdev.c 2005-12-16 10:36:05.000000000 -0200
++++ xserver/hw/kdrive/linux/evdev.c 2005-12-16 10:40:51.077410192 -0200
+@@ -31,9 +31,11 @@
+ #include <X11/X.h>
+ #include <X11/Xproto.h>
+ #include <X11/Xpoll.h>
++#include <X11/keysym.h>
+ #include "inputstr.h"
+ #include "scrnintstr.h"
+ #include "kdrive.h"
++#include "kkeymap.h"
+
+ #define NUM_EVENTS 128
+ #define ABS_UNSET -65535
+@@ -105,9 +107,10 @@
+ {
+ KdMouseInfo *mi = closure;
+ Kevdev *ke = mi->driver;
+- int i;
++ int i, j;
+ struct input_event events[NUM_EVENTS];
+ int n;
++ int flags;
+
+ n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
+ if (n <= 0)
+@@ -115,22 +118,64 @@
+ n /= sizeof (struct input_event);
+ for (i = 0; i < n; i++)
+ {
++ flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
+ switch (events[i].type) {
+ case EV_SYN:
+ break;
+ case EV_KEY:
+- EvdevMotion (mi);
+- ASSIGNBIT(ke->key,events[i].code, events[i].value);
+- if (events[i].code < 0x100)
+- ErrorF ("key %d %d\n", events[i].code, events[i].value);
+- else
+- ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
++ if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
++ switch (events[i].code) {
++ case BTN_LEFT:
++ if (events[i].value == 1)
++ flags |= KD_BUTTON_1;
++ else
++ flags &= ~KD_BUTTON_1;
++ break;
++ case BTN_MIDDLE:
++ if (events[i].value == 1)
++ flags |= KD_BUTTON_2;
++ else
++ flags &= ~KD_BUTTON_2;
++ break;
++ case BTN_RIGHT:
++ if (events[i].value == 1)
++ flags |= KD_BUTTON_3;
++ else
++ flags &= ~KD_BUTTON_3;
++ break;
++ default:
++ /* Unknow button */
++ break;
++ }
++ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
++ }
+ break;
+ case EV_REL:
+- ke->rel[events[i].code] += events[i].value;
++ if (events[i].code == REL_X) {
++ KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
++ }
++ else if (events[i].code == REL_Y) {
++ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
++ }
++ else if (events[i].code == REL_WHEEL) {
++ for (j = 0; j < abs (events[i].value); j++) {
++ if (events[i].value > 0)
++ flags |= KD_BUTTON_4;
++ else
++ flags |= KD_BUTTON_5;
++
++ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
++
++ if (events[i].value > 0)
++ flags &= ~KD_BUTTON_4;
++ else
++ flags &= ~KD_BUTTON_5;
++
++ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
++ } /* events[i].code == REL_WHEEL */
++ }
+ break;
+ case EV_ABS:
+- ke->abs[events[i].code] = events[i].value;
+ break;
+ }
+ }
+@@ -173,6 +218,12 @@
+ fd = open (kdefaultEvdev[i], 2);
+ if (fd >= 0)
+ {
++ if (ioctl (fd, EVIOCGRAB, 1) < 0)
++ {
++ close (fd);
++ continue;
++ }
++
+ mi->name = KdSaveString (kdefaultEvdev[i]);
+ break;
+ }
+@@ -287,7 +338,319 @@
+ EvdevFini,
+ };
+
+-#if 0
++/* Keyboard */
++
++int kbd_fd = -1;
++int EvdevInputType = 0;
++
++KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
++/* These are directly mapped from DOS scanset 0 */
++/* 1 8 */ XK_Escape, NoSymbol,
++/* 2 9 */ XK_1, XK_exclam,
++/* 3 10 */ XK_2, XK_at,
++/* 4 11 */ XK_3, XK_numbersign,
++/* 5 12 */ XK_4, XK_dollar,
++/* 6 13 */ XK_5, XK_percent,
++/* 7 14 */ XK_6, XK_asciicircum,
++/* 8 15 */ XK_7, XK_ampersand,
++/* 9 16 */ XK_8, XK_asterisk,
++/* 10 17 */ XK_9, XK_parenleft,
++/* 11 18 */ XK_0, XK_parenright,
++/* 12 19 */ XK_minus, XK_underscore,
++/* 13 20 */ XK_equal, XK_plus,
++/* 14 21 */ XK_BackSpace, NoSymbol,
++/* 15 22 */ XK_Tab, NoSymbol,
++/* 16 23 */ XK_Q, NoSymbol,
++/* 17 24 */ XK_W, NoSymbol,
++/* 18 25 */ XK_E, NoSymbol,
++/* 19 26 */ XK_R, NoSymbol,
++/* 20 27 */ XK_T, NoSymbol,
++/* 21 28 */ XK_Y, NoSymbol,
++/* 22 29 */ XK_U, NoSymbol,
++/* 23 30 */ XK_I, NoSymbol,
++/* 24 31 */ XK_O, NoSymbol,
++/* 25 32 */ XK_P, NoSymbol,
++/* 26 33 */ XK_bracketleft, XK_braceleft,
++/* 27 34 */ XK_bracketright, XK_braceright,
++/* 28 35 */ XK_Return, NoSymbol,
++/* 29 36 */ XK_Control_L, NoSymbol,
++/* 30 37 */ XK_A, NoSymbol,
++/* 31 38 */ XK_S, NoSymbol,
++/* 32 39 */ XK_D, NoSymbol,
++/* 33 40 */ XK_F, NoSymbol,
++/* 34 41 */ XK_G, NoSymbol,
++/* 35 42 */ XK_H, NoSymbol,
++/* 36 43 */ XK_J, NoSymbol,
++/* 37 44 */ XK_K, NoSymbol,
++/* 38 45 */ XK_L, NoSymbol,
++/* 39 46 */ XK_semicolon, XK_colon,
++/* 40 47 */ XK_apostrophe, XK_quotedbl,
++/* 41 48 */ XK_grave, XK_asciitilde,
++/* 42 49 */ XK_Shift_L, NoSymbol,
++/* 43 50 */ XK_backslash, XK_bar,
++/* 44 51 */ XK_Z, NoSymbol,
++/* 45 52 */ XK_X, NoSymbol,
++/* 46 53 */ XK_C, NoSymbol,
++/* 47 54 */ XK_V, NoSymbol,
++/* 48 55 */ XK_B, NoSymbol,
++/* 49 56 */ XK_N, NoSymbol,
++/* 50 57 */ XK_M, NoSymbol,
++/* 51 58 */ XK_comma, XK_less,
++/* 52 59 */ XK_period, XK_greater,
++/* 53 60 */ XK_slash, XK_question,
++/* 54 61 */ XK_Shift_R, NoSymbol,
++/* 55 62 */ XK_KP_Multiply, NoSymbol,
++/* 56 63 */ XK_Alt_L, XK_Meta_L,
++/* 57 64 */ XK_space, NoSymbol,
++/* 58 65 */ XK_Caps_Lock, NoSymbol,
++/* 59 66 */ XK_F1, NoSymbol,
++/* 60 67 */ XK_F2, NoSymbol,
++/* 61 68 */ XK_F3, NoSymbol,
++/* 62 69 */ XK_F4, NoSymbol,
++/* 63 70 */ XK_F5, NoSymbol,
++/* 64 71 */ XK_F6, NoSymbol,
++/* 65 72 */ XK_F7, NoSymbol,
++/* 66 73 */ XK_F8, NoSymbol,
++/* 67 74 */ XK_F9, NoSymbol,
++/* 68 75 */ XK_F10, NoSymbol,
++/* 69 76 */ XK_Break, XK_Pause,
++/* 70 77 */ XK_Scroll_Lock, NoSymbol,
++/* 71 78 */ XK_KP_Home, XK_KP_7,
++/* 72 79 */ XK_KP_Up, XK_KP_8,
++/* 73 80 */ XK_KP_Page_Up, XK_KP_9,
++/* 74 81 */ XK_KP_Subtract, NoSymbol,
++/* 75 82 */ XK_KP_Left, XK_KP_4,
++/* 76 83 */ XK_KP_5, NoSymbol,
++/* 77 84 */ XK_KP_Right, XK_KP_6,
++/* 78 85 */ XK_KP_Add, NoSymbol,
++/* 79 86 */ XK_KP_End, XK_KP_1,
++/* 80 87 */ XK_KP_Down, XK_KP_2,
++/* 81 88 */ XK_KP_Page_Down, XK_KP_3,
++/* 82 89 */ XK_KP_Insert, XK_KP_0,
++/* 83 90 */ XK_KP_Delete, XK_KP_Decimal,
++/* 84 91 */ NoSymbol, NoSymbol,
++/* 85 92 */ NoSymbol, NoSymbol,
++/* 86 93 */ NoSymbol, NoSymbol,
++/* 87 94 */ XK_F11, NoSymbol,
++/* 88 95 */ XK_F12, NoSymbol,
++
++/* These are remapped from the extended set (using ExtendMap) */
++
++/* 89 96 */ XK_Control_R, NoSymbol,
++/* 90 97 */ XK_KP_Enter, NoSymbol,
++/* 91 98 */ XK_KP_Divide, NoSymbol,
++/* 92 99 */ XK_Sys_Req, XK_Print,
++/* 93 100 */ XK_Alt_R, XK_Meta_R,
++/* 94 101 */ XK_Num_Lock, NoSymbol,
++/* 95 102 */ XK_Home, NoSymbol,
++/* 96 103 */ XK_Up, NoSymbol,
++/* 97 104 */ XK_Page_Up, NoSymbol,
++/* 98 105 */ XK_Left, NoSymbol,
++/* 99 106 */ XK_Right, NoSymbol,
++/* 100 107 */ XK_End, NoSymbol,
++/* 101 108 */ XK_Down, NoSymbol,
++/* 102 109 */ XK_Page_Down, NoSymbol,
++/* 103 110 */ XK_Insert, NoSymbol,
++/* 104 111 */ XK_Delete, NoSymbol,
++/* 105 112 */ XK_Super_L, NoSymbol,
++/* 106 113 */ XK_Super_R, NoSymbol,
++/* 107 114 */ XK_Menu, NoSymbol,
++/* 108 115 */ NoSymbol, NoSymbol,
++/* 109 116 */ NoSymbol, NoSymbol,
++/* 110 117 */ NoSymbol, NoSymbol,
++/* 111 118 */ NoSymbol, NoSymbol,
++/* 112 119 */ NoSymbol, NoSymbol,
++
++/* 113 120 */ NoSymbol, NoSymbol,
++/* 114 121 */ NoSymbol, NoSymbol,
++/* 115 122 */ NoSymbol, NoSymbol,
++/* 116 123 */ NoSymbol, NoSymbol,
++/* 117 124 */ NoSymbol, NoSymbol,
++/* 118 125 */ NoSymbol, NoSymbol,
++/* 119 126 */ NoSymbol, NoSymbol,
++/* 120 127 */ NoSymbol, NoSymbol,
++/* 121 128 */ NoSymbol, NoSymbol,
++/* 122 129 */ NoSymbol, NoSymbol,
++/* 123 130 */ NoSymbol, NoSymbol,
++/* 124 131 */ NoSymbol, NoSymbol,
++/* 125 132 */ NoSymbol, NoSymbol,
++/* 126 133 */ NoSymbol, NoSymbol,
++/* 127 134 */ NoSymbol, NoSymbol,
++/* 128 135 */ NoSymbol, NoSymbol,
++/* 129 136 */ NoSymbol, NoSymbol,
++/* 130 137 */ NoSymbol, NoSymbol,
++/* 131 138 */ NoSymbol, NoSymbol,
++/* 132 139 */ NoSymbol, NoSymbol,
++/* 133 140 */ NoSymbol, NoSymbol,
++/* 134 141 */ NoSymbol, NoSymbol,
++/* 135 142 */ NoSymbol, NoSymbol,
++/* 136 143 */ NoSymbol, NoSymbol,
++/* 137 144 */ NoSymbol, NoSymbol,
++/* 138 145 */ NoSymbol, NoSymbol,
++/* 139 146 */ NoSymbol, NoSymbol,
++/* 140 147 */ NoSymbol, NoSymbol,
++/* 141 148 */ NoSymbol, NoSymbol,
++/* 142 149 */ NoSymbol, NoSymbol,
++/* 143 150 */ NoSymbol, NoSymbol,
++/* 144 151 */ NoSymbol, NoSymbol,
++/* 145 152 */ NoSymbol, NoSymbol,
++/* 146 153 */ NoSymbol, NoSymbol,
++/* 147 154 */ NoSymbol, NoSymbol,
++/* 148 155 */ NoSymbol, NoSymbol,
++/* 149 156 */ NoSymbol, NoSymbol,
++/* 150 157 */ NoSymbol, NoSymbol,
++/* 151 158 */ NoSymbol, NoSymbol,
++/* 152 159 */ NoSymbol, NoSymbol,
++/* 153 160 */ NoSymbol, NoSymbol,
++/* 154 161 */ NoSymbol, NoSymbol,
++/* 155 162 */ NoSymbol, NoSymbol,
++/* 156 163 */ NoSymbol, NoSymbol,
++/* 157 164 */ NoSymbol, NoSymbol,
++/* 158 165 */ NoSymbol, NoSymbol,
++/* 159 166 */ NoSymbol, NoSymbol,
++/* 160 167 */ NoSymbol, NoSymbol,
++/* 161 168 */ NoSymbol, NoSymbol,
++/* 162 169 */ NoSymbol, NoSymbol,
++/* 163 170 */ NoSymbol, NoSymbol,
++/* 164 171 */ NoSymbol, NoSymbol,
++/* 165 172 */ NoSymbol, NoSymbol,
++/* 166 173 */ NoSymbol, NoSymbol,
++/* 167 174 */ NoSymbol, NoSymbol,
++/* 168 175 */ NoSymbol, NoSymbol,
++/* 169 176 */ NoSymbol, NoSymbol,
++/* 170 177 */ NoSymbol, NoSymbol,
++/* 171 178 */ NoSymbol, NoSymbol,
++/* 172 179 */ NoSymbol, NoSymbol,
++/* 173 180 */ NoSymbol, NoSymbol,
++/* 174 181 */ NoSymbol, NoSymbol,
++/* 175 182 */ NoSymbol, NoSymbol,
++/* 176 183 */ NoSymbol, NoSymbol,
++/* 177 184 */ NoSymbol, NoSymbol,
++/* 178 185 */ NoSymbol, NoSymbol,
++/* 179 186 */ NoSymbol, NoSymbol,
++/* 180 187 */ NoSymbol, NoSymbol,
++/* 181 188 */ NoSymbol, NoSymbol,
++/* 182 189 */ NoSymbol, NoSymbol,
++/* 183 190 */ NoSymbol, NoSymbol,
++/* 184 191 */ NoSymbol, NoSymbol,
++/* 185 192 */ NoSymbol, NoSymbol,
++/* 186 193 */ NoSymbol, NoSymbol,
++/* 187 194 */ NoSymbol, NoSymbol,
++/* 188 195 */ NoSymbol, NoSymbol,
++/* 189 196 */ NoSymbol, NoSymbol,
++/* 190 197 */ NoSymbol, NoSymbol,
++/* 191 198 */ NoSymbol, NoSymbol,
++/* 192 199 */ NoSymbol, NoSymbol,
++/* 193 200 */ NoSymbol, NoSymbol,
++/* 194 201 */ NoSymbol, NoSymbol,
++};
++
++static void
++EvdevKbdRead (int fd, void *closure)
++{
++ int i, n;
++ struct input_event events[NUM_EVENTS];
++
++ n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
++ if (n <= 0)
++ return;
++
++ n /= sizeof (struct input_event);
++
++ for (i = 0; i < n; i++)
++ {
++ if (events[i].type == EV_KEY)
++ KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
++ }
++}
++
++static void
++EvdevKbdLoad (void)
++{
++ kdMinScanCode = 0;
++ kdMaxScanCode = 193;
++ kdKeymapWidth = 2;
++ memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
++}
++
++static int
++EvdevKbdInit (void)
++{
++ int fd, i;
++
++ if (!EvdevInputType)
++ EvdevInputType = KdAllocInputType ();
++
++ if (!kdKeyboard)
++ {
++ for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
++ {
++ fd = open (kdefaultEvdev[i], 2);
++ if (fd >= 0)
++ {
++ kdKeyboard = KdSaveString (kdefaultEvdev[i]);
++ break;
++ }
++ }
++ }
++ else
++ {
++ fd = open (kdKeyboard, O_RDWR);
++ if (fd < 0)
++ return FALSE;
++ }
++
++ if (ioctl (fd, EVIOCGRAB, 1) < 0)
++ {
++ close (fd);
++ return FALSE;
++ }
++
++ if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
++ return FALSE;
++
++ kbd_fd = fd;
++ return TRUE;
++}
++
++static void
++EvdevKbdFini (void)
++{
++}
++
++static void
++EvdevKbdLeds (int leds)
++{
++ struct input_event event;
++
++ memset(&event, 0, sizeof(event));
++
++ event.type = EV_LED;
++ event.code = LED_CAPSL;
++ event.value = leds & (1 << 0) ? 1 : 0;
++ write(kbd_fd, (char *) &event, sizeof(event));
++
++ event.type = EV_LED;
++ event.code = LED_NUML;
++ event.value = leds & (1 << 1) ? 1 : 0;
++ write(kbd_fd, (char *) &event, sizeof(event));
++
++ event.type = EV_LED;
++ event.code = LED_SCROLLL;
++ event.value = leds & (1 << 2) ? 1 : 0;
++ write(kbd_fd, (char *) &event, sizeof(event));
++
++ event.type = EV_LED;
++ event.code = LED_COMPOSE;
++ event.value = leds & (1 << 3) ? 1 : 0;
++ write(kbd_fd, (char *) &event, sizeof(event));
++}
++
++static void
++EvdevKbdBell (int volume, int frequency, int duration)
++{
++}
++
+ KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
+ EvdevKbdLoad,
+ EvdevKbdInit,
+@@ -296,4 +659,4 @@
+ EvdevKbdFini,
+ 0,
+ };
+-#endif
++
+diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.c xserver/hw/kdrive/src/kdrive.c
+--- xserver.original/hw/kdrive/src/kdrive.c 2005-12-16 10:36:07.000000000 -0200
++++ xserver/hw/kdrive/src/kdrive.c 2005-12-16 10:37:09.000000000 -0200
+@@ -73,6 +73,7 @@
+ Bool kdEnabled;
+ int kdSubpixelOrder;
+ int kdVirtualTerminal = -1;
++char *kdKeyboard = 0;
+ Bool kdSwitchPending;
+ char *kdSwitchCmd;
+ DDXPointRec kdOrigin;
+@@ -795,6 +796,14 @@
+ UseMsg ();
+ return 2;
+ }
++ if (!strcmp (argv[i], "-keyboard"))
++ {
++ if ((i+1) < argc)
++ kdKeyboard = argv[i+1];
++ else
++ UseMsg ();
++ return 2;
++ }
+ if (!strcmp (argv[i], "-rgba"))
+ {
+ if ((i+1) < argc)
+diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.h xserver/hw/kdrive/src/kdrive.h
+--- xserver.original/hw/kdrive/src/kdrive.h 2005-12-16 10:36:07.000000000 -0200
++++ xserver/hw/kdrive/src/kdrive.h 2005-12-16 10:37:09.000000000 -0200
+@@ -416,6 +416,7 @@
+ extern Bool kdDisableZaphod;
+ extern Bool kdDontZap;
+ extern int kdVirtualTerminal;
++extern char *kdKeyboard;
+ extern char *kdSwitchCmd;
+ extern KdOsFuncs *kdOsFuncs;
+
+@@ -769,7 +770,7 @@
+ ProcessInputEvents (void);
+
+ extern KdMouseFuncs LinuxMouseFuncs;
+-extern KdMouseFuncs LinuxEvdevFuncs;
++extern KdMouseFuncs LinuxEvdevMouseFuncs;
+ extern KdMouseFuncs Ps2MouseFuncs;
+ extern KdMouseFuncs BusMouseFuncs;
+ extern KdMouseFuncs MsMouseFuncs;
+@@ -777,6 +778,7 @@
+ extern KdMouseFuncs TsFuncs;
+ #endif
+ extern KdKeyboardFuncs LinuxKeyboardFuncs;
++extern KdKeyboardFuncs LinuxEvdevKeyboardFuncs;
+ extern KdOsFuncs LinuxFuncs;
+
+ extern KdMouseFuncs VxWorksMouseFuncs;
+diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kinput.c xserver/hw/kdrive/src/kinput.c
+--- xserver.original/hw/kdrive/src/kinput.c 2005-12-16 10:36:07.000000000 -0200
++++ xserver/hw/kdrive/src/kinput.c 2005-12-16 10:37:09.000000000 -0200
+@@ -1300,6 +1300,7 @@
+ xE.u.u.type = KeyPress;
+ xE.u.u.detail = key_code;
+
++#ifndef XKB
+ switch (KEYCOL1(key_code))
+ {
+ case XK_Num_Lock:
+@@ -1313,6 +1314,7 @@
+ else
+ xE.u.u.type = KeyPress;
+ }
++#endif
+
+ /*
+ * Check pressed keys which are already down
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/kdrive-use-evdev.patch b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-use-evdev.patch
new file mode 100644
index 0000000000..d4f885ee26
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-use-evdev.patch
@@ -0,0 +1,53 @@
+--- xserver/hw/kdrive/fbdev/fbinit.c~ 2006-01-31 17:09:33.000000000 +0100
++++ xserver/hw/kdrive/fbdev/fbinit.c 2006-01-31 17:11:55.000000000 +0100
+@@ -28,6 +28,8 @@
+ #endif
+ #include <fbdev.h>
+
++extern int use_evdev;
++
+ void
+ InitCard (char *name)
+ {
+@@ -45,7 +47,10 @@
+ void
+ InitInput (int argc, char **argv)
+ {
+- KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
++ if (use_evdev)
++ KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
++ else
++ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
+ #ifdef TOUCHSCREEN
+ KdAddMouseDriver (&TsFuncs);
+ #endif
+--- xserver/hw/kdrive/src/kdrive.c.orig 2006-01-31 17:13:28.000000000 +0100
++++ xserver/hw/kdrive/src/kdrive.c 2006-01-31 17:15:28.000000000 +0100
+@@ -44,6 +44,8 @@
+ #include "dpmsproc.h"
+ #endif
+
++int use_evdev = 0;
++
+ typedef struct _kdDepths {
+ CARD8 depth;
+ CARD8 bpp;
+@@ -687,6 +689,7 @@
+ ErrorF("-videoTest Start the server, pause momentarily and exit\n");
+ ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
+ ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
++ ErrorF("-use-evdev Use Linux evdev input\n");
+ ErrorF("-switchCmd Command to execute on vt switch\n");
+ ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
+ ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
+@@ -796,6 +799,10 @@
+ UseMsg ();
+ return 2;
+ }
++ if (!strcmp (argv[i], "-use-evdev"))
++ {
++ use_evdev = 1;
++ }
+ if (!strcmp (argv[i], "-keyboard"))
+ {
+ if ((i+1) < argc)
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/kmode.patch b/meta/packages/xorg-xserver/xserver-kdrive/kmode.patch
new file mode 100644
index 0000000000..5ad3e4e277
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/kmode.patch
@@ -0,0 +1,28 @@
+--- /tmp/kmode.c 2005-06-27 14:46:19.716843288 +0200
++++ xserver/hw/kdrive/src/kmode.c 2005-06-27 14:46:30.070269328 +0200
+@@ -41,6 +41,11 @@
+ 1, 11, 14, KdSyncNegative,
+ },
+
++ { 240, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
+ /* Other VESA modes */
+ { 640, 350, 85, 31500, /* VESA */
+ 32, 96, 192, KdSyncPositive, /* 26.413 */
+@@ -80,6 +85,13 @@
+ 16, 48, 160, KdSyncNegative, /* 31.469 */
+ 10, 33, 45, KdSyncNegative, /* 59.940 */
+ },
++
++
++ { 480, 640, 60, 0, /* VESA */
++ 0, 0, 0, KdSyncNegative, /* 31.469 */
++ 0, 0, 0, KdSyncNegative, /* 59.940 */
++ },
++
+
+ /* 800x600 modes */
+ { 800, 600, 85, 56250, /* VESA */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/no-serial-probing.patch b/meta/packages/xorg-xserver/xserver-kdrive/no-serial-probing.patch
new file mode 100644
index 0000000000..35ccadaa8d
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/no-serial-probing.patch
@@ -0,0 +1,13 @@
+--- xserver/hw/kdrive/linux/mouse.c.orig 2004-05-13 14:25:51.000000000 -0700
++++ xserver/hw/kdrive/linux/mouse.c 2005-09-22 12:20:47.000000000 -0700
+@@ -927,8 +927,10 @@ char *kdefaultMouse[] = {
+ "/dev/psaux",
+ "/dev/input/mice",
+ "/dev/adbmouse",
++#ifdef BREAK_MY_SERIAL_CONSOLE
+ "/dev/ttyS0",
+ "/dev/ttyS1",
++#endif
+ };
+
+ #define NUM_DEFAULT_MOUSE (sizeof (kdefaultMouse) / sizeof (kdefaultMouse[0]))
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/onlyfb.patch b/meta/packages/xorg-xserver/xserver-kdrive/onlyfb.patch
new file mode 100644
index 0000000000..e773324981
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/onlyfb.patch
@@ -0,0 +1,21 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xserver/hw/kdrive/Makefile.am~onlyfb
++++ xserver/hw/kdrive/Makefile.am
+@@ -17,12 +17,4 @@
+ SUBDIRS = \
+ src \
+ linux \
+- $(XSDL_SUBDIRS) \
+- $(FBDEV_SUBDIRS) \
+- $(VESA_SUBDIRS) \
+- $(XEPHYR_SUBDIRS) \
+- ati \
+- fake \
+- ephyr \
+- i810 \
+- epson
++ $(FBDEV_SUBDIRS)
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch b/meta/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch
new file mode 100644
index 0000000000..d9ef51c5ba
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch
@@ -0,0 +1,54 @@
+--- git/Makefile.am.orig 2006-06-09 16:01:51.000000000 +0200
++++ git/Makefile.am 2006-06-09 16:02:59.000000000 +0200
+@@ -35,6 +35,10 @@
+ XINPUT_DIR=Xi
+ endif
+
++if XKB
++XKB_DIR=xkb
++endif
++
+ if DBE
+ DBE_DIR=dbe
+ endif
+@@ -51,7 +55,7 @@
+ randr \
+ render \
+ $(XINPUT_DIR) \
+- xkb \
++ $(XKB_DIR) \
+ $(DBE_DIR) \
+ $(MFB_DIR) \
+ $(AFB_DIR) \
+--- git/configure.ac.orig 2006-05-22 22:40:00.000000000 +0200
++++ git/configure.ac 2006-06-10 15:10:14.000000000 +0200
+@@ -418,6 +418,7 @@
+ AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
+ AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMS=$enableval], [DPMSExtension=yes])
+ AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
++AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
+
+ dnl DDXes.
+ AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
+@@ -739,12 +740,15 @@
+
+ AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
+
+-AC_DEFINE(XKB, 1, [Build XKB])
+-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
+-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
+-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
+-XKB_LIB='$(top_builddir)/xkb/libxkb.la'
+-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++AM_CONDITIONAL(XKB, [test "x$XKB" = xyes])
++if test "x$XKB" = xyes; then
++ AC_DEFINE(XKB, 1, [Build XKB])
++ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
++ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
++ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
++ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
++ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++fi
+
+ AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
+ [Do not have `strcasecmp'.]))
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/xcalibrate.patch b/meta/packages/xorg-xserver/xserver-kdrive/xcalibrate.patch
new file mode 100644
index 0000000000..3f8cd4ea5c
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/xcalibrate.patch
@@ -0,0 +1,351 @@
+--- xorg-server-X11R7.1-1.1.0/mi/miinitext.c.orig 2006-06-22 14:11:46.000000000 +0200
++++ xorg-server-X11R7.1-1.1.0/mi/miinitext.c 2006-06-22 15:26:17.000000000 +0200
+@@ -385,6 +385,9 @@
+ #ifdef DMXEXT
+ extern void DMXExtensionInit(INITARGS);
+ #endif
++#ifdef XCALIBRATE
++extern void XCalibrateExtensionInit(INITARGS);
++#endif
+ #ifdef XEVIE
+ extern void XevieExtensionInit(INITARGS);
+ #endif
+@@ -679,6 +682,9 @@
+ #ifdef DAMAGE
+ if (!noDamageExtension) DamageExtensionInit();
+ #endif
++#ifdef XCALIBRATE
++ XCalibrateExtensionInit ();
++#endif
+ }
+
+ void
+--- xorg-server-X11R7.1-1.1.0/configure.ac.orig 2006-06-15 17:03:14.000000000 +0200
++++ xorg-server-X11R7.1-1.1.0/configure.ac 2006-06-24 08:21:25.000000000 +0200
+@@ -407,6 +407,7 @@
+ AC_ARG_ENABLE(xf86vidmode, AS_HELP_STRING([--disable-xf86vidmode], [Build XF86VidMode extension (default: enabled)]), [XF86VIDMODE=$enableval], [XF86VIDMODE=yes])
+ AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: enabled)]), [XF86MISC=$enableval], [XF86MISC=yes])
+ AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=yes])
++AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--disable-xcalibrate], [Build XCalibrate extension (default: enabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=yes])
+ AC_ARG_ENABLE(xevie, AS_HELP_STRING([--disable-xevie], [Build XEvIE extension (default: enabled)]), [XEVIE=$enableval], [XEVIE=yes])
+ AC_ARG_ENABLE(lbx, AS_HELP_STRING([--disable-lbx], [Build LBX extension (default: no)]), [LBX=$enableval], [LBX=no])
+ AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=yes])
+@@ -641,6 +642,12 @@
+ AC_DEFINE(XCSECURITY, 1, [Build Security extension])
+ fi
+
++AM_CONDITIONAL(XCALIBRATE, [test "x$XCALIBRATE" = xyes])
++if test "x$XCALIBRATE" = xyes; then
++ AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension])
++ REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateext"
++fi
++
+ AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes])
+ if test "x$XEVIE" = xyes; then
+ AC_DEFINE(XEVIE, 1, [Build XEvIE extension])
+@@ -1466,7 +1473,7 @@
+ KDRIVE_LIB='$(top_builddir)/hw/kdrive/src/libkdrive.a'
+ KDRIVE_OS_LIB='$(top_builddir)/hw/kdrive/linux/liblinux.a'
+ KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
+- KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
++ KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB"
+
+ # check if we can build Xephyr
+ PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
+--- xorg-server-X11R7.1-1.1.0/include/kdrive-config.h.in.orig 2006-06-22 14:22:07.000000000 +0200
++++ xorg-server-X11R7.1-1.1.0/include/kdrive-config.h.in 2006-06-22 14:33:29.000000000 +0200
+@@ -22,4 +22,7 @@
+ /* Support tslib touchscreen abstraction library */
+ #undef TSLIB
+
++/* Enable XCalibrate extension */
++#undef XCALIBRATE
++
+ #endif /* _KDRIVE_CONFIG_H_ */
+--- xorg-server-X11R7.1-1.1.0/Xext/Makefile.am.orig 2006-06-15 17:06:43.000000000 +0200
++++ xorg-server-X11R7.1-1.1.0/Xext/Makefile.am 2006-06-15 18:12:40.000000000 +0200
+@@ -78,6 +78,11 @@
+ AM_CFLAGS += -DDEFAULTPOLICYFILE=\"$(SERVERCONFIGdir)/SecurityPolicy\"
+ endif
+
++XCALIBRATE_SRCS = xcalibrate.c
++if XCALIBRATE
++BUILTIN_SRCS += $(XCALIBRATE_SRCS)
++endif
++
+ # X EVent Interception Extension: allows accessibility helpers & composite
+ # managers to intercept events from input devices and transform as needed
+ # before the clients see them.
+@@ -155,6 +160,7 @@
+ $(SCREENSAVER_SRCS) \
+ $(XCSECURITY_SRCS) \
+ $(XINERAMA_SRCS) \
++ $(XCALIBRATE_SRCS) \
+ $(XEVIE_SRCS) \
+ $(XPRINT_SRCS) \
+ $(APPGROUP_SRCS) \
+--- xorg-server-X11R7.1-1.1.0/Xext/xcalibrate.c.orig 2006-06-15 17:05:19.000000000 +0200
++++ xorg-server-X11R7.1-1.1.0/Xext/xcalibrate.c 2006-06-22 15:15:09.000000000 +0200
+@@ -0,0 +1,262 @@
++/*
++ * $Id: xcalibrate.c,v 3.1 2004/06/02 20:49:50 pb Exp $
++ *
++ * Copyright © 2003 Philip Blundell
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of Philip Blundell not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission. Philip Blundell makes no
++ * representations about the suitability of this software for any purpose. It
++ * is provided "as is" without express or implied warranty.
++ *
++ * PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifdef HAVE_KDRIVE_CONFIG_H
++#include <kdrive-config.h>
++#endif
++
++#define NEED_EVENTS
++#define NEED_REPLIES
++
++#include <X11/X.h>
++#include <X11/Xproto.h>
++#include "misc.h"
++#include "os.h"
++#include "dixstruct.h"
++#include "extnsionst.h"
++#include "swaprep.h"
++
++#include <X11/extensions/xcalibrateproto.h>
++#include <X11/extensions/xcalibratewire.h>
++
++extern void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
++extern void *tslib_raw_event_closure;
++
++static CARD8 XCalibrateReqCode;
++int XCalibrateEventBase;
++int XCalibrateReqBase;
++int XCalibrateErrorBase;
++
++static ClientPtr xcalibrate_client;
++
++static void
++xcalibrate_event_hook (int x, int y, int pressure, void *closure)
++{
++ ClientPtr pClient = (ClientPtr) closure;
++ xXCalibrateRawTouchscreenEvent ev;
++
++ ev.type = XCalibrateEventBase + X_XCalibrateRawTouchscreen;
++ ev.sequenceNumber = pClient->sequence;
++ ev.x = x;
++ ev.y = y;
++ ev.pressure = pressure;
++
++ if (!pClient->clientGone)
++ WriteEventsToClient (pClient, 1, (xEvent *) &ev);
++}
++
++static int
++ProcXCalibrateQueryVersion (ClientPtr client)
++{
++ REQUEST(xXCalibrateQueryVersionReq);
++ xXCalibrateQueryVersionReply rep;
++ CARD16 client_major, client_minor; /* not used */
++
++ REQUEST_SIZE_MATCH (xXCalibrateQueryVersionReq);
++
++ client_major = stuff->majorVersion;
++ client_minor = stuff->minorVersion;
++
++ fprintf(stderr, "%s(): called\n", __func__);
++
++ rep.type = X_Reply;
++ rep.length = 0;
++ rep.sequenceNumber = client->sequence;
++ rep.majorVersion = XCALIBRATE_MAJOR_VERSION;
++ rep.minorVersion = XCALIBRATE_MINOR_VERSION;
++ if (client->swapped) {
++ int n;
++ swaps(&rep.sequenceNumber, n);
++ swapl(&rep.length, n);
++ swaps(&rep.majorVersion, n);
++ swaps(&rep.minorVersion, n);
++ }
++ WriteToClient(client, sizeof (xXCalibrateQueryVersionReply), (char *)&rep);
++ return (client->noClientException);
++}
++
++static int
++SProcXCalibrateQueryVersion (ClientPtr client)
++{
++ REQUEST(xXCalibrateQueryVersionReq);
++ int n;
++
++ REQUEST_SIZE_MATCH (xXCalibrateQueryVersionReq);
++ swaps(&stuff->majorVersion,n);
++ swaps(&stuff->minorVersion,n);
++ return ProcXCalibrateQueryVersion(client);
++}
++
++static int
++ProcXCalibrateSetRawMode (ClientPtr client)
++{
++ REQUEST(xXCalibrateRawModeReq);
++ xXCalibrateRawModeReply rep;
++
++ REQUEST_SIZE_MATCH (xXCalibrateRawModeReq);
++
++ memset (&rep, 0, sizeof (rep));
++ rep.type = X_Reply;
++ rep.sequenceNumber = client->sequence;
++
++ if (stuff->on)
++ {
++ if (xcalibrate_client == NULL)
++ {
++ /* Start calibrating. */
++ xcalibrate_client = client;
++ tslib_raw_event_hook = xcalibrate_event_hook;
++ tslib_raw_event_closure = client;
++ rep.status = GrabSuccess;
++ }
++ else
++ {
++ rep.status = AlreadyGrabbed;
++ }
++ }
++ else
++ {
++ if (xcalibrate_client == client)
++ {
++ /* Stop calibrating. */
++ xcalibrate_client = NULL;
++ tslib_raw_event_hook = NULL;
++ tslib_raw_event_closure = NULL;
++ rep.status = GrabSuccess;
++
++ /* Cycle input off and on to reload configuration. */
++ KdDisableInput ();
++ KdEnableInput ();
++ }
++ else
++ {
++ rep.status = AlreadyGrabbed;
++ }
++ }
++
++ if (client->swapped)
++ {
++ int n;
++
++ swaps (&rep.sequenceNumber, n);
++ swaps (&rep.status, n);
++ }
++ WriteToClient(client, sizeof (rep), (char *) &rep);
++ return (client->noClientException);
++}
++
++
++static int
++SProcXCalibrateSetRawMode (ClientPtr client)
++{
++ REQUEST(xXCalibrateRawModeReq);
++ int n;
++
++ REQUEST_SIZE_MATCH (xXCalibrateRawModeReq);
++
++ swaps(&stuff->on, n);
++
++ return ProcXCalibrateSetRawMode(client);
++}
++
++static void
++XCalibrateResetProc (ExtensionEntry *extEntry)
++{
++}
++
++static int
++ProcXCalibrateDispatch (ClientPtr client)
++{
++ REQUEST(xReq);
++ switch (stuff->data) {
++ case X_XCalibrateQueryVersion:
++ return ProcXCalibrateQueryVersion(client);
++ case X_XCalibrateRawMode:
++ return ProcXCalibrateSetRawMode(client);
++ default: break;
++ }
++
++ return BadRequest;
++}
++
++static int
++SProcXCalibrateDispatch (ClientPtr client)
++{
++ REQUEST(xReq);
++ int n;
++
++ swaps(&stuff->length,n);
++
++ switch (stuff->data) {
++ case X_XCalibrateQueryVersion:
++ return SProcXCalibrateQueryVersion(client);
++ case X_XCalibrateRawMode:
++ return SProcXCalibrateSetRawMode(client);
++
++ default: break;
++ }
++
++ return BadRequest;
++}
++
++static void
++XCalibrateClientCallback (CallbackListPtr *list,
++ pointer closure,
++ pointer data)
++{
++ NewClientInfoRec *clientinfo = (NewClientInfoRec *) data;
++ ClientPtr pClient = clientinfo->client;
++
++ if (clientinfo->setup == NULL
++ && xcalibrate_client != NULL
++ && xcalibrate_client == pClient)
++ {
++ /* Stop calibrating. */
++ xcalibrate_client = NULL;
++ tslib_raw_event_hook = NULL;
++ tslib_raw_event_closure = NULL;
++ }
++}
++
++void
++XCalibrateExtensionInit(void)
++{
++ ExtensionEntry *extEntry;
++
++ if (!AddCallback (&ClientStateCallback, XCalibrateClientCallback, 0))
++ return;
++
++ extEntry = AddExtension(XCALIBRATE_NAME, XCalibrateNumberEvents, XCalibrateNumberErrors,
++ ProcXCalibrateDispatch, SProcXCalibrateDispatch,
++ XCalibrateResetProc, StandardMinorOpcode);
++
++ if (!extEntry)
++ return;
++
++ XCalibrateReqCode = (unsigned char)extEntry->base;
++ XCalibrateEventBase = extEntry->eventBase;
++ XCalibrateErrorBase = extEntry->errorBase;
++
++ xcalibrate_client = 0;
++}
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/xserver-kdrive-poodle.patch b/meta/packages/xorg-xserver/xserver-kdrive/xserver-kdrive-poodle.patch
new file mode 100644
index 0000000000..ce80a7e389
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive/xserver-kdrive-poodle.patch
@@ -0,0 +1,44 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xserver/hw/kdrive/fbdev/fbdev.c~xserver-kdrive-poodle.patch
++++ xserver/hw/kdrive/fbdev/fbdev.c
+@@ -190,6 +190,7 @@
+ var.nonstd = 0;
+ var.grayscale = 0;
+
++ /* commented out for poodle
+ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
+
+ if (k < 0)
+@@ -198,10 +199,11 @@
+ return FALSE;
+ }
+
+- /* Re-get the "fixed" parameters since they might have changed */
++ // Re-get the "fixed" parameters since they might have changed
+ k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
+ if (k < 0)
+ perror ("FBIOGET_FSCREENINFO");
++ */
+
+ /* Now get the new screeninfo */
+ ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
+@@ -659,13 +661,14 @@
+ priv->var.activate = FB_ACTIVATE_NOW|FB_CHANGE_CMAP_VBL;
+
+ /* display it on the LCD */
++ /* commented out for poodle
+ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var);
+ if (k < 0)
+ {
+ perror ("FBIOPUT_VSCREENINFO");
+ return FALSE;
+ }
+-
++ */
+ if (priv->fix.visual == FB_VISUAL_DIRECTCOLOR)
+ {
+ struct fb_cmap cmap;
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_20050207.bb b/meta/packages/xorg-xserver/xserver-kdrive_20050207.bb
new file mode 100644
index 0000000000..c198a94de2
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_20050207.bb
@@ -0,0 +1,74 @@
+PV = "0.0+cvs${FIXEDSRCDATE}"
+FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}"
+DEFAULT_PREFERENCE = "1"
+
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextensions-1.0.1 xtrans libxau virtual/libx11 libxext libxrandr fixesext damageext libxfont resourceext compositeext xcalibrateext recordext"
+
+# Uncomment the following DEPENDS line and the commented line in SRC_URI
+# to make this snapshot build against X11R7.0 xlibs.
+#DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto"
+
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-mach64 xserver-kdrive-fbdev xserver-kdrive-vesa xserver-kdrive-mga xserver-kdrive-via xserver-kdrive-ati xserver-kdrive-fake xserver-kdrive-i810 xserver-kdrive-xephyr xserver-kdrive-epson ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting i810 devices"
+DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
+DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting MGA devices"
+DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting generic VESA devices"
+DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting Mach64 devices"
+DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA CLE266 devices"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+PR = "r11"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-ati = "${bindir}/Xati"
+FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
+FILES_xserver-kdrive-via = "${bindir}/Xvia"
+FILES_xserver-kdrive-mga = "${bindir}/Xmga"
+FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
+FILES_xserver-kdrive-epson = "${bindir}/Xepson"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xserver;module=xserver;date=${FIXEDSRCDATE} \
+# file://build-20050207-against-X11R7.diff;patch=1 \
+ file://kmode.patch;patch=1 \
+ file://disable-apm.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1 "
+
+SRC_URI_h3600 = "${FREEDESKTOP_CVS}/xserver;module=xserver;date=${FIXEDSRCDATE} \
+ file://kmode.patch;patch=1 \
+ file://faster-rotated.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1 "
+
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1 \
+ file://faster-rotated.patch;patch=1 \
+ file://devfs.patch;patch=1"
+SRC_URI_append_collie = " file://faster-rotated.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1 \
+ file://faster-rotated.patch;patch=1"
+SRC_URI_append_spitz = " file://faster-rotated.patch;patch=1"
+SRC_URI_append_akita = " file://faster-rotated.patch;patch=1"
+
+PACKAGE_ARCH_mnci = "mnci"
+PACKAGE_ARCH_collie = "collie"
+PACKAGE_ARCH_poodle = "poodle"
+PACKAGE_ARCH_h3600 = "h3600"
+PACKAGE_ARCH_spitz = "spitz"
+PACKAGE_ARCH_akita = "akita"
+
+S = "${WORKDIR}/xserver"
+
+inherit autotools pkgconfig
+
+LDFLAGS += " -lXfont -lXdmcp -lXau "
+EXTRA_OECONF = "--enable-static=no --disable-static --enable-composite --disable-xinerama"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_20050624.bb b/meta/packages/xorg-xserver/xserver-kdrive_20050624.bb
new file mode 100644
index 0000000000..f9ba323529
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_20050624.bb
@@ -0,0 +1,49 @@
+PV = "0.0+cvs${FIXEDSRCDATE}"
+FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}"
+
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextensions xtrans libxau virtual/libx11 libxext libxrandr fixesext damageext libxfont resourceext compositeext xcalibrateext recordext"
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-mach64 xserver-kdrive-fbdev xserver-kdrive-vesa xserver-kdrive-mga xserver-kdrive-via xserver-kdrive-ati xserver-kdrive-fake xserver-kdrive-i810 xserver-kdrive-xephyr xserver-kdrive-epson ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting i810 devices"
+DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
+DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting MGA devices"
+DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting generic VESA devices"
+DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting Mach64 devices"
+DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA CLE266 devices"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+PR = "r12"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-ati = "${bindir}/Xati"
+FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
+FILES_xserver-kdrive-via = "${bindir}/Xvia"
+FILES_xserver-kdrive-mga = "${bindir}/Xmga"
+FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
+FILES_xserver-kdrive-epson = "${bindir}/Xepson"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xserver;module=xserver;date=${FIXEDSRCDATE} \
+ file://kmode.patch;patch=1 \
+ file://no-serial-probing.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1"
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+PACKAGE_ARCH_poodle = "poodle"
+
+
+S = "${WORKDIR}/xserver"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --disable-xinerama"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_20060312.bb b/meta/packages/xorg-xserver/xserver-kdrive_20060312.bb
new file mode 100644
index 0000000000..594b6d74ec
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_20060312.bb
@@ -0,0 +1,52 @@
+PV = "0.0+cvs${FIXEDSRCDATE}"
+FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}"
+DEFAULT_PREFERENCE = "1"
+
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto videoproto scrnsaverproto"
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-mach64 xserver-kdrive-fbdev xserver-kdrive-vesa xserver-kdrive-mga xserver-kdrive-via xserver-kdrive-ati xserver-kdrive-fake xserver-kdrive-i810 xserver-kdrive-xephyr xserver-kdrive-epson ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting i810 devices"
+DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
+DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting MGA devices"
+DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting generic VESA devices"
+DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting Mach64 devices"
+DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA CLE266 devices"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+PR = "r11"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-ati = "${bindir}/Xati"
+FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
+FILES_xserver-kdrive-via = "${bindir}/Xvia"
+FILES_xserver-kdrive-mga = "${bindir}/Xmga"
+FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
+FILES_xserver-kdrive-epson = "${bindir}/Xepson"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xserver;module=xserver \
+ file://kmode.patch;patch=1 \
+ file://disable-apm.patch;patch=1 \
+ file://no-serial-probing.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1"
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+PACKAGE_ARCH_poodle = "poodle"
+
+S = "${WORKDIR}/xserver"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --disable-xinerama"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb b/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb
new file mode 100644
index 0000000000..cfb1294c09
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb
@@ -0,0 +1,46 @@
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto videoproto scrnsaverproto"
+
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-fbdev xserver-kdrive-fake xserver-kdrive-xephyr ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "http://ftp.x.org/pub/X11R7.1/src/xserver/xorg-server-X11R7.1-1.1.0.tar.bz2 \
+ file://kmode.patch;patch=1 \
+ file://disable-apm.patch;patch=1 \
+ file://no-serial-probing.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1 \
+ file://enable-builtin-fonts.patch;patch=1 \
+ file://optional-xkb.patch;patch=1 \
+ file://disable-xf86-dga-xorgcfg.patch;patch=1 \
+ file://enable-tslib.patch;patch=1 \
+ file://xcalibrate.patch;patch=1"
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+PACKAGE_ARCH_poodle = "poodle"
+
+S = "${WORKDIR}/xorg-server-X11R7.1-1.1.0"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --enable-kdrive \
+ --disable-dga --disable-dri --disable-xinerama \
+ --disable-xf86misc --disable-xf86vidmode \
+ --disable-xorg --disable-xorgcfg \
+ --disable-dmx \
+ --disable-xkb --disable-xnest --disable-xvfb \
+ --disable-xevie --disable-xprint --disable-xtrap \
+ --with-default-font-path=built-ins \
+ ac_cv_file__usr_share_X11_sgml_defs_ent=no"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_cvs.bb b/meta/packages/xorg-xserver/xserver-kdrive_cvs.bb
new file mode 100644
index 0000000000..c2b25973fb
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_cvs.bb
@@ -0,0 +1,51 @@
+PV = "0.0+cvs${SRCDATE}"
+DEFAULT_PREFERENCE = "-2"
+
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto videoproto scrnsaverproto"
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-mach64 xserver-kdrive-fbdev xserver-kdrive-vesa xserver-kdrive-mga xserver-kdrive-via xserver-kdrive-ati xserver-kdrive-fake xserver-kdrive-i810 xserver-kdrive-xephyr xserver-kdrive-epson ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting i810 devices"
+DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
+DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting MGA devices"
+DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting generic VESA devices"
+DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting Mach64 devices"
+DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA CLE266 devices"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+PR = "r11"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-ati = "${bindir}/Xati"
+FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
+FILES_xserver-kdrive-via = "${bindir}/Xvia"
+FILES_xserver-kdrive-mga = "${bindir}/Xmga"
+FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
+FILES_xserver-kdrive-epson = "${bindir}/Xepson"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xserver;module=xserver \
+ file://kmode.patch;patch=1 \
+ file://disable-apm.patch;patch=1 \
+ file://no-serial-probing.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1"
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+PACKAGE_ARCH_poodle = "poodle"
+
+S = "${WORKDIR}/xserver"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --disable-xinerama"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_git.bb b/meta/packages/xorg-xserver/xserver-kdrive_git.bb
new file mode 100644
index 0000000000..491e486b3d
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive_git.bb
@@ -0,0 +1,48 @@
+PV = "1.1.0+git${SRCDATE}"
+DEFAULT_PREFERENCE = "-2"
+
+LICENSE = "MIT"
+DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto videoproto scrnsaverproto"
+
+PROVIDES = "virtual/xserver"
+RPROVIDES = "virtual/xserver"
+PACKAGES = "xserver-kdrive-fbdev xserver-kdrive-fake xserver-kdrive-xephyr ${PN}-doc ${PN}-dev ${PN}-locale"
+SECTION = "x11/base"
+DESCRIPTION = "X server from freedesktop.org"
+DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
+DESCRIPTION_xserver-kdrive-fake = "Fake X server"
+DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+
+SRC_URI = "git://anongit.freedesktop.org/xorg/xserver;protocol=git \
+ file://kmode.patch;patch=1 \
+ file://disable-apm.patch;patch=1 \
+ file://no-serial-probing.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://fbdev-not-fix.patch;patch=1 \
+ file://enable-builtin-fonts.patch;patch=1 \
+ file://optional-xkb.patch;patch=1 \
+# file://disable-xf86-dga-xorgcfg.patch;patch=1 \
+ file://enable-tslib.patch;patch=1"
+
+SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
+SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+PACKAGE_ARCH_poodle = "poodle"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-composite --enable-kdrive \
+ --disable-dga --disable-dri --disable-xinerama \
+ --disable-xf86misc --disable-xf86vidmode \
+ --disable-xorg --disable-xorgcfg \
+ --disable-xkb --disable-xnest --disable-xvfb \
+ --disable-xevie --disable-xprint --disable-xtrap \
+ --disable-dmx \
+ --with-default-font-path=built-ins \
+ ac_cv_file__usr_share_X11_sgml_defs_ent=no"
diff --git a/meta/packages/xorg-xserver/xserver-xorg/dri.patch b/meta/packages/xorg-xserver/xserver-xorg/dri.patch
new file mode 100644
index 0000000000..37d0407fe4
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/dri.patch
@@ -0,0 +1,10 @@
+--- xc/extras/drm/shared/drm.h.old 2004-09-14 21:42:45.000000000 +0100
++++ xc/extras/drm/shared/drm.h 2004-09-14 21:42:47.000000000 +0100
+@@ -38,7 +38,6 @@
+ #define _DRM_H_
+
+ #if defined(__linux__)
+-#include <linux/config.h>
+ #include <asm/ioctl.h> /* For _IO* macros */
+ #define DRM_IOCTL_NR(n) _IOC_NR(n)
+ #define DRM_IOC_VOID _IOC_NONE
diff --git a/meta/packages/xorg-xserver/xserver-xorg/drmfix.patch b/meta/packages/xorg-xserver/xserver-xorg/drmfix.patch
new file mode 100644
index 0000000000..04b0c1ae4f
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/drmfix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-X11R7.0-1.0.1/hw/xfree86/os-support/linux/Makefile.am
+===================================================================
+--- xorg-server-X11R7.0-1.0.1.orig/hw/xfree86/os-support/linux/Makefile.am
++++ xorg-server-X11R7.0-1.0.1/hw/xfree86/os-support/linux/Makefile.am
+@@ -24,7 +24,7 @@ liblinux_la_SOURCES = lnx_init.c lnx_vid
+
+ AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(XORG_CFLAGS) @SERVER_DEFINES@ @LOADER_DEFINES@
+
+-INCLUDES = $(XORG_INCS) -I/usr/include/drm # FIXME this last part is crack
++INCLUDES = $(XORG_INCS) $(LIBDRM_CFLAGS)
+
+ # FIXME: These need to be added to the build
+ LNX_EXTRA_SOURCES = \
diff --git a/meta/packages/xorg-xserver/xserver-xorg/fontfile.patch b/meta/packages/xorg-xserver/xserver-xorg/fontfile.patch
new file mode 100644
index 0000000000..ed39bf45d0
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/fontfile.patch
@@ -0,0 +1,11 @@
+--- xc/lib/font/fontfile/Imakefile.old 2005-06-03 20:09:53.000000000 +0100
++++ xc/lib/font/fontfile/Imakefile 2005-06-03 20:09:57.000000000 +0100
+@@ -14,7 +14,7 @@
+ #endif
+
+ INCLUDES = -I$(FONTINCSRC) -I../include -I$(SERVERSRC)/include \
+- -I$(INCLUDESRC)
++ -I$(INCLUDESRC) $(CC_STAGING)
+ HEADERS =
+ #ifdef FontFormatDefines
+ FORMAT_DEFS = FontFormatDefines
diff --git a/meta/packages/xorg-xserver/xserver-xorg/freetype.patch b/meta/packages/xorg-xserver/xserver-xorg/freetype.patch
new file mode 100644
index 0000000000..0ba3dd5627
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/freetype.patch
@@ -0,0 +1,22 @@
+--- xc/lib/font/FreeType/Imakefile.old 2005-06-03 20:18:51.000000000 +0100
++++ xc/lib/font/FreeType/Imakefile 2005-06-03 20:18:52.000000000 +0100
+@@ -20,7 +20,7 @@
+
+ INCLUDES = $(FT2INCS) -I. -I$(FONTINCSRC) -I../include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/include $(EXTRAINCLUDES) \
+- -I$(INCLUDESRC)
++ -I$(INCLUDESRC) $(CC_STAGING)
+
+ SRCS = xttcap.c ftfuncs.c ftenc.c fttools.c
+ OBJS = xttcap.o ftfuncs.o ftenc.o fttools.o
+--- xc/config/cf/X11.tmpl.old 2005-06-03 20:40:24.000000000 +0100
++++ xc/config/cf/X11.tmpl 2005-06-03 20:40:40.000000000 +0100
+@@ -3371,7 +3371,7 @@
+
+ #if BuildFreetype2Library || HasFreetype2
+ #if Freetype2IncDirStandard
+-FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
++FREETYPE2INCLUDES = `pkg-config --cflags freetype2`
+ #else
+ FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR) -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
+ #endif
diff --git a/meta/packages/xorg-xserver/xserver-xorg/imake-installed.patch b/meta/packages/xorg-xserver/xserver-xorg/imake-installed.patch
new file mode 100644
index 0000000000..57821075ef
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/imake-installed.patch
@@ -0,0 +1,11 @@
+--- xc/config/cf/Imake.tmpl.old 2005-05-05 21:04:45.000000000 +0100
++++ xc/config/cf/Imake.tmpl 2005-05-05 21:04:49.000000000 +0100
+@@ -2058,7 +2058,7 @@
+ * INCLUDES contains client-specific includes set in Imakefile
+ * LOCAL_LDFLAGS contains client-specific ld flags flags set in Imakefile
+ */
+- ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
++ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
diff --git a/meta/packages/xorg-xserver/xserver-xorg/imake-staging.patch b/meta/packages/xorg-xserver/xserver-xorg/imake-staging.patch
new file mode 100644
index 0000000000..bf2e350830
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/imake-staging.patch
@@ -0,0 +1,38 @@
+--- xc/config/cf/Imake.tmpl.orig 2004-07-28 04:24:29.000000000 +0100
++++ xc/config/cf/Imake.tmpl 2004-09-14 21:03:06.000000000 +0100
+@@ -2038,11 +2038,11 @@
+ */
+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+- CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+ LDPRELIB = LdPreLib $(INSTALLED_LIBS)
+ LDPOSTLIB = LdPostLib
+- LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) $(LD_STAGING)
+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+
+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+--- xc/config/cf/Library.tmpl~ 2004-05-24 20:06:57.000000000 +0100
++++ xc/config/cf/Library.tmpl 2004-09-14 21:10:29.000000000 +0100
+@@ -114,7 +114,7 @@
+ STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+ CDEBUGFLAGS = LibraryCDebugFlags
+ CLIBDEBUGFLAGS = LibraryDebugOpt
+- CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ # if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+ # endif
+--- xc/config/cf/X11.tmpl~ 2004-09-03 17:18:18.000000000 +0100
++++ xc/config/cf/X11.tmpl 2004-09-14 21:30:30.000000000 +0100
+@@ -3359,7 +3359,7 @@
+ FREETYPE2LIBDIR = Freetype2LibDir
+ FREETYPE2INCDIR = Freetype2IncDir
+ #if Freetype2LibDirStandard
+-FREETYPE2LIB = -lfreetype
++FREETYPE2LIB = $(LD_STAGING) -lfreetype
+ #else
+ FREETYPE2LIB = -L$(FREETYPE2LIBDIR) LinkerRuntimeLibraryPathFlag($(FREETYPE2LIBDIR)) -lfreetype
+ #endif
diff --git a/meta/packages/xorg-xserver/xserver-xorg/miext_layer_shadow_h.patch b/meta/packages/xorg-xserver/xserver-xorg/miext_layer_shadow_h.patch
new file mode 100644
index 0000000000..fbade4319a
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/miext_layer_shadow_h.patch
@@ -0,0 +1,11 @@
+--- temp/xorg-server-X11R7.0-1.0.1/miext/layer/Makefile.am 2005-12-01 23:02:44.000000000 -0700
++++ xorg-server-X11R7.0-1.0.1/miext/layer/Makefile.am 2006-04-18 23:16:04.315823560 -0600
+@@ -2,7 +2,7 @@
+
+ AM_CFLAGS = $(DIX_CFLAGS) @SERVER_DEFINES@ @MODULE_DEFINES@ @LOADER_DEFINES@
+
+-INCLUDES = -I$(top_srcdir)/hw/xfree86/os-support
++INCLUDES = -I$(top_srcdir)/miext/shadow -I$(top_srcdir)/hw/xfree86/os-support
+
+ liblayer_la_SOURCES = \
+ layer.h \
diff --git a/meta/packages/xorg-xserver/xserver-xorg/xorg.conf b/meta/packages/xorg-xserver/xserver-xorg/xorg.conf
new file mode 100644
index 0000000000..34f4465764
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/xorg.conf
@@ -0,0 +1,149 @@
+
+# xorg configuration
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen 0 "Screen0" 0 0
+ InputDevice "Mouse0" "CorePointer"
+ InputDevice "Keyboard0" "CoreKeyboard"
+EndSection
+
+Section "Files"
+
+# RgbPath is the location of the RGB database. Note, this is the name of the
+# file minus the extension (like ".txt" or ".db"). There is normally
+# no need to change the default.
+# Multiple FontPath entries are allowed (they are concatenated together)
+# By default, Red Hat 6.0 and later now use a font server independent of
+# the X server to render fonts.
+# FontPath "unix/:7100"
+ FontPath "/usr/lib/X11/fonts/misc"
+EndSection
+
+Section "Module"
+ Load "dbe"
+ Load "extmod"
+ Load "fbdevhw"
+# Load "glx"
+ Load "record"
+ Load "freetype"
+ Load "type1"
+# to enable Xv, link /dev/videox to video device, eg. ln -s video0 /dev/videox
+# Load "z4l"
+EndSection
+
+Section "InputDevice"
+
+# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
+# Option "Xleds" "1 2 3"
+# To disable the XKEYBOARD extension, uncomment XkbDisable.
+# Option "XkbDisable"
+# To customise the XKB settings to suit your keyboard, modify the
+# lines below (which are the defaults). For example, for a non-U.S.
+# keyboard, you will probably want to use:
+# Option "XkbModel" "pc102"
+# If you have a US Microsoft Natural keyboard, you can use:
+# Option "XkbModel" "microsoft"
+#
+# Then to change the language, change the Layout setting.
+# For example, a german layout can be obtained with:
+# Option "XkbLayout" "de"
+# or:
+# Option "XkbLayout" "de"
+# Option "XkbVariant" "nodeadkeys"
+#
+# If you'd like to switch the positions of your capslock and
+# control keys, use:
+# Option "XkbOptions" "ctrl:swapcaps"
+# Or if you just want both to be control, use:
+# Option "XkbOptions" "ctrl:nocaps"
+#
+ Identifier "Keyboard0"
+ Driver "keyboard"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "us"
+EndSection
+
+Section "InputDevice"
+ Identifier "Mouse0"
+ Driver "mouse"
+ Option "Protocol" "PS/2"
+# Option "Protocol" "IMPS/2"
+ Option "Device" "/dev/psaux"
+# Option "Device" "/dev/input/mice"
+ Option "ZAxisMapping" "4 5"
+ Option "Emulate3Buttons" "yes"
+EndSection
+
+Section "Monitor"
+ Identifier "Monitor0"
+ VendorName "Monitor Vendor"
+ ModelName "NEC FP2141SB"
+# DisplaySize 400 300
+# Note: setting HorizSync/VertRefresh will override DDC probe
+# HorizSync 30.0 - 140.0
+# VertRefresh 25.0 - 160.0
+ Option "dpms"
+EndSection
+
+Section "Monitor"
+ Identifier "Monitor1"
+ VendorName "Generic Vendor"
+ ModelName "Generic Monitor"
+ HorizSync 28-50
+ VertRefresh 43-73
+ Modeline "800x600-60" 40.0000 800 840 976 1056 600 601 605 628
+ Modeline "800x600-72" 50.0000 800 856 976 1040 600 637 643 666
+ Modeline "640x480-60" 25.1749 640 656 744 800 480 490 492 525 -HSync -VSync
+ Modeline "640x480-72" 31.5000 640 664 704 832 480 489 492 520 -HSync -VSync
+ Option "dpms"
+EndSection
+
+
+Section "Device"
+ Identifier "Videocard0"
+ Driver "s3"
+# Driver "nv"
+ VendorName "Videocard vendor"
+ BoardName "S3 driver"
+ #BoardName "NVidia driver"
+EndSection
+
+Section "Device"
+ Identifier "FBDev"
+ Driver "fbdev"
+ #Option "shadowfb" "off"
+ VideoRam 4096
+EndSection
+
+Section "Screen"
+ Identifier "Screen0"
+ Device "Videocard0"
+ Monitor "Monitor0"
+# DefaultDepth 8
+ DefaultDepth 16
+# DefaultDepth 24
+
+ SubSection "Display"
+ Depth 8
+ Modes "1024x768" "800x600" "640x480"
+ EndSubsection
+
+ SubSection "Display"
+ Depth 16
+ Modes "1024x768" "800x600" "640x480"
+ EndSubsection
+
+ SubSection "Display"
+ Depth 24
+ FbBpp 32
+ Modes "1024x768" "800x600" "640x480"
+ EndSubsection
+
+EndSection
+
+Section "DRI"
+ Group 0
+ Mode 0666
+EndSection
+
diff --git a/meta/packages/xorg-xserver/xserver-xorg/xpconfig-parentdir.patch b/meta/packages/xorg-xserver/xserver-xorg/xpconfig-parentdir.patch
new file mode 100644
index 0000000000..17d05d3ff8
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg/xpconfig-parentdir.patch
@@ -0,0 +1,30 @@
+--- xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/HPLJ4050-PS/fonts/Makefile.am.orig 2006-06-23 10:20:42.126095128 -0600
++++ xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/HPLJ4050-PS/fonts/Makefile.am 2006-06-23 10:20:50.923757680 -0600
+@@ -1,6 +1,6 @@
+ xpcdir = @xpconfigdir@/C/print/models/HPLJ4050-PS/fonts
+
+-parentdir = $(DESTDIR)/@xpconfigdir@/C/print/models/PSdefault/fonts
++parentdir = @xpconfigdir@/C/print/models/PSdefault/fonts
+
+ XPFONTS = \
+ AvantGarde-Book.pmf \
+--- xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/CANONC3200-PS/fonts/Makefile.am.orig 2006-06-23 10:21:02.877940368 -0600
++++ xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/CANONC3200-PS/fonts/Makefile.am 2006-06-23 10:21:11.903568264 -0600
+@@ -1,6 +1,6 @@
+ xpcdir = @xpconfigdir@/C/print/models/CANONC3200-PS/fonts
+
+-parentdir = $(DESTDIR)/@xpconfigdir@/C/print/models/PSdefault/fonts
++parentdir = @xpconfigdir@/C/print/models/PSdefault/fonts
+
+ XPFONTS = \
+ AvantGarde-Book.pmf \
+--- xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/SPSPARC2/fonts/Makefile.am.orig 2006-06-23 10:21:22.893897480 -0600
++++ xorg-server-X11R7.0-1.0.1/XpConfig/C/print/models/SPSPARC2/fonts/Makefile.am 2006-06-23 10:21:28.412058592 -0600
+@@ -1,6 +1,6 @@
+ xpcdir = @xpconfigdir@/C/print/models/SPSPARC2/fonts
+
+-parentdir = $(DESTDIR)/@xpconfigdir@/C/print/models/PSdefault/fonts
++parentdir = @xpconfigdir@/C/print/models/PSdefault/fonts
+
+ XPFONTS = \
+ Courier-Bold.pmf \
diff --git a/meta/packages/xorg-xserver/xserver-xorg_6.8.99.10.bb b/meta/packages/xorg-xserver/xserver-xorg_6.8.99.10.bb
new file mode 100644
index 0000000000..37546fe1ee
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg_6.8.99.10.bb
@@ -0,0 +1,65 @@
+SECTION = "x11/base"
+RPROVIDES = "virtual/xserver"
+PROVIDES = "virtual/xserver"
+LICENSE = "Xorg"
+PR = "r2"
+
+DEPENDS = "fontconfig freetype libxi libxmu flex-native zlib"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xorg;module=xc;method=pserver;tag=XORG-6_8_99_10 \
+ file://imake-staging.patch;patch=1 \
+ file://imake-installed.patch;patch=1 \
+ file://fontfile.patch;patch=1 file://freetype.patch;patch=1 \
+ file://dri.patch;patch=1"
+
+PACKAGES =+ "xserver-xorg-xprint xserver-xorg-xvfb xserver-xorg-utils"
+
+S = "${WORKDIR}/xc"
+
+FILES_xserver-xorg-xprint = "${bindir}/Xprt /etc/init.d/xprint /etc/rc.d/rc*.d/*xprint /etc/X11/Xsession.d/92xprint-xpserverlist.sh /etc/X11/xinit/xinitrc.d/92xprint-xpserverlist.sh /etc/X11/xserver/*/print ${sysconfdir}/profile.d/xprint.*"
+FILES_xserver-xorg-xvfb = "${bindir}/Xvfb"
+FILES_xserver-xorg-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} += "${libdir}/modules/*.o "${libdir}/modules/*/*.o ${libdir}/X11/Options ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules"
+FILES_${PN}-doc += "${libdir}/X11/doc"
+
+do_configure() {
+ cat <<EOF > config/cf/host.def
+#define BuildServersOnly YES
+#define ProjectRoot ${prefix}
+#define XnestServer NO
+#define XdmxServer NO
+#define CcCmd gcc
+#define LdCmd ld
+#define HasFreetype2 YES
+#define HasFontconfig YES
+#define BuildDevelDRIDrivers YES
+#define BuildXF86DRI YES
+EOF
+ echo "" > config/cf/date.def
+ rm -f include/extensions/panoramiX.h
+ make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" CROSSCOMPILEDIR="${CROSS_DIR}/${TARGET_SYS}/bin" PREPROCESS_CMD="gcc -E" clean imake
+ make CC="${BUILD_CC}" xmakefile
+ make Makefiles
+ make clean
+}
+
+do_compile() {
+ #make depend
+ make includes
+ make -C config/util CC="${BUILD_CC}"
+ for l in font xtrans Xdmcp lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+ make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" CPP="${CC} -E"
+}
+
+do_install() {
+ make -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+ make -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xserver-xorg
+ for i in i810 via; do
+ pushd ${S}/programs/Xserver/hw/xfree86/drivers/$i; install -m 0644 *.h ${STAGING_INCDIR}/xserver-xorg/; popd
+ done
+ install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xorg/
+}
diff --git a/meta/packages/xorg-xserver/xserver-xorg_6.8.99.11.bb b/meta/packages/xorg-xserver/xserver-xorg_6.8.99.11.bb
new file mode 100644
index 0000000000..e60f62ef57
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg_6.8.99.11.bb
@@ -0,0 +1,65 @@
+SECTION = "x11/base"
+RPROVIDES = "virtual/xserver"
+PROVIDES = "virtual/xserver"
+LICENSE = "Xorg"
+PR = "r0"
+
+DEPENDS = "fontconfig freetype libxi libxmu flex-native zlib"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xorg;module=xc;method=pserver;tag=XORG-6_8_99_11 \
+ file://imake-staging.patch;patch=1 \
+ file://imake-installed.patch;patch=1 \
+ file://fontfile.patch;patch=1 file://freetype.patch;patch=1 \
+ file://dri.patch;patch=1"
+
+PACKAGES =+ "xserver-xorg-xprint xserver-xorg-xvfb xserver-xorg-utils"
+
+S = "${WORKDIR}/xc"
+
+FILES_xserver-xorg-xprint = "${bindir}/Xprt /etc/init.d/xprint /etc/rc.d/rc*.d/*xprint /etc/X11/Xsession.d/92xprint-xpserverlist.sh /etc/X11/xinit/xinitrc.d/92xprint-xpserverlist.sh /etc/X11/xserver/*/print ${sysconfdir}/profile.d/xprint.*"
+FILES_xserver-xorg-xvfb = "${bindir}/Xvfb"
+FILES_xserver-xorg-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} += "${libdir}/modules/*.o "${libdir}/modules/*/*.o ${libdir}/X11/Options ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules"
+FILES_${PN}-doc += "${libdir}/X11/doc"
+
+do_configure() {
+ cat <<EOF > config/cf/host.def
+#define BuildServersOnly YES
+#define ProjectRoot ${prefix}
+#define XnestServer NO
+#define XdmxServer NO
+#define CcCmd gcc
+#define LdCmd ld
+#define HasFreetype2 YES
+#define HasFontconfig YES
+#define BuildDevelDRIDrivers YES
+#define BuildXF86DRI YES
+EOF
+ echo "" > config/cf/date.def
+ rm -f include/extensions/panoramiX.h
+ make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" CROSSCOMPILEDIR="${CROSS_DIR}/${TARGET_SYS}/bin" PREPROCESS_CMD="gcc -E" clean imake
+ make CC="${BUILD_CC}" xmakefile
+ make Makefiles
+ make clean
+}
+
+do_compile() {
+ #make depend
+ make includes
+ make -C config/util CC="${BUILD_CC}"
+ for l in font xtrans Xdmcp lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+ make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" CPP="${CC} -E"
+}
+
+do_install() {
+ make -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+ make -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xserver-xorg
+ for i in i810 via; do
+ pushd ${S}/programs/Xserver/hw/xfree86/drivers/$i; install -m 0644 *.h ${STAGING_INCDIR}/xserver-xorg/; popd
+ done
+ install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xorg/
+}
diff --git a/meta/packages/xorg-xserver/xserver-xorg_X11R7.0-1.0.1.bb b/meta/packages/xorg-xserver/xserver-xorg_X11R7.0-1.0.1.bb
new file mode 100644
index 0000000000..2a7ba03431
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg_X11R7.0-1.0.1.bb
@@ -0,0 +1,9 @@
+require xorg-xserver-common.inc
+
+#DESCRIPTION = ""
+
+#DEPENDS += " "
+
+SRC_URI += " file://miext_layer_shadow_h.patch;patch=1 \
+ file://xpconfig-parentdir.patch;patch=1"
+
diff --git a/meta/packages/xorg-xserver/xserver-xorg_X11R7.1-1.1.0.bb b/meta/packages/xorg-xserver/xserver-xorg_X11R7.1-1.1.0.bb
new file mode 100644
index 0000000000..3db5c640c7
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg_X11R7.1-1.1.0.bb
@@ -0,0 +1,9 @@
+require xorg-xserver-common.inc
+
+SRC_URI += "file://drmfix.patch;patch=1"
+
+EXTRA_OECONF += " ac_cv_file__usr_share_X11_sgml_defs_ent=no "
+
+#DESCRIPTION = ""
+
+#DEPENDS += " "
diff --git a/meta/packages/xorg-xserver/xserver-xorg_cvs.bb b/meta/packages/xorg-xserver/xserver-xorg_cvs.bb
new file mode 100644
index 0000000000..e410581e17
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xorg_cvs.bb
@@ -0,0 +1,61 @@
+SECTION = "x11/base"
+LICENSE = "Xorg"
+RPROVIDES = "virtual/xserver"
+PROVIDES = "virtual/xserver"
+PR = "r3"
+PV = "6.8.1+cvs${SRCDATE}"
+
+DEPENDS = "fontconfig freetype libxi libxmu flex-2.5.4-native"
+
+SRC_URI = "${FREEDESKTOP_CVS}/xorg;module=xc;method=pserver \
+ file://imake-staging.patch;patch=1 \
+ file://dri.patch;patch=1"
+
+PACKAGES =+ "xserver-xorg-xprint xserver-xorg-xvfb xserver-xorg-utils"
+
+S = "${WORKDIR}/xc"
+
+FILES_xserver-xorg-xprint = "${bindir}/Xprt /etc/init.d/xprint /etc/rc.d/rc*.d/*xprint /etc/X11/Xsession.d/92xprint-xpserverlist.sh /etc/X11/xinit/xinitrc.d/92xprint-xpserverlist.sh /etc/X11/xserver/*/print"
+FILES_xserver-xorg-xvfb = "${bindir}/Xvfb"
+FILES_xserver-xorg-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} += "${libdir}/modules/*.o "${libdir}/modules/*/*.o ${libdir}/X11/Options ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules"
+FILES_${PN}-doc += "${libdir}/X11/doc"
+
+do_configure() {
+ echo "#define BuildServersOnly YES" > config/cf/host.def
+ echo "#define ProjectRoot /usr" >> config/cf/host.def
+ echo "#define XnestServer NO" >> config/cf/host.def
+ echo "#define XdmxServer NO" >> config/cf/host.def
+ echo "#define CcCmd ${CC}" >> config/cf/host.def
+ echo "#define LdCmd ${LD}" >> config/cf/host.def
+ echo "#define HasFreetype2 YES" >> config/cf/host.def
+ echo "#define HasFontconfig YES" >> config/cf/host.def
+ echo "#define BuildDevelDRIDrivers YES" >>config/cf/host.def
+ echo "" > config/cf/date.def
+ rm -f include/extensions/panoramiX.h
+}
+
+do_compile() {
+ make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" clean imake
+ make CC="${BUILD_CC}" xmakefile
+ make Makefiles
+ make clean
+ #make depend
+ make includes
+ make -C config/util CC="${BUILD_CC}"
+ for l in font xtrans Xdmcp lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+ make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS=""
+}
+
+do_install() {
+ make -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+ make -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xserver-xorg
+ for i in i810 via; do
+ pushd ${S}/programs/Xserver/hw/xfree86/drivers/$i; install -m 0644 *.h ${STAGING_INCDIR}/xserver-xorg/; popd
+ done
+ install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xorg/
+}