summaryrefslogtreecommitdiff
path: root/meta/recipes-graphics
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-graphics
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadopenembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-graphics')
-rw-r--r--meta/recipes-graphics/cairo/cairo-1.8.10/hardcoded_libtool.patch17
-rw-r--r--meta/recipes-graphics/cairo/cairo-fpu.inc6
-rw-r--r--meta/recipes-graphics/cairo/cairo.inc13
-rw-r--r--meta/recipes-graphics/cairo/cairo_1.8.10.bb8
-rw-r--r--meta/recipes-graphics/clutter/aaina.inc7
-rw-r--r--meta/recipes-graphics/clutter/aaina_git.bb7
-rw-r--r--meta/recipes-graphics/clutter/clutter-0.6_git.bb15
-rw-r--r--meta/recipes-graphics/clutter/clutter-0.8_git.bb13
-rw-r--r--meta/recipes-graphics/clutter/clutter-1.0_git.bb20
-rw-r--r--meta/recipes-graphics/clutter/clutter-box2d.inc15
-rw-r--r--meta/recipes-graphics/clutter/clutter-box2d_git.bb10
-rw-r--r--meta/recipes-graphics/clutter/clutter-cairo-0.6_git.bb13
-rw-r--r--meta/recipes-graphics/clutter/clutter-cairo-0.8_git.bb12
-rw-r--r--meta/recipes-graphics/clutter/clutter-cairo.inc13
-rw-r--r--meta/recipes-graphics/clutter/clutter-cairo/enable_examples-0.6.patch23
-rw-r--r--meta/recipes-graphics/clutter/clutter-cairo/enable_examples.patch28
-rw-r--r--meta/recipes-graphics/clutter/clutter-fpu.inc6
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst-0.10_git.bb14
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst-0.6_git.bb9
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst-0.8_git.bb9
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst-1.0_git.bb14
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst.inc13
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst/autofoo-0.4.patch15
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst/autofoo-9db4a61a25677764bb927369c5c68ada958fb65c.patch25
-rw-r--r--meta/recipes-graphics/clutter/clutter-gst/autofoo.patch27
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk-0.10_git.bb12
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk-0.6_git.bb9
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk-0.8_git.bb9
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk-1.0_git.bb12
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk.inc13
-rw-r--r--meta/recipes-graphics/clutter/clutter-helix.inc15
-rw-r--r--meta/recipes-graphics/clutter/clutter-helix_git.bb8
-rw-r--r--meta/recipes-graphics/clutter/clutter-mozembed.inc14
-rw-r--r--meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++-da7632f3e2c8d1a70ab01cc7adb63760d8718b41.patch13
-rw-r--r--meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++.patch13
-rw-r--r--meta/recipes-graphics/clutter/clutter-mozembed_git.bb14
-rw-r--r--meta/recipes-graphics/clutter/clutter-package.inc2
-rw-r--r--meta/recipes-graphics/clutter/clutter.inc57
-rw-r--r--meta/recipes-graphics/clutter/clutter/build-fix.patch16
-rw-r--r--meta/recipes-graphics/clutter/clutter/enable_tests-0.6.patch40
-rw-r--r--meta/recipes-graphics/clutter/clutter/enable_tests-0.8.patch50
-rw-r--r--meta/recipes-graphics/clutter/clutter/enable_tests-1.0.patch32
-rw-r--r--meta/recipes-graphics/clutter/clutter/enable_tests-654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673.patch32
-rw-r--r--meta/recipes-graphics/clutter/clutter/enable_tests.patch32
-rw-r--r--meta/recipes-graphics/clutter/clutter/symconflict.patch31
-rw-r--r--meta/recipes-graphics/clutter/clutter_git.bb17
-rw-r--r--meta/recipes-graphics/clutter/moblin-proto/fix-shader-and-callbacks.patch44
-rw-r--r--meta/recipes-graphics/clutter/moblin-proto/fix.patch22
-rw-r--r--meta/recipes-graphics/clutter/moblin-proto/paths.patch15
-rw-r--r--meta/recipes-graphics/clutter/moblin-proto_git.bb19
-rw-r--r--meta/recipes-graphics/clutter/table.inc13
-rw-r--r--meta/recipes-graphics/clutter/table/fixes.patch14
-rw-r--r--meta/recipes-graphics/clutter/table_git.bb11
-rw-r--r--meta/recipes-graphics/clutter/tidy.inc20
-rw-r--r--meta/recipes-graphics/clutter/tidy/autofoo.patch11
-rw-r--r--meta/recipes-graphics/clutter/tidy/tidy-enable-tests.patch20
-rw-r--r--meta/recipes-graphics/clutter/tidy_git.bb10
-rw-r--r--meta/recipes-graphics/drm/libdrm-2.4.21/installtests.patch43
-rw-r--r--meta/recipes-graphics/drm/libdrm.inc14
-rw-r--r--meta/recipes-graphics/drm/libdrm_2.4.21.bb4
-rw-r--r--meta/recipes-graphics/drm/libdrm_git.bb8
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig-2.8.0/97_fontconfig1
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig-2.8.0/fix-pkgconfig.patch13
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig-native_2.8.0.bb12
-rw-r--r--meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb81
-rw-r--r--meta/recipes-graphics/freetype/freetype-2.3.12/no-hardcode.patch11
-rw-r--r--meta/recipes-graphics/freetype/freetype_2.3.12.bb49
-rw-r--r--meta/recipes-graphics/libfakekey/libfakekey_svn.bb16
-rw-r--r--meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch258
-rw-r--r--meta/recipes-graphics/libmatchbox/files/16bppfixes.patch36
-rw-r--r--meta/recipes-graphics/libmatchbox/files/autofoo.patch19
-rw-r--r--meta/recipes-graphics/libmatchbox/files/check.m4133
-rw-r--r--meta/recipes-graphics/libmatchbox/files/configure_fixes.patch79
-rw-r--r--meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch14
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox.inc17
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox_1.9.bb12
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox_svn.bb16
-rw-r--r--meta/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch15
-rw-r--r--meta/recipes-graphics/libxklavier/libxklavier_3.9.bb12
-rw-r--r--meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license22
-rw-r--r--meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch11
-rw-r--r--meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb30
-rw-r--r--meta/recipes-graphics/matchbox-session/matchbox-session/matchbox-session24
-rw-r--r--meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb24
-rw-r--r--meta/recipes-graphics/matchbox-wm-2/matchbox-wm-2_svn.bb42
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm/configure_fix.patch13
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm/gconf-2.m439
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm/kbdconfig42
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_0.9.5.bb32
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.1.bb37
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.bb41
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_svn.bb44
-rw-r--r--meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb17
-rw-r--r--meta/recipes-graphics/mesa/mesa-common.inc24
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.8.2.bb24
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri/cross2.patch44
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri/crossfix.patch16
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri/i586/matypes.h162
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri_7.5.bb48
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri_7.7.bb49
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri_7.8.2.bb53
-rw-r--r--meta/recipes-graphics/mesa/mesa-dri_git.bb59
-rw-r--r--meta/recipes-graphics/mesa/mesa-xlib_7.8.2.bb22
-rw-r--r--meta/recipes-graphics/mesa/qemugl/versionfix.patch30
-rw-r--r--meta/recipes-graphics/mesa/qemugl_git.bb37
-rw-r--r--meta/recipes-graphics/mutter/mutter.inc43
-rw-r--r--meta/recipes-graphics/mutter/mutter/crosscompile.patch55
-rw-r--r--meta/recipes-graphics/mutter/mutter/fix_pkgconfig-7adb574bb3fa3880eb85dbc86e580cf3452d57c4.patch10
-rw-r--r--meta/recipes-graphics/mutter/mutter/fix_pkgconfig.patch10
-rw-r--r--meta/recipes-graphics/mutter/mutter/nodocs.patch29
-rw-r--r--meta/recipes-graphics/mutter/mutter/nozenity.patch16
-rw-r--r--meta/recipes-graphics/mutter/mutter_2.28.1.bb9
-rw-r--r--meta/recipes-graphics/mutter/mutter_git.bb17
-rw-r--r--meta/recipes-graphics/pango/pango-1.28.0/no-tests.patch12
-rw-r--r--meta/recipes-graphics/pango/pango.inc46
-rw-r--r--meta/recipes-graphics/pango/pango_1.28.0.bb9
-rw-r--r--meta/recipes-graphics/startup-notification/startup-notification_0.10.bb23
-rw-r--r--meta/recipes-graphics/tslib/tslib/a780/tslib.sh6
-rw-r--r--meta/recipes-graphics/tslib/tslib/collie/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/collie/tslib.sh13
-rw-r--r--meta/recipes-graphics/tslib/tslib/devfs.patch18
-rw-r--r--meta/recipes-graphics/tslib/tslib/e680/tslib.sh6
-rw-r--r--meta/recipes-graphics/tslib/tslib/event1.patch80
-rw-r--r--meta/recipes-graphics/tslib/tslib/fix_version.patch32
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada56x/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada56x/tslib.sh5
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada6xx/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada6xx/tslib.sh5
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada7xx/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/jornada7xx/tslib.sh5
-rw-r--r--meta/recipes-graphics/tslib/tslib/mnci/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/mnci/tslib.sh1
-rw-r--r--meta/recipes-graphics/tslib/tslib/multievent.patch843
-rw-r--r--meta/recipes-graphics/tslib/tslib/netbook-pro/ts.conf5
-rw-r--r--meta/recipes-graphics/tslib/tslib/netbook-pro/tslib.sh5
-rw-r--r--meta/recipes-graphics/tslib/tslib/omap1610h2/tslib.sh5
-rw-r--r--meta/recipes-graphics/tslib/tslib/omap5912osk/tslib.sh4
-rw-r--r--meta/recipes-graphics/tslib/tslib/simpad/tslib.sh14
-rw-r--r--meta/recipes-graphics/tslib/tslib/ts.conf25
-rw-r--r--meta/recipes-graphics/tslib/tslib/ts.conf-collie-2.45
-rw-r--r--meta/recipes-graphics/tslib/tslib/ts.conf-simpad-2.45
-rw-r--r--meta/recipes-graphics/tslib/tslib/tslib.sh8
-rw-r--r--meta/recipes-graphics/tslib/tslib_1.0.bb78
-rw-r--r--meta/recipes-graphics/ttf-fonts/liberation-fonts/30-liberation-aliases.conf17
-rw-r--r--meta/recipes-graphics/ttf-fonts/liberation-fonts_1.04.bb34
-rw-r--r--meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb34
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xdefaults3
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver77
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession38
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/12keymap.sh4
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/89xdgautostart.sh7
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/90XWindowManager.sh7
-rw-r--r--meta/recipes-graphics/x11-common/x11-common/etc/X11/default.xmodmap260
-rw-r--r--meta/recipes-graphics/x11-common/x11-common_0.1.bb17
-rw-r--r--meta/recipes-graphics/x11-common/xserver-nodm-init.bb22
-rwxr-xr-xmeta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm58
-rw-r--r--meta/recipes-graphics/xcb/libpthread-stubs_0.3.bb19
-rw-r--r--meta/recipes-graphics/xcb/libxcb.inc53
-rw-r--r--meta/recipes-graphics/xcb/libxcb/xcbincludedir.patch11
-rw-r--r--meta/recipes-graphics/xcb/libxcb_1.1.91.bb6
-rw-r--r--meta/recipes-graphics/xcb/libxcb_1.6.bb10
-rw-r--r--meta/recipes-graphics/xcb/libxcb_git.bb11
-rw-r--r--meta/recipes-graphics/xcb/xcb-proto.inc18
-rw-r--r--meta/recipes-graphics/xcb/xcb-proto_1.6.bb7
-rw-r--r--meta/recipes-graphics/xcb/xcb-proto_git.bb8
-rw-r--r--meta/recipes-graphics/xcb/xcb-util.inc30
-rw-r--r--meta/recipes-graphics/xcb/xcb-util_0.3.6.bb15
-rw-r--r--meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/fix_watch_cursor.patch24
-rw-r--r--meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/use-relative-symlinks.patch11
-rw-r--r--meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb18
-rw-r--r--meta/recipes-graphics/xorg-app/mkfontdir_1.0.5.bb11
-rw-r--r--meta/recipes-graphics/xorg-app/mkfontscale_1.0.7.bb9
-rw-r--r--meta/recipes-graphics/xorg-app/x11perf_1.5.bb6
-rw-r--r--meta/recipes-graphics/xorg-app/xauth_1.0.4.bb10
-rw-r--r--meta/recipes-graphics/xorg-app/xbacklight_1.1.bb4
-rw-r--r--meta/recipes-graphics/xorg-app/xdpyinfo/disable-xkb.patch18
-rw-r--r--meta/recipes-graphics/xorg-app/xdpyinfo_1.1.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-app/xev/diet-x11.patch80
-rw-r--r--meta/recipes-graphics/xorg-app/xev_1.0.3.bb7
-rw-r--r--meta/recipes-graphics/xorg-app/xeyes_1.0.1.bb4
-rw-r--r--meta/recipes-graphics/xorg-app/xhost_1.0.3.bb7
-rw-r--r--meta/recipes-graphics/xorg-app/xinit_1.2.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-app/xkbcomp_1.1.1.bb9
-rw-r--r--meta/recipes-graphics/xorg-app/xmodmap_1.0.4.bb7
-rw-r--r--meta/recipes-graphics/xorg-app/xorg-app-common.inc16
-rw-r--r--meta/recipes-graphics/xorg-app/xprop_1.1.0.bb10
-rw-r--r--meta/recipes-graphics/xorg-app/xrandr/resolve_symbol_clash.patch33
-rw-r--r--meta/recipes-graphics/xorg-app/xrandr_1.3.2.bb10
-rw-r--r--meta/recipes-graphics/xorg-app/xrdb/60XDefaults.sh3
-rw-r--r--meta/recipes-graphics/xorg-app/xrdb_1.0.5.bb14
-rw-r--r--meta/recipes-graphics/xorg-app/xset/disable-xkb.patch18
-rw-r--r--meta/recipes-graphics/xorg-app/xset_1.1.0.bb14
-rw-r--r--meta/recipes-graphics/xorg-app/xvinfo_1.0.2.bb5
-rw-r--r--meta/recipes-graphics/xorg-app/xwininfo_1.0.5.bb8
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-driver-common.inc29
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-common.inc7
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.4.0.bb7
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.4.0.bb7
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb9
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch19
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.5.0.bb5
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb11
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.2.1.bb5
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb10
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.9.bb8
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-common.inc4
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_2.12.0.bb10
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb16
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff146
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb21
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.0.bb9
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-vmware_11.0.1.bb12
-rw-r--r--meta/recipes-graphics/xorg-font/encodings_1.0.3.bb10
-rw-r--r--meta/recipes-graphics/xorg-font/font-alias-1.0.2/fix_COPYING_1f8141a5e3b585dfccc748400b05c9c24b41e767.patch45
-rw-r--r--meta/recipes-graphics/xorg-font/font-alias_1.0.2.bb18
-rw-r--r--meta/recipes-graphics/xorg-font/font-util_1.1.1.bb23
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-font-common.inc47
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb28
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-1.pcf.gzbin0 -> 4637 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-10.pcf.gzbin0 -> 4551 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-11.pcf.gzbin0 -> 4409 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-13.pcf.gzbin0 -> 4689 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-14.pcf.gzbin0 -> 4502 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-15.pcf.gzbin0 -> 4614 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-16.pcf.gzbin0 -> 4547 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-2.pcf.gzbin0 -> 4519 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-3.pcf.gzbin0 -> 4418 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-4.pcf.gzbin0 -> 4572 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-5.pcf.gzbin0 -> 4541 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-7.pcf.gzbin0 -> 4550 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-8.pcf.gzbin0 -> 4035 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-9.pcf.gzbin0 -> 4645 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-KOI8-R.pcf.gzbin0 -> 5057 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13.pcf.gzbin0 -> 76746 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-1.pcf.gzbin0 -> 4643 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-10.pcf.gzbin0 -> 4569 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-13.pcf.gzbin0 -> 4700 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-14.pcf.gzbin0 -> 4494 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-15.pcf.gzbin0 -> 4638 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-16.pcf.gzbin0 -> 4539 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-2.pcf.gzbin0 -> 4498 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-3.pcf.gzbin0 -> 4362 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-4.pcf.gzbin0 -> 4584 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-5.pcf.gzbin0 -> 4500 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-7.pcf.gzbin0 -> 4529 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-8.pcf.gzbin0 -> 4008 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-9.pcf.gzbin0 -> 4653 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B.pcf.gzbin0 -> 23787 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-1.pcf.gzbin0 -> 4219 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-10.pcf.gzbin0 -> 4152 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-13.pcf.gzbin0 -> 4275 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-14.pcf.gzbin0 -> 4083 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-15.pcf.gzbin0 -> 4209 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-16.pcf.gzbin0 -> 4111 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-2.pcf.gzbin0 -> 4115 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-3.pcf.gzbin0 -> 3959 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-4.pcf.gzbin0 -> 4154 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-5.pcf.gzbin0 -> 4075 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-7.pcf.gzbin0 -> 4124 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-9.pcf.gzbin0 -> 4206 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O.pcf.gzbin0 -> 15495 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/cursor.pcf.gzbin0 -> 5225 bytes
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.alias80
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.dir410
-rw-r--r--meta/recipes-graphics/xorg-lib/libapplewm_1.0.0.bb7
-rw-r--r--meta/recipes-graphics/xorg-lib/libdmx_1.1.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/libfontenc_1.0.5.bb12
-rw-r--r--meta/recipes-graphics/xorg-lib/libfs_1.0.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libice_1.0.6.bb16
-rw-r--r--meta/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch63
-rw-r--r--meta/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/liboldx_1.0.1.bb6
-rw-r--r--meta/recipes-graphics/xorg-lib/libpciaccess_0.11.0.bb10
-rw-r--r--meta/recipes-graphics/xorg-lib/libsm_1.1.1.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/libwindowswm_1.0.0.bb6
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-1.3.4/include_fix.patch19
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-1.3.4/nodolt.patch10
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-1.3.4/x11_disable_makekeys.patch31
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb17
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-diet_git.bb12
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/X18NCMSstubs.diff568
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/fix-disable-xlocale.diff14
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/fix-utf8-wrong-define.patch16
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/include_fix.patch23
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/nodolt.patch12
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/x11_disable_makekeys.patch28
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-git/xim.patch55
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-trim/include_fix.patch23
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-trim/nodolt.patch12
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-trim/x11_disable_makekeys.patch29
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-trim_git.bb10
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11.inc34
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff528
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.diff14
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch16
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/include_fix.patch23
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/nodolt.patch12
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/x11_disable_makekeys.patch29
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/xim.patch55
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb18
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_git.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_git.inc11
-rw-r--r--meta/recipes-graphics/xorg-lib/libxau_1.0.5.bb16
-rw-r--r--meta/recipes-graphics/xorg-lib/libxaw_1.0.5.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcalibrate/fix-xcb.patch27
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcalibrate_git.bb19
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcomposite_0.4.1.bb16
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcursor_1.1.10.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxdamage_1.1.2.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxdmcp_1.0.3.bb18
-rw-r--r--meta/recipes-graphics/xorg-lib/libxevie_1.0.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxext_1.1.2.bb16
-rw-r--r--meta/recipes-graphics/xorg-lib/libxext_git.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfixes_4.0.4.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfont/no-scalable-crash.patch22
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfont_1.4.2.bb18
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfontcache_1.0.5.bb9
-rw-r--r--meta/recipes-graphics/xorg-lib/libxft_2.1.14.bb25
-rw-r--r--meta/recipes-graphics/xorg-lib/libxi_1.3.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxi_git.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/libxinerama_1.1.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbfile_1.0.6.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxmu_1.0.5.bb21
-rw-r--r--meta/recipes-graphics/xorg-lib/libxp_1.0.0.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/libxpm_3.5.7.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxprintapputil_1.0.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxprintutil_1.0.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxrandr_1.3.0.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/libxrender_0.9.5.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/libxres_1.0.4.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-lib/libxt_1.0.8.bb30
-rw-r--r--meta/recipes-graphics/xorg-lib/libxtrap_1.0.0.bb8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxtst_1.1.0.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxv_1.0.5.bb12
-rw-r--r--meta/recipes-graphics/xorg-lib/libxvmc_1.0.5.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.1.bb10
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.2.bb14
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.0.bb13
-rw-r--r--meta/recipes-graphics/xorg-lib/pixman_0.18.2.bb15
-rw-r--r--meta/recipes-graphics/xorg-lib/xkeyboard-config_1.9.bb24
-rw-r--r--meta/recipes-graphics/xorg-lib/xorg-lib-common.inc16
-rw-r--r--meta/recipes-graphics/xorg-lib/xtrans/abstract_socket_fix.patch58
-rw-r--r--meta/recipes-graphics/xorg-lib/xtrans_1.2.5.bb15
-rw-r--r--meta/recipes-graphics/xorg-proto/applewmproto_1.4.1.bb4
-rw-r--r--meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.0.bb12
-rw-r--r--meta/recipes-graphics/xorg-proto/calibrateproto/fix.patch40
-rw-r--r--meta/recipes-graphics/xorg-proto/calibrateproto_git.bb14
-rw-r--r--meta/recipes-graphics/xorg-proto/compositeproto_0.4.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/damageproto_1.2.0.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/dmxproto_2.3.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/dri2proto_2.3.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/dri2proto_git.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/fixesproto_4.1.1.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/fontcacheproto_0.1.3.bb10
-rw-r--r--meta/recipes-graphics/xorg-proto/fontsproto_2.1.0.bb10
-rw-r--r--meta/recipes-graphics/xorg-proto/glproto_1.4.11.bb10
-rw-r--r--meta/recipes-graphics/xorg-proto/inputproto_2.0.bb12
-rw-r--r--meta/recipes-graphics/xorg-proto/inputproto_git.bb12
-rw-r--r--meta/recipes-graphics/xorg-proto/kbproto_1.0.4.bb12
-rw-r--r--meta/recipes-graphics/xorg-proto/printproto_1.0.4.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/randrproto_1.3.1.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/recordproto_1.14.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/renderproto_0.11.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/resourceproto_1.1.0.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/scrnsaverproto_1.2.0.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/trapproto_3.4.3.bb7
-rw-r--r--meta/recipes-graphics/xorg-proto/videoproto_2.3.0.bb7
-rw-r--r--meta/recipes-graphics/xorg-proto/windowswmproto_1.0.4.bb4
-rw-r--r--meta/recipes-graphics/xorg-proto/xcmiscproto_1.2.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/xextproto_7.1.1.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86bigfontproto_1.2.0.bb11
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86dgaproto_2.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86driproto_2.1.0.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86miscproto_0.9.3.bb7
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86rushproto_1.1.2.bb7
-rw-r--r--meta/recipes-graphics/xorg-proto/xf86vidmodeproto_2.3.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/xineramaproto_1.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-proto/xorg-proto-common.inc20
-rw-r--r--meta/recipes-graphics/xorg-proto/xproto_7.0.17.bb9
-rw-r--r--meta/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb5
-rw-r--r--meta/recipes-graphics/xorg-util/gccmakedep_1.0.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-util/imake_1.0.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-util/lndir_1.0.1.bb6
-rw-r--r--meta/recipes-graphics/xorg-util/makedepend_1.0.2.bb8
-rw-r--r--meta/recipes-graphics/xorg-util/util-macros/xaw.patch14
-rw-r--r--meta/recipes-graphics/xorg-util/util-macros_1.10.0.bb16
-rw-r--r--meta/recipes-graphics/xorg-util/xorg-cf-files_1.0.3.bb8
-rw-r--r--meta/recipes-graphics/xorg-util/xorg-util-common.inc13
-rw-r--r--meta/recipes-graphics/xorg-xserver/files/macro_tweak.patch18
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-builtin-fonts.patch12
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch11
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch12
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch110
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fbdev_use_current.patch41
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fix-newer-xorg-headers.patch18
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch307
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-evdev.patch515
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-use-evdev.patch54
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch58
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/report-correct-randr12.patch29
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch151
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/xcalibrate_coords.patch122
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch19
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch20
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch12
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch148
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch83
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch61
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch18
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch308
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch515
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch54
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch25
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch12
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch58
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc107
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-apm.patch20
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch39
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive/extra-kmodes.patch83
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive/fbdev_xrandr_ioctl.patch61
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive/no-serial-probing.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb28
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc33
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/igep0020/xorg.conf47
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/netbook/xorg.conf26
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf68
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf68
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf26
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb17
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc37
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch358
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch20
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch21
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch22
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch50
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch28
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch12
-rwxr-xr-xmeta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch12
-rwxr-xr-xmeta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch23
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch156
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch179
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch38
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch105
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.8.99.904.bb20
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb31
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc34
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/crosscompile.patch19
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/drmfix.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/fix_open_max_preprocessor_error.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/libdri-xinerama-symbol.patch50
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/nodolt.patch12
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch256
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-lite_1.7.99.2.bb12
-rw-r--r--meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh10
-rw-r--r--meta/recipes-graphics/xtscal/xtscal/change-cross.patch16
-rw-r--r--meta/recipes-graphics/xtscal/xtscal/cleanup.patch619
-rw-r--r--meta/recipes-graphics/xtscal/xtscal_0.6.3.bb24
466 files changed, 15104 insertions, 0 deletions
diff --git a/meta/recipes-graphics/cairo/cairo-1.8.10/hardcoded_libtool.patch b/meta/recipes-graphics/cairo/cairo-1.8.10/hardcoded_libtool.patch
new file mode 100644
index 000000000..afdf2c8f0
--- /dev/null
+++ b/meta/recipes-graphics/cairo/cairo-1.8.10/hardcoded_libtool.patch
@@ -0,0 +1,17 @@
+Index: cairo-1.8.2/build/aclocal.dolt.m4
+===================================================================
+--- cairo-1.8.2.orig/build/aclocal.dolt.m4
++++ cairo-1.8.2/build/aclocal.dolt.m4
+@@ -163,7 +163,11 @@ done
+ if $modeok && $tagok ; then
+ . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}"
+ else
+- exec ${top_builddir_slash}libtool "$[]@"
++__DOLTLIBTOOL__EOF__
++
++echo ' exec ${top_builddir_slash}'${host_alias}-libtool' "$[]@"' >> doltlibtool
++
++ cat << '__DOLTLIBTOOL__EOF__' >> doltlibtool
+ fi
+ __DOLTLIBTOOL__EOF__
+
diff --git a/meta/recipes-graphics/cairo/cairo-fpu.inc b/meta/recipes-graphics/cairo/cairo-fpu.inc
new file mode 100644
index 000000000..bdaf78979
--- /dev/null
+++ b/meta/recipes-graphics/cairo/cairo-fpu.inc
@@ -0,0 +1,6 @@
+
+def get_cairo_fpu_setting(bb, d):
+ if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+ return "--disable-some-floating-point"
+ return ""
+
diff --git a/meta/recipes-graphics/cairo/cairo.inc b/meta/recipes-graphics/cairo/cairo.inc
new file mode 100644
index 000000000..e73a83967
--- /dev/null
+++ b/meta/recipes-graphics/cairo/cairo.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Cairo graphics library"
+HOMEPAGE = "http://cairographics.org"
+BUGTRACKER = "http://bugs.freedesktop.org"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "MPLv1.1 & LGPLv2.1"
+DEPENDS = "virtual/libx11 libsm libpng fontconfig libxrender pixman"
+
+#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+require cairo-fpu.inc
+EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)}"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-graphics/cairo/cairo_1.8.10.bb b/meta/recipes-graphics/cairo/cairo_1.8.10.bb
new file mode 100644
index 000000000..9e7e7a3bf
--- /dev/null
+++ b/meta/recipes-graphics/cairo/cairo_1.8.10.bb
@@ -0,0 +1,8 @@
+require cairo.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7d7cc3410ae869ed913ebd30d7f45941"
+
+PR = "r0"
+
+SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz \
+ file://hardcoded_libtool.patch"
diff --git a/meta/recipes-graphics/clutter/aaina.inc b/meta/recipes-graphics/clutter/aaina.inc
new file mode 100644
index 000000000..afbc022cd
--- /dev/null
+++ b/meta/recipes-graphics/clutter/aaina.inc
@@ -0,0 +1,7 @@
+DESCRIPTION = "Aaina Clutter Demo"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "GPL"
+
+DEPENDS = "clutter-0.6 libxml2 gtk+ neon"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-graphics/clutter/aaina_git.bb b/meta/recipes-graphics/clutter/aaina_git.bb
new file mode 100644
index 000000000..a348cd3d4
--- /dev/null
+++ b/meta/recipes-graphics/clutter/aaina_git.bb
@@ -0,0 +1,7 @@
+require aaina.inc
+
+PV = "0.3.0+git${SRCPV}"
+
+SRC_URI = "git://git.clutter-project.org/toys.git;protocol=git"
+
+S = "${WORKDIR}/git/aaina"
diff --git a/meta/recipes-graphics/clutter/clutter-0.6_git.bb b/meta/recipes-graphics/clutter/clutter-0.6_git.bb
new file mode 100644
index 000000000..5a8ccec16
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-0.6_git.bb
@@ -0,0 +1,15 @@
+require clutter.inc
+
+PV = "0.6.0+gitr${SRCPV}"
+PR = "r5"
+
+PACKAGES =+ "clutter-examples-0.6"
+FILES_clutter-examples-0.6 = "${bindir}/test-* ${pkgdatadir}/redhand.png"
+
+
+SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=clutter-0-6 \
+ file://symconflict.patch;patch=1 \
+ file://enable_tests-0.6.patch;patch=1 "
+
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/clutter/clutter-0.8_git.bb b/meta/recipes-graphics/clutter/clutter-0.8_git.bb
new file mode 100644
index 000000000..71e619803
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-0.8_git.bb
@@ -0,0 +1,13 @@
+require clutter.inc
+
+PV = "0.8.0+gitr${SRCREV}"
+PR = "r2"
+
+PACKAGES =+ "clutter-examples-0.8"
+FILES_clutter-examples-0.8 = "${bindir}/test-* ${pkgdatadir}/redhand.png"
+
+SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=clutter-0-8 \
+ file://enable_tests-0.8.patch;patch=1 \
+ file://build-fix.patch;patch=1"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-1.0_git.bb b/meta/recipes-graphics/clutter/clutter-1.0_git.bb
new file mode 100644
index 000000000..7e62954ee
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-1.0_git.bb
@@ -0,0 +1,20 @@
+require clutter.inc
+
+PV = "1.0+git${SRCPV}"
+PR = "r3"
+
+PACKAGES =+ "clutter-examples-1.0"
+FILES_clutter-examples-1.0 = "${bindir}/test-* ${pkgdatadir}/redhand.png"
+
+SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=clutter-1.0 \
+ file://enable_tests-1.0.patch;patch=1 "
+
+S = "${WORKDIR}/git"
+
+BASE_CONF += "--disable-introspection"
+
+
+do_configure_prepend () {
+ # Disable DOLT
+ sed -i -e 's/^DOLT//' ${S}/configure.ac
+}
diff --git a/meta/recipes-graphics/clutter/clutter-box2d.inc b/meta/recipes-graphics/clutter/clutter-box2d.inc
new file mode 100644
index 000000000..1a107c399
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-box2d.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Clutter Box2D"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "GPLv2"
+
+DEPENDS = "clutter-0.8"
+
+# The main clutter lib is machine specific so we need to be too
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit autotools pkgconfig gtk-doc
+
+do_install_append () {
+ install -d ${D}${bindir}
+ install ${S}/examples/.libs/blockbox ${D}${bindir}
+}
diff --git a/meta/recipes-graphics/clutter/clutter-box2d_git.bb b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
new file mode 100644
index 000000000..4c74ffeb4
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
@@ -0,0 +1,10 @@
+require clutter-box2d.inc
+
+PV = "0.0+git${SRCPV}"
+PR = "r3"
+
+SRC_URI = "git://git.clutter-project.org/clutter-box2d.git;protocol=git"
+
+S = "${WORKDIR}/git"
+
+
diff --git a/meta/recipes-graphics/clutter/clutter-cairo-0.6_git.bb b/meta/recipes-graphics/clutter/clutter-cairo-0.6_git.bb
new file mode 100644
index 000000000..3b7f6a9be
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-cairo-0.6_git.bb
@@ -0,0 +1,13 @@
+require clutter-cairo.inc
+
+PV = "0.6.0+git${SRCREV}"
+PR = "r1"
+
+DEPENDS += "clutter-0.6"
+
+SRC_URI = "git://git.clutter-project.org/clutter-cairo.git;protocol=git;branch=clutter-cairo-0-6 \
+ file://enable_examples-0.6.patch;patch=1"
+
+S = "${WORKDIR}/git"
+
+
diff --git a/meta/recipes-graphics/clutter/clutter-cairo-0.8_git.bb b/meta/recipes-graphics/clutter/clutter-cairo-0.8_git.bb
new file mode 100644
index 000000000..cb8482b74
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-cairo-0.8_git.bb
@@ -0,0 +1,12 @@
+require clutter-cairo.inc
+
+PV = "0.8.0+git${SRCPV}"
+
+DEPENDS += "clutter-0.8"
+
+SRC_URI = "git://git.clutter-project.org/clutter-cairo.git;protocol=git;branch=clutter-cairo-0-8 \
+ file://enable_examples.patch;patch=1"
+
+S = "${WORKDIR}/git"
+
+
diff --git a/meta/recipes-graphics/clutter/clutter-cairo.inc b/meta/recipes-graphics/clutter/clutter-cairo.inc
new file mode 100644
index 000000000..ff889899e
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-cairo.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Clutter Cairo"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "cairo"
+
+FILESPATH = "${FILE_DIRNAME}/clutter-cairo"
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/flowers ${bindir}/clock"
+
+inherit autotools pkgconfig
+
diff --git a/meta/recipes-graphics/clutter/clutter-cairo/enable_examples-0.6.patch b/meta/recipes-graphics/clutter/clutter-cairo/enable_examples-0.6.patch
new file mode 100644
index 000000000..3baea4c5c
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-cairo/enable_examples-0.6.patch
@@ -0,0 +1,23 @@
+Index: clutter-cairo-0-6/examples/Makefile.am
+===================================================================
+--- clutter-cairo-0-6.orig/examples/Makefile.am 2008-10-02 22:03:18.000000000 +0100
++++ clutter-cairo-0-6/examples/Makefile.am 2008-10-02 22:03:31.000000000 +0100
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = clock flowers
++bin_PROGRAMS = clock flowers
+
+ INCLUDES = -I$(top_srcdir)/ @GCC_FLAGS@ @DEPS_CFLAGS@
+ AM_LDFLAGS = @DEPS_LIBS@ $(top_builddir)/libclutter-cairo-@CLUTTER_CAIRO_MAJORMINOR@.la
+Index: clutter-cairo-0-6/examples/flowers.c
+===================================================================
+--- clutter-cairo-0-6.orig/examples/flowers.c 2008-10-02 22:03:23.000000000 +0100
++++ clutter-cairo-0-6/examples/flowers.c 2008-10-02 22:03:39.000000000 +0100
+@@ -11,7 +11,7 @@
+
+ #define PETAL_MIN 20
+ #define PETAL_VAR 40
+-#define N_FLOWERS 40 /* reduce if you have a small card */
++#define N_FLOWERS 8 /* reduce if you have a small card */
+
+ typedef struct Flower
+ {
diff --git a/meta/recipes-graphics/clutter/clutter-cairo/enable_examples.patch b/meta/recipes-graphics/clutter/clutter-cairo/enable_examples.patch
new file mode 100644
index 000000000..c5ed63ff1
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-cairo/enable_examples.patch
@@ -0,0 +1,28 @@
+---
+ examples/Makefile.am | 2 +-
+ examples/flowers.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: clutter-cairo/examples/Makefile.am
+===================================================================
+--- clutter-cairo.orig/examples/Makefile.am 2008-08-11 16:30:04.000000000 +0100
++++ clutter-cairo/examples/Makefile.am 2008-08-11 16:30:24.000000000 +0100
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = clock flowers bubbles
++bin_PROGRAMS = clock flowers bubbles
+
+ INCLUDES = -I$(top_srcdir)/ @GCC_FLAGS@ @DEPS_CFLAGS@
+ AM_LDFLAGS = @DEPS_LIBS@ $(top_builddir)/libclutter-cairo-@CLUTTER_CAIRO_MAJORMINOR@.la
+Index: clutter-cairo/examples/flowers.c
+===================================================================
+--- clutter-cairo.orig/examples/flowers.c 2008-08-11 16:30:04.000000000 +0100
++++ clutter-cairo/examples/flowers.c 2008-08-11 16:30:10.000000000 +0100
+@@ -11,7 +11,7 @@
+
+ #define PETAL_MIN 20
+ #define PETAL_VAR 40
+-#define N_FLOWERS 40 /* reduce if you have a small card */
++#define N_FLOWERS 8 /* reduce if you have a small card */
+
+ typedef struct Flower
+ {
diff --git a/meta/recipes-graphics/clutter/clutter-fpu.inc b/meta/recipes-graphics/clutter/clutter-fpu.inc
new file mode 100644
index 000000000..21a16feac
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-fpu.inc
@@ -0,0 +1,6 @@
+
+def get_clutter_fpu_setting(bb, d):
+ if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+ return "--without-fpu"
+ return ""
+
diff --git a/meta/recipes-graphics/clutter/clutter-gst-0.10_git.bb b/meta/recipes-graphics/clutter/clutter-gst-0.10_git.bb
new file mode 100644
index 000000000..a0f874db2
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst-0.10_git.bb
@@ -0,0 +1,14 @@
+require clutter-gst.inc
+
+PV = "0.10.0+git${SRCPV}"
+
+DEPENDS += "clutter-1.0"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gst.git;protocol=git;branch=clutter-gst-0.10"
+
+S = "${WORKDIR}/git"
+
+do_configure_prepend () {
+ # Disable DOLT
+ sed -i -e 's/^DOLT//' ${S}/configure.ac
+}
diff --git a/meta/recipes-graphics/clutter/clutter-gst-0.6_git.bb b/meta/recipes-graphics/clutter/clutter-gst-0.6_git.bb
new file mode 100644
index 000000000..09979f9e0
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst-0.6_git.bb
@@ -0,0 +1,9 @@
+require clutter-gst.inc
+
+PV = "0.6.0+git${SRCPV}"
+
+DEPENDS += "clutter-0.6"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gst.git;protocol=git;branch=clutter-gst-0-6"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-gst-0.8_git.bb b/meta/recipes-graphics/clutter/clutter-gst-0.8_git.bb
new file mode 100644
index 000000000..c5348ecef
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst-0.8_git.bb
@@ -0,0 +1,9 @@
+require clutter-gst.inc
+
+PV = "0.8.0+git${SRCPV}"
+
+DEPENDS += "clutter-0.8"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gst.git;protocol=git;branch=clutter-gst-0-8"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-gst-1.0_git.bb b/meta/recipes-graphics/clutter/clutter-gst-1.0_git.bb
new file mode 100644
index 000000000..5580596f0
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst-1.0_git.bb
@@ -0,0 +1,14 @@
+require clutter-gst.inc
+
+PV = "0.11.0+git${SRCPV}"
+
+DEPENDS += "clutter-1.0"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gst.git;protocol=git;branch=master"
+
+S = "${WORKDIR}/git"
+
+do_configure_prepend () {
+ # Disable DOLT
+ sed -i -e 's/^DOLT//' ${S}/configure.ac
+}
diff --git a/meta/recipes-graphics/clutter/clutter-gst.inc b/meta/recipes-graphics/clutter/clutter-gst.inc
new file mode 100644
index 000000000..0a2f26153
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Clutter GStreamer"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "clutter-1.0 gstreamer gst-plugins-base"
+
+FILESPATH = "${FILE_DIRNAME}/clutter-gst"
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink ${bindir}/audio"
+
+inherit autotools pkgconfig gtk-doc
+
diff --git a/meta/recipes-graphics/clutter/clutter-gst/autofoo-0.4.patch b/meta/recipes-graphics/clutter/clutter-gst/autofoo-0.4.patch
new file mode 100644
index 000000000..54df63d29
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst/autofoo-0.4.patch
@@ -0,0 +1,15 @@
+---
+ doc/reference/Makefile.am | 2 +-
+ examples/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: clutter-gst/examples/Makefile.am
+===================================================================
+--- clutter-gst.orig/examples/Makefile.am 2007-11-06 12:31:36.000000000 +0000
++++ clutter-gst/examples/Makefile.am 2007-11-06 18:53:59.000000000 +0000
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = video-player video-sink audio
++bin_PROGRAMS = video-player video-sink audio
+
+ INCLUDES = -I$(top_srcdir)/
+
diff --git a/meta/recipes-graphics/clutter/clutter-gst/autofoo-9db4a61a25677764bb927369c5c68ada958fb65c.patch b/meta/recipes-graphics/clutter/clutter-gst/autofoo-9db4a61a25677764bb927369c5c68ada958fb65c.patch
new file mode 100644
index 000000000..569b0d8be
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst/autofoo-9db4a61a25677764bb927369c5c68ada958fb65c.patch
@@ -0,0 +1,25 @@
+---
+ doc/reference/Makefile.am | 2 +-
+ examples/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: clutter-gst/examples/Makefile.am
+===================================================================
+--- clutter-gst.orig/examples/Makefile.am 2007-11-06 12:31:36.000000000 +0000
++++ clutter-gst/examples/Makefile.am 2007-11-06 18:53:59.000000000 +0000
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = video-player video-sink audio
++bin_PROGRAMS = video-player video-sink audio
+
+ INCLUDES = -I$(top_srcdir)/
+
+Index: clutter-gst/doc/reference/Makefile.am
+===================================================================
+--- clutter-gst.orig/doc/reference/Makefile.am 2007-11-06 19:36:56.000000000 +0000
++++ clutter-gst/doc/reference/Makefile.am 2007-11-06 19:37:02.000000000 +0000
+@@ -77,4 +77,4 @@ include $(top_srcdir)/gtk-doc.make
+
+ # Other files to distribute
+ # e.g. EXTRA_DIST += version.xml.in
+-EXTRA_DIST += version.xml.in
++EXTRA_DIST = version.xml.in
diff --git a/meta/recipes-graphics/clutter/clutter-gst/autofoo.patch b/meta/recipes-graphics/clutter/clutter-gst/autofoo.patch
new file mode 100644
index 000000000..ad77d636c
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gst/autofoo.patch
@@ -0,0 +1,27 @@
+---
+ doc/reference/Makefile.am | 2 +-
+ examples/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: git/examples/Makefile.am
+===================================================================
+--- git.orig/examples/Makefile.am 2009-06-30 16:41:53.000000000 +0100
++++ git/examples/Makefile.am 2009-06-30 16:43:00.000000000 +0100
+@@ -1,6 +1,6 @@
+ NULL = #
+
+-noinst_PROGRAMS = video-player video-sink audio-player
++bin_PROGRAMS = video-player video-sink audio-player
+
+ INCLUDES = -I$(top_srcdir) \
+ $(MAINTAINER_CFLAGS) \
+Index: git/doc/reference/Makefile.am
+===================================================================
+--- git.orig/doc/reference/Makefile.am 2009-06-30 16:41:53.000000000 +0100
++++ git/doc/reference/Makefile.am 2009-06-30 16:41:53.000000000 +0100
+@@ -77,4 +77,4 @@
+
+ # Other files to distribute
+ # e.g. EXTRA_DIST += version.xml.in
+-EXTRA_DIST += version.xml.in
++EXTRA_DIST = version.xml.in
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-0.10_git.bb b/meta/recipes-graphics/clutter/clutter-gtk-0.10_git.bb
new file mode 100644
index 000000000..d0613277a
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gtk-0.10_git.bb
@@ -0,0 +1,12 @@
+require clutter-gtk.inc
+
+PV = "0.10.3+git${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gtk.git;protocol=git;branch=clutter-gtk-0.10"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "clutter-1.0"
+
+EXTRA_OECONF += "--disable-introspection"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-0.6_git.bb b/meta/recipes-graphics/clutter/clutter-gtk-0.6_git.bb
new file mode 100644
index 000000000..d2633ff2d
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gtk-0.6_git.bb
@@ -0,0 +1,9 @@
+require clutter-gtk.inc
+
+PV = "0.6.0+git${SRCPV}"
+
+DEPENDS += "clutter-0.6"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gtk.git;protocol=git;branch=clutter-gtk-0-6"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-0.8_git.bb b/meta/recipes-graphics/clutter/clutter-gtk-0.8_git.bb
new file mode 100644
index 000000000..506d3fb15
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gtk-0.8_git.bb
@@ -0,0 +1,9 @@
+require clutter-gtk.inc
+
+PV = "0.8.0+git${SRCPV}"
+
+DEPENDS += "clutter-0.8"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gtk.git;protocol=git;branch=clutter-gtk-0-8"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0_git.bb b/meta/recipes-graphics/clutter/clutter-gtk-1.0_git.bb
new file mode 100644
index 000000000..dfabbd56c
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gtk-1.0_git.bb
@@ -0,0 +1,12 @@
+require clutter-gtk.inc
+
+PV = "0.90.0+git${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.clutter-project.org/clutter-gtk.git;protocol=git;branch=master"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "clutter-1.0"
+
+EXTRA_OECONF += "--disable-introspection"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk.inc b/meta/recipes-graphics/clutter/clutter-gtk.inc
new file mode 100644
index 000000000..89ae3e53c
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-gtk.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Clutter GTK+"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "gtk+"
+
+FILESPATH = "${FILE_DIRNAME}/clutter-gtk"
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/gtk-clutter-test ${bindir}/gtk-clutter-events ${bindir}/gtk-clutter-multistage"
+
+inherit autotools pkgconfig gtk-doc
+
diff --git a/meta/recipes-graphics/clutter/clutter-helix.inc b/meta/recipes-graphics/clutter/clutter-helix.inc
new file mode 100644
index 000000000..6bbbb244d
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-helix.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Clutter Helix"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "helix-libs"
+
+FILESPATH = "${FILE_DIRNAME}/clutter-helix"
+
+COMPATIBLE_HOST = '(x86_64|i.86.*)-linux'
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/video-player ${bindir}/audio-player"
+
+inherit autotools pkgconfig gtk-doc
+
diff --git a/meta/recipes-graphics/clutter/clutter-helix_git.bb b/meta/recipes-graphics/clutter/clutter-helix_git.bb
new file mode 100644
index 000000000..1c272306b
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-helix_git.bb
@@ -0,0 +1,8 @@
+require clutter-helix.inc
+
+PV = "0.8.0+git${SRCPV}"
+PR = "r0"
+
+SRC_URI = "git://git.clutter-project.org/clutter-helix.git;protocol=git"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/clutter/clutter-mozembed.inc b/meta/recipes-graphics/clutter/clutter-mozembed.inc
new file mode 100644
index 000000000..72c9412d0
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-mozembed.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Clutter Mozilla Embedded"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "mozilla-headless mozilla-headless-services clutter-1.0"
+
+FILESPATH = "${FILE_DIRNAME}/clutter-mozembed"
+
+FILES_${PN} =+ "${datadir}/cluttermozembed/chrome/"
+
+EXTRA_OECONF = "--enable-plugins"
+
+inherit autotools pkgconfig gtk-doc
+
diff --git a/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++-da7632f3e2c8d1a70ab01cc7adb63760d8718b41.patch b/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++-da7632f3e2c8d1a70ab01cc7adb63760d8718b41.patch
new file mode 100644
index 000000000..135b9e79f
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++-da7632f3e2c8d1a70ab01cc7adb63760d8718b41.patch
@@ -0,0 +1,13 @@
+Index: git/cluttermozembed/Makefile.am
+===================================================================
+--- git.orig/cluttermozembed/Makefile.am 2009-06-10 15:04:54.000000000 +0100
++++ git/cluttermozembed/Makefile.am 2009-06-10 15:10:12.000000000 +0100
+@@ -61,7 +61,7 @@
+ clutter-mozembed-private.h
+ source_c = \
+ clutter-mozembed.c \
+- clutter-mozembed-download.c
++ clutter-mozembed-download.c dummy.cpp
+
+ bin_PROGRAMS = clutter-mozheadless
+
diff --git a/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++.patch b/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++.patch
new file mode 100644
index 000000000..cc9d43a67
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-mozembed/link-with-g++.patch
@@ -0,0 +1,13 @@
+Index: git/cluttermozembed/Makefile.am
+===================================================================
+--- git.orig/clutter-mozembed/Makefile.am 2009-07-24 16:58:24.000000000 +0100
++++ git/clutter-mozembed/Makefile.am 2009-07-24 17:00:53.000000000 +0100
+@@ -66,7 +66,7 @@
+ clutter-mozembed.c \
+ clutter-mozembed-comms.c \
+ clutter-mozembed-comms.h \
+- clutter-mozembed-download.c
++ clutter-mozembed-download.c dummy.cpp
+
+ bin_PROGRAMS = clutter-mozheadless
+
diff --git a/meta/recipes-graphics/clutter/clutter-mozembed_git.bb b/meta/recipes-graphics/clutter/clutter-mozembed_git.bb
new file mode 100644
index 000000000..e2da2d6a7
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-mozembed_git.bb
@@ -0,0 +1,14 @@
+require clutter-mozembed.inc
+
+PV = "0.8.0+git${SRCPV}"
+PR = "r7"
+
+SRC_URI = "git://git.clutter-project.org/clutter-mozembed.git;protocol=git \
+ file://link-with-g++-da7632f3e2c8d1a70ab01cc7adb63760d8718b41.patch;patch=1;rev=da7632f3e2c8d1a70ab01cc7adb63760d8718b41 \
+ file://link-with-g++.patch;patch=1;notrev=da7632f3e2c8d1a70ab01cc7adb63760d8718b41"
+S = "${WORKDIR}/git"
+
+do_configure_prepend () {
+ touch ${S}/clutter-mozembed/dummy.cpp
+ touch ${S}/clutter-mozembed/dummy2.cpp
+}
diff --git a/meta/recipes-graphics/clutter/clutter-package.inc b/meta/recipes-graphics/clutter/clutter-package.inc
new file mode 100644
index 000000000..22993ffd0
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter-package.inc
@@ -0,0 +1,2 @@
+PACKAGES =+ "clutter-examples"
+FILES_clutter-examples = "${bindir}/test-* ${pkgdatadir}/redhand.png"
diff --git a/meta/recipes-graphics/clutter/clutter.inc b/meta/recipes-graphics/clutter/clutter.inc
new file mode 100644
index 000000000..c099309bb
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter.inc
@@ -0,0 +1,57 @@
+DESCRIPTION = "Clutter graphics library"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+COMPATIBLE_MACHINE = "(zylonite|mx31litekit|omap-3430ldp|omap-3430sdp|mx31ads|qemuarm|qemux86|ipodtouch|netbook|menlow)"
+
+STDDEPENDS = "virtual/libx11 gtk-doc-native pango glib-2.0 libxfixes gtk+ libxi"
+BASE_CONF = "--disable-gtk-doc ${@get_clutter_fpu_setting(bb, d)}"
+
+DEPENDS = "${STDDEPENDS} virtual/libgl"
+EXTRA_OECONF = "${BASE_CONF} --with-flavour=glx"
+
+DEPENDS_zylonite = "${STDDEPENDS} libgles-zylonite tslib"
+EXTRA_OECONF_zylonite = "${BASE_CONF} --with-flavour=eglnative"
+PACKAGE_ARCH_zylonite = "${MACHINE_ARCH}"
+LDFLAGS_append_zylonite = " -lnws -lstdc++ "
+
+DEPENDS_mx31litekit = "${STDDEPENDS} libgles-mx31 tslib"
+EXTRA_OECONF_mx31litekit = "${BASE_CONF} --with-flavour=eglnative"
+PACKAGE_ARCH_mx31litekit = "${MACHINE_ARCH}"
+LDFLAGS_append_mx31litekit = " -lpvrNULLWSEGL -lstdc++ "
+
+DEPENDS_omap-3430ldp = "${STDDEPENDS} libgles-omap3 tslib"
+# The eglx drivers are pretty dire, use eglnative
+EXTRA_OECONF_omap-3430ldp = "${BASE_CONF} --with-flavour=eglnative"
+PACKAGE_ARCH_omap-3430ldp = "${MACHINE_ARCH}"
+
+DEPENDS_omap-3430sdp = "${STDDEPENDS} libgles-omap3 tslib"
+# The eglx drivers are pretty dire, use eglnative
+EXTRA_OECONF_omap-3430sdp = "${BASE_CONF} --with-flavour=eglnative"
+PACKAGE_ARCH_omap-3430sdp = "${MACHINE_ARCH}"
+
+DEPENDS_mx31ads = "${STDDEPENDS} libgles-mx31 tslib"
+EXTRA_OECONF_mx31ads = "${BASE_CONF} --with-flavour=eglnative"
+PACKAGE_ARCH_mx31ads = "${MACHINE_ARCH}"
+LDFLAGS_append_mx31ads = " -lpvrNULLWSEGL -lstdc++ "
+
+DEPENDS_netbook = "${STDDEPENDS} virtual/xserver-xf86 virtual/libgl"
+EXTRA_OECONF_netbook = "${BASE_CONF} --with-flavour=glx"
+PACKAGE_ARCH_netbook = "${MACHINE_ARCH}"
+
+DEPENDS_menlow = "${STDDEPENDS} virtual/xserver-xf86 virtual/libgl"
+EXTRA_OECONF_menlow = "${BASE_CONF} --with-flavour=glx"
+PACKAGE_ARCH_menlow = "${MACHINE_ARCH}"
+
+FILESPATH = "${FILE_DIRNAME}/clutter"
+
+inherit autotools pkgconfig gtk-doc
+
+#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+require clutter-fpu.inc
+
+#Fix up some weirdness in the docs
+do_configure_prepend() {
+ sed -i s:doc/reference/Makefile::g ${S}/configure.ac
+ sed -i s:doc::g ${S}/Makefile.am
+}
diff --git a/meta/recipes-graphics/clutter/clutter/build-fix.patch b/meta/recipes-graphics/clutter/clutter/build-fix.patch
new file mode 100644
index 000000000..68cf84ec2
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/build-fix.patch
@@ -0,0 +1,16 @@
+Installing the same file twice causes an error in Automake 1.11
+
+JL 19/03/10
+
+Index: git/clutter/Makefile.am
+===================================================================
+--- git.orig/clutter/Makefile.am 2010-03-19 11:37:51.000000000 +0000
++++ git/clutter/Makefile.am 2010-03-19 11:50:46.744042007 +0000
+@@ -219,7 +219,6 @@
+ $(source_h) \
+ clutter-json.h \
+ clutter-enum-types.h \
+- clutter-version.h \
+ clutter.h
+
+ DISTCLEANFILES = \
diff --git a/meta/recipes-graphics/clutter/clutter/enable_tests-0.6.patch b/meta/recipes-graphics/clutter/clutter/enable_tests-0.6.patch
new file mode 100644
index 000000000..544a7e588
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/enable_tests-0.6.patch
@@ -0,0 +1,40 @@
+---
+ tests/Makefile.am | 7 ++++++-
+ tests/test-actors.c | 2 +-
+ tests/test-text.c | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: clutter-0-6/tests/Makefile.am
+===================================================================
+--- clutter.orig/tests/Makefile.am 2007-11-06 12:29:17.000000000 +0000
++++ clutter-0-6/tests/Makefile.am 2007-11-06 12:30:11.000000000 +0000
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \
++bin_PROGRAMS = test-textures test-events test-offscreen test-scale \
+ test-actors test-behave test-text test-entry test-project \
+ test-boxes test-perspective test-rotate test-depth \
+ test-threads test-timeline test-score test-script
+@@ -26,4 +26,9 @@ test_timeline_SOURCES = test-timeline.c
+ test_score_SOURCES = test-score.c
+ test_script_SOURCES = test-script.c
+
++test_textdir = $(pkgdatadir)
++test_text_DATA = test-text.c
++test_actorsdir = $(pkgdatadir)
++test_actors_DATA = redhand.png
++
+ EXTRA_DIST = redhand.png test-script.json
+Index: clutter-0-6/tests/test-actors.c
+===================================================================
+--- clutter.orig/tests/test-actors.c 2007-11-06 12:29:17.000000000 +0000
++++ clutter-0-6/tests/test-actors.c 2007-11-06 12:29:21.000000000 +0000
+@@ -143,7 +143,7 @@ main (int argc, char *argv[])
+ stage = clutter_stage_get_default ();
+ clutter_actor_set_size (stage, 800, 600);
+
+- pixbuf = gdk_pixbuf_new_from_file ("redhand.png", NULL);
++ pixbuf = gdk_pixbuf_new_from_file ("/usr/share/clutter/redhand.png", NULL);
+
+ if (!pixbuf)
+ g_error("pixbuf load failed");
+
diff --git a/meta/recipes-graphics/clutter/clutter/enable_tests-0.8.patch b/meta/recipes-graphics/clutter/clutter/enable_tests-0.8.patch
new file mode 100644
index 000000000..4f449b117
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/enable_tests-0.8.patch
@@ -0,0 +1,50 @@
+---
+ tests/Makefile.am | 7 ++++++-
+ tests/test-actors.c | 2 +-
+ tests/test-text.c | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: clutter/tests/Makefile.am
+===================================================================
+--- clutter.orig/tests/Makefile.am 2008-06-26 16:46:26.000000000 +0100
++++ clutter/tests/Makefile.am 2008-06-26 16:46:50.000000000 +0100
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \
++bin_PROGRAMS = test-textures test-events test-offscreen test-scale \
+ test-actors test-behave test-text test-entry test-project \
+ test-perspective test-rotate test-depth \
+ test-threads test-timeline test-timeline-dup-frames \
+@@ -17,8 +17,8 @@
+ test-invariants
+
+ if X11_TESTS
+-noinst_PROGRAMS += test-pixmap
+-noinst_PROGRAMS += test-devices
++bin_PROGRAMS += test-pixmap
++bin_PROGRAMS += test-devices
+ endif
+
+ INCLUDES = -I$(top_srcdir)/ -I$(top_srcdir)/clutter -I$(top_builddir)/clutter
+@@ -73,4 +73,9 @@
+ test_invariants_SOURCES = test-invariants.c
+ test_devices_SOURCES = test-devices.c
+
++test_textdir = $(pkgdatadir)
++test_text_DATA = test-text.c
++test_actorsdir = $(pkgdatadir)
++test_actors_DATA = redhand.png
++
+ EXTRA_DIST = redhand.png test-script.json
+Index: clutter/tests/test-actors.c
+===================================================================
+--- clutter.orig/tests/test-actors.c 2008-06-26 16:46:26.000000000 +0100
++++ clutter/tests/test-actors.c 2008-06-26 16:46:31.000000000 +0100
+@@ -195,7 +195,7 @@
+ /* Create a texture from file, then clone in to same resources */
+ if (i == 0)
+ {
+- if ((oh->hand[i] = clutter_texture_new_from_file ("redhand.png",
++ if ((oh->hand[i] = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png",
+ &error)) == NULL)
+ {
+ g_error ("image load failed: %s", error->message);
diff --git a/meta/recipes-graphics/clutter/clutter/enable_tests-1.0.patch b/meta/recipes-graphics/clutter/clutter/enable_tests-1.0.patch
new file mode 100644
index 000000000..953edf6bb
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/enable_tests-1.0.patch
@@ -0,0 +1,32 @@
+---
+ tests/Makefile.am | 7 ++++++-
+ tests/test-actors.c | 2 +-
+ tests/test-text.c | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: git/tests/interactive/Makefile.am
+===================================================================
+--- git.orig/tests/interactive/Makefile.am 2009-03-12 11:01:36.000000000 +0000
++++ git/tests/interactive/Makefile.am 2009-03-12 11:04:12.000000000 +0000
+@@ -77,7 +77,7 @@
+ AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
+ AM_LDFLAGS = $(CLUTTER_LIBS)
+
+-noinst_PROGRAMS = test-interactive
++bin_PROGRAMS = test-interactive
+
+ test_interactive_SOURCES = \
+ test-main.c \
+Index: git/tests/interactive/test-actors.c
+===================================================================
+--- git.orig/tests/interactive/test-actors.c 2009-03-12 11:01:36.000000000 +0000
++++ git/tests/interactive/test-actors.c 2009-03-12 11:06:32.000000000 +0000
+@@ -182,7 +182,7 @@
+ oh->scaler_1 = clutter_behaviour_scale_new (alpha, 0.5, 0.5, 1.0, 1.0);
+ oh->scaler_2 = clutter_behaviour_scale_new (alpha, 1.0, 1.0, 0.5, 0.5);
+
+- real_hand = clutter_texture_new_from_file ("redhand.png", &error);
++ real_hand = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png", &error);
+ if (real_hand == NULL)
+ {
+ g_error ("image load failed: %s", error->message);
diff --git a/meta/recipes-graphics/clutter/clutter/enable_tests-654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673.patch b/meta/recipes-graphics/clutter/clutter/enable_tests-654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673.patch
new file mode 100644
index 000000000..953edf6bb
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/enable_tests-654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673.patch
@@ -0,0 +1,32 @@
+---
+ tests/Makefile.am | 7 ++++++-
+ tests/test-actors.c | 2 +-
+ tests/test-text.c | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: git/tests/interactive/Makefile.am
+===================================================================
+--- git.orig/tests/interactive/Makefile.am 2009-03-12 11:01:36.000000000 +0000
++++ git/tests/interactive/Makefile.am 2009-03-12 11:04:12.000000000 +0000
+@@ -77,7 +77,7 @@
+ AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
+ AM_LDFLAGS = $(CLUTTER_LIBS)
+
+-noinst_PROGRAMS = test-interactive
++bin_PROGRAMS = test-interactive
+
+ test_interactive_SOURCES = \
+ test-main.c \
+Index: git/tests/interactive/test-actors.c
+===================================================================
+--- git.orig/tests/interactive/test-actors.c 2009-03-12 11:01:36.000000000 +0000
++++ git/tests/interactive/test-actors.c 2009-03-12 11:06:32.000000000 +0000
+@@ -182,7 +182,7 @@
+ oh->scaler_1 = clutter_behaviour_scale_new (alpha, 0.5, 0.5, 1.0, 1.0);
+ oh->scaler_2 = clutter_behaviour_scale_new (alpha, 1.0, 1.0, 0.5, 0.5);
+
+- real_hand = clutter_texture_new_from_file ("redhand.png", &error);
++ real_hand = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png", &error);
+ if (real_hand == NULL)
+ {
+ g_error ("image load failed: %s", error->message);
diff --git a/meta/recipes-graphics/clutter/clutter/enable_tests.patch b/meta/recipes-graphics/clutter/clutter/enable_tests.patch
new file mode 100644
index 000000000..f4af7c94f
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/enable_tests.patch
@@ -0,0 +1,32 @@
+---
+ tests/Makefile.am | 7 ++++++-
+ tests/test-actors.c | 2 +-
+ tests/test-text.c | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: git/tests/interactive/Makefile.am
+===================================================================
+--- git.orig/tests/interactive/Makefile.am 2009-11-30 17:39:46.000000000 +0000
++++ git/tests/interactive/Makefile.am 2009-11-30 17:42:30.000000000 +0000
+@@ -88,7 +88,7 @@
+
+ common_ldadd = $(top_builddir)/clutter/libclutter-@CLUTTER_WINSYS@-@CLUTTER_API_VERSION@.la
+
+-noinst_PROGRAMS = test-interactive
++bin_PROGRAMS = test-interactive
+
+ test_interactive_SOURCES = test-main.c $(UNIT_TESTS)
+ test_interactive_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
+Index: git/tests/interactive/test-actors.c
+===================================================================
+--- git.orig/tests/interactive/test-actors.c 2009-11-30 17:39:46.000000000 +0000
++++ git/tests/interactive/test-actors.c 2009-11-30 17:43:03.000000000 +0000
+@@ -178,7 +178,7 @@
+ oh->scaler_1 = clutter_behaviour_scale_new (alpha, 0.5, 0.5, 1.0, 1.0);
+ oh->scaler_2 = clutter_behaviour_scale_new (alpha, 1.0, 1.0, 0.5, 0.5);
+
+- file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL);
++ file = g_build_filename (TESTS_DATADIR, "/usr/share/clutter/redhand.png", NULL);
+ real_hand = clutter_texture_new_from_file (file, &error);
+ if (real_hand == NULL)
+ g_error ("image load failed: %s", error->message);
diff --git a/meta/recipes-graphics/clutter/clutter/symconflict.patch b/meta/recipes-graphics/clutter/clutter/symconflict.patch
new file mode 100644
index 000000000..7685c2116
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter/symconflict.patch
@@ -0,0 +1,31 @@
+Index: git/tests/test-depth.c
+===================================================================
+--- git.orig/tests/test-depth.c 2009-05-24 14:54:40.000000000 +0100
++++ git/tests/test-depth.c 2009-05-24 14:55:13.000000000 +0100
+@@ -11,13 +11,13 @@
+ clutter_timeline_start (timeline);
+ }
+
+-static ClutterActor *raise[2];
++static ClutterActor *clutterraise[2];
+ static gboolean raise_no = 0;
+
+ static gboolean
+ raise_top (gpointer ignored)
+ {
+- clutter_actor_raise_top (raise[raise_no]);
++ clutter_actor_raise_top (clutterraise[raise_no]);
+ raise_no = !raise_no;
+ return TRUE;
+ }
+@@ -202,8 +202,8 @@
+
+ clutter_timeline_start (timeline);
+
+- raise[0] = rect;
+- raise[1] = hand;
++ clutterraise[0] = rect;
++ clutterraise[1] = hand;
+ g_timeout_add (2000, raise_top, NULL);
+
+ clutter_main ();
diff --git a/meta/recipes-graphics/clutter/clutter_git.bb b/meta/recipes-graphics/clutter/clutter_git.bb
new file mode 100644
index 000000000..a20515ec5
--- /dev/null
+++ b/meta/recipes-graphics/clutter/clutter_git.bb
@@ -0,0 +1,17 @@
+require clutter.inc
+require clutter-package.inc
+
+PV = "1.0.0+git${SRCPV}"
+PR = "r8"
+
+SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=master \
+ file://enable_tests-654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673.patch;patch=1;rev=654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673 \
+ file://enable_tests.patch;patch=1;notrev=654c26a1301c9bc5f8e3e5e3b68af5eb1b2e0673 "
+S = "${WORKDIR}/git"
+
+BASE_CONF += "--disable-introspection"
+
+do_configure_prepend () {
+ # Disable DOLT
+ sed -i -e 's/^DOLT//' ${S}/configure.ac
+} \ No newline at end of file
diff --git a/meta/recipes-graphics/clutter/moblin-proto/fix-shader-and-callbacks.patch b/meta/recipes-graphics/clutter/moblin-proto/fix-shader-and-callbacks.patch
new file mode 100644
index 000000000..4a3eddb8c
--- /dev/null
+++ b/meta/recipes-graphics/clutter/moblin-proto/fix-shader-and-callbacks.patch
@@ -0,0 +1,44 @@
+diff --git a/Makefile b/Makefile
+index e05b5b7..c348a1e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -64,7 +64,7 @@ HFILES = $(wildcard *.h)
+ %.o: %.c $(HFILES)
+ $(CC) -g $(CFLAGS) $(INCS) -c $< -o$@
+ $(BINARY): $(OBJECTS)
+- $(CXX) -o $@ $(OBJECTS) $(LIBS)
++ $(CXX) -rdynamic -o $@ $(OBJECTS) $(LIBS)
+
+ #$(BINARY): $(CFILES)
+ # $(LD) $(CFLAGS) $(INCS) $(CFILES) $(LIBS) -o $@
+diff --git a/moblin-desktop.c b/moblin-desktop.c
+index 6dd4f2c..fb9d231 100644
+--- a/moblin-desktop.c
++++ b/moblin-desktop.c
+@@ -103,6 +103,8 @@ void moblin_blur (void)
+ if (desktop->maincopy)
+ return;
+
++ if (clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
++ {
+ #if 0
+ desktop->maincopy = clutter_texture_new_from_actor (desktop->mainstuff);
+ #else
+@@ -158,6 +160,17 @@ void moblin_blur (void)
+ 1.0f / moblin_desktop_width ());
+ }
+ clutter_actor_set_shader_param (desktop->maincopy, "radius", 3.0);
++ }
++ else
++ {
++ ClutterColor clr= { 0x44, 0x44, 0x44, 0x77 };
++ guint w, h;
++
++ desktop->maincopy = clutter_rectangle_new_with_color (&clr);
++ clutter_actor_get_size (desktop->mainstuff, &w, &h);
++ clutter_actor_set_size (desktop->maincopy, w, h);
++ clutter_group_add (desktop->copyholder, desktop->maincopy);
++ }
+ }
+
+ void moblin_unblur (void)
diff --git a/meta/recipes-graphics/clutter/moblin-proto/fix.patch b/meta/recipes-graphics/clutter/moblin-proto/fix.patch
new file mode 100644
index 000000000..8bde67762
--- /dev/null
+++ b/meta/recipes-graphics/clutter/moblin-proto/fix.patch
@@ -0,0 +1,22 @@
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile 2008-08-11 22:49:48.000000000 +0100
++++ git/Makefile 2008-08-12 12:16:52.000000000 +0100
+@@ -15,7 +15,7 @@
+
+ SCP_DESTINATION=pug.vpn:tmp
+
+-BINARY=$(shell basename `pwd`)#
++BINARY=moblin-proto
+ PACKAGE=../$(BINARY).tar.bz2 # you can use both .gz and .bz2 as extension here
+
+ #CFLAGS= -Wall -I /home/pippin/src/clutter-box2d/clutter-box2d
+@@ -61,7 +61,7 @@
+ %.o: %.c $(HFILES)
+ $(CC) -g $(CFLAGS) $(INCS) -c $< -o$@
+ $(BINARY): $(OBJECTS)
+- $(CC) -o $@ $(OBJECTS) $(LIBS)
++ $(CXX) -o $@ $(OBJECTS) $(LIBS)
+
+ #$(BINARY): $(CFILES)
+ # $(LD) $(CFLAGS) $(INCS) $(CFILES) $(LIBS) -o $@
diff --git a/meta/recipes-graphics/clutter/moblin-proto/paths.patch b/meta/recipes-graphics/clutter/moblin-proto/paths.patch
new file mode 100644
index 000000000..d241c8ff7
--- /dev/null
+++ b/meta/recipes-graphics/clutter/moblin-proto/paths.patch
@@ -0,0 +1,15 @@
+diff --git a/moblin-desktop.h b/moblin-desktop.h
+index 880a9ad..3d51a14 100644
+--- a/moblin-desktop.h
++++ b/moblin-desktop.h
+@@ -29,8 +29,8 @@
+ #define __MAIN_H__
+
+
+-#define ASSET_ROOT "./assets/"
+-#define JSON_ROOT "./layouts/"
++#define ASSET_ROOT "/usr/share/moblin-proto/assets/"
++#define JSON_ROOT "/usr/share/moblin-proto/layouts/"
+
+ typedef struct
+ {
diff --git a/meta/recipes-graphics/clutter/moblin-proto_git.bb b/meta/recipes-graphics/clutter/moblin-proto_git.bb
new file mode 100644
index 000000000..b86d62238
--- /dev/null
+++ b/meta/recipes-graphics/clutter/moblin-proto_git.bb
@@ -0,0 +1,19 @@
+DEPENDS = "clutter-box2d"
+
+PV = "0.0+git${SRCPV}"
+PR = "r2"
+
+SRC_URI = "git://moblin.org/repos/users/pippin/prototype.git/;protocol=http \
+ file://paths.patch;patch=1 \
+ file://fix-shader-and-callbacks.patch;patch=1"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ install -d ${D}${bindir}
+ install ${S}/moblin-proto ${D}${bindir}
+
+ install -d ${D}${datadir}/moblin-proto/
+ cp -a ${S}/assets ${D}${datadir}/moblin-proto/
+ cp -a ${S}/layouts ${D}${datadir}/moblin-proto/
+}
diff --git a/meta/recipes-graphics/clutter/table.inc b/meta/recipes-graphics/clutter/table.inc
new file mode 100644
index 000000000..dc949172b
--- /dev/null
+++ b/meta/recipes-graphics/clutter/table.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Table Clutter Demo"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "clutter-gst-0.6 gnome-vfs"
+
+inherit autotools pkgconfig
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/table ${D}${bindir}/table
+}
+
diff --git a/meta/recipes-graphics/clutter/table/fixes.patch b/meta/recipes-graphics/clutter/table/fixes.patch
new file mode 100644
index 000000000..a7cdc4371
--- /dev/null
+++ b/meta/recipes-graphics/clutter/table/fixes.patch
@@ -0,0 +1,14 @@
+Index: table/Makefile
+===================================================================
+--- table.orig/Makefile 2007-07-10 13:24:18.000000000 +0100
++++ table/Makefile 2007-07-10 13:28:10.000000000 +0100
+@@ -8,7 +8,7 @@ all: table
+
+
+ table: table.o clutter-dominatrix.o clutter-video-player.o
+- $(CC) -g -Wall $(CFLAGS) -o $@ table.o clutter-dominatrix.o clutter-video-player.o $(LIBS)
++ $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) -o $@ table.o clutter-dominatrix.o clutter-video-player.o $(LIBS)
+
+ clean:
+ rm -fr *.o table
+\ No newline at end of file
diff --git a/meta/recipes-graphics/clutter/table_git.bb b/meta/recipes-graphics/clutter/table_git.bb
new file mode 100644
index 000000000..5aa4153c1
--- /dev/null
+++ b/meta/recipes-graphics/clutter/table_git.bb
@@ -0,0 +1,11 @@
+require table.inc
+
+PV = "0.3.0+git${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.clutter-project.org/toys.git;protocol=git \
+ file://fixes.patch;patch=1"
+
+S = "${WORKDIR}/git/table"
+
+
diff --git a/meta/recipes-graphics/clutter/tidy.inc b/meta/recipes-graphics/clutter/tidy.inc
new file mode 100644
index 000000000..3fa387c04
--- /dev/null
+++ b/meta/recipes-graphics/clutter/tidy.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Tidy library"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL"
+
+STDDEPENDS = "clutter-0.8"
+BASE_CONF = "--disable-gtk-doc"
+
+DEPENDS = "${STDDEPENDS}"
+EXTRA_OECONF = "${BASE_CONF}"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "tidy-examples"
+FILES_tidy-examples = "${bindir}/test-*"
+
+do_configure_prepend() {
+ touch ${S}/gtk-doc.make
+ sed -i s:docs/reference/Makefile::g ${S}/configure.ac
+ sed -i s:docs::g ${S}/Makefile.am
+}
diff --git a/meta/recipes-graphics/clutter/tidy/autofoo.patch b/meta/recipes-graphics/clutter/tidy/autofoo.patch
new file mode 100644
index 000000000..7f54a3372
--- /dev/null
+++ b/meta/recipes-graphics/clutter/tidy/autofoo.patch
@@ -0,0 +1,11 @@
+Index: tidy/doc/reference/Makefile.am
+===================================================================
+--- tidy.orig/doc/reference/Makefile.am 2007-11-06 19:36:56.000000000 +0000
++++ tidy/doc/reference/Makefile.am 2007-11-06 19:37:02.000000000 +0000
+@@ -77,4 +77,4 @@ include $(top_srcdir)/gtk-doc.make
+
+ # Other files to distribute
+ # e.g. EXTRA_DIST += version.xml.in
+-EXTRA_DIST += version.xml.in
++EXTRA_DIST = version.xml.in
+
diff --git a/meta/recipes-graphics/clutter/tidy/tidy-enable-tests.patch b/meta/recipes-graphics/clutter/tidy/tidy-enable-tests.patch
new file mode 100644
index 000000000..c5e1660c5
--- /dev/null
+++ b/meta/recipes-graphics/clutter/tidy/tidy-enable-tests.patch
@@ -0,0 +1,20 @@
+Index: trunk/tests/Makefile.am
+===================================================================
+--- trunk.orig/tests/Makefile.am 2008-03-04 12:22:10.000000000 +0000
++++ trunk/tests/Makefile.am 2008-03-04 12:23:46.000000000 +0000
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = \
++bin_PROGRAMS = \
+ test-button \
+ test-finger-scroll \
+ test-list-view \
+@@ -14,6 +14,9 @@
+ test-grow \
+ test-viewport
+
++test_texture_framedir = $(pkgdatadir)
++test_texture_frame_DATA = frame.png
++
+ INCLUDES = -I$(top_srcdir)
+ LDADD = $(top_builddir)/tidy/libtidy-1.0.la
+
diff --git a/meta/recipes-graphics/clutter/tidy_git.bb b/meta/recipes-graphics/clutter/tidy_git.bb
new file mode 100644
index 000000000..178526027
--- /dev/null
+++ b/meta/recipes-graphics/clutter/tidy_git.bb
@@ -0,0 +1,10 @@
+require tidy.inc
+
+PV = "0.1.0+git${SRCPV}"
+PR = "r7"
+
+SRC_URI = "git://git.clutter-project.org/tidy.git;protocol=git \
+ file://tidy-enable-tests.patch;patch=1"
+
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/drm/libdrm-2.4.21/installtests.patch b/meta/recipes-graphics/drm/libdrm-2.4.21/installtests.patch
new file mode 100644
index 000000000..9d6a168bb
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm-2.4.21/installtests.patch
@@ -0,0 +1,43 @@
+Index: libdrm-2.4.7/tests/Makefile.am
+===================================================================
+--- libdrm-2.4.7.orig/tests/Makefile.am 2009-04-09 20:16:35.000000000 +0100
++++ libdrm-2.4.7/tests/Makefile.am 2009-04-17 12:35:14.000000000 +0100
+@@ -6,10 +6,11 @@
+
+ LDADD = $(top_builddir)/libdrm.la
+
+-check_PROGRAMS = \
++bin_PROGRAMS = \
+ dristat \
+ drmstat
+
++check_PROGRAMS =
+ SUBDIRS =
+
+ if HAVE_LIBKMS
+Index: libdrm-2.4.7/tests/modeprint/Makefile.am
+===================================================================
+--- libdrm-2.4.7.orig/tests/modeprint/Makefile.am 2009-02-17 19:52:37.000000000 +0000
++++ libdrm-2.4.7/tests/modeprint/Makefile.am 2009-04-17 12:35:32.000000000 +0100
+@@ -3,7 +3,7 @@
+ -I$(top_srcdir)/libdrm/intel/ \
+ -I$(top_srcdir)/libdrm
+
+-noinst_PROGRAMS = \
++bin_PROGRAMS = \
+ modeprint
+
+ modeprint_SOURCES = \
+Index: libdrm-2.4.7/tests/modetest/Makefile.am
+===================================================================
+--- libdrm-2.4.7.orig/tests/modetest/Makefile.am 2009-02-17 19:52:37.000000000 +0000
++++ libdrm-2.4.7/tests/modetest/Makefile.am 2009-04-17 12:35:42.000000000 +0100
+@@ -4,7 +4,7 @@
+ -I$(top_srcdir)/libdrm \
+ $(CAIRO_CFLAGS)
+
+-noinst_PROGRAMS = \
++bin_PROGRAMS = \
+ modetest
+
+ modetest_SOURCES = \
diff --git a/meta/recipes-graphics/drm/libdrm.inc b/meta/recipes-graphics/drm/libdrm.inc
new file mode 100644
index 000000000..4f153ff7f
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "userspace library for accessing the DRM(direct rendering manager)"
+HOMEPAGE = "http://dri.freedesktop.org"
+SECTION = "x11/base"
+LICENSE = "MIT"
+SRC_URI = "http://dri.freedesktop.org/libdrm/libdrm-${PV}.tar.bz2"
+PROVIDES = "drm"
+DEPENDS = "libpthread-stubs udev cairo virtual/libx11"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "libdrm-tests"
+FILES_libdrm-tests = "${bindir}/dr* ${bindir}/mode*"
+
+LEAD_SONAME = "libdrm.so"
diff --git a/meta/recipes-graphics/drm/libdrm_2.4.21.bb b/meta/recipes-graphics/drm/libdrm_2.4.21.bb
new file mode 100644
index 000000000..97ca06900
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm_2.4.21.bb
@@ -0,0 +1,4 @@
+require libdrm.inc
+
+SRC_URI += "file://installtests.patch"
+PR = "r0"
diff --git a/meta/recipes-graphics/drm/libdrm_git.bb b/meta/recipes-graphics/drm/libdrm_git.bb
new file mode 100644
index 000000000..d80dd5f43
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm_git.bb
@@ -0,0 +1,8 @@
+require libdrm.inc
+
+SRC_URI = "git://anongit.freedesktop.org/git/mesa/drm;protocol=git"
+
+S = ${WORKDIR}/git
+
+PV = "2.4.15+git${SRCREV}"
+PR = "r0"
diff --git a/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/97_fontconfig b/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/97_fontconfig
new file mode 100644
index 000000000..2993959db
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/97_fontconfig
@@ -0,0 +1 @@
+d root root 0755 /var/cache/fontconfig none
diff --git a/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/fix-pkgconfig.patch b/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/fix-pkgconfig.patch
new file mode 100644
index 000000000..7fec1e910
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig-2.8.0/fix-pkgconfig.patch
@@ -0,0 +1,13 @@
+---
+ fontconfig.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- fontconfig-2.8.0.orig/fontconfig.pc.in
++++ fontconfig-2.8.0/fontconfig.pc.in
+@@ -7,5 +7,5 @@
+ Description: Font configuration and customization library
+ Version: @VERSION@
+ Libs: -L${libdir} -lfontconfig
+-Libs.private: @LIBXML2_LIBS@ @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@
++Libs.private: @LIBXML2_LIBS@ @EXPAT_LIBS@ -L{libdir} -lfreetype @ICONV_LIBS@
+ Cflags: -I${includedir}
diff --git a/meta/recipes-graphics/fontconfig/fontconfig-native_2.8.0.bb b/meta/recipes-graphics/fontconfig/fontconfig-native_2.8.0.bb
new file mode 100644
index 000000000..03a1bc86c
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig-native_2.8.0.bb
@@ -0,0 +1,12 @@
+require fontconfig_${PV}.bb
+inherit native
+DEPENDS = "freetype-native expat-native zlib-native"
+
+EXTRA_OEMAKE = ""
+EXTRA_OECONF = "${@[' --disable-docs',' --disable-docs --with-freetype-config=%s/freetype-config' % bb.data.getVar('STAGING_BINDIR', d, 1)][os.path.isfile('%s/freetype-config' % bb.data.getVar('STAGING_BINDIR', d, 1))]}"
+
+do_install_append () {
+ install -d ${D}${bindir}/
+ install fc-lang/fc-lang ${D}${bindir}/
+ install fc-glyphname/fc-glyphname ${D}${bindir}/
+}
diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb
new file mode 100644
index 000000000..e0403ecb3
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb
@@ -0,0 +1,81 @@
+DESCRIPTION = "A library for configuring and customizing font access."
+HOMEPAGE = "http://www.fontconfig.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig"
+
+LICENSE = "MIT-style & MIT & Public Domain"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f3ad4145dea6ca7efa2f1bee8165a7a1 \
+ file://src/fcfreetype.c;endline=45;md5=bc3dd139e2f7245a02fde5545b203a6f \
+ file://src/fccache.c;beginline=1020;endline=1035;md5=0326cfeb4a7333dd4dd25fbbc4b9f27f"
+
+SECTION = "libs"
+
+DEPENDS = "expat freetype zlib"
+
+PR = "r1"
+
+SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
+ file://fix-pkgconfig.patch \
+ file://97_fontconfig"
+
+PACKAGES =+ "fontconfig-utils-dbg fontconfig-utils "
+FILES_fontconfig-utils-dbg = "${bindir}/*.dbg"
+FILES_fontconfig-utils = "${bindir}/*"
+
+# Work around past breakage in debian.bbclass
+RPROVIDES_fontconfig-utils = "libfontconfig-utils"
+RREPLACES_fontconfig-utils = "libfontconfig-utils"
+RCONFLICTS_fontconfig-utils = "libfontconfig-utils"
+DEBIAN_NOAUTONAME_fontconfig-utils = "1"
+
+PARALLEL_MAKE = ""
+
+inherit autotools pkgconfig
+
+export HASDOCBOOK="no"
+
+EXTRA_OECONF = " --disable-docs --with-arch=${HOST_ARCH}"
+EXTRA_OEMAKE = "FC_LANG=fc-lang FC_GLYPHNAME=fc-glyphname"
+
+# The tarball has some of the patched files as read only, which
+# patch doesn't like at all
+
+fontconfig_do_unpack() {
+ chmod -R u+rw ${S}
+}
+
+python do_unpack () {
+ bb.build.exec_func('base_do_unpack', d)
+ bb.build.exec_func('fontconfig_do_unpack', d)
+}
+
+BUILD_CFLAGS += " -I${STAGING_INCDIR}/freetype2"
+
+do_configure_append () {
+ sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-case/Makefile
+ sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-glyphname/Makefile
+ sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-lang/Makefile
+ sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-arch/Makefile
+
+ sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-case/Makefile
+ sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-glyphname/Makefile
+ sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-lang/Makefile
+ sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-arch/Makefile
+
+ sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-case/Makefile
+ sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-glyphname/Makefile
+ sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-lang/Makefile
+ sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-arch/Makefile
+
+ sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-case/Makefile
+ sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-glyphname/Makefile
+ sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-lang/Makefile
+ sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-arch/Makefile
+
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/97_fontconfig ${D}${sysconfdir}/default/volatiles
+ rmdir ${D}${localstatedir}/cache/fontconfig
+ rmdir ${D}${localstatedir}/cache/
+}
diff --git a/meta/recipes-graphics/freetype/freetype-2.3.12/no-hardcode.patch b/meta/recipes-graphics/freetype/freetype-2.3.12/no-hardcode.patch
new file mode 100644
index 000000000..44ae450a1
--- /dev/null
+++ b/meta/recipes-graphics/freetype/freetype-2.3.12/no-hardcode.patch
@@ -0,0 +1,11 @@
+--- freetype-2.1.10/builds/unix/freetype-config.in.old 2006-05-01 12:39:20.000000000 +0100
++++ freetype-2.1.10/builds/unix/freetype-config.in 2006-05-01 12:39:34.000000000 +0100
+@@ -16,7 +16,7 @@
+ libdir=@libdir@
+ enable_shared=@enable_shared@
+ wl=@wl@
+-hardcode_libdir_flag_spec='@hardcode_libdir_flag_spec@'
++hardcode_libdir_flag_spec=''
+
+ usage()
+ {
diff --git a/meta/recipes-graphics/freetype/freetype_2.3.12.bb b/meta/recipes-graphics/freetype/freetype_2.3.12.bb
new file mode 100644
index 000000000..da62ffb3b
--- /dev/null
+++ b/meta/recipes-graphics/freetype/freetype_2.3.12.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "Freetype font rendering library"
+HOMEPAGE = "http://www.freetype.org/"
+BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
+
+LICENSE = "FreeTypeLicense | GPLv2+"
+LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=8bc1a580aeb518100d00a2dd29e68edf \
+ file://docs/FTL.TXT;md5=d479e83797f699fe873b38dadd0fcd4c \
+ file://docs/GPL.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
+
+SECTION = "libs"
+
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
+ file://no-hardcode.patch"
+
+S = "${WORKDIR}/freetype-${PV}"
+
+inherit autotools pkgconfig binconfig
+
+LIBTOOL = "${S}/builds/unix/${HOST_SYS}-libtool"
+EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'"
+EXTRA_OEMAKE_virtclass-native = ""
+EXTRA_OECONF = "--without-zlib"
+
+do_configure() {
+ cd builds/unix
+ libtoolize --force --copy
+ aclocal -I .
+ gnu-configize --force
+ autoconf
+ cd ${S}
+ oe_runconf
+}
+
+do_configure_virtclass-native() {
+ (cd builds/unix && gnu-configize) || die "failure running gnu-configize"
+ oe_runconf
+}
+
+do_compile_prepend() {
+ ${BUILD_CC} -o objs/apinames src/tools/apinames.c
+}
+
+FILES_${PN} = "${libdir}/lib*${SOLIBS}"
+FILES_${PN}-dev += "${bindir}"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta/recipes-graphics/libfakekey/libfakekey_svn.bb b/meta/recipes-graphics/libfakekey/libfakekey_svn.bb
new file mode 100644
index 000000000..634fd4ea0
--- /dev/null
+++ b/meta/recipes-graphics/libfakekey/libfakekey_svn.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "libfakekey"
+HOMEPAGE = "http://matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+
+LICENSE = "LGPLv2+"
+
+DEPENDS = "libxtst"
+SECTION = "x11/wm"
+PV = "0.0+svnr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
+
+S = "${WORKDIR}/${PN}"
+
+inherit autotools pkgconfig gettext
diff --git a/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch b/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch
new file mode 100644
index 000000000..ab9cdc74a
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch
@@ -0,0 +1,258 @@
+--- libmatchbox/libmb/mbpixbuf.c.orig 2007-05-04 14:41:55.000000000 +0100
++++ libmatchbox/libmb/mbpixbuf.c 2007-05-04 14:41:55.000000000 +0100
+@@ -710,46 +710,19 @@
+ return colnum;
+ }
+
+-
+-static unsigned long
+-mb_pixbuf_get_pixel(MBPixbuf *pb, int r, int g, int b, int a)
++/*
++ * Split the mb_pixbuf_get_pixel() function into several specialized
++ * functions which we will inline; this allows us to optimize
++ * mb_pixbuf_img_render_to_drawable_with_gc () by taking some of the
++ * decision taking outside of the double loop
++ */
++
++/*
++ * Get pixel value for rgb values and pixel depth <= 8
++ */
++static inline unsigned long
++mb_pixbuf_get_pixel_le8_rgb (MBPixbuf *pb, int r, int g, int b)
+ {
+- if (pb->depth > 8)
+- {
+- switch (pb->depth)
+- {
+- case 15:
+- return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3);
+- case 16:
+- return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3);
+- case 24:
+- case 32:
+- switch (pb->byte_order)
+- {
+- case BYTE_ORD_24_RGB:
+- return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
+- case BYTE_ORD_24_RBG:
+- return ((r & 0xff) << 16) | ((b & 0xff) << 8) | (g & 0xff);
+- case BYTE_ORD_24_BRG:
+- return ((b & 0xff) << 16) | ((r & 0xff) << 8) | (g & 0xff);
+- case BYTE_ORD_24_BGR:
+- return ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff);
+- case BYTE_ORD_24_GRB:
+- return ((g & 0xff) << 16) | ((r & 0xff) << 8) | (b & 0xff);
+- case BYTE_ORD_24_GBR:
+- return ((g & 0xff) << 16) | ((b & 0xff) << 8) | (r & 0xff);
+- case BYTE_ORD_32_ARGB:
+- return (a << 24) | (r << 16) | (g << 8) | b;
+- default:
+- return 0;
+- }
+- default:
+- return 0;
+- }
+- return 0;
+- }
+-
+- /* pb->depth <= 8 */
+ switch(pb->vis->class)
+ {
+ case PseudoColor:
+@@ -794,6 +767,111 @@
+ return 0;
+ }
+
++/*
++ * Get pixel value from a pointer to 16bbp value for pixel depth <= 8
++ * and advance the pointer
++ */
++static inline unsigned long
++mb_pixbuf_get_pixel_le8_16bpp_advance (MBPixbuf *pb, unsigned char ** p)
++{
++ unsigned short s = SHORT_FROM_2BYTES(*p);
++ int r, b, g;
++
++ r = (s & 0xf800) >> 8;
++ g = (s & 0x07e0) >> 3;
++ b = (s & 0x001f) << 3;
++
++ *p += 2;
++
++ return mb_pixbuf_get_pixel_le8_rgb (pb, r, g, b);
++}
++
++/*
++ * Get pixel value for rgba values and pixel depth > 8
++ *
++ */
++static inline unsigned long
++mb_pixbuf_get_pixel_gt8_rgba (MBPixbuf *pb, int r, int g, int b, int a)
++{
++ switch (pb->depth)
++ {
++ case 15:
++ switch (pb->byte_order)
++ {
++ case BYTE_ORD_24_RGB:
++ return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3);
++ case BYTE_ORD_24_BGR:
++ return ((b & 0xf8) << 7) | ((g & 0xf8) << 2) | ((r & 0xf8) >> 3);
++ }
++ case 16:
++ switch (pb->byte_order)
++ {
++ case BYTE_ORD_24_RGB:
++ return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3);
++ case BYTE_ORD_24_BGR:
++ return ((b & 0xf8) << 8) | ((g & 0xfc) << 3) | ((r & 0xf8) >> 3);
++ }
++ case 24:
++ case 32:
++ switch (pb->byte_order)
++ {
++ case BYTE_ORD_24_RGB:
++ return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
++ case BYTE_ORD_24_RBG:
++ return ((r & 0xff) << 16) | ((b & 0xff) << 8) | (g & 0xff);
++ case BYTE_ORD_24_BRG:
++ return ((b & 0xff) << 16) | ((r & 0xff) << 8) | (g & 0xff);
++ case BYTE_ORD_24_BGR:
++ return ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff);
++ case BYTE_ORD_24_GRB:
++ return ((g & 0xff) << 16) | ((r & 0xff) << 8) | (b & 0xff);
++ case BYTE_ORD_24_GBR:
++ return ((g & 0xff) << 16) | ((b & 0xff) << 8) | (r & 0xff);
++ case BYTE_ORD_32_ARGB:
++ return (a << 24) | (r << 16) | (g << 8) | b;
++ default:
++ return 0;
++ }
++ default:
++ return 0;
++ }
++}
++
++/*
++ * Get pixel value from pointer to 16bpp data for pixel depth > 8
++ * and advance the pointer
++ *
++ * TODO ? We could take the 32bit case out of here, which would allow
++ * to ignore the alpha value for <15, 24>, but we might not gain that
++ * much by this on arm due to the conditional execution.
++ */
++static inline unsigned long
++mb_pixbuf_get_pixel_gt8_16bpp_advance (MBPixbuf *pb, unsigned char ** p,
++ int has_alpha)
++{
++ unsigned short s = SHORT_FROM_2BYTES(*p);
++ int r, b, g, a;
++
++ r = (s & 0xf800) >> 8;
++ g = (s & 0x07e0) >> 3;
++ b = (s & 0x001f) << 3;
++
++ *p += 2;
++
++ a = has_alpha ? *(*p)++ : 0xff;
++
++ return mb_pixbuf_get_pixel_gt8_rgba (pb, r, g, b, a);
++}
++
++static inline unsigned long
++mb_pixbuf_get_pixel(MBPixbuf *pb, int r, int g, int b, int a)
++{
++ if (pb->depth > 8)
++ return mb_pixbuf_get_pixel_gt8_rgba (pb, r, g, b, a);
++
++ return mb_pixbuf_get_pixel_le8_rgb (pb, r, g, b);
++}
++
+ unsigned long
+ mb_pixbuf_lookup_x_pixel(MBPixbuf *pb, int r, int g, int b, int a)
+ {
+@@ -1825,7 +1903,6 @@
+ mb_pixbuf_img_render_to_drawable_with_gc(pb, img, drw, drw_x, drw_y, pb->gc);
+ }
+
+-
+ void
+ mb_pixbuf_img_render_to_drawable_with_gc(MBPixbuf *pb,
+ MBPixbufImage *img,
+@@ -1883,31 +1960,57 @@
+
+ if (pb->internal_bytespp == 2)
+ {
+- for(y=0; y<img->height; y++)
+- for(x=0; x<img->width; x++)
+- {
+- /* Below is potentially dangerous.
+- */
+- pixel = ( *p | (*(p+1) << 8));
+-
+- p += ((img->has_alpha) ? 3 : 2);
+-
+- XPutPixel(img->ximg, x, y, pixel);
+- }
++ if (pb->depth > 8)
++ {
++ for(y=0; y<img->height; y++)
++ for(x=0; x<img->width; x++)
++ {
++ pixel = mb_pixbuf_get_pixel_gt8_16bpp_advance(pb, &p,
++ img->has_alpha);
++ XPutPixel(img->ximg, x, y, pixel);
++ }
++ }
++ else
++ {
++ for(y=0; y<img->height; y++)
++ for(x=0; x<img->width; x++)
++ {
++ pixel = mb_pixbuf_get_pixel_le8_16bpp_advance(pb, &p);
++ XPutPixel(img->ximg, x, y, pixel);
++ }
++ }
+ }
+ else
+ {
+- for(y=0; y<img->height; y++)
++ if (pb->depth > 8)
+ {
+- for(x=0; x<img->width; x++)
++ for(y=0; y<img->height; y++)
+ {
+- r = ( *p++ );
+- g = ( *p++ );
+- b = ( *p++ );
+- a = ((img->has_alpha) ? *p++ : 0xff);
++ for(x=0; x<img->width; x++)
++ {
++ r = ( *p++ );
++ g = ( *p++ );
++ b = ( *p++ );
++ a = ((img->has_alpha) ? *p++ : 0xff);
+
+- pixel = mb_pixbuf_get_pixel(pb, r, g, b, a);
+- XPutPixel(img->ximg, x, y, pixel);
++ pixel = mb_pixbuf_get_pixel_gt8_rgba(pb, r, g, b, a);
++ XPutPixel(img->ximg, x, y, pixel);
++ }
++ }
++ }
++ else
++ {
++ for(y=0; y<img->height; y++)
++ {
++ for(x=0; x<img->width; x++)
++ {
++ r = ( *p++ );
++ g = ( *p++ );
++ b = ( *p++ );
++
++ pixel = mb_pixbuf_get_pixel_le8_rgb(pb, r, g, b);
++ XPutPixel(img->ximg, x, y, pixel);
++ }
+ }
+ }
+ }
diff --git a/meta/recipes-graphics/libmatchbox/files/16bppfixes.patch b/meta/recipes-graphics/libmatchbox/files/16bppfixes.patch
new file mode 100644
index 000000000..09a034780
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/16bppfixes.patch
@@ -0,0 +1,36 @@
+Index: libmb/mbpixbuf.c
+===================================================================
+--- libmatchbox/libmb.orig/mbpixbuf.c 2006-02-01 12:45:55.000000000 +0000
++++ libmatchbox/libmb/mbpixbuf.c 2006-03-11 15:20:47.000000000 +0000
+@@ -716,7 +716,13 @@
+ case 15:
+ return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3);
+ case 16:
+- return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3);
++ switch (pb->byte_order)
++ {
++ case BYTE_ORD_24_RGB:
++ return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3);
++ case BYTE_ORD_24_BGR:
++ return ((b & 0xf8) << 8) | ((g & 0xfc) << 3) | ((r & 0xf8) >> 3);
++ }
+ case 24:
+ case 32:
+ switch (pb->byte_order)
+@@ -1880,12 +1886,11 @@
+ for(y=0; y<img->height; y++)
+ for(x=0; x<img->width; x++)
+ {
+- /* Below is potentially dangerous.
+- */
+- pixel = ( *p | (*(p+1) << 8));
++ internal_16bpp_pixel_to_rgb(p, r, g, b);
++ internal_16bpp_pixel_next(p);
++ a = ((img->has_alpha) ? *p++ : 0xff);
+
+- p += ((img->has_alpha) ? 3 : 2);
+-
++ pixel = mb_pixbuf_get_pixel(pb, r, g, b, a);
+ XPutPixel(img->ximg, x, y, pixel);
+ }
+ }
diff --git a/meta/recipes-graphics/libmatchbox/files/autofoo.patch b/meta/recipes-graphics/libmatchbox/files/autofoo.patch
new file mode 100644
index 000000000..ad3be578e
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/autofoo.patch
@@ -0,0 +1,19 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- libmatchbox-1.5/configure.ac~autofoo 2004-12-21 12:56:46.000000000 -0500
++++ libmatchbox-1.5/configure.ac 2005-01-18 16:40:04.421179624 -0500
+@@ -1,10 +1,10 @@
+ AC_PREREQ(2.53)
+ AC_INIT([libmatchbox], 1.5, [mallum@handhelds.org])
+ AC_CONFIG_SRCDIR([libmb/mbtray.c])
++AC_CONFIG_AUX_DIR(.)
+
+ AM_INIT_AUTOMAKE()
+ AM_CONFIG_HEADER([config.h])
+-AC_CONFIG_AUX_DIR(.)
+
+ # Checks for programs.
+ AC_GNU_SOURCE
diff --git a/meta/recipes-graphics/libmatchbox/files/check.m4 b/meta/recipes-graphics/libmatchbox/files/check.m4
new file mode 100644
index 000000000..97bfd9c47
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/check.m4
@@ -0,0 +1,133 @@
+dnl AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS
+dnl
+
+AC_DEFUN(AM_PATH_CHECK,
+[
+ AC_ARG_WITH(check,
+ [ --with-check=PATH prefix where check is installed [default=auto]])
+
+ min_check_version=ifelse([$1], ,0.8.2,$1)
+
+ AC_MSG_CHECKING(for check - version >= $min_check_version)
+
+ if test x$with_check = xno; then
+ AC_MSG_RESULT(disabled)
+ ifelse([$3], , AC_MSG_ERROR([disabling check is not supported]), [$3])
+ else
+ if test "x$with_check" != x; then
+ CHECK_CFLAGS="-I$with_check/include"
+ CHECK_LIBS="-L$with_check/lib -lcheck"
+ else
+ CHECK_CFLAGS=""
+ CHECK_LIBS="-lcheck"
+ fi
+
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+
+ CFLAGS="$CFLAGS $CHECK_CFLAGS"
+ LIBS="$CHECK_LIBS $LIBS"
+
+ rm -f conf.check-test
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <check.h>
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.check-test");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = strdup("$min_check_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_check_version");
+ return 1;
+ }
+
+ if ((CHECK_MAJOR_VERSION != check_major_version) ||
+ (CHECK_MINOR_VERSION != check_minor_version) ||
+ (CHECK_MICRO_VERSION != check_micro_version))
+ {
+ printf("\n*** The check header file (version %d.%d.%d) does not match\n",
+ CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION);
+ printf("*** the check library (version %d.%d.%d).\n",
+ check_major_version, check_minor_version, check_micro_version);
+ return 1;
+ }
+
+ if ((check_major_version > major) ||
+ ((check_major_version == major) && (check_minor_version > minor)) ||
+ ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of check (%d.%d.%d) was found.\n",
+ check_major_version, check_minor_version, check_micro_version);
+ printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro);
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the check library and header\n");
+ printf("*** file is being found. Rerun configure with the --with-check=PATH option\n");
+ printf("*** to specify the prefix where the correct version was installed.\n");
+ }
+
+ return 1;
+}
+],, no_check=yes, [echo $ac_n "cross compiling; assumed OK... $ac_c"])
+
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+
+ if test "x$no_check" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test -f conf.check-test ; then
+ :
+ else
+ echo "*** Could not run check test program, checking why..."
+ CFLAGS="$CFLAGS $CHECK_CFLAGS"
+ LIBS="$CHECK_LIBS $LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <check.h>
+], , [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding check. You'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for"
+ echo "*** the exact error that occured." ])
+
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+
+ CHECK_CFLAGS=""
+ CHECK_LIBS=""
+
+ rm -f conf.check-test
+ ifelse([$3], , AC_MSG_ERROR([check not found]), [$3])
+ fi
+
+ AC_SUBST(CHECK_CFLAGS)
+ AC_SUBST(CHECK_LIBS)
+
+ rm -f conf.check-test
+
+ fi
+])
diff --git a/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch b/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch
new file mode 100644
index 000000000..083d32a04
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch
@@ -0,0 +1,79 @@
+---
+ configure.ac | 15 +++++++--------
+ libmb.pc.in | 2 +-
+ 2 files changed, 8 insertions(+), 9 deletions(-)
+
+Index: libmatchbox-1.9/configure.ac
+===================================================================
+--- libmatchbox-1.9.orig/configure.ac 2007-11-11 22:26:43.000000000 +0000
++++ libmatchbox-1.9/configure.ac 2007-11-11 22:52:09.000000000 +0000
+@@ -84,6 +84,7 @@ if test $have_libx11pc = yes; then
+ xft_pkg=xft
+ SUPPORTS_XFT=1
+ AC_DEFINE(USE_XFT, [1], [Use Xft])
++ XFT_REQUIRED="xft"
+ fi
+ # XXX : xau is missing from x11.pc - workaround is too add here
+ PKG_CHECK_MODULES(XLIBS, x11 xext $xft_pkg)
+@@ -108,6 +109,7 @@ if test x$enable_xft != xno; then
+ AC_DEFINE(USE_XFT, [1], [Use Xft])
+ SUPPORTS_XFT=1
+ AC_MSG_RESULT(yes)
++ XFT_REQUIRED="xft"
+ else
+
+ AC_PATH_PROG(XFT_CONFIG, xft-config, no)
+@@ -122,21 +124,17 @@ if test x$enable_xft != xno; then
+ AC_DEFINE(USE_XFT, [1], [Use Xft])
+ SUPPORTS_XFT=1
+ AC_MSG_RESULT(yes)
++ MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XFT_CFLAGS"
++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XFT_LIBS"
+ fi
+ fi
+ fi
+
+ XLIBS_CFLAGS="$XLIBS_CLAGS $XFT_CFLAGS"
+-XLIBS_LIBS="$X_LIBS $XFT_LIBS -lX11 -lXext"
+-
+-MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS"
++XLIBS_LIBS="$XLIBS_LIBS $XFT_LIBS -lX11 -lXext"
+
+ fi
+
+-# do this here for freetype include
+-MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XLIBS_CFLAGS"
+-
+-
+ dnl ------ Check for Pango ---------------------------------------------------
+
+ if test x$enable_pango != xno; then
+@@ -172,7 +170,7 @@ if test x$enable_png != xno; then
+ AC_DEFINE(USE_PNG, [1], [Use Png])
+ SUPPORTS_PNG=1
+ PNG_LIBS="-lpng -lz"
+- MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS $PNG_LIBS"
++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS"
+ else
+ AC_MSG_WARN([*** Cannot find PNG, disabling support])
+ enable_png=no
+@@ -340,6 +338,7 @@ AC_SUBST(MB_EXTRA_CFLAGS)
+ AC_SUBST(XLIBS_REQUIRED)
+ AC_SUBST(PANGO_REQUIRED)
+ AC_SUBST(PNG_REQUIRED)
++AC_SUBST(XFT_REQUIRED)
+
+ dnl ------ Below used for mbconfig.h ----------------------------------------
+
+Index: libmatchbox-1.9/libmb.pc.in
+===================================================================
+--- libmatchbox-1.9.orig/libmb.pc.in 2007-11-11 22:30:47.000000000 +0000
++++ libmatchbox-1.9/libmb.pc.in 2007-11-11 22:31:01.000000000 +0000
+@@ -7,6 +7,6 @@ Name: libmb
+ Description: Utility Library used by Matchbox utilities.
+ Version: @VERSION@
+
+-Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@
++Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ @XFT_REQUIRED@
+ Libs: -L${libdir} -lmb @MB_EXTRA_LIBS@
+ Cflags: -I${includedir} @MB_EXTRA_CFLAGS@
diff --git a/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch b/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch
new file mode 100644
index 000000000..990b738e6
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch
@@ -0,0 +1,14 @@
+diff -urNd ../libmatchbox-1.6-r1/libmatchbox-1.6/configure.ac libmatchbox-1.6/configure.ac
+--- ../libmatchbox-1.6-r1/libmatchbox-1.6/configure.ac 2005-01-11 21:47:39 +00:00
++++ libmatchbox-1.6/configure.ac 2005-03-14 03:06:25 +00:00
+@@ -2,9 +2,9 @@
+ AC_INIT([libmatchbox], 1.6, [mallum@handhelds.org])
+ AC_CONFIG_SRCDIR([libmb/mbtray.c])
+
++AC_CONFIG_AUX_DIR(.)
+ AM_INIT_AUTOMAKE()
+ AM_CONFIG_HEADER([config.h])
+-AC_CONFIG_AUX_DIR(.)
+
+ # Checks for programs.
+ AC_GNU_SOURCE
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox.inc b/meta/recipes-graphics/libmatchbox/libmatchbox.inc
new file mode 100644
index 000000000..fdc866fe0
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Matchbox window manager core library"
+HOMEPAGE = "http://matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
+ file://libmb/mbexp.c;endline=20;md5=28c0aef3b23e308464f5dae6a11b0d2f \
+ file://libmb/mbdotdesktop.c;endline=21;md5=5a287156b3207e851c1d68d09c439b51"
+
+SECTION = "x11/libs"
+DEPENDS = "virtual/libx11 libxext expat libxft jpeg libpng zlib libxsettings-client startup-notification"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-jpeg --enable-expat --enable-xsettings --enable-startup-notification"
+
+S = "${WORKDIR}/libmatchbox-${PV}"
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_1.9.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_1.9.bb
new file mode 100644
index 000000000..1d7d9c8f4
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox_1.9.bb
@@ -0,0 +1,12 @@
+require libmatchbox.inc
+
+PR = "r7"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \
+ file://16bppfixes.patch;patch=1 \
+ file://configure_fixes.patch;patch=1 \
+ file://check.m4"
+
+do_configure_prepend () {
+ cp ${WORKDIR}/check.m4 ${S}/
+}
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_svn.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_svn.bb
new file mode 100644
index 000000000..3cdcd324f
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox_svn.bb
@@ -0,0 +1,16 @@
+require libmatchbox.inc
+
+PV = "1.7+svnr${SRCREV}"
+PR = "r4"
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \
+ file://configure_fixes.patch;patch=1 \
+ file://check.m4 \
+ file://16bppfixes.patch;patch=1"
+
+S = "${WORKDIR}/libmatchbox"
+
+do_configure_prepend () {
+ cp ${WORKDIR}/check.m4 ${S}/
+}
diff --git a/meta/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch b/meta/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch
new file mode 100644
index 000000000..4aaafb2b1
--- /dev/null
+++ b/meta/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch
@@ -0,0 +1,15 @@
+Index: libxklavier-3.7/libxklavier.pc.in
+===================================================================
+--- libxklavier-3.7.orig/libxklavier.pc.in 2009-06-10 15:58:46.000000000 +0100
++++ libxklavier-3.7/libxklavier.pc.in 2009-06-10 16:00:45.000000000 +0100
+@@ -5,7 +5,7 @@
+
+ Name: libxklavier
+ Description: libxklavier library
+-Requires: libxml-2.0
++Requires: libxml-2.0 glib-2.0
+ Version: @VERSION@
+-Libs: -L${libdir} -lxklavier @GLIB_LIBS@ @XML_LIBS@
+-Cflags: -I${includedir} @GLIB_CFLAGS@
++Libs: -L${libdir} -lxklavier
++Cflags: -I${includedir}
diff --git a/meta/recipes-graphics/libxklavier/libxklavier_3.9.bb b/meta/recipes-graphics/libxklavier/libxklavier_3.9.bb
new file mode 100644
index 000000000..1d9b6f21a
--- /dev/null
+++ b/meta/recipes-graphics/libxklavier/libxklavier_3.9.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Utility library to make using XKB easier"
+SECTION = "x11/libs"
+PRIORITY = "optional"
+DEPENDS = "iso-codes libxml2 glib-2.0 libxkbfile"
+LICENSE = "LGPL"
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gswitchit/libxklavier-${PV}.tar.bz2 \
+ file://pkgconfigfix.patch;patch=1"
+
+inherit autotools
+
diff --git a/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license b/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license
new file mode 100644
index 000000000..628de9830
--- /dev/null
+++ b/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license
@@ -0,0 +1,22 @@
+/*
+ * Copyright © 2001 Red Hat, Inc.
+ *
+ * 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 Red Hat not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. Red Hat makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
+ * 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.
+ *
+ * Author: Owen Taylor, Red Hat, Inc.
+ */
diff --git a/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch b/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch
new file mode 100644
index 000000000..ee12f0a5b
--- /dev/null
+++ b/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch
@@ -0,0 +1,11 @@
+Index: Xsettings-client-0.10/Makefile.am
+===================================================================
+--- Xsettings-client-0.10.orig/Makefile.am 2008-02-07 14:49:54.000000000 +0000
++++ Xsettings-client-0.10/Makefile.am 2008-02-07 14:50:00.000000000 +0000
+@@ -9,4 +9,4 @@
+
+ libXsettings_client_la_SOURCES= $(source_c) $(source_h)
+
+-libXsettings_client_la_LIBADD = @X_LIBS@
+\ No newline at end of file
++libXsettings_client_la_LIBADD = @X_LIBS@ -lX11
diff --git a/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb b/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb
new file mode 100644
index 000000000..ecd6d181e
--- /dev/null
+++ b/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Common code for XSETTINGS"
+HOMEPAGE = "http://matchbox-project.org/sources/optional-dependencies/"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+SECTION = "x/libs"
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
+ file://xsettings-client.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
+ file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
+PRIORITY = "optional"
+DEPENDS = "virtual/libx11"
+
+PR = "r3"
+
+headers = "xsettings-common.h xsettings-client.h"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/optional-dependencies/Xsettings-client-0.10.tar.gz \
+ file://MIT-style-license \
+ file://link-x11.patch;apply=yes"
+
+S = "${WORKDIR}/Xsettings-client-0.10"
+
+inherit autotools gettext
+
+do_configure_prepend() {
+ # This package doesn't ship with its own COPYING file and
+ # autotools will install a GPLv2 one instead of the actual MIT-style license here.
+ # Add the correct license here to avoid confusion.
+ cp -f ${WORKDIR}/MIT-style-license ${S}/COPYING
+}
+
diff --git a/meta/recipes-graphics/matchbox-session/matchbox-session/matchbox-session b/meta/recipes-graphics/matchbox-session/matchbox-session/matchbox-session
new file mode 100644
index 000000000..4d6caa0c5
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-session/matchbox-session/matchbox-session
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# Very simple session manager for matchbox tools
+#
+
+# Uncomment below to enable parsing of debian menu entrys
+# export MB_USE_DEB_MENUS=1
+
+if [ -e $HOME/.matchbox/session ]
+then
+exec $HOME/.matchbox/session
+fi
+
+if [ -e /etc/matchbox/session ]
+then
+exec /etc/matchbox/session
+fi
+
+# Default files to run if $HOME/.matchbox/session or /etc/matchbox/session
+# dont exist.
+
+matchbox-desktop &
+matchbox-panel &
+exec matchbox-window-manager $@
diff --git a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
new file mode 100644
index 000000000..df9f2ab60
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Custom MB session files for poky"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://matchbox-session;endline=20;md5=180f1c169a15d059a56c30094f6fb5ea"
+
+SECTION = "x11"
+RCONFLICTS = "matchbox-common"
+
+SRC_URI = "file://matchbox-session"
+S = "${WORKDIR}"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/matchbox-session ${D}/${bindir}
+}
diff --git a/meta/recipes-graphics/matchbox-wm-2/matchbox-wm-2_svn.bb b/meta/recipes-graphics/matchbox-wm-2/matchbox-wm-2_svn.bb
new file mode 100644
index 000000000..f67e06083
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm-2/matchbox-wm-2_svn.bb
@@ -0,0 +1,42 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Matchbox window manager"
+LICENSE = "GPL"
+DEPENDS = "virtual/libx11 libxext libxrender startup-notification expat gconf pango libxdamage libxcomposite gtk+"
+
+PV = "0.0+svnr${SRCREV}"
+PR = "r4"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-window-manager-2;proto=http \
+ "
+
+S = "${WORKDIR}/matchbox-window-manager-2"
+
+inherit autotools pkgconfig update-alternatives
+
+# Change this to x-session-manager->matchbox-session and put in
+# matchbox-session, then change this to x-window-manager to
+# matchbox-window-manager-2.
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+PACKAGES =+ "libmatchbox2"
+
+FILES_libmatchbox2 = "${libdir}/*${SOLIBS}"
+
+FILES_${PN} += "${datadir}/matchbox-2 \
+ ${sysconfdir}/matchbox-2 \
+ ${datadir}/themes/*"
+
+EXTRA_OECONF = "--enable-debug \
+ --enable-simple-manager \
+ --enable-compositing-manager \
+ --enable-libmatchbox \
+ --enable-png-theme \
+ "
+
+do_install_append () {
+ cd ${D}${bindir}
+ ln -s matchbox-window-manager-2-simple matchbox-window-manager
+}
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm/configure_fix.patch b/meta/recipes-graphics/matchbox-wm/matchbox-wm/configure_fix.patch
new file mode 100644
index 000000000..52cea0e8f
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm/configure_fix.patch
@@ -0,0 +1,13 @@
+Index: matchbox-window-manager/configure.ac
+===================================================================
+--- matchbox-window-manager.orig/configure.ac 2007-11-14 12:02:28.000000000 +0000
++++ matchbox-window-manager/configure.ac 2007-11-14 12:18:55.000000000 +0000
+@@ -283,7 +283,7 @@
+ yes)
+
+ case "$expat" in
+- yes)
++ yes|"")
+ EXPAT_LIBS="-lexpat"
+ ;;
+ *)
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm/gconf-2.m4 b/meta/recipes-graphics/matchbox-wm/matchbox-wm/gconf-2.m4
new file mode 100644
index 000000000..aca7c7da4
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm/gconf-2.m4
@@ -0,0 +1,39 @@
+dnl AM_GCONF_SOURCE_2
+dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
+dnl (i.e. pass to gconftool-2
+dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
+dnl you should install foo.schemas files
+dnl
+
+AC_DEFUN([AM_GCONF_SOURCE_2],
+[
+ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+ else
+ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+ AC_ARG_WITH(gconf-source,
+ [ --with-gconf-source=sourceaddress Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
+
+ AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
+ AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
+
+ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+ fi
+
+ AC_ARG_WITH(gconf-schema-file-dir,
+ [ --with-gconf-schema-file-dir=dir Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
+
+ AC_SUBST(GCONF_SCHEMA_FILE_DIR)
+ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
+
+ AC_ARG_ENABLE(schemas-install,
+ [ --disable-schemas-install Disable the schemas installation],
+ [case ${enableval} in
+ yes|no) ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-schemas-install) ;;
+ esac])
+ AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no])
+])
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm/kbdconfig b/meta/recipes-graphics/matchbox-wm/matchbox-wm/kbdconfig
new file mode 100644
index 000000000..239da8f57
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm/kbdconfig
@@ -0,0 +1,42 @@
+#
+# This is an example keyboard config file for matchbox
+#
+# You can edit this file or change per user by copying to
+# ~/.matchbox/kbdconfig
+#
+# Se the matchbox manual for more info ( http://projects.o-hand.com/matchbox )
+
+### Window operation short cuts
+
+<Alt>n=next
+<Alt>p=prev
+<Alt>c=close
+<Alt>d=desktop
+<Alt>m=!matchbox-remote -mbmenu
+
+### App launching.
+
+<ctrl><alt>x=!xterm
+<ctrl><alt>r=!rxvt
+
+### poky additions
+
+XF86Calendar=!$contacts
+telephone=!$dates
+XF86Start=!matchbox-remote -desktop
+F2=!matchbox-remote -mbmenu
+
+#XF86Mail=!$tasks
+#Escape=close
+
+### windows style key shortcuts
+
+<alt>Tab=next
+<alt><shift>Tab=prev
+
+<alt>space=taskmenu
+<alt>escape=!matchbox-remote -mbmenu
+<alt>f4=close
+
+f11=fullscreen
+
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_0.9.5.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_0.9.5.bb
new file mode 100644
index 000000000..e09eb00ed
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_0.9.5.bb
@@ -0,0 +1,32 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Matchbox window manager"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes xdamage libxrender startup-notification expat gconf"
+PR="r2"
+
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.9/matchbox-window-manager-${PV}.tar.gz \
+ file://kbdconfig"
+
+S = "${WORKDIR}/matchbox-window-manager-${PV}"
+
+inherit autotools pkgconfig update-alternatives
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/matchbox \
+ ${sysconfdir}/matchbox \
+ ${datadir}/themes/blondie/matchbox \
+ ${datadir}/themes/Default/matchbox \
+ ${datadir}/themes/MBOpus/matchbox"
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+EXTRA_OECONF = " --enable-startup-notification --disable-xrm"
+
+do_install_prepend() {
+ install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
+}
+
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.1.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.1.bb
new file mode 100644
index 000000000..ebed31e2a
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.1.bb
@@ -0,0 +1,37 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Matchbox window manager"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes xdamage libxrender startup-notification expat"
+PR="r4"
+
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/1.1/matchbox-window-manager-${PV}.tar.gz \
+ file://kbdconfig \
+ file://gconf-2.m4"
+
+S = "${WORKDIR}/matchbox-window-manager-${PV}"
+
+inherit autotools pkgconfig update-alternatives
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/matchbox \
+ ${sysconfdir}/matchbox \
+ ${datadir}/themes/blondie/matchbox \
+ ${datadir}/themes/Default/matchbox \
+ ${datadir}/themes/MBOpus/matchbox"
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+EXTRA_OECONF = " --enable-startup-notification --disable-xrm"
+
+do_configure_prepend () {
+ cp ${WORKDIR}/gconf-2.m4 ${S}/
+}
+
+do_install_prepend() {
+ install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
+}
+
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.bb
new file mode 100644
index 000000000..f68eb2b4a
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.bb
@@ -0,0 +1,41 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Matchbox window manager"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes xdamage libxrender startup-notification expat"
+PR = "r4"
+
+SRC_URI = "http://matchbox-project.org/sources/matchbox-window-manager/1.2/matchbox-window-manager-${PV}.tar.bz2 \
+ file://configure_fix.patch;patch=1 \
+ file://kbdconfig \
+ file://gconf-2.m4"
+
+S = "${WORKDIR}/matchbox-window-manager-${PV}"
+
+inherit autotools pkgconfig update-alternatives
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/matchbox \
+ ${sysconfdir}/matchbox \
+ ${datadir}/themes/blondie/matchbox \
+ ${datadir}/themes/Default/matchbox \
+ ${datadir}/themes/MBOpus/matchbox"
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+EXTRA_OECONF = " --enable-startup-notification \
+ --disable-xrm \
+ --enable-expat \
+ --with-expat-lib=${STAGING_LIBDIR} \
+ --with-expat-includes=${STAGING_INCDIR}"
+
+
+do_configure_prepend () {
+ cp ${WORKDIR}/gconf-2.m4 ${S}/
+}
+
+do_install_prepend() {
+ install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
+}
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_svn.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_svn.bb
new file mode 100644
index 000000000..09c0f70f4
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_svn.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Matchbox window manager"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://src/wm.h;endline=21;md5=a7e844465edbcf79c282369f93caa835 \
+ file://src/main.c;endline=21;md5=3e5d9f832b527b0d72dbe8e3c4c60b95 \
+ file://src/wm.c;endline=21;md5=8dc9d24477d87ef5dfbc2e4927146aab"
+
+SECTION = "x11/wm"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification expat gconf"
+
+PV = "1.2+svnr${SRCREV}"
+PR = "r4"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-window-manager;proto=http \
+ file://configure_fix.patch;patch=1;maxrev=1818 \
+ file://kbdconfig"
+
+S = "${WORKDIR}/matchbox-window-manager"
+
+inherit autotools pkgconfig update-alternatives
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/matchbox-session"
+ALTERNATIVE_PRIORITY = "10"
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/matchbox \
+ ${sysconfdir}/matchbox \
+ ${datadir}/themes/blondie/matchbox \
+ ${datadir}/themes/Default/matchbox \
+ ${datadir}/themes/MBOpus/matchbox"
+
+EXTRA_OECONF = " --enable-startup-notification \
+ --disable-xrm \
+ --enable-expat \
+ --with-expat-lib=${STAGING_LIBDIR} \
+ --with-expat-includes=${STAGING_INCDIR}"
+
+do_install_prepend() {
+ install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
+}
diff --git a/meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb b/meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb
new file mode 100644
index 000000000..90cc5716b
--- /dev/null
+++ b/meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "A library creating and utilizing caches to speed up freedesktop.org application menus"
+HOMEPAGE = "http://lxde.sourceforge.net/"
+BUGTRACKER = ""
+
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://libmenu-cache/menu-cache.h;endline=29;md5=ca0101a419b3584963e0c45f2b6b55ef \
+ file://menu-cache-daemon/menu-cached.c;endline=22;md5=fcecb7d315c57ef804103fa9cdab7111"
+
+SECTION = "x11/libs"
+DEPENDS = "glib-2.0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.gz"
+
+PR = "r0"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-graphics/mesa/mesa-common.inc b/meta/recipes-graphics/mesa/mesa-common.inc
new file mode 100644
index 000000000..240f956b8
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-common.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "An open source implementation of the OpenGL spec"
+HOMEPAGE = "http://mesa3d.org"
+BUGTRACKER = "https://bugs.freedesktop.org"
+SECTION = "x11"
+LICENSE = "MIT"
+
+SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
+ ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaDemos-${PV}.tar.bz2 "
+
+S = "${WORKDIR}/Mesa-${PV}"
+
+PROVIDES = "virtual/libgl"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-glu \
+ --disable-glw \
+ --disable-glut \
+ --enable-glx-tls"
+
+# Multiple virtual/gl providers being built breaks staging
+EXCLUDE_FROM_WORLD = "1"
+
+
diff --git a/meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.8.2.bb b/meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.8.2.bb
new file mode 100644
index 000000000..f6121c19a
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.8.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "gl shader language specific build from mesa-dri"
+HOMEPAGE = "http://mesa3d.org"
+BUGTRACKER = "https://bugs.freedesktop.org"
+SECTION = "x11"
+LICENSE = "MIT"
+PR = "r0"
+
+DEPENDS = "makedepend-native"
+
+SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2"
+
+S = "${WORKDIR}/Mesa-7.8.2/src/glsl/"
+
+inherit native
+
+# use default config for native build
+do_configure_prepend() {
+ ln -s ${S}/../../configs/default ${S}/../../configs/current
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/apps/compile ${D}/${bindir}/glsl-compile
+}
diff --git a/meta/recipes-graphics/mesa/mesa-dri/cross2.patch b/meta/recipes-graphics/mesa/mesa-dri/cross2.patch
new file mode 100644
index 000000000..d2147910a
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri/cross2.patch
@@ -0,0 +1,44 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2009-09-01 16:38:26.000000000 +0100
++++ git/configure.ac 2009-09-01 16:38:47.000000000 +0100
+@@ -269,15 +269,6 @@
+ GLAPI_ASM_SOURCES=""
+ AC_MSG_CHECKING([whether to enable assembly])
+ test "x$enable_asm" = xno && AC_MSG_RESULT([no])
+-# disable if cross compiling on x86/x86_64 since we must run gen_matypes
+-if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
+- case "$host_cpu" in
+- i?86 | x86_64)
+- enable_asm=no
+- AC_MSG_RESULT([no, cross compiling])
+- ;;
+- esac
+-fi
+ # check for supported arches
+ if test "x$enable_asm" = xyes; then
+ case "$host_cpu" in
+Index: git/src/mesa/x86/Makefile
+===================================================================
+--- git.orig/src/mesa/x86/Makefile 2009-09-01 16:40:02.000000000 +0100
++++ git/src/mesa/x86/Makefile 2009-09-01 16:40:13.000000000 +0100
+@@ -14,19 +14,6 @@
+ -I../tnl
+
+
+-default: gen_matypes matypes.h
+-
+-clean:
+- -rm -f matypes.h gen_matypes
+-
+-
+-gen_matypes: gen_matypes.c
+- $(HOST_CC) $(ARCH_FLAGS) $(INCLUDE_DIRS) $(HOST_CFLAGS) gen_matypes.c -o gen_matypes
+-
+-# need some special rules here, unfortunately
+-matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes
+- ./gen_matypes > matypes.h
+-
+ common_x86_asm.o: matypes.h
+ 3dnow_normal.o: matypes.h
+ 3dnow_xform1.o: matypes.h
diff --git a/meta/recipes-graphics/mesa/mesa-dri/crossfix.patch b/meta/recipes-graphics/mesa/mesa-dri/crossfix.patch
new file mode 100644
index 000000000..84be428c4
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri/crossfix.patch
@@ -0,0 +1,16 @@
+Index: Mesa-7.5/bin/mklib
+===================================================================
+--- Mesa-7.5.orig/bin/mklib 2009-08-12 13:01:34.000000000 +0100
++++ Mesa-7.5/bin/mklib 2009-08-12 13:04:19.000000000 +0100
+@@ -234,9 +234,9 @@
+ if [ "x$LINK" = "x" ] ; then
+ # -linker was not specified so set default link command now
+ if [ $CPLUSPLUS = 1 ] ; then
+- LINK=g++
++ LINK=$CXX
+ else
+- LINK=gcc
++ LINK=$CC
+ fi
+ fi
+
diff --git a/meta/recipes-graphics/mesa/mesa-dri/i586/matypes.h b/meta/recipes-graphics/mesa/mesa-dri/i586/matypes.h
new file mode 100644
index 000000000..98d2188e7
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri/i586/matypes.h
@@ -0,0 +1,162 @@
+/*
+ * This file is automatically generated from the Mesa internal type
+ * definitions. Do not edit directly.
+ */
+
+#ifndef __ASM_TYPES_H__
+#define __ASM_TYPES_H__
+
+
+
+/* =============================================================
+ * Offsets for GLcontext
+ */
+
+#define CTX_DRIVER_CTX 996
+
+#define CTX_LIGHT_ENABLED 39404
+#define CTX_LIGHT_SHADE_MODEL 39408
+#define CTX_LIGHT_COLOR_MAT_FACE 39412
+#define CTX_LIGHT_COLOR_MAT_MODE 39416
+#define CTX_LIGHT_COLOR_MAT_MASK 39420
+#define CTX_LIGHT_COLOR_MAT_ENABLED 39424
+#define CTX_LIGHT_ENABLED_LIST 39432
+#define CTX_LIGHT_NEED_VERTS 43793
+#define CTX_LIGHT_FLAGS 43796
+#define CTX_LIGHT_BASE_COLOR 43800
+
+
+/* =============================================================
+ * Offsets for struct vertex_buffer
+ */
+
+#define VB_SIZE 0
+#define VB_COUNT 4
+
+#define VB_ELTS 8
+#define VB_OBJ_PTR 12
+#define VB_EYE_PTR 16
+#define VB_CLIP_PTR 20
+#define VB_PROJ_CLIP_PTR 24
+#define VB_CLIP_OR_MASK 28
+#define VB_CLIP_MASK 32
+#define VB_NORMAL_PTR 36
+#define VB_EDGE_FLAG 44
+#define VB_TEX0_COORD_PTR 48
+#define VB_TEX1_COORD_PTR 52
+#define VB_TEX2_COORD_PTR 56
+#define VB_TEX3_COORD_PTR 60
+#define VB_INDEX_PTR 80
+#define VB_COLOR_PTR 88
+#define VB_SECONDARY_COLOR_PTR 96
+#define VB_FOG_COORD_PTR 104
+#define VB_PRIMITIVE 108
+
+
+/*
+ * Flags for struct vertex_buffer
+ */
+
+#define VERT_BIT_OBJ 0x1
+#define VERT_BIT_NORM 0x4
+#define VERT_BIT_RGBA 0x8
+#define VERT_BIT_SPEC_RGB 0x10
+#define VERT_BIT_FOG_COORD 0x20
+#define VERT_BIT_TEX0 0x100
+#define VERT_BIT_TEX1 0x200
+#define VERT_BIT_TEX2 0x400
+#define VERT_BIT_TEX3 0x800
+
+
+/* =============================================================
+ * Offsets for GLvector4f
+ */
+
+#define V4F_DATA 0
+#define V4F_START 4
+#define V4F_COUNT 8
+#define V4F_STRIDE 12
+#define V4F_SIZE 16
+#define V4F_FLAGS 20
+
+/*
+ * Flags for GLvector4f
+ */
+
+#define VEC_MALLOC 0x10
+#define VEC_NOT_WRITEABLE 0x40
+#define VEC_BAD_STRIDE 0x100
+
+#define VEC_SIZE_1 0x1
+#define VEC_SIZE_2 0x3
+#define VEC_SIZE_3 0x7
+#define VEC_SIZE_4 0xf
+
+
+/* =============================================================
+ * Offsets for GLmatrix
+ */
+
+#define MATRIX_DATA 0
+#define MATRIX_INV 4
+#define MATRIX_FLAGS 8
+#define MATRIX_TYPE 12
+
+
+/* =============================================================
+ * Offsets for struct gl_light
+ */
+
+#define LIGHT_NEXT 0
+#define LIGHT_PREV 4
+
+#define LIGHT_AMBIENT 8
+#define LIGHT_DIFFUSE 24
+#define LIGHT_SPECULAR 40
+#define LIGHT_EYE_POSITION 56
+#define LIGHT_SPOT_DIRECTION 72
+#define LIGHT_SPOT_EXPONENT 88
+#define LIGHT_SPOT_CUTOFF 92
+#define LIGHT_COS_CUTOFF 100
+#define LIGHT_CONST_ATTEN 104
+#define LIGHT_LINEAR_ATTEN 108
+#define LIGHT_QUADRATIC_ATTEN 112
+#define LIGHT_ENABLED 116
+
+#define LIGHT_FLAGS 120
+
+#define LIGHT_POSITION 124
+#define LIGHT_VP_INF_NORM 140
+#define LIGHT_H_INF_NORM 152
+#define LIGHT_NORM_DIRECTION 164
+#define LIGHT_VP_INF_SPOT_ATTEN 180
+
+#define LIGHT_SPOT_EXP_TABLE 184
+#define LIGHT_MAT_AMBIENT 4280
+#define LIGHT_MAT_DIFFUSE 4304
+#define LIGHT_MAT_SPECULAR 4328
+
+#define SIZEOF_GL_LIGHT 4360
+
+/*
+ * Flags for struct gl_light
+ */
+
+#define LIGHT_SPOT 0x1
+#define LIGHT_LOCAL_VIEWER 0x2
+#define LIGHT_POSITIONAL 0x4
+
+#define LIGHT_NEED_VERTICES 0x6
+
+
+/* =============================================================
+ * Offsets for struct gl_lightmodel
+ */
+
+#define LIGHT_MODEL_AMBIENT 0
+#define LIGHT_MODEL_LOCAL_VIEWER 16
+#define LIGHT_MODEL_TWO_SIDE 17
+#define LIGHT_MODEL_COLOR_CONTROL 20
+
+
+#endif /* __ASM_TYPES_H__ */
diff --git a/meta/recipes-graphics/mesa/mesa-dri_7.5.bb b/meta/recipes-graphics/mesa/mesa-dri_7.5.bb
new file mode 100644
index 000000000..6e9cdc9aa
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri_7.5.bb
@@ -0,0 +1,48 @@
+include mesa-common.inc
+
+SRC_URI += "file://crossfix.patch;patch=1"
+# file://mesa-DRI2Swapbuffer.patch;patch=1
+
+PROTO_DEPS = "xf86driproto glproto dri2proto"
+LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+PR = "r11"
+
+# most of our targets do not have DRI so will use mesa-xlib
+DEFAULT_PREFERENCE = "-1"
+
+# Netbooks have DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_netbook = "1"
+
+PACKAGES =+ "${PN}-xprogs"
+PACKAGES_DYNAMIC = "mesa-dri-driver-*"
+
+FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
+
+LEAD_SONAME = "libGL.so.1"
+
+EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium"
+
+do_install_append () {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/
+}
+
+python populate_packages_prepend() {
+ import os.path
+
+ dri_drivers_root = os.path.join(bb.data.getVar('libdir', d, 1), "dri")
+
+ do_split_packages(d, dri_drivers_root, '^(.*)_dri\.so$', 'mesa-dri-driver-%s', 'Mesa %s DRI driver', extra_depends='')
+}
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
+
+#
+# Header generated by i586-poky-linux-gcc gen_matypes.c -o gen_matypes -I ../../../include/GL -I ../../../include -I .. -I ../main/ -I ../math -I ../glapi/ -I ../tnl
+# then run gen_matypes > matypes.h on device
+# \ No newline at end of file
diff --git a/meta/recipes-graphics/mesa/mesa-dri_7.7.bb b/meta/recipes-graphics/mesa/mesa-dri_7.7.bb
new file mode 100644
index 000000000..a5899f389
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri_7.7.bb
@@ -0,0 +1,49 @@
+include mesa-common.inc
+
+SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaLib-${PV}.tar.bz2 \
+ ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaDemos-${PV}.tar.bz2 \
+ file://crossfix.patch;patch=1"
+
+PROTO_DEPS = "xf86driproto glproto dri2proto"
+LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+PR = "r11"
+
+# most of our targets do not have DRI so will use mesa-xlib
+DEFAULT_PREFERENCE = "-1"
+
+# Netbooks have DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_netbook = "1"
+
+PACKAGES =+ "${PN}-xprogs"
+PACKAGES_DYNAMIC = "mesa-dri-driver-*"
+
+FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
+
+LEAD_SONAME = "libGL.so.1"
+
+EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium"
+
+do_install_append () {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/
+}
+
+python populate_packages_prepend() {
+ import os.path
+
+ dri_drivers_root = os.path.join(bb.data.getVar('libdir', d, 1), "dri")
+
+ do_split_packages(d, dri_drivers_root, '^(.*)_dri\.so$', 'mesa-dri-driver-%s', 'Mesa %s DRI driver', extra_depends='')
+}
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
+
+#
+# Header generated by i586-poky-linux-gcc gen_matypes.c -o gen_matypes -I ../../../include/GL -I ../../../include -I .. -I ../main/ -I ../math -I ../glapi/ -I ../tnl
+# then run gen_matypes > matypes.h on device
+# \ No newline at end of file
diff --git a/meta/recipes-graphics/mesa/mesa-dri_7.8.2.bb b/meta/recipes-graphics/mesa/mesa-dri_7.8.2.bb
new file mode 100644
index 000000000..ffd885f29
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri_7.8.2.bb
@@ -0,0 +1,53 @@
+include mesa-common.inc
+
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
+
+PROTO_DEPS = "xf86driproto glproto dri2proto"
+LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS} mesa-dri-glsl-native"
+
+PR = "r1"
+
+SRC_URI += "file://crossfix.patch"
+
+# most of our targets do not have DRI so will use mesa-xlib
+DEFAULT_PREFERENCE = "-1"
+
+# Netbooks have DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_netbook = "1"
+
+LEAD_SONAME = "libGL.so.1"
+
+EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium"
+
+# We need glsl-compile built for buildhost arch instead of target (is provided by mesa-dri-glsl-native)"
+do_configure_prepend() {
+ sed -i "s#^GLSL_CL = .*\$#GLSL_CL = ${STAGING_BINDIR_NATIVE}/glsl-compile#g" ${S}/src/mesa/shader/slang/library/Makefile
+}
+
+do_install_append () {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/
+}
+
+python populate_packages_prepend() {
+ import os.path
+
+ dri_drivers_root = os.path.join(bb.data.getVar('libdir', d, 1), "dri")
+
+ do_split_packages(d, dri_drivers_root, '^(.*)_dri\.so$', 'mesa-dri-driver-%s', 'Mesa %s DRI driver', extra_depends='')
+}
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
+PACKAGES =+ "${PN}-xprogs"
+PACKAGES_DYNAMIC = "mesa-dri-driver-*"
+
+FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
+
+#
+# Header generated by i586-poky-linux-gcc gen_matypes.c -o gen_matypes -I ../../../include/GL -I ../../../include -I .. -I ../main/ -I ../math -I ../glapi/ -I ../tnl
+# then run gen_matypes > matypes.h on device
+#
diff --git a/meta/recipes-graphics/mesa/mesa-dri_git.bb b/meta/recipes-graphics/mesa/mesa-dri_git.bb
new file mode 100644
index 000000000..fa0a7c8dc
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-dri_git.bb
@@ -0,0 +1,59 @@
+include mesa-common.inc
+
+SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git \
+ file://cross2.patch;patch=1 \
+ file://matypes.h"
+# file://mesa-DRI2Swapbuffer.patch;patch=1 "
+S = "${WORKDIR}/git"
+
+PROTO_DEPS = "xf86driproto glproto dri2proto"
+LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+PV = "7.7+git${SRCPV}"
+PR = "r0"
+
+# most of our targets do not have DRI so will use mesa-xlib
+DEFAULT_PREFERENCE = "-1"
+
+# Netbooks have DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_netbook = "1"
+
+PACKAGES =+ "${PN}-xprogs"
+PACKAGES_DYNAMIC = "mesa-dri-driver-*"
+
+FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
+
+LEAD_SONAME = "libGL.so.1"
+
+EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium"
+
+do_configure_prepend () {
+ cp ${WORKDIR}/matypes.h ${S}/src/mesa/x86
+ touch ${S}/src/mesa/x86/matypes.h
+}
+
+do_compile () {
+ oe_runmake clean
+ oe_runmake -C src/glsl CC='${BUILD_CC}' CFLAGS=""
+ mv ${S}/src/glsl/apps/compile ${S}/host_compile
+ oe_runmake clean
+ oe_runmake GLSL_CL="${S}/host_compile"
+}
+
+do_install_append () {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/
+}
+
+python populate_packages_prepend() {
+ import os.path
+
+ dri_drivers_root = os.path.join(bb.data.getVar('libdir', d, 1), "dri")
+
+ do_split_packages(d, dri_drivers_root, '^(.*)_dri\.so$', 'mesa-dri-driver-%s', 'Mesa %s DRI driver', extra_depends='')
+}
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
diff --git a/meta/recipes-graphics/mesa/mesa-xlib_7.8.2.bb b/meta/recipes-graphics/mesa/mesa-xlib_7.8.2.bb
new file mode 100644
index 000000000..093ad6ed7
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-xlib_7.8.2.bb
@@ -0,0 +1,22 @@
+include mesa-common.inc
+
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
+
+PROTO_DEPS = "xf86driproto glproto"
+LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+PE = "1"
+PR = "r0"
+
+EXTRA_OECONF += "--with-driver=xlib"
+
+do_install_append () {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/${bindir}
+}
+
+PACKAGES =+ "${PN}-xprogs"
+
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
diff --git a/meta/recipes-graphics/mesa/qemugl/versionfix.patch b/meta/recipes-graphics/mesa/qemugl/versionfix.patch
new file mode 100644
index 000000000..a3d33e830
--- /dev/null
+++ b/meta/recipes-graphics/mesa/qemugl/versionfix.patch
@@ -0,0 +1,30 @@
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile 2009-01-19 23:37:36.000000000 +0000
++++ git/Makefile 2009-06-09 20:30:37.000000000 +0100
+@@ -1,9 +1,9 @@
+ GL_CFLAGS := -Wall -g -O2 -fno-strict-aliasing
+
+-all: libGL.so
++all: libGL.so.1.2
+
+-libGL.so: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
+- $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
++libGL.so.1.2: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
++ $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so.1.2 -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
+
+ opengl_func.h: gl_func.h
+
+Index: git/opengl_client.c
+===================================================================
+--- git.orig/opengl_client.c 2009-06-09 21:07:15.000000000 +0100
++++ git/opengl_client.c 2009-06-09 21:07:33.000000000 +0100
+@@ -11578,7 +11578,7 @@
+ tab_assoc = calloc(tabSize, sizeof(AssocProcAdress));
+
+ #ifndef WIN32
+- handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so" ,RTLD_LAZY);
++ handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so.1.2" ,RTLD_LAZY);
+ if (!handle) {
+ log_gl("%s\n", dlerror());
+ exit(1);
diff --git a/meta/recipes-graphics/mesa/qemugl_git.bb b/meta/recipes-graphics/mesa/qemugl_git.bb
new file mode 100644
index 000000000..184c78272
--- /dev/null
+++ b/meta/recipes-graphics/mesa/qemugl_git.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "QEMU i386 OpenGL passtrough"
+HOMEPAGE = "http://savannah.nongnu.org/projects/qemugl"
+SECTION = "x11/drivers"
+LICENSE = "GPL"
+
+DEPENDS = "virtual/libx11 xproto glproto libxfixes"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
+
+SRC_URI = "git://git.o-hand.com/qemugl.git;protocol=git \
+ file://versionfix.patch"
+S = "${WORKDIR}/git"
+
+PV = "0.0+git${SRCPV}"
+PR = "r6"
+
+DEFAULT_PREFERENCE = "-1"
+
+do_install () {
+ install -d ${D}${libdir}/
+ if [ "${PN}" != "qemugl-nativesdk" ]; then
+ install -m 0755 ${S}/libGL.so.1.2 ${D}${libdir}/libGL-qemu.so.1.2
+ else
+ install -m 0755 ${S}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2
+ ln -s libGL.so.1.2 ${D}${libdir}/libGL.so.1
+ ln -s libGL.so.1 ${D}${libdir}/libGL.so
+ fi
+}
+
+pkg_postinst_${PN} () {
+ if [ "${PN}" != "qemugl-nativesdk" ]; then
+ rm -f $D${libdir}/libGL.so.1.2
+ ln -s libGL-qemu.so.1.2 $D${libdir}/libGL.so.1.2
+ fi
+}
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/mutter/mutter.inc b/meta/recipes-graphics/mutter/mutter.inc
new file mode 100644
index 000000000..456348754
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter.inc
@@ -0,0 +1,43 @@
+SECTION = "x11/wm"
+DESCRIPTION = "Metacity is the boring window manager for the adult in you. Mutter is metacity + clutter."
+LICENSE = "GPLv2"
+DEPENDS = "startup-notification gtk+ gconf clutter-1.0 gdk-pixbuf-csource-native intltool glib-2.0-native"
+# gobject-introspection
+inherit gnome update-alternatives
+
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PATH = "${bindir}/mutter"
+ALTERNATIVE_PRIORITY = "11"
+
+EXTRA_OECONF += "--disable-verbose \
+ --disable-xinerama \
+ --without-introspection \
+ --with-clutter"
+
+#RDEPENDS_${PN} = "zenity"
+
+FILES_${PN} += "${datadir}/themes ${libdir}/mutter/plugins/*.so ${datadir}/gnome/wm-properties/"
+FILES_${PN}-dbg += "${libdir}/mutter/plugins/.debug/*"
+
+export CC_FOR_BUILD = "${BUILD_CC}"
+export CFLAGS_FOR_BUILD = "${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE}/glib-2.0 -I${STAGING_INCDIR_NATIVE}/glib-2.0/include"
+export LDFLAGS_FOR_BUILD = "${BUILD_LDFLAGS} -L${STAGING_LIBDIR_NATIVE} -lglib-2.0"
+
+do_configure_prepend () {
+ echo "EXTRA_DIST=" > ${S}/gnome-doc-utils.make
+}
+
+pkg_postinst_${PN} () {
+#!/bin/sh -e
+if [ "x$D" != "x" ]; then
+ exit 1
+fi
+
+. ${sysconfdir}/init.d/functions
+
+gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type list --list-type string --set /apps/mutter/general/clutter_plugins '[default]'
+
+gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type bool --set /apps/mutter/general/compositing_manager true
+}
+
diff --git a/meta/recipes-graphics/mutter/mutter/crosscompile.patch b/meta/recipes-graphics/mutter/mutter/crosscompile.patch
new file mode 100644
index 000000000..b27383b09
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter/crosscompile.patch
@@ -0,0 +1,55 @@
+Index: git/configure.in
+===================================================================
+--- git.orig/configure.in 2009-01-27 14:49:10.000000000 +0000
++++ git/configure.in 2009-01-27 15:29:41.000000000 +0000
+@@ -46,6 +46,32 @@
+ AC_LIBTOOL_WIN32_DLL
+ AM_PROG_LIBTOOL
+
++if test x"$CC_FOR_BUILD" = x; then
++ if test x"$cross_compiling" = xyes; then
++ AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
++ else
++ CC_FOR_BUILD="$CC"
++ fi
++fi
++AC_SUBST([CC_FOR_BUILD])
++if test x"$CFLAGS_FOR_BUILD" = x; then
++ if test x"$cross_compiling" = xyes; then
++ AC_CHECK_PROGS(CFLAGS_FOR_BUILD, gcc cc)
++ else
++ CFLAGS_FOR_BUILD="$CFLAGS"
++ fi
++fi
++AC_SUBST([CFLAGS_FOR_BUILD])
++if test x"$LDFLAGS_FOR_BUILD" = x; then
++ if test x"$cross_compiling" = xyes; then
++ AC_CHECK_PROGS(LDFLAGS_FOR_BUILD, gcc cc)
++ else
++ LDFLAGS_FOR_BUILD="$LDFLAGS"
++ fi
++fi
++AC_SUBST([LDFLAGS_FOR_BUILD])
++
++
+ #### Integer sizes
+
+ AC_CHECK_SIZEOF(char)
+Index: git/src/Makefile.am
+===================================================================
+--- git.orig/src/Makefile.am 2009-01-27 15:25:31.000000000 +0000
++++ git/src/Makefile.am 2009-01-27 15:39:54.000000000 +0000
+@@ -168,11 +168,9 @@
+ metacity_dialog_SOURCES= \
+ ui/metacity-dialog.c
+
+-schema_bindings_SOURCES = \
+- core/schema-bindings.c \
+- metacity.schemas.in.in
++schema_bindings:
++ @CC_FOR_BUILD@ core/schema-bindings.c -I./include -I ../ @CFLAGS_FOR_BUILD@ @LDFLAGS_FOR_BUILD@ -o schema_bindings
+
+-schema_bindings_LDADD = @METACITY_LIBS@
+ metacity.schemas.in: schema_bindings ${srcdir}/metacity.schemas.in.in
+ @echo Generating keybinding schemas... ${srcdir}/metacity.schemas.in.in
+ ${builddir}/schema_bindings ${srcdir}/metacity.schemas.in.in ${builddir}/metacity.schemas.in
diff --git a/meta/recipes-graphics/mutter/mutter/fix_pkgconfig-7adb574bb3fa3880eb85dbc86e580cf3452d57c4.patch b/meta/recipes-graphics/mutter/mutter/fix_pkgconfig-7adb574bb3fa3880eb85dbc86e580cf3452d57c4.patch
new file mode 100644
index 000000000..3714383bc
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter/fix_pkgconfig-7adb574bb3fa3880eb85dbc86e580cf3452d57c4.patch
@@ -0,0 +1,10 @@
+Index: git/src/metacity-plugins.pc.in
+===================================================================
+--- git.orig/src/metacity-plugins.pc.in 2008-12-17 22:42:19.000000000 +0000
++++ git/src/metacity-plugins.pc.in 2008-12-17 22:42:25.000000000 +0000
+@@ -14,4 +14,4 @@
+ Requires: @CLUTTER_PACKAGE@
+ Version: @VERSION@
+ Libs: @CLUTTER_LIBS@
+-Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/metacity-1/metacity-private -DMETACITY_MAJOR_VERSION=${metacity_major_version} -DMETACITY_MINOR_VERSION=${metacity_minor_version} -DMETACITY_MICRO_VERSION=${metacity_micro_version} -DMETACITY_CLUTTER_PLUGIN_API_VERSION=${metacity_clutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${mutterplugindir}\"
++Cflags: -DWITH_CLUTTER -I${includedir}/metacity-1/metacity-private -DMETACITY_MAJOR_VERSION=${metacity_major_version} -DMETACITY_MINOR_VERSION=${metacity_minor_version} -DMETACITY_MICRO_VERSION=${metacity_micro_version} -DMETACITY_CLUTTER_PLUGIN_API_VERSION=${metacity_clutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${mutterplugindir}\"
diff --git a/meta/recipes-graphics/mutter/mutter/fix_pkgconfig.patch b/meta/recipes-graphics/mutter/mutter/fix_pkgconfig.patch
new file mode 100644
index 000000000..5ac5ecc60
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter/fix_pkgconfig.patch
@@ -0,0 +1,10 @@
+Index: git/src/mutter-plugins.pc.in
+===================================================================
+--- git.orig/src/mutter-plugins.pc.in 2009-07-03 17:30:39.000000000 +0100
++++ git/src/mutter-plugins.pc.in 2009-07-03 18:03:09.000000000 +0100
+@@ -14,4 +14,4 @@
+ Requires: @CLUTTER_PACKAGE@
+ Version: @VERSION@
+ Libs: @CLUTTER_LIBS@
+-Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/mutter/mutter-private -DMUTTER_MAJOR_VERSION=${mutter_major_version} -DMUTTER_MINOR_VERSION=${mutter_minor_version} -DMUTTER_MICRO_VERSION=${mutter_micro_version} -DMUTTER_PLUGIN_API_VERSION=${mutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${plugindir}\"
++Cflags: -DWITH_CLUTTER -I${includedir}/mutter/mutter-private -DMUTTER_MAJOR_VERSION=${mutter_major_version} -DMUTTER_MINOR_VERSION=${mutter_minor_version} -DMUTTER_MICRO_VERSION=${mutter_micro_version} -DMUTTER_PLUGIN_API_VERSION=${mutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${plugindir}\"
diff --git a/meta/recipes-graphics/mutter/mutter/nodocs.patch b/meta/recipes-graphics/mutter/mutter/nodocs.patch
new file mode 100644
index 000000000..98f43be5e
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter/nodocs.patch
@@ -0,0 +1,29 @@
+Index: git/Makefile.am
+===================================================================
+--- git.orig/Makefile.am 2009-01-27 13:26:12.000000000 +0000
++++ git/Makefile.am 2009-01-27 14:07:13.000000000 +0000
+@@ -1,5 +1,5 @@
+
+-SUBDIRS=src po doc
++SUBDIRS=src po
+
+ EXTRA_DIST = HACKING MAINTAINERS rationales.txt \
+ intltool-extract.in intltool-merge.in intltool-update.in
+Index: git/configure.in
+===================================================================
+--- git.orig/configure.in 2009-01-27 13:26:12.000000000 +0000
++++ git/configure.in 2009-01-27 14:11:16.000000000 +0000
+@@ -538,12 +538,9 @@
+
+ # Warnings are there for a reason
+ if test "x$GCC" = "xyes"; then
+- CFLAGS="$CFLAGS -Wall -Werror -ansi"
++ CFLAGS="$CFLAGS -Wall -ansi"
+ fi
+
+-# Use gnome-doc-utils:
+-GNOME_DOC_INIT([0.8.0])
+-
+ AC_CONFIG_FILES([
+ Makefile
+ doc/Makefile
diff --git a/meta/recipes-graphics/mutter/mutter/nozenity.patch b/meta/recipes-graphics/mutter/mutter/nozenity.patch
new file mode 100644
index 000000000..06f590953
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter/nozenity.patch
@@ -0,0 +1,16 @@
+Index: git/configure.in
+===================================================================
+--- git.orig/configure.in 2009-06-16 13:12:17.000000000 +0100
++++ git/configure.in 2009-06-16 13:12:33.000000000 +0100
+@@ -575,11 +575,6 @@
+ GCONF_SCHEMAS_INSTALL_FALSE=
+ fi
+
+-AC_PATH_PROG(ZENITY, zenity, no)
+-if test x"$ZENITY" = xno; then
+- AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
+-fi
+-
+ AC_ARG_ENABLE(debug,
+ [ --enable-debug enable debugging],,
+ enable_debug=no)
diff --git a/meta/recipes-graphics/mutter/mutter_2.28.1.bb b/meta/recipes-graphics/mutter/mutter_2.28.1.bb
new file mode 100644
index 000000000..c4b810789
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter_2.28.1.bb
@@ -0,0 +1,9 @@
+require mutter.inc
+
+SRC_URI = "http://download.moblin.org/sources/mutter/2.28/mutter-2.28.1_0.0.tar.bz2 \
+ file://nodocs.patch;patch=1 \
+ file://nozenity.patch;patch=1 \
+ file://fix_pkgconfig.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/mutter-2.28.1_0.0" \ No newline at end of file
diff --git a/meta/recipes-graphics/mutter/mutter_git.bb b/meta/recipes-graphics/mutter/mutter_git.bb
new file mode 100644
index 000000000..b41bf1e50
--- /dev/null
+++ b/meta/recipes-graphics/mutter/mutter_git.bb
@@ -0,0 +1,17 @@
+require mutter.inc
+
+PV = "2.28.1+git${SRCPV}"
+PR = "r18"
+
+# Gnome is the upstream but moblin is under more active development atm
+# git://git.gnome.org/mutter.git;protocol=git;branch=master
+#
+SRC_URI = "git://git.moblin.org/mutter.git;protocol=git;branch=master \
+ file://nodocs.patch;patch=1 \
+ file://nozenity.patch;patch=1 \
+ file://crosscompile.patch;patch=1;rev=7adb574bb3fa3880eb85dbc86e580cf3452d57c4 \
+ file://fix_pkgconfig-7adb574bb3fa3880eb85dbc86e580cf3452d57c4.patch;patch=1;rev=7adb574bb3fa3880eb85dbc86e580cf3452d57c4 \
+ file://fix_pkgconfig.patch;patch=1;notrev=7adb574bb3fa3880eb85dbc86e580cf3452d57c4 \
+ "
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/pango/pango-1.28.0/no-tests.patch b/meta/recipes-graphics/pango/pango-1.28.0/no-tests.patch
new file mode 100644
index 000000000..4a74d8c4d
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango-1.28.0/no-tests.patch
@@ -0,0 +1,12 @@
+Index: pango-1.22.2/Makefile.am
+===================================================================
+--- pango-1.22.2.orig/Makefile.am
++++ pango-1.22.2/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in.
+
+-SUBDIRS= pango modules pango-view examples docs tools tests
++SUBDIRS= pango modules pango-view examples docs tools
+
+ EXTRA_DIST = \
+ autogen.sh \
diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
new file mode 100644
index 000000000..fa22fa578
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -0,0 +1,46 @@
+DESCRIPTION = "The goal of the Pango project is to provide an \
+Open Source framework for the layout and rendering of \
+internationalized text."
+HOMEPAGE = "http://www.pango.org/"
+BUGTRACKER = "http://bugzilla.gnome.org"
+SECTION = "x11/libs"
+LICENSE = "LGPL"
+
+DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libiconv virtual/libx11 libxft gtk-doc-native cairo"
+
+PACKAGES_DYNAMIC = "pango-module-*"
+
+RRECOMMENDS_${PN} = "pango-module-basic-x pango-module-basic-fc"
+
+inherit gnome
+
+EXTRA_AUTORECONF = ""
+
+# seems to go wrong with default cflags
+FULL_OPTIMIZATION_arm = "-O2"
+
+EXTRA_OECONF = "--disable-glibtest \
+ --enable-explicit-deps=no \
+ --disable-debug"
+
+LEAD_SONAME = "libpango-1.0*"
+LIBV = "1.6.0"
+
+postinst_prologue() {
+if [ "x$D" != "x" ]; then
+ exit 1
+fi
+
+}
+
+python populate_packages_prepend () {
+ prologue = bb.data.getVar("postinst_prologue", d, 1)
+
+ modules_root = bb.data.expand('${libdir}/pango/${LIBV}/modules', d)
+
+ do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules')
+}
+
+FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*${SOLIBS}"
+FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug"
+FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
diff --git a/meta/recipes-graphics/pango/pango_1.28.0.bb b/meta/recipes-graphics/pango/pango_1.28.0.bb
new file mode 100644
index 000000000..ae914ffc5
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango_1.28.0.bb
@@ -0,0 +1,9 @@
+require pango.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+
+PR = "r0"
+
+SRC_URI += "file://no-tests.patch"
+
+PARALLEL_MAKE = ""
diff --git a/meta/recipes-graphics/startup-notification/startup-notification_0.10.bb b/meta/recipes-graphics/startup-notification/startup-notification_0.10.bb
new file mode 100644
index 000000000..8b349821f
--- /dev/null
+++ b/meta/recipes-graphics/startup-notification/startup-notification_0.10.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Startup-notification contains a reference implementation of the startup notification protocol."
+HOMEPAGE = "http://www.freedesktop.org/wiki/software/startup-notification/"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=Specifications"
+
+# most files are under MIT, but libsn/sn-util.c is under LGPL, the
+# effective license is LGPL
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2ae2cd47d6d2f238410f5364dfbc0f2 \
+ file://libsn/sn-util.c;endline=18;md5=18a14dc1825d38e741d772311fea9ee1 \
+ file://libsn/sn-common.h;endline=23;md5=6d05bc0ebdcf5513a6e77cb26e8cd7e2 \
+ file://test/test-boilerplate.h;endline=23;md5=923e706b2a70586176eead261cc5bb98"
+
+PR = "r0"
+
+SECTION = "libs"
+
+PRIORITY = "optional"
+
+DEPENDS = "virtual/libx11 libsm xcb-util"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://www.freedesktop.org/software/startup-notification/releases/${PN}-${PV}.tar.gz"
diff --git a/meta/recipes-graphics/tslib/tslib/a780/tslib.sh b/meta/recipes-graphics/tslib/tslib/a780/tslib.sh
new file mode 100644
index 000000000..51cd0f1f3
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/a780/tslib.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/event1
+TSLIB_CONFFILE=/etc/ts.conf
+
+export TSLIB_TSDEVICE TSLIB_CONFFILE
diff --git a/meta/recipes-graphics/tslib/tslib/collie/ts.conf b/meta/recipes-graphics/tslib/tslib/collie/ts.conf
new file mode 100644
index 000000000..2099b9b41
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/collie/ts.conf
@@ -0,0 +1,5 @@
+module_raw collie
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/collie/tslib.sh b/meta/recipes-graphics/tslib/tslib/collie/tslib.sh
new file mode 100644
index 000000000..664bda426
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/collie/tslib.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/touchscreen0
+TSLIB_CONFFILE=/etc/ts.conf
+
+case `uname -r` in
+2.4*)
+ TSLIB_TSDEVICE=/dev/ts
+ TSLIB_CONFFILE=/usr/share/tslib/ts.conf-collie-2.4
+ ;;
+esac
+
+export TSLIB_TSDEVICE TSLIB_CONFFILE
diff --git a/meta/recipes-graphics/tslib/tslib/devfs.patch b/meta/recipes-graphics/tslib/tslib/devfs.patch
new file mode 100644
index 000000000..d7ef0a958
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/devfs.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- tslib/tests/fbutils.c~devfs.patch
++++ tslib/tests/fbutils.c
+@@ -44,8 +44,8 @@
+ static unsigned colormap [256];
+ int xres, yres;
+
+-static char *defaultfbdevice = "/dev/fb0";
+-static char *defaultconsoledevice = "/dev/tty";
++static char *defaultfbdevice = "/dev/fb/0";
++static char *defaultconsoledevice = "/dev/vc/";
+ static char *fbdevice = NULL;
+ static char *consoledevice = NULL;
+
diff --git a/meta/recipes-graphics/tslib/tslib/e680/tslib.sh b/meta/recipes-graphics/tslib/tslib/e680/tslib.sh
new file mode 100644
index 000000000..51cd0f1f3
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/e680/tslib.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/event1
+TSLIB_CONFFILE=/etc/ts.conf
+
+export TSLIB_TSDEVICE TSLIB_CONFFILE
diff --git a/meta/recipes-graphics/tslib/tslib/event1.patch b/meta/recipes-graphics/tslib/tslib/event1.patch
new file mode 100644
index 000000000..88cc3f3a2
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/event1.patch
@@ -0,0 +1,80 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- tslib/tests/ts_calibrate.c~event1
++++ tslib/tests/ts_calibrate.c
+@@ -179,11 +179,7 @@
+ if( (tsdevice = getenv("TSLIB_TSDEVICE")) != NULL ) {
+ ts = ts_open(tsdevice,0);
+ } else {
+-#ifdef USE_INPUT_API
+- ts = ts_open("/dev/input/event0", 0);
+-#else
+- ts = ts_open("/dev/touchscreen/ucb1x00", 0);
+-#endif /* USE_INPUT_API */
++ ts = ts_open("/dev/input/event1", 0);
+ }
+
+ if (!ts) {
+--- tslib/tests/ts_print.c~event1
++++ tslib/tests/ts_print.c
+@@ -28,11 +28,7 @@
+ if( (tsdevice = getenv("TSLIB_TSDEVICE")) != NULL ) {
+ ts = ts_open(tsdevice,0);
+ } else {
+-#ifdef USE_INPUT_API
+- ts = ts_open("/dev/input/event0", 0);
+-#else
+- ts = ts_open("/dev/touchscreen/ucb1x00", 0);
+-#endif /* USE_INPUT_API */
++ ts = ts_open("/dev/input/event1", 0);
+ }
+
+ if (!ts) {
+--- tslib/tests/ts_test.c~event1
++++ tslib/tests/ts_test.c
+@@ -120,11 +120,7 @@
+ signal(SIGTERM, sig);
+
+ if ((tsdevice = getenv("TSLIB_TSDEVICE")) == NULL) {
+-#ifdef USE_INPUT_API
+- tsdevice = strdup ("/dev/input/event0");
+-#else
+- tsdevice = strdup ("/dev/touchscreen/ucb1x00");
+-#endif /* USE_INPUT_API */
++ tsdevice = strdup ("/dev/input/event1");
+ }
+
+ ts = ts_open (tsdevice, 0);
+--- tslib/tests/ts_print_raw.c~event1
++++ tslib/tests/ts_print_raw.c
+@@ -28,11 +28,7 @@
+ if( (tsdevice = getenv("TSLIB_TSDEVICE")) != NULL ) {
+ ts = ts_open(tsdevice,0);
+ } else {
+-#ifdef USE_INPUT_API
+- ts = ts_open("/dev/input/event0", 0);
+-#else
+- ts = ts_open("/dev/touchscreen/ucb1x00", 0);
+-#endif /* USE_INPUT_API */
++ ts = ts_open("/dev/input/event1", 0);
+ }
+
+ if (!ts) {
+--- tslib/tests/ts_harvest.c~event1
++++ tslib/tests/ts_harvest.c
+@@ -75,11 +75,7 @@
+ signal(SIGTERM, sig);
+
+ if ((tsdevice = getenv("TSLIB_TSDEVICE")) == NULL) {
+-#ifdef USE_INPUT_API
+- tsdevice = strdup ("/dev/input/event0");
+-#else
+- tsdevice = strdup ("/dev/touchscreen/ucb1x00");
+-#endif /* USE_INPUT_API */
++ tsdevice = strdup ("/dev/input/event1");
+ }
+
+ ts = ts_open (tsdevice, 0);
diff --git a/meta/recipes-graphics/tslib/tslib/fix_version.patch b/meta/recipes-graphics/tslib/tslib/fix_version.patch
new file mode 100644
index 000000000..d6a0ebd0f
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/fix_version.patch
@@ -0,0 +1,32 @@
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: tslib-1.0/configure.ac
+===================================================================
+--- tslib-1.0.orig/configure.ac 2006-08-24 22:02:55.000000000 +0100
++++ tslib-1.0/configure.ac 2007-07-09 21:04:38.000000000 +0100
+@@ -2,7 +2,7 @@
+ # Process this file with autoconf to produce a configure script.
+
+ AC_PREREQ(2.57)
+-AC_INIT(tslib, 0.0.2, kergoth@handhelds.org)
++AC_INIT(tslib, 1.0.0, kergoth@handhelds.org)
+ # AC_CONFIG_AUX_DIR(config)
+ AM_INIT_AUTOMAKE(dist-bzip2)
+ AC_CONFIG_SRCDIR([src/ts_close.c])
+@@ -193,10 +193,10 @@ TS_CONF='${sysconfdir}/ts.conf'
+ AC_SUBST(TS_CONF)
+
+ # Library versioning
+-LT_RELEASE=0.0
+-LT_CURRENT=1
+-LT_REVISION=1
+-LT_AGE=1
++LT_RELEASE=1.0
++LT_CURRENT=0
++LT_REVISION=0
++LT_AGE=0
+ AC_SUBST(LT_RELEASE)
+ AC_SUBST(LT_CURRENT)
+ AC_SUBST(LT_REVISION)
diff --git a/meta/recipes-graphics/tslib/tslib/jornada56x/ts.conf b/meta/recipes-graphics/tslib/tslib/jornada56x/ts.conf
new file mode 100644
index 000000000..20729b615
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada56x/ts.conf
@@ -0,0 +1,5 @@
+module_raw h3600
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/jornada56x/tslib.sh b/meta/recipes-graphics/tslib/tslib/jornada56x/tslib.sh
new file mode 100644
index 000000000..8f907b075
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada56x/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/tsraw0
+
+export TSLIB_TSDEVICE
diff --git a/meta/recipes-graphics/tslib/tslib/jornada6xx/ts.conf b/meta/recipes-graphics/tslib/tslib/jornada6xx/ts.conf
new file mode 100644
index 000000000..20729b615
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada6xx/ts.conf
@@ -0,0 +1,5 @@
+module_raw h3600
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/jornada6xx/tslib.sh b/meta/recipes-graphics/tslib/tslib/jornada6xx/tslib.sh
new file mode 100644
index 000000000..1b5db781c
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada6xx/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/ts0
+
+export TSLIB_TSDEVICE
diff --git a/meta/recipes-graphics/tslib/tslib/jornada7xx/ts.conf b/meta/recipes-graphics/tslib/tslib/jornada7xx/ts.conf
new file mode 100644
index 000000000..09309719f
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada7xx/ts.conf
@@ -0,0 +1,5 @@
+module_raw input
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/jornada7xx/tslib.sh b/meta/recipes-graphics/tslib/tslib/jornada7xx/tslib.sh
new file mode 100644
index 000000000..040f4de3d
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/jornada7xx/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/event1
+
+export TSLIB_TSDEVICE
diff --git a/meta/recipes-graphics/tslib/tslib/mnci/ts.conf b/meta/recipes-graphics/tslib/tslib/mnci/ts.conf
new file mode 100644
index 000000000..adff17717
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/mnci/ts.conf
@@ -0,0 +1,5 @@
+module_raw input
+module pthres pmin=600
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/mnci/tslib.sh b/meta/recipes-graphics/tslib/tslib/mnci/tslib.sh
new file mode 100644
index 000000000..07928f226
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/mnci/tslib.sh
@@ -0,0 +1 @@
+export TSLIB_TSDEVICE=/dev/input/event1
diff --git a/meta/recipes-graphics/tslib/tslib/multievent.patch b/meta/recipes-graphics/tslib/tslib/multievent.patch
new file mode 100644
index 000000000..854e7af5d
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/multievent.patch
@@ -0,0 +1,843 @@
+--- tslib/plugins/linear.c~multievent
++++ tslib/plugins/linear.c
+@@ -39,14 +39,12 @@
+ linear_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
+ {
+ struct tslib_linear *lin = (struct tslib_linear *)info;
+- int ret;
++ int ret, i = 0;
+ int xtemp,ytemp;
+
+ ret = info->next->ops->read(info->next, samp, nr);
+ if (ret >= 0) {
+- int nr;
+-
+- for (nr = 0; nr < ret; nr++, samp++) {
++ for (i = 0; i < ret; i++, samp++) {
+ #ifdef DEBUG
+ fprintf(stderr,"BEFORE CALIB--------------------> %d %d %d\n",samp->x, samp->y, samp->pressure);
+ #endif /*DEBUG*/
+@@ -66,6 +64,7 @@
+ samp->y = tmp;
+ }
+ }
++ ret = i;
+ }
+
+ return ret;
+--- tslib/plugins/dejitter.c~multievent
++++ tslib/plugins/dejitter.c
+@@ -24,7 +24,6 @@
+
+ struct tslib_threshold {
+ struct tslib_module_info module;
+- int pthreshold;
+ int xdelta;
+ int ydelta;
+ int delta2;
+@@ -36,40 +35,28 @@
+ static int threshold_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
+ {
+ struct tslib_threshold *thr = (struct tslib_threshold *)info;
+- struct ts_sample *s;
+- int ret;
++ struct ts_sample *src = samp, *dest = samp;
++ int ret, i = 0;
+
+ ret = info->next->ops->read(info->next, samp, nr);
+ if (ret >= 0) {
+- int nr = 0;
+-
+- for (s = samp; s < samp + ret; s++) {
++ for (i = 0; i < ret; i++, samp++) {
+ int dr2;
+ #ifdef DEBUG
+- fprintf(stderr,"BEFORE DEJITTER---------------> %d %d %d\n",s->x,s->y,s->pressure);
++ fprintf(stderr,"BEFORE DEJITTER---------------> %d %d %d\n", samp->x, samp->y, samp->pressure);
+ #endif /*DEBUG*/
+- thr->down = (s->pressure >= thr->pthreshold);
+- if (thr->down) {
+- dr2 = (thr->x - s->x)*(thr->x - s->x)
+- + (thr->y - s->y)*(thr->y - s->y);
+- if(dr2 < thr->delta2) {
+- s->x = thr->x;
+- s->y = thr->y;
+- } else {
+- thr->x = s->x;
+- thr->y = s->y;
+- }
+-
++ dr2 = (thr->x - samp->x)*(thr->x - samp->x)
++ + (thr->y - samp->y)*(thr->y - samp->y);
++ if(dr2 < thr->delta2) {
++ samp->x = thr->x;
++ samp->y = thr->y;
+ } else {
+- s->x = thr->x;
+- s->y = thr->y;
++ thr->x = samp->x;
++ thr->y = samp->y;
+ }
+-
+-
+- samp[nr++] = *s;
+ }
+
+- ret = nr;
++ ret = i;
+ }
+ return ret;
+ }
+@@ -106,10 +93,6 @@
+ thr->ydelta = v;
+ break;
+
+- case 3:
+- thr->pthreshold = v;
+- break;
+-
+ default:
+ return -1;
+ }
+@@ -120,7 +103,6 @@
+ {
+ { "xdelta", (void *)1, threshold_limit },
+ { "ydelta", (void *)2, threshold_limit },
+- { "pthreshold", (void *)3, threshold_limit }
+ };
+
+ //#define NR_VARS (sizeof(threshold_vars) / sizeof(threshold_vars[0]))
+@@ -138,7 +120,6 @@
+
+ thr->xdelta = 10;
+ thr->ydelta = 10;
+- thr->pthreshold = 100;
+
+ if (tslib_parse_vars(&thr->module, threshold_vars, NR_VARS, params)) {
+ free(thr);
+--- tslib/plugins/variance.c~multievent
++++ tslib/plugins/variance.c
+@@ -9,25 +9,36 @@
+ * $Id: variance.c,v 1.3 2002/11/08 23:28:55 dlowder Exp $
+ *
+ * Variance filter for touchscreen values
++ *
++ * Policy question (applies to all tslib modules that consume events):
++ * 1) User requests a read of 5 events using nr.
++ * 2) Lower layers return us 4 events.
++ * 3) Perform variance calculation, we now only have _1_ event.
++ * 4) Do we, a) duplicate this data across the user requested 4 events,
++ * b) push up the single event
++ * c) loop on the read from the lower layers to obtain
++ * the user's requested number of events, unless we hit
++ * a pen_up.
+ */
++
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <limits.h>
+-
+ #include <stdio.h>
+
+ #include "tslib.h"
+ #include "tslib-filter.h"
+
++#define NR_INIT -1
+ #define NR_LAST 4
+
+ struct tslib_variance {
+ struct tslib_module_info module;
+ int nr;
+- unsigned int pthreshold;
+ unsigned int xlimit;
+ unsigned int ylimit;
++ unsigned int pthreshold;
+ struct ts_sample last[NR_LAST];
+ };
+
+@@ -37,8 +48,7 @@
+ * least variance, and average them.
+ */
+ static int
+-variance_calculate(struct tslib_variance *var, struct ts_sample *samp,
+- struct ts_sample *s)
++variance_calculate(struct tslib_variance *var, struct ts_sample *dest, struct ts_sample *src)
+ {
+ int i, j;
+ int diff_x, min_x, i_x, j_x;
+@@ -100,11 +110,11 @@
+ }
+ }
+
+- samp->x = (var->last[i_x].x + var->last[j_x].x) / 2;
+- samp->y = (var->last[i_y].y + var->last[j_y].y) / 2;
+- samp->pressure = (var->last[i_p].pressure + var->last[j_p].pressure) / 2;
+- samp->tv.tv_sec = s->tv.tv_sec;
+- samp->tv.tv_usec = s->tv.tv_usec;
++ dest->x = (var->last[i_x].x + var->last[j_x].x) / 2;
++ dest->y = (var->last[i_y].y + var->last[j_y].y) / 2;
++ dest->pressure = (var->last[i_p].pressure + var->last[j_p].pressure) / 2;
++ dest->tv.tv_sec = src->tv.tv_sec;
++ dest->tv.tv_usec = src->tv.tv_usec;
+
+ return 1;
+ }
+@@ -112,55 +122,57 @@
+ static int variance_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
+ {
+ struct tslib_variance *var = (struct tslib_variance *)info;
+- struct ts_sample *s;
+- int ret;
+-
+- ret = info->next->ops->read(info->next, samp, nr);
+- if (ret >= 0) {
+- int nr = 0;
+-
+- for (s = samp; s < samp + ret; s++) {
+- if (s->pressure < var->pthreshold) {
+- /*
+- * Pen was released. Reset our state and
+- * pass up the release information.
+- */
+-// samp[nr].x = 0;
+-// samp[nr].y = 0;
+- samp[nr].pressure = s->pressure;
+- samp[nr].tv.tv_sec = s->tv.tv_sec;
+- samp[nr].tv.tv_usec = s->tv.tv_usec;
+-
+- nr++;
+-
+- var->nr = 0;
+- continue;
+- } else if (var->nr == -1) {
+- /*
+- * Pen was pressed. Inform upper layers
+- * immediately.
+- */
+- samp[nr] = *s;
+- nr++;
+- }
+-
+- if (var->nr >= 0) {
+- var->last[var->nr].x = s->x;
+- var->last[var->nr].y = s->y;
+- var->last[var->nr].pressure = s->pressure;
+- }
+-
+- var->nr++;
++ struct ts_sample *src = samp, *dest = samp;
++ int ret, i = 0;
+
+- if (var->nr == NR_LAST) {
+- if (variance_calculate(var, samp + nr, s))
+- nr++;
+- var->nr = 0;
++ /*
++ * NOTES:
++ *
++ * Loop on read, collecting events until we hit nr, unless
++ * we hit a pen up or encounter a failure.
++ */
++ while ((i < nr) && (ret != -1)) {
++ ret = info->next->ops->read(info->next, dest + i, nr - i);
++ if (ret >= 0) {
++ for (src = dest + i; src < dest + ret; src++) {
++ if (src->pressure < var->pthreshold) {
++ /* pen released, reset var->nr,
++ * do a calc based on what we have so
++ * far, and let this event flow up */
++ if (variance_calculate(var, dest + i, src))
++ i++;
++ var->nr = NR_INIT;
++ ret = -1; /* break outer loop, push up event */
++ break;
++ } else if (var->nr == NR_INIT) {
++ /*
++ * First pen down event. Inform upper layers
++ * immediately for responsiveness.
++ */
++ var->nr = 0;
++ i++;
++ ret = -1; /* break outer loop */
++ break;
++ }
++
++ if (var->nr >= 0) {
++ var->last[var->nr].x = src->x;
++ var->last[var->nr].y = src->y;
++ var->last[var->nr].pressure = src->pressure;
++ }
++
++ var->nr++;
++
++ if (var->nr == NR_LAST) {
++ if (variance_calculate(var, dest + i, src))
++ i++;
++ var->nr = 0;
++ }
+ }
+ }
+-
+- ret = nr;
+ }
++ /* if we've collected at least one event, send it up */
++ if (i != 0) ret = i;
+ return ret;
+ }
+
+@@ -196,10 +208,6 @@
+ var->ylimit = v;
+ break;
+
+- case 3:
+- var->pthreshold = v;
+- break;
+-
+ default:
+ return -1;
+ }
+@@ -210,7 +218,6 @@
+ {
+ { "xlimit", (void *)1, variance_limit },
+ { "ylimit", (void *)2, variance_limit },
+- { "pthreshold", (void *)3, variance_limit }
+ };
+
+ #define NR_VARS (sizeof(variance_vars) / sizeof(variance_vars[0]))
+@@ -218,6 +225,7 @@
+ struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)
+ {
+ struct tslib_variance *var;
++ char *pthresvar;
+
+ var = malloc(sizeof(struct tslib_variance));
+ if (var == NULL)
+@@ -225,10 +233,15 @@
+
+ var->module.ops = &variance_ops;
+
+- var->nr = -1;
++ var->nr = NR_INIT;
+ var->xlimit = 160;
+ var->ylimit = 160;
+ var->pthreshold = 100;
++ pthresvar = getenv("TSLIB_PTHRES");
++ if (pthresvar != NULL) {
++ int p = strtol(pthresvar, (char **)NULL, 10);
++ if (p != -1) var->pthreshold = p;
++ }
+
+ if (tslib_parse_vars(&var->module, variance_vars, NR_VARS, params)) {
+ free(var);
+--- tslib/README~multievent
++++ tslib/README
+@@ -36,6 +36,19 @@
+ usages. They are by no means exhaustive, nor probably even good examples.
+ They are basically the programs I used to test this library.
+
++Module Creation Notes
++=====================
++
++For those creating tslib modules, it is important to note a couple things with
++regard to handling of the ability for a user to request more than one ts event
++at a time. The first thing to note is that the lower layers may send up less
++events than the user requested, but only if that was a result of a pen release.
++Next, your module should send up just as many events as the user requested in
++nr. If your module is one that consumes events, such as variance, then you
++loop on the read from the lower layers, and only send the events up when
++1) you have the number of events requested by the user, or 2) one of the events
++from the lower layers was a pen release.
++
+
+ Module Parameters
+ =================
+--- tslib/src/ts_read_raw.c~multievent
++++ tslib/src/ts_read_raw.c
+@@ -14,10 +14,10 @@
+ *
+ * Read raw pressure, x, y, and timestamp from a touchscreen device.
+ */
++
+ #include "config.h"
+
+ #include <stdio.h>
+-
+ #include <stdlib.h>
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+@@ -25,79 +25,27 @@
+ #include <sys/time.h>
+ #include <sys/types.h>
+
+-#ifdef USE_INPUT_API
+-#include <linux/input.h>
+-#else
+-struct ts_event { /* Used in UCB1x00 style touchscreens (the default) */
+- unsigned short pressure;
+- unsigned short x;
+- unsigned short y;
+- unsigned short pad;
+- struct timeval stamp;
+-};
+-struct h3600_ts_event { /* Used in the Compaq IPAQ */
+- unsigned short pressure;
+- unsigned short x;
+- unsigned short y;
+- unsigned short pad;
+-};
+-struct mk712_ts_event { /* Used in the Hitachi Webpad */
+- unsigned int header;
+- unsigned int x;
+- unsigned int y;
+- unsigned int reserved;
+-};
+-struct arctic2_ts_event { /* Used in the IBM Arctic II */
+- signed short pressure;
+- signed int x;
+- signed int y;
+- int millisecs;
+- int flags;
+-};
+-struct collie_ts_event { /* Used in the Sharp Zaurus SL-5000d and SL-5500 */
+- long y;
+- long x;
+- long pressure;
+- long long millisecs;
+-};
+-struct corgi_ts_event { /* Used in the Sharp Zaurus SL-C700 */
+- short pressure;
+- short x;
+- short y;
+- short millisecs;
+-};
+-#endif /* USE_INPUT_API */
+-
+ #include "tslib-private.h"
+
+-int ts_read_raw(struct tsdev *ts, struct ts_sample *samp, int nr)
+-{
+ #ifdef USE_INPUT_API
++#include <linux/input.h>
++
++static inline int get_input_event(struct tsdev *ts, struct ts_sample *samp) {
+ struct input_event ev;
+-#else
+- struct ts_event *evt;
+- struct h3600_ts_event *hevt;
+- struct mk712_ts_event *mevt;
+- struct arctic2_ts_event *aevt;
+- struct collie_ts_event *collie_evt;
+- struct corgi_ts_event *corgi_evt;
+-#endif /* USE_INPUT_API */
+- int ret;
+- int total = 0;
++ struct timeval tv = {0, 0};
++ fd_set fdset;
++ int ret = 0;
+
+- char *tseventtype=NULL;
+- char *defaulttseventtype="UCB1x00";
++ /* event vars */
++ static int curr_x = 0, curr_y = 0;
++ int curr_p = 0, next_x = 0, next_y = 0;
+
+-#ifdef USE_INPUT_API
+- /* warning: maybe those static vars should be part of the tsdev struct? */
+- static int curr_x = 0, curr_y = 0, curr_p = 0;
+- static int got_curr_x = 0, got_curr_y = 0;
+- int got_curr_p = 0;
+- int next_x, next_y;
++ /* state variables */
++ int got_curr_x = 0, got_curr_y = 0, got_curr_p = 0;
+ int got_next_x = 0, got_next_y = 0;
+ int got_tstamp = 0;
+
+- while (total < nr) {
++ while (1) {
+ ret = read(ts->fd, &ev, sizeof(struct input_event));
+ if (ret < sizeof(struct input_event)) break;
+
+@@ -146,177 +94,231 @@
+ samp->tv = ev.time;
+ }
+
+- if ( (!got_curr_x || !got_curr_y) && !got_curr_p &&
+- !got_next_x && !got_next_y ) {
+- /*
+- * The current event is not complete yet.
+- * Give the kernel a chance to feed us more.
+- */
+- struct timeval tv = {0, 0};
+- fd_set fdset;
+- FD_ZERO(&fdset);
+- FD_SET(ts->fd, &fdset);
+- ret = select(ts->fd+1, &fdset, NULL, NULL, &tv);
+- if (ret == 1) continue;
+- if (ret == -1) break;
++ if (got_curr_x && got_curr_y && got_curr_p) {
++ /* we have a complete event */
++ samp->x = curr_x;
++ samp->y = curr_y;
++ samp->pressure = curr_p;
++ ret = 0; /* indicate success */
++ if (got_next_x) curr_x = next_x;
++ if (got_next_y) curr_y = next_y;
++ break;
+ }
+
+- /* We consider having a complete ts event */
+- samp->x = curr_x;
+- samp->y = curr_y;
+- samp->pressure = curr_p;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- samp++;
+- total++;
+-
+- /* get ready for next event */
+- if (got_next_x) curr_x = next_x; else got_curr_x = 0;
+- if (got_next_y) curr_y = next_y; else got_curr_y = 0;
+- got_next_x = got_next_y = got_tstamp = 0;
++ /*
++ * The current event is not complete yet.
++ * Give the kernel a chance to feed us more.
++ */
++ FD_ZERO(&fdset);
++ FD_SET(ts->fd, &fdset);
++ ret = select(ts->fd+1, &fdset, NULL, NULL, &tv);
++ if (ret == 1) continue;
++ if (ret == -1) break;
+ }
+
+- if (ret) ret = -1;
+- if (total) ret = total;
++// fprintf(stdout, "%s: returning %d\n", __FUNCTION__, ret);
++ if (ret != 0) ret = -1;
++ return ret;
++}
++
+ #else
++
++struct ucb1x00_ts_event { /* Used in UCB1x00 style touchscreens (the default) */
++ unsigned short pressure;
++ unsigned short x;
++ unsigned short y;
++ unsigned short pad;
++ struct timeval stamp;
++};
++struct h3600_ts_event { /* Used in the Compaq IPAQ */
++ unsigned short pressure;
++ unsigned short x;
++ unsigned short y;
++ unsigned short pad;
++};
++struct mk712_ts_event { /* Used in the Hitachi Webpad */
++ unsigned int header;
++ unsigned int x;
++ unsigned int y;
++ unsigned int reserved;
++};
++struct arctic2_ts_event { /* Used in the IBM Arctic II */
++ signed short pressure;
++ signed int x;
++ signed int y;
++ int millisecs;
++ int flags;
++};
++struct collie_ts_event { /* Used in the Sharp Zaurus SL-5000d and SL-5500 */
++ long y;
++ long x;
++ long pressure;
++ long long millisecs;
++};
++struct corgi_ts_event { /* Used in the Sharp Zaurus SL-C700 */
++ short pressure;
++ short x;
++ short y;
++ short millisecs;
++};
++
++static inline int get_ucb1x00_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct ucb1x00_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct ucb1x00_ts_event));
++ if (ret > 0) {
++ samp->x = evt.x;
++ samp->y = evt.y;
++ samp->pressure = evt.pressure;
++ samp->tv.tv_usec = evt.stamp.tv_usec;
++ samp->tv.tv_sec = evt.stamp.tv_sec;
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++static inline int get_h3600_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct h3600_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct h3600_ts_event));
++ if (ret > 0) {
++ samp->x = evt.x;
++ samp->y = evt.y;
++ samp->pressure = evt.pressure;
++ gettimeofday(&samp->tv, NULL);
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++static inline int get_mk712_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct mk712_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct mk712_ts_event));
++ if (ret > 0) {
++ samp->x = (short)evt.x;
++ samp->y = (short)evt.y;
++ if(evt.header==0)
++ samp->pressure=1;
++ else
++ samp->pressure=0;
++ gettimeofday(&samp->tv, NULL);
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++static inline int get_arctic2_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct arctic2_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct arctic2_ts_event));
++ if (ret > 0) {
++ samp->x = (short)evt.x;
++ samp->y = (short)evt.y;
++ samp->pressure = evt.pressure;
++ gettimeofday(&samp->tv, NULL);
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++static inline int get_collie_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct collie_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct collie_ts_event));
++ if (ret > 0) {
++ samp->x = evt.x;
++ samp->y = evt.y;
++ samp->pressure = evt.pressure;
++ samp->tv.tv_usec = evt.millisecs % 1000;
++ samp->tv.tv_sec = evt.millisecs / 1000;
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++static inline int get_corgi_event(struct tsdev *ts, struct ts_sample *samp) {
++ struct corgi_ts_event evt;
++ int ret = read(ts->fd, &evt, sizeof(struct corgi_ts_event));
++ if (ret > 0) {
++ samp->x = evt.x;
++ samp->y = evt.y;
++ samp->pressure = evt.pressure;
++ samp->tv.tv_usec = evt.millisecs % 1000;
++ samp->tv.tv_sec = evt.millisecs / 1000;
++ ret = 0; /* success */
++ }
++ return ret;
++}
++
++#endif
++
++int ts_read_raw(struct tsdev *ts, struct ts_sample *samp, int nr)
++{
++ int ret;
++ int total = 0;
++ int pen_down = 1;
++ static short x_save = 0, y_save = 0;
++ static int pthres = -1;
++
++#ifndef USE_INPUT_API
++ char *tseventtype=NULL;
++ char *defaulttseventtype="UCB1x00";
+ tseventtype = getenv("TSLIB_TSEVENTTYPE");
+ if(tseventtype==NULL) tseventtype=defaulttseventtype;
++#endif
+
+- if( strcmp(tseventtype,"H3600") == 0) { /* iPAQ style h3600 touchscreen events */
+- hevt = alloca(sizeof(*hevt) * nr);
+- ret = read(ts->fd, hevt, sizeof(*hevt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*hevt);
+- while(ret >= sizeof(*hevt)) {
+- samp->x = hevt->x;
+- samp->y = hevt->y;
+- samp->pressure = hevt->pressure;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- gettimeofday(&samp->tv,NULL);
+- samp++;
+- hevt++;
+- ret -= sizeof(*hevt);
+- }
+- } else {
+- return -1;
+- }
+- } else if( strcmp(tseventtype,"MK712") == 0) { /* Hitachi Webpad events */
+- mevt = alloca(sizeof(*mevt) * nr);
+- ret = read(ts->fd, mevt, sizeof(*mevt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*mevt);
+- while(ret >= sizeof(*mevt)) {
+- samp->x = (short)mevt->x;
+- samp->y = (short)mevt->y;
+- if(mevt->header==0)
+- samp->pressure=1;
+- else
+- samp->pressure=0;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- gettimeofday(&samp->tv,NULL);
+- samp++;
+- mevt++;
+- ret -= sizeof(*mevt);
+- }
+- } else {
+- return -1;
+- }
+-
+- } else if( strcmp(tseventtype,"ARCTIC2") == 0) { /* IBM Arctic II events */
+- aevt = alloca(sizeof(*aevt) * nr);
+- ret = read(ts->fd, aevt, sizeof(*aevt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*aevt);
+- while(ret >= sizeof(*aevt)) {
+- samp->x = (short)aevt->x;
+- samp->y = (short)aevt->y;
+- samp->pressure = aevt->pressure;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- gettimeofday(&samp->tv,NULL);
+- samp++;
+- aevt++;
+- ret -= sizeof(*aevt);
+- }
++ while ((total < nr) && pen_down) {
++// fprintf(stdout, "total: %d, nr: %d\n", total, nr);
++#ifdef USE_INPUT_API
++ ret = get_input_event(ts, samp);
++#else
++ if (strcmp(tseventtype, "H3600") == 0) {
++ /* iPAQ style h3600 touchscreen events */
++ ret = get_h3600_event(ts, samp);
++ } else if (strcmp(tseventtype, "MK712") == 0) {
++ /* Hitachi Webpad events */
++ ret = get_mk712_event(ts, samp);
++ } else if (strcmp(tseventtype, "ARCTIC2") == 0) {
++ /* IBM Arctic II events */
++ ret = get_arctic2_event(ts, samp);
++ } else if (strcmp(tseventtype, "COLLIE") == 0) {
++ /* Sharp Zaurus SL-5000d/5500 events */
++ ret = get_collie_event(ts, samp);
++ } else if (strcmp(tseventtype,"CORGI") == 0) {
++ /* Sharp Zaurus SL-C700 events */
++ ret = get_corgi_event(ts, samp);
+ } else {
+- return -1;
++ /* Use normal UCB1x00 type events */
++ ret = get_ucb1x00_event(ts, samp);
+ }
++#endif
++ if (ret != 0) break;
+
+- } else if( strcmp(tseventtype,"COLLIE") == 0) { /* Sharp Zaurus SL-5000d/5500 events */
+- collie_evt = alloca(sizeof(*collie_evt) * nr);
+- ret = read(ts->fd, collie_evt, sizeof(*collie_evt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*collie_evt);
+- while(ret >= sizeof(*collie_evt)) {
+- samp->x = collie_evt->x;
+- samp->y = collie_evt->y;
+- samp->pressure = collie_evt->pressure;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- samp->tv.tv_usec = collie_evt->millisecs % 1000;
+- samp->tv.tv_sec = collie_evt->millisecs / 1000;
+- samp++;
+- collie_evt++;
+- ret -= sizeof(*collie_evt);
++ if (pthres == -1) {
++ char *pthresvar = getenv("TSLIB_PTHRES");
++ pthres = 100;
++ if (pthresvar != NULL) {
++ int p = strtol(pthresvar, (char **)NULL, 10);
++ if (p != -1) pthres = p;
+ }
+- } else {
+- return -1;
+ }
+
+- } else if( strcmp(tseventtype,"CORGI") == 0) { /* Sharp Zaurus SL-C700 events */
+- corgi_evt = alloca(sizeof(*corgi_evt) * nr);
+- ret = read(ts->fd, corgi_evt, sizeof(*corgi_evt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*corgi_evt);
+- while(ret >= sizeof(*corgi_evt)) {
+- samp->x = corgi_evt->x;
+- samp->y = corgi_evt->y;
+- samp->pressure = corgi_evt->pressure;
+-#ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
+-#endif /*DEBUG*/
+- samp->tv.tv_usec = corgi_evt->millisecs % 1000;
+- samp->tv.tv_sec = corgi_evt->millisecs / 1000;
+- samp++;
+- corgi_evt++;
+- ret -= sizeof(*corgi_evt);
+- }
++ if (samp->pressure < pthres) {
++ /* pen released, send events up */
++ pen_down = 0;
++ /* set x and y to previous values */
++ samp->x = x_save;
++ samp->y = y_save;
+ } else {
+- return -1;
++ pen_down = 1;
++ x_save = samp->x;
++ y_save = samp->y;
+ }
+-
+- } else { /* Use normal UCB1x00 type events */
+- evt = alloca(sizeof(*evt) * nr);
+- ret = read(ts->fd, evt, sizeof(*evt) * nr);
+- if(ret > 0) {
+- int nr = ret / sizeof(*evt);
+- while(ret >= sizeof(*evt)) {
+- samp->x = evt->x;
+- samp->y = evt->y;
+- samp->pressure = evt->pressure;
+ #ifdef DEBUG
+- fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
++ fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x, samp->y, samp->pressure);
+ #endif /*DEBUG*/
+- samp->tv.tv_usec = evt->stamp.tv_usec;
+- samp->tv.tv_sec = evt->stamp.tv_sec;
+- samp++;
+- evt++;
+- ret -= sizeof(*evt);
+- }
+- } else {
+- return -1;
+- }
++ samp++;
++ total++;
+ }
+- ret = nr;
+-#endif /* USE_INPUT_API */
+
++ if (ret != 0) ret = -1;
++ if (total) ret = total;
+ return ret;
+ }
+
diff --git a/meta/recipes-graphics/tslib/tslib/netbook-pro/ts.conf b/meta/recipes-graphics/tslib/tslib/netbook-pro/ts.conf
new file mode 100644
index 000000000..6d94a8f46
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/netbook-pro/ts.conf
@@ -0,0 +1,5 @@
+module_raw input
+module variance delta=80
+#module dejitter delta=2
+module linear
+
diff --git a/meta/recipes-graphics/tslib/tslib/netbook-pro/tslib.sh b/meta/recipes-graphics/tslib/tslib/netbook-pro/tslib.sh
new file mode 100644
index 000000000..d31bc7636
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/netbook-pro/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=`detect-stylus --device`
+
+export TSLIB_TSDEVICE
diff --git a/meta/recipes-graphics/tslib/tslib/omap1610h2/tslib.sh b/meta/recipes-graphics/tslib/tslib/omap1610h2/tslib.sh
new file mode 100644
index 000000000..040f4de3d
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/omap1610h2/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/event1
+
+export TSLIB_TSDEVICE
diff --git a/meta/recipes-graphics/tslib/tslib/omap5912osk/tslib.sh b/meta/recipes-graphics/tslib/tslib/omap5912osk/tslib.sh
new file mode 100644
index 000000000..6bb56651f
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/omap5912osk/tslib.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export TSLIB_TSDEVICE=/dev/input/event1
+export QWS_MOUSE_PROTO=TPanel
diff --git a/meta/recipes-graphics/tslib/tslib/simpad/tslib.sh b/meta/recipes-graphics/tslib/tslib/simpad/tslib.sh
new file mode 100644
index 000000000..9c4eb1e0f
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/simpad/tslib.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/touchscreen0
+TSLIB_CONFFILE=/etc/ts.conf
+
+case `uname -r` in
+2.4*)
+ TSLIB_TSDEVICE=/dev/touchscreen/ucb1x00
+ TSLIB_CONFFILE=/usr/share/tslib/ts.conf-simpad-2.4
+ ;;
+esac
+
+export TSLIB_TSDEVICE TSLIB_CONFFILE
+
diff --git a/meta/recipes-graphics/tslib/tslib/ts.conf b/meta/recipes-graphics/tslib/tslib/ts.conf
new file mode 100644
index 000000000..1b0da937e
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/ts.conf
@@ -0,0 +1,25 @@
+# Uncomment if you wish to use the linux input layer event interface
+module_raw input
+
+# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
+# module_raw collie
+
+# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
+# module_raw corgi
+
+# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
+# module_raw ucb1x00
+
+# Uncomment if you're using an HP iPaq h3600 or similar
+# module_raw h3600
+
+# Uncomment if you're using a Hitachi Webpad
+# module_raw mk712
+
+# Uncomment if you're using an IBM Arctic II
+# module_raw arctic2
+
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/ts.conf-collie-2.4 b/meta/recipes-graphics/tslib/tslib/ts.conf-collie-2.4
new file mode 100644
index 000000000..2099b9b41
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/ts.conf-collie-2.4
@@ -0,0 +1,5 @@
+module_raw collie
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/ts.conf-simpad-2.4 b/meta/recipes-graphics/tslib/tslib/ts.conf-simpad-2.4
new file mode 100644
index 000000000..035e794cb
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/ts.conf-simpad-2.4
@@ -0,0 +1,5 @@
+module_raw ucb1x00
+module pthres pmin=1
+module variance delta=10
+module dejitter delta=150
+module linear
diff --git a/meta/recipes-graphics/tslib/tslib/tslib.sh b/meta/recipes-graphics/tslib/tslib/tslib.sh
new file mode 100644
index 000000000..7068e8d92
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib/tslib.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ -e /dev/input/touchscreen0 ]; then
+ TSLIB_TSDEVICE=/dev/input/touchscreen0
+
+ export TSLIB_TSDEVICE
+fi
+
diff --git a/meta/recipes-graphics/tslib/tslib_1.0.bb b/meta/recipes-graphics/tslib/tslib_1.0.bb
new file mode 100644
index 000000000..12c0ace8f
--- /dev/null
+++ b/meta/recipes-graphics/tslib/tslib_1.0.bb
@@ -0,0 +1,78 @@
+DESCRIPTION = "tslib is a plugin-based flexible touchscreen access library."
+HOMEPAGE = "http://tslib.berlios.de/"
+
+AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
+SECTION = "base"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+PR = "r15"
+
+SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
+ file://fix_version.patch;patch=1 \
+ file://ts.conf \
+ file://ts.conf-simpad-2.4 \
+ file://ts.conf-collie-2.4 \
+ file://tslib.sh"
+SRC_URI_append_mnci += " file://devfs.patch;patch=1"
+SRC_URI_append_mnci += " file://event1.patch;patch=1"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-shared --disable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00"
+
+do_install_prepend() {
+ install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/profile.d/
+ install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
+ case ${MACHINE} in
+ collie )
+ install -d ${D}${datadir}/tslib
+ install -m 0644 ${WORKDIR}/ts.conf-collie-2.4 ${D}${datadir}/tslib/
+ ;;
+ simpad )
+ install -d ${D}${datadir}/tslib
+ install -m 0644 ${WORKDIR}/ts.conf-simpad-2.4 ${D}${datadir}/tslib/
+ ;;
+ *)
+ ;;
+ esac
+}
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "0"
+
+# People should consider using udev's /dev/input/touchscreen0 symlink
+# instead of detect-stylus
+#RDEPENDS_tslib-conf_weird-machine = "detect-stylus"
+RPROVIDES_tslib-conf = "libts-0.0-conf"
+
+# Machines with machine specific patches
+PACKAGE_ARCH_mnci = "${MACHINE_ARCH}"
+# Machines with machine specific config files (tslib.sh)
+PACKAGE_ARCH_tslib-conf_a780 = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_collie = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_e680 = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_jornada56x = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_jornada6xx = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_jornada7xx = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_netbook-pro = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_omap1610h2 = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_omap5912osk = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_simpad = "${MACHINE_ARCH}"
+
+PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate"
+DEBIAN_NOAUTONAME_tslib-conf = "1"
+DEBIAN_NOAUTONAME_tslib-tests = "1"
+DEBIAN_NOAUTONAME_tslib-calibrate = "1"
+
+RDEPENDS_${PN} = "tslib-conf"
+RRECOMMENDS_${PN} = "pointercal"
+
+FILES_${PN}-dbg += "${libdir}/ts/.debug*"
+FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
+FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
+FILES_tslib-calibrate += "${bindir}/ts_calibrate"
+FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"
diff --git a/meta/recipes-graphics/ttf-fonts/liberation-fonts/30-liberation-aliases.conf b/meta/recipes-graphics/ttf-fonts/liberation-fonts/30-liberation-aliases.conf
new file mode 100644
index 000000000..06094503c
--- /dev/null
+++ b/meta/recipes-graphics/ttf-fonts/liberation-fonts/30-liberation-aliases.conf
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!-- conf.d/sub-pixel.conf -->
+<fontconfig>
+ <alias>
+ <family>sans-serif</family>
+ <accept><family>Liberation Sans</family></accept>
+ </alias>
+ <alias>
+ <family>serif</family>
+ <accept><family>Liberation Serif</family></accept>
+ </alias>
+ <alias>
+ <family>monospace</family>
+ <accept><family>Liberation Mono</family></accept>
+ </alias>
+</fontconfig>
diff --git a/meta/recipes-graphics/ttf-fonts/liberation-fonts_1.04.bb b/meta/recipes-graphics/ttf-fonts/liberation-fonts_1.04.bb
new file mode 100644
index 000000000..6b887e31b
--- /dev/null
+++ b/meta/recipes-graphics/ttf-fonts/liberation-fonts_1.04.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The Liberation(tm) Fonts is a font family originally created by Ascender(c) which aims metric compatibility as usage of Arial, Times New Roman, Courier New"
+HOMEPAGE = "https://fedorahosted.org/liberation-fonts/"
+BUGTRACKER = "https://bugzilla.redhat.com/"
+
+SECTION = "x11/fonts"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+PACKAGE_ARCH = "all"
+RDEPENDS = "fontconfig-utils"
+PE = "1"
+
+SRC_URI = "https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-${PV}.tar.gz \
+ file://30-liberation-aliases.conf"
+
+do_install () {
+ install -d ${D}${datadir}/fonts/ttf/
+ for i in *.ttf; do
+ install -m 0644 $i ${D}${prefix}/share/fonts/ttf/${i}
+ done
+
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/30-liberation-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${prefix}/share/doc/${PN}/
+ install -m 0644 License.txt ${D}${datadir}/doc/${PN}/
+}
+
+pkg_postinst () {
+#!/bin/sh
+fc-cache
+}
+
+PACKAGES = "${PN}"
+FILES_${PN} += "${sysconfdir} ${datadir}"
diff --git a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
new file mode 100644
index 000000000..a6f4cd62f
--- /dev/null
+++ b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The Bitstream Vera fonts - TTF Edition"
+SECTION = "x11/fonts"
+PRIORITY = "optional"
+LICENSE = "Bitstream Vera"
+PACKAGE_ARCH = "all"
+PR = "r3"
+RDEPENDS = "fontconfig-utils"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-${PV}.tar.bz2"
+
+do_install () {
+ install -d ${D}${prefix}/share/fonts/ttf/
+ for i in *.ttf; do
+ install -m 644 $i ${D}${prefix}/share/fonts/ttf/${i}
+ done
+
+ # fontconfig ships this too. not sure what to do about it.
+ #install -d ${D}${sysconfdir}/fonts
+ #install -m 644 local.conf ${D}${sysconfdir}/fonts/local.conf
+
+
+ install -d ${D}${prefix}/share/doc/${PN}/
+ for i in *.TXT; do
+ install -m 644 $i ${D}${prefix}/share/doc/${PN}/$i
+ done
+}
+
+pkg_postinst () {
+#!/bin/sh
+fc-cache
+}
+
+
+FILES_${PN} = "/etc ${datadir}/fonts"
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xdefaults b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xdefaults
new file mode 100644
index 000000000..f5b69dd51
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xdefaults
@@ -0,0 +1,3 @@
+Rxvt*scrollBar_right: true
+Rxvt*font: xft:Mono:pixelsize=9
+
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
new file mode 100644
index 000000000..3d4aa74b9
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+
+# note xinit needs full server path
+XSERVER=/usr/bin/Xipaq
+if [ -f /usr/bin/Xfbdev ]; then
+ XSERVER=/usr/bin/Xfbdev
+fi
+if [ -f /usr/bin/Xepson ]; then
+ XSERVER=/usr/bin/Xepson
+fi
+if [ -f /usr/bin/Xorg ]; then
+ XSERVER=/usr/bin/Xorg
+fi
+if [ -f /usr/bin/Xomap ]; then
+ XSERVER=/usr/bin/Xomap
+fi
+
+. /etc/profile
+
+module_id() {
+ ## used to read from assets, but sometimes assets is corrupted
+ # grep "Module ID" /proc/hal/assets | sed "s/.*://"
+ ## used to read from /proc/hal/model, but that is removed in 2.6
+ # echo ' iPAQ' `cat /proc/hal/model`
+ awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo
+}
+
+ARGS=" -br -pn"
+
+if [ "$XSERVER" != "/usr/bin/Xorg" ]; then
+
+ . /etc/formfactor/config
+
+ ARGS="$ARGS -keybd keyboard"
+
+ # use usb mouse if present
+ if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/input/mice ]; then
+ ARGS="$ARGS -mouse /dev/input/mice"
+ fi
+
+ # kdrive 1.4 onwards needs -mouse args
+ if [ -n "$TSLIB_TSDEVICE" ]; then
+ ARGS="$ARGS -mouse tslib"
+ fi
+
+ # start off server in conventional location.
+ case `module_id` in
+ "Generic OMAP1510/1610/1710")
+ ARGS="$ARGS -mouse /dev/input/event0" ;;
+ "Compulab CM-x270")
+ #modprobe mbxfb
+ #ARGS="$ARGS -fb /dev/fb1"
+ ;;
+ "Nokia N800")
+ ARGS="$ARGS -mouse tslib" ;;
+ "Nokia 770")
+ ARGS="$ARGS -mouse tslib" ;;
+ *)
+ ;;
+ esac
+
+ ARGS="$ARGS -screen ${DISPLAY_WIDTH_PIXELS}x${DISPLAY_HEIGHT_PIXELS}@${DISPLAY_ORIENTATION}x${DISPLAY_BPP}"
+
+ if [ ! -z "$DISPLAY_DPI" ]; then
+ ARGS="$ARGS -dpi $DISPLAY_DPI"
+ fi
+
+ if [ ! -z "$DISPLAY_SUBPIXEL_ORDER" ]; then
+ ARGS="$ARGS -rgba $DISPLAY_SUBPIXEL_ORDER"
+ fi
+
+fi
+
+DISPLAY=':0'
+
+exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $*
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession
new file mode 100644
index 000000000..a87447a87
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+if [ -x /usr/bin/dbus-launch ]; then
+ # As this is the X session script, always start a new DBus session.
+ eval `dbus-launch --sh-syntax --exit-with-session`
+ echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
+fi
+
+. /etc/profile
+
+if [ -f $HOME/.profile ]; then
+ . $HOME/.profile
+fi
+
+SYSSESSIONDIR=/etc/X11/Xsession.d
+
+export CLUTTER_DISABLE_MIPMAPPED_TEXT=1
+
+for SESSIONFILE in $SYSSESSIONDIR/*; do
+ set +e
+ case "$SESSIONFILE" in
+ *.sh)
+ . "$SESSIONFILE"
+ ;;
+ *.shbg)
+ "$SESSIONFILE" &
+ ;;
+ *~)
+ # Ignore backup files
+ ;;
+ *)
+ "$SESSIONFILE"
+ ;;
+ esac
+ set -e
+done
+
+exit 0
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/12keymap.sh b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/12keymap.sh
new file mode 100644
index 000000000..a9d102c74
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/12keymap.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# kdrive 1.4 does not have default keymap in server
+#xmodmap - </etc/X11/default.xmodmap
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/89xdgautostart.sh b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/89xdgautostart.sh
new file mode 100644
index 000000000..db7aa229d
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/89xdgautostart.sh
@@ -0,0 +1,7 @@
+XDGAUTOSTART=/etc/xdg/autostart
+if [ -d $XDGAUTOSTART ]; then
+ for SCRIPT in $XDGAUTOSTART/*; do
+ CMD=`grep ^Exec= $SCRIPT | cut -d '=' -f 2`
+ $CMD &
+ done
+fi \ No newline at end of file
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/90XWindowManager.sh b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/90XWindowManager.sh
new file mode 100644
index 000000000..b936dedf3
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/90XWindowManager.sh
@@ -0,0 +1,7 @@
+if [ -x $HOME/.Xsession ]; then
+ exec $HOME/.Xsession
+elif [ -x /usr/bin/x-session-manager ]; then
+ exec /usr/bin/x-session-manager
+else
+ exec /usr/bin/x-window-manager
+fi
diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/default.xmodmap b/meta/recipes-graphics/x11-common/x11-common/etc/X11/default.xmodmap
new file mode 100644
index 000000000..05a13fa3c
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/default.xmodmap
@@ -0,0 +1,260 @@
+keycode 8 =
+keycode 9 = Escape
+keycode 10 = 1 exclam
+keycode 11 = 2 at
+keycode 12 = 3 numbersign
+keycode 13 = 4 dollar
+keycode 14 = 5 percent
+keycode 15 = 6 asciicircum
+keycode 16 = 7 ampersand braceleft
+keycode 17 = 8 asterisk bracketleft
+keycode 18 = 9 parenleft bracketright
+keycode 19 = 0 parenright braceright
+keycode 20 = minus underscore backslash
+keycode 21 = equal plus
+keycode 22 = BackSpace
+keycode 23 = Tab
+keycode 24 = q Q q
+keycode 25 = w W w
+keycode 26 = e E
+keycode 27 = r R r
+keycode 28 = t T t
+keycode 29 = y Y y
+keycode 30 = u U u
+keycode 31 = i I i
+keycode 32 = o O o
+keycode 33 = p P p
+keycode 34 = bracketleft braceleft
+keycode 35 = bracketright braceright asciitilde
+keycode 36 = Return
+keycode 37 = Control_L
+keycode 38 = a A
+keycode 39 = s S s
+keycode 40 = d D
+keycode 41 = f F
+keycode 42 = g G g
+keycode 43 = h H h
+keycode 44 = j J j
+keycode 45 = k K k
+keycode 46 = l L l
+keycode 47 = semicolon colon
+keycode 48 = apostrophe quotedbl
+keycode 49 = grave asciitilde
+keycode 50 = Shift_L
+keycode 51 = backslash bar
+keycode 52 = z Z z
+keycode 53 = x X x
+keycode 54 = c C
+keycode 55 = v V v
+keycode 56 = b B
+keycode 57 = n N n
+keycode 58 = m M m
+keycode 59 = comma less
+keycode 60 = period greater
+keycode 61 = slash question
+keycode 62 = Shift_R
+keycode 63 = KP_Multiply
+keycode 64 = Alt_L
+keycode 65 = space
+keycode 66 = Caps_Lock
+keycode 67 = F1 F11
+keycode 68 = F2 F12
+keycode 69 = F3 F13
+keycode 70 = F4 F14
+keycode 71 = F5 F15
+keycode 72 = F6 F16
+keycode 73 = F7 F17
+keycode 74 = F8 F18
+keycode 75 = F9 F19
+keycode 76 = F10 F20
+keycode 77 = Num_Lock
+keycode 78 = Scroll_Lock
+keycode 79 = KP_7
+keycode 80 = KP_8
+keycode 81 = KP_9
+keycode 82 = KP_Subtract
+keycode 83 = KP_4
+keycode 84 = KP_5
+keycode 85 = KP_6
+keycode 86 = KP_Add
+keycode 87 = KP_1
+keycode 88 = KP_2
+keycode 89 = KP_3
+keycode 90 = KP_0
+keycode 91 = KP_Decimal
+keycode 92 =
+keycode 93 =
+keycode 94 = less greater bar
+keycode 95 = F11
+keycode 96 = F12
+keycode 97 =
+keycode 98 =
+keycode 99 =
+keycode 100 =
+keycode 101 =
+keycode 102 =
+keycode 103 =
+keycode 104 = KP_Enter
+keycode 105 = Control_R
+keycode 106 = KP_Divide
+keycode 107 =
+keycode 108 = Mode_switch
+keycode 109 = Break
+keycode 110 = Home
+keycode 111 = Up
+keycode 112 = Prior
+keycode 113 = Left
+keycode 114 = Right
+keycode 115 = End
+keycode 116 = Down
+keycode 117 = Next
+keycode 118 = Insert
+keycode 119 = Delete
+keycode 120 = Menu
+keycode 121 = F13
+keycode 122 = F14
+keycode 123 = Help
+keycode 124 = Execute
+keycode 125 = F17
+keycode 126 = KP_Subtract
+keycode 127 = Pause
+keycode 128 =
+keycode 129 =
+keycode 130 =
+keycode 131 =
+keycode 132 =
+keycode 133 =
+keycode 134 =
+keycode 135 =
+keycode 136 =
+keycode 137 =
+keycode 138 =
+keycode 139 =
+keycode 140 =
+keycode 141 =
+keycode 142 =
+keycode 143 =
+keycode 144 =
+keycode 145 =
+keycode 146 =
+keycode 147 =
+keycode 148 =
+keycode 149 =
+keycode 150 =
+keycode 151 =
+keycode 152 =
+keycode 153 =
+keycode 154 =
+keycode 155 =
+keycode 156 =
+keycode 157 =
+keycode 158 =
+keycode 159 =
+keycode 160 =
+keycode 161 =
+keycode 162 =
+keycode 163 =
+keycode 164 =
+keycode 165 =
+keycode 166 =
+keycode 167 =
+keycode 168 =
+keycode 169 =
+keycode 170 =
+keycode 171 =
+keycode 172 =
+keycode 173 =
+keycode 174 =
+keycode 175 =
+keycode 176 =
+keycode 177 =
+keycode 178 =
+keycode 179 =
+keycode 180 =
+keycode 181 =
+keycode 182 =
+keycode 183 =
+keycode 184 =
+keycode 185 =
+keycode 186 =
+keycode 187 =
+keycode 188 =
+keycode 189 =
+keycode 190 =
+keycode 191 =
+keycode 192 =
+keycode 193 =
+keycode 194 =
+keycode 195 =
+keycode 196 =
+keycode 197 =
+keycode 198 =
+keycode 199 =
+keycode 200 =
+keycode 201 =
+keycode 202 =
+keycode 203 =
+keycode 204 =
+keycode 205 =
+keycode 206 =
+keycode 207 =
+keycode 208 =
+keycode 209 =
+keycode 210 =
+keycode 211 =
+keycode 212 =
+keycode 213 =
+keycode 214 =
+keycode 215 =
+keycode 216 =
+keycode 217 =
+keycode 218 =
+keycode 219 =
+keycode 220 =
+keycode 221 =
+keycode 222 =
+keycode 223 =
+keycode 224 =
+keycode 225 =
+keycode 226 =
+keycode 227 =
+keycode 228 =
+keycode 229 =
+keycode 230 =
+keycode 231 =
+keycode 232 =
+keycode 233 =
+keycode 234 =
+keycode 235 =
+keycode 236 =
+keycode 237 =
+keycode 238 =
+keycode 239 =
+keycode 240 =
+keycode 241 =
+keycode 242 =
+keycode 243 =
+keycode 244 =
+keycode 245 =
+keycode 246 =
+keycode 247 =
+keycode 248 =
+keycode 249 =
+keycode 250 =
+keycode 251 =
+keycode 252 =
+keycode 253 =
+keycode 254 =
+
+add shift = Shift_L
+add shift = Shift_R
+add shift = Menu
+add lock = Caps_Lock
+add control = Control_L
+add control = Control_R
+add mod1 = Alt_L
+add mod2 = Num_Lock
+!mod3
+add mod4 = Mode_switch
+!mod5
+
diff --git a/meta/recipes-graphics/x11-common/x11-common_0.1.bb b/meta/recipes-graphics/x11-common/x11-common_0.1.bb
new file mode 100644
index 000000000..6791f961a
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-common_0.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Common X11 scripts"
+LICENSE = "GPLv2"
+SECTION = "x11"
+RDEPENDS_${PN} = "xmodmap xdpyinfo xtscal xinit formfactor"
+PR = "r38"
+
+SRC_URI = "file://etc"
+S = ${WORKDIR}
+
+PACKAGE_ARCH = "all"
+
+do_install() {
+ cp -R ${S}/etc ${D}/etc
+ chmod -R 755 ${D}/etc
+ find ${D}/etc -type d -name .svn -prune -exec rm -rf {} \;
+ find ${D}/etc -type f -name \*~ -exec rm -rf {} \;
+}
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
new file mode 100644
index 000000000..c77b2f0f8
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Simple Xserver Init Script (no dm)"
+LICENSE = "GPL"
+SECTION = "x11"
+PRIORITY = "optional"
+PR = "r22"
+RDEPENDS_${PN} = "dbus-wait sudo"
+
+SRC_URI = "file://xserver-nodm"
+S = ${WORKDIR}
+
+PACKAGE_ARCH = "all"
+
+do_install() {
+ install -d ${D}/etc
+ install -d ${D}/etc/init.d
+ install xserver-nodm ${D}/etc/init.d
+}
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "xserver-nodm"
+INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
new file mode 100755
index 000000000..69ea94972
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: xserver
+# Required-Start: $local_fs $remote_fs dbus
+# Required-Stop: $local_fs $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+
+killproc() { # kill the named process(es)
+ pid=`/bin/pidof $1`
+ [ "$pid" != "" ] && kill $pid
+}
+
+read CMDLINE < /proc/cmdline
+for x in $CMDLINE; do
+ case $x in
+ x11=false)
+ echo "X Server disabled"
+ exit 0;
+ ;;
+ esac
+done
+
+case "$1" in
+ start)
+ . /etc/profile
+ username=root
+ echo "Starting Xserver"
+ if [ -f /etc/X11/Xusername ]; then
+ username=`cat /etc/X11/Xusername`
+ fi
+ # Using sudo -i here has the nice side effect of making sire
+ # HOME, USER and other previously problematic variables
+ # are set correctly
+ sudo -b -i -u $username /etc/X11/Xserver
+ # Wait for the desktop to say its finished loading
+ dbus-wait org.matchbox_project.desktop Loaded
+ ;;
+
+ stop)
+ echo "Stopping XServer"
+ killproc xinit
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 { start | stop | restart }"
+ ;;
+esac
+
+exit 0
diff --git a/meta/recipes-graphics/xcb/libpthread-stubs_0.3.bb b/meta/recipes-graphics/xcb/libpthread-stubs_0.3.bb
new file mode 100644
index 000000000..8ded7a074
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libpthread-stubs_0.3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "This library provides weak aliases for pthread functions \
+not provided in libc or otherwise available by default."
+HOMEPAGE = "http://xcb.freedesktop.org"
+BUGTRACKER = "http://bugs.freedesktop.org/buglist.cgi?product=XCB"
+SECTION = "x11/libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6edc1fea03d959f0c2d743fe5ca746ad"
+PR = "r0"
+
+PARALLEL_MAKE = ""
+#DEPENDS = "xcb-proto xproto libxau libxslt-native"
+# DEPENDS += "xsltproc-native gperf-native"
+
+SRC_URI = "http://xcb.freedesktop.org/dist/libpthread-stubs-${PV}.tar.bz2"
+
+inherit autotools pkgconfig
+
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
diff --git a/meta/recipes-graphics/xcb/libxcb.inc b/meta/recipes-graphics/xcb/libxcb.inc
new file mode 100644
index 000000000..37d1f8633
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libxcb.inc
@@ -0,0 +1,53 @@
+DESCRIPTION = "XCB: an X protocol C binding"
+HOMEPAGE = "http://xcb.freedesktop.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-X"
+
+PARALLEL_MAKE = ""
+DEPENDS = "xcb-proto xproto libxau libxslt-native xcb-proto-native"
+# DEPENDS += "xsltproc-native gperf-native"
+
+SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2"
+# file://xcbincludedir.patch;patch=1"
+
+PACKAGES =+ "libxcb-composite libxcb-damage libxcb-dpms libxcb-glx \
+ libxcb-randr libxcb-record libxcb-render libxcb-res \
+ libxcb-screensaver libxcb-shape libxcb-shm libxcb-sync \
+ libxcb-xevie libxcb-xf86dri libxcb-xfixes libxcb-xlib \
+ libxcb-xprint libxcb-xtest libxcb-xv libxcb-xvmc"
+
+FILES_${PN} = "${libdir}/libxcb.so.*"
+#FILES_${PN}-dev = "${libdir}/libxcb.* ${libdir}/pkgconfig/*.pc ${includedir}/xcb/*.h"
+FILES_libxcb-composite = "${libdir}/libxcb-composite.so.*"
+FILES_libxcb-damage = "${libdir}/libxcb-damage.so.*"
+FILES_libxcb-dpms = "${libdir}/libxcb-dpms.so.*"
+FILES_libxcb-glx = "${libdir}/libxcb-glx.so.*"
+FILES_libxcb-randr = "${libdir}/libxcb-randr.so.*"
+FILES_libxcb-record = "${libdir}/libxcb-record.so.*"
+FILES_libxcb-render = "${libdir}/libxcb-render.so.*"
+FILES_libxcb-res = "${libdir}/libxcb-res.so.*"
+FILES_libxcb-screensaver = "${libdir}/libxcb-screensaver.so.*"
+FILES_libxcb-shape = "${libdir}/libxcb-shape.so.*"
+FILES_libxcb-shm = "${libdir}/libxcb-shm.so.*"
+FILES_libxcb-sync = "${libdir}/libxcb-sync.so.*"
+FILES_libxcb-xevie = "${libdir}/libxcb-xevie.so.*"
+FILES_libxcb-xf86dri = "${libdir}/libxcb-xf86dri.so.*"
+FILES_libxcb-xfixes = "${libdir}/libxcb-xfixes.so.*"
+FILES_libxcb-xinerama = "${libdir}/libxcb-xinerama.so.*"
+FILES_libxcb-xlib = "${libdir}/libxcb-xlib.so.*"
+FILES_libxcb-xprint = "${libdir}/libxcb-xprint.so.*"
+FILES_libxcb-xtest = "${libdir}/libxcb-xtest.so.*"
+FILES_libxcb-xv = "${libdir}/libxcb-xv.so.*"
+FILES_libxcb-xvmc = "${libdir}/libxcb-xvmc.so.*"
+
+inherit autotools pkgconfig
+
+# XCBPROTO_XCBINCLUDEDIR is setup based on `pkg-config --variable=xcbincludedir xcb-proto`
+# but the xcbincludedir variable doesn't point into the staging area, so it needs some
+# tweeking here:
+do_configure_prepend () {
+ sed -i "s|XCBPROTO_XCBINCLUDEDIR=|XCBPROTO_XCBINCLUDEDIR=${STAGING_DIR_HOST}/|" \
+ ${S}/configure.ac
+}
diff --git a/meta/recipes-graphics/xcb/libxcb/xcbincludedir.patch b/meta/recipes-graphics/xcb/libxcb/xcbincludedir.patch
new file mode 100644
index 000000000..cef635096
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libxcb/xcbincludedir.patch
@@ -0,0 +1,11 @@
+--- libxcb-1.0.orig/configure.ac 2006-11-23 15:33:01.000000000 +0000
++++ libxcb-1.0/configure.ac 2008-09-10 20:29:12.000000000 +0100
+@@ -50,7 +50,7 @@
+
+ # Find the xcb-proto protocol descriptions
+ AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR)
+-XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
++XCBPROTO_XCBINCLUDEDIR=$PKG_CONFIG_SYSROOT_DIR/`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
+ AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
+ AC_SUBST(XCBPROTO_XCBINCLUDEDIR)
+
diff --git a/meta/recipes-graphics/xcb/libxcb_1.1.91.bb b/meta/recipes-graphics/xcb/libxcb_1.1.91.bb
new file mode 100644
index 000000000..ae0cc5761
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libxcb_1.1.91.bb
@@ -0,0 +1,6 @@
+include libxcb.inc
+PR = "r1"
+
+DEPENDS += "libpthread-stubs xcb-proto-native"
+
+PACKAGES =+ "libxcb-xinerama"
diff --git a/meta/recipes-graphics/xcb/libxcb_1.6.bb b/meta/recipes-graphics/xcb/libxcb_1.6.bb
new file mode 100644
index 000000000..fc80927be
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libxcb_1.6.bb
@@ -0,0 +1,10 @@
+include libxcb.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7"
+
+PR = "r0"
+
+DEPENDS += "libpthread-stubs xcb-proto-native"
+
+PACKAGES =+ "libxcb-xinerama"
diff --git a/meta/recipes-graphics/xcb/libxcb_git.bb b/meta/recipes-graphics/xcb/libxcb_git.bb
new file mode 100644
index 000000000..b9ac07341
--- /dev/null
+++ b/meta/recipes-graphics/xcb/libxcb_git.bb
@@ -0,0 +1,11 @@
+DEFAULT_PREFERENCE = "-1"
+
+include libxcb.inc
+PV = "1.1.90.1+gitr${SRCREV}"
+
+DEPENDS += "libpthread-stubs xcb-proto-native"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xcb/libxcb;protocol=git"
+S = "${WORKDIR}/git"
+
+PACKAGES =+ "libxcb-xinerama"
diff --git a/meta/recipes-graphics/xcb/xcb-proto.inc b/meta/recipes-graphics/xcb/xcb-proto.inc
new file mode 100644
index 000000000..2e1810f6f
--- /dev/null
+++ b/meta/recipes-graphics/xcb/xcb-proto.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "XCB: an X protocol C binding"
+HOMEPAGE = "http://xcb.freedesktop.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-X"
+
+SRC_URI = "http://xcb.freedesktop.org/dist/xcb-proto-${PV}.tar.bz2"
+
+inherit autotools pkgconfig
+
+FILES_${PN}-dev += "${datadir}/xcb/*.xml"
+
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
+
+DEPENDS_append_virtclass-native = " python-native"
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xcb/xcb-proto_1.6.bb b/meta/recipes-graphics/xcb/xcb-proto_1.6.bb
new file mode 100644
index 000000000..a367b7cac
--- /dev/null
+++ b/meta/recipes-graphics/xcb/xcb-proto_1.6.bb
@@ -0,0 +1,7 @@
+include xcb-proto.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7 \
+ file://src/dri2.xml;beginline=2;endline=28;md5=f8763b13ff432e8597e0d610cf598e65"
+
+PR = "r0"
diff --git a/meta/recipes-graphics/xcb/xcb-proto_git.bb b/meta/recipes-graphics/xcb/xcb-proto_git.bb
new file mode 100644
index 000000000..b96fc121c
--- /dev/null
+++ b/meta/recipes-graphics/xcb/xcb-proto_git.bb
@@ -0,0 +1,8 @@
+DEFAULT_PREFERENCE = "-1"
+
+include xcb-proto.inc
+PV = "1.2+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xcb/proto;protocol=git"
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/xcb/xcb-util.inc b/meta/recipes-graphics/xcb/xcb-util.inc
new file mode 100644
index 000000000..6bda3d0bf
--- /dev/null
+++ b/meta/recipes-graphics/xcb/xcb-util.inc
@@ -0,0 +1,30 @@
+DESCRIPTION = "XCB: an X protocol C binding"
+HOMEPAGE = "http://xcb.freedesktop.org/XcbUtil/"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
+
+LICENSE = "MIT"
+
+SECTION = "x11/libs"
+
+DEPENDS = "libxcb"
+DEPENDS += "gperf-native"
+
+PARALLEL_MAKE = ""
+
+SRC_URI = "http://xcb.freedesktop.org/dist/xcb-util-${PV}.tar.bz2"
+
+PACKAGES =+ "libxcbatom libxcbaux libxcbevent libxcbicccm \
+ libxcbimage libxcbkeysyms libxcbproperty \
+ libxcbreply libxcbwm"
+
+FILES_libxcbatom = "${libdir}/libXCBAtom.so.*"
+FILES_libxcbaux = "${libdir}/libXCBAux.so.*"
+FILES_libxcbevent = "${libdir}/libXCBEvent.so.*"
+FILES_libxcbicccm = "${libdir}/libXCBICCCM.so.*"
+FILES_libxcbimage = "${libdir}/libXCBImage.so.*"
+FILES_libxcbkeysyms = "${libdir}/libXCBKeysyms.so.*"
+FILES_libxcbproperty = "${libdir}/libXCBProperty.so.*"
+FILES_libxcbreply = "${libdir}/libXCBReply.so.*"
+FILES_libxcbwm = "${libdir}/libXCBWM.so.*"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-graphics/xcb/xcb-util_0.3.6.bb b/meta/recipes-graphics/xcb/xcb-util_0.3.6.bb
new file mode 100644
index 000000000..b0e50d85c
--- /dev/null
+++ b/meta/recipes-graphics/xcb/xcb-util_0.3.6.bb
@@ -0,0 +1,15 @@
+require xcb-util.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://xcb-util-common.h;endline=30;md5=6c74595925fd773cc8cf387ff7bc53c7 \
+ file://reply/reply.c;endline=27;md5=f9a1d6b55bba632d349949cbf33cd635 \
+ file://aux/xcb_aux.c;endline=30;md5=ae305b9c2a38f9ba27060191046a6460 \
+ file://renderutil/xcb_renderutil.h;endline=24;md5=d0ddab3052dd4949c93cfcb0891c96df \
+ file://event/xcb_event.h;endline=27;md5=627be355aee59e1b8ade80d5bd90fad9 \
+ file://property/xcb_property.h;endline=27;md5=f5890866ee0c655c36ef1c6c738fee6b \
+ file://keysyms/keysyms.c;endline=30;md5=2f8de023ed823bb92f0b47900574ea9e \
+ file://image/xcb_pixel.h;beginline=4;endline=27;md5=48cd25ae55e7de525fe1e1a3a7672e1c"
+
+
+PR = "r0"
+
diff --git a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/fix_watch_cursor.patch b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/fix_watch_cursor.patch
new file mode 100644
index 000000000..73a5b2a87
--- /dev/null
+++ b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/fix_watch_cursor.patch
@@ -0,0 +1,24 @@
+diff -NurP xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.am xcursor-transparent-theme-0.1.1/cursors/Makefile.am
+--- xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.am 2003-10-30 13:13:59.000000000 +0100
++++ xcursor-transparent-theme-0.1.1/cursors/Makefile.am 2005-12-20 23:35:17.000000000 +0100
+@@ -79,7 +79,7 @@
+ ul_angle \
+ ur_angle \
+ v_double_arrow \
+- watcha \
++ watch \
+ xterm
+
+ CURSOR_DIR = $(datadir)/icons/xcursor-transparent/cursors
+diff -NurP xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.in xcursor-transparent-theme-0.1.1/cursors/Makefile.in
+--- xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.in 2003-10-31 15:31:13.000000000 +0100
++++ xcursor-transparent-theme-0.1.1/cursors/Makefile.in 2005-12-20 23:35:36.000000000 +0100
+@@ -67,7 +67,7 @@
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+
+-CURSOR_NAMES = 00008160000006810000408080010102 028006030e0e7ebffc7f7070c0600140 03b6e0fcb3499374a867c041f52298f0 08e8e1c95fe2fc01f976f1e063a24ccd 14fef782d02440884392942c11205230 2870a09082c103050810ffdffffe0204 3ecb610c1bf2410f44200f48c40d3599 4498f0e0c1937ffe01fd06f973665830 9d800788f1b08800ae810202380a0822 c7088f0f3e6c8088236ef8e1e3e70000 d9ce0ab605698f320427677b458ad60b e29285e634086352946a0e7090d73106 fcf1c3c7cd4491d801f1e1c78f100000 X_cursor arrow base_arrow_down base_arrow_up based_arrow_down based_arrow_up bd_double_arrow boat bottom_left_corner bottom_right_corner bottom_side bottom_tee center_ptr circle cross cross_reverse crossed_circle crosshair dot dot_box_mask dotbox double_arrow draft_large draft_small draped_box exchange fd_double_arrow fleur gumby h_double_arrow hand hand1 hand2 left_ptr left_ptr_watch left_side left_tee ll_angle lr_angle move pencil pirate plus question_arrow right_ptr right_side right_tee sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle sizing target tcross top_left_arrow top_left_corner top_right_corner top_side top_tee trek ul_angle ur_angle v_double_arrow watcha xterm
++CURSOR_NAMES = 00008160000006810000408080010102 028006030e0e7ebffc7f7070c0600140 03b6e0fcb3499374a867c041f52298f0 08e8e1c95fe2fc01f976f1e063a24ccd 14fef782d02440884392942c11205230 2870a09082c103050810ffdffffe0204 3ecb610c1bf2410f44200f48c40d3599 4498f0e0c1937ffe01fd06f973665830 9d800788f1b08800ae810202380a0822 c7088f0f3e6c8088236ef8e1e3e70000 d9ce0ab605698f320427677b458ad60b e29285e634086352946a0e7090d73106 fcf1c3c7cd4491d801f1e1c78f100000 X_cursor arrow base_arrow_down base_arrow_up based_arrow_down based_arrow_up bd_double_arrow boat bottom_left_corner bottom_right_corner bottom_side bottom_tee center_ptr circle cross cross_reverse crossed_circle crosshair dot dot_box_mask dotbox double_arrow draft_large draft_small draped_box exchange fd_double_arrow fleur gumby h_double_arrow hand hand1 hand2 left_ptr left_ptr_watch left_side left_tee ll_angle lr_angle move pencil pirate plus question_arrow right_ptr right_side right_tee sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle sizing target tcross top_left_arrow top_left_corner top_right_corner top_side top_tee trek ul_angle ur_angle v_double_arrow watch xterm
+
+
+ CURSOR_DIR = $(datadir)/icons/xcursor-transparent/cursors
diff --git a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/use-relative-symlinks.patch b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/use-relative-symlinks.patch
new file mode 100644
index 000000000..df28dfbc8
--- /dev/null
+++ b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme-0.1.1/use-relative-symlinks.patch
@@ -0,0 +1,11 @@
+diff -ur xcursor-transparent-theme-0.1.1~/cursors/Makefile.am xcursor-transparent-theme-0.1.1/cursors/Makefile.am
+--- xcursor-transparent-theme-0.1.1~/cursors/Makefile.am 2003-10-30 12:13:59.000000000 +0000
++++ xcursor-transparent-theme-0.1.1/cursors/Makefile.am 2004-07-27 12:56:24.000000000 +0100
+@@ -91,6 +91,6 @@
+ $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/
+ for CURSOR in $(CURSOR_NAMES); do \
+ echo '-- Installing cursor '$$CURSOR; \
+- ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
++ ln -s transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
+ done
+
diff --git a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb
new file mode 100644
index 000000000..67ca086be
--- /dev/null
+++ b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Transparent xcursor theme for handheld systems"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.openedhand.com/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SECTION = "x11/base"
+PR="r3"
+
+SRC_URI = "http://matchbox-project.org/sources/utils/xcursor-transparent-theme-${PV}.tar.gz \
+ file://use-relative-symlinks.patch;patch=1 \
+ file://fix_watch_cursor.patch;patch=1"
+FILES_${PN} = "${datadir}/icons/xcursor-transparent/cursors/*"
+
+inherit autotools
+
+PACKAGE_ARCH = "all"
diff --git a/meta/recipes-graphics/xorg-app/mkfontdir_1.0.5.bb b/meta/recipes-graphics/xorg-app/mkfontdir_1.0.5.bb
new file mode 100644
index 000000000..ebd577572
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/mkfontdir_1.0.5.bb
@@ -0,0 +1,11 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "a program to create an index of X font files in a directory"
+
+PE = "1"
+
+RDEPENDS += "mkfontscale"
+
+BBCLASSEXTEND = "native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b4fcf2b90cadbfc15009b9e124dc3a3f"
diff --git a/meta/recipes-graphics/xorg-app/mkfontscale_1.0.7.bb b/meta/recipes-graphics/xorg-app/mkfontscale_1.0.7.bb
new file mode 100644
index 000000000..46a73111b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/mkfontscale_1.0.7.bb
@@ -0,0 +1,9 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "a program to create an index of scalable font files for X"
+
+DEPENDS += " zlib libfontenc freetype virtual/libx11"
+
+BBCLASSEXTEND = "native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ecbbbc1259a329e96ccc4dd86ad2ca2"
diff --git a/meta/recipes-graphics/xorg-app/x11perf_1.5.bb b/meta/recipes-graphics/xorg-app/x11perf_1.5.bb
new file mode 100644
index 000000000..35680e792
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/x11perf_1.5.bb
@@ -0,0 +1,6 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X11 server performance test program"
+DEPENDS += "libxmu libxrender libxft libxext fontconfig"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xauth_1.0.4.bb b/meta/recipes-graphics/xorg-app/xauth_1.0.4.bb
new file mode 100644
index 000000000..d5f35768a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xauth_1.0.4.bb
@@ -0,0 +1,10 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X application to edit and display the authorization \
+information used in connecting to the X server"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
+
+DEPENDS += "libxau libxext libxmu"
+PR = "r0"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xbacklight_1.1.bb b/meta/recipes-graphics/xorg-app/xbacklight_1.1.bb
new file mode 100644
index 000000000..78804d734
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xbacklight_1.1.bb
@@ -0,0 +1,4 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X Backlight Utility"
+DEPENDS += "libxrender libxrandr"
diff --git a/meta/recipes-graphics/xorg-app/xdpyinfo/disable-xkb.patch b/meta/recipes-graphics/xorg-app/xdpyinfo/disable-xkb.patch
new file mode 100644
index 000000000..24af21f4f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xdpyinfo/disable-xkb.patch
@@ -0,0 +1,18 @@
+--- xdpyinfo-1.0.1/configure.ac.orig 2006-03-08 16:33:05.000000000 +0100
++++ xdpyinfo-1.0.1/configure.ac 2006-03-08 16:41:59.000000000 +0100
+@@ -45,11 +45,15 @@
+ AC_CHECK_HEADERS([X11/extensions/multibuf.h X11/extensions/XShm.h],,,[#include <X11/Xlib.h>])
+ CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"])
+
++AC_ARG_ENABLE(xkb, AC_HELP_STRING([--disable-xkb], [Disable XKB support]),
++ XKB="$enableval", XKB="yes")
++if test "x$XKB" = "xyes" ; then
+ PKG_CHECK_MODULES(DPY_XKB, x11,
+ [SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $DPY_XKB_CFLAGS $DPY_X11_CFLAGS"
+ AC_CHECK_HEADERS([X11/extensions/XKB.h X11/XKBlib.h],,,[#include <X11/Xlib.h>])
+ CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"])
++fi
+
+ PKG_CHECK_MODULES(DPY_XF86VIDMODE, xxf86vm,
+ [SAVE_CPPFLAGS="$CPPFLAGS"
diff --git a/meta/recipes-graphics/xorg-app/xdpyinfo_1.1.0.bb b/meta/recipes-graphics/xorg-app/xdpyinfo_1.1.0.bb
new file mode 100644
index 000000000..f5d47e139
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xdpyinfo_1.1.0.bb
@@ -0,0 +1,11 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X display information utility"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+DEPENDS += "libxtst libxext libxxf86vm libxxf86dga libxxf86misc libxi libxrender libxinerama libdmx libxp libxau"
+PR = "r0"
+PE = "1"
+
+SRC_URI += "file://disable-xkb.patch"
+
+EXTRA_OECONF = "--disable-xkb"
diff --git a/meta/recipes-graphics/xorg-app/xev/diet-x11.patch b/meta/recipes-graphics/xorg-app/xev/diet-x11.patch
new file mode 100644
index 000000000..9f515e8c7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xev/diet-x11.patch
@@ -0,0 +1,80 @@
+---
+ xev.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+Index: xev-1.0.2/xev.c
+===================================================================
+--- xev-1.0.2.orig/xev.c 2006-06-02 00:25:44.000000000 +0100
++++ xev-1.0.2/xev.c 2007-05-10 15:22:07.000000000 +0100
+@@ -109,7 +109,7 @@ do_KeyPress (XEvent *eventp)
+ nbytes = XLookupString (e, str, 256, &ks, NULL);
+
+ /* not supposed to call XmbLookupString on a key release event */
+- if (e->type == KeyPress && xic) {
++ /*if (e->type == KeyPress && xic) {
+ do {
+ nmbbytes = XmbLookupString (xic, e, buf, bsize - 1, &ks, &status);
+ buf[nmbbytes] = '\0';
+@@ -119,7 +119,7 @@ do_KeyPress (XEvent *eventp)
+ buf = realloc (buf, bsize);
+ }
+ } while (status == XBufferOverflow);
+- }
++ }*/
+
+ if (ks == NoSymbol)
+ ksname = "NoSymbol";
+@@ -149,7 +149,7 @@ do_KeyPress (XEvent *eventp)
+ }
+
+ /* not supposed to call XmbLookupString on a key release event */
+- if (e->type == KeyPress && xic) {
++ /*if (e->type == KeyPress && xic) {
+ printf (" XmbLookupString gives %d bytes: ", nmbbytes);
+ if (nmbbytes > 0) {
+ dump (buf, nmbbytes);
+@@ -157,7 +157,7 @@ do_KeyPress (XEvent *eventp)
+ } else {
+ printf ("\n");
+ }
+- }
++ } */
+
+ printf (" XFilterEvent returns: %s\n",
+ XFilterEvent (eventp, e->window) ? "True" : "False");
+@@ -804,7 +804,7 @@ main (int argc, char **argv)
+ fprintf (stderr, "%s: XSetLocaleModifiers failed\n", ProgramName);
+ }
+
+- xim = XOpenIM (dpy, NULL, NULL, NULL);
++ /*xim = XOpenIM (dpy, NULL, NULL, NULL);
+ if (xim == NULL) {
+ fprintf (stderr, "%s: XOpenIM failed\n", ProgramName);
+ }
+@@ -831,7 +831,7 @@ main (int argc, char **argv)
+ }
+ XFree (xim_styles);
+ }
+- }
++ }*/
+
+ screen = DefaultScreen (dpy);
+
+@@ -891,7 +891,7 @@ main (int argc, char **argv)
+ printf ("Outer window is 0x%lx, inner window is 0x%lx\n", w, subw);
+ }
+
+- if (xim && xim_style) {
++ /*if (xim && xim_style) {
+ xic = XCreateIC (xim,
+ XNInputStyle, xim_style,
+ XNClientWindow, w,
+@@ -901,7 +901,7 @@ main (int argc, char **argv)
+ if (xic == NULL) {
+ fprintf (stderr, "XCreateIC failed\n");
+ }
+- }
++ }*/
+
+ for (done = 0; !done; ) {
+ XEvent event;
diff --git a/meta/recipes-graphics/xorg-app/xev_1.0.3.bb b/meta/recipes-graphics/xorg-app/xev_1.0.3.bb
new file mode 100644
index 000000000..b7a4070a8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xev_1.0.3.bb
@@ -0,0 +1,7 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X Event Viewer"
+LICENSE = "MIT"
+PE = "1"
+
+SRC_URI += "file://diet-x11.patch;patch=1"
diff --git a/meta/recipes-graphics/xorg-app/xeyes_1.0.1.bb b/meta/recipes-graphics/xorg-app/xeyes_1.0.1.bb
new file mode 100644
index 000000000..07ce0724f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xeyes_1.0.1.bb
@@ -0,0 +1,4 @@
+require xorg-app-common.inc
+PE = "1"
+
+DEPENDS += " virtual/libx11 libxau libxt libxext libxmu"
diff --git a/meta/recipes-graphics/xorg-app/xhost_1.0.3.bb b/meta/recipes-graphics/xorg-app/xhost_1.0.3.bb
new file mode 100644
index 000000000..2c643d81a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xhost_1.0.3.bb
@@ -0,0 +1,7 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "Server access control program for X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cbe6a2ee97dc38c7265adfec5644689b"
+DEPENDS += "libxmu libxau"
+PR = "r0"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xinit_1.2.1.bb b/meta/recipes-graphics/xorg-app/xinit_1.2.1.bb
new file mode 100644
index 000000000..7a083a788
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xinit_1.2.1.bb
@@ -0,0 +1,8 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X Window System initializer"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0d4b5eef75f1584ccbdc5e4a34314407"
+PR = "r0"
+PE = "1"
+
+FILES_${PN} += "${libdir}X11/xinit"
diff --git a/meta/recipes-graphics/xorg-app/xkbcomp_1.1.1.bb b/meta/recipes-graphics/xorg-app/xkbcomp_1.1.1.bb
new file mode 100644
index 000000000..bc2b788ba
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xkbcomp_1.1.1.bb
@@ -0,0 +1,9 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "The X Keyboard Extension essentially replaces the core protocol definition of keyboard."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=08436e4f4476964e2e2dd7e7e41e076a"
+
+DEPENDS += "libxkbfile"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-app/xmodmap_1.0.4.bb b/meta/recipes-graphics/xorg-app/xmodmap_1.0.4.bb
new file mode 100644
index 000000000..d7d31e267
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xmodmap_1.0.4.bb
@@ -0,0 +1,7 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "utility for modifying keymaps and pointer button mappings in X"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4eafccf13653fd18ec3263631e5feb68"
+PR = "r0"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xorg-app-common.inc b/meta/recipes-graphics/xorg-app/xorg-app-common.inc
new file mode 100644
index 000000000..4add357cc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xorg-app-common.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "X application"
+HOMEPAGE = "http://www.x.org/"
+BUGTRACKER = "https://bugs.freedesktop.org"
+SECTION = "x11/apps"
+LICENSE = "MIT-X"
+DEPENDS = "util-macros virtual/libx11"
+
+XORG_PN = "${BPN}"
+
+SRC_URI = "${XORG_MIRROR}/individual/app/${XORG_PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " /usr/lib/X11/${XORG_PN}"
diff --git a/meta/recipes-graphics/xorg-app/xprop_1.1.0.bb b/meta/recipes-graphics/xorg-app/xprop_1.1.0.bb
new file mode 100644
index 000000000..e9b0b2ee7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xprop_1.1.0.bb
@@ -0,0 +1,10 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "utility to display window and font properties of an X server"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+DEPENDS += " libxmu virtual/libx11"
+
+PR = "r0"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xrandr/resolve_symbol_clash.patch b/meta/recipes-graphics/xorg-app/xrandr/resolve_symbol_clash.patch
new file mode 100644
index 000000000..1ecf9563f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xrandr/resolve_symbol_clash.patch
@@ -0,0 +1,33 @@
+---
+ xrandr.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- xrandr-1.2.2.orig/xrandr.c
++++ xrandr-1.2.2/xrandr.c
+@@ -189,7 +189,7 @@
+
+ #if HAS_RANDR_1_2
+ typedef enum _policy {
+- clone, extend
++ policy_clone, extend
+ } policy_t;
+
+ typedef enum _relation {
+@@ -1602,7 +1602,7 @@
+ int ret = 0;
+ #if HAS_RANDR_1_2
+ output_t *output = NULL;
+- policy_t policy = clone;
++ policy_t policy = policy_clone;
+ Bool setit_1_2 = False;
+ Bool query_1_2 = False;
+ Bool modeit = False;
+@@ -1863,7 +1863,7 @@
+ continue;
+ }
+ if (!strcmp ("--clone", argv[i])) {
+- policy = clone;
++ policy = policy_clone;
+ setit_1_2 = True;
+ continue;
+ }
diff --git a/meta/recipes-graphics/xorg-app/xrandr_1.3.2.bb b/meta/recipes-graphics/xorg-app/xrandr_1.3.2.bb
new file mode 100644
index 000000000..3ddccb249
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xrandr_1.3.2.bb
@@ -0,0 +1,10 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X Resize and Rotate extension command."
+LICENSE= "BSD-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3"
+DEPENDS += "libxrandr libxrender"
+PE = "1"
+PR = "r0"
+
+SRC_URI += "file://resolve_symbol_clash.patch"
diff --git a/meta/recipes-graphics/xorg-app/xrdb/60XDefaults.sh b/meta/recipes-graphics/xorg-app/xrdb/60XDefaults.sh
new file mode 100644
index 000000000..08d8beca3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xrdb/60XDefaults.sh
@@ -0,0 +1,3 @@
+if [ -e $HOME/.Xdefaults ]; then
+ xrdb -merge -nocpp < $HOME/.Xdefaults
+fi
diff --git a/meta/recipes-graphics/xorg-app/xrdb_1.0.5.bb b/meta/recipes-graphics/xorg-app/xrdb_1.0.5.bb
new file mode 100644
index 000000000..906d7d852
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xrdb_1.0.5.bb
@@ -0,0 +1,14 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X server resource database utility"
+LICENSE = "xrdb"
+DEPENDS += "libxmu"
+PE = "1"
+PR = "r2"
+
+SRC_URI += "file://60XDefaults.sh"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/X11/Xsession.d/
+ install -m 0755 ${WORKDIR}/60XDefaults.sh ${D}${sysconfdir}/X11/Xsession.d/
+}
diff --git a/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch b/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch
new file mode 100644
index 000000000..6060fbb99
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch
@@ -0,0 +1,18 @@
+--- xset-1.0.1/configure.ac.orig 2006-03-08 19:46:59.000000000 +0100
++++ xset-1.0.1/configure.ac 2006-03-08 19:47:40.000000000 +0100
+@@ -42,11 +42,15 @@
+ AC_CHECK_HEADERS([X11/extensions/dpms.h X11/extensions/MITMisc.h],,,[#include <X11/Xlib.h>])
+ CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"])
+
++AC_ARG_ENABLE(xkb, AC_HELP_STRING([--disable-xkb], [Disable XKB support]),
++ XKB="$enableval", XKB="yes")
++if test "x$XKB" = "xyes" ; then
+ PKG_CHECK_MODULES(SET_XKB, x11,
+ [SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $SET_XKB_CFLAGS $SET_X11_CFLAGS"
+ AC_CHECK_HEADERS([X11/XKBlib.h],,,[#include <X11/Xlib.h>])
+ CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"])
++fi
+
+ PKG_CHECK_MODULES(SET_XF86MISC, xxf86misc,
+ [SAVE_CPPFLAGS="$CPPFLAGS"
diff --git a/meta/recipes-graphics/xorg-app/xset_1.1.0.bb b/meta/recipes-graphics/xorg-app/xset_1.1.0.bb
new file mode 100644
index 000000000..817b09721
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xset_1.1.0.bb
@@ -0,0 +1,14 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "Utility of setting various user preference options of the display"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bea81cc9827cdf1af0e12c2b8228cf8d"
+DISTRO_PN_ALIAS = "Fedora=xorg-x11-server-utils;Ubuntu=x11-xserver-utils;Debian=x11-xserver-utils;Opensuse=xorg-x11"
+DEPENDS += "libxext libxxf86misc libxfontcache libxmu libxp libxau"
+PR = "r0"
+PE = "1"
+
+SRC_URI += "file://disable-xkb.patch"
+
+CFLAGS += "-D_GNU_SOURCE"
+EXTRA_OECONF = "--disable-xkb"
diff --git a/meta/recipes-graphics/xorg-app/xvinfo_1.0.2.bb b/meta/recipes-graphics/xorg-app/xvinfo_1.0.2.bb
new file mode 100644
index 000000000..ac27f13f3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xvinfo_1.0.2.bb
@@ -0,0 +1,5 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "Print out X-Video extension adaptor information"
+DEPENDS += " libxv"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-app/xwininfo_1.0.5.bb b/meta/recipes-graphics/xorg-app/xwininfo_1.0.5.bb
new file mode 100644
index 000000000..bd3e3e758
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xwininfo_1.0.5.bb
@@ -0,0 +1,8 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "window information utility for X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2f077ba838116bbe7cfaac34aff40328"
+DEPENDS += "libxext libxmu"
+
+PR = "r0"
+PE = "0"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-driver-common.inc b/meta/recipes-graphics/xorg-driver/xf86-driver-common.inc
new file mode 100644
index 000000000..550423b0f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-driver-common.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "X driver"
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org"
+SECTION = "x11/drivers"
+LICENSE = "MIT-X"
+
+PE = "1"
+PR = "r0"
+
+DEPENDS = "virtual/xserver-xf86 xproto randrproto util-macros"
+
+XORG_PN = "${PN}"
+SRC_URI = "${XORG_MIRROR}/individual/driver/${XORG_PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
+FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug"
+
+inherit autotools pkgconfig
+
+# AC_CHECK_FILE doesn't work when cross compiling, so we create a replacement
+# macro that simply assumes the test succeeds.
+do_configure_prepend () {
+ echo 'AC_DEFUN(CC_AC_CHECK_FILE, $2)' > configure.ac.new
+ sed 's/AC_CHECK_FILE/CC_AC_CHECK_FILE/g' configure.ac >> configure.ac.new
+ mv configure.ac.new configure.ac
+}
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-common.inc b/meta/recipes-graphics/xorg-driver/xf86-input-common.inc
new file mode 100644
index 000000000..6fc88cf9d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-common.inc
@@ -0,0 +1,7 @@
+include xf86-driver-common.inc
+
+DEPENDS += "inputproto kbproto "
+
+FILES_${PN} += " ${libdir}/xorg/modules/input/*.so"
+FILES_${PN}-dbg += " ${libdir}/xorg/modules/input/.debug"
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.4.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.4.0.bb
new file mode 100644
index 000000000..fad47fbc0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.4.0.bb
@@ -0,0 +1,7 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- evdev input driver"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4ad82cd33b1432eacb1798a43c092"
+
+PR = "r1"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.4.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.4.0.bb
new file mode 100644
index 000000000..1efb505e2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.4.0.bb
@@ -0,0 +1,7 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=eae2c98cbb8c60401893ff9313ff3826"
+
+PR = "r1"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
new file mode 100644
index 000000000..a6744bda6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
@@ -0,0 +1,9 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+PV = "1.3.2+git${SRCPV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard;protocol=git"
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
new file mode 100644
index 000000000..665b320df
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
@@ -0,0 +1,19 @@
+Unbreak the linux mouse driver by using config.h
+
+RP - 4/11/07
+
+Index: git/src/lnx_mouse.c
+===================================================================
+--- git.orig/src/lnx_mouse.c 2008-11-04 23:46:05.000000000 +0000
++++ git/src/lnx_mouse.c 2008-11-04 23:46:15.000000000 +0000
+@@ -3,8 +3,8 @@
+ * Copyright 1999 by The XFree86 Project, Inc.
+ */
+
+-#ifdef HAVE_XORG_CONFIG_H
+-#include <xorg-config.h>
++#ifdef HAVE_CONFIG_H
++#include <config.h>
+ #endif
+
+ #include <X11/X.h>
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.5.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.5.0.bb
new file mode 100644
index 000000000..44d60bf75
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.5.0.bb
@@ -0,0 +1,5 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- mouse input driver"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=43eb754a9f368985c40a2a5370fc364a"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
new file mode 100644
index 000000000..94dedf104
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
@@ -0,0 +1,11 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- mouse input driver"
+
+PV = "1.3.0+git${SRCPV}"
+PR = "r2"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse;protocol=git \
+ file://unbreak.patch;patch=1"
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.2.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.2.1.bb
new file mode 100644
index 000000000..81128394c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.2.1.bb
@@ -0,0 +1,5 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+DEPENDS += "libxi"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
new file mode 100644
index 000000000..f7dc3b731
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
@@ -0,0 +1,10 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+PV = "0.15.2+git${SRCPV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics;protocol=git"
+S = "${WORKDIR}/git"
+
+DEPENDS += "libxi"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.9.bb b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.9.bb
new file mode 100644
index 000000000..36418ad59
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.9.bb
@@ -0,0 +1,8 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- VMWare mouse input driver"
+PR = "r0"
+
+RDEPENDS_${PN} += "xf86-input-mouse"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1f16420e5ed7ed2133768425dfdab50"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-common.inc b/meta/recipes-graphics/xorg-driver/xf86-video-common.inc
new file mode 100644
index 000000000..f2e28170e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-common.inc
@@ -0,0 +1,4 @@
+include xf86-driver-common.inc
+
+DEPENDS =+ "renderproto videoproto xextproto fontsproto"
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.12.0.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.12.0.bb
new file mode 100644
index 000000000..968c20167
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.12.0.bb
@@ -0,0 +1,10 @@
+require xf86-video-common.inc
+
+DESCRIPTION = "X.Org X server -- Intel i8xx, i9xx display driver"
+
+EXTRA_OECONF += "--disable-xvmc"
+
+DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
+ virtual/libgl xineramaproto xf86driproto libpciaccess"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
new file mode 100644
index 000000000..7011b7ea7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -0,0 +1,16 @@
+require xf86-video-common.inc
+
+DESCRIPTION = "X.Org X server -- Intel i8xx, i9xx display driver"
+DEPENDS += "virtual/libx11 libxvmc drm dri2proto glproto \
+ virtual/libgl xineramaproto libpciaccess"
+
+PV = "2.10.0+git${SRCPV}"
+PR = "r0"
+
+EXTRA_OECONF += "--disable-xvmc --enable-dri --disable-static"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel;protocol=git"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = '(i.86|x86_4).*-linux'
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff
new file mode 100644
index 000000000..325ca66f0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff
@@ -0,0 +1,146 @@
+--- /tmp/image-format-conversions.h 2009-02-03 10:18:04.000000000 +0100
++++ git/src/image-format-conversions.h 2009-02-03 10:19:18.000000000 +0100
+@@ -30,6 +30,8 @@
+ /* Basic C implementation of YV12/I420 to UYVY conversion */
+ void uv12_to_uyvy(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest);
+
++/* NEON implementation of YV12/I420 to UYVY conversion */
++void uv12_to_uyvy_neon(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest);
+
+ #endif /* __IMAGE_FORMAT_CONVERSIONS_H__ */
+
+--- /tmp/image-format-conversions.c 2009-02-03 10:18:04.000000000 +0100
++++ git/src/image-format-conversions.c 2009-02-03 10:16:47.000000000 +0100
+@@ -2,6 +2,7 @@
+ * Copyright 2008 Kalle Vahlman, <zuh@iki.fi>
+ * Ilpo Ruotsalainen, <lonewolf@iki.fi>
+ * Tuomas Kulve, <tuomas.kulve@movial.com>
++ * Ian Rickards, <ian.rickards@arm.com>
+ *
+ *
+ * Permission to use, copy, modify, distribute and sell this software and its
+@@ -89,3 +90,104 @@
+ }
+ }
+
++void uv12_to_uyvy_neon(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest)
++{
++ int x, y;
++ uint8_t *dest_even = dest;
++ uint8_t *dest_odd = dest + w * 2;
++ uint8_t *y_p_even = y_p;
++ uint8_t *y_p_odd = y_p + y_pitch;
++
++ /*ErrorF("in uv12_to_uyvy, w: %d, pitch: %d\n", w, pitch);*/
++ if (w<16)
++ {
++ for (y=0; y<h; y+=2)
++ {
++ for (x=0; x<w; x+=2)
++ {
++ /* Output two 2x1 macroblocks to form a 2x2 block from input */
++ uint8_t u_val = *u_p++;
++ uint8_t v_val = *v_p++;
++
++ /* Even row, first pixel */
++ *dest_even++ = u_val;
++ *dest_even++ = *y_p_even++;
++
++ /* Even row, second pixel */
++ *dest_even++ = v_val;
++ *dest_even++ = *y_p_even++;
++
++ /* Odd row, first pixel */
++ *dest_odd++ = u_val;
++ *dest_odd++ = *y_p_odd++;
++
++ /* Odd row, second pixel */
++ *dest_odd++ = v_val;
++ *dest_odd++ = *y_p_odd++;
++ }
++
++ dest_even += w * 2;
++ dest_odd += w * 2;
++
++ u_p += ((uv_pitch << 1) - w) >> 1;
++ v_p += ((uv_pitch << 1) - w) >> 1;
++
++ y_p_even += (y_pitch - w) + y_pitch;
++ y_p_odd += (y_pitch - w) + y_pitch;
++ }
++ }
++ else
++ {
++ for (y=0; y<h; y+=2)
++ {
++ x=w;
++ do {
++ // avoid using d8-d15 (q4-q7) aapcs callee-save registers
++ asm volatile (
++ "1:\n\t"
++ "vld1.u8 {d0}, [%[u_p]]!\n\t"
++ "sub %[x],%[x],#16\n\t"
++ "cmp %[x],#16\n\t"
++ "vld1.u8 {d1}, [%[v_p]]!\n\t"
++ "vld1.u8 {q1}, [%[y_p_even]]!\n\t"
++ "vzip.u8 d0, d1\n\t"
++ "vld1.u8 {q2}, [%[y_p_odd]]!\n\t"
++ // use 2-element struct stores to zip up y with y&v
++ "vst2.u8 {q0,q1}, [%[dest_even]]!\n\t"
++ "vmov.u8 q1, q2\n\t"
++ "vst2.u8 {q0,q1}, [%[dest_odd]]!\n\t"
++ "bhs 1b\n\t"
++ : [u_p] "+r" (u_p), [v_p] "+r" (v_p), [y_p_even] "+r" (y_p_even), [y_p_odd] "+r" (y_p_odd),
++ [dest_even] "+r" (dest_even), [dest_odd] "+r" (dest_odd),
++ [x] "+r" (x)
++ :
++ : "cc", "memory", "d0","d1","d2","d3","d4","d5"
++ );
++ if (x!=0)
++ {
++ // overlap final 16-pixel block to process requested width exactly
++ x = 16-x;
++ u_p -= x/2;
++ v_p -= x/2;
++ y_p_even -= x;
++ y_p_odd -= x;
++ dest_even -= x*2;
++ dest_odd -= x*2;
++ x = 16;
++ // do another 16-pixel block
++ }
++ }
++ while (x!=0);
++
++ dest_even += w * 2;
++ dest_odd += w * 2;
++
++ u_p += ((uv_pitch << 1) - w) >> 1;
++ v_p += ((uv_pitch << 1) - w) >> 1;
++
++ y_p_even += (y_pitch - w) + y_pitch;
++ y_p_odd += (y_pitch - w) + y_pitch;
++ }
++ }
++}
++
+--- /tmp/omapfb-xv-generic.c 2009-02-03 10:52:18.000000000 +0100
++++ git/src/omapfb-xv-generic.c 2009-02-03 10:52:24.000000000 +0100
+@@ -240,7 +240,7 @@
+ uint8_t *yb = buf;
+ uint8_t *ub = yb + (src_y_pitch * src_h);
+ uint8_t *vb = ub + (src_uv_pitch * (src_h / 2));
+- uv12_to_uyvy(src_w & ~15,
++ uv12_to_uyvy_neon(src_w & ~15,
+ src_h & ~15,
+ src_y_pitch,
+ src_uv_pitch,
+@@ -256,7 +256,7 @@
+ uint8_t *yb = buf;
+ uint8_t *vb = yb + (src_y_pitch * src_h);
+ uint8_t *ub = vb + (src_uv_pitch * (src_h / 2));
+- uv12_to_uyvy(src_w & ~15,
++ uv12_to_uyvy_neon(src_w & ~15,
+ src_h & ~15,
+ src_y_pitch,
+ src_uv_pitch,
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
new file mode 100644
index 000000000..15bef8719
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
@@ -0,0 +1,21 @@
+require xf86-driver-common.inc
+
+DESCRIPTION = "X.Org X server -- OMAP display driver"
+DEPENDS += "virtual/libx11"
+
+PE = "1"
+PR = "r1"
+PV = "0.1.1+git${SRCPV}"
+
+SRC_URI = "git://git.pingu.fi/xf86-video-omapfb.git;protocol=http \
+ "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF_armv7a = " --enable-neon "
+CFLAGS += " -I${STAGING_INCDIR}/xorg "
+
+# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay)
+do_compile_prepend_armv7a () {
+ sed -i -e s:fb1:fb2:g ${S}/src/omapfb-xv.c
+}
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.0.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.0.bb
new file mode 100644
index 000000000..3212004db
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.0.bb
@@ -0,0 +1,9 @@
+require xf86-video-common.inc
+
+EXTRA_OECONF += "--disable-xvmc"
+
+DESCRIPTION = "X.Org X server -- Generic Vesa display driver"
+DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
+ virtual/libgl xineramaproto xf86driproto libpciaccess"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_11.0.1.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_11.0.1.bb
new file mode 100644
index 000000000..56daa86c8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_11.0.1.bb
@@ -0,0 +1,12 @@
+require xf86-video-common.inc
+
+DESCRIPTION = "X.Org X server -- VMware SVGA II display driver"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+DEPENDS += "virtual/libx11 libxvmc drm glproto \
+ virtual/libgl xineramaproto libpciaccess"
+
+PR = "r1"
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
diff --git a/meta/recipes-graphics/xorg-font/encodings_1.0.3.bb b/meta/recipes-graphics/xorg-font/encodings_1.0.3.bb
new file mode 100644
index 000000000..02a199fc6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/encodings_1.0.3.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "The XFree86/Xorg encoding files"
+require xorg-font-common.inc
+LICENSE = "Public Domain"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76"
+PE = "1"
+PR = "${INC_PR}.1"
+
+DEPENDS = "mkfontscale-native font-util-native"
+
+EXTRA_OECONF += "--with-encodingsdir=${datadir}/fonts/X11/encodings"
diff --git a/meta/recipes-graphics/xorg-font/font-alias-1.0.2/fix_COPYING_1f8141a5e3b585dfccc748400b05c9c24b41e767.patch b/meta/recipes-graphics/xorg-font/font-alias-1.0.2/fix_COPYING_1f8141a5e3b585dfccc748400b05c9c24b41e767.patch
new file mode 100644
index 000000000..db0bd27d4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/font-alias-1.0.2/fix_COPYING_1f8141a5e3b585dfccc748400b05c9c24b41e767.patch
@@ -0,0 +1,45 @@
+commit 1f8141a5e3b585dfccc748400b05c9c24b41e767
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Oct 18 20:34:33 2009 -0400
+
+ INSTALL, NEWS, README COPYING or AUTHORS files are missing/incorrect #24206
+
+ Add missing INSTALL file. Use standard GNU file on building tarball
+ README may have been updated
+ COPYING may have been updated
+ Remove AUTHORS file as it is empty and no content available yet.
+ Remove NEWS file as it is empty and no content available yet.
+
+diff --git a/AUTHORS b/AUTHORS
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/COPYING b/COPYING
+index 7f33cbf..e917f4b 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,9 @@
+-This is a stub file. This package has not yet had its complete licensing
+-information compiled. Please see the individual source files for details on
+-your rights to use and modify this software.
++Copyright (C) 1994-95 Cronyx Ltd.
++Author: Serge Vakulenko, <vak@cronyx.ru>
+
+-Please submit updated COPYING files to the Xorg bugzilla:
++This software may be used, modified, copied, distributed, and sold,
++in both source and binary form provided that the above copyright
++and these terms are retained. Under no circumstances is the author
++responsible for the proper functioning of this software, nor does
++the author assume any responsibility for damages incurred with its use.
+
+-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+-
+-All licensing questions regarding this software should be directed at the
+-Xorg mailing list:
+-
+-http://lists.freedesktop.org/mailman/listinfo/xorg
+diff --git a/INSTALL b/INSTALL
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/NEWS b/NEWS
+deleted file mode 100644
+index e69de29..0000000
diff --git a/meta/recipes-graphics/xorg-font/font-alias_1.0.2.bb b/meta/recipes-graphics/xorg-font/font-alias_1.0.2.bb
new file mode 100644
index 000000000..11ad407f3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/font-alias_1.0.2.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "X font aliases."
+
+require xorg-font-common.inc
+
+LICENSE = "Font-Alias"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bf0158b89be493d523d69d9f29265038 \
+ file://cyrillic/fonts.alias;md5=f40795b0640d6785826aecd3b16f6124 \
+ file://75dpi/fonts.alias;md5=6bc48023f2ae7f3bfc105db7b0ee6b49 \
+ file://misc/fonts.alias;md5=a8ec05d528431d4c9703b55a7efd67a8 \
+ file://100dpi/fonts.alias;md5=85bebd6ca213aa656c301a72eb4397cb"
+
+SRC_URI += "file://fix_COPYING_1f8141a5e3b585dfccc748400b05c9c24b41e767.patch"
+
+DEPENDS = "virtual/xserver font-util"
+RDEPENDS = "encodings font-util"
+
+PE = "1"
+PR = "${INC_PR}.0"
diff --git a/meta/recipes-graphics/xorg-font/font-util_1.1.1.bb b/meta/recipes-graphics/xorg-font/font-util_1.1.1.bb
new file mode 100644
index 000000000..ba4623632
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/font-util_1.1.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "X.Org font package creation/installation utilities"
+
+require xorg-font-common.inc
+
+LICENSE = "BSD & MIT-style & Unicode"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0b73d82c5f21398b013c07e8b4012376 \
+ file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \
+ file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \
+ file://map-ISO8859-1;beginline=9;endline=23;md5=1cecb984063248f29ffe5c46f5c04f34"
+
+PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
+
+DEPENDS = "encodings util-macros"
+DEPENDS_virtclass-native = "util-macros-native"
+RDEPENDS = "mkfontdir mkfontscale encodings"
+
+PR = "${INC_PR}.1"
+
+do_configure_prepend() {
+ sed -i "s#MAPFILES_PATH=\`pkg-config#MAPFILES_PATH=\`PKG_CONFIG_PATH=\"${STAGING_LIBDIR_NATIVE}/pkg-config\" pkg-config#g" fontutil.m4.in
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
new file mode 100644
index 000000000..c2175a961
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -0,0 +1,47 @@
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/fonts"
+LICENSE = "MIT-X"
+
+DEPENDS = " encodings font-alias font-util-native mkfontdir-native mkfontscale-native"
+RDEPENDS = "encodings font-util font-alias"
+
+XORG_PN = "${BPN}"
+INC_PR = "r1"
+
+SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2"
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OEMAKE += "FCCACHE=/bin/true"
+
+do_configure_prepend() {
+ if [ -f "${S}"/configure.ac ] ; then
+ sed -i "s#^MAPFILES_PATH=.*#MAPFILES_PATH=\"${STAGING_DIR_TARGET}/\$(pkg-config --variable=mapdir fontutil)\"#g" "${S}"/configure.ac
+ fi
+}
+
+do_install_append() {
+ find ${D}${libdir}/X11/fonts -type f -name fonts.dir | xargs rm -f
+ find ${D}${libdir}/X11/fonts -type f -name fonts.scale | xargs rm -f
+ find ${D}${datadir}/fonts/X11 -type f -name fonts.dir | xargs rm -f
+ find ${D}${datadir}/fonts/X11 -type f -name fonts.scale | xargs rm -f
+}
+
+PACKAGE_ARCH = "all"
+
+FILES_${PN} += " ${libdir}/X11/fonts ${datadir}"
+
+pkg_postinst_${PN} () {
+ set -x
+ for fontdir in `find $D/usr/lib/X11/fonts -type d`; do
+ mkfontdir $fontdir
+ mkfontscale $fontdir
+ done
+ for fontdir in `find $D/usr/share/fonts/X11 -type d`; do
+ mkfontdir $fontdir
+ mkfontscale $fontdir
+ done
+}
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
new file mode 100644
index 000000000..26a64cdd6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Xorg minimal fonts data"
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "n/a"
+
+SECTION = "x11/fonts"
+
+LICENSE = "Public Domain"
+LIC_FILES_CHKSUM = "file://../misc/fonts.alias;md5=bbe8d3c0e4e74af96e3ac393985c4fbb \
+ file://../misc/fonts.dir;md5=82a143d94d6a974aafe97132d2d519ab \
+ file://../misc/cursor.pcf.gz;md5=40bc81001fef4c21ca08df4305014a2a"
+
+SRC_URI = "file://misc"
+
+PE = "1"
+PR = "r0"
+
+PACKAGES = "${PN}"
+PACKAGE_ARCH = "all"
+FILES_${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/"
+
+do_install() {
+ install -d ${D}/${datadir}/fonts/X11/misc
+ install -m 0644 ${WORKDIR}/misc/* ${D}/${datadir}/fonts/X11/misc/
+ install -d ${D}/${libdir}/X11
+ ln -sf ${datadir}/fonts/X11/ ${D}/${libdir}/X11/fonts -s
+}
+
+
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-1.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-1.pcf.gz
new file mode 100644
index 000000000..8bc8570a4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-1.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-10.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-10.pcf.gz
new file mode 100644
index 000000000..8fa829015
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-10.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-11.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-11.pcf.gz
new file mode 100644
index 000000000..bb1c5e138
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-11.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-13.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-13.pcf.gz
new file mode 100644
index 000000000..842fa1b41
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-13.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-14.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-14.pcf.gz
new file mode 100644
index 000000000..cd119b66d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-14.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-15.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-15.pcf.gz
new file mode 100644
index 000000000..25fe84a0e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-15.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-16.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-16.pcf.gz
new file mode 100644
index 000000000..e362c70ce
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-16.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-2.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-2.pcf.gz
new file mode 100644
index 000000000..176a7591c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-2.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-3.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-3.pcf.gz
new file mode 100644
index 000000000..a4faf1a6c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-3.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-4.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-4.pcf.gz
new file mode 100644
index 000000000..96ddd1525
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-4.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-5.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-5.pcf.gz
new file mode 100644
index 000000000..541a2ad2c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-5.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-7.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-7.pcf.gz
new file mode 100644
index 000000000..a4986f406
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-7.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-8.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-8.pcf.gz
new file mode 100644
index 000000000..3f89abe77
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-8.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-9.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-9.pcf.gz
new file mode 100644
index 000000000..432b53622
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-ISO8859-9.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-KOI8-R.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-KOI8-R.pcf.gz
new file mode 100644
index 000000000..e7fcb898e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13-KOI8-R.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13.pcf.gz
new file mode 100644
index 000000000..2df635537
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-1.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-1.pcf.gz
new file mode 100644
index 000000000..a263c5dd3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-1.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-10.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-10.pcf.gz
new file mode 100644
index 000000000..a1a7d37e6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-10.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-13.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-13.pcf.gz
new file mode 100644
index 000000000..a148e99bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-13.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-14.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-14.pcf.gz
new file mode 100644
index 000000000..8791b8ca3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-14.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-15.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-15.pcf.gz
new file mode 100644
index 000000000..860450868
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-15.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-16.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-16.pcf.gz
new file mode 100644
index 000000000..f28b1f1c4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-16.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-2.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-2.pcf.gz
new file mode 100644
index 000000000..fd1e6cfe9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-2.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-3.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-3.pcf.gz
new file mode 100644
index 000000000..672b75942
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-3.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-4.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-4.pcf.gz
new file mode 100644
index 000000000..d90a4330d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-4.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-5.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-5.pcf.gz
new file mode 100644
index 000000000..775e7c18b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-5.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-7.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-7.pcf.gz
new file mode 100644
index 000000000..ac12fd98a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-7.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-8.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-8.pcf.gz
new file mode 100644
index 000000000..42bbd5221
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-8.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-9.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-9.pcf.gz
new file mode 100644
index 000000000..690d31f86
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B-ISO8859-9.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B.pcf.gz
new file mode 100644
index 000000000..d4c3184c7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13B.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-1.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-1.pcf.gz
new file mode 100644
index 000000000..884b5130c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-1.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-10.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-10.pcf.gz
new file mode 100644
index 000000000..cbb1a9d70
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-10.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-13.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-13.pcf.gz
new file mode 100644
index 000000000..78c8580cf
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-13.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-14.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-14.pcf.gz
new file mode 100644
index 000000000..0e90f3ee1
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-14.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-15.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-15.pcf.gz
new file mode 100644
index 000000000..bd1273e1f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-15.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-16.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-16.pcf.gz
new file mode 100644
index 000000000..5100b429a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-16.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-2.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-2.pcf.gz
new file mode 100644
index 000000000..ec5bbed29
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-2.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-3.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-3.pcf.gz
new file mode 100644
index 000000000..06c835ee6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-3.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-4.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-4.pcf.gz
new file mode 100644
index 000000000..478541c2a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-4.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-5.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-5.pcf.gz
new file mode 100644
index 000000000..1c593ce0c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-5.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-7.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-7.pcf.gz
new file mode 100644
index 000000000..335cf5fc3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-7.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-9.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-9.pcf.gz
new file mode 100644
index 000000000..099423e64
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O-ISO8859-9.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O.pcf.gz
new file mode 100644
index 000000000..4a546ddb1
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/6x13O.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/cursor.pcf.gz b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/cursor.pcf.gz
new file mode 100644
index 000000000..72eb72bbe
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/cursor.pcf.gz
Binary files differ
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.alias b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.alias
new file mode 100644
index 000000000..390003673
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.alias
@@ -0,0 +1,80 @@
+!! fonts.alias -- automatically generated file. DO NOT EDIT.
+!! To modify, see update-fonts-alias(8).
+!! /etc/X11/fonts/misc/xfonts-base.alias
+! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
+fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
+variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
+5x7 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
+5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1
+6x9 -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1
+6x10 -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1
+6x12 -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1
+6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
+6x13bold -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1
+7x13 -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
+7x13bold -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1
+7x13euro -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-15
+7x13eurobold -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-15
+7x14 -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
+7x14bold -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1
+8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
+8x13bold -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1
+8x16 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1
+9x15 -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1
+9x15bold -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1
+10x20 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
+12x24 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1
+nil2 -misc-nil-medium-r-normal--2-20-75-75-c-10-misc-fontspecific
+
+heb6x13 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8
+heb8x13 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8
+
+k14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0
+a14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1
+r14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0
+rk14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0
+r16 -sony-fixed-medium-r-normal--16-*-*-*-*-*-jisx0201.1976-0
+rk16 -sony-fixed-medium-r-normal--16-*-*-*-*-*-jisx0201.1976-0
+r24 -sony-fixed-medium-r-normal--24-*-*-*-*-*-jisx0201.1976-0
+rk24 -sony-fixed-medium-r-normal--24-*-*-*-*-*-jisx0201.1976-0
+kana14 -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0
+8x16kana -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
+8x16romankana -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
+12x24kana -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0
+12x24romankana -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0
+kanji16 -jis-fixed-medium-r-normal--16-*-*-*-*-*-jisx0208.1983-0
+kanji24 -jis-fixed-medium-r-normal--24-*-*-*-*-*-jisx0208.1983-0
+
+hanzigb16st "-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0"
+hanzigb24st "-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0"
+hanzigb16fs "-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0"
+
+olcursor "-sun-open look cursor-----12-120-75-75-p-160-sunolcursor-1"
+olglyph-10 "-sun-open look glyph-----10-100-75-75-p-101-sunolglyph-1"
+olglyph-12 "-sun-open look glyph-----12-120-75-75-p-113-sunolglyph-1"
+olglyph-14 "-sun-open look glyph-----14-140-75-75-p-128-sunolglyph-1"
+olglyph-19 "-sun-open look glyph-----19-190-75-75-p-154-sunolglyph-1"
+
+-misc-fixed-medium-r-normal--7-50-100-100-c-50-iso8859-1 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
+-misc-fixed-medium-r-normal--8-60-100-100-c-50-iso8859-1 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1
+-misc-fixed-medium-r-normal--9-80-100-100-c-60-iso8859-1 -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1
+-misc-fixed-medium-r-normal--10-70-100-100-c-60-iso8859-1 -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1
+-misc-fixed-medium-r-semicondensed--12-90-100-100-c-60-iso8859-1 -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1
+-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
+-misc-fixed-bold-r-semicondensed--13-100-100-100-c-60-iso8859-1 -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1
+-misc-fixed-medium-r-normal--13-100-100-100-c-70-iso8859-1 -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
+-misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1
+-misc-fixed-medium-r-normal--13-100-100-100-c-80-iso8859-1 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
+-misc-fixed-bold-r-normal--13-100-100-100-c-80-iso8859-1 -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1
+-misc-fixed-medium-r-normal--14-110-100-100-c-70-iso8859-1 -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
+-misc-fixed-medium-r-normal--15-120-100-100-c-90-iso8859-1 -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1
+-misc-fixed-bold-r-normal--15-120-100-100-c-90-iso8859-1 -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1
+-misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
+-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-8 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8
+-misc-fixed-medium-r-normal--13-100-100-100-c-80-iso8859-8 -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8
+-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1
+-sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0 -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
+-sony-fixed-medium-r-normal--24-230-75-75-c-120-iso8859-1 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1
+-sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0 -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0
+-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0 -jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0
+-jis-fixed-medium-r-normal--24-170-100-100-c-240-jisx0208.1983-0 -jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.dir b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.dir
new file mode 100644
index 000000000..0a2718f7b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts/misc/fonts.dir
@@ -0,0 +1,410 @@
+409
+10x20-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
+10x20-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-10
+10x20-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-11
+10x20-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-13
+10x20-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-14
+10x20-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15
+10x20-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-16
+10x20-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-2
+10x20-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-3
+10x20-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-4
+10x20-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-5
+10x20-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-7
+10x20-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-8
+10x20-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-9
+10x20-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r
+10x20.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
+12x13ja.pcf.gz -misc-fixed-medium-r-normal-ja-13-120-75-75-c-120-iso10646-1
+12x24.pcf.gz -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1
+12x24rk.pcf.gz -sony-fixed-medium-r-normal--24-170-100-100-c-120-jisx0201.1976-0
+18x18ja.pcf.gz -misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1
+18x18ko.pcf.gz -misc-fixed-medium-r-normal-ko-18-120-100-100-c-180-iso10646-1
+4x6-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-1
+4x6-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-10
+4x6-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-13
+4x6-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-14
+4x6-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-15
+4x6-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-16
+4x6-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-2
+4x6-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-3
+4x6-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-4
+4x6-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-5
+4x6-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-7
+4x6-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-8
+4x6-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-9
+4x6-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-koi8-r
+4x6.pcf.gz -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso10646-1
+5x7-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
+5x7-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-10
+5x7-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-13
+5x7-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-14
+5x7-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-15
+5x7-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-16
+5x7-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-2
+5x7-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-3
+5x7-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-4
+5x7-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-5
+5x7-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-7
+5x7-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-8
+5x7-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-9
+5x7-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-koi8-r
+5x7.pcf.gz -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso10646-1
+5x8-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1
+5x8-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-10
+5x8-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-13
+5x8-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-14
+5x8-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-15
+5x8-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-16
+5x8-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-2
+5x8-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-3
+5x8-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-4
+5x8-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-5
+5x8-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-7
+5x8-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-8
+5x8-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-9
+5x8-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r
+5x8.pcf.gz -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
+6x10-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1
+6x10-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-10
+6x10-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-13
+6x10-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-14
+6x10-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-15
+6x10-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-16
+6x10-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-2
+6x10-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-3
+6x10-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-4
+6x10-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-5
+6x10-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-7
+6x10-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-8
+6x10-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-9
+6x10-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-koi8-r
+6x10.pcf.gz -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso10646-1
+6x12-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1
+6x12-ISO8859-10.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-10
+6x12-ISO8859-13.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-13
+6x12-ISO8859-14.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-14
+6x12-ISO8859-15.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-15
+6x12-ISO8859-16.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-16
+6x12-ISO8859-2.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-2
+6x12-ISO8859-3.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-3
+6x12-ISO8859-4.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-4
+6x12-ISO8859-5.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-5
+6x12-ISO8859-7.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-7
+6x12-ISO8859-8.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-8
+6x12-ISO8859-9.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-9
+6x12-KOI8-R.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-koi8-r
+6x12.pcf.gz -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso10646-1
+6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
+6x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-10
+6x13-ISO8859-11.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-11
+6x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-13
+6x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-14
+6x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
+6x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-16
+6x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-2
+6x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-3
+6x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-4
+6x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-5
+6x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-7
+6x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-8
+6x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-9
+6x13-KOI8-R.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
+6x13.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
+6x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1
+6x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-10
+6x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-13
+6x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-14
+6x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-15
+6x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-16
+6x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-2
+6x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-3
+6x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-4
+6x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-5
+6x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-7
+6x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-8
+6x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-9
+6x13B.pcf.gz -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso10646-1
+6x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-1
+6x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-10
+6x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-13
+6x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-14
+6x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-15
+6x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-16
+6x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-2
+6x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-3
+6x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-4
+6x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-5
+6x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-7
+6x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso8859-9
+6x13O.pcf.gz -misc-fixed-medium-o-semicondensed--13-120-75-75-c-60-iso10646-1
+6x9-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1
+6x9-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-10
+6x9-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-13
+6x9-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-14
+6x9-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-15
+6x9-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-16
+6x9-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-2
+6x9-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-3
+6x9-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-4
+6x9-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-5
+6x9-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-7
+6x9-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-8
+6x9-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-9
+6x9-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-koi8-r
+6x9.pcf.gz -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso10646-1
+7x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
+7x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-10
+7x13-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-11
+7x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-13
+7x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-14
+7x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-15
+7x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-16
+7x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-2
+7x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-3
+7x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-4
+7x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-5
+7x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-7
+7x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-8
+7x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-9
+7x13-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-koi8-r
+7x13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1
+7x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-1
+7x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-10
+7x13B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-11
+7x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-13
+7x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-14
+7x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-15
+7x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-16
+7x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-2
+7x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-3
+7x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-4
+7x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-5
+7x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-7
+7x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-8
+7x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso8859-9
+7x13B.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-70-iso10646-1
+7x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-1
+7x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-10
+7x13O-ISO8859-11.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-11
+7x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-13
+7x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-14
+7x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-15
+7x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-16
+7x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-2
+7x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-3
+7x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-4
+7x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-5
+7x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-7
+7x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso8859-9
+7x13O.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-70-iso10646-1
+7x14-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
+7x14-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-10
+7x14-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-11
+7x14-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-13
+7x14-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-14
+7x14-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-15
+7x14-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-16
+7x14-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-2
+7x14-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-3
+7x14-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-4
+7x14-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-5
+7x14-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-7
+7x14-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-8
+7x14-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-9
+7x14-JISX0201.1976-0.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
+7x14-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r
+7x14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
+7x14B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1
+7x14B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-10
+7x14B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-11
+7x14B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-13
+7x14B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-14
+7x14B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-15
+7x14B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-16
+7x14B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-2
+7x14B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-3
+7x14B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-4
+7x14B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-5
+7x14B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-7
+7x14B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-8
+7x14B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-9
+7x14B.pcf.gz -misc-fixed-bold-r-normal--14-130-75-75-c-70-iso10646-1
+8x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
+8x13-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-10
+8x13-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-13
+8x13-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-14
+8x13-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-15
+8x13-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-16
+8x13-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-2
+8x13-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-3
+8x13-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-4
+8x13-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-5
+8x13-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-7
+8x13-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-8
+8x13-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-9
+8x13-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r
+8x13.pcf.gz -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
+8x13B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1
+8x13B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-10
+8x13B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-13
+8x13B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-14
+8x13B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-15
+8x13B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-16
+8x13B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-2
+8x13B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-3
+8x13B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-4
+8x13B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-5
+8x13B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-7
+8x13B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-8
+8x13B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-9
+8x13B.pcf.gz -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso10646-1
+8x13O-ISO8859-1.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-1
+8x13O-ISO8859-10.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-10
+8x13O-ISO8859-13.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-13
+8x13O-ISO8859-14.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-14
+8x13O-ISO8859-15.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-15
+8x13O-ISO8859-16.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-16
+8x13O-ISO8859-2.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-2
+8x13O-ISO8859-3.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-3
+8x13O-ISO8859-4.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-4
+8x13O-ISO8859-5.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-5
+8x13O-ISO8859-7.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-7
+8x13O-ISO8859-9.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso8859-9
+8x13O.pcf.gz -misc-fixed-medium-o-normal--13-120-75-75-c-80-iso10646-1
+8x16.pcf.gz -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1
+8x16rk.pcf.gz -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
+9x15-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1
+9x15-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-10
+9x15-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-11
+9x15-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-13
+9x15-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-14
+9x15-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-15
+9x15-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-16
+9x15-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-2
+9x15-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-3
+9x15-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-4
+9x15-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-5
+9x15-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-7
+9x15-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-8
+9x15-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-9
+9x15-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r
+9x15.pcf.gz -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
+9x15B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1
+9x15B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-10
+9x15B-ISO8859-11.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-11
+9x15B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-13
+9x15B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-14
+9x15B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-15
+9x15B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-16
+9x15B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-2
+9x15B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-3
+9x15B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-4
+9x15B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-5
+9x15B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-7
+9x15B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-8
+9x15B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-9
+9x15B.pcf.gz -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso10646-1
+9x18-ISO8859-1.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-1
+9x18-ISO8859-10.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-10
+9x18-ISO8859-11.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-11
+9x18-ISO8859-13.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-13
+9x18-ISO8859-14.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-14
+9x18-ISO8859-15.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-15
+9x18-ISO8859-16.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-16
+9x18-ISO8859-2.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-2
+9x18-ISO8859-3.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-3
+9x18-ISO8859-4.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-4
+9x18-ISO8859-5.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-5
+9x18-ISO8859-7.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-7
+9x18-ISO8859-8.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-8
+9x18-ISO8859-9.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso8859-9
+9x18-KOI8-R.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r
+9x18.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
+9x18B-ISO8859-1.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-1
+9x18B-ISO8859-10.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-10
+9x18B-ISO8859-13.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-13
+9x18B-ISO8859-14.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-14
+9x18B-ISO8859-15.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-15
+9x18B-ISO8859-16.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-16
+9x18B-ISO8859-2.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-2
+9x18B-ISO8859-3.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-3
+9x18B-ISO8859-4.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-4
+9x18B-ISO8859-5.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-5
+9x18B-ISO8859-7.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-7
+9x18B-ISO8859-8.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-8
+9x18B-ISO8859-9.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-9
+9x18B.pcf.gz -misc-fixed-bold-r-normal--18-120-100-100-c-90-iso10646-1
+arabic24.pcf.gz -arabic-newspaper-medium-r-normal--32-246-100-100-p-137-iso10646-1
+clB6x10.pcf.gz -schumacher-clean-bold-r-normal--10-100-75-75-c-60-iso646.1991-irv
+clB6x12.pcf.gz -schumacher-clean-bold-r-normal--12-120-75-75-c-60-iso646.1991-irv
+clB8x10.pcf.gz -schumacher-clean-bold-r-normal--10-100-75-75-c-80-iso646.1991-irv
+clB8x12.pcf.gz -schumacher-clean-bold-r-normal--12-120-75-75-c-80-iso646.1991-irv
+clB8x13.pcf.gz -schumacher-clean-bold-r-normal--13-130-75-75-c-80-iso646.1991-irv
+clB8x14.pcf.gz -schumacher-clean-bold-r-normal--14-140-75-75-c-80-iso646.1991-irv
+clB8x16.pcf.gz -schumacher-clean-bold-r-normal--16-160-75-75-c-80-iso646.1991-irv
+clB8x8.pcf.gz -schumacher-clean-bold-r-normal--8-80-75-75-c-80-iso646.1991-irv
+clB9x15.pcf.gz -schumacher-clean-bold-r-normal--15-150-75-75-c-90-iso646.1991-irv
+clI6x12.pcf.gz -schumacher-clean-medium-i-normal--12-120-75-75-c-60-iso646.1991-irv
+clI8x8.pcf.gz -schumacher-clean-medium-i-normal--8-80-75-75-c-80-iso646.1991-irv
+clR4x6.pcf.gz -schumacher-clean-medium-r-normal--6-60-75-75-c-40-iso646.1991-irv
+clR5x10.pcf.gz -schumacher-clean-medium-r-normal--10-100-75-75-c-50-iso646.1991-irv
+clR5x6.pcf.gz -schumacher-clean-medium-r-normal--6-60-75-75-c-50-iso646.1991-irv
+clR5x8.pcf.gz -schumacher-clean-medium-r-normal--8-80-75-75-c-50-iso646.1991-irv
+clR6x10.pcf.gz -schumacher-clean-medium-r-normal--10-100-75-75-c-60-iso646.1991-irv
+clR6x12-ISO8859-1.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1
+clR6x12-ISO8859-10.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-10
+clR6x12-ISO8859-13.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-13
+clR6x12-ISO8859-14.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-14
+clR6x12-ISO8859-15.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-15
+clR6x12-ISO8859-16.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-16
+clR6x12-ISO8859-2.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-2
+clR6x12-ISO8859-3.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-3
+clR6x12-ISO8859-4.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-4
+clR6x12-ISO8859-5.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-5
+clR6x12-ISO8859-7.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-7
+clR6x12-ISO8859-8.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-8
+clR6x12-ISO8859-9.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-9
+clR6x12-KOI8-R.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-koi8-r
+clR6x12.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso10646-1
+clR6x13.pcf.gz -schumacher-clean-medium-r-normal--13-130-75-75-c-60-iso646.1991-irv
+clR6x6.pcf.gz -schumacher-clean-medium-r-normal--6-60-75-75-c-60-iso646.1991-irv
+clR6x8.pcf.gz -schumacher-clean-medium-r-normal--8-80-75-75-c-60-iso646.1991-irv
+clR7x10.pcf.gz -schumacher-clean-medium-r-normal--10-100-75-75-c-70-iso646.1991-irv
+clR7x12.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-70-iso646.1991-irv
+clR7x14.pcf.gz -schumacher-clean-medium-r-normal--14-140-75-75-c-70-iso646.1991-irv
+clR7x8.pcf.gz -schumacher-clean-medium-r-normal--8-80-75-75-c-70-iso646.1991-irv
+clR8x10.pcf.gz -schumacher-clean-medium-r-normal--10-100-75-75-c-80-iso646.1991-irv
+clR8x12.pcf.gz -schumacher-clean-medium-r-normal--12-120-75-75-c-80-iso646.1991-irv
+clR8x13.pcf.gz -schumacher-clean-medium-r-normal--13-130-75-75-c-80-iso646.1991-irv
+clR8x14.pcf.gz -schumacher-clean-medium-r-normal--14-140-75-75-c-80-iso646.1991-irv
+clR8x16.pcf.gz -schumacher-clean-medium-r-normal--16-160-75-75-c-80-iso646.1991-irv
+clR8x8.pcf.gz -schumacher-clean-medium-r-normal--8-80-75-75-c-80-iso646.1991-irv
+clR9x15.pcf.gz -schumacher-clean-medium-r-normal--15-150-75-75-c-90-iso646.1991-irv
+cu-alt12.pcf.gz -mutt-clearlyu alternate glyphs-medium-r-normal--17-120-100-100-p-122-iso10646-1
+cu-arabic12.pcf.gz -mutt-clearlyu arabic extra-medium-r-normal--17-120-100-100-p-101-fontspecific-0
+cu-devnag12.pcf.gz -mutt-clearlyu devangari extra-medium-r-normal--17-120-100-100-p-105-fontspecific-0
+cu-lig12.pcf.gz -mutt-clearlyu ligature-medium-r-normal--17-120-100-100-p-141-fontspecific-0
+cu-pua12.pcf.gz -mutt-clearlyu pua-medium-r-normal--17-120-100-100-p-110-iso10646-1
+cu12.pcf.gz -mutt-clearlyu-medium-r-normal--17-120-100-100-p-123-iso10646-1
+cuarabic12.pcf.gz -mutt-clearlyu arabic-medium-r-normal--17-120-100-100-p-93-iso10646-1
+cudevnag12.pcf.gz -mutt-clearlyu devanagari-medium-r-normal--15-120-90-90-p-104-fontspecific-0
+cursor.pcf.gz cursor
+deccurs.pcf.gz decw$cursor
+decsess.pcf.gz decw$session
+gb16fs.pcf.gz -isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
+gb16st.pcf.gz -isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
+gb24st.pcf.gz -isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
+hanglg16.pcf.gz -daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0
+hanglm16.pcf.gz -daewoo-mincho-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0
+hanglm24.pcf.gz -daewoo-mincho-medium-r-normal--24-170-100-100-c-240-ksc5601.1987-0
+jiskan16.pcf.gz -jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0
+jiskan24.pcf.gz -jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0
+k14.pcf.gz -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0
+micro.pcf.gz micro
+nil2.pcf.gz -misc-nil-medium-r-normal--2-20-75-75-c-10-misc-fontspecific
+olcursor.pcf.gz -sun-open look cursor-----12-120-75-75-p-160-sunolcursor-1
+olgl10.pcf.gz -sun-open look glyph-----10-100-75-75-p-101-sunolglyph-1
+olgl12.pcf.gz -sun-open look glyph-----12-120-75-75-p-113-sunolglyph-1
+olgl14.pcf.gz -sun-open look glyph-----14-140-75-75-p-128-sunolglyph-1
+olgl19.pcf.gz -sun-open look glyph-----19-190-75-75-p-154-sunolglyph-1
diff --git a/meta/recipes-graphics/xorg-lib/libapplewm_1.0.0.bb b/meta/recipes-graphics/xorg-lib/libapplewm_1.0.0.bb
new file mode 100644
index 000000000..bc502fb50
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libapplewm_1.0.0.bb
@@ -0,0 +1,7 @@
+require xorg-lib-common.inc
+
+DEPENDS += "libxext applewmproto"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libAppleWM"
diff --git a/meta/recipes-graphics/xorg-lib/libdmx_1.1.0.bb b/meta/recipes-graphics/xorg-lib/libdmx_1.1.0.bb
new file mode 100644
index 000000000..20523b894
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libdmx_1.1.0.bb
@@ -0,0 +1,11 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Distributed Multihead extension library"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94 \
+ file://src/dmx.c;endline=33;md5=79ff7aacf716dafea0d490316f998a11"
+
+DEPENDS += "libxext dmxproto"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-lib/libfontenc_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libfontenc_1.0.5.bb
new file mode 100644
index 000000000..dc7b62d02
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libfontenc_1.0.5.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "X11 font encoding library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96254c20ab81c63e65b26f0dbcd4a1c1"
+
+DEPENDS += "zlib xproto"
+PR = "r0"
+PE = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/libfs_1.0.1.bb b/meta/recipes-graphics/xorg-lib/libfs_1.0.1.bb
new file mode 100644
index 000000000..010aa311e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libfs_1.0.1.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Font Services library"
+DEPENDS += "xproto fontsproto xtrans"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libFS"
diff --git a/meta/recipes-graphics/xorg-lib/libice_1.0.6.bb b/meta/recipes-graphics/xorg-lib/libice_1.0.6.bb
new file mode 100644
index 000000000..ec3ad136a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libice_1.0.6.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "X11 Inter-Client Exchange library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d162b1b3c6fa812da9d804dcf8584a93"
+
+DEPENDS += "xproto xtrans"
+PROVIDES = "ice"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libICE"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch b/meta/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch
new file mode 100644
index 000000000..029d761d9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch
@@ -0,0 +1,63 @@
+During the build process the mkg3states binary needs to be run. This patch
+allows it to be built with the build systems gcc allowing this to work.
+
+RP 31/3/10
+
+Index: liblbxutil-1.1.0/configure.ac
+===================================================================
+--- liblbxutil-1.1.0.orig/configure.ac 2009-12-04 22:52:04.000000000 +0000
++++ liblbxutil-1.1.0/configure.ac 2010-03-31 15:26:33.000000000 +0100
+@@ -50,4 +50,5 @@
+
+ AC_OUTPUT([Makefile
+ src/Makefile
++ src/image/Makefile
+ lbxutil.pc])
+Index: liblbxutil-1.1.0/src/Makefile.am
+===================================================================
+--- liblbxutil-1.1.0.orig/src/Makefile.am 2009-12-04 23:03:17.000000000 +0000
++++ liblbxutil-1.1.0/src/Makefile.am 2010-03-31 15:27:25.000000000 +0100
+@@ -3,10 +3,7 @@
+ AM_CFLAGS = $(CWARNFLAGS) $(LBXUTIL_CFLAGS)
+ INCLUDES = -I$(top_srcdir)/include
+
+-noinst_PROGRAMS = mkg3states
+-
+-mkg3states_SOURCES = \
+- $(srcdir)/image/mkg3states.c
++SUBDIRS = image
+
+ liblbxutil_la_SOURCES = \
+ $(srcdir)/lbx_zlib/reqstats.h \
+@@ -38,9 +35,8 @@
+
+ $(srcdir)/image/dfaxg42d.c: g3states.h
+
+-g3states.h: mkg3states
+- -rm -f g3states.h
+- $(AM_V_GEN) ./mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
++g3states.h: image/mkg3states
++ ./image/mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
+
+ liblbxutil_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+
+Index: liblbxutil-1.1.0/src/image/Makefile.am
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ liblbxutil-1.1.0/src/image/Makefile.am 2010-03-31 15:26:33.000000000 +0100
+@@ -0,0 +1,15 @@
++# evil hack
++CFLAGS=$(CFLAGS_FOR_BUILD)
++CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
++LDFLAGS=$(LDFLAGS_FOR_BUILD)
++
++CC=$(CC_FOR_BUILD)
++LIBTOOL = @LIBTOOL@ --tag=CC
++
++noinst_PROGRAMS = mkg3states
++
++mkg3states_SOURCES = \
++ mkg3states.c
++
++mkg3states_CFLAGS=$(CFLAGS_FOR_BUILD)
++mkg3states_LDFLAGS=$(LDFLAGS_FOR_BUILD)
diff --git a/meta/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
new file mode 100644
index 000000000..cdf350924
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
@@ -0,0 +1,11 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "XFIXES Extension"
+DEPENDS += " libxext xextproto xproto zlib"
+PROVIDES = "lbxutil"
+PE = "1"
+PR = "r1"
+
+SRC_URI += "file://mkg3states.patch;patch=1"
+
+export CC_FOR_BUILD = "gcc"
diff --git a/meta/recipes-graphics/xorg-lib/liboldx_1.0.1.bb b/meta/recipes-graphics/xorg-lib/liboldx_1.0.1.bb
new file mode 100644
index 000000000..84470cbc7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/liboldx_1.0.1.bb
@@ -0,0 +1,6 @@
+require xorg-lib-common.inc
+
+DEPENDS += " virtual/libx11"
+PE = "1"
+
+XORG_PN = "liboldX"
diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess_0.11.0.bb b/meta/recipes-graphics/xorg-lib/libpciaccess_0.11.0.bb
new file mode 100644
index 000000000..b4032c0a1
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libpciaccess_0.11.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Generic PCI access library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ad1647740bccb2315e6f6368dce05c6d"
+
+PR = "r0"
+
+DEPENDS += "xproto virtual/libx11"
diff --git a/meta/recipes-graphics/xorg-lib/libsm_1.1.1.bb b/meta/recipes-graphics/xorg-lib/libsm_1.1.1.bb
new file mode 100644
index 000000000..0ec38c5aa
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libsm_1.1.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "X11 Session management library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=451a87de5b38d25ec6b96d548087934d"
+
+DEPENDS += "libice xproto xtrans e2fsprogs"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libSM"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/libwindowswm_1.0.0.bb b/meta/recipes-graphics/xorg-lib/libwindowswm_1.0.0.bb
new file mode 100644
index 000000000..a03d49505
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libwindowswm_1.0.0.bb
@@ -0,0 +1,6 @@
+require xorg-lib-common.inc
+
+DEPENDS += "libxext windowswmproto"
+PE = "1"
+
+XORG_PN = "libWindowsWM"
diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/include_fix.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/include_fix.patch
new file mode 100644
index 000000000..c8aa08595
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/include_fix.patch
@@ -0,0 +1,19 @@
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- libX11-1.3.4.orig/configure.ac
++++ libX11-1.3.4/configure.ac
+@@ -353,9 +353,9 @@
+ #
+ # Find keysymdef.h
+ #
+-AC_MSG_CHECKING([keysymdef.h])
+-dir=`$PKG_CONFIG --variable=includedir xproto`
+-KEYSYMDEF="$dir/X11/keysymdef.h"
++AC_ARG_WITH(keysymdef,
++ AC_HELP_STRING([--with-keysymdef=DIR/keysymdef.h], [The location of keysymdef.h]),
++ KEYSYMDEF=$withval, KEYSYMDEF="")
+ if test -f "$KEYSYMDEF"; then
+ AC_MSG_RESULT([$KEYSYMDEF])
+ else
diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/nodolt.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/nodolt.patch
new file mode 100644
index 000000000..011c23e8d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/nodolt.patch
@@ -0,0 +1,10 @@
+--- libX11-1.3.4.orig/configure.ac
++++ libX11-1.3.4/configure.ac
+@@ -32,7 +32,6 @@
+
+ # Checks for programs.
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_CC
+ PKG_PROG_PKG_CONFIG
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/x11_disable_makekeys.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/x11_disable_makekeys.patch
new file mode 100644
index 000000000..4036757e5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/x11_disable_makekeys.patch
@@ -0,0 +1,31 @@
+---
+ src/util/Makefile.am | 21 -----------------
+ 1 file changed, 21 deletions(-)
+
+--- libX11-1.3.4.orig/src/util/Makefile.am
++++ libX11-1.3.4/src/util/Makefile.am
+@@ -1,24 +1,3 @@
+
+-noinst_PROGRAMS=makekeys
+-
+-makekeys_CFLAGS = \
+- $(X11_CFLAGS) \
+- $(CWARNFLAGS)
+-
+-CC = @CC_FOR_BUILD@
+-CPPFLAGS = @CPPFLAGS_FOR_BUILD@
+-CFLAGS = @CFLAGS_FOR_BUILD@
+-LDFLAGS = @LDFLAGS_FOR_BUILD@
+-
+ EXTRA_DIST = mkks.sh
+
+-if LINT
+-# Check source code with tools like lint & sparse
+-
+-ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+-
+-lint:
+- $(LINT) $(ALL_LINT_FLAGS) makekeys.c
+-
+-endif LINT
diff --git a/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb b/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb
new file mode 100644
index 000000000..a76aba16e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb
@@ -0,0 +1,17 @@
+require libx11.inc
+
+PR = "r1"
+
+SRC_URI += "file://x11_disable_makekeys.patch;patch=1 \
+ file://include_fix.patch;patch=1 \
+ file://X18NCMSstubs.diff;patch=1 \
+ file://fix-disable-xlocale.diff;patch=1 \
+ file://fix-utf8-wrong-define.patch;patch=1"
+
+DEPENDS += "bigreqsproto xproto xextproto xtrans libxau xcmiscproto \
+ libxdmcp xf86bigfontproto kbproto inputproto xproto-native"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libx11"
+
+EXTRA_OECONF += "--without-xcb --disable-udc --disable-xcms --disable-xlocale"
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta/recipes-graphics/xorg-lib/libx11-diet_git.bb b/meta/recipes-graphics/xorg-lib/libx11-diet_git.bb
new file mode 100644
index 000000000..d1f0a753f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-diet_git.bb
@@ -0,0 +1,12 @@
+require libx11.inc
+require libx11_git.inc
+
+SRC_URI += "file://X18NCMSstubs.diff;patch=1 \
+ file://fix-disable-xlocale.diff;patch=1 \
+ file://fix-utf8-wrong-define.patch;patch=1"
+
+DEPENDS += "bigreqsproto xproto xextproto xtrans libxau xcmiscproto \
+ libxdmcp xf86bigfontproto kbproto inputproto xproto-native"
+
+EXTRA_OECONF += "--without-xcb --disable-udc --disable-xcms --disable-xlocale"
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/X18NCMSstubs.diff b/meta/recipes-graphics/xorg-lib/libx11-git/X18NCMSstubs.diff
new file mode 100644
index 000000000..2dd27fc94
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/X18NCMSstubs.diff
@@ -0,0 +1,568 @@
+---
+ configure.ac | 9 -
+ src/Makefile.am | 5
+ src/X18NCMSstubs.c | 428 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/imConv.c | 4
+ src/locking.c | 4
+ 5 files changed, 448 insertions(+), 2 deletions(-)
+
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -263,11 +263,18 @@ if test -f "$KEYSYMDEF"; then
+ else
+ AC_MSG_ERROR([Cannot find keysymdef.h])
+ fi
+ AC_SUBST(KEYSYMDEF)
+
+-AM_CONDITIONAL(UDC, test xfalse = xtrue)
++AC_ARG_ENABLE(udc,
++ AC_HELP_STRING([--disable-udc],
++ [Disable Xlib support for UDC *EXPERIMENTAL*]),
++ [UDC=$enableval],[UDC=yes])
++AM_CONDITIONAL(UDC, [test x$UDC = xyes ])
++if test x"$UDC" = "xyes"; then
++ AC_DEFINE(UDC,1,[Include support for UDC])
++fi
+
+ AC_ARG_ENABLE(xcms,
+ AC_HELP_STRING([--disable-xcms],
+ [Disable Xlib support for CMS *EXPERIMENTAL*]),
+ [XCMS=$enableval],[XCMS=yes])
+--- git.orig/src/Makefile.am
++++ git/src/Makefile.am
+@@ -329,18 +329,21 @@ endif
+
+ if THRSTUBS
+ libX11_la_SOURCES+=UIThrStubs.c
+ endif
+
++libX11_la_SOURCES+=X18NCMSstubs.c
++
+ x11datadir = @X11_DATADIR@
+ x11data_DATA = XKeysymDB XErrorDB
+
+ EXTRA_DIST = \
+ $(x11data_DATA) \
+ os2Stubs.c \
+ udcInf.c \
+- UIThrStubs.c
++ UIThrStubs.c \
++ X18NCMSstubs.c
+
+ if XCB
+ libX11_la_SOURCES += \
+ xcb_lock.c \
+ xcb_disp.c \
+--- /dev/null
++++ git/src/X18NCMSstubs.c
+@@ -0,0 +1,428 @@
++/*
++ * X18NCMSstubs.c
++ * - Provides stubs and dummy funcs needed when Xcms and XLocale stuff removed
++ *
++ * Copyright © 2003 Matthew Allum
++ *
++ * 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 Matthew Allum not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission. Keith Packard and Compaq makes no
++ * representations about the suitability of this software for any purpose. It
++ * is provided "as is" without express or implied warranty.
++ *
++ * MATTHEW ALLUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
++ * IN NO EVENT SHALL KEITH PACKARD 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.
++ */
++
++#include <stdlib.h>
++#include "Xlibint.h"
++#include "Xlcint.h"
++#include <X11/Xlocale.h>
++#include <X11/Xos.h>
++#ifdef WIN32
++#undef close
++#endif
++#include <X11/Xutil.h>
++#include "XlcPubI.h"
++
++#include "Xcmsint.h" /* for XcmsCCC type */
++#include "XlcPubI.h" /* for XLCd type */
++#include "config.h"
++
++#if ! XLOCALE
++
++Bool
++XSupportsLocale()
++{
++ return False;
++}
++
++char *
++XSetLocaleModifiers(
++ const char *modifiers)
++{
++ return NULL;
++}
++
++XLCd
++_XOpenLC(
++ char *name)
++{
++ return NULL;
++}
++
++XLCd
++_XlcCurrentLC()
++{
++ return NULL;
++}
++
++void
++_XlcVaToArgList(
++ va_list var,
++ int count,
++ XlcArgList *args_ret)
++{
++ return;
++}
++
++void
++_XlcCountVaList(
++ va_list var,
++ int *count_ret)
++{
++ return;
++}
++
++void
++_XCloseLC(
++ XLCd lcd)
++{
++ return;
++}
++
++int
++_XlcConvert(
++ XlcConv conv,
++ XPointer *from,
++ int *from_left,
++ XPointer *to,
++ int *to_left,
++ XPointer *args,
++ int num_args)
++{
++ return 0;
++}
++
++/* XIM Stubs */
++
++XPointer
++_XimGetLocaleCode ( _Xconst char* encoding_name )
++{
++ return NULL;
++}
++
++int
++_XimGetCharCode (
++ XPointer ucs_conv,
++ KeySym keysym,
++ unsigned char* buf,
++ int nbytes)
++{
++ return 0;
++}
++
++/* Xrm Stubs */
++
++XrmMethods
++_XrmInitParseInfo(
++ XPointer *state)
++{
++ return (XrmMethods) NULL;
++}
++
++/* Xwc Stubs */
++
++int
++XwcTextExtents(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len,
++ XRectangle *overall_ink_extents,
++ XRectangle *overall_logical_extents)
++{
++ return 0;
++}
++
++void
++XwcDrawString(Display *display,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x, int y,
++ _Xconst wchar_t *string,
++ int num_wchars)
++{
++ ;
++}
++
++void
++XwcDrawText(
++ Display *dpy,
++ Drawable d,
++ GC gc,
++ int x,
++ int y,
++ XwcTextItem *text_items,
++ int nitems)
++{
++ ;
++}
++
++void
++XwcDrawImageString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst wchar_t *text,
++ int text_len)
++{
++ ;
++}
++
++int
++XwcTextEscapement(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len)
++{
++ return 0;
++}
++
++Status
++XwcTextPerCharExtents(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len,
++ XRectangle *ink_extents_buffer,
++ XRectangle *logical_extents_buffer,
++ int buffer_size,
++ int *num_chars,
++ XRectangle *max_ink_extents,
++ XRectangle *max_logical_extents)
++{
++ ;
++}
++
++int
++XwcTextPropertyToTextList(
++ Display *dpy,
++ const XTextProperty *text_prop,
++ wchar_t ***list_ret,
++ int *count_ret)
++{
++ return 0;
++}
++
++int
++XwcTextListToTextProperty(
++ Display *dpy,
++ wchar_t **list,
++ int count,
++ XICCEncodingStyle style,
++ XTextProperty *text_prop)
++{
++ return 0;
++}
++
++void
++XwcFreeStringList(wchar_t **list)
++{
++ return;
++}
++
++
++void XmbSetWMProperties ( /* Actually from mbWMProps.c */
++ Display *dpy,
++ Window w,
++ _Xconst char *windowName,
++ _Xconst char *iconName,
++ char **argv,
++ int argc,
++ XSizeHints *sizeHints,
++ XWMHints *wmHints,
++ XClassHint *classHints)
++{
++ return;
++}
++
++int
++XmbTextPropertyToTextList(
++ Display *dpy,
++ const XTextProperty *text_prop,
++ char ***list_ret,
++ int *count_ret)
++{
++ return XLocaleNotSupported;
++}
++
++int
++XmbTextListToTextProperty(
++ Display *dpy,
++ char **list,
++ int count,
++ XICCEncodingStyle style,
++ XTextProperty *text_prop)
++{
++ return XLocaleNotSupported;
++}
++
++int
++XmbTextExtents(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len,
++ XRectangle *overall_ink_extents,
++ XRectangle *overall_logical_extents)
++{
++ return 0;
++}
++
++void
++XmbDrawText(
++ Display *dpy,
++ Drawable d,
++ GC gc,
++ int x,
++ int y,
++ XmbTextItem *text_items,
++ int nitems)
++{
++ ;
++}
++
++void
++XmbDrawString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst char *text,
++ int text_len)
++{
++ ;
++}
++
++void
++XmbDrawImageString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst char *text,
++ int text_len)
++{
++ ;
++}
++
++int
++XmbTextEscapement(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len)
++{
++ return 0;
++}
++
++Status
++XmbTextPerCharExtents(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len,
++ XRectangle *ink_extents_buffer,
++ XRectangle *logical_extents_buffer,
++ int buffer_size,
++ int *num_chars,
++ XRectangle *max_ink_extents,
++ XRectangle *max_logical_extents)
++{
++ return 0;
++}
++
++unsigned int
++KeySymToUcs4(KeySym keysym)
++{
++ return 0;
++}
++
++#endif
++
++#if ! XCMS
++
++XcmsCCC
++XcmsCCCOfColormap(dpy, cmap)
++ Display *dpy;
++ Colormap cmap;
++{
++ return NULL;
++}
++
++Status
++_XcmsResolveColorString (
++ XcmsCCC ccc,
++ const char **color_string,
++ XcmsColor *pColor_exact_return,
++ XcmsColorFormat result_format)
++{
++ return(XcmsFailure);
++}
++
++void
++_XcmsUnresolveColor(
++ XcmsCCC ccc,
++ XcmsColor *pColor)
++{
++ return;
++}
++
++void
++_XUnresolveColor(
++ XcmsCCC ccc,
++ XColor *pXColor)
++{
++ return;
++}
++
++XcmsCmapRec *
++_XcmsAddCmapRec(dpy, cmap, windowID, visual)
++ Display *dpy;
++ Colormap cmap;
++ Window windowID;
++ Visual *visual;
++{
++ return NULL;
++}
++
++void
++_XcmsRGB_to_XColor(
++ XcmsColor *pColors,
++ XColor *pXColors,
++ unsigned int nColors)
++{
++ return;
++}
++
++XcmsCmapRec *
++_XcmsCopyCmapRecAndFree(
++ Display *dpy,
++ Colormap src_cmap,
++ Colormap copy_cmap)
++{
++ return NULL;
++}
++
++void
++_XcmsDeleteCmapRec(
++ Display *dpy,
++ Colormap cmap)
++{
++ return;
++}
++
++#endif
+--- git.orig/src/imConv.c
++++ git/src/imConv.c
+@@ -81,10 +81,11 @@ static const struct SubstRec SubstTable[
+ /*
+ * Given the name of a charset, returns the pointer to convertors
+ * from UCS char to specified charset char.
+ * This converter is needed for _XimGetCharCode subroutine.
+ */
++#ifdef XLOCALE
+ XPointer
+ _XimGetLocaleCode (
+ _Xconst char* encoding_name)
+ {
+ XPointer cvt = _Utf8GetConvByName(encoding_name);
+@@ -94,10 +95,11 @@ _XimGetLocaleCode (
+ if (!strcmp(encoding_name, SubstTable[i].encoding_name))
+ return _Utf8GetConvByName(SubstTable[i].charset_name);
+ }
+ return cvt;
+ }
++#endif
+
+ /*
+ * Returns the locale dependent representation of a keysym.
+ * The locale's encoding is passed in form of pointer to UCS convertor.
+ * The resulting multi-byte sequence is placed starting at buf (a buffer
+@@ -105,10 +107,11 @@ _XimGetLocaleCode (
+ * Returns the length of the resulting multi-byte sequence, excluding the
+ * terminating NUL byte. Return 0 if the keysym is not representable in the
+ * locale
+ */
+ /*ARGSUSED*/
++#ifdef XLOCALE
+ int
+ _XimGetCharCode (
+ XPointer ucs_conv,
+ KeySym keysym,
+ unsigned char* buf,
+@@ -133,10 +136,11 @@ _XimGetCharCode (
+ return nbytes;
+ if (count<nbytes)
+ buf[count]= '\0';
+ return count;
+ }
++#endif
+
+ #ifdef XKB
+ static int lookup_string(
+ XKeyEvent* event,
+ char* buffer,
+--- git.orig/src/locking.c
++++ git/src/locking.c
+@@ -53,11 +53,13 @@ in this Software without prior written a
+ #endif
+
+ #define NUM_FREE_CVLS 4
+
+ /* in lcWrap.c */
++#ifdef XLOCALE
+ extern LockInfoPtr _Xi18n_lock;
++#endif
+
+ #ifdef WIN32
+ static DWORD _X_TlsIndex = (DWORD)-1;
+
+ void _Xthread_init()
+@@ -623,13 +625,15 @@ Status XInitThreads()
+ return 0;
+ }
+ _Xglobal_lock = &global_lock;
+ xmutex_init(_Xglobal_lock->lock);
+ xmutex_set_name(_Xglobal_lock->lock, "Xlib global");
++#ifdef XLOCALE
+ _Xi18n_lock = &i18n_lock;
+ xmutex_init(_Xi18n_lock->lock);
+ xmutex_set_name(_Xi18n_lock->lock, "Xlib i18n");
++#endif
+ _XLockMutex_fn = _XLockMutex;
+ _XUnlockMutex_fn = _XUnlockMutex;
+ _XCreateMutex_fn = _XCreateMutex;
+ _XFreeMutex_fn = _XFreeMutex;
+ _XInitDisplayLock_fn = _XInitDisplayLock;
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/fix-disable-xlocale.diff b/meta/recipes-graphics/xorg-lib/libx11-git/fix-disable-xlocale.diff
new file mode 100644
index 000000000..9dbf6dac6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/fix-disable-xlocale.diff
@@ -0,0 +1,14 @@
+--- libX11-X11R7.0-1.0.0/src/Font.c.orig 2006-03-12 18:35:42.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/Font.c 2006-03-12 18:40:27.000000000 +0100
+@@ -701,7 +701,11 @@
+ }
+ if (l - 2 - (p - charset) < 0)
+ return 0;
++#ifdef XLOCALE
+ if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset))
++#else
++ if (strncasecmp(name + l - 2 - (p - charset), charset, p - charset))
++#endif
+ return 0;
+ if (strlen(p + 1) + l - 1 >= sizeof(buf) - 1)
+ return 0;
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/fix-utf8-wrong-define.patch b/meta/recipes-graphics/xorg-lib/libx11-git/fix-utf8-wrong-define.patch
new file mode 100644
index 000000000..a098db194
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/fix-utf8-wrong-define.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- libX11-X11R7.0-1.0.0/include/X11/Xlib.h~fix-utf8-wrong-define
++++ libX11-X11R7.0-1.0.0/include/X11/Xlib.h
+@@ -103,7 +103,7 @@
+
+ /* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+ November 2000. Its presence is indicated through the following macro. */
+-#define X_HAVE_UTF8_STRING 1
++#undef X_HAVE_UTF8_STRING
+
+ typedef char *XPointer;
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/include_fix.patch b/meta/recipes-graphics/xorg-lib/libx11-git/include_fix.patch
new file mode 100644
index 000000000..99ed57194
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/include_fix.patch
@@ -0,0 +1,23 @@
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- libX11-1.1.5.orig/configure.ac
++++ libX11-1.1.5/configure.ac
+@@ -218,13 +218,13 @@ AC_SUBST(XDMCP_LIBS)
+ AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
+
+ #
+ # Find keysymdef.h
+ #
+-AC_MSG_CHECKING([keysymdef.h])
+-dir=`pkg-config --variable=includedir xproto`
+-KEYSYMDEF="$dir/X11/keysymdef.h"
++AC_ARG_WITH(keysymdef,
++ AC_HELP_STRING([--with-keysymdef=DIR/keysymdef.h], [The location of keysymdef.h]),
++ KEYSYMDEF=$withval, KEYSYMDEF="")
+ if test -f "$KEYSYMDEF"; then
+ AC_MSG_RESULT([$KEYSYMDEF])
+ else
+ AC_MSG_ERROR([Cannot find keysymdef.h])
+ fi
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/nodolt.patch b/meta/recipes-graphics/xorg-lib/libx11-git/nodolt.patch
new file mode 100644
index 000000000..ecf9625ca
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/nodolt.patch
@@ -0,0 +1,12 @@
+Index: libX11-1.2.1/configure.ac
+===================================================================
+--- libX11-1.2.1.orig/configure.ac 2009-07-02 14:07:54.000000000 +0100
++++ libX11-1.2.1/configure.ac 2009-07-02 14:08:01.000000000 +0100
+@@ -20,7 +20,6 @@
+
+ # Checks for programs.
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_CC
+ XORG_CWARNFLAGS
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/x11_disable_makekeys.patch b/meta/recipes-graphics/xorg-lib/libx11-git/x11_disable_makekeys.patch
new file mode 100644
index 000000000..9cc2bbbbd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/x11_disable_makekeys.patch
@@ -0,0 +1,28 @@
+---
+ src/util/Makefile.am | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+Index: git/src/util/Makefile.am
+===================================================================
+--- git.orig/src/util/Makefile.am 2010-01-28 22:24:29.000000000 +0000
++++ git/src/util/Makefile.am 2010-01-28 22:29:26.000000000 +0000
+@@ -1,19 +1,2 @@
+
+-noinst_PROGRAMS=makekeys
+
+-makekeys_CFLAGS=$(X11_CFLAGS)
+-
+-CC = @CC_FOR_BUILD@
+-
+-EXTRA_DIST = mkks.sh
+-
+-if LINT
+-# Check source code with tools like lint & sparse
+-
+-ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+-
+-lint:
+- $(LINT) $(ALL_LINT_FLAGS) makekeys.c
+-
+-endif LINT
diff --git a/meta/recipes-graphics/xorg-lib/libx11-git/xim.patch b/meta/recipes-graphics/xorg-lib/libx11-git/xim.patch
new file mode 100644
index 000000000..0eab197a8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-git/xim.patch
@@ -0,0 +1,55 @@
+--- libX11-6.2.1/src/X18NCMSstubs.c 2003-12-04 22:47:47.000000000 +0000
++++ libX11-6.2.1/src/X18NCMSstubs.c-new 2005-12-09 12:09:03.000000000 +0000
+@@ -90,6 +90,52 @@
+ return;
+ }
+
++XIM
++XOpenIM (
++ Display* display,
++ struct _XrmHashBucketRec* rdb,
++ char* res_name,
++ char* res_class)
++{
++ return (XIM) NULL;
++}
++
++Status
++XCloseIM ( XIM im )
++{
++ return NULL;
++}
++
++XIC
++XCreateIC ( XIM im, ...)
++{
++ return NULL;
++}
++
++void
++XDestroyIC ( XIC ic )
++{
++ return;
++}
++
++int
++XmbLookupString (
++ XIC ic,
++ XKeyPressedEvent* ev,
++ char* buffer,
++ int nbytes,
++ KeySym* keysym,
++ Status* status)
++{
++ return XLookupNone;
++}
++
++char *
++XGetICValues( XIC ic, ...)
++{
++ return (char *) NULL;
++}
++
+ XPointer
+ _XimGetLocaleCode ( _Xconst char* encoding_name )
+ {
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim/include_fix.patch b/meta/recipes-graphics/xorg-lib/libx11-trim/include_fix.patch
new file mode 100644
index 000000000..99ed57194
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim/include_fix.patch
@@ -0,0 +1,23 @@
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- libX11-1.1.5.orig/configure.ac
++++ libX11-1.1.5/configure.ac
+@@ -218,13 +218,13 @@ AC_SUBST(XDMCP_LIBS)
+ AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
+
+ #
+ # Find keysymdef.h
+ #
+-AC_MSG_CHECKING([keysymdef.h])
+-dir=`pkg-config --variable=includedir xproto`
+-KEYSYMDEF="$dir/X11/keysymdef.h"
++AC_ARG_WITH(keysymdef,
++ AC_HELP_STRING([--with-keysymdef=DIR/keysymdef.h], [The location of keysymdef.h]),
++ KEYSYMDEF=$withval, KEYSYMDEF="")
+ if test -f "$KEYSYMDEF"; then
+ AC_MSG_RESULT([$KEYSYMDEF])
+ else
+ AC_MSG_ERROR([Cannot find keysymdef.h])
+ fi
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim/nodolt.patch b/meta/recipes-graphics/xorg-lib/libx11-trim/nodolt.patch
new file mode 100644
index 000000000..ecf9625ca
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim/nodolt.patch
@@ -0,0 +1,12 @@
+Index: libX11-1.2.1/configure.ac
+===================================================================
+--- libX11-1.2.1.orig/configure.ac 2009-07-02 14:07:54.000000000 +0100
++++ libX11-1.2.1/configure.ac 2009-07-02 14:08:01.000000000 +0100
+@@ -20,7 +20,6 @@
+
+ # Checks for programs.
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_CC
+ XORG_CWARNFLAGS
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim/x11_disable_makekeys.patch b/meta/recipes-graphics/xorg-lib/libx11-trim/x11_disable_makekeys.patch
new file mode 100644
index 000000000..670578257
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim/x11_disable_makekeys.patch
@@ -0,0 +1,29 @@
+---
+ src/util/Makefile.am | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+Index: libX11-1.2.1/src/util/Makefile.am
+===================================================================
+--- libX11-1.2.1.orig/src/util/Makefile.am 2008-10-07 18:18:19.000000000 +0100
++++ libX11-1.2.1/src/util/Makefile.am 2009-07-02 14:04:38.000000000 +0100
+@@ -1,20 +1,3 @@
+ # $XdotOrg: lib/X11/src/util/Makefile.am,v 1.4 2006-02-19 02:14:12 jamey Exp $
+
+-noinst_PROGRAMS=makekeys
+-
+-makekeys_CFLAGS=$(X11_CFLAGS)
+-
+-CC = @CC_FOR_BUILD@
+-
+ EXTRA_DIST = mkks.sh
+-
+-if LINT
+-# Check source code with tools like lint & sparse
+-
+-ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+-
+-lint:
+- $(LINT) $(ALL_LINT_FLAGS) makekeys.c
+-
+-endif LINT
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
new file mode 100644
index 000000000..190217d38
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
@@ -0,0 +1,14 @@
+require libx11.inc
+
+LICENSE = "MIT & MIT-style & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
+
+PR = "r0"
+
+DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
+
+SRC_URI += "file://../libx11-${PV}/x11_disable_makekeys.patch \
+ file://../libx11-${PV}/include_fix.patch \
+ file://../libx11-${PV}/nodolt.patch"
+
+EXTRA_OECONF += "--disable-xcms --with-xcb"
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_git.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_git.bb
new file mode 100644
index 000000000..99426c3c5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim_git.bb
@@ -0,0 +1,10 @@
+require libx11.inc
+require libx11_git.inc
+
+PR = "r2"
+
+DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
+
+EXTRA_OECONF += "--disable-xcms --with-xcb"
+CFLAGS += "-D_GNU_SOURCE"
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11.inc
new file mode 100644
index 000000000..f8c17b1a6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11.inc
@@ -0,0 +1,34 @@
+DESCRIPTION = "X11 protocol and utility library"
+
+require xorg-lib-common.inc
+
+PROVIDES = "virtual/libx11"
+
+XORG_PN = "libX11"
+LEAD_SONAME = "libX11.so"
+
+EXTRA_OECONF += "--with-keysymdef=${STAGING_INCDIR}/X11/keysymdef.h"
+
+FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${libdir}/X11/Xcms.txt"
+FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale"
+
+do_compile() {
+ cd ${S}/src/util
+ mv makekeys.c.orig makekeys.c || true
+ touch makekeys-makekeys.o
+ (
+ unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
+ ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+ )
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+ # mv to stop it getting rebuilt
+ mv makekeys.c makekeys.c.orig
+ cd ${S}
+ oe_runmake
+}
+
+# Multiple libx11 derivatives from from this file and are selected by virtual/libx11
+# A world build should only build the correct version, not all of them.
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff b/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff
new file mode 100644
index 000000000..54b1727a9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff
@@ -0,0 +1,528 @@
+--- libX11-X11R7.0-1.0.0/src/imConv.c.orig 2006-03-08 09:46:03.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/imConv.c 2006-03-08 10:50:10.000000000 +0100
+@@ -83,6 +83,7 @@
+ * from UCS char to specified charset char.
+ * This converter is needed for _XimGetCharCode subroutine.
+ */
++#ifdef XLOCALE
+ XPointer
+ _XimGetLocaleCode (
+ _Xconst char* encoding_name)
+@@ -96,6 +97,7 @@
+ }
+ return cvt;
+ }
++#endif
+
+ /*
+ * Returns the locale dependent representation of a keysym.
+@@ -107,6 +109,7 @@
+ * locale
+ */
+ /*ARGSUSED*/
++#ifdef XLOCALE
+ int
+ _XimGetCharCode (
+ XPointer ucs_conv,
+@@ -135,6 +138,7 @@
+ buf[count]= '\0';
+ return count;
+ }
++#endif
+
+ #ifdef XKB
+ static int lookup_string(
+--- libX11-X11R7.0-1.0.0/src/X18NCMSstubs.c.orig 2006-03-08 08:43:19.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/X18NCMSstubs.c 2006-03-08 11:41:28.000000000 +0100
+@@ -0,0 +1,428 @@
++/*
++ * X18NCMSstubs.c
++ * - Provides stubs and dummy funcs needed when Xcms and XLocale stuff removed
++ *
++ * Copyright © 2003 Matthew Allum
++ *
++ * 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 Matthew Allum not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission. Keith Packard and Compaq makes no
++ * representations about the suitability of this software for any purpose. It
++ * is provided "as is" without express or implied warranty.
++ *
++ * MATTHEW ALLUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
++ * IN NO EVENT SHALL KEITH PACKARD 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.
++ */
++
++#include <stdlib.h>
++#include "Xlibint.h"
++#include "Xlcint.h"
++#include <X11/Xlocale.h>
++#include <X11/Xos.h>
++#ifdef WIN32
++#undef close
++#endif
++#include <X11/Xutil.h>
++#include "XlcPubI.h"
++
++#include "Xcmsint.h" /* for XcmsCCC type */
++#include "XlcPubI.h" /* for XLCd type */
++#include "config.h"
++
++#if ! XLOCALE
++
++Bool
++XSupportsLocale()
++{
++ return False;
++}
++
++char *
++XSetLocaleModifiers(
++ const char *modifiers)
++{
++ return NULL;
++}
++
++XLCd
++_XOpenLC(
++ char *name)
++{
++ return NULL;
++}
++
++XLCd
++_XlcCurrentLC()
++{
++ return NULL;
++}
++
++void
++_XlcVaToArgList(
++ va_list var,
++ int count,
++ XlcArgList *args_ret)
++{
++ return;
++}
++
++void
++_XlcCountVaList(
++ va_list var,
++ int *count_ret)
++{
++ return;
++}
++
++void
++_XCloseLC(
++ XLCd lcd)
++{
++ return;
++}
++
++int
++_XlcConvert(
++ XlcConv conv,
++ XPointer *from,
++ int *from_left,
++ XPointer *to,
++ int *to_left,
++ XPointer *args,
++ int num_args)
++{
++ return 0;
++}
++
++/* XIM Stubs */
++
++XPointer
++_XimGetLocaleCode ( _Xconst char* encoding_name )
++{
++ return NULL;
++}
++
++int
++_XimGetCharCode (
++ XPointer ucs_conv,
++ KeySym keysym,
++ unsigned char* buf,
++ int nbytes)
++{
++ return 0;
++}
++
++/* Xrm Stubs */
++
++XrmMethods
++_XrmInitParseInfo(
++ XPointer *state)
++{
++ return (XrmMethods) NULL;
++}
++
++/* Xwc Stubs */
++
++int
++XwcTextExtents(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len,
++ XRectangle *overall_ink_extents,
++ XRectangle *overall_logical_extents)
++{
++ return 0;
++}
++
++void
++XwcDrawString(Display *display,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x, int y,
++ _Xconst wchar_t *string,
++ int num_wchars)
++{
++ ;
++}
++
++void
++XwcDrawText(
++ Display *dpy,
++ Drawable d,
++ GC gc,
++ int x,
++ int y,
++ XwcTextItem *text_items,
++ int nitems)
++{
++ ;
++}
++
++void
++XwcDrawImageString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst wchar_t *text,
++ int text_len)
++{
++ ;
++}
++
++int
++XwcTextEscapement(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len)
++{
++ return 0;
++}
++
++Status
++XwcTextPerCharExtents(
++ XFontSet font_set,
++ _Xconst wchar_t *text,
++ int text_len,
++ XRectangle *ink_extents_buffer,
++ XRectangle *logical_extents_buffer,
++ int buffer_size,
++ int *num_chars,
++ XRectangle *max_ink_extents,
++ XRectangle *max_logical_extents)
++{
++ ;
++}
++
++int
++XwcTextPropertyToTextList(
++ Display *dpy,
++ const XTextProperty *text_prop,
++ wchar_t ***list_ret,
++ int *count_ret)
++{
++ return 0;
++}
++
++int
++XwcTextListToTextProperty(
++ Display *dpy,
++ wchar_t **list,
++ int count,
++ XICCEncodingStyle style,
++ XTextProperty *text_prop)
++{
++ return 0;
++}
++
++void
++XwcFreeStringList(wchar_t **list)
++{
++ return;
++}
++
++
++void XmbSetWMProperties ( /* Actually from mbWMProps.c */
++ Display *dpy,
++ Window w,
++ _Xconst char *windowName,
++ _Xconst char *iconName,
++ char **argv,
++ int argc,
++ XSizeHints *sizeHints,
++ XWMHints *wmHints,
++ XClassHint *classHints)
++{
++ return;
++}
++
++int
++XmbTextPropertyToTextList(
++ Display *dpy,
++ const XTextProperty *text_prop,
++ char ***list_ret,
++ int *count_ret)
++{
++ return XLocaleNotSupported;
++}
++
++int
++XmbTextListToTextProperty(
++ Display *dpy,
++ char **list,
++ int count,
++ XICCEncodingStyle style,
++ XTextProperty *text_prop)
++{
++ return XLocaleNotSupported;
++}
++
++int
++XmbTextExtents(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len,
++ XRectangle *overall_ink_extents,
++ XRectangle *overall_logical_extents)
++{
++ return 0;
++}
++
++void
++XmbDrawText(
++ Display *dpy,
++ Drawable d,
++ GC gc,
++ int x,
++ int y,
++ XmbTextItem *text_items,
++ int nitems)
++{
++ ;
++}
++
++void
++XmbDrawString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst char *text,
++ int text_len)
++{
++ ;
++}
++
++void
++XmbDrawImageString(
++ Display *dpy,
++ Drawable d,
++ XFontSet font_set,
++ GC gc,
++ int x,
++ int y,
++ _Xconst char *text,
++ int text_len)
++{
++ ;
++}
++
++int
++XmbTextEscapement(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len)
++{
++ return 0;
++}
++
++Status
++XmbTextPerCharExtents(
++ XFontSet font_set,
++ _Xconst char *text,
++ int text_len,
++ XRectangle *ink_extents_buffer,
++ XRectangle *logical_extents_buffer,
++ int buffer_size,
++ int *num_chars,
++ XRectangle *max_ink_extents,
++ XRectangle *max_logical_extents)
++{
++ return 0;
++}
++
++unsigned int
++KeySymToUcs4(KeySym keysym)
++{
++ return 0;
++}
++
++#endif
++
++#if ! XCMS
++
++XcmsCCC
++XcmsCCCOfColormap(dpy, cmap)
++ Display *dpy;
++ Colormap cmap;
++{
++ return NULL;
++}
++
++Status
++_XcmsResolveColorString (
++ XcmsCCC ccc,
++ const char **color_string,
++ XcmsColor *pColor_exact_return,
++ XcmsColorFormat result_format)
++{
++ return(XcmsFailure);
++}
++
++void
++_XcmsUnresolveColor(
++ XcmsCCC ccc,
++ XcmsColor *pColor)
++{
++ return;
++}
++
++void
++_XUnresolveColor(
++ XcmsCCC ccc,
++ XColor *pXColor)
++{
++ return;
++}
++
++XcmsCmapRec *
++_XcmsAddCmapRec(dpy, cmap, windowID, visual)
++ Display *dpy;
++ Colormap cmap;
++ Window windowID;
++ Visual *visual;
++{
++ return NULL;
++}
++
++void
++_XcmsRGB_to_XColor(
++ XcmsColor *pColors,
++ XColor *pXColors,
++ unsigned int nColors)
++{
++ return;
++}
++
++XcmsCmapRec *
++_XcmsCopyCmapRecAndFree(
++ Display *dpy,
++ Colormap src_cmap,
++ Colormap copy_cmap)
++{
++ return NULL;
++}
++
++void
++_XcmsDeleteCmapRec(
++ Display *dpy,
++ Colormap cmap)
++{
++ return;
++}
++
++#endif
+--- libX11-X11R7.0-1.0.0/src/Makefile.am.orig 2006-03-08 08:31:09.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/Makefile.am 2006-03-08 09:36:23.000000000 +0100
+@@ -331,6 +331,8 @@
+ libX11_la_SOURCES+=UIThrStubs.c
+ endif
+
++libX11_la_SOURCES+=X18NCMSstubs.c
++
+ x11datadir = @X11_DATADIR@
+ x11data_DATA = XKeysymDB XErrorDB
+
+@@ -338,7 +340,8 @@
+ $(x11data_DATA) \
+ os2Stubs.c \
+ udcInf.c \
+- UIThrStubs.c
++ UIThrStubs.c \
++ X18NCMSstubs.c
+
+ #
+ # Figure out which sub-libraries to link into Xlib
+--- libX11-X11R7.0-1.0.0/src/locking.c.orig 2006-03-08 11:05:56.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/locking.c 2006-03-08 11:06:37.000000000 +0100
+@@ -55,7 +55,9 @@
+ #define NUM_FREE_CVLS 4
+
+ /* in lcWrap.c */
++#ifdef XLOCALE
+ extern LockInfoPtr _Xi18n_lock;
++#endif
+
+ #ifdef WIN32
+ static DWORD _X_TlsIndex = (DWORD)-1;
+@@ -625,9 +627,11 @@
+ _Xglobal_lock = &global_lock;
+ xmutex_init(_Xglobal_lock->lock);
+ xmutex_set_name(_Xglobal_lock->lock, "Xlib global");
++#ifdef XLOCALE
+ _Xi18n_lock = &i18n_lock;
+ xmutex_init(_Xi18n_lock->lock);
+ xmutex_set_name(_Xi18n_lock->lock, "Xlib i18n");
++#endif
+ _XLockMutex_fn = _XLockMutex;
+ _XUnlockMutex_fn = _XUnlockMutex;
+ _XCreateMutex_fn = _XCreateMutex;
+--- libX11-X11R7.0-1.0.0/configure.ac.orig 2006-03-08 10:03:57.000000000 +0100
++++ libX11-X11R7.0-1.0.0/configure.ac 2006-03-08 10:06:01.000000000 +0100
+@@ -215,7 +215,14 @@
+ esac
+ AC_SUBST(KEYSYMDEF)
+
+-AM_CONDITIONAL(UDC, test xfalse = xtrue)
++AC_ARG_ENABLE(udc,
++ AC_HELP_STRING([--disable-udc],
++ [Disable Xlib support for UDC *EXPERIMENTAL*]),
++ [UDC=$enableval],[UDC=yes])
++AM_CONDITIONAL(UDC, [test x$UDC = xyes ])
++if test x"$UDC" = "xyes"; then
++ AC_DEFINE(UDC,1,[Include support for UDC])
++fi
+
+ AC_ARG_ENABLE(xcms,
+ AC_HELP_STRING([--disable-xcms],
diff --git a/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.diff b/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.diff
new file mode 100644
index 000000000..9dbf6dac6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.diff
@@ -0,0 +1,14 @@
+--- libX11-X11R7.0-1.0.0/src/Font.c.orig 2006-03-12 18:35:42.000000000 +0100
++++ libX11-X11R7.0-1.0.0/src/Font.c 2006-03-12 18:40:27.000000000 +0100
+@@ -701,7 +701,11 @@
+ }
+ if (l - 2 - (p - charset) < 0)
+ return 0;
++#ifdef XLOCALE
+ if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset))
++#else
++ if (strncasecmp(name + l - 2 - (p - charset), charset, p - charset))
++#endif
+ return 0;
+ if (strlen(p + 1) + l - 1 >= sizeof(buf) - 1)
+ return 0;
diff --git a/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch b/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch
new file mode 100644
index 000000000..a098db194
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- libX11-X11R7.0-1.0.0/include/X11/Xlib.h~fix-utf8-wrong-define
++++ libX11-X11R7.0-1.0.0/include/X11/Xlib.h
+@@ -103,7 +103,7 @@
+
+ /* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+ November 2000. Its presence is indicated through the following macro. */
+-#define X_HAVE_UTF8_STRING 1
++#undef X_HAVE_UTF8_STRING
+
+ typedef char *XPointer;
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11/include_fix.patch b/meta/recipes-graphics/xorg-lib/libx11/include_fix.patch
new file mode 100644
index 000000000..99ed57194
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/include_fix.patch
@@ -0,0 +1,23 @@
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- libX11-1.1.5.orig/configure.ac
++++ libX11-1.1.5/configure.ac
+@@ -218,13 +218,13 @@ AC_SUBST(XDMCP_LIBS)
+ AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
+
+ #
+ # Find keysymdef.h
+ #
+-AC_MSG_CHECKING([keysymdef.h])
+-dir=`pkg-config --variable=includedir xproto`
+-KEYSYMDEF="$dir/X11/keysymdef.h"
++AC_ARG_WITH(keysymdef,
++ AC_HELP_STRING([--with-keysymdef=DIR/keysymdef.h], [The location of keysymdef.h]),
++ KEYSYMDEF=$withval, KEYSYMDEF="")
+ if test -f "$KEYSYMDEF"; then
+ AC_MSG_RESULT([$KEYSYMDEF])
+ else
+ AC_MSG_ERROR([Cannot find keysymdef.h])
+ fi
diff --git a/meta/recipes-graphics/xorg-lib/libx11/nodolt.patch b/meta/recipes-graphics/xorg-lib/libx11/nodolt.patch
new file mode 100644
index 000000000..ecf9625ca
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/nodolt.patch
@@ -0,0 +1,12 @@
+Index: libX11-1.2.1/configure.ac
+===================================================================
+--- libX11-1.2.1.orig/configure.ac 2009-07-02 14:07:54.000000000 +0100
++++ libX11-1.2.1/configure.ac 2009-07-02 14:08:01.000000000 +0100
+@@ -20,7 +20,6 @@
+
+ # Checks for programs.
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_CC
+ XORG_CWARNFLAGS
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11/x11_disable_makekeys.patch b/meta/recipes-graphics/xorg-lib/libx11/x11_disable_makekeys.patch
new file mode 100644
index 000000000..670578257
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/x11_disable_makekeys.patch
@@ -0,0 +1,29 @@
+---
+ src/util/Makefile.am | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+Index: libX11-1.2.1/src/util/Makefile.am
+===================================================================
+--- libX11-1.2.1.orig/src/util/Makefile.am 2008-10-07 18:18:19.000000000 +0100
++++ libX11-1.2.1/src/util/Makefile.am 2009-07-02 14:04:38.000000000 +0100
+@@ -1,20 +1,3 @@
+ # $XdotOrg: lib/X11/src/util/Makefile.am,v 1.4 2006-02-19 02:14:12 jamey Exp $
+
+-noinst_PROGRAMS=makekeys
+-
+-makekeys_CFLAGS=$(X11_CFLAGS)
+-
+-CC = @CC_FOR_BUILD@
+-
+ EXTRA_DIST = mkks.sh
+-
+-if LINT
+-# Check source code with tools like lint & sparse
+-
+-ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+-
+-lint:
+- $(LINT) $(ALL_LINT_FLAGS) makekeys.c
+-
+-endif LINT
diff --git a/meta/recipes-graphics/xorg-lib/libx11/xim.patch b/meta/recipes-graphics/xorg-lib/libx11/xim.patch
new file mode 100644
index 000000000..0eab197a8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11/xim.patch
@@ -0,0 +1,55 @@
+--- libX11-6.2.1/src/X18NCMSstubs.c 2003-12-04 22:47:47.000000000 +0000
++++ libX11-6.2.1/src/X18NCMSstubs.c-new 2005-12-09 12:09:03.000000000 +0000
+@@ -90,6 +90,52 @@
+ return;
+ }
+
++XIM
++XOpenIM (
++ Display* display,
++ struct _XrmHashBucketRec* rdb,
++ char* res_name,
++ char* res_class)
++{
++ return (XIM) NULL;
++}
++
++Status
++XCloseIM ( XIM im )
++{
++ return NULL;
++}
++
++XIC
++XCreateIC ( XIM im, ...)
++{
++ return NULL;
++}
++
++void
++XDestroyIC ( XIC ic )
++{
++ return;
++}
++
++int
++XmbLookupString (
++ XIC ic,
++ XKeyPressedEvent* ev,
++ char* buffer,
++ int nbytes,
++ KeySym* keysym,
++ Status* status)
++{
++ return XLookupNone;
++}
++
++char *
++XGetICValues( XIC ic, ...)
++{
++ return (char *) NULL;
++}
++
+ XPointer
+ _XimGetLocaleCode ( _Xconst char* encoding_name )
+ {
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
new file mode 100644
index 000000000..aaeb38e2d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
@@ -0,0 +1,18 @@
+require libx11.inc
+
+LICENSE = "MIT & MIT-style & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
+
+PE = "1"
+PR = "r0"
+
+SRC_URI += "file://x11_disable_makekeys.patch \
+ file://nodolt.patch \
+ file://include_fix.patch"
+
+DEPENDS += "bigreqsproto xproto xextproto xtrans libxau xcmiscproto \
+ libxdmcp xf86bigfontproto kbproto inputproto xproto-native gettext"
+
+EXTRA_OECONF += "--without-xcb"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libx11_git.bb b/meta/recipes-graphics/xorg-lib/libx11_git.bb
new file mode 100644
index 000000000..a976a16cd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11_git.bb
@@ -0,0 +1,11 @@
+require libx11.inc
+require libx11_git.inc
+
+PR = "r2"
+
+DEPENDS = "xproto xextproto xcmiscproto xf86bigfontproto kbproto inputproto \
+ bigreqsproto xtrans libxau libxcb libxdmcp util-macros gettext"
+
+DEFAULT_PREFERENCE = "-1"
+
+BBCLASSEXTEND = "nativesdk" \ No newline at end of file
diff --git a/meta/recipes-graphics/xorg-lib/libx11_git.inc b/meta/recipes-graphics/xorg-lib/libx11_git.inc
new file mode 100644
index 000000000..40d806178
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11_git.inc
@@ -0,0 +1,11 @@
+PV = "1.2.1+git${SRCPV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/libX11;protocol=git"
+S = "${WORKDIR}/git"
+
+SRC_URI += "file://x11_disable_makekeys.patch;patch=1 \
+ file://include_fix.patch;patch=1 \
+ file://nodolt.patch;patch=1"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libx11-git"
+FILESPATH = "${FILE_DIRNAME}/libx11-git"
diff --git a/meta/recipes-graphics/xorg-lib/libxau_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxau_1.0.5.bb
new file mode 100644
index 000000000..65374611b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxau_1.0.5.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "A Sample Authorization Protocol for X"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7908e342491198401321cec1956807ec"
+
+DEPENDS += " xproto gettext"
+PROVIDES = "xau"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXau"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxaw_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxaw_1.0.5.bb
new file mode 100644
index 000000000..489f45664
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxaw_1.0.5.bb
@@ -0,0 +1,21 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X Athena Widget Set"
+DEPENDS += "xproto virtual/libx11 libxext xextproto libxt libxmu libxpm libxp printproto libxau"
+PROVIDES = "xaw"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXaw"
+
+do_install_append () {
+ ln -sf libXaw6.so.6 ${D}${libdir}/libXaw.so.6
+ ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so.7
+ ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so
+}
+
+PACKAGES =+ "libxaw6 libxaw7 libxaw8"
+
+FILES_libxaw6 = "${libdir}/libXaw6.so.6*"
+FILES_libxaw7 = "${libdir}/libXaw7.so.7*"
+FILES_libxaw8 = "${libdir}/libXaw8.so.8*"
diff --git a/meta/recipes-graphics/xorg-lib/libxcalibrate/fix-xcb.patch b/meta/recipes-graphics/xorg-lib/libxcalibrate/fix-xcb.patch
new file mode 100644
index 000000000..0d7efc70f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxcalibrate/fix-xcb.patch
@@ -0,0 +1,27 @@
+There is no extra reply data and if we say not to disgard it, xcb
+throws fatal asserts.
+
+RP - 26/11/09
+
+Index: git/xcalibrate.c
+===================================================================
+--- git.orig/xcalibrate.c 2009-11-26 08:11:48.000000000 +0000
++++ git/xcalibrate.c 2009-11-26 08:09:55.000000000 +0000
+@@ -216,7 +216,7 @@
+ req->reqType = info->codes->major_opcode;
+ req->xCalibrateReqType = X_XCalibrateRawMode;
+ req->on = enable;
+- if (!_XReply (dpy, (xReply *) &rep, 0, xFalse))
++ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue))
+ {
+ UnlockDisplay (dpy);
+ SyncHandle ();
+@@ -240,7 +240,7 @@
+ req->xCalibrateReqType = X_XCalibrateScreenToCoord;
+ req->x = *x;
+ req->y = *y;
+- if (!_XReply (dpy, (xReply *) &rep, 0, xFalse))
++ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue))
+ {
+ UnlockDisplay (dpy);
+ SyncHandle ();
diff --git a/meta/recipes-graphics/xorg-lib/libxcalibrate_git.bb b/meta/recipes-graphics/xorg-lib/libxcalibrate_git.bb
new file mode 100644
index 000000000..8ca731b2e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxcalibrate_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Touchscreen calibration client library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://xcalibrate.h;endline=21;md5=fa572df6439f0f235f2612f370f153d7 \
+ file://xcalibrate.c;endline=21;md5=fa572df6439f0f235f2612f370f153d7"
+
+DEPENDS = "virtual/libx11 calibrateproto libxext"
+
+PV = "0.0+git${SRCPV}"
+PR = "r0"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/libXCalibrate;protocol=git \
+ file://fix-xcb.patch"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-locale += "${datadir}/X11/locale"
diff --git a/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch b/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch
new file mode 100644
index 000000000..9b10d1a26
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch
@@ -0,0 +1,14 @@
+This patch makes the build use its own Xcomposite.h over rather than an
+older Xcomposite.h that might already be installed in the staging dir.
+
+--- libXcomposite-0.4.1/src/Makefile.am.orig 2010-06-27 15:50:05.000000000 +0800
++++ libXcomposite-0.4.1/src/Makefile.am 2010-06-27 15:51:48.000000000 +0800
+@@ -19,7 +19,7 @@
+ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ # PERFORMANCE OF THIS SOFTWARE.
+
+-AM_CFLAGS = $(CWARNFLAGS) $(XCOMPOSITE_CFLAGS) $(X_CFLAGS)
++AM_CFLAGS = -I$(top_srcdir)/include $(CWARNFLAGS) $(XCOMPOSITE_CFLAGS) $(X_CFLAGS)
+ AM_CPPFLAGS = -I$(top_srcdir)/include
+
+ lib_LTLIBRARIES = libXcomposite.la
diff --git a/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.1.bb b/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.1.bb
new file mode 100644
index 000000000..8c5ca022c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "X Composite extension library."
+
+require xorg-lib-common.inc
+
+LICENSE= "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90b90b60eb30f65fc9c2673d7cf59e24"
+
+DEPENDS += " compositeproto virtual/libx11 libxfixes libxext"
+PROVIDES = "xcomposite"
+
+PE = "1"
+PR = "r0"
+
+XORG_PN = "libXcomposite"
+
+SRC_URI += " file://change-include-order.patch"
diff --git a/meta/recipes-graphics/xorg-lib/libxcursor_1.1.10.bb b/meta/recipes-graphics/xorg-lib/libxcursor_1.1.10.bb
new file mode 100644
index 000000000..4b0a3b1ab
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxcursor_1.1.10.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "X cursor management library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8902e6643f7bcd7793b23dcd5d8031a4"
+
+DEPENDS += "libxrender libxfixes"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXcursor"
diff --git a/meta/recipes-graphics/xorg-lib/libxdamage_1.1.2.bb b/meta/recipes-graphics/xorg-lib/libxdamage_1.1.2.bb
new file mode 100644
index 000000000..2ea9891c9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxdamage_1.1.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "X11 damaged region extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10c8c88d1faea6d7c3a82d54c2b8fd2b"
+
+DEPENDS += "damageproto libxfixes"
+PROVIDES = "xdamage"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXdamage"
diff --git a/meta/recipes-graphics/xorg-lib/libxdmcp_1.0.3.bb b/meta/recipes-graphics/xorg-lib/libxdmcp_1.0.3.bb
new file mode 100644
index 000000000..b1648fbf3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxdmcp_1.0.3.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "X Display Manager Control Protocol library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d559fb26e129626022e052a5e6e0e123"
+
+DEPENDS += "xproto"
+PROVIDES = "xdmcp"
+
+PR = "r0"
+PE = "1"
+
+DEPENDS += "gettext"
+
+XORG_PN = "libXdmcp"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxevie_1.0.2.bb b/meta/recipes-graphics/xorg-lib/libxevie_1.0.2.bb
new file mode 100644
index 000000000..6c6b4595a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxevie_1.0.2.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 EvIE extension library"
+DEPENDS += "libxext evieext"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXevie"
diff --git a/meta/recipes-graphics/xorg-lib/libxext_1.1.2.bb b/meta/recipes-graphics/xorg-lib/libxext_1.1.2.bb
new file mode 100644
index 000000000..14e6c1fb7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxext_1.1.2.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "X11 miscellaneous extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c70692f0f710dda89d6cfcc412d8a1aa"
+
+DEPENDS += "xproto virtual/libx11 xextproto libxau libxdmcp"
+PROVIDES = "xext"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXext"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxext_git.bb b/meta/recipes-graphics/xorg-lib/libxext_git.bb
new file mode 100644
index 000000000..d0b3d7fbf
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxext_git.bb
@@ -0,0 +1,14 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 miscellaneous extension library"
+DEPENDS += "xproto virtual/libx11 xextproto libxau libxdmcp"
+PROVIDES = "xext"
+PE = "1"
+PV = "1.0.99.1+gitr${SRCPV}"
+
+XORG_PN = "libXext"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/${XORG_PN};protocol=git"
+S = "${WORKDIR}/git/"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxfixes_4.0.4.bb b/meta/recipes-graphics/xorg-lib/libxfixes_4.0.4.bb
new file mode 100644
index 000000000..b3ee0711d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxfixes_4.0.4.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "X Fixes extension library."
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90b90b60eb30f65fc9c2673d7cf59e24"
+
+DEPENDS += "virtual/libx11 xproto fixesproto xextproto"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXfixes"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxfont/no-scalable-crash.patch b/meta/recipes-graphics/xorg-lib/libxfont/no-scalable-crash.patch
new file mode 100644
index 000000000..90bded6fb
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxfont/no-scalable-crash.patch
@@ -0,0 +1,22 @@
+--- /tmp/fontdir.c 2006-08-01 16:17:22.000000000 +0200
++++ libXfont-1.2.0/src/fontfile/fontdir.c 2006-08-01 16:20:37.248306000 +0200
+@@ -695,6 +695,11 @@
+ */
+ if (isscale)
+ {
++ /* If the fontname says it is scalable, make sure that the
++ * renderer supports OpenScalable and GetInfoScalable.
++ */
++ if (renderer->OpenScalable && renderer->GetInfoScalable)
++ {
+ if (vals.values_supplied & SIZE_SPECIFY_MASK)
+ {
+ bzero((char *)&zeroVals, sizeof(zeroVals));
+@@ -794,6 +799,7 @@
+ bitmap->name.name);
+ }
+ }
++ }
+ }
+ return TRUE;
+ }
diff --git a/meta/recipes-graphics/xorg-lib/libxfont_1.4.2.bb b/meta/recipes-graphics/xorg-lib/libxfont_1.4.2.bb
new file mode 100644
index 000000000..6aa83c4ac
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxfont_1.4.2.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "X11 font rasterisation library"
+
+require xorg-lib-common.inc
+
+LICENSE= "MIT & MIT-style & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=deeee1c29f32ca774cecf0c83b46bb5c"
+
+DEPENDS += "freetype fontcacheproto xtrans fontsproto libfontenc"
+PROVIDES = "xfont"
+
+PR = "r0"
+PE = "1"
+
+#SRC_URI += "file://no-scalable-crash.patch;patch=1"
+
+XORG_PN = "libXfont"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/libxfontcache_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxfontcache_1.0.5.bb
new file mode 100644
index 000000000..97f7ed627
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxfontcache_1.0.5.bb
@@ -0,0 +1,9 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X-TrueType font cache extension client library"
+DEPENDS += "libxext fontcacheproto"
+LIC_FILES_CHKSUM = "file://COPYING;md5=62a75d5d3da40f1f6eb1cbe3bcc0a5d0"
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXfontcache"
diff --git a/meta/recipes-graphics/xorg-lib/libxft_2.1.14.bb b/meta/recipes-graphics/xorg-lib/libxft_2.1.14.bb
new file mode 100644
index 000000000..7f5ccdd0f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxft_2.1.14.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "FreeType-based font drawing library for X"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90b90b60eb30f65fc9c2673d7cf59e24"
+
+DEPENDS += "libxrender freetype fontconfig"
+PROVIDES = "xft"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXft"
+
+python do_package() {
+ if bb.data.getVar('DEBIAN_NAMES', d, 1):
+ bb.data.setVar('PKG_${PN}', 'libxft2', d)
+ bb.build.exec_func('package_do_package', d)
+}
+
+FILES_${PN} = "${libdir}/lib*${SOLIBS}"
+FILES_${PN}-dev = "${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la \
+ ${libdir}/*.a ${libdir}/pkgconfig \
+ ${datadir}/aclocal ${bindir} ${sbindir}"
diff --git a/meta/recipes-graphics/xorg-lib/libxi_1.3.bb b/meta/recipes-graphics/xorg-lib/libxi_1.3.bb
new file mode 100644
index 000000000..bd21eadd1
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxi_1.3.bb
@@ -0,0 +1,13 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Input extension library"
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2aafbfe6127f6f03eb776283e6138cce \
+ file://src/XIGetDevFocus.c;endline=23;md5=cdfb0d435a33ec57ea0d1e8e395b729f"
+
+DEPENDS += "libxext inputproto"
+PE = "1"
+
+XORG_PN = "libXi"
+
diff --git a/meta/recipes-graphics/xorg-lib/libxi_git.bb b/meta/recipes-graphics/xorg-lib/libxi_git.bb
new file mode 100644
index 000000000..30c1778c3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxi_git.bb
@@ -0,0 +1,11 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Input extension library"
+DEPENDS += "libxext inputproto"
+PE = "1"
+PV = "1.2.99.5+gitr${SRCPV}"
+
+XORG_PN = "libXi"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/${XORG_PN};protocol=git"
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/xorg-lib/libxinerama_1.1.bb b/meta/recipes-graphics/xorg-lib/libxinerama_1.1.bb
new file mode 100644
index 000000000..35a967cff
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxinerama_1.1.bb
@@ -0,0 +1,14 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Xinerama extension library"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94 \
+ file://src/Xinerama.c;beginline=2;endline=25;md5=098e0bc089368a988092b3cbda617a57"
+
+DEPENDS += "libxext xineramaproto"
+PROVIDES = "xinerama"
+PR = "r3"
+PE = "1"
+
+XORG_PN = "libXinerama"
diff --git a/meta/recipes-graphics/xorg-lib/libxkbfile_1.0.6.bb b/meta/recipes-graphics/xorg-lib/libxkbfile_1.0.6.bb
new file mode 100644
index 000000000..f46c147e4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxkbfile_1.0.6.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "X11 keyboard file manipulation library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aa32e1b87f1da02948ab7b55e129bf5f"
+
+DEPENDS += "virtual/libx11 kbproto"
+
+PR = "r0"
+PE = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/meta/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
new file mode 100644
index 000000000..9a3f5f132
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 keyboard UI presentation library"
+LICENSE= "GPL"
+DEPENDS += "virtual/libx11 libxt libxkbfile"
+PROVIDES = "xkbui"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-lib/libxmu_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxmu_1.0.5.bb
new file mode 100644
index 000000000..761746e2c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxmu_1.0.5.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "X11 miscellaneous utility library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bb8d1df693806ad17c7268086f1d5394"
+
+DEPENDS += "libxt libxext"
+PROVIDES = "xmu"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXmu"
+
+LEAD_SONAME = "libXmu"
+
+PACKAGES =+ "libxmuu libxmuu-dev"
+
+FILES_libxmuu = "${libdir}/libXmuu.so.*"
+FILES_libxmuu-dev = "${libdir}/libXmuu.so"
diff --git a/meta/recipes-graphics/xorg-lib/libxp_1.0.0.bb b/meta/recipes-graphics/xorg-lib/libxp_1.0.0.bb
new file mode 100644
index 000000000..7d3b87473
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxp_1.0.0.bb
@@ -0,0 +1,15 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X Printing Extension (Xprint) client library"
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=329e54eb6793b3d4830a4f6f1ca16e3f \
+ file://src/XpPage.c;beginline=2;endline=37;md5=886b68ac3721003d54abfbd82bafc5ad"
+
+DEPENDS += "libxext libxau printproto"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXp"
+
+CFLAGS_append += " -I ${S}/include/X11/XprintUtil -I ${S}/include/X11/extensions"
diff --git a/meta/recipes-graphics/xorg-lib/libxpm_3.5.7.bb b/meta/recipes-graphics/xorg-lib/libxpm_3.5.7.bb
new file mode 100644
index 000000000..75c10bf2c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxpm_3.5.7.bb
@@ -0,0 +1,13 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Pixmap library"
+LICENSE = "X-BSD"
+DEPENDS += "libxext libsm libxt"
+PR = "r3"
+PE = "1"
+
+XORG_PN = "libXpm"
+
+PACKAGES =+ "sxpm cxpm"
+FILES_cxpm = "${bindir}/cxpm"
+FILES_sxpm = "${bindir}/sxpm"
diff --git a/meta/recipes-graphics/xorg-lib/libxprintapputil_1.0.1.bb b/meta/recipes-graphics/xorg-lib/libxprintapputil_1.0.1.bb
new file mode 100644
index 000000000..3a24a888d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxprintapputil_1.0.1.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "Xprint job utility client library"
+DEPENDS += "libxp libxt libxprintutil"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXprintAppUtil"
diff --git a/meta/recipes-graphics/xorg-lib/libxprintutil_1.0.1.bb b/meta/recipes-graphics/xorg-lib/libxprintutil_1.0.1.bb
new file mode 100644
index 000000000..327138e7f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxprintutil_1.0.1.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "Xprint printer utility client library"
+DEPENDS += "libxp libxt"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXprintUtil"
diff --git a/meta/recipes-graphics/xorg-lib/libxrandr_1.3.0.bb b/meta/recipes-graphics/xorg-lib/libxrandr_1.3.0.bb
new file mode 100644
index 000000000..461dff424
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxrandr_1.3.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "X11 Resize and Rotate extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=660ef232af253760087c069d76287b85"
+
+DEPENDS += "randrproto libxrender libxext"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXrandr"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxrender_0.9.5.bb b/meta/recipes-graphics/xorg-lib/libxrender_0.9.5.bb
new file mode 100644
index 000000000..662796e90
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxrender_0.9.5.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "X11 Rendering Extension client library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90b90b60eb30f65fc9c2673d7cf59e24"
+
+DEPENDS += "virtual/libx11 renderproto xproto xdmcp"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXrender"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxres_1.0.4.bb b/meta/recipes-graphics/xorg-lib/libxres_1.0.4.bb
new file mode 100644
index 000000000..5c8c47ccb
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxres_1.0.4.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "X11 Resource extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8c89441a8df261bdc56587465e13c7fa"
+
+DEPENDS += "libxext resourceproto"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXres"
diff --git a/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.0.bb b/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.0.bb
new file mode 100644
index 000000000..ff22c337a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.0.bb
@@ -0,0 +1,11 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X Screen Saver extension library"
+LICENSE = "GPL"
+DEPENDS += "libxext scrnsaverproto"
+PROVIDES = "libxss"
+RREPLACES = "libxss"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXScrnSaver"
diff --git a/meta/recipes-graphics/xorg-lib/libxt_1.0.8.bb b/meta/recipes-graphics/xorg-lib/libxt_1.0.8.bb
new file mode 100644
index 000000000..a35d03eb0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxt_1.0.8.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "X11 toolkit intrinsics library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0629f81eb944a4317bc6fe134614769f"
+
+
+DEPENDS += "libsm virtual/libx11 kbproto libxdmcp"
+PROVIDES = "xt"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXt"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF += "--disable-install-makestrs --disable-xkb"
+
+do_compile() {
+ (
+ unset CC LD CXX CCLD CFLAGS
+ oe_runmake -C util 'XT_CFLAGS=' 'CC=${BUILD_CC}' 'LD=${BUILD_LD}' 'CXX=${BUILD_CXX}' 'CCLD=${BUILD_CCLD}' 'CFLAGS=-D_GNU_SOURCE -I${STAGING_INCDIR_NATIVE} ${BUILD_CFLAGS}' 'LDFLAGS=${BUILD_LDFLAGS}' 'CXXFLAGS=${BUILD_CXXFLAGS}' 'CPPFLAGS=${BUILD_CPPFLAGS}' makestrs
+ )
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+ oe_runmake
+}
diff --git a/meta/recipes-graphics/xorg-lib/libxtrap_1.0.0.bb b/meta/recipes-graphics/xorg-lib/libxtrap_1.0.0.bb
new file mode 100644
index 000000000..7a25ae5bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxtrap_1.0.0.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 event trapping extension library"
+DEPENDS += "libxt trapproto libxext"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXTrap"
diff --git a/meta/recipes-graphics/xorg-lib/libxtst_1.1.0.bb b/meta/recipes-graphics/xorg-lib/libxtst_1.1.0.bb
new file mode 100644
index 000000000..bd18fb3c6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxtst_1.1.0.bb
@@ -0,0 +1,14 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X Test Extension: client side library"
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cba677ca25c42ad29ee8ff351b50ece8 \
+ file://src/XTest.c;beginline=2;endline=32;md5=1491d278aeb574e84c5235eb44cdac74"
+
+DEPENDS += "libxext recordproto inputproto libxi"
+PROVIDES = "xtst"
+PR = "r2"
+PE = "1"
+
+XORG_PN = "libXtst"
diff --git a/meta/recipes-graphics/xorg-lib/libxv_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxv_1.0.5.bb
new file mode 100644
index 000000000..d6e5777bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxv_1.0.5.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "X11 Video extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=916ffd3d79baef9fb56d2c2af28f93f2"
+
+DEPENDS += "libxext videoproto"
+
+PR = "r0"
+
+XORG_PN = "libXv"
diff --git a/meta/recipes-graphics/xorg-lib/libxvmc_1.0.5.bb b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.5.bb
new file mode 100644
index 000000000..7a8013fa5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.5.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "X Video Motion Compensation extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94 \
+ file://src/XvMCWrapper.c;endline=26;md5=5151daa8172a3f1bb0cb0e0ff157d9de"
+
+DEPENDS += "libxext libxv videoproto"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXvMC"
diff --git a/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.1.bb b/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.1.bb
new file mode 100644
index 000000000..6d5bd6aaa
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.1.bb
@@ -0,0 +1,10 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Direct Graphics Access extension library"
+DEPENDS += "libxext xf86dgaproto"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "libXxf86dga"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=978fbe536ab97ed49f45ba81159fe4b3"
diff --git a/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.2.bb b/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.2.bb
new file mode 100644
index 000000000..8284dac23
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "X11 XFree86 miscellaneous extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=27c91ecc435bd3d2bfad868914c94b45"
+
+DEPENDS += "libxext xf86miscproto"
+PROVIDES = "xxf86misc"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXxf86misc"
diff --git a/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.0.bb b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.0.bb
new file mode 100644
index 000000000..7dc4a3a12
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "X11 XFree86 video mode extension library"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=de77b7cff98cf5d7a9a148069ebb4e1a"
+
+DEPENDS += "libxext xf86vidmodeproto"
+
+PR = "r0"
+PE = "1"
+
+XORG_PN = "libXxf86vm"
diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.18.2.bb b/meta/recipes-graphics/xorg-lib/pixman_0.18.2.bb
new file mode 100644
index 000000000..3bc1f0202
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/pixman_0.18.2.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Library for lowlevel pixel operations"
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style & Public Domain"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fea989a44fb012b5e79584972a863d22 \
+ file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \
+ file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
+ file://pixman/pixman-x64-mmx-emulation.h;beginline=4;endline=9;md5=4e32716f2efaa6c4659222667c339bb8"
+
+DEPENDS = "virtual/libx11"
+
+PR="r0"
+
+EXTRA_OECONF="--disable-gtk"
diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_1.9.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_1.9.bb
new file mode 100644
index 000000000..0e59bd506
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/xkeyboard-config_1.9.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Keyboard configuration database for X Window"
+HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config"
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
+
+SRC_URI = "http://people.freedesktop.org/~svu/xkeyboard-config-${PV}.tar.bz2"
+SECTION = "x11/libs"
+DEPENDS = "intltool xkbcomp-native glib-2.0"
+
+PR = "r0"
+
+EXTRA_OECONF = "--with-xkb-rules-symlink=xorg"
+
+RDEPENDS_${PN} += "xkbcomp"
+FILES_${PN} += "${datadir}/X11/xkb"
+
+inherit autotools pkgconfig
+
+do_install_append () {
+ install -d ${D}/usr/share/X11/xkb/compiled
+ cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg
+}
diff --git a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
new file mode 100644
index 000000000..4ed8c866e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
@@ -0,0 +1,16 @@
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-X"
+DEPENDS = "util-macros"
+
+XORG_PN = "${BPN}"
+
+SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-malloc0returnsnull"
diff --git a/meta/recipes-graphics/xorg-lib/xtrans/abstract_socket_fix.patch b/meta/recipes-graphics/xorg-lib/xtrans/abstract_socket_fix.patch
new file mode 100644
index 000000000..197da0735
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/xtrans/abstract_socket_fix.patch
@@ -0,0 +1,58 @@
+From 556a351de83fc6f401b02213dae95731553c216d Mon Sep 17 00:00:00 2001
+From: Loïc Minier <lool@dooz.org>
+Date: Mon, 24 Mar 2008 19:38:27 +0000
+Subject: Bug #10489: Don't retry unix socket connect()s on ENOENT.
+
+If the socket isn't there, it's not gonna magically appear. Either it's
+a server socket and you should have just waited for the SIGUSR1 from the
+server, or it's a stale reference to an ICE socket.
+
+However, do retry once, so fallback from abstract to filesystem namespace
+works.
+
+Originally Debian bug #385976.
+---
+diff --git a/Xtranssock.c b/Xtranssock.c
+index 8a7d2ec..da4afe9 100644
+--- a/Xtranssock.c
++++ b/Xtranssock.c
+@@ -2146,8 +2146,13 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
+ errno = olderrno;
+
+ /*
+- * If the error was ENOENT, the server may be starting up
+- * and we should try again.
++ * If the error was ENOENT, the server may be starting up; we used
++ * to suggest to try again in this case with
++ * TRANS_TRY_CONNECT_AGAIN, but this introduced problems for
++ * processes still referencing stale sockets in their environment.
++ * Hence, we now return a hard error, TRANS_CONNECT_FAILED, and it
++ * is suggested that higher level stacks handle retries on their
++ * level when they face a slow starting server.
+ *
+ * If the error was EWOULDBLOCK or EINPROGRESS then the socket
+ * was non-blocking and we should poll using select
+@@ -2161,14 +2166,14 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
+ else if (olderrno == EINTR)
+ return TRANS_TRY_CONNECT_AGAIN;
+ else if (olderrno == ENOENT) {
+- /*
+- * If opening as abstract socket failed, try again "normally"
+- */
+- if (abstract)
++ /* If opening as abstract socket failed, try again normally */
++ if (abstract) {
+ ciptr->transptr->flags &= ~(TRANS_ABSTRACT);
+- return TRANS_TRY_CONNECT_AGAIN;
+- }
+- else {
++ return TRANS_TRY_CONNECT_AGAIN;
++ } else {
++ return TRANS_CONNECT_FAILED;
++ }
++ } else {
+ PRMSG (2,"SocketUNIXConnect: Can't connect: errno = %d\n",
+ EGET(),0, 0);
+
+--
+cgit v0.7.2-37-g538c
diff --git a/meta/recipes-graphics/xorg-lib/xtrans_1.2.5.bb b/meta/recipes-graphics/xorg-lib/xtrans_1.2.5.bb
new file mode 100644
index 000000000..52609b7e2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/xtrans_1.2.5.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "network API translation layer to insulate X applications and \
+libraries from OS network vageries."
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e334229ea6378ccb4a6202d7b715831c"
+
+PE = "1"
+PR = "r0"
+
+RDEPENDS_${PN}-dev = ""
+DEPENDS += "gettext"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/applewmproto_1.4.1.bb b/meta/recipes-graphics/xorg-proto/applewmproto_1.4.1.bb
new file mode 100644
index 000000000..9f09fff7b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/applewmproto_1.4.1.bb
@@ -0,0 +1,4 @@
+require xorg-proto-common.inc
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.0.bb b/meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.0.bb
new file mode 100644
index 000000000..0ea0729bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.0.bb
@@ -0,0 +1,12 @@
+require xorg-proto-common.inc
+
+PR = "r2"
+PE = "1"
+
+DEPENDS += "gettext"
+
+DESCRIPTION = "X.Org BigReqs extension headers"
+
+BBCLASSEXTEND = "native nativesdk"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b12715630da6f268d0d3712ee1a504f4"
diff --git a/meta/recipes-graphics/xorg-proto/calibrateproto/fix.patch b/meta/recipes-graphics/xorg-proto/calibrateproto/fix.patch
new file mode 100644
index 000000000..0c85cb0cc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/calibrateproto/fix.patch
@@ -0,0 +1,40 @@
+Add missing length fields to the replies. Without these, sanity checking in recent X
+breaks things.
+
+RP 11/2/10
+
+
+Index: git/xcalibrateproto.h
+===================================================================
+--- git.orig/xcalibrateproto.h 2010-02-11 11:47:45.711985932 +0000
++++ git/xcalibrateproto.h 2010-02-11 11:40:21.000000000 +0000
+@@ -67,13 +67,13 @@
+ BYTE type; /* X_Reply */
+ BYTE pad1;
+ CARD16 sequenceNumber B16;
++ CARD32 length;
+ CARD32 status;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+- CARD32 pad7 B32;
+ } xXCalibrateRawModeReply;
+
+ #define sz_xXCalibrateRawModeReply 32
+@@ -92,13 +92,13 @@
+ BYTE type; /* X_Reply */
+ BYTE pad1;
+ CARD16 sequenceNumber B16;
++ CARD32 length;
+ CARD32 x;
+ CARD32 y;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+- CARD32 pad6 B32;
+ } xXCalibrateScreenToCoordReply;
+
+ #define sz_xXCalibrateScreenToCoordReply 32
diff --git a/meta/recipes-graphics/xorg-proto/calibrateproto_git.bb b/meta/recipes-graphics/xorg-proto/calibrateproto_git.bb
new file mode 100644
index 000000000..9fd5c3fe0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/calibrateproto_git.bb
@@ -0,0 +1,14 @@
+require xorg-proto-common.inc
+
+DESCRIPTION = "Touchscreen calibration protocol"
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://xcalibratewire.h;endline=23;md5=7f86ef7b03cce6c4c9ebd59d20ca485f \
+ file://xcalibrateproto.h;endline=23;md5=e4490491edcc171ca24f98569ee580db"
+
+PV = "0.0+git${SRCPV}"
+PR = "r2"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/calibrateproto;protocol=git \
+ file://fix.patch;apply=yes"
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/xorg-proto/compositeproto_0.4.bb b/meta/recipes-graphics/xorg-proto/compositeproto_0.4.bb
new file mode 100644
index 000000000..191053b1c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/compositeproto_0.4.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8cdfa47489609f305b91521f3a8803f \
+ file://composite.h;endline=43;md5=11420a347713de702a1fe60949085464"
+
+CONFLICTS = "compositeext"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/damageproto_1.2.0.bb b/meta/recipes-graphics/xorg-proto/damageproto_1.2.0.bb
new file mode 100644
index 000000000..af61d03af
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/damageproto_1.2.0.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d5f5a2de65c3a84cbde769f07a769608 \
+ file://damagewire.h;endline=23;md5=4a4501a592dbc7de5ce89255e50d0296"
+
+CONFLICTS = "damageext"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/dmxproto_2.3.bb b/meta/recipes-graphics/xorg-proto/dmxproto_2.3.bb
new file mode 100644
index 000000000..635c63f99
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/dmxproto_2.3.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a3c3499231a8035efd0e004cfbd3b72a \
+ file://dmxproto.h;endline=32;md5=ab8509955c3dd4c65fac728e1b367bc4"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/dri2proto_2.3.bb b/meta/recipes-graphics/xorg-proto/dri2proto_2.3.bb
new file mode 100644
index 000000000..048c27f55
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/dri2proto_2.3.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "DRI2 extension headers"
+
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2e396fa91834f8786032cad2da5638f3 \
+ file://dri2proto.h;endline=31;md5=22f28bf68d01b533f26195e94b3ed8ca"
+
+PR = "r0"
diff --git a/meta/recipes-graphics/xorg-proto/dri2proto_git.bb b/meta/recipes-graphics/xorg-proto/dri2proto_git.bb
new file mode 100644
index 000000000..a5ad7d091
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/dri2proto_git.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "DRI2 extension headers"
+
+require xorg-proto-common.inc
+
+PV = "1.99.3+git${SRCPV}"
+PR = "r2"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/dri2proto;protocol=git"
+
+S = "${WORKDIR}/git"
+
diff --git a/meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb b/meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb
new file mode 100644
index 000000000..16f9039b9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+DESCRIPTION = "X EVIE extension headers"
+
+PR = "r1"
+PE = "1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6cf85dc8217152304ac976db1e240ebe"
diff --git a/meta/recipes-graphics/xorg-proto/fixesproto_4.1.1.bb b/meta/recipes-graphics/xorg-proto/fixesproto_4.1.1.bb
new file mode 100644
index 000000000..cb709f784
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/fixesproto_4.1.1.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ae2c93d7226d1ed33287c3924ca61816 \
+ file://xfixesproto.h;endline=41;md5=fa6bf4d92ae4dd0c1cac511105e541d2"
+
+CONFLICTS = "fixesext"
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/fontcacheproto_0.1.3.bb b/meta/recipes-graphics/xorg-proto/fontcacheproto_0.1.3.bb
new file mode 100644
index 000000000..302e84a56
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/fontcacheproto_0.1.3.bb
@@ -0,0 +1,10 @@
+require xorg-proto-common.inc
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ba9fcd8fe6d09af9f733daccc1a21857 \
+ file://fontcacheP.h;endline=28;md5=85c80bfa96c802ee85a570862ee60214"
+
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-proto/fontsproto_2.1.0.bb b/meta/recipes-graphics/xorg-proto/fontsproto_2.1.0.bb
new file mode 100644
index 000000000..74b2fed79
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/fontsproto_2.1.0.bb
@@ -0,0 +1,10 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c3e48aa9ce868c8e90f0401db41c11a2 \
+ file://FSproto.h;endline=44;md5=d2e58e27095e5ea7d4ad456ccb91986c"
+
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-proto/glproto_1.4.11.bb b/meta/recipes-graphics/xorg-proto/glproto_1.4.11.bb
new file mode 100644
index 000000000..c1ade41f2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/glproto_1.4.11.bb
@@ -0,0 +1,10 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94 \
+ file://glxproto.h;beginline=4;endline=32;md5=6b79c570f644363b356456e7d44471d9"
+
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/inputproto_2.0.bb b/meta/recipes-graphics/xorg-proto/inputproto_2.0.bb
new file mode 100644
index 000000000..f3332a8ca
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/inputproto_2.0.bb
@@ -0,0 +1,12 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b9f79c119df756aeffcb89ec96716a9e \
+ file://XI2proto.h;endline=48;md5=1ac1581e61188da2885cc14ff49b20be"
+
+PR = "r2"
+PE = "1"
+
+inherit gettext
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/inputproto_git.bb b/meta/recipes-graphics/xorg-proto/inputproto_git.bb
new file mode 100644
index 000000000..a97fb0bfa
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/inputproto_git.bb
@@ -0,0 +1,12 @@
+require xorg-proto-common.inc
+
+PR = "r1"
+PE = "1"
+PV = "1.9.99.12+git${SRCPV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/inputproto;protocol=git"
+S = "${WORKDIR}/git"
+
+inherit gettext
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/kbproto_1.0.4.bb b/meta/recipes-graphics/xorg-proto/kbproto_1.0.4.bb
new file mode 100644
index 000000000..b49d5a692
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/kbproto_1.0.4.bb
@@ -0,0 +1,12 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7dd6ea99e2a83a552c02c80963623c38 \
+ file://XKBproto.h;beginline=2;endline=26;md5=5744eeff407aeb6e7a1346eebab486a2"
+
+PR = "r2"
+PE = "1"
+
+DEPENDS += "gettext"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/printproto_1.0.4.bb b/meta/recipes-graphics/xorg-proto/printproto_1.0.4.bb
new file mode 100644
index 000000000..194abbafc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/printproto_1.0.4.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2363c155fd3749a8cf436ef56c3070f \
+ file://Print.h;beginline=2;endline=59;md5=1a2ee3cbfe3e38e136ff1b8477b51f4a"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/randrproto_1.3.1.bb b/meta/recipes-graphics/xorg-proto/randrproto_1.3.1.bb
new file mode 100644
index 000000000..725be1d70
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/randrproto_1.3.1.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5fa3f85d9eefaa3a945071485be11343 \
+ file://randrproto.h;endline=30;md5=3885957c6048fdf3310ac8ba54ca2c3f"
+
+CONFLICTS = "randrext"
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/recordproto_1.14.bb b/meta/recipes-graphics/xorg-proto/recordproto_1.14.bb
new file mode 100644
index 000000000..abb91d769
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/recordproto_1.14.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=575827a0f554bbed332542976d5f3d40 \
+ file://recordproto.h;endline=19;md5=1cbb0dd45a0b060ff833901620a3e738"
+
+CONFLICTS = "recordext"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/renderproto_0.11.bb b/meta/recipes-graphics/xorg-proto/renderproto_0.11.bb
new file mode 100644
index 000000000..afdbb0509
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/renderproto_0.11.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f826d99765196352e6122a406cf0d024 \
+ file://renderproto.h;beginline=4;endline=24;md5=3e5e2851dad240b0a3a27c4776b4fd1f"
+
+CONFLICTS = "renderext"
+PR = "r1"
+PE = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/resourceproto_1.1.0.bb b/meta/recipes-graphics/xorg-proto/resourceproto_1.1.0.bb
new file mode 100644
index 000000000..702e8f36f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/resourceproto_1.1.0.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e01e66e4b317088cf869bc98e6af4fb6"
+
+CONFLICTS = "resourceext"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/scrnsaverproto_1.2.0.bb b/meta/recipes-graphics/xorg-proto/scrnsaverproto_1.2.0.bb
new file mode 100644
index 000000000..cd992516e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/scrnsaverproto_1.2.0.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eed49b78b15b436c933b6b8b054e3901 \
+ file://saverproto.h;endline=26;md5=a84c0637305159f3c0ab173aaeede48d"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/trapproto_3.4.3.bb b/meta/recipes-graphics/xorg-proto/trapproto_3.4.3.bb
new file mode 100644
index 000000000..c152be703
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/trapproto_3.4.3.bb
@@ -0,0 +1,7 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0a984c8e242256a12f3b8dac085893db"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/videoproto_2.3.0.bb b/meta/recipes-graphics/xorg-proto/videoproto_2.3.0.bb
new file mode 100644
index 000000000..baedc281c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/videoproto_2.3.0.bb
@@ -0,0 +1,7 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59d089e37bf57b5206602da38f58ca5d"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/windowswmproto_1.0.4.bb b/meta/recipes-graphics/xorg-proto/windowswmproto_1.0.4.bb
new file mode 100644
index 000000000..9f09fff7b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/windowswmproto_1.0.4.bb
@@ -0,0 +1,4 @@
+require xorg-proto-common.inc
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xcmiscproto_1.2.0.bb b/meta/recipes-graphics/xorg-proto/xcmiscproto_1.2.0.bb
new file mode 100644
index 000000000..1ed5a5f31
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xcmiscproto_1.2.0.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=09d83047c15994e05db29b423ed6662e"
+
+PR = "r2"
+PE = "1"
+
+DEPENDS += "gettext"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/xextproto_7.1.1.bb b/meta/recipes-graphics/xorg-proto/xextproto_7.1.1.bb
new file mode 100644
index 000000000..157f07030
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xextproto_7.1.1.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=86f273291759d0ba2a22585cd1c06c53"
+
+PR = "r0"
+PE = "1"
+
+inherit gettext
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/xf86bigfontproto_1.2.0.bb b/meta/recipes-graphics/xorg-proto/xf86bigfontproto_1.2.0.bb
new file mode 100644
index 000000000..f038a1c29
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86bigfontproto_1.2.0.bb
@@ -0,0 +1,11 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e01e66e4b317088cf869bc98e6af4fb6"
+
+PR = "r1"
+PE = "1"
+
+DEPENDS += "gettext"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/xf86dgaproto_2.1.bb b/meta/recipes-graphics/xorg-proto/xf86dgaproto_2.1.bb
new file mode 100644
index 000000000..c400193a0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86dgaproto_2.1.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e01e66e4b317088cf869bc98e6af4fb6"
+
+CONFLICTS = "xxf86dgaext"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xf86driproto_2.1.0.bb b/meta/recipes-graphics/xorg-proto/xf86driproto_2.1.0.bb
new file mode 100644
index 000000000..6f31845b8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86driproto_2.1.0.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94 \
+ file://xf86driproto.h;endline=35;md5=42be3d8e6d429ab79172572bb0cff544"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xf86miscproto_0.9.3.bb b/meta/recipes-graphics/xorg-proto/xf86miscproto_0.9.3.bb
new file mode 100644
index 000000000..9ea07806f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86miscproto_0.9.3.bb
@@ -0,0 +1,7 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e01e66e4b317088cf869bc98e6af4fb6"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xf86rushproto_1.1.2.bb b/meta/recipes-graphics/xorg-proto/xf86rushproto_1.1.2.bb
new file mode 100644
index 000000000..9ea07806f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86rushproto_1.1.2.bb
@@ -0,0 +1,7 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e01e66e4b317088cf869bc98e6af4fb6"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xf86vidmodeproto_2.3.bb b/meta/recipes-graphics/xorg-proto/xf86vidmodeproto_2.3.bb
new file mode 100644
index 000000000..ccbbb36f1
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xf86vidmodeproto_2.3.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=499be2ff387a42f84628c35f311f1502"
+
+CONFLICTS = "xxf86vmext"
+
+PR = "r0"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.bb b/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.bb
new file mode 100644
index 000000000..d053dbbcd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.bb
@@ -0,0 +1,8 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3e397a5326c83d5d0ebf5b3f87163ac6 \
+ file://panoramiXproto.h;endline=24;md5=098e0bc089368a988092b3cbda617a57"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc b/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
new file mode 100644
index 000000000..92aa1fe6d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "X protocol headers: ${XORG_PN}"
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-X"
+
+XORG_PN = "${BPN}"
+
+SRC_URI = "${XORG_MIRROR}/individual/proto/${XORG_PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+DEPENDS = "util-macros"
+
+inherit autotools pkgconfig
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
diff --git a/meta/recipes-graphics/xorg-proto/xproto_7.0.17.bb b/meta/recipes-graphics/xorg-proto/xproto_7.0.17.bb
new file mode 100644
index 000000000..c145b60b2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xproto_7.0.17.bb
@@ -0,0 +1,9 @@
+require xorg-proto-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=70c104816b85de375ba1fc09199d0e69"
+
+PR = "r0"
+PE = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb b/meta/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb
new file mode 100644
index 000000000..9c3d9efa7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb
@@ -0,0 +1,5 @@
+require xorg-proto-common.inc
+
+PROVIDES="xproxymngproto"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-util/gccmakedep_1.0.2.bb b/meta/recipes-graphics/xorg-util/gccmakedep_1.0.2.bb
new file mode 100644
index 000000000..b1035676c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/gccmakedep_1.0.2.bb
@@ -0,0 +1,8 @@
+require xorg-util-common.inc
+
+DESCRIPTION = "create dependencies in makefiles using 'gcc -M'"
+DEPENDS = "util-macros"
+RDEPENDS = "gcc"
+
+PR = "r2"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-util/imake_1.0.2.bb b/meta/recipes-graphics/xorg-util/imake_1.0.2.bb
new file mode 100644
index 000000000..e533ece46
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/imake_1.0.2.bb
@@ -0,0 +1,8 @@
+require xorg-util-common.inc
+
+DESCRIPTION = "C preprocessor interface to the make utility"
+DEPENDS = "util-macros"
+RDEPENDS = "perl xproto"
+
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-util/lndir_1.0.1.bb b/meta/recipes-graphics/xorg-util/lndir_1.0.1.bb
new file mode 100644
index 000000000..b7bd0ad54
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/lndir_1.0.1.bb
@@ -0,0 +1,6 @@
+require xorg-util-common.inc
+
+DESCRIPTION = "create a shadow directory of symbolic links to another directory tree"
+DEPENDS += "xproto util-macros"
+PR = "r1"
+PE = "1"
diff --git a/meta/recipes-graphics/xorg-util/makedepend_1.0.2.bb b/meta/recipes-graphics/xorg-util/makedepend_1.0.2.bb
new file mode 100644
index 000000000..7d6a5355a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/makedepend_1.0.2.bb
@@ -0,0 +1,8 @@
+require xorg-util-common.inc
+
+DESCRIPTION = "create dependencies in makefiles"
+DEPENDS = "xproto util-macros"
+PR = "r2"
+PE = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-util/util-macros/xaw.patch b/meta/recipes-graphics/xorg-util/util-macros/xaw.patch
new file mode 100644
index 000000000..8b39869cc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/util-macros/xaw.patch
@@ -0,0 +1,14 @@
+Index: util-macros-1.2.1/xorg-macros.m4.in
+===================================================================
+--- util-macros-1.2.1.orig/xorg-macros.m4.in 2009-01-15 13:49:56.000000000 +0000
++++ util-macros-1.2.1/xorg-macros.m4.in 2009-01-15 13:52:22.000000000 +0000
+@@ -456,3 +456,9 @@
+ fi
+ AC_SUBST(CWARNFLAGS)
+ ]) # XORG_CWARNFLAGS
++
++AC_DEFUN([XAW_CHECK_XPRINT_SUPPORT], [
++PKG_CHECK_MODULES(TMP_XAW, xaw7)
++$1_CFLAGS=$TMP_XAW_CFLAGS
++$1_LIBS=$TMP_XAW_LIBS
++])
diff --git a/meta/recipes-graphics/xorg-util/util-macros_1.10.0.bb b/meta/recipes-graphics/xorg-util/util-macros_1.10.0.bb
new file mode 100644
index 000000000..d3bf613a6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/util-macros_1.10.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "X autotools macros"
+
+require xorg-util-common.inc
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b8b2965be9997891cf7ddccdfb242ca8"
+
+PE = "1"
+PR = "r0"
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+DEPENDS = "gettext"
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-util/xorg-cf-files_1.0.3.bb b/meta/recipes-graphics/xorg-util/xorg-cf-files_1.0.3.bb
new file mode 100644
index 000000000..7c3fb8d7e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/xorg-cf-files_1.0.3.bb
@@ -0,0 +1,8 @@
+require xorg-util-common.inc
+
+DESCRIPTION = "X Window System CF files"
+
+PR = "r1"
+PE = "1"
+
+FILES_${PN} += " /usr/lib/X11/config"
diff --git a/meta/recipes-graphics/xorg-util/xorg-util-common.inc b/meta/recipes-graphics/xorg-util/xorg-util-common.inc
new file mode 100644
index 000000000..18d022c49
--- /dev/null
+++ b/meta/recipes-graphics/xorg-util/xorg-util-common.inc
@@ -0,0 +1,13 @@
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/utils"
+LICENSE = "MIT-X"
+
+XORG_PN = "${BPN}"
+
+SRC_URI = "${XORG_MIRROR}/individual/util/${XORG_PN}-${PV}.tar.gz"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-graphics/xorg-xserver/files/macro_tweak.patch b/meta/recipes-graphics/xorg-xserver/files/macro_tweak.patch
new file mode 100644
index 000000000..6998adffe
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/files/macro_tweak.patch
@@ -0,0 +1,18 @@
+Index: xorg-server-1.5.0/xorg-server.m4
+===================================================================
+--- xorg-server-1.5.0.orig/xorg-server.m4 2007-05-29 20:36:51.000000000 +0100
++++ xorg-server-1.5.0/xorg-server.m4 2008-11-04 23:56:55.000000000 +0000
+@@ -28,9 +28,12 @@
+ # Checks for the $1 define in xorg-server.h (from the sdk). If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+
++m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
++
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
++ PKG_PROG_PKG_CONFIG
+ SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
++ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-builtin-fonts.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-builtin-fonts.patch
new file mode 100644
index 000000000..13a6c2c95
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch
new file mode 100644
index 000000000..8ec3a37c7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch
@@ -0,0 +1,11 @@
+Index: xorg-server-1.2.0/hw/kdrive/Makefile.am
+===================================================================
+--- xorg-server-1.2.0.orig/hw/kdrive/Makefile.am 2007-03-28 17:11:38.000000000 +0200
++++ xorg-server-1.2.0/hw/kdrive/Makefile.am 2007-03-28 17:12:28.000000000 +0200
+@@ -1,5 +1,5 @@
+ if KDRIVEFBDEV
+-FBDEV_SUBDIRS = fbdev
++FBDEV_SUBDIRS = fbdev epson
+ endif
+
+ if KDRIVEIMAGEON
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch
new file mode 100644
index 000000000..9a59530ed
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch
@@ -0,0 +1,12 @@
+Index: xorg-server-1.2.0/configure.ac
+===================================================================
+--- xorg-server-1.2.0.orig/configure.ac 2007-03-29 13:28:10.000000000 +0200
++++ xorg-server-1.2.0/configure.ac 2007-03-29 13:28:35.000000000 +0200
+@@ -1517,6 +1517,7 @@
+ AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
+ fi
+ AC_DEFINE(TSLIB, 1, [Have tslib support])
++ AC_DEFINE(TOUCHSCREEN, 1, [Have touchscreen support])
+ fi
+
+ # damage shadow extension glx (NOTYET) fb mi
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch
new file mode 100644
index 000000000..5a971002c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch
@@ -0,0 +1,110 @@
+---
+ Xext/Makefile.am | 6 ++++++
+ configure.ac | 11 +++++++++--
+ include/kdrive-config.h.in | 3 +++
+ mi/miinitext.c | 6 ++++++
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.3.0.0/mi/miinitext.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/mi/miinitext.c 2006-11-16 18:01:26.000000000 +0000
++++ xorg-server-1.3.0.0/mi/miinitext.c 2008-01-11 13:45:57.000000000 +0000
+@@ -372,6 +372,9 @@ extern void ResExtensionInit(INITARGS);
+ #ifdef DMXEXT
+ extern void DMXExtensionInit(INITARGS);
+ #endif
++#ifdef XCALIBRATE
++extern void XCalibrateExtensionInit(INITARGS);
++#endif
+ #ifdef XEVIE
+ extern void XevieExtensionInit(INITARGS);
+ #endif
+@@ -663,6 +666,9 @@ InitExtensions(argc, argv)
+ #ifdef DAMAGE
+ if (!noDamageExtension) DamageExtensionInit();
+ #endif
++#ifdef XCALIBRATE
++ XCalibrateExtensionInit ();
++#endif
+ }
+
+ void
+Index: xorg-server-1.3.0.0/configure.ac
+===================================================================
+--- xorg-server-1.3.0.0.orig/configure.ac 2008-01-11 13:45:57.000000000 +0000
++++ xorg-server-1.3.0.0/configure.ac 2008-01-11 13:45:58.000000000 +0000
+@@ -421,6 +421,7 @@ AC_ARG_ENABLE(xf86vidmode, AS_HELP_ST
+ AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: enabled)]), [XF86MISC=$enableval], [XF86MISC=yes])
+ AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes])
+ AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=$XACE])
++AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=$XCSECURITY])
+ AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no])
+@@ -653,6 +654,12 @@ if test "x$XCSECURITY" = xyes; then
+ 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 xcalibrateproto"
++fi
++
+ AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes])
+ if test "x$XEVIE" = xyes; then
+ AC_DEFINE(XEVIE, 1, [Build XEvIE extension])
+@@ -1519,7 +1526,7 @@ if test "$KDRIVE" = yes; then
+
+ # tslib...
+ if test "x$TSLIB" = xyes; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
+ fi
+@@ -1547,7 +1554,7 @@ if test "$KDRIVE" = yes; then
+ ;;
+ esac
+ 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 $TSLIB_LIBS"
++ KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB $TSLIB_LIBS"
+
+ # check if we can build Xephyr
+ PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
+Index: xorg-server-1.3.0.0/include/kdrive-config.h.in
+===================================================================
+--- xorg-server-1.3.0.0.orig/include/kdrive-config.h.in 2006-11-16 18:01:26.000000000 +0000
++++ xorg-server-1.3.0.0/include/kdrive-config.h.in 2008-01-11 13:45:57.000000000 +0000
+@@ -25,4 +25,7 @@
+ /* Verbose debugging output hilarity */
+ #undef DEBUG
+
++/* Enable XCalibrate extension */
++#undef XCALIBRATE
++
+ #endif /* _KDRIVE_CONFIG_H_ */
+Index: xorg-server-1.3.0.0/Xext/Makefile.am
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xext/Makefile.am 2006-10-25 01:25:19.000000000 +0100
++++ xorg-server-1.3.0.0/Xext/Makefile.am 2008-01-11 13:45:57.000000000 +0000
+@@ -91,6 +91,11 @@ BUILTIN_SRCS += $(XCALIBRATE_SRCS)
+ # XCalibrare needs tslib
+ 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.
+@@ -169,6 +174,7 @@ EXTRA_DIST = \
+ $(XCSECURITY_SRCS) \
+ $(XCALIBRATE_SRCS) \
+ $(XINERAMA_SRCS) \
++ $(XCALIBRATE_SRCS) \
+ $(XEVIE_SRCS) \
+ $(XPRINT_SRCS) \
+ $(APPGROUP_SRCS) \
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fbdev_use_current.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fbdev_use_current.patch
new file mode 100644
index 000000000..dc957cc82
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fbdev_use_current.patch
@@ -0,0 +1,41 @@
+---
+ hw/kdrive/fbdev/fbdev.c | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-01-11 14:40:16.000000000 +0000
++++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c 2008-01-11 14:40:59.000000000 +0000
+@@ -182,16 +182,24 @@ fbdevScreenInitialize (KdScreenInfo *scr
+ screen->rate = 103; /* FIXME: should get proper value from fb driver */
+ }
+ if (!screen->fb[0].depth)
+- screen->fb[0].depth = 16;
++ {
++ if (k >= 0)
++ screen->fb[0].depth = var.bits_per_pixel;
++ else
++ screen->fb[0].depth = 16;
++ }
+
+- t = KdFindMode (screen, fbdevModeSupported);
+- screen->rate = t->rate;
+- screen->width = t->horizontal;
+- screen->height = t->vertical;
++ if ((screen->width != var.xres) || (screen->height != var.yres))
++ {
++ t = KdFindMode (screen, fbdevModeSupported);
++ screen->rate = t->rate;
++ screen->width = t->horizontal;
++ screen->height = t->vertical;
+
+- /* Now try setting the mode */
+- if (k < 0 || (t->horizontal != var.xres || t->vertical != var.yres))
+- fbdevConvertMonitorTiming (t, &var);
++ /* Now try setting the mode */
++ if (k < 0 || (t->horizontal != var.xres || t->vertical != var.yres))
++ fbdevConvertMonitorTiming (t, &var);
++ }
+
+ var.activate = FB_ACTIVATE_NOW;
+ var.bits_per_pixel = screen->fb[0].depth;
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fix-newer-xorg-headers.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fix-newer-xorg-headers.patch
new file mode 100644
index 000000000..eb98fb82c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/fix-newer-xorg-headers.patch
@@ -0,0 +1,18 @@
+---
+ render/glyphstr.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- xorg-server-1.3.0.0.orig/render/glyphstr.h
++++ xorg-server-1.3.0.0/render/glyphstr.h
+@@ -23,10 +23,11 @@
+ */
+
+ #ifndef _GLYPHSTR_H_
+ #define _GLYPHSTR_H_
+
++#include <X11/X.h>
+ #include <X11/extensions/renderproto.h>
+ #include "picture.h"
+ #include "screenint.h"
+ #include "regionstr.h"
+ #include "miscstruct.h"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch
new file mode 100644
index 000000000..c160cd41d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch
@@ -0,0 +1,307 @@
+diff -u -r xorg-server-X11R7.1-1.1.0.orig/dix/window.c xorg-server-X11R7.1-1.1.0/dix/window.c
+--- xorg-server-X11R7.1-1.1.0.orig/dix/window.c 2007-01-08 14:30:38.000000000 +0000
++++ xorg-server-X11R7.1-1.1.0/dix/window.c 2007-01-16 17:16:19.000000000 +0000
+@@ -185,6 +185,8 @@
+ _X_EXPORT int numSaveUndersViewable = 0;
+ _X_EXPORT int deltaSaveUndersViewable = 0;
+
++char* RootPPM = NULL;
++
+ #ifdef DEBUG
+ /******
+ * PrintWindowTree
+@@ -311,6 +313,115 @@
+ #endif
+ }
+
++static int
++get_int(FILE *fp)
++{
++ int c = 0;
++
++ while ((c = getc(fp)) != EOF)
++ {
++ if (isspace(c))
++ continue;
++
++ if (c == '#')
++ while (c = getc(fp))
++ if (c == EOF)
++ return 0;
++ else if (c == '\n')
++ break;
++
++ if (isdigit(c))
++ {
++ int val = c - '0';
++ while ((c = getc(fp)) && isdigit(c))
++ val = (val * 10) + (c - '0');
++ return val;
++ }
++ }
++
++ return 0;
++}
++
++static unsigned char*
++ppm_load (const char* path, int depth, int *width, int *height)
++{
++ FILE *fp;
++ int max, n = 0, w, h, i, j, bytes_per_line;
++ unsigned char *data, *res, h1, h2;
++
++ if (depth < 16 || depth > 32)
++ return NULL;
++
++ if (depth > 16)
++ depth = 32;
++
++ fp = fopen (path, "r");
++ if (fp == NULL)
++ return FALSE;
++
++ h1 = getc(fp);
++ h2 = getc(fp);
++
++ /* magic is 'P6' for raw ppm */
++ if (h1 != 'P' && h2 != '6')
++ goto fail;
++
++ w = get_int(fp);
++ h = get_int(fp);
++
++ if (w == 0 || h == 0)
++ goto fail;
++
++ max = get_int(fp);
++
++ if (max != 255)
++ goto fail;
++
++ bytes_per_line = ((w * depth + 31) >> 5) << 2;
++
++ res = data = malloc(bytes_per_line * h);
++
++ for (i=0; i<h; i++)
++ {
++ for (j=0; j<w; j++)
++ {
++ unsigned char buf[3];
++ fread(buf, 1, 3, fp);
++
++ switch (depth)
++ {
++ case 24:
++ case 32:
++ *data = buf[2];
++ *(data+1) = buf[1];
++ *(data+2) = buf[0];
++ data += 4;
++ break;
++ case 16:
++ default:
++ *(unsigned short*)data
++ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
++ data += 2;
++ break;
++ }
++ }
++ data += (bytes_per_line - (w*(depth>>3)));
++ }
++
++ data = res;
++
++ *width = w;
++ *height = h;
++
++ fclose(fp);
++
++ return res;
++
++ fail:
++ fclose(fp);
++ return NULL;
++}
++
+ static void
+ MakeRootTile(WindowPtr pWin)
+ {
+@@ -321,6 +432,36 @@
+ register unsigned char *from, *to;
+ register int i, j;
+
++ if (RootPPM != NULL)
++ {
++ int w, h;
++ unsigned char *data;
++
++ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
++ {
++ pWin->background.pixmap
++ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth);
++
++ pWin->backgroundState = BackgroundPixmap;
++ pGC = GetScratchGC(pScreen->rootDepth, pScreen);
++ if (!pWin->background.pixmap || !pGC)
++ FatalError("could not create root tile");
++
++ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
++
++ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
++ pGC,
++ pScreen->rootDepth,
++ 0, 0, w, h, 0, ZPixmap, (char *)data);
++ FreeScratchGC(pGC);
++
++ free(data);
++ return;
++ }
++ else
++ ErrorF("Unable to load root window image.");
++ }
++
+ pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
+ pScreen->rootDepth);
+
+@@ -357,6 +498,7 @@
+
+ }
+
++
+ WindowPtr
+ AllocateWindow(ScreenPtr pScreen)
+ {
+diff -u -r xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c
+--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c 2007-01-08 14:30:38.000000000 +0000
++++ xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c 2007-01-15 17:53:06.000000000 +0000
+@@ -58,6 +58,9 @@
+ { 32, 32 }
+ };
+
++int
++ProcXFixesHideCursor (ClientPtr client) ;
++
+ #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
+
+ int kdScreenPrivateIndex;
+@@ -84,6 +87,9 @@
+ KdOsFuncs *kdOsFuncs;
+ extern WindowPtr *WindowTable;
+
++extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
++extern char* RootPPM; /* dix/window.c */
++
+ void
+ KdSetRootClip (ScreenPtr pScreen, BOOL enable)
+ {
+@@ -312,6 +318,7 @@
+ KdSetRootClip (pScreen, TRUE);
+ if (pScreenPriv->card->cfuncs->dpms)
+ (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
++
+ return TRUE;
+ }
+
+@@ -686,10 +693,14 @@
+ ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
+ ErrorF("-switchCmd Command to execute on vt switch\n");
+ ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
++ ErrorF("-hide-cursor Start with cursor hidden\n");
++ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
+ ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
+ #ifdef PSEUDO8
+ p8UseMsg ();
+ #endif
++
++
+ }
+
+ int
+@@ -761,6 +772,19 @@
+ kdSoftCursor = TRUE;
+ return 1;
+ }
++ if (!strcmp (argv[i], "-hide-cursor"))
++ {
++ CursorInitiallyHidden = TRUE;
++ return 1;
++ }
++ if (!strcmp (argv[i], "-root-ppm"))
++ {
++ if ((i+1) < argc)
++ RootPPM = argv[i+1];
++ else
++ UseMsg ();
++ return 2;
++ }
+ if (!strcmp (argv[i], "-videoTest"))
+ {
+ kdVideoTest = TRUE;
+diff -u -r xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c xorg-server-X11R7.1-1.1.0/xfixes/cursor.c
+--- xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c 2007-01-08 14:30:38.000000000 +0000
++++ xorg-server-X11R7.1-1.1.0/xfixes/cursor.c 2007-01-11 16:33:00.000000000 +0000
+@@ -59,9 +59,12 @@
+ static RESTYPE CursorWindowType;
+ static int CursorScreenPrivateIndex = -1;
+ static int CursorGeneration;
++static Bool CursorGloballyHidden;
+ static CursorPtr CursorCurrent;
+ static CursorPtr pInvisibleCursor = NULL;
+
++Bool CursorInitiallyHidden = FALSE;
++
+ static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
+
+ #define VERIFY_CURSOR(pCursor, cursor, client, access) { \
+@@ -130,7 +133,7 @@
+
+ Unwrap (cs, pScreen, DisplayCursor);
+
+- if (cs->pCursorHideCounts != NULL) {
++ if (cs->pCursorHideCounts != NULL || CursorGloballyHidden) {
+ ret = (*pScreen->DisplayCursor) (pScreen, pInvisibleCursor);
+ } else {
+ ret = (*pScreen->DisplayCursor) (pScreen, pCursor);
+@@ -848,6 +851,12 @@
+ return BadWindow;
+ }
+
++ /* Is cursor set to be initially hidden ?, if so reset this
++ * flag as now visibility assumed under control of client.
++ */
++ if (CursorGloballyHidden)
++ CursorGloballyHidden = FALSE;
++
+ /*
+ * Has client hidden the cursor before on this screen?
+ * If so, just increment the count.
+@@ -899,9 +908,19 @@
+ return BadWindow;
+ }
+
++ /* X was started with cursor hidden, therefore just reset our flag
++ * (returning to normal client control) and cause cursor to now be
++ * shown.
++ */
++ if (CursorGloballyHidden == TRUE)
++ {
++ CursorGloballyHidden = FALSE;
++ return (client->noClientException);
++ }
++
+ /*
+ * Has client hidden the cursor on this screen?
+- * If not, generate an error.
++ * If so, generate an error.
+ */
+ pChc = findCursorHideCount(client, pWin->drawable.pScreen);
+ if (pChc == NULL) {
+@@ -1009,6 +1028,8 @@
+ XFixesCursorInit (void)
+ {
+ int i;
++
++ CursorGloballyHidden = CursorInitiallyHidden;
+
+ if (CursorGeneration != serverGeneration)
+ {
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-evdev.patch
new file mode 100644
index 000000000..2dc22bf50
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-use-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-use-evdev.patch
new file mode 100644
index 000000000..28d732560
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/kdrive-use-evdev.patch
@@ -0,0 +1,54 @@
+--- 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,11 @@
+ UseMsg ();
+ return 2;
+ }
++ if (!strcmp (argv[i], "-use-evdev"))
++ {
++ use_evdev = 1;
++ return 1;
++ }
+ if (!strcmp (argv[i], "-keyboard"))
+ {
+ if ((i+1) < argc)
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch
new file mode 100644
index 000000000..a580b500b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch
@@ -0,0 +1,58 @@
+Index: xorg-server-1.2.0/Makefile.am
+===================================================================
+--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100
++++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200
+@@ -30,6 +30,10 @@
+ XINPUT_DIR=Xi
+ endif
+
++if XKB
++XKB_DIR=xkb
++endif
++
+ if DBE
+ DBE_DIR=dbe
+ endif
+@@ -46,7 +50,7 @@
+ randr \
+ render \
+ $(XINPUT_DIR) \
+- xkb \
++ $(XKB_DIR) \
+ $(DBE_DIR) \
+ $(MFB_DIR) \
+ $(AFB_DIR) \
+Index: xorg-server-1.2.0/configure.ac
+===================================================================
+--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100
++++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200
+@@ -428,6 +428,7 @@
+ AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
+ AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
+ AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=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])
+@@ -754,12 +755,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/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/report-correct-randr12.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/report-correct-randr12.patch
new file mode 100644
index 000000000..72c8a18ad
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/report-correct-randr12.patch
@@ -0,0 +1,29 @@
+Server reports XRandR version provided by libxrandr instead of XRandR
+version implemented. It confuses applications that execute XRandR
+version dependent code (e. g. gtk+ >= 2.18.0).
+
+Index: xorg-server-1.3.0.0/randr/rrdispatch.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/randr/rrdispatch.c
++++ xorg-server-1.3.0.0/randr/rrdispatch.c
+@@ -22,6 +22,9 @@
+
+ #include "randrstr.h"
+
++#define SERVER_RANDR_MAJOR 1
++#define SERVER_RANDR_MINOR 2
++
+ Bool
+ RRClientKnowsRates (ClientPtr pClient)
+ {
+@@ -49,8 +52,8 @@ ProcRRQueryVersion (ClientPtr client)
+ * Report the current version; the current
+ * spec says they're all compatible after 1.0
+ */
+- rep.majorVersion = RANDR_MAJOR;
+- rep.minorVersion = RANDR_MINOR;
++ rep.majorVersion = SERVER_RANDR_MAJOR;
++ rep.minorVersion = SERVER_RANDR_MINOR;
+ if (client->swapped) {
+ swaps(&rep.sequenceNumber, n);
+ swapl(&rep.length, n);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch
new file mode 100644
index 000000000..395bc7d51
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch
@@ -0,0 +1,151 @@
+>From 48e4d08e99de41047c6b6fde5ba9d12787881c23 Mon Sep 17 00:00:00 2001
+From: root <root@benny.jf.intel.com>
+Date: Sun, 28 Oct 2007 09:37:52 +0100
+Subject: [PATCH] The smart scheduler itimer currently always fires after each request
+ (which in turn causes the CPU to wake out of idle, burning precious power).
+ Rather than doing this, just stop the timer before going into the select()
+ portion of the WaitFor loop. It's a cheap system call, and it will only get
+ called if there's no more commands batched up from the active fd.
+
+This change also allows some of the functions to be simplified; setitimer()
+will only fail if it's passed invalid data, and we don't do that... so make
+it void and remove all the conditional code that deals with failure.
+
+The change also allows us to remove a few variables that were used for
+housekeeping between the signal handler and the main loop.
+---
+ include/dixstruct.h | 6 ++----
+ os/WaitFor.c | 11 +++--------
+ os/utils.c | 28 +++-------------------------
+ 3 files changed, 8 insertions(+), 37 deletions(-)
+
+diff --git a/include/dixstruct.h b/include/dixstruct.h
+index dd6347f..bed31dc 100644
+--- a/include/dixstruct.h
++++ b/include/dixstruct.h
+@@ -150,11 +150,9 @@ extern long SmartScheduleTime;
+ extern long SmartScheduleInterval;
+ extern long SmartScheduleSlice;
+ extern long SmartScheduleMaxSlice;
+-extern unsigned long SmartScheduleIdleCount;
+ extern Bool SmartScheduleDisable;
+-extern Bool SmartScheduleIdle;
+-extern Bool SmartScheduleTimerStopped;
+-extern Bool SmartScheduleStartTimer(void);
++extern void SmartScheduleStartTimer(void);
++extern void SmartScheduleStopTimer(void);
+ #define SMART_MAX_PRIORITY (20)
+ #define SMART_MIN_PRIORITY (-20)
+
+diff --git a/os/WaitFor.c b/os/WaitFor.c
+index ec1592c..7683477 100644
+--- a/os/WaitFor.c
++++ b/os/WaitFor.c
+@@ -217,7 +217,8 @@ WaitForSomething(int *pClientsReady)
+ XFD_COPYSET(&AllSockets, &LastSelectMask);
+ #ifdef SMART_SCHEDULE
+ }
+- SmartScheduleIdle = TRUE;
++ SmartScheduleStopTimer ();
++
+ #endif
+ BlockHandler((pointer)&wt, (pointer)&LastSelectMask);
+ if (NewOutputPending)
+@@ -237,13 +238,7 @@ WaitForSomething(int *pClientsReady)
+ selecterr = GetErrno();
+ WakeupHandler(i, (pointer)&LastSelectMask);
+ #ifdef SMART_SCHEDULE
+- if (i >= 0)
+- {
+- SmartScheduleIdle = FALSE;
+- SmartScheduleIdleCount = 0;
+- if (SmartScheduleTimerStopped)
+- (void) SmartScheduleStartTimer ();
+- }
++ SmartScheduleStartTimer ();
+ #endif
+ if (i <= 0) /* An error or timeout occurred */
+ {
+diff --git a/os/utils.c b/os/utils.c
+index 31cb0af..6fc1f7d 100644
+--- a/os/utils.c
++++ b/os/utils.c
+@@ -1513,10 +1513,6 @@ XNFstrdup(const char *s)
+
+ #ifdef SMART_SCHEDULE
+
+-unsigned long SmartScheduleIdleCount;
+-Bool SmartScheduleIdle;
+-Bool SmartScheduleTimerStopped;
+-
+ #ifdef SIGVTALRM
+ #define SMART_SCHEDULE_POSSIBLE
+ #endif
+@@ -1526,7 +1522,7 @@ Bool SmartScheduleTimerStopped;
+ #define SMART_SCHEDULE_TIMER ITIMER_REAL
+ #endif
+
+-static void
++void
+ SmartScheduleStopTimer (void)
+ {
+ #ifdef SMART_SCHEDULE_POSSIBLE
+@@ -1537,38 +1533,28 @@ SmartScheduleStopTimer (void)
+ timer.it_value.tv_sec = 0;
+ timer.it_value.tv_usec = 0;
+ (void) setitimer (ITIMER_REAL, &timer, 0);
+- SmartScheduleTimerStopped = TRUE;
+ #endif
+ }
+
+-Bool
++void
+ SmartScheduleStartTimer (void)
+ {
+ #ifdef SMART_SCHEDULE_POSSIBLE
+ struct itimerval timer;
+
+- SmartScheduleTimerStopped = FALSE;
+ timer.it_interval.tv_sec = 0;
+ timer.it_interval.tv_usec = SmartScheduleInterval * 1000;
+ timer.it_value.tv_sec = 0;
+ timer.it_value.tv_usec = SmartScheduleInterval * 1000;
+- return setitimer (ITIMER_REAL, &timer, 0) >= 0;
++ setitimer (ITIMER_REAL, &timer, 0);
+ #endif
+- return FALSE;
+ }
+
+ #ifdef SMART_SCHEDULE_POSSIBLE
+ static void
+ SmartScheduleTimer (int sig)
+ {
+- int olderrno = errno;
+-
+ SmartScheduleTime += SmartScheduleInterval;
+- if (SmartScheduleIdle)
+- {
+- SmartScheduleStopTimer ();
+- }
+- errno = olderrno;
+ }
+ #endif
+
+@@ -1592,14 +1578,6 @@ SmartScheduleInit (void)
+ perror ("sigaction for smart scheduler");
+ return FALSE;
+ }
+- /* Set up the virtual timer */
+- if (!SmartScheduleStartTimer ())
+- {
+- perror ("scheduling timer");
+- return FALSE;
+- }
+- /* stop the timer and wait for WaitForSomething to start it */
+- SmartScheduleStopTimer ();
+ return TRUE;
+ #else
+ return FALSE;
+--
+1.5.3.4
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/xcalibrate_coords.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/xcalibrate_coords.patch
new file mode 100644
index 000000000..e0cca5428
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/xcalibrate_coords.patch
@@ -0,0 +1,122 @@
+---
+ Xext/xcalibrate.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
+ hw/kdrive/src/kdrive.h | 3 +++
+ hw/kdrive/src/kinput.c | 12 ++++++++++++
+ 3 files changed, 61 insertions(+), 1 deletion(-)
+
+Index: xorg-server-1.3.0.0/Xext/xcalibrate.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xext/xcalibrate.c 2007-06-29 17:30:03.000000000 +0100
++++ xorg-server-1.3.0.0/Xext/xcalibrate.c 2007-06-30 14:04:40.000000000 +0100
+@@ -166,7 +166,6 @@ ProcXCalibrateSetRawMode (ClientPtr clie
+ return (client->noClientException);
+ }
+
+-
+ static int
+ SProcXCalibrateSetRawMode (ClientPtr client)
+ {
+@@ -180,6 +179,47 @@ SProcXCalibrateSetRawMode (ClientPtr cli
+ return ProcXCalibrateSetRawMode(client);
+ }
+
++static int
++ProcXCalibrateScreenToCoord (ClientPtr client)
++{
++ REQUEST(xXCalibrateScreenToCoordReq);
++ xXCalibrateScreenToCoordReply rep;
++
++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
++
++ memset (&rep, 0, sizeof (rep));
++ rep.type = X_Reply;
++ rep.sequenceNumber = client->sequence;
++ rep.x = stuff->x;
++ rep.y = stuff->y;
++
++ KdScreenToMouseCoords(&rep.x, &rep.y);
++
++ if (client->swapped)
++ {
++ int n;
++
++ swaps (&rep.x, n);
++ swaps (&rep.y, n);
++ }
++ WriteToClient(client, sizeof (rep), (char *) &rep);
++ return (client->noClientException);
++}
++
++static int
++SProcXCalibrateScreenToCoord (ClientPtr client)
++{
++ REQUEST(xXCalibrateScreenToCoordReq);
++ int n;
++
++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
++
++ swaps(&stuff->x, n);
++ swaps(&stuff->y, n);
++
++ return ProcXCalibrateScreenToCoord(client);
++}
++
+ static void
+ XCalibrateResetProc (ExtensionEntry *extEntry)
+ {
+@@ -194,6 +234,9 @@ ProcXCalibrateDispatch (ClientPtr client
+ return ProcXCalibrateQueryVersion(client);
+ case X_XCalibrateRawMode:
+ return ProcXCalibrateSetRawMode(client);
++ case X_XCalibrateScreenToCoord:
++ return ProcXCalibrateScreenToCoord(client);
++
+ default: break;
+ }
+
+@@ -213,6 +256,8 @@ SProcXCalibrateDispatch (ClientPtr clien
+ return SProcXCalibrateQueryVersion(client);
+ case X_XCalibrateRawMode:
+ return SProcXCalibrateSetRawMode(client);
++ case X_XCalibrateScreenToCoord:
++ return SProcXCalibrateScreenToCoord(client);
+
+ default: break;
+ }
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kdrive.h 2007-06-30 13:43:45.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h 2007-06-30 13:45:03.000000000 +0100
+@@ -746,6 +746,9 @@ void
+ KdSetMouseMatrix (KdMouseMatrix *matrix);
+
+ void
++KdScreenToMouseCoords (int *x, int *y);
++
++void
+ KdComputeMouseMatrix (KdMouseMatrix *matrix, Rotation randr, int width, int height);
+
+ void
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kinput.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kinput.c 2007-06-29 17:30:16.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/src/kinput.c 2007-06-30 15:52:16.000000000 +0100
+@@ -381,6 +381,18 @@ KdSetMouseMatrix (KdMouseMatrix *matrix)
+ }
+
+ void
++KdScreenToMouseCoords (int *x, int *y)
++{
++ int (*m)[3] = kdMouseMatrix.matrix;
++ int div = m[0][1] * m[1][0] - m[1][1] * m[0][0];
++ int sx = *x;
++ int sy = *y;
++
++ *x = (m[0][1] * sy - m[0][1] * m[1][2] + m[1][1] * m[0][2] - m[1][1] * sx) / div;
++ *y = (m[1][0] * sx + m[0][0] * m[1][2] - m[1][0] * m[0][2] - m[0][0] * sy) / div;
++}
++
++void
+ KdComputeMouseMatrix (KdMouseMatrix *m, Rotation randr, int width, int height)
+ {
+ int x_dir = 1, y_dir = 1;
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
new file mode 100644
index 000000000..2341e40bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
@@ -0,0 +1,19 @@
+Index: xorg-server-1.7.99.2/configure.ac
+===================================================================
+--- xorg-server-1.7.99.2.orig/configure.ac 2010-01-29 16:38:49.000000000 +0000
++++ xorg-server-1.7.99.2/configure.ac 2010-01-29 16:42:39.000000000 +0000
+@@ -503,14 +503,10 @@
+
+ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
+ dnl otherwise uses standard subdirectories of FONTROOTDIR
+-AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
+- [DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
+- [
+ DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
+ case $host_os in
+ darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
+ esac
+- ])
+ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
+ [ FONTPATH="$withval" ],
+ [ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
new file mode 100644
index 000000000..bd8842721
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
new file mode 100644
index 000000000..13a6c2c95
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
new file mode 100644
index 000000000..9794e98cb
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
@@ -0,0 +1,148 @@
+---
+ Xext/Makefile.am | 6 ++++++
+ configure.ac | 11 +++++++++--
+ include/kdrive-config.h.in | 3 +++
+ mi/miinitext.c | 6 ++++++
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.7.99.2/mi/miinitext.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/mi/miinitext.c 2010-02-10 18:54:11.959086237 +0000
++++ xorg-server-1.7.99.2/mi/miinitext.c 2010-02-10 18:54:12.429078513 +0000
+@@ -264,6 +264,9 @@
+ #ifdef DMXEXT
+ extern void DMXExtensionInit(INITARGS);
+ #endif
++#ifdef XCALIBRATE
++extern void XCalibrateExtensionInit(INITARGS);
++#endif
+ #ifdef XFIXES
+ extern void XFixesExtensionInit(INITARGS);
+ #endif
+@@ -493,6 +496,9 @@
+ GlxPushProvider(&__glXDRISWRastProvider);
+ if (!noGlxExtension) GlxExtensionInit();
+ #endif
++#ifdef XCALIBRATE
++ XCalibrateExtensionInit ();
++#endif
+ }
+
+ #else /* XFree86LOADER */
+Index: xorg-server-1.7.99.2/configure.ac
+===================================================================
+--- xorg-server-1.7.99.2.orig/configure.ac 2010-02-10 18:54:11.959086237 +0000
++++ xorg-server-1.7.99.2/configure.ac 2010-02-11 11:49:50.710736962 +0000
+@@ -1985,7 +1985,7 @@
+ fi
+
+
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_CHECK_LIB(ts, ts_open, [HAVE_TSLIB="yes"])
+ fi
+@@ -2039,7 +2039,7 @@
+ KDRIVE_LOCAL_LIBS="$MAIN_LIB $DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $FB_LIB $MI_LIB $KDRIVE_PURE_LIBS"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $KDRIVE_OS_LIB $OS_LIB"
+- KDRIVE_LIBS="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
++ KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $TSLIB_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
+
+ AC_SUBST([XEPHYR_LIBS])
+ AC_SUBST([XEPHYR_INCS])
+Index: xorg-server-1.7.99.2/include/kdrive-config.h.in
+===================================================================
+--- xorg-server-1.7.99.2.orig/include/kdrive-config.h.in 2010-02-10 18:54:11.959086237 +0000
++++ xorg-server-1.7.99.2/include/kdrive-config.h.in 2010-02-10 18:54:12.429078513 +0000
+@@ -28,4 +28,7 @@
+ /* Have execinfo.h for backtrace(). */
+ #undef HAVE_EXECINFO_H
+
++/* Enable XCalibrate extension */
++#undef XCALIBRATE
++
+ #endif /* _KDRIVE_CONFIG_H_ */
+Index: xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/hw/kdrive/linux/tslib.c 2010-02-10 18:58:12.669078495 +0000
++++ xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c 2010-02-10 19:04:56.927828767 +0000
+@@ -50,12 +50,15 @@
+ int fd;
+ int lastx, lasty;
+ struct tsdev *tsDev;
+- void (*raw_event_hook)(int x, int y, int pressure, void *closure);
+- void *raw_event_closure;
+ int phys_screen;
+ };
+
+
++/* For XCalibrate extension */
++void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
++void *tslib_raw_event_closure;
++
++
+ static void
+ TsRead (int fd, void *closure)
+ {
+@@ -65,10 +68,10 @@
+ long x = 0, y = 0;
+ unsigned long flags;
+
+- if (private->raw_event_hook) {
++ if (tslib_raw_event_hook) {
+ while (ts_read_raw(private->tsDev, &event, 1) == 1)
+- private->raw_event_hook (event.x, event.y, event.pressure,
+- private->raw_event_closure);
++ tslib_raw_event_hook (event.x, event.y, event.pressure,
++ tslib_raw_event_closure);
+ return;
+ }
+
+@@ -111,8 +114,8 @@
+ {
+ struct TslibPrivate *private = pi->driverPrivate;
+
+- private->raw_event_hook = NULL;
+- private->raw_event_closure = NULL;
++ tslib_raw_event_hook = NULL;
++ tslib_raw_event_closure = NULL;
+ if (!pi->path) {
+ pi->path = strdup("/dev/input/touchscreen0");
+ ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
+Index: xorg-server-1.7.99.2/Xext/xcalibrate.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/Xext/xcalibrate.c 2010-02-10 18:59:24.097829840 +0000
++++ xorg-server-1.7.99.2/Xext/xcalibrate.c 2010-02-11 11:51:00.930735731 +0000
+@@ -115,6 +115,7 @@
+
+ memset (&rep, 0, sizeof (rep));
+ rep.type = X_Reply;
++ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+
+ if (stuff->on)
+@@ -158,6 +159,7 @@
+
+ swaps (&rep.sequenceNumber, n);
+ swaps (&rep.status, n);
++ swapl (&rep.length, n);
+ }
+ WriteToClient(client, sizeof (rep), (char *) &rep);
+ return (client->noClientException);
+@@ -186,6 +188,7 @@
+
+ memset (&rep, 0, sizeof (rep));
+ rep.type = X_Reply;
++ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.x = stuff->x;
+ rep.y = stuff->y;
+@@ -198,6 +201,7 @@
+
+ swaps (&rep.x, n);
+ swaps (&rep.y, n);
++ swapl (&rep.length, n);
+ }
+ WriteToClient(client, sizeof (rep), (char *) &rep);
+ return (client->noClientException);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
new file mode 100644
index 000000000..14cf99055
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
@@ -0,0 +1,83 @@
+Add some extra video modes and change the default to VGA.
+
+---
+ hw/kdrive/src/kmode.c | 41 +++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 39 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c 2008-01-11 14:20:47.000000000 +0000
++++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c 2008-01-11 14:21:18.000000000 +0000
+@@ -32,6 +32,31 @@ const KdMonitorTiming kdMonitorTimings[
+ /* H V Hz KHz */
+ /* FP BP BLANK POLARITY */
+
++ /* Treo 650 */
++
++ { 320, 320, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 320, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++ /* LifeDrive/T3/TX modes */
++
++ { 320, 480, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 480, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++
+ /* IPAQ modeline:
+ *
+ * Modeline "320x240" 5.7222 320 337 340 352 240 241 244 254"
+@@ -41,6 +66,11 @@ const KdMonitorTiming kdMonitorTimings[
+ 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 */
+@@ -76,10 +106,19 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 120, 176, KdSyncNegative, /* 37.861 */
+ 1, 20, 24, KdSyncNegative, /* 72.809 */
+ },
++ /* DEFAULT */
++#define MONITOR_TIMING_DEFAULT 13
+ { 640, 480, 60, 25175, /* VESA */
+ 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 */
+@@ -90,8 +129,6 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 160, 256, KdSyncPositive, /* 46.875 */
+ 1, 21, 25, KdSyncPositive, /* 75.000 */
+ },
+- /* DEFAULT */
+-#define MONITOR_TIMING_DEFAULT 9
+ { 800, 600, 72, 50000, /* VESA */
+ 56, 64, 240, KdSyncPositive, /* 48.077 */
+ 37, 23, 66, KdSyncPositive, /* 72.188 */
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
new file mode 100644
index 000000000..a5c22a5ef
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
@@ -0,0 +1,61 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:12.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:46.000000000 +0100
+@@ -498,6 +498,7 @@
+ KdScreenInfo *screen = pScreenPriv->screen;
+ FbdevScrPriv *scrpriv = screen->driver;
+ Bool wasEnabled = pScreenPriv->enabled;
++ FbdevPriv *priv = screen->card->driver;
+ FbdevScrPriv oldscr;
+ int oldwidth;
+ int oldheight;
+@@ -525,11 +526,46 @@
+ oldheight = screen->height;
+ oldmmwidth = pScreen->mmWidth;
+ oldmmheight = pScreen->mmHeight;
+-
++
+ /*
+ * Set new configuration
+ */
+-
++
++ if (newwidth != oldwidth || newheight != oldheight)
++ {
++ struct fb_var_screeninfo var;
++ int k;
++
++ k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var);
++
++ if (k < 0)
++ {
++ ErrorF("Error with framebuffer ioctl FBIOGET_VSCREENINFO: %s", strerror (errno));
++ return FALSE;
++ }
++
++ var.xres = newwidth;
++ var.yres = newheight;
++ var.activate = FB_ACTIVATE_NOW;
++
++ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
++
++ if (k >= 0)
++ {
++ if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0)
++ {
++ perror("Error with framebuffer ioctl FIOGET_FSCREENINFO");
++ close (priv->fd);
++ return FALSE;
++ }
++ if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) {
++ perror("Error framebuffer ioctl FIOGET_VSCREENINFO");
++ close (priv->fd);
++ return FALSE;
++ }
++ }
++ }
++
+ scrpriv->randr = KdAddRotation (screen->randr, randr);
+
+ KdOffscreenSwapOut (screen->pScreen);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
new file mode 100644
index 000000000..eb98fb82c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
@@ -0,0 +1,18 @@
+---
+ render/glyphstr.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- xorg-server-1.3.0.0.orig/render/glyphstr.h
++++ xorg-server-1.3.0.0/render/glyphstr.h
+@@ -23,10 +23,11 @@
+ */
+
+ #ifndef _GLYPHSTR_H_
+ #define _GLYPHSTR_H_
+
++#include <X11/X.h>
+ #include <X11/extensions/renderproto.h>
+ #include "picture.h"
+ #include "screenint.h"
+ #include "regionstr.h"
+ #include "miscstruct.h"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
new file mode 100644
index 000000000..73f30ee71
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
@@ -0,0 +1,308 @@
+Index: xorg-server-1.7.99.2/dix/window.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/dix/window.c 2009-11-04 16:25:50.000000000 +0000
++++ xorg-server-1.7.99.2/dix/window.c 2010-02-10 17:42:22.719078216 +0000
+@@ -179,6 +179,8 @@
+
+ #define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
+
++char* RootPPM = NULL;
++
+ #ifdef DEBUG
+ /******
+ * PrintWindowTree
+@@ -304,6 +306,115 @@
+ #endif
+ }
+
++static int
++get_int(FILE *fp)
++{
++ int c = 0;
++
++ while ((c = getc(fp)) != EOF)
++ {
++ if (isspace(c))
++ continue;
++
++ if (c == '#')
++ while (c = getc(fp))
++ if (c == EOF)
++ return 0;
++ else if (c == '\n')
++ break;
++
++ if (isdigit(c))
++ {
++ int val = c - '0';
++ while ((c = getc(fp)) && isdigit(c))
++ val = (val * 10) + (c - '0');
++ return val;
++ }
++ }
++
++ return 0;
++}
++
++static unsigned char*
++ppm_load (const char* path, int depth, int *width, int *height)
++{
++ FILE *fp;
++ int max, n = 0, w, h, i, j, bytes_per_line;
++ unsigned char *data, *res, h1, h2;
++
++ if (depth < 16 || depth > 32)
++ return NULL;
++
++ if (depth > 16)
++ depth = 32;
++
++ fp = fopen (path, "r");
++ if (fp == NULL)
++ return FALSE;
++
++ h1 = getc(fp);
++ h2 = getc(fp);
++
++ /* magic is 'P6' for raw ppm */
++ if (h1 != 'P' && h2 != '6')
++ goto fail;
++
++ w = get_int(fp);
++ h = get_int(fp);
++
++ if (w == 0 || h == 0)
++ goto fail;
++
++ max = get_int(fp);
++
++ if (max != 255)
++ goto fail;
++
++ bytes_per_line = ((w * depth + 31) >> 5) << 2;
++
++ res = data = malloc(bytes_per_line * h);
++
++ for (i=0; i<h; i++)
++ {
++ for (j=0; j<w; j++)
++ {
++ unsigned char buf[3];
++ fread(buf, 1, 3, fp);
++
++ switch (depth)
++ {
++ case 24:
++ case 32:
++ *data = buf[2];
++ *(data+1) = buf[1];
++ *(data+2) = buf[0];
++ data += 4;
++ break;
++ case 16:
++ default:
++ *(unsigned short*)data
++ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
++ data += 2;
++ break;
++ }
++ }
++ data += (bytes_per_line - (w*(depth>>3)));
++ }
++
++ data = res;
++
++ *width = w;
++ *height = h;
++
++ fclose(fp);
++
++ return res;
++
++ fail:
++ fclose(fp);
++ return NULL;
++}
++
+ static void
+ MakeRootTile(WindowPtr pWin)
+ {
+@@ -314,6 +425,36 @@
+ unsigned char *from, *to;
+ int i, j;
+
++ if (RootPPM != NULL)
++ {
++ int w, h;
++ unsigned char *data;
++
++ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
++ {
++ pWin->background.pixmap
++ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth, 0);
++
++ pWin->backgroundState = BackgroundPixmap;
++ pGC = GetScratchGC(pScreen->rootDepth, pScreen);
++ if (!pWin->background.pixmap || !pGC)
++ FatalError("could not create root tile");
++
++ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
++
++ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
++ pGC,
++ pScreen->rootDepth,
++ 0, 0, w, h, 0, ZPixmap, (char *)data);
++ FreeScratchGC(pGC);
++
++ free(data);
++ return;
++ }
++ else
++ ErrorF("Unable to load root window image.");
++ }
++
+ pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
+ pScreen->rootDepth, 0);
+
+@@ -530,6 +671,7 @@
+ }
+
+
++
+ WindowPtr
+ RealChildHead(WindowPtr pWin)
+ {
+Index: xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/hw/kdrive/src/kdrive.c 2010-02-10 17:36:36.000000000 +0000
++++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c 2010-02-10 17:43:07.797828099 +0000
+@@ -60,6 +60,9 @@
+ { 32, 32 }
+ };
+
++int
++ProcXFixesHideCursor (ClientPtr client) ;
++
+ #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
+
+ #define KD_DEFAULT_BUTTONS 5
+@@ -92,6 +95,9 @@
+
+ KdOsFuncs *kdOsFuncs;
+
++extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
++extern char* RootPPM; /* dix/window.c */
++
+ void
+ KdSetRootClip (ScreenPtr pScreen, BOOL enable)
+ {
+@@ -275,6 +281,7 @@
+ KdSetRootClip (pScreen, TRUE);
+ if (pScreenPriv->card->cfuncs->dpms)
+ (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
++
+ return TRUE;
+ }
+
+@@ -553,6 +560,8 @@
+ ErrorF("-switchCmd Command to execute on vt switch\n");
+ ErrorF("-zap Terminate server on Ctrl+Alt+Backspace\n");
+ ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
++ ErrorF("-hide-cursor Start with cursor hidden\n");
++ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
+ }
+
+ int
+@@ -616,6 +625,19 @@
+ kdSoftCursor = TRUE;
+ return 1;
+ }
++ if (!strcmp (argv[i], "-hide-cursor"))
++ {
++ CursorInitiallyHidden = TRUE;
++ return 1;
++ }
++ if (!strcmp (argv[i], "-root-ppm"))
++ {
++ if ((i+1) < argc)
++ RootPPM = argv[i+1];
++ else
++ UseMsg ();
++ return 2;
++ }
+ if (!strcmp (argv[i], "-videoTest"))
+ {
+ kdVideoTest = TRUE;
+Index: xorg-server-1.7.99.2/xfixes/cursor.c
+===================================================================
+--- xorg-server-1.7.99.2.orig/xfixes/cursor.c 2009-12-19 01:43:53.000000000 +0000
++++ xorg-server-1.7.99.2/xfixes/cursor.c 2010-02-10 17:45:02.089079491 +0000
+@@ -57,6 +57,7 @@
+ static RESTYPE CursorClientType;
+ static RESTYPE CursorHideCountType;
+ static RESTYPE CursorWindowType;
++static Bool CursorGloballyHidden;
+ static CursorPtr CursorCurrent[MAXDEVICES];
+ static CursorPtr pInvisibleCursor = NULL;
+
+@@ -65,6 +66,8 @@
+
+ static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
+
++Bool CursorInitiallyHidden = FALSE;
++
+ #define VERIFY_CURSOR(pCursor, cursor, client, access) \
+ do { \
+ int err; \
+@@ -150,7 +153,7 @@
+ if (ConnectionInfo)
+ CursorVisible = EnableCursor;
+
+- if (cs->pCursorHideCounts != NULL || !CursorVisible) {
++ if (cs->pCursorHideCounts != NULL || !CursorVisible || CursorGloballyHidden) {
+ ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
+ (*pScreen->DisplayCursor) (pDev, pScreen, pInvisibleCursor));
+ } else {
+@@ -887,6 +890,12 @@
+ return (ret == BadValue) ? BadWindow : ret;
+ }
+
++ /* Is cursor set to be initially hidden ?, if so reset this
++ * flag as now visibility assumed under control of client.
++ */
++ if (CursorGloballyHidden)
++ CursorGloballyHidden = FALSE;
++
+ /*
+ * Has client hidden the cursor before on this screen?
+ * If so, just increment the count.
+@@ -950,9 +959,19 @@
+ return (rc == BadValue) ? BadWindow : rc;
+ }
+
++ /* X was started with cursor hidden, therefore just reset our flag
++ * (returning to normal client control) and cause cursor to now be
++ * shown.
++ */
++ if (CursorGloballyHidden == TRUE)
++ {
++ CursorGloballyHidden = FALSE;
++ return (client->noClientException);
++ }
++
+ /*
+ * Has client hidden the cursor on this screen?
+- * If not, generate an error.
++ * If so, generate an error.
+ */
+ pChc = findCursorHideCount(client, pWin->drawable.pScreen);
+ if (pChc == NULL) {
+@@ -1068,6 +1087,8 @@
+ {
+ int i;
+
++ CursorGloballyHidden = CursorInitiallyHidden;
++
+ if (party_like_its_1989)
+ CursorVisible = EnableCursor;
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
new file mode 100644
index 000000000..2dc22bf50
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
new file mode 100644
index 000000000..28d732560
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
@@ -0,0 +1,54 @@
+--- 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,11 @@
+ UseMsg ();
+ return 2;
+ }
++ if (!strcmp (argv[i], "-use-evdev"))
++ {
++ use_evdev = 1;
++ return 1;
++ }
+ if (!strcmp (argv[i], "-keyboard"))
+ {
+ if ((i+1) < argc)
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
new file mode 100644
index 000000000..d614b547a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
@@ -0,0 +1,25 @@
+Index: xorg-server-1.4/hw/kdrive/linux/keyboard.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/keyboard.c 2007-09-29 18:31:15.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/keyboard.c 2007-09-29 18:33:02.000000000 +0200
+@@ -486,6 +486,8 @@
+ ki->minScanCode = minKeyCode;
+ ki->maxScanCode = maxKeyCode;
+ #endif
++ ki->minScanCode = 0;
++ ki->maxScanCode = NR_KEYS;
+ }
+
+ /*
+@@ -743,11 +743,6 @@
+ cfsetispeed(&nTty, 9600);
+ cfsetospeed(&nTty, 9600);
+ tcsetattr(fd, TCSANOW, &nTty);
+- /*
+- * Flush any pending keystrokes
+- */
+- while ((n = read (fd, buf, sizeof (buf))) > 0)
+- ;
+ KdRegisterFd (fd, LinuxKeyboardRead, ki);
+ return Success;
+ }
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
new file mode 100644
index 000000000..35ccadaa8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
new file mode 100644
index 000000000..6b34032a3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
@@ -0,0 +1,12 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000
++++ git/configure.ac 2009-01-15 20:35:38.000000000 +0000
+@@ -62,7 +62,6 @@
+ AC_LIBTOOL_WIN32_DLL
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_MAKE_SET
+ PKG_PROG_PKG_CONFIG
+ AC_PROG_LEX
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
new file mode 100644
index 000000000..a580b500b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
@@ -0,0 +1,58 @@
+Index: xorg-server-1.2.0/Makefile.am
+===================================================================
+--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100
++++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200
+@@ -30,6 +30,10 @@
+ XINPUT_DIR=Xi
+ endif
+
++if XKB
++XKB_DIR=xkb
++endif
++
+ if DBE
+ DBE_DIR=dbe
+ endif
+@@ -46,7 +50,7 @@
+ randr \
+ render \
+ $(XINPUT_DIR) \
+- xkb \
++ $(XKB_DIR) \
+ $(DBE_DIR) \
+ $(MFB_DIR) \
+ $(AFB_DIR) \
+Index: xorg-server-1.2.0/configure.ac
+===================================================================
+--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100
++++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200
+@@ -428,6 +428,7 @@
+ AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
+ AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
+ AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=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])
+@@ -754,12 +755,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/recipes-graphics/xorg-xserver/xserver-kdrive.inc b/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
new file mode 100644
index 000000000..8c9312765
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
@@ -0,0 +1,107 @@
+LICENSE = "MIT"
+DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto scrnsaverproto xineramaproto videoproto xextproto xproto \
+ libxau libxext libxdmcp libxfont libxrandr tslib virtual/libx11 xtrans bigreqsproto xcmiscproto"
+
+PROVIDES = "virtual/xserver"
+PACKAGES =+ "xserver-kdrive-fbdev \
+ xserver-kdrive-sdl \
+ xserver-kdrive-fake \
+ xserver-kdrive-xephyr \
+ xserver-kdrive-epson \
+ xserver-kdrive-ati \
+ xserver-kdrive-chips \
+ xserver-kdrive-i810 \
+ xserver-kdrive-mach64 \
+ xserver-kdrive-mga \
+ xserver-kdrive-neomagic \
+ xserver-kdrive-nvidia \
+ xserver-kdrive-pm2 \
+ xserver-kdrive-r128 \
+ xserver-kdrive-smi \
+ xserver-kdrive-vesa \
+ xserver-kdrive-via \
+ xserver-kdrive-w100 \
+ "
+
+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"
+DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
+DESCRIPTION_xserver-kdrive-sdl = "X server from freedesktop.org, SDL version"
+DESCRIPTION_xserver-kdrive-w100 = "X server from freedesktop.org, supporting the ATI imageon w100 chipset"
+DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
+DESCRIPTION_xserver-kdrive-chips = "X server from freedesktop.org, supporting Chips chipsets"
+DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting Intel chipsets"
+DESCRIPTION_xserver-kdrive-imageon = "X server from freedesktop.org, supporting the ATI imageon 100 chipset"
+DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting mach64 chipsets"
+DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting mga chipsets"
+DESCRIPTION_xserver-kdrive-neomagic = "X server from freedesktop.org, supporting neomagic chipsets"
+DESCRIPTION_xserver-kdrive-nvidia = "X server from freedesktop.org, supporting nvidia devices"
+DESCRIPTION_xserver-kdrive-pm2 = "X server from freedesktop.org, supporting Permedia2 chipsets"
+DESCRIPTION_xserver-kdrive-r128 = "X server from freedesktop.org, supporting rage128 chipsets"
+DESCRIPTION_xserver-kdrive-smi = "X server from freedesktop.org, supporting Silicon Motion devices"
+DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting any card with a VESA, VGA or even EGA BIOS. x86 hardware only"
+DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA chipsets"
+
+FILES_${PN} += "${libdir}/xserver/SecurityPolicy"
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
+FILES_xserver-kdrive-fake = "${bindir}/Xfake"
+FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+FILES_xserver-kdrive-epson = "${bindir}/Xepson"
+FILES_xserver-kdrive-sdl = "${bindir}/Xsdl"
+FILES_xserver-kdrive-w100 = "${bindir}/Xw100"
+FILES_xserver-kdrive-ati = "${bindir}/Xati"
+FILES_xserver-kdrive-chips = "${bindir}/Xchips"
+FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
+FILES_xserver-kdrive-imageon = "${bindir}/Ximageon"
+FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
+FILES_xserver-kdrive-mga = "${bindir}/Xmga"
+FILES_xserver-kdrive-neomagic = "${bindir}/Xneomagic"
+FILES_xserver-kdrive-nvidia = "${bindir}/Xnvidia"
+FILES_xserver-kdrive-pm2 = "${bindir}/Xpm2"
+FILES_xserver-kdrive-r128 = "${bindir}/Xr128"
+FILES_xserver-kdrive-smi = "${bindir}/Xsmi"
+FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
+FILES_xserver-kdrive-via = "${bindir}/Xvia"
+
+RDEPENDS_xserver-kdrive-fbdev = "${PN}"
+RDEPENDS_xserver-kdrive-fake = "${PN}"
+RDEPENDS_xserver-kdrive-xephyr = "${PN}"
+RDEPENDS_xserver-kdrive-epson = "${PN}"
+RDEPENDS_xserver-kdrive-sdl = "${PN}"
+RDEPENDS_xserver-kdrive-w100 = "${PN}"
+RDEPENDS_xserver-kdrive-ati = "${PN}"
+RDEPENDS_xserver-kdrive-chips = "${PN}"
+RDEPENDS_xserver-kdrive-i810 = "${PN}"
+RDEPENDS_xserver-kdrive-mach64 = "${PN}"
+RDEPENDS_xserver-kdrive-mga = "${PN}"
+RDEPENDS_xserver-kdrive-neomagic = "${PN}"
+RDEPENDS_xserver-kdrive-nvidia = "${PN}"
+RDEPENDS_xserver-kdrive-pm2 = "${PN}"
+RDEPENDS_xserver-kdrive-r128 = "${PN}"
+RDEPENDS_xserver-kdrive-smi = "${PN}"
+RDEPENDS_xserver-kdrive-vesa = "${PN}"
+RDEPENDS_xserver-kdrive-via = "${PN}"
+
+inherit autotools pkgconfig
+
+ARM_INSTRUCTION_SET = "arm"
+
+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 \
+ --enable-tslib --enable-xcalibrate \
+ ac_cv_file__usr_share_X11_sgml_defs_ent=no"
+
+do_configure_prepend() {
+ sed -i -e 's/tslib-0.0/tslib-1.0/' ${S}/configure.ac
+}
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-apm.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-apm.patch
new file mode 100644
index 000000000..bd8842721
--- /dev/null
+++ b/meta/recipes-graphics/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/recipes-graphics/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch
new file mode 100644
index 000000000..ccc19139c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch
@@ -0,0 +1,39 @@
+Index: xorg-server-1.3.0.0/configure.ac
+===================================================================
+--- xorg-server-1.3.0.0.orig/configure.ac 2007-04-20 03:23:40.000000000 +0200
++++ xorg-server-1.3.0.0/configure.ac 2007-05-09 16:51:34.000000000 +0200
+@@ -520,7 +520,11 @@
+ XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
+
+ dnl Core modules for most extensions, et al.
++if test "$KDRIVE" = yes; then
++REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto [kbproto >= 1.0.3]"
++else
+ REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86miscproto xf86vidmodeproto xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto xf86dgaproto [kbproto >= 1.0.3]"
++fi
+ REQUIRED_LIBS="xfont xau fontenc"
+
+ AM_CONDITIONAL(XV, [test "x$XV" = xyes])
+@@ -1603,7 +1607,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])
+
+ AC_TRY_COMPILE([
+@@ -1616,10 +1622,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/recipes-graphics/xorg-xserver/xserver-kdrive/extra-kmodes.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/extra-kmodes.patch
new file mode 100644
index 000000000..14cf99055
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/extra-kmodes.patch
@@ -0,0 +1,83 @@
+Add some extra video modes and change the default to VGA.
+
+---
+ hw/kdrive/src/kmode.c | 41 +++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 39 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c 2008-01-11 14:20:47.000000000 +0000
++++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c 2008-01-11 14:21:18.000000000 +0000
+@@ -32,6 +32,31 @@ const KdMonitorTiming kdMonitorTimings[
+ /* H V Hz KHz */
+ /* FP BP BLANK POLARITY */
+
++ /* Treo 650 */
++
++ { 320, 320, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 320, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++ /* LifeDrive/T3/TX modes */
++
++ { 320, 480, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 480, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++
+ /* IPAQ modeline:
+ *
+ * Modeline "320x240" 5.7222 320 337 340 352 240 241 244 254"
+@@ -41,6 +66,11 @@ const KdMonitorTiming kdMonitorTimings[
+ 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 */
+@@ -76,10 +106,19 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 120, 176, KdSyncNegative, /* 37.861 */
+ 1, 20, 24, KdSyncNegative, /* 72.809 */
+ },
++ /* DEFAULT */
++#define MONITOR_TIMING_DEFAULT 13
+ { 640, 480, 60, 25175, /* VESA */
+ 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 */
+@@ -90,8 +129,6 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 160, 256, KdSyncPositive, /* 46.875 */
+ 1, 21, 25, KdSyncPositive, /* 75.000 */
+ },
+- /* DEFAULT */
+-#define MONITOR_TIMING_DEFAULT 9
+ { 800, 600, 72, 50000, /* VESA */
+ 56, 64, 240, KdSyncPositive, /* 48.077 */
+ 37, 23, 66, KdSyncPositive, /* 72.188 */
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive/fbdev_xrandr_ioctl.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/fbdev_xrandr_ioctl.patch
new file mode 100644
index 000000000..a5c22a5ef
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/fbdev_xrandr_ioctl.patch
@@ -0,0 +1,61 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:12.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:46.000000000 +0100
+@@ -498,6 +498,7 @@
+ KdScreenInfo *screen = pScreenPriv->screen;
+ FbdevScrPriv *scrpriv = screen->driver;
+ Bool wasEnabled = pScreenPriv->enabled;
++ FbdevPriv *priv = screen->card->driver;
+ FbdevScrPriv oldscr;
+ int oldwidth;
+ int oldheight;
+@@ -525,11 +526,46 @@
+ oldheight = screen->height;
+ oldmmwidth = pScreen->mmWidth;
+ oldmmheight = pScreen->mmHeight;
+-
++
+ /*
+ * Set new configuration
+ */
+-
++
++ if (newwidth != oldwidth || newheight != oldheight)
++ {
++ struct fb_var_screeninfo var;
++ int k;
++
++ k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var);
++
++ if (k < 0)
++ {
++ ErrorF("Error with framebuffer ioctl FBIOGET_VSCREENINFO: %s", strerror (errno));
++ return FALSE;
++ }
++
++ var.xres = newwidth;
++ var.yres = newheight;
++ var.activate = FB_ACTIVATE_NOW;
++
++ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
++
++ if (k >= 0)
++ {
++ if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0)
++ {
++ perror("Error with framebuffer ioctl FIOGET_FSCREENINFO");
++ close (priv->fd);
++ return FALSE;
++ }
++ if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) {
++ perror("Error framebuffer ioctl FIOGET_VSCREENINFO");
++ close (priv->fd);
++ return FALSE;
++ }
++ }
++ }
++
+ scrpriv->randr = KdAddRotation (screen->randr, randr);
+
+ KdOffscreenSwapOut (screen->pScreen);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive/no-serial-probing.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive/no-serial-probing.patch
new file mode 100644
index 000000000..35ccadaa8
--- /dev/null
+++ b/meta/recipes-graphics/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/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
new file mode 100644
index 000000000..7ca88e64e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
@@ -0,0 +1,28 @@
+require xserver-kdrive.inc
+
+DEPENDS += "libxkbfile libxcalibrate font-util"
+
+RDEPENDS_${PN} += "xkeyboard-config"
+
+EXTRA_OECONF += "--disable-glx"
+
+PE = "1"
+PR = "r25"
+
+SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
+ file://extra-kmodes.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://enable-builtin-fonts.patch;patch=1 \
+# file://optional-xkb.patch;patch=1 \
+ file://keyboard-resume-workaround.patch;patch=1 \
+ file://enable-xcalibrate.patch;patch=1 \
+ file://hide-cursor-and-ppm-root.patch;patch=1 \
+ file://fbdev_xrandr_ioctl.patch;patch=1 \
+ file://fix-newer-xorg-headers.patch;patch=1 \
+ file://crosscompile.patch;patch=1 \
+ file://nodolt.patch;patch=1"
+
+S = "${WORKDIR}/xorg-server-${PV}"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc b/meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc
new file mode 100644
index 000000000..cf69a1e15
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "The X.Org X server"
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/base"
+LICENSE = "MIT-X"
+
+# xf86-*-* packages depend on an X server built with the xfree86 DDX
+# so we have a virtual to represent that:
+PROVIDES = "virtual/xserver-xf86"
+
+# Other packages tend to just care that there is *an* X server:
+PROVIDES += "virtual/xserver"
+
+XORG_PN = "xorg-server"
+SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+RDEPENDS_${PN} += "xserver-xf86-config xkeyboard-config"
+
+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} = "${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/xserver/SecurityPolicy ${libdir}/xorg/modules/*.so ${libdir}/xorg/modules/*/*.so ${libdir}/xorg/modules/*/*/*.so /etc/X11 "
+FILES_${PN}-doc += "${libdir}/X11/doc /usr/share/X11/xkb/compiled/README.compiled"
+
+FILES_${PN}-dbg += "${libdir}/xorg/modules/.debug \
+ ${libdir}/xorg/modules/*/.debug \
+ ${libdir}/xorg/modules/*/*/.debug \
+ "
+
+SRC_URI += "file://macro_tweak.patch"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/igep0020/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/igep0020/xorg.conf
new file mode 100644
index 000000000..ae8a395a0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/igep0020/xorg.conf
@@ -0,0 +1,47 @@
+
+Section "Files"
+EndSection
+
+Section "InputDevice"
+ Identifier "Generic Keyboard"
+ Driver "kbd"
+ Option "CoreKeyboard"
+ Option "XkbRules" "xorg"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "us"
+EndSection
+
+Section "InputDevice"
+ Identifier "Configured Mouse"
+ Driver "mouse"
+ Option "CorePointer"
+ Option "Device" "/dev/input/mice"
+ Option "Protocol" "ImPS/2"
+ Option "ZAxisMapping" "4 5"
+ Option "Emulate3Buttons" "true"
+EndSection
+
+Section "Device"
+ Identifier "OMAPFB Graphics Controller"
+ Driver "omapfb"
+EndSection
+
+Section "Monitor"
+ Identifier "Generic Monitor"
+ Option "DPMS"
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Device "OMAPFB Graphics Controller"
+ Monitor "Generic Monitor"
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+ InputDevice "Generic Keyboard"
+ InputDevice "Configured Mouse"
+ Option "AllowEmptyInput" "no"
+EndSection
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/netbook/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/netbook/xorg.conf
new file mode 100644
index 000000000..e18b91119
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/netbook/xorg.conf
@@ -0,0 +1,26 @@
+Section "Device"
+ Identifier "Intel Graphics Driver"
+ Driver "intel"
+EndSection
+
+Section "Monitor"
+ Identifier "Generic Monitor"
+ Option "DPMS"
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Device "Intel Graphics Driver"
+ Monitor "Generic Monitor"
+ DefaultDepth 24
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+EndSection
+
+Section "ServerFlags"
+ Option "DontZap" "0"
+ Option "AutoAddDevices" "False"
+EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf
new file mode 100644
index 000000000..4216de7bd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf
@@ -0,0 +1,68 @@
+
+Section "Files"
+EndSection
+
+Section "InputDevice"
+ Identifier "Generic Keyboard"
+ Driver "kbd"
+ Option "CoreKeyboard"
+ Option "XkbRules" "xorg"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "us"
+EndSection
+
+Section "InputDevice"
+ Identifier "Configured Mouse"
+ Driver "vmmouse"
+ Option "CorePointer"
+ Option "Device" "/dev/input/mice"
+ Option "Protocol" "ImPS/2"
+ Option "ZAxisMapping" "4 5"
+ Option "Emulate3Buttons" "true"
+EndSection
+
+Section "InputDevice"
+ Identifier "Qemu Tablet"
+ Driver "evdev"
+ Option "CorePointer"
+ Option "Device" "/dev/input/touchscreen0"
+ Option "USB" "on"
+EndSection
+
+Section "Device"
+ Identifier "Graphics Controller"
+ Driver "vmware"
+EndSection
+
+Section "Monitor"
+ Identifier "Generic Monitor"
+ Option "DPMS"
+ # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
+ Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
+ # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
+ ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
+ # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
+ ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
+ # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
+ ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
+ # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
+ ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Device "Graphics Controller"
+ Monitor "Generic Monitor"
+ SubSection "Display"
+ Modes "640x480"
+ EndSubSection
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+ InputDevice "Generic Keyboard"
+ # InputDevice "Configured Mouse"
+ InputDevice "QEMU Tablet"
+ Option "AllowEmptyInput" "no"
+EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf
new file mode 100644
index 000000000..4216de7bd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf
@@ -0,0 +1,68 @@
+
+Section "Files"
+EndSection
+
+Section "InputDevice"
+ Identifier "Generic Keyboard"
+ Driver "kbd"
+ Option "CoreKeyboard"
+ Option "XkbRules" "xorg"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "us"
+EndSection
+
+Section "InputDevice"
+ Identifier "Configured Mouse"
+ Driver "vmmouse"
+ Option "CorePointer"
+ Option "Device" "/dev/input/mice"
+ Option "Protocol" "ImPS/2"
+ Option "ZAxisMapping" "4 5"
+ Option "Emulate3Buttons" "true"
+EndSection
+
+Section "InputDevice"
+ Identifier "Qemu Tablet"
+ Driver "evdev"
+ Option "CorePointer"
+ Option "Device" "/dev/input/touchscreen0"
+ Option "USB" "on"
+EndSection
+
+Section "Device"
+ Identifier "Graphics Controller"
+ Driver "vmware"
+EndSection
+
+Section "Monitor"
+ Identifier "Generic Monitor"
+ Option "DPMS"
+ # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
+ Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
+ # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
+ ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
+ # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
+ ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
+ # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
+ ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
+ # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
+ ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Device "Graphics Controller"
+ Monitor "Generic Monitor"
+ SubSection "Display"
+ Modes "640x480"
+ EndSubSection
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+ InputDevice "Generic Keyboard"
+ # InputDevice "Configured Mouse"
+ InputDevice "QEMU Tablet"
+ Option "AllowEmptyInput" "no"
+EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf
new file mode 100644
index 000000000..9c3d49019
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf
@@ -0,0 +1,26 @@
+
+Section "Device"
+ Identifier "Intel Graphics Driver"
+ Driver "intel"
+EndSection
+
+Section "Monitor"
+ Identifier "Generic Monitor"
+ Option "DPMS"
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Device "Intel Graphics Driver"
+ Monitor "Generic Monitor"
+ DefaultDepth 24
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+EndSection
+
+Section "ServerFlags"
+ Option "DontZap" "0"
+EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
new file mode 100644
index 000000000..fc91285f2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "X.Org X server configuration file"
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/base"
+LICENSE = "MIT-X"
+PR = "r9"
+
+SRC_URI = "file://xorg.conf"
+
+CONFFILES_${PN} += "${sysconfdir}/X11/xorg.conf"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_install () {
+ install -d ${D}/${sysconfdir}/X11
+ install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/
+}
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
new file mode 100644
index 000000000..db2d1266b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
@@ -0,0 +1,37 @@
+require xserver-xf86-common.inc
+
+PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto"
+
+LIB_DEPS = "pixman virtual/libgl libxfont xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess openssl"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+RDEPENDS_${PN} += "hal xorg-minimal-fonts"
+
+FILES_${PN} += "${bindir}/Xorg "
+
+EXTRA_OECONF += "--disable-static \
+ --disable-acfb \
+ --disable-ccfb \
+ --disable-mcfb \
+ --disable-dga \
+ --disable-xinerama \
+ --disable-xf86misc \
+ --disable-xorgcfg \
+ --disable-record \
+ --disable-dmx \
+ --disable-xnest \
+ --disable-xvfb \
+ --enable-composite \
+ --enable-glx-tls \
+ --sysconfdir=/etc/X11 \
+ --localstatedir=/var \
+ --with-pic \
+ --with-int10=x86emu \
+ --with-fontdir=/usr/share/fonts/X11 \
+ --with-xkb-output=/var/lib/xkb \
+ ac_cv_file__usr_share_sgml_X11_defs_ent=no"
+
+# Due to mesa-dri
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
new file mode 100644
index 000000000..b121bba65
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
@@ -0,0 +1,358 @@
+From 0f70ba9d3412b17ac4e08e33e1be3c226c06ea54 Mon Sep 17 00:00:00 2001
+From: Yan Li <yan.i.li@intel.com>
+Date: Tue, 12 May 2009 17:49:07 +0800
+Subject: [PATCH] XKB: cache xkbcomp output for fast start-up v5 for 1.6.1
+Organization: Intel
+
+xkbcomp outputs will be cached in files with hashed keymap as
+names. This saves boot time for around 1s on commodity netbooks.
+
+Signed-off-by: Yan Li <yan.i.li@intel.com>
+---
+ configure.ac | 6 +-
+ xkb/README.compiled | 8 +-
+ xkb/ddxLoad.c | 192 +++++++++++++++++++++++++++++++++++++++++---------
+ 3 files changed, 164 insertions(+), 42 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4c4c797..7a5020a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -476,9 +476,9 @@ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [
+ AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]),
+ [ XKBPATH="$withval" ],
+ [ XKBPATH="${datadir}/X11/xkb" ])
+-AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]),
++AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]),
+ [ XKBOUTPUT="$withval" ],
+- [ XKBOUTPUT="compiled" ])
++ [ XKBOUTPUT="${localstatedir}/cache/xkb" ])
+ AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH],
+ [Directory where ancillary server config files are installed (default: ${libdir}/xorg)]),
+ [ SERVERCONFIG="$withval" ],
+@@ -1757,7 +1757,7 @@ AC_DEFINE_DIR(XKB_BIN_DIRECTORY, bindir, [Path to XKB bin dir])
+ XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
+
+ if [[ x$XKBOUTPUT_FIRSTCHAR != x/ ]] ; then
+- XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT"
++ AC_MSG_ERROR([xkb-output must be an absolute path.])
+ fi
+
+ # XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
+diff --git a/xkb/README.compiled b/xkb/README.compiled
+index 71caa2f..a4a2ae0 100644
+--- a/xkb/README.compiled
++++ b/xkb/README.compiled
+@@ -4,10 +4,10 @@ current keymap and/or any scratch keymaps used by clients. The X server
+ or some other tool might destroy or replace the files in this directory,
+ so it is not a safe place to store compiled keymaps for long periods of
+ time. The default keymap for any server is usually stored in:
+- X<num>-default.xkm
+-where <num> is the display number of the server in question, which makes
+-it possible for several servers *on the same host* to share the same
+-directory.
++ server-<SHA1>.xkm
++
++where <SHA1> is the SHA1 hash of keymap source, so that compiled
++keymap of different keymap sources are stored in different files.
+
+ Unless the X server is modified, sharing this directory between servers on
+ different hosts could cause problems.
+diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
+index 4d5dfb6..60a68af 100644
+--- a/xkb/ddxLoad.c
++++ b/xkb/ddxLoad.c
+@@ -32,6 +32,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #include <xkb-config.h>
+ #endif
+
++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
++# include <sha1.h>
++#else /* Use OpenSSL's libcrypto */
++# include <stddef.h> /* buggy openssl/sha.h wants size_t */
++# include <openssl/sha.h>
++#endif
+ #include <stdio.h>
+ #include <ctype.h>
+ #define NEED_EVENTS 1
+@@ -46,24 +52,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #define XKBSRV_NEED_FILE_FUNCS
+ #include <xkbsrv.h>
+ #include <X11/extensions/XI.h>
++#include <errno.h>
+ #include "xkb.h"
+
+ #if defined(CSRG_BASED) || defined(linux) || defined(__GNU__)
+ #include <paths.h>
+ #endif
+
+- /*
+- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
+- * relative to the top-level XKB configuration directory.
+- * Making the server write to a subdirectory of that directory
+- * requires some work in the general case (install procedure
+- * has to create links to /var or somesuch on many machines),
+- * so we just compile into /usr/tmp for now.
+- */
+-#ifndef XKM_OUTPUT_DIR
+-#define XKM_OUTPUT_DIR "compiled/"
+-#endif
+-
+ #define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
+ #define ERROR_PREFIX "\"> \""
+ #define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
+@@ -179,6 +174,45 @@ OutputDirectory(
+ }
+
+ static Bool
++Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input)
++{
++ int i;
++ unsigned char sha1[SHA_DIGEST_LENGTH];
++
++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
++ SHA1_CTX ctx;
++
++ SHA1Init (&ctx);
++ SHA1Update (&ctx, input, strlen(input));
++ SHA1Final (sha1, &ctx);
++#else /* Use OpenSSL's libcrypto */
++ SHA_CTX ctx;
++ int success;
++
++ success = SHA1_Init (&ctx);
++ if (! success)
++ return BadAlloc;
++
++ success = SHA1_Update (&ctx, input, strlen(input));
++ if (! success)
++ return BadAlloc;
++
++ success = SHA1_Final (sha1, &ctx);
++ if (! success)
++ return BadAlloc;
++#endif
++
++ /* convert sha1 to sha1_asc */
++ for(i=0; i<SHA_DIGEST_LENGTH; ++i) {
++ sprintf(sha1Asc+i*2, "%02X", sha1[i]);
++ }
++
++ return Success;
++}
++
++/* call xkbcomp and compile XKB keymap, return xkm file name in
++ nameRtrn */
++static Bool
+ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ XkbComponentNamesPtr names,
+ unsigned want,
+@@ -187,7 +221,11 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ int nameRtrnLen)
+ {
+ FILE * out;
+- char *buf = NULL, keymap[PATH_MAX], xkm_output_dir[PATH_MAX];
++ char * buf = NULL, xkmfile[PATH_MAX], xkm_output_dir[PATH_MAX];
++ char * tmpXkmFile = NULL;
++ char * canonicalXkmFileName = NULL;
++ char sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
++ int ret, result;
+
+ const char *emptystring = "";
+ const char *xkbbasedirflag = emptystring;
+@@ -198,16 +236,70 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ /* WIN32 has no popen. The input must be stored in a file which is
+ used as input for xkbcomp. xkbcomp does not read from stdin. */
+ char tmpname[PATH_MAX];
+- const char *xkmfile = tmpname;
++ const char *xkbfile = tmpname;
+ #else
+- const char *xkmfile = "-";
++ const char *xkbfile = "-";
+ #endif
+
+- snprintf(keymap, sizeof(keymap), "server-%s", display);
++ /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf',
++ of which SHA1 is generated and used as result xkm file name */
++ memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf));
++ out = fmemopen(xkbKeyMapBuf, sizeof(xkbKeyMapBuf), "w");
++ if (NULL == out) {
++ ErrorF("[xkb] Open xkbKeyMapBuf for writing failed\n");
++ return False;
++ }
++ ret = XkbWriteXKBKeymapForNames(out, names, xkb, want, need);
++ if (fclose(out) !=0)
++ {
++ ErrorF("[xkb] XkbWriteXKBKeymapForNames error, perhaps xkbKeyMapBuf is too small\n");
++ return False;
++ }
++#ifdef DEBUG
++ if (xkbDebugFlags) {
++ ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
++ fputs(xkbKeyMapBuf, stderr);
++ }
++#endif
++ if (!ret) {
++ ErrorF("[xkb] Generating XKB Keymap failed, giving up compiling keymap\n");
++ return False;
++ }
++
++ DebugF("[xkb] computing SHA1 of keymap\n");
++ if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) {
++ snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc);
++ }
++ else {
++ ErrorF("[xkb] Computing SHA1 of keymap failed, "
++ "using display name instead as xkm file name\n");
++ snprintf(xkmfile, sizeof(xkmfile), "server-%s", display);
++ }
+
+- XkbEnsureSafeMapName(keymap);
++ XkbEnsureSafeMapName(xkmfile);
+ OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
+
++ /* set nameRtrn, fail if it's too small */
++ if ((strlen(xkmfile)+1 > nameRtrnLen) && nameRtrn) {
++ ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n");
++ return False;
++ }
++ strncpy(nameRtrn, xkmfile, nameRtrnLen);
++
++ /* if the xkm file already exists, reuse it */
++ canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile);
++ if (access(canonicalXkmFileName, R_OK) == 0) {
++ /* yes, we can reuse the old xkm file */
++ LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName);
++ result = True;
++ goto _ret;
++ }
++ LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName);
++
++ /* continue to call xkbcomp to compile the keymap. to avoid race
++ condition, we compile it to a tmpfile then rename it to
++ xkmfile */
++
+ #ifdef WIN32
+ strcpy(tmpname, Win32TempDir());
+ strcat(tmpname, "\\xkb_XXXXXX");
+@@ -230,19 +322,30 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ }
+ }
+
++ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
++ ErrorF("[xkb] Can't generate temp xkm file name");
++ result = False;
++ goto _ret;
++ }
++
+ buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
+- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
++ "-em1 %s -emp %s -eml %s \"%s\"",
+ xkbbindir, xkbbindirsep,
+ ( (xkbDebugFlags < 2) ? 1 :
+ ((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
+- xkbbasedirflag, xkmfile,
++ xkbbasedirflag, xkbfile,
+ PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
+- xkm_output_dir, keymap);
++ tmpXkmFile);
+
+ if (xkbbasedirflag != emptystring) {
+ xfree(xkbbasedirflag);
+ }
+
++ /* there's a potential race condition between calling tempnam()
++ and invoking xkbcomp to write the result file (potential temp
++ file name conflicts), but since xkbcomp is a standalone
++ program, we have to live with this */
++
+ #ifndef WIN32
+ out= Popen(buf,"w");
+ #else
+@@ -250,31 +353,43 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ #endif
+
+ if (out!=NULL) {
+-#ifdef DEBUG
+- if (xkbDebugFlags) {
+- ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
+- XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need);
++ /* write XKBKeyMapBuf to xkbcomp */
++ if (EOF==fputs(xkbKeyMapBuf, out))
++ {
++ ErrorF("[xkb] Sending keymap to xkbcomp failed\n");
++ result = False;
++ goto _ret;
+ }
+-#endif
+- XkbWriteXKBKeymapForNames(out,names,xkb,want,need);
+ #ifndef WIN32
+ if (Pclose(out)==0)
+ #else
+ if (fclose(out)==0 && System(buf) >= 0)
+ #endif
+ {
++ /* xkbcomp success */
+ if (xkbDebugFlags)
+ DebugF("[xkb] xkb executes: %s\n",buf);
+- if (nameRtrn) {
+- strncpy(nameRtrn,keymap,nameRtrnLen);
+- nameRtrn[nameRtrnLen-1]= '\0';
++
++ /* if canonicalXkmFileName already exists now, we simply
++ overwrite it, this is OK */
++ ret = rename(tmpXkmFile, canonicalXkmFileName);
++ if (0 != ret) {
++ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
++ tmpXkmFile, canonicalXkmFileName,
++ strerror(errno));
++
++ /* in case of error, don't unlink tmpXkmFile, leave it
++ for debugging */
++
++ result = False;
++ goto _ret;
+ }
+- if (buf != NULL)
+- xfree (buf);
+- return True;
++
++ result = True;
++ goto _ret;
+ }
+ else
+- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
++ LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile);
+ #ifdef WIN32
+ /* remove the temporary file */
+ unlink(tmpname);
+@@ -289,9 +404,17 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
+ }
+ if (nameRtrn)
+ nameRtrn[0]= '\0';
++ result = False;
++
++_ret:
++ if (tmpXkmFile)
++ free(tmpXkmFile);
++ if (canonicalXkmFileName)
++ xfree(canonicalXkmFileName);
+ if (buf != NULL)
+ xfree (buf);
+- return False;
++
++ return result;
+ }
+
+ static FILE *
+@@ -375,7 +498,6 @@ unsigned missing;
+ DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
+ }
+ fclose(file);
+- (void) unlink (fileName);
+ return (need|want)&(~missing);
+ }
+
+--
+1.5.6.5
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
new file mode 100644
index 000000000..8b82de222
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
@@ -0,0 +1,20 @@
+diff --git a/configure.ac b/configure.ac
+index b3b752c..600500b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -523,13 +523,9 @@ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
+ dnl otherwise uses standard subdirectories of FONTROOTDIR. When cross
+ dnl compiling, assume default font path uses standard FONTROOTDIR directories.
+ DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
+-if test "$cross_compiling" != yes; then
+- AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
+- [DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
+- [case $host_os in
++ case $host_os in
+ darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
+- esac])
+-fi
++ esac
+ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
+ [ FONTPATH="$withval" ],
+ [ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
new file mode 100644
index 000000000..092a71290
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-1.6.0/hw/xfree86/common/Makefile.am
+===================================================================
+--- xorg-server-1.6.0.orig/hw/xfree86/common/Makefile.am 2010-02-01 14:04:53.247789918 +0000
++++ xorg-server-1.6.0/hw/xfree86/common/Makefile.am 2010-02-01 14:05:27.787817002 +0000
+@@ -46,7 +46,7 @@
+ sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
+ xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
+ xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
+- $(XVSDKINCS) xorgVersion.h \
++ xorgVersion.h \
+ xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
+
+ DISTCLEANFILES = xf86Build.h
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
new file mode 100644
index 000000000..a62a767f2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am 2007-08-23 21:04:53.000000000 +0200
++++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am 2008-03-13 18:27:23.000000000 +0100
+@@ -41,7 +41,7 @@
+
+ AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
+
+-INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
++INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
+
+ # FIXME: These need to be added to the build
+ LNX_EXTRA_SRCS = \
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
new file mode 100644
index 000000000..eed491b4d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
@@ -0,0 +1,21 @@
+We need to insert the sysroot path into compiler commandlines for this
+kind of variable use, otherwise we're looking into /usr/include/.
+
+RP - 26/11/09
+
+Index: git/xorg-server.m4
+===================================================================
+--- git.orig/xorg-server.m4 2009-11-10 12:04:34.000000000 +0000
++++ git/xorg-server.m4 2009-11-27 00:05:02.000000000 +0000
+@@ -28,9 +28,10 @@
+ # Checks for the $1 define in xorg-server.h (from the sdk). If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+
++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
++ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
new file mode 100644
index 000000000..94852f0de
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
@@ -0,0 +1,22 @@
+We need to insert the sysroot path into compiler commandlines for this
+kind of variable use, otherwise we're looking into /usr/include/.
+
+RP - 26/11/09
+
+Index: git/xorg-server.m4
+===================================================================
+--- git.orig/xorg-server.m4 2010-02-05 10:00:55.000000000 +0000
++++ git/xorg-server.m4 2010-02-05 10:02:12.000000000 +0000
+@@ -28,10 +28,11 @@
+ # Checks for the $1 define in xorg-server.h (from the sdk). If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+
++m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
++ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
new file mode 100644
index 000000000..565832eed
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
@@ -0,0 +1,13 @@
+Index: git/os/osdep.h
+===================================================================
+--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100
++++ git/os/osdep.h 2008-10-07 18:39:36.000000000 +0100
+@@ -92,7 +92,7 @@
+ * like sysconf(_SC_OPEN_MAX) is not supported.
+ */
+
+-#if OPEN_MAX <= 256
++#if 0
+ #define MAXSOCKS (OPEN_MAX - 1)
+ #else
+ #define MAXSOCKS 256
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
new file mode 100644
index 000000000..db29da93c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
@@ -0,0 +1,50 @@
+Index: xorg-server-1.5.0/hw/xfree86/dri/dri.c
+===================================================================
+--- xorg-server-1.5.0.orig/hw/xfree86/dri/dri.c 2008-09-24 17:43:04.000000000 +0100
++++ xorg-server-1.5.0/hw/xfree86/dri/dri.c 2008-09-24 17:46:38.000000000 +0100
+@@ -73,10 +73,6 @@
+
+ #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu)
+
+-#if !defined(PANORAMIX)
+-extern Bool noPanoramiXExtension;
+-#endif
+-
+ static int DRIEntPrivIndex = -1;
+ static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey;
+ static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey;
+@@ -307,7 +303,6 @@
+ drm_context_t * reserved;
+ int reserved_count;
+ int i;
+- Bool xineramaInCore = FALSE;
+ DRIEntPrivPtr pDRIEntPriv;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ DRIContextFlags flags = 0;
+@@ -320,20 +315,13 @@
+ return FALSE;
+ }
+
+- /*
+- * If Xinerama is on, don't allow DRI to initialise. It won't be usable
+- * anyway.
+- */
+- if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
+- xineramaInCore = TRUE;
+-
+- if (xineramaInCore) {
+- if (!noPanoramiXExtension) {
+- DRIDrvMsg(pScreen->myNum, X_WARNING,
+- "Direct rendering is not supported when Xinerama is enabled\n");
+- return FALSE;
+- }
++#if defined(PANORAMIX)
++ if (!noPanoramiXExtension) {
++ DRIDrvMsg(pScreen->myNum, X_WARNING,
++ "Direct rendering is not supported when Xinerama is enabled\n");
++ return FALSE;
+ }
++#endif
+
+ if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize,
+ pDRIInfo->busIdString,
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
new file mode 100644
index 000000000..cd408c7bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/macro_tweak.patch
@@ -0,0 +1,28 @@
+This is the revised version of files/macro_tweak.patch for
+xorg-server 1.8.99.904.
+
+the files/macro_tweak.patch can not removed now since it is used by
+xserver-kdrive-1.7.99.2 and xserver-xf86-lite_1.7.99.2. Once they
+are all upgraded to 1.8.99.904, the the files/macro_tweak.patch
+can be safely replace by this patch.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+diff --git a/xorg-server.m4 b/xorg-server.m4
+index bdecf62..040fdb8 100644
+--- a/xorg-server.m4
++++ b/xorg-server.m4
+@@ -28,10 +28,12 @@ dnl
+ # Checks for the $1 define in xorg-server.h (from the sdk). If it
+ # is defined, then add $1 to $REQUIRED_MODULES.
+
++m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
++
+ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`"
++ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include "xorg-server.h"
+ #if !defined $1
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
new file mode 100644
index 000000000..6b34032a3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/nodolt.patch
@@ -0,0 +1,12 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000
++++ git/configure.ac 2009-01-15 20:35:38.000000000 +0000
+@@ -62,7 +62,6 @@
+ AC_LIBTOOL_WIN32_DLL
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_MAKE_SET
+ PKG_PROG_PKG_CONFIG
+ AC_PROG_LEX
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
new file mode 100755
index 000000000..3d2fa1669
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
@@ -0,0 +1,12 @@
+diff -urN xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c
+--- xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c 2008-09-01 03:26:37.000000000 +0800
++++ xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c 2008-09-18 00:28:16.000000000 +0800
+@@ -39,7 +39,7 @@
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+ #include "dri2.h"
+-#include <GL/internal/dri_sarea.h>
++//#include <GL/internal/dri_sarea.h>
+
+ #include "xf86.h"
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
new file mode 100755
index 000000000..7ff3658d0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
@@ -0,0 +1,23 @@
+commit 67b9b3a77a8b86eef03af36a0f4be3a07411efee
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Sep 11 16:18:17 2008 -0700
+
+ Enable DRI2 build.
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index eff2c31..98d7ec8 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -4,9 +4,9 @@ if DRI
+ DRI_SUBDIR = dri
+ endif
+
+-#if DRI2
+-#DRI2_SUBDIR = dri2
+-#endif
++if DRI2
++DRI2_SUBDIR = dri2
++endif
+
+ if XF86UTILS
+ XF86UTILS_SUBDIR = utils
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
new file mode 100644
index 000000000..ef53689bd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
@@ -0,0 +1,156 @@
+From a3e15680da24cb8259f6a83dee0c930dab024290 Mon Sep 17 00:00:00 2001
+From: Kristian <krh@redhat.com>
+Date: Fri, 15 Aug 2008 15:15:14 +1000
+Subject: [PATCH] Add nr for background=none root
+
+---
+ dix/globals.c | 1 +
+ dix/window.c | 22 ++++++++++++----------
+ hw/xfree86/common/xf86Init.c | 11 +++++++++++
+ hw/xfree86/common/xf86str.h | 5 ++++-
+ include/opaque.h | 1 +
+ os/utils.c | 3 +++
+ 6 files changed, 32 insertions(+), 11 deletions(-)
+
+diff --git a/dix/globals.c b/dix/globals.c
+index 973dc43..dbd76bb 100644
+--- a/dix/globals.c
++++ b/dix/globals.c
+@@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in
+ CursorPtr rootCursor;
+ Bool party_like_its_1989 = FALSE;
+ Bool whiteRoot = FALSE;
++Bool bgNoneRoot = FALSE;
+
+ int cursorScreenDevPriv[MAXSCREENS];
+
+diff --git a/dix/window.c b/dix/window.c
+index c31fa87..8bb178d 100644
+--- a/dix/window.c
++++ b/dix/window.c
+@@ -482,23 +482,24 @@ InitRootWindow(WindowPtr pWin)
+ pWin->cursorIsNone = FALSE;
+ pWin->optional->cursor = rootCursor;
+ rootCursor->refcnt++;
+-
++ pWin->backingStore = defaultBackingStore;
++ pWin->forcedBS = (defaultBackingStore != NotUseful);
+
+ if (party_like_its_1989) {
+ MakeRootTile(pWin);
+ backFlag |= CWBackPixmap;
++ pScreen->ChangeWindowAttributes(pWin, backFlag);
++ } else if (bgNoneRoot) {
++ /* nothing, handled in xf86CreateRootWindow */
+ } else {
+ if (whiteRoot)
+ pWin->background.pixel = pScreen->whitePixel;
+ else
+ pWin->background.pixel = pScreen->blackPixel;
+ backFlag |= CWBackPixel;
+- }
+
+- pWin->backingStore = defaultBackingStore;
+- pWin->forcedBS = (defaultBackingStore != NotUseful);
+- /* We SHOULD check for an error value here XXX */
+- (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
++ pScreen->ChangeWindowAttributes(pWin, backFlag);
++ }
+
+ MapWindow(pWin, serverClient);
+ }
+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
+index 236c00b..083a6ac 100644
+--- a/hw/xfree86/common/xf86Init.c
++++ b/hw/xfree86/common/xf86Init.c
+@@ -79,6 +79,7 @@
+ #ifdef RENDER
+ #include "picturestr.h"
+ #endif
++#include "xace.h"
+
+ #include "globals.h"
+
+@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin)
+ int ret = TRUE;
+ int err = Success;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ RootWinPropPtr pProp;
+ CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
+ dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
+@@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin)
+ }
+ }
+
++ if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) {
++ pWin->backgroundState = XaceBackgroundNoneState(pWin);
++ pWin->background.pixel = pScreen->whitePixel;
++ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
++ } else {
++ pWin->background.pixel = pScreen->blackPixel;
++ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
++ }
++
+ #ifdef DEBUG
+ ErrorF("xf86CreateRootWindow() returns %d\n", ret);
+ #endif
+diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
+index 904c369..8c38f69 100644
+--- a/hw/xfree86/common/xf86str.h
++++ b/hw/xfree86/common/xf86str.h
+@@ -531,7 +531,7 @@ typedef struct _confdrirec {
+ } confDRIRec, *confDRIPtr;
+
+ /* These values should be adjusted when new fields are added to ScrnInfoRec */
+-#define NUM_RESERVED_INTS 16
++#define NUM_RESERVED_INTS 15
+ #define NUM_RESERVED_POINTERS 15
+ #define NUM_RESERVED_FUNCS 11
+
+@@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec {
+ ClockRangesPtr clockRanges;
+ int adjustFlags;
+
++ /* -nr support */
++ int canDoBGNoneRoot;
++
+ /*
+ * These can be used when the minor ABI version is incremented.
+ * The NUM_* parameters must be reduced appropriately to keep the
+diff --git a/include/opaque.h b/include/opaque.h
+index 07a0715..be1577b 100644
+--- a/include/opaque.h
++++ b/include/opaque.h
+@@ -71,6 +71,7 @@ extern Bool defeatAccessControl;
+ extern long maxBigRequestSize;
+ extern Bool party_like_its_1989;
+ extern Bool whiteRoot;
++extern Bool bgNoneRoot;
+
+ extern Bool CoreDump;
+
+diff --git a/os/utils.c b/os/utils.c
+index b100949..c41b45b 100644
+--- a/os/utils.c
++++ b/os/utils.c
+@@ -515,6 +515,7 @@ void UseMsg(void)
+ #endif
+ ErrorF("-nolisten string don't listen on protocol\n");
+ ErrorF("-noreset don't reset after last client exists\n");
++ ErrorF("-nr create root window with no background\n");
+ ErrorF("-reset reset after last client exists\n");
+ ErrorF("-p # screen-saver pattern duration (minutes)\n");
+ ErrorF("-pn accept failure to listen on all ports\n");
+@@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[])
+ defaultBackingStore = WhenMapped;
+ else if ( strcmp( argv[i], "-wr") == 0)
+ whiteRoot = TRUE;
++ else if ( strcmp( argv[i], "-nr") == 0)
++ bgNoneRoot = TRUE;
+ else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
+ if(++i < argc) {
+ long reqSizeArg = atol(argv[i]);
+--
+1.5.3.4
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
new file mode 100644
index 000000000..2754170d2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
@@ -0,0 +1,179 @@
+diff --git a/glx/glxdri2.c b/glx/glxdri2.c
+index 146ea82..3b5338b 100644
+--- a/glx/glxdri2.c
++++ b/glx/glxdri2.c
+@@ -70,6 +70,7 @@ struct __GLXDRIscreen {
+
+ const __DRIcoreExtension *core;
+ const __DRIdri2Extension *dri2;
++ const __DRI2flushExtension *flush;
+ const __DRIcopySubBufferExtension *copySubBuffer;
+ const __DRIswapControlExtension *swapControl;
+ const __DRItexBufferExtension *texBuffer;
+@@ -135,10 +136,14 @@ __glXDRIdrawableCopySubBuffer(__GLXdrawable *drawable,
+ static GLboolean
+ __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
+ {
+- __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
++ __GLXDRIdrawable *priv = (__GLXDRIdrawable *) drawable;
++ __GLXDRIscreen *screen = priv->screen;
++
++ if (!DRI2SwapBuffers(drawable->pDraw))
++ return FALSE;
+
+- __glXDRIdrawableCopySubBuffer(drawable, 0, 0,
+- private->width, private->height);
++ if (screen->flush->flushInvalidate)
++ (*screen->flush->flushInvalidate)(priv->driDrawable);
+
+ return TRUE;
+ }
+diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
+index 580383d..23e6467 100644
+--- a/hw/xfree86/dri2/dri2.c
++++ b/hw/xfree86/dri2/dri2.c
+@@ -70,6 +70,7 @@ typedef struct _DRI2Screen {
+ DRI2CreateBufferProcPtr CreateBuffer;
+ DRI2DestroyBufferProcPtr DestroyBuffer;
+ DRI2CopyRegionProcPtr CopyRegion;
++ DRI2SwapBuffersProcPtr SwapBuffers;
+
+ HandleExposuresProcPtr HandleExposures;
+ } DRI2ScreenRec, *DRI2ScreenPtr;
+@@ -422,6 +423,49 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
+ return Success;
+ }
+
++Bool
++DRI2SwapBuffers(DrawablePtr pDraw)
++{
++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen);
++ DRI2DrawablePtr pPriv;
++ DRI2BufferPtr pDestBuffer, pSrcBuffer;
++ int i;
++
++ pPriv = DRI2GetDrawable(pDraw);
++ if (pPriv == NULL)
++ return FALSE;
++
++ pDestBuffer = NULL;
++ pSrcBuffer = NULL;
++ for (i = 0; i < pPriv->bufferCount; i++)
++ {
++ if (pPriv->buffers[i]->attachment == DRI2BufferFrontLeft)
++ pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i];
++ if (pPriv->buffers[i]->attachment == DRI2BufferBackLeft)
++ pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i];
++ }
++ if (pSrcBuffer == NULL || pDestBuffer == NULL)
++ return FALSE;
++
++ if (ds->SwapBuffers) {
++ if ((*ds->SwapBuffers)(pDraw, pDestBuffer, pSrcBuffer))
++ return TRUE;
++ }
++
++ BoxRec box;
++ RegionRec region;
++
++ box.x1 = 0;
++ box.y1 = 0;
++ box.x2 = pDraw->width;
++ box.y2 = pDraw->height;
++ REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
++ if (DRI2CopyRegion(pDraw, &region, DRI2BufferFrontLeft, DRI2BufferBackLeft) != Success)
++ return FALSE;
++
++ return TRUE;
++}
++
+ void
+ DRI2DestroyDrawable(DrawablePtr pDraw)
+ {
+@@ -538,6 +582,9 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
+ }
+ ds->CopyRegion = info->CopyRegion;
+
++ if (info->version >= 3)
++ ds->SwapBuffers = info->SwapBuffers;
++
+ dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
+
+ xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] Setup complete\n");
+diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
+index f369267..e2784dd 100644
+--- a/hw/xfree86/dri2/dri2.h
++++ b/hw/xfree86/dri2/dri2.h
+@@ -67,6 +67,10 @@ typedef void (*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
+ DRI2BufferPtr pDestBuffer,
+ DRI2BufferPtr pSrcBuffer);
+
++typedef Bool (*DRI2SwapBuffersProcPtr)(DrawablePtr pDraw,
++ DRI2BufferPtr pFrontBuffer,
++ DRI2BufferPtr pBackBuffer);
++
+ typedef void (*DRI2WaitProcPtr)(WindowPtr pWin,
+ unsigned int sequence);
+
+@@ -90,6 +94,7 @@ typedef struct {
+ DRI2CreateBuffersProcPtr CreateBuffers;
+ DRI2DestroyBuffersProcPtr DestroyBuffers;
+ DRI2CopyRegionProcPtr CopyRegion;
++ DRI2SwapBuffersProcPtr SwapBuffers;
+ DRI2WaitProcPtr Wait;
+
+ /**
+@@ -153,4 +158,6 @@ extern _X_EXPORT DRI2Buffer2Ptr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
+ int *width, int *height, unsigned int *attachments, int count,
+ int *out_count);
+
++extern _X_EXPORT Bool DRI2SwapBuffers(DrawablePtr pDraw);
++
+ #endif
+diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
+index 3c06174..67b419b 100644
+--- a/hw/xfree86/dri2/dri2ext.c
++++ b/hw/xfree86/dri2/dri2ext.c
+@@ -81,7 +81,7 @@ ProcDRI2QueryVersion(ClientPtr client)
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.majorVersion = 1;
+- rep.minorVersion = 1;
++ rep.minorVersion = 2;
+
+ if (client->swapped) {
+ swaps(&rep.sequenceNumber, n);
+@@ -323,6 +323,24 @@ ProcDRI2CopyRegion(ClientPtr client)
+ }
+
+ static int
++ProcDRI2SwapBuffers(ClientPtr client)
++{
++ REQUEST(xDRI2SwapBuffersReq);
++ DrawablePtr pDrawable;
++ int status;
++
++ REQUEST_SIZE_MATCH(xDRI2SwapBuffersReq);
++
++ if (!validDrawable(client, stuff->drawable, &pDrawable, &status))
++ return status;
++
++ if (!DRI2SwapBuffers(pDrawable))
++ return BadAlloc;
++
++ return client->noClientException;
++}
++
++static int
+ ProcDRI2Dispatch (ClientPtr client)
+ {
+ REQUEST(xReq);
+@@ -350,6 +368,8 @@ ProcDRI2Dispatch (ClientPtr client)
+ return ProcDRI2CopyRegion(client);
+ case X_DRI2GetBuffersWithFormat:
+ return ProcDRI2GetBuffersWithFormat(client);
++ case X_DRI2SwapBuffers:
++ return ProcDRI2SwapBuffers(client);
+ default:
+ return BadRequest;
+ }
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
new file mode 100644
index 000000000..efc85a42a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
@@ -0,0 +1,38 @@
+diff --git a/os/log.c b/os/log.c
+index 0860847..2c46f1a 100644
+--- a/os/log.c
++++ b/os/log.c
+@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args)
+ static char tmpBuffer[1024];
+ int len = 0;
+
++ struct timeval time;
++ time_t tv_sec;
++ suseconds_t tv_usec;
++ static Bool first = TRUE;
++ static time_t start_tv_sec;
++ static suseconds_t start_usec;
++ int diff_sec, diff_usec;
++
++ gettimeofday(&time, NULL);
++ tv_sec = time.tv_sec;
++ tv_usec = time.tv_usec;
++ if (first == TRUE) {
++ start_tv_sec = tv_sec;
++ start_usec = tv_usec;
++ first = FALSE;
++ }
++ diff_sec = (int)difftime(tv_sec, start_tv_sec);
++ diff_usec = (tv_usec - start_usec);
++ if (diff_usec < 0) {
++ diff_sec--;
++ diff_usec += 1000000;
++ }
++ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec);
++ len = strlen(tmpBuffer);
++ if (logFile)
++ fwrite(tmpBuffer, len, 1, logFile);
++
+ /*
+ * Since a va_list can only be processed once, write the string to a
+ * buffer, and then write the buffer out to the appropriate output
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
new file mode 100644
index 000000000..afc94dcc5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
@@ -0,0 +1,105 @@
+diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
+index 7f40857..cf58c01 100644
+--- a/hw/xfree86/os-support/linux/lnx_init.c
++++ b/hw/xfree86/os-support/linux/lnx_init.c
+@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE;
+ static int VTnum = -1;
+ static Bool VTSwitch = TRUE;
+ static Bool ShareVTs = FALSE;
++Bool NoHwAccess = FALSE;
+ static int activeVT = -1;
+
+ static int vtPermSave[4];
+@@ -80,9 +81,11 @@ saveVtPerms(void)
+ static void
+ restoreVtPerms(void)
+ {
+- /* Set the terminal permissions back to before we started. */
+- chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
+- chown(vtname, vtPermSave[2], vtPermSave[3]);
++ if (geteuid() == 0) {
++ /* Set the terminal permissions back to before we started. */
++ (void)chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
++ (void)chown(vtname, vtPermSave[2], vtPermSave[3]);
++ }
+ }
+
+ static void *console_handler;
+@@ -210,20 +213,22 @@ xf86OpenConsole(void)
+ xf86Msg(X_WARNING,
+ "xf86OpenConsole: Could not save ownership of VT\n");
+
+- /* change ownership of the vt */
+- if (chown(vtname, getuid(), getgid()) < 0)
+- xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
+- vtname, strerror(errno));
+-
+- /*
+- * the current VT device we're running on is not "console", we want
+- * to grab all consoles too
+- *
+- * Why is this needed??
+- */
+- if (chown("/dev/tty0", getuid(), getgid()) < 0)
+- xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
+- strerror(errno));
++ if (geteuid() == 0) {
++ /* change ownership of the vt */
++ if (chown(vtname, getuid(), getgid()) < 0)
++ xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
++ vtname, strerror(errno));
++
++ /*
++ * the current VT device we're running on is not
++ * "console", we want to grab all consoles too
++ *
++ * Why is this needed??
++ */
++ if (chown("/dev/tty0", getuid(), getgid()) < 0)
++ xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
++ strerror(errno));
++ }
+ }
+
+ /*
+@@ -433,6 +438,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
+ ShareVTs = TRUE;
+ return(1);
+ }
++ if (!strcmp(argv[i], "-nohwaccess"))
++ {
++ NoHwAccess = TRUE;
++ return(1);
++ }
+ if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
+ {
+ if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
+@@ -454,5 +464,6 @@ xf86UseMsg()
+ ErrorF("don't detach controlling tty (for debugging only)\n");
+ ErrorF("-novtswitch don't immediately switch to new VT\n");
+ ErrorF("-sharevts share VTs with another X server\n");
++ ErrorF("-nohwaccess don't access hardware ports directly\n");
+ return;
+ }
+diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
+index 688106a..34a845b 100644
+--- a/hw/xfree86/os-support/linux/lnx_video.c
++++ b/hw/xfree86/os-support/linux/lnx_video.c
+@@ -51,6 +51,7 @@
+ #define MAP_FAILED ((void *)-1)
+ #endif
+
++extern Bool NoHwAccess;
+ static Bool ExtendedEnabled = FALSE;
+
+ #ifdef __ia64__
+@@ -509,6 +510,9 @@ xf86EnableIO(void)
+ int fd;
+ unsigned int ioBase_phys;
+ #endif
++ /* Fake it... */
++ if (NoHwAccess)
++ return TRUE;
+
+ if (ExtendedEnabled)
+ return TRUE;
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.8.99.904.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.8.99.904.bb
new file mode 100644
index 000000000..98d79a1b2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_1.8.99.904.bb
@@ -0,0 +1,20 @@
+require xserver-xf86-dri-lite.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353"
+
+PROTO_DEPS += "xf86driproto dri2proto"
+
+DEPENDS += "font-util"
+
+PE = "1"
+PR = "r1"
+
+SRC_URI += "file://nodolt.patch \
+ file://crosscompile.patch"
+# file://libdri-xinerama-symbol.patch;patch=1 \
+# file://xserver-boottime.patch;patch=1"
+
+# Misc build failure for master HEAD
+SRC_URI += "file://fix_open_max_preprocessor_error.patch"
+
+EXTRA_OECONF += "--enable-dri --enable-dri2"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb
new file mode 100644
index 000000000..4789f28f5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb
@@ -0,0 +1,31 @@
+require xserver-xf86-dri-lite.inc
+
+PE = "1"
+PR = "r0"
+PV = "1.7.99+git${SRCPV}"
+
+PROTO_DEPS += "xf86driproto dri2proto"
+
+DEPENDS += "font-util"
+
+RDEPENDS_${PN} += "xkeyboard-config"
+
+# file://cache-xkbcomp-output-for-fast-start-up.patch;patch=1 \
+# file://xserver-1.5.0-bg-none-root.patch;patch=1 \
+# file://xserver-no-root-2.patch;patch=1 \
+# file://xserver-boottime.patch;patch=1"
+# file://xserver-DRI2Swapbuffer.patch;patch=1"
+
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/xserver;protocol=git;branch=master \
+ file://nodolt.patch;patch=1 \
+ file://crosscompile.patch;patch=1 \
+ file://fix_macros1.patch;patch=1"
+# file://libdri-xinerama-symbol.patch;patch=1"
+
+# Misc build failure for master HEAD
+SRC_URI += "file://fix_open_max_preprocessor_error.patch;patch=1"
+
+EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc
new file mode 100644
index 000000000..7150a2a46
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc
@@ -0,0 +1,34 @@
+require xserver-xf86-common.inc
+
+PROVIDES += "xserver-xf86-lite"
+
+PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto"
+
+LIB_DEPS = "pixman libxfont xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess openssl"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+RDEPENDS_${PN} += "hal xorg-minimal-fonts"
+
+FILES_${PN} += "${bindir}/Xorg "
+
+EXTRA_OECONF += "--disable-static \
+ --disable-acfb \
+ --disable-ccfb \
+ --disable-mcfb \
+ --disable-dga \
+ --disable-xinerama \
+ --disable-xf86misc \
+ --disable-xorgcfg \
+ --disable-record \
+ --disable-dmx \
+ --disable-xnest \
+ --disable-xvfb \
+ --enable-composite \
+ --disable-dri \
+ --disable-glx \
+ --sysconfdir=/etc/X11 \
+ --localstatedir=/var \
+ --with-fontdir=/usr/share/fonts/X11 \
+ --with-xkb-output=/var/lib/xkb \
+ ac_cv_file__usr_share_sgml_X11_defs_ent=no"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/crosscompile.patch
new file mode 100644
index 000000000..2341e40bc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/crosscompile.patch
@@ -0,0 +1,19 @@
+Index: xorg-server-1.7.99.2/configure.ac
+===================================================================
+--- xorg-server-1.7.99.2.orig/configure.ac 2010-01-29 16:38:49.000000000 +0000
++++ xorg-server-1.7.99.2/configure.ac 2010-01-29 16:42:39.000000000 +0000
+@@ -503,14 +503,10 @@
+
+ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
+ dnl otherwise uses standard subdirectories of FONTROOTDIR
+-AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
+- [DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
+- [
+ DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
+ case $host_os in
+ darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
+ esac
+- ])
+ AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
+ [ FONTPATH="$withval" ],
+ [ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/drmfix.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/drmfix.patch
new file mode 100644
index 000000000..a62a767f2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/drmfix.patch
@@ -0,0 +1,13 @@
+Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am 2007-08-23 21:04:53.000000000 +0200
++++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am 2008-03-13 18:27:23.000000000 +0100
+@@ -41,7 +41,7 @@
+
+ AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
+
+-INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
++INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
+
+ # FIXME: These need to be added to the build
+ LNX_EXTRA_SRCS = \
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/fix_open_max_preprocessor_error.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/fix_open_max_preprocessor_error.patch
new file mode 100644
index 000000000..565832eed
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/fix_open_max_preprocessor_error.patch
@@ -0,0 +1,13 @@
+Index: git/os/osdep.h
+===================================================================
+--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100
++++ git/os/osdep.h 2008-10-07 18:39:36.000000000 +0100
+@@ -92,7 +92,7 @@
+ * like sysconf(_SC_OPEN_MAX) is not supported.
+ */
+
+-#if OPEN_MAX <= 256
++#if 0
+ #define MAXSOCKS (OPEN_MAX - 1)
+ #else
+ #define MAXSOCKS 256
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/libdri-xinerama-symbol.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/libdri-xinerama-symbol.patch
new file mode 100644
index 000000000..db29da93c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/libdri-xinerama-symbol.patch
@@ -0,0 +1,50 @@
+Index: xorg-server-1.5.0/hw/xfree86/dri/dri.c
+===================================================================
+--- xorg-server-1.5.0.orig/hw/xfree86/dri/dri.c 2008-09-24 17:43:04.000000000 +0100
++++ xorg-server-1.5.0/hw/xfree86/dri/dri.c 2008-09-24 17:46:38.000000000 +0100
+@@ -73,10 +73,6 @@
+
+ #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu)
+
+-#if !defined(PANORAMIX)
+-extern Bool noPanoramiXExtension;
+-#endif
+-
+ static int DRIEntPrivIndex = -1;
+ static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey;
+ static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey;
+@@ -307,7 +303,6 @@
+ drm_context_t * reserved;
+ int reserved_count;
+ int i;
+- Bool xineramaInCore = FALSE;
+ DRIEntPrivPtr pDRIEntPriv;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ DRIContextFlags flags = 0;
+@@ -320,20 +315,13 @@
+ return FALSE;
+ }
+
+- /*
+- * If Xinerama is on, don't allow DRI to initialise. It won't be usable
+- * anyway.
+- */
+- if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
+- xineramaInCore = TRUE;
+-
+- if (xineramaInCore) {
+- if (!noPanoramiXExtension) {
+- DRIDrvMsg(pScreen->myNum, X_WARNING,
+- "Direct rendering is not supported when Xinerama is enabled\n");
+- return FALSE;
+- }
++#if defined(PANORAMIX)
++ if (!noPanoramiXExtension) {
++ DRIDrvMsg(pScreen->myNum, X_WARNING,
++ "Direct rendering is not supported when Xinerama is enabled\n");
++ return FALSE;
+ }
++#endif
+
+ if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize,
+ pDRIInfo->busIdString,
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/nodolt.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/nodolt.patch
new file mode 100644
index 000000000..6b34032a3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/nodolt.patch
@@ -0,0 +1,12 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000
++++ git/configure.ac 2009-01-15 20:35:38.000000000 +0000
+@@ -62,7 +62,6 @@
+ AC_LIBTOOL_WIN32_DLL
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-DOLT
+ AC_PROG_MAKE_SET
+ PKG_PROG_PKG_CONFIG
+ AC_PROG_LEX
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
new file mode 100644
index 000000000..235b55153
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite/revert_make_sys_c_use_unaligned_access_functions.patch
@@ -0,0 +1,256 @@
+From 74ab27f64a747ee45810f99cdc6e29b82cf8035e Mon Sep 17 00:00:00 2001
+From: Tiago Vignatti <tiago.vignatti@nokia.com>
+Date: Mon, 28 Dec 2009 16:00:28 +0000
+Subject: Revert "Make sys.c use unaligned access functions provided in compiler."
+
+This reverts commit da923d0bc15e99a8ed1986bd6f5df37f7af7284b.
+
+Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+---
+diff --git a/hw/xfree86/x86emu/Makefile.am b/hw/xfree86/x86emu/Makefile.am
+index e7368f5..df96977 100644
+--- a/hw/xfree86/x86emu/Makefile.am
++++ b/hw/xfree86/x86emu/Makefile.am
+@@ -11,7 +11,7 @@ libx86emu_la_SOURCES = debug.c \
+ sys.c \
+ x86emu.h
+
+-INCLUDES = $(XORG_INCS)
++INCLUDES =
+
+ AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
+
+diff --git a/hw/xfree86/x86emu/sys.c b/hw/xfree86/x86emu/sys.c
+index 2ebf6f1..e15fb09 100644
+--- a/hw/xfree86/x86emu/sys.c
++++ b/hw/xfree86/x86emu/sys.c
+@@ -48,13 +48,168 @@
+ #ifndef NO_SYS_HEADERS
+ #include <string.h>
+ #endif
+-#include "compiler.h" /* for unaligned access functions */
+ /*------------------------- Global Variables ------------------------------*/
+
+ X86EMU_sysEnv _X86EMU_env; /* Global emulator machine state */
+ X86EMU_intrFuncs _X86EMU_intrTab[256];
+
+ /*----------------------------- Implementation ----------------------------*/
++#if defined(__alpha__) || defined(__alpha)
++/* to cope with broken egcs-1.1.2 :-(((( */
++
++#define ALPHA_UALOADS
++/*
++ * inline functions to do unaligned accesses
++ * from linux/include/asm-alpha/unaligned.h
++ */
++
++/*
++ * EGCS 1.1 knows about arbitrary unaligned loads. Define some
++ * packed structures to talk about such things with.
++ */
++
++#if defined(__GNUC__)
++struct __una_u64 { unsigned long x __attribute__((packed)); };
++struct __una_u32 { unsigned int x __attribute__((packed)); };
++struct __una_u16 { unsigned short x __attribute__((packed)); };
++#endif
++
++static __inline__ unsigned long ldq_u(unsigned long * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u64 *ptr = (const struct __una_u64 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extql %0,%2,%0\n\t"
++ "extqh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(7+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++static __inline__ unsigned long ldl_u(unsigned int * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u32 *ptr = (const struct __una_u32 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extll %0,%2,%0\n\t"
++ "extlh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(3+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++static __inline__ unsigned long ldw_u(unsigned short * r11)
++{
++#if defined(__GNUC__)
++ const struct __una_u16 *ptr = (const struct __una_u16 *) r11;
++ return ptr->x;
++#else
++ unsigned long r1,r2;
++ __asm__("ldq_u %0,%3\n\t"
++ "ldq_u %1,%4\n\t"
++ "extwl %0,%2,%0\n\t"
++ "extwh %1,%2,%1"
++ :"=&r" (r1), "=&r" (r2)
++ :"r" (r11),
++ "m" (*r11),
++ "m" (*(const unsigned long *)(1+(char *) r11)));
++ return r1 | r2;
++#endif
++}
++
++/*
++ * Elemental unaligned stores
++ */
++
++static __inline__ void stq_u(unsigned long r5, unsigned long * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u64 *ptr = (struct __una_u64 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "insqh %6,%7,%5\n\t"
++ "insql %6,%7,%4\n\t"
++ "mskqh %3,%7,%3\n\t"
++ "mskql %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(7+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++
++static __inline__ void stl_u(unsigned long r5, unsigned int * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u32 *ptr = (struct __una_u32 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "inslh %6,%7,%5\n\t"
++ "insll %6,%7,%4\n\t"
++ "msklh %3,%7,%3\n\t"
++ "mskll %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(3+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++
++static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
++{
++#if defined(__GNUC__)
++ struct __una_u16 *ptr = (struct __una_u16 *) r11;
++ ptr->x = r5;
++#else
++ unsigned long r1,r2,r3,r4;
++
++ __asm__("ldq_u %3,%1\n\t"
++ "ldq_u %2,%0\n\t"
++ "inswh %6,%7,%5\n\t"
++ "inswl %6,%7,%4\n\t"
++ "mskwh %3,%7,%3\n\t"
++ "mskwl %2,%7,%2\n\t"
++ "bis %3,%5,%3\n\t"
++ "bis %2,%4,%2\n\t"
++ "stq_u %3,%1\n\t"
++ "stq_u %2,%0"
++ :"=m" (*r11),
++ "=m" (*(unsigned long *)(1+(char *) r11)),
++ "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
++ :"r" (r5), "r" (r11));
++#endif
++}
++#endif
+
+ /****************************************************************************
+ PARAMETERS:
+@@ -107,7 +262,13 @@ u16 X86API rdw(
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ val = ldw_u((u16*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ val = uldw((u16*)(M.mem_base + addr));
++#else
++ val = *(u16*)(M.mem_base + addr);
++#endif
+ DB( if (DEBUG_MEM_TRACE())
+ printk("%#08x 2 -> %#x\n", addr, val);)
+ return val;
+@@ -140,7 +301,13 @@ u32 X86API rdl(
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ val = ldl_u((u32*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ val = uldl((u32*)(M.mem_base + addr));
++#else
++ val = *(u32*)(M.mem_base + addr);
++#endif
+ DB( if (DEBUG_MEM_TRACE())
+ printk("%#08x 4 -> %#x\n", addr, val);)
+ return val;
+@@ -192,7 +359,13 @@ DB( if (DEBUG_MEM_TRACE())
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ stw_u(val,(u16*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ ustw(val,(u16*)(M.mem_base + addr));
++#else
++ *(u16*)(M.mem_base + addr) = val;
++#endif
+ }
+
+ /****************************************************************************
+@@ -222,7 +395,13 @@ DB( if (DEBUG_MEM_TRACE())
+ }
+ else
+ #endif
++#if defined(ALPHA_UALOADS)
+ stl_u(val,(u32*)(M.mem_base + addr));
++#elif defined(IA64_UALOADS)
++ ustl(val,(u32*)(M.mem_base + addr));
++#else
++ *(u32*)(M.mem_base + addr) = val;
++#endif
+ }
+
+ /****************************************************************************
+--
+cgit v0.8.3-6-g21f6
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite_1.7.99.2.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite_1.7.99.2.bb
new file mode 100644
index 000000000..5ef23019a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-lite_1.7.99.2.bb
@@ -0,0 +1,12 @@
+require xserver-xf86-lite.inc
+
+PR = "r1"
+
+DEPENDS += "font-util"
+
+SRC_URI += "file://nodolt.patch;patch=1 \
+ file://crosscompile.patch;patch=1"
+
+# Misc build failure for master HEAD
+SRC_URI += "file://fix_open_max_preprocessor_error.patch;patch=1 \
+ file://revert_make_sys_c_use_unaligned_access_functions.patch;patch=1"
diff --git a/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
new file mode 100644
index 000000000..ee5578454
--- /dev/null
+++ b/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
+ while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ]
+ do
+ /usr/bin/xtscal
+ done
+fi
diff --git a/meta/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta/recipes-graphics/xtscal/xtscal/change-cross.patch
new file mode 100644
index 000000000..3ecd36bb5
--- /dev/null
+++ b/meta/recipes-graphics/xtscal/xtscal/change-cross.patch
@@ -0,0 +1,16 @@
+--- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000
++++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000
+@@ -131,9 +131,10 @@
+ {
+ XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
+
+- XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
+- (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
+- WIDTH + 1, WIDTH + 1, 0, 360 * 64);
++ XFillRectangle (dpy, crosshair_w, crosshair_gc,
++ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
++ WIDTH, WIDTH);
+ }
+
+ void
diff --git a/meta/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta/recipes-graphics/xtscal/xtscal/cleanup.patch
new file mode 100644
index 000000000..ce674edef
--- /dev/null
+++ b/meta/recipes-graphics/xtscal/xtscal/cleanup.patch
@@ -0,0 +1,619 @@
+---
+ Makefile.am | 9 --
+ configure.ac | 3
+ gpe-dist.am | 12 ---
+ h3600_ts.h | 216 -----------------------------------------------------------
+ main.c | 210 ++-------------------------------------------------------
+ xtscal.in | 19 -----
+ 6 files changed, 14 insertions(+), 455 deletions(-)
+
+Index: xtscal-0.6.3/xtscal.in
+===================================================================
+--- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-module_id() {
+- # Get model name
+- echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
+-}
+-
+-case `module_id` in
+- "HP IPAQ H3100" | "HP IPAQ H3800" )
+- ARGS="-rotate 90" ;;
+- "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
+- ARGS="-rotate 270" ;;
+- # H2200: works without rotation
+-esac
+-
+-# the things we do for autoconf
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-exec @libexecdir@/xtscal.bin $ARGS $*
+Index: xtscal-0.6.3/main.c
+===================================================================
+--- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100
++++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100
+@@ -22,12 +22,10 @@
+ #include <X11/Xlib.h>
+
+ #include <X11/extensions/Xrender.h>
+-#include <X11/extensions/Xrandr.h>
+ #include <X11/Xft/Xft.h>
+ #include <X11/extensions/xcalibrate.h>
+ #include <X11/keysym.h>
+
+-#include "h3600_ts.h"
+ #include "calibrate.h"
+
+ Display *dpy;
+@@ -45,15 +43,11 @@ XftColor xftcol;
+ XftDraw *xftdraw;
+ XftFont *xftfont;
+ int screen_x, screen_y;
+-int ts_fd;
+ int samples;
+ Pixmap bg_pixmap;
+ int flag_debug;
+-int rotation = 0;
+ int error_base, event_base;
+
+-int using_xcalibrate;
+-
+ int moving;
+
+ #define CROSSHAIR_SIZE 25
+@@ -63,7 +57,6 @@ int moving;
+ #define ENOUGH 5
+ #define MAX_SAMPLES 40
+
+-#define RAW_DEVICE "/dev/h3600_tsraw"
+ #define FONTNAME "sans-10"
+
+ struct point
+@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
+ void
+ set_calibration (calibration *cal)
+ {
+- TS_CAL tc;
+- int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
+ calibration ocal = *cal;
+
+- if (using_xcalibrate)
+- {
+ FILE *fp;
+ if (flag_debug)
+ printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
+ }
+ fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
+ fclose (fp);
+- return;
+- }
+-
+- xtrans = cal->a[0] / cal->a[6];
+- ytrans = cal->a[3] / cal->a[6];
+- xscale = cal->a[1] * 256 / cal->a[6];
+- yscale = cal->a[5] * 256 / cal->a[6];
+- xyscale = cal->a[2] * 256 / cal->a[6];
+- yxscale = cal->a[4] * 256 / cal->a[6];
+-
+- tc.xtrans = xtrans;
+- tc.ytrans = ytrans;
+- tc.xscale = xscale;
+- tc.yscale = yscale;
+- tc.xyswap = 0;
+-
+- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-
+- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+- {
+- perror ("TS_SET_CAL");
+- exit (1);
+- }
+ }
+
+ void
+@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
+ }
+
+ void
+-read_ts (void)
+-{
+- TS_EVENT ts_ev;
+- int r;
+-
+- r = read (ts_fd, &ts_ev, sizeof (ts_ev));
+- if (r == sizeof (ts_ev))
+- handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
+-}
+-
+-void
+-do_cal (char **args)
+-{
+- TS_CAL tc;
+-
+- tc.xscale = atoi (args[0]);
+- tc.xtrans = atoi (args[1]);
+- tc.yscale = atoi (args[2]);
+- tc.ytrans = atoi (args[3]);
+- tc.xyswap = atoi (args[4]);
+-
+- if (flag_debug)
+- fprintf (stderr, "setting: %d %d %d %d %d\n",
+- tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
+-
+- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
+- {
+- perror ("TS_SET_CAL");
+- exit (1);
+- }
+-
+- exit (0);
+-}
+-
+-void
+-show_cal (void)
+-{
+- TS_CAL tc;
+-
+- if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
+- {
+- perror ("TS_GET_CAL");
+- exit (1);
+- }
+-
+- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
+-}
+-
+-void
+ usage (const char *name)
+ {
+- fprintf (stderr, "usage: %s -view\n", name);
+- fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name);
+- fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
+-
++ fprintf (stderr, "usage: %s [-debug]\n", name);
+ exit (1);
+ }
+
+ int
+-xrr_supported (void)
+-{
+- int xrr_event_base, xrr_error_base;
+- int xrr_major, xrr_minor;
+-
+- if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
+- || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
+- || xrr_major != 1
+- || xrr_minor < 1)
+- return 0;
+-
+- return 1;
+-}
+-
+-int
+ main (int argc, char *argv[])
+ {
+ XSetWindowAttributes attributes;
+@@ -480,31 +379,11 @@ main (int argc, char *argv[])
+ int max_fd;
+ GC bg_gc;
+ int i;
+- int have_xrandr;
+
+ for (i = 1; i < argc; i++)
+ {
+- if (!strcmp (argv[i], "-view"))
+- {
+- show_cal ();
+- exit (0);
+- }
+- else if (!strcmp (argv[i], "-debug"))
++ if (!strcmp (argv[i], "-debug"))
+ flag_debug = 1;
+- else if (!strcmp (argv[i], "-cal"))
+- {
+- if (argc > (i + 5))
+- do_cal (argv + i + 1);
+- else
+- usage (argv[0]);
+- }
+- else if (!strcmp (argv[i], "-rotate"))
+- {
+- if (argc > (i + 1))
+- rotation = atoi (argv[++i]);
+- else
+- usage (argv[0]);
+- }
+ else
+ usage (argv[0]);
+ }
+@@ -531,48 +410,11 @@ main (int argc, char *argv[])
+ fprintf (stderr, "failed to set raw mode: error %d\n", r);
+ exit (1);
+ }
+-
+- using_xcalibrate = 1;
+- }
+-
+- have_xrandr = xrr_supported ();
+- if (have_xrandr)
+- {
+- XRRScreenConfiguration *rr_screen;
+- Rotation current_rotation;
+-
+- if (flag_debug)
+- fprintf (stderr, "XRANDR is supported\n");
+-
+- rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
+-
+- XRRRotations (dpy, screen, &current_rotation);
+-
+- XRRFreeScreenConfigInfo (rr_screen);
+-
+- if (flag_debug)
+- fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
+-
+- switch (current_rotation)
+- {
+- case RR_Rotate_270:
+- rotation += 90;
+- case RR_Rotate_180:
+- rotation += 90;
+- case RR_Rotate_90:
+- rotation += 90;
+- rotation %= 360;
+- case RR_Rotate_0:
+- break;
+- default:
+- fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
+- break;
+- }
+ }
+ else
+ {
+- if (flag_debug)
+- fprintf (stderr, "XRANDR not supported\n");
++ perror ("XCALIBRATE extension missing");
++ exit (1);
+ }
+
+ attributes.override_redirect = flag_debug ? False : True;
+@@ -666,45 +508,17 @@ main (int argc, char *argv[])
+
+ for (i = 0; i < NR_POINTS; i++)
+ {
+- switch (rotation)
+- {
+- case 0:
+- cal.xfb[i] = cal.xscr[i];
+- cal.yfb[i] = cal.yscr[i];
+- break;
+- case 90:
+- cal.xfb[i] = cal.yscr[i];
+- cal.yfb[i] = screen_x - cal.xscr[i];
+- break;
+- case 180:
+- cal.xfb[i] = screen_x - cal.xscr[i];
+- cal.yfb[i] = screen_y - cal.yscr[i];
+- break;
+- case 270:
+- cal.xfb[i] = screen_y - cal.yscr[i];
+- cal.yfb[i] = cal.xscr[i];
+- break;
+- }
++ cal.xfb[i] = cal.xscr[i];
++ cal.yfb[i] = cal.yscr[i];
++ XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
+
+ if (flag_debug)
+- printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation,
++ printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
+ cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
+ }
+
+ next_event ();
+
+- if (!using_xcalibrate)
+- {
+- ts_fd = open (RAW_DEVICE, O_RDONLY);
+- if (ts_fd < 0)
+- {
+- perror (RAW_DEVICE);
+- exit (1);
+- }
+- }
+-
+- max_fd = (xfd > ts_fd) ? xfd : ts_fd;
+-
+ for (;;)
+ {
+ fd_set fds;
+@@ -713,12 +527,8 @@ main (int argc, char *argv[])
+
+ FD_ZERO (&fds);
+ FD_SET (xfd, &fds);
+- if (ts_fd != -1)
+- FD_SET (ts_fd, &fds);
+
+- select (max_fd + 1, &fds, NULL, NULL, NULL);
+-
+- if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
+- read_ts ();
++ select (xfd + 1, &fds, NULL, NULL, NULL);
+ }
+ }
++
+Index: xtscal-0.6.3/configure.ac
+===================================================================
+--- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100
++++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100
+@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ # Checks for programs.
+ AC_PROG_CC
+
+-PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
++PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
+
+ AC_CONFIG_FILES([Makefile])
+-AC_CONFIG_FILES([xtscal])
+ AC_OUTPUT
+Index: xtscal-0.6.3/gpe-dist.am
+===================================================================
+--- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,12 +0,0 @@
+-CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
+-
+-dist-upload: dist
+- scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
+-
+-tag:
+- cvs tag $(CVSTAG)
+-
+-retag:
+- cvs tag -F $(CVSTAG)
+-
+-source: tag dist-upload
+Index: xtscal-0.6.3/h3600_ts.h
+===================================================================
+--- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,216 +0,0 @@
+-/*
+-*
+-* Driver for the H3600 Touch Screen and other Atmel controlled devices.
+-*
+-* Copyright 2000 Compaq Computer Corporation.
+-*
+-* Use consistent with the GNU GPL is permitted,
+-* provided that this copyright notice is
+-* preserved in its entirety in all copies and derived works.
+-*
+-* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
+-* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
+-* FITNESS FOR ANY PARTICULAR PURPOSE.
+-*
+-* Author: Charles Flynn.
+-*
+-*/
+-
+-
+-#ifndef __H3600_TS_H__
+-#define __H3600_TS_H__
+-
+-#include <linux/ioctl.h>
+-
+-enum h3600_ts_minor_devices {
+- TS_MINOR = 0,
+- TSRAW_MINOR = 1,
+- KEY_MINOR = 2
+-};
+-
+-typedef struct h3600_ts_calibration {
+- int xscale;
+- int xtrans;
+- int yscale;
+- int ytrans;
+- int xyswap;
+-} TS_CAL;
+-
+-typedef struct h3600_ts_event {
+- unsigned short pressure;
+- unsigned short x;
+- unsigned short y;
+- unsigned short pad;
+-} TS_EVENT;
+-
+-/* Deprecated - do not use */
+-typedef struct h3600_ts_return {
+- unsigned short pressure;
+- unsigned short x;
+- unsigned short y;
+- unsigned short pad;
+-} TS_RET;
+-
+-enum power_button_mode {
+- PBM_SUSPEND = 0,
+- PBM_GENERATE_KEYPRESS = 1
+-};
+-
+-
+-/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
+-
+-typedef struct therm_dev {
+- short data;
+-} THERM_DEV;
+-
+-#define H3600_BATT_CHEM_ALKALINE 0x01
+-#define H3600_BATT_CHEM_NICD 0x02
+-#define H3600_BATT_CHEM_NIMH 0x03
+-#define H3600_BATT_CHEM_LION 0x04
+-#define H3600_BATT_CHEM_LIPOLY 0x05
+-#define H3600_BATT_CHEM_NOT_INSTALLED 0x06
+-#define H3600_BATT_CHEM_UNKNOWN 0xff
+-
+-/* These should match the apm_bios.h definitions */
+-#define H3600_AC_STATUS_AC_OFFLINE 0x00
+-#define H3600_AC_STATUS_AC_ONLINE 0x01
+-#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */
+-#define H3600_AC_STATUS_AC_UNKNOWN 0xff
+-
+-/* These bitfields are rarely "or'd" together */
+-#define H3600_BATT_STATUS_HIGH 0x01
+-#define H3600_BATT_STATUS_LOW 0x02
+-#define H3600_BATT_STATUS_CRITICAL 0x04
+-#define H3600_BATT_STATUS_CHARGING 0x08
+-#define H3600_BATT_STATUS_CHARGE_MAIN 0x10
+-#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */
+-#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */
+-#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */
+-#define H3600_BATT_STATUS_NOBATT 0x80
+-#define H3600_BATT_STATUS_UNKNOWN 0xff
+-
+-struct battery_data {
+- unsigned char chemistry;
+- unsigned char status;
+- unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */
+- unsigned short percentage; /* Percentage of full charge */
+- unsigned short life; /* Life remaining in minutes */
+-};
+-
+-struct h3600_battery {
+- unsigned char ac_status;
+- unsigned char battery_count; /* How many batteries we have */
+- struct battery_data battery[2];
+-};
+-
+-/* -------- EEPROM and SPI Interfaces ---------------*/
+-
+-#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */
+-#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/
+-#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */
+-#define SPI_WR_BUFSIZ 7
+-
+-/* The EEPROM is where internal programs are stored on the Amtel.
+- You probably don't want to read or write these values */
+-
+-typedef struct h3600_eeprom_read_request {
+- unsigned char addr; /* 8bit Address Offset 0-255 */
+- unsigned char len; /* Number of 16bit words to read 0-128 */
+- unsigned short buff[EEPROM_RD_BUFSIZ];
+-} EEPROM_READ;
+-
+-typedef struct h3600_eeprom_write_request {
+- unsigned char len; /* used only to compute the number of bytes to send */
+- unsigned char addr; /* 0-128 */
+- unsigned short buff[EEPROM_WR_BUFSIZ];
+-} EEPROM_WRITE;
+-
+-/* The SPI bus connects to EEPROMs located on sleeves plugged into
+- the iPAQ. You may want to read these values */
+-
+-typedef struct h3600_spi_read_request {
+- unsigned short addr; /* 16bit Address Offset 0-128 */
+- unsigned char len; /* Number of bytes to read */
+- unsigned char buff[SPI_RD_BUFSIZ];
+-} SPI_READ;
+-
+-#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */
+-
+-typedef struct h3600_spi_write_request {
+- unsigned short len; /* used only to compute the number of bytes to send */
+- unsigned short addr; /* this 16bit address accesses a single byte */
+- unsigned char buff[SPI_WR_BUFSIZ];
+-} SPI_WRITE;
+-
+-
+-/* -------- end of EEPROM and SPI Interfaces ---------------*/
+-
+-/* User space structures for IOCTL calls */
+-
+-typedef struct h3600_ts_version {
+- unsigned char host_version[8]; /* ascii "x.yy" */
+- unsigned char pack_version[8]; /* ascii "x.yy" */
+- unsigned char boot_type; /* TODO ?? */
+-} VER_RET;
+-
+-typedef struct h3600_ts_led {
+- unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */
+- unsigned char TotalTime; /* Units of 5 seconds */
+- unsigned char OnTime; /* units of 100m/s */
+- unsigned char OffTime; /* units of 100m/s */
+-} LED_IN;
+-
+-enum flite_mode {
+- FLITE_MODE1 = 1,
+- FLITE_AUTO_MODE = 1, /* for reference only */
+- FLITE_MANUAL_MODE = 2, /* Use this normally? */
+- FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
+-};
+-enum flite_pwr {
+- FLITE_PWR_OFF = 0,
+- FLITE_PWR_ON = 1
+-};
+-
+-typedef struct h3600_ts_flite {
+- unsigned char mode;
+- unsigned char pwr;
+- unsigned char brightness;
+-} FLITE_IN;
+-
+-/*************************** Updated "universal" structures *******************/
+-
+-/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
+-struct h3600_ts_backlight {
+- enum flite_pwr power; /* 0 = off, 1 = on */
+- unsigned char brightness; /* 0 - 255 */
+-};
+-
+-struct h3600_ts_contrast { /* Only useful on H3100 model */
+- unsigned char contrast; /* 0 - 255 */
+-};
+-
+-/* IOCTL cmds user or kernel space */
+-
+-/* Use 'f' as magic number */
+-#define IOC_H3600_TS_MAGIC 'f'
+-
+-/* TODO: Some of these IOWR values are just plain wrong */
+-#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version )
+-#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
+-#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
+-#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev)
+-#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led)
+-#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery)
+-#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite)
+-#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
+-#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
+-#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
+-#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
+-
+-/* New IOCTL interfaces - defined to be more user friendly */
+-#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
+-#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
+-
+-#endif
+Index: xtscal-0.6.3/Makefile.am
+===================================================================
+--- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100
++++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100
+@@ -1,11 +1,8 @@
+-libexec_PROGRAMS = xtscal.bin
+-bin_SCRIPTS = xtscal
++bin_PROGRAMS = xtscal
+
+-xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
++xtscal_SOURCES = main.c calibrate.c calibrate.h
+
+-xtscal_bin_LDADD = @XTSCAL_LIBS@
++xtscal_LDADD = @XTSCAL_LIBS@
+
+ INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
+
+-include gpe-dist.am
+-
diff --git a/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb
new file mode 100644
index 000000000..565393d06
--- /dev/null
+++ b/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Touchscreen calibration utility"
+HOMEPAGE = "http://gpe.linuxtogo.org"
+BUGTRACKER = "http://bugs.linuxtogo.org"
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
+
+SECTION = "x11/base"
+
+DEPENDS = "virtual/libx11 libxft libxcalibrate"
+
+PR = "r12"
+
+SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
+ file://change-cross.patch;patch=1 \
+ file://cleanup.patch;patch=1 \
+ file://30xTs_Calibrate.sh"
+
+inherit autotools
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/X11/Xsession.d/
+ install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
+}