aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics
diff options
context:
space:
mode:
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 00000000000..afdf2c8f08c
--- /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 00000000000..bdaf789799f
--- /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 00000000000..e73a8396714
--- /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 00000000000..9e7e7a3bf67
--- /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 00000000000..afbc022cdb4
--- /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 00000000000..a348cd3d4de
--- /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 00000000000..5a8ccec1640
--- /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 00000000000..71e6198030e
--- /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 00000000000..7e62954ee57
--- /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 00000000000..1a107c39933
--- /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 00000000000..4c74ffeb44b
--- /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 00000000000..3b7f6a9be52
--- /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 00000000000..cb8482b742c
--- /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 00000000000..ff889899e78
--- /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 00000000000..3baea4c5c9e
--- /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 00000000000..c5ed63ff12e
--- /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 00000000000..21a16feac21
--- /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 00000000000..a0f874db25e
--- /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 00000000000..09979f9e0c9
--- /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 00000000000..c5348ecefe4
--- /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 00000000000..5580596f091
--- /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 00000000000..0a2f261531b
--- /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 00000000000..54df63d2972
--- /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 00000000000..569b0d8be9a
--- /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 00000000000..ad77d636c14
--- /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 00000000000..d0613277a73
--- /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 00000000000..d2633ff2d4b
--- /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 00000000000..506d3fb156b
--- /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 00000000000..dfabbd56cc2
--- /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 00000000000..89ae3e53ca1
--- /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 00000000000..6bbbb244d77
--- /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 00000000000..1c272306bf0
--- /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 00000000000..72c9412d047
--- /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 00000000000..135b9e79f0b
--- /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 00000000000..cc9d43a6749
--- /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 00000000000..e2da2d6a7d1
--- /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 00000000000..22993ffd01c
--- /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 00000000000..c099309bbbd
--- /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 00000000000..68cf84ec227
--- /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 00000000000..544a7e588ce
--- /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 00000000000..4f449b1177d
--- /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 00000000000..953edf6bbc3
--- /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 00000000000..953edf6bbc3
--- /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 00000000000..f4af7c94f64
--- /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 00000000000..7685c211616
--- /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 00000000000..a20515ec5eb
--- /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 00000000000..4a3eddb8cdc
--- /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 00000000000..8bde67762c9
--- /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 00000000000..d241c8ff713
--- /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 00000000000..b86d6223853
--- /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 00000000000..dc949172b5b
--- /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 00000000000..a7cdc437134
--- /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 00000000000..5aa4153c1ab
--- /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 00000000000..3fa387c0493
--- /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 00000000000..7f54a3372a1
--- /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 00000000000..c5e1660c545
--- /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 00000000000..178526027ea
--- /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 00000000000..9d6a168bbca
--- /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 00000000000..4f153ff7f75
--- /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 00000000000..97ca069004b
--- /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 00000000000..d80dd5f4338
--- /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 00000000000..2993959dbbe
--- /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 00000000000..7fec1e91042
--- /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 00000000000..03a1bc86c22
--- /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 00000000000..e0403ecb3c5
--- /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 00000000000..44ae450a149
--- /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 00000000000..da62ffb3b2c
--- /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 00000000000..634fd4ea0f6
--- /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 00000000000..ab9cdc74a5b
--- /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 00000000000..09a03478099
--- /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 00000000000..ad3be578e4a
--- /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 00000000000..97bfd9c478d
--- /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 00000000000..083d32a04f0
--- /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 00000000000..990b738e66f
--- /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 00000000000..fdc866fe024
--- /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 00000000000..1d7d9c8f44c
--- /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 00000000000..3cdcd324f4c
--- /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 00000000000..4aaafb2b1e1
--- /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 00000000000..1d9b6f21a40
--- /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 00000000000..628de9830dd
--- /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 00000000000..ee12f0a5b32
--- /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 00000000000..ecd6d181eb6
--- /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 00000000000..4d6caa0c5a5
--- /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 00000000000..df9f2ab603d
--- /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 00000000000..f67e06083eb
--- /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 00000000000..52cea0e8f79
--- /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 00000000000..aca7c7da459
--- /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 00000000000..239da8f57c3
--- /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 00000000000..e09eb00ed11
--- /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 00000000000..ebed31e2a5c
--- /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 00000000000..f68eb2b4aec
--- /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 00000000000..09c0f70f47e
--- /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 00000000000..90cc5716bb4
--- /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 00000000000..240f956b8ac
--- /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 00000000000..f6121c19a42
--- /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 00000000000..d2147910ae4
--- /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 00000000000..84be428c4fb
--- /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 00000000000..98d2188e755
--- /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 00000000000..6e9cdc9aa80
--- /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 00000000000..a5899f38924
--- /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 00000000000..ffd885f2937
--- /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 00000000000..fa0a7c8dc27
--- /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 00000000000..093ad6ed7cb
--- /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 00000000000..a3d33e83036
--- /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 00000000000..184c7827223
--- /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 00000000000..456348754f8
--- /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 00000000000..b27383b09ab
--- /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 00000000000..3714383bc1a
--- /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 00000000000..5ac5ecc609f
--- /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 00000000000..98f43be5e86
--- /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 00000000000..06f59095337
--- /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 00000000000..c4b81078996
--- /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 00000000000..b41bf1e5051
--- /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 00000000000..4a74d8c4d64
--- /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 00000000000..fa22fa578ed
--- /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 00000000000..ae914ffc537
--- /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 00000000000..8b349821f5e
--- /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 00000000000..51cd0f1f36e
--- /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 00000000000..2099b9b4141
--- /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 00000000000..664bda426ad
--- /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 00000000000..d7ef0a95899
--- /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 00000000000..51cd0f1f36e
--- /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 00000000000..88cc3f3a2ac
--- /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 00000000000..d6a0ebd0f35
--- /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 00000000000..20729b61540
--- /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 00000000000..8f907b07553
--- /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 00000000000..20729b61540
--- /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 00000000000..1b5db781c1e
--- /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 00000000000..09309719f29
--- /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 00000000000..040f4de3d5e
--- /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 00000000000..adff17717b1
--- /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 00000000000..07928f226dc
--- /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 00000000000..854e7af5ddb
--- /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 00000000000..6d94a8f4683
--- /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 00000000000..d31bc76368f
--- /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 00000000000..040f4de3d5e
--- /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 00000000000..6bb56651f88
--- /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 00000000000..9c4eb1e0f9b
--- /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 00000000000..1b0da937e80
--- /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 00000000000..2099b9b4141
--- /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 00000000000..035e794cb48
--- /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 00000000000..7068e8d9229
--- /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 00000000000..12c0ace8f82
--- /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 00000000000..06094503cce
--- /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 00000000000..6b887e31b6c
--- /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 00000000000..a6f4cd62fb1
--- /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 00000000000..f5b69dd5161
--- /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 00000000000..3d4aa74b953
--- /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 00000000000..a87447a879a
--- /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 00000000000..a9d102c7467
--- /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 00000000000..db7aa229d29
--- /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 00000000000..b936dedf3b7
--- /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 00000000000..05a13fa3c85
--- /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 00000000000..6791f961a10
--- /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 00000000000..c77b2f0f8bd
--- /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 00000000000..69ea9497241
--- /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 00000000000..8ded7a0747d
--- /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 00000000000..37d1f863396
--- /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 00000000000..cef635096e2
--- /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 00000000000..ae0cc5761d3
--- /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 00000000000..fc80927be67
--- /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 00000000000..b9ac0734107
--- /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 00000000000..2e1810f6f27
--- /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 00000000000..a367b7cacfe
--- /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 00000000000..b96fc121c5d
--- /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 00000000000..6bda3d0bfa8
--- /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 00000000000..b0e50d85c37
--- /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 00000000000..73a5b2a87a7
--- /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 00000000000..df28dfbc882
--- /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 00000000000..67ca086be7e
--- /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 00000000000..ebd5775725b
--- /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 00000000000..46a73111b1d
--- /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 00000000000..35680e7925c
--- /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 00000000000..d5f35768af5
--- /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 00000000000..78804d734ee
--- /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 00000000000..24af21f4fc3
--- /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 00000000000..f5d47e1392d
--- /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 00000000000..9f515e8c73c
--- /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 00000000000..b7a4070a8fa
--- /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 00000000000..07ce0724fa2
--- /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 00000000000..2c643d81a52
--- /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 00000000000..7a083a7884c
--- /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 00000000000..bc2b788ba2e
--- /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 00000000000..d7d31e2677f
--- /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 00000000000..4add357cc9e
--- /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 00000000000..e9b0b2ee7f0
--- /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 00000000000..1ecf9563f6e
--- /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 00000000000..3ddccb24968
--- /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 00000000000..08d8beca33a
--- /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 00000000000..906d7d85278
--- /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 00000000000..6060fbb995c
--- /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 00000000000..817b0972137
--- /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 00000000000..ac27f13f342
--- /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 00000000000..bd3e3e7583a
--- /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 00000000000..550423b0f83
--- /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 00000000000..6fc88cf9d04
--- /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 00000000000..fad47fbc007
--- /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 00000000000..1efb505e27d
--- /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 00000000000..a6744bda640
--- /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 00000000000..665b320df12
--- /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 00000000000..44d60bf7537
--- /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 00000000000..94dedf104dd
--- /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 00000000000..81128394c3c
--- /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 00000000000..f7dc3b731c3
--- /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 00000000000..36418ad59e4
--- /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 00000000000..f2e28170e74
--- /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 00000000000..968c20167f7
--- /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 00000000000..7011b7ea795
--- /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 00000000000..325ca66f0c2
--- /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 00000000000..15bef87198a
--- /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 00000000000..3212004db77
--- /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 00000000000..56daa86c866
--- /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 00000000000..02a199fc6a5
--- /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 00000000000..db0bd27d411
--- /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 00000000000..11ad407f3b7
--- /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 00000000000..ba4623632ac
--- /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 00000000000..c2175a9613e
--- /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 00000000000..26a64cdd66d
--- /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 00000000000..8bc8570a4a6
--- /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 00000000000..8fa82901526
--- /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 00000000000..bb1c5e138de
--- /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 00000000000..842fa1b41af
--- /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 00000000000..cd119b66da5
--- /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 00000000000..25fe84a0ed0
--- /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 00000000000..e362c70cea3
--- /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 00000000000..176a7591cc4
--- /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 00000000000..a4faf1a6ccd
--- /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 00000000000..96ddd15255b
--- /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 00000000000..541a2ad2c72
--- /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 00000000000..a4986f40660
--- /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 00000000000..3f89abe7749
--- /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 00000000000..432b536222d
--- /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 00000000000..e7fcb898e1e
--- /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 00000000000..2df63553744
--- /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 00000000000..a263c5dd385
--- /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 00000000000..a1a7d37e626
--- /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 00000000000..a148e99bce8
--- /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 00000000000..8791b8ca342
--- /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 00000000000..8604508684f
--- /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 00000000000..f28b1f1c4af
--- /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 00000000000..fd1e6cfe9f5
--- /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 00000000000..672b759421a
--- /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 00000000000..d90a4330d62
--- /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 00000000000..775e7c18b47
--- /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 00000000000..ac12fd98a22
--- /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 00000000000..42bbd52217e
--- /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 00000000000..690d31f8600
--- /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 00000000000..d4c3184c722
--- /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 00000000000..884b5130c56
--- /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 00000000000..cbb1a9d7049
--- /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 00000000000..78c8580cfeb
--- /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 00000000000..0e90f3ee163
--- /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 00000000000..bd1273e1ff5
--- /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 00000000000..5100b429ac2
--- /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 00000000000..ec5bbed297d
--- /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 00000000000..06c835ee68f
--- /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 00000000000..478541c2af7
--- /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 00000000000..1c593ce0cf2
--- /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 00000000000..335cf5fc3e9
--- /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 00000000000..099423e6401
--- /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 00000000000..4a546ddb1a7
--- /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 00000000000..72eb72bbec0
--- /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 00000000000..39000367392
--- /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 00000000000..0a2718f7ba6
--- /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 00000000000..bc502fb5050
--- /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 00000000000..20523b894e1
--- /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 00000000000..dc7b62d02d6
--- /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 00000000000..010aa311e07
--- /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 00000000000..ec3ad136a0b
--- /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 00000000000..029d761d958
--- /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 00000000000..cdf35092461
--- /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 00000000000..84470cbc78e
--- /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 00000000000..b4032c0a100
--- /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 00000000000..0ec38c5aa9d
--- /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 00000000000..a03d49505bd
--- /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 00000000000..c8aa08595d3
--- /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 00000000000..011c23e8d8c
--- /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 00000000000..4036757e54b
--- /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 00000000000..a76aba16e4e
--- /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 00000000000..d1f0a753fa9
--- /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 00000000000..2dd27fc94f3
--- /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 00000000000..9dbf6dac689
--- /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 00000000000..a098db19411
--- /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 00000000000..99ed57194e5
--- /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 00000000000..ecf9625cad7
--- /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 00000000000..9cc2bbbbdd8
--- /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 00000000000..0eab197a805
--- /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 00000000000..99ed57194e5
--- /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 00000000000..ecf9625cad7
--- /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 00000000000..670578257c2
--- /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 00000000000..190217d3870
--- /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 00000000000..99426c3c5d2
--- /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 00000000000..f8c17b1a6d6
--- /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 00000000000..54b1727a951
--- /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 00000000000..9dbf6dac689
--- /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 00000000000..a098db19411
--- /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 00000000000..99ed57194e5
--- /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 00000000000..ecf9625cad7
--- /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 00000000000..670578257c2
--- /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 00000000000..0eab197a805
--- /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 00000000000..aaeb38e2d60
--- /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 00000000000..a976a16cd36
--- /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 00000000000..40d806178f8
--- /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 00000000000..65374611ba6
--- /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 00000000000..489f456647d
--- /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 00000000000..0d7efc70f3e
--- /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 00000000000..8ca731b2ef3
--- /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 00000000000..9b10d1a26d0
--- /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 00000000000..8c5ca022c7b
--- /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 00000000000..4b0a3b1ab4f
--- /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 00000000000..2ea9891c928
--- /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 00000000000..b1648fbf38c
--- /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 00000000000..6c6b4595aa7
--- /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 00000000000..14e6c1fb7e7
--- /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 00000000000..d0b3d7fbf5a
--- /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 00000000000..b3ee0711dcb
--- /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 00000000000..90bded6fbaa
--- /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 00000000000..6aa83c4ac61
--- /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 00000000000..97f7ed62726
--- /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 00000000000..7f5ccdd0fb6
--- /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 00000000000..bd21eadd136
--- /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 00000000000..30c1778c3eb
--- /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 00000000000..35a967cff0c
--- /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 00000000000..f46c147e4a7
--- /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 00000000000..9a3f5f1327d
--- /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 00000000000..761746e2ccd
--- /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 00000000000..7d3b87473c3
--- /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 00000000000..75c10bf2c9c
--- /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 00000000000..3a24a888d1a
--- /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 00000000000..327138e7fd2
--- /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 00000000000..461dff424bd
--- /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 00000000000..662796e90b3
--- /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 00000000000..5c8c47ccbf4
--- /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 00000000000..ff22c337a0d
--- /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 00000000000..a35d03eb037
--- /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 00000000000..7a25ae5bce2
--- /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 00000000000..bd18fb3c6b7
--- /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 00000000000..d6e5777bccc
--- /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 00000000000..7a8013fa533
--- /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 00000000000..6d5bd6aaa8d
--- /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 00000000000..8284dac231a
--- /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 00000000000..7dc4a3a12b5
--- /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 00000000000..3bc1f0202f4
--- /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 00000000000..0e59bd506fd
--- /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 00000000000..4ed8c866ea6
--- /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 00000000000..197da0735db
--- /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 00000000000..52609b7e2b9
--- /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 00000000000..9f09fff7b7c
--- /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 00000000000..0ea0729bcfe
--- /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 00000000000..0c85cb0ccf0
--- /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 00000000000..9fd5c3fe0b7
--- /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 00000000000..191053b1c2d
--- /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 00000000000..af61d03afbb
--- /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 00000000000..635c63f9971
--- /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 00000000000..048c27f559f
--- /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 00000000000..a5ad7d09190
--- /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 00000000000..16f9039b9da
--- /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 00000000000..cb709f78418
--- /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 00000000000..302e84a5672
--- /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 00000000000..74b2fed79dd
--- /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 00000000000..c1ade41f2e4
--- /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 00000000000..f3332a8ca91
--- /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 00000000000..a97fb0bfab4
--- /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 00000000000..b49d5a69214
--- /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 00000000000..194abbafc22
--- /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 00000000000..725be1d7021
--- /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 00000000000..abb91d769be
--- /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 00000000000..afdbb050905
--- /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 00000000000..702e8f36f23
--- /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 00000000000..cd992516e81
--- /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 00000000000..c152be703c0
--- /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 00000000000..baedc281c93
--- /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 00000000000..9f09fff7b7c
--- /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 00000000000..1ed5a5f314e
--- /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 00000000000..157f070309c
--- /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 00000000000..f038a1c2907
--- /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 00000000000..c400193a069
--- /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 00000000000..6f31845b86e
--- /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 00000000000..9ea07806f2e
--- /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 00000000000..9ea07806f2e
--- /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 00000000000..ccbbb36f154
--- /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 00000000000..d053dbbcd37
--- /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 00000000000..92aa1fe6d3d
--- /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 00000000000..c145b60b23e
--- /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 00000000000..9c3d9efa714
--- /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 00000000000..b1035676cae
--- /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 00000000000..e533ece461f
--- /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 00000000000..b7bd0ad54a3
--- /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 00000000000..7d6a5355a6a
--- /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 00000000000..8b39869cc1d
--- /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 00000000000..d3bf613a630
--- /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 00000000000..7c3fb8d7e95
--- /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 00000000000..18d022c49fc
--- /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 00000000000..6998adffe9c
--- /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 00000000000..13a6c2c9545
--- /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 00000000000..8ec3a37c780
--- /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 00000000000..9a59530ed33
--- /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 00000000000..5a971002cda
--- /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 00000000000..dc957cc8259
--- /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 00000000000..eb98fb82c78
--- /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 00000000000..c160cd41dcf
--- /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 00000000000..2dc22bf50ed
--- /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 00000000000..28d73256018
--- /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 00000000000..a580b500b72
--- /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 00000000000..72c8a18adda
--- /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 00000000000..395bc7d5117
--- /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 00000000000..e0cca5428b8
--- /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 00000000000..2341e40bca6
--- /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 00000000000..bd8842721b2
--- /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 00000000000..13a6c2c9545
--- /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 00000000000..9794e98cb07
--- /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 00000000000..14cf99055bf
--- /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 00000000000..a5c22a5efc0
--- /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 00000000000..eb98fb82c78
--- /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 00000000000..73f30ee716d
--- /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 00000000000..2dc22bf50ed
--- /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 00000000000..28d73256018
--- /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 00000000000..d614b547a8d
--- /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 00000000000..35ccadaa8d5
--- /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 00000000000..6b34032a39b
--- /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 00000000000..a580b500b72
--- /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 00000000000..8c93127657d
--- /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 00000000000..bd8842721b2
--- /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 00000000000..ccc19139c8f
--- /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 00000000000..14cf99055bf
--- /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 00000000000..a5c22a5efc0
--- /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 00000000000..35ccadaa8d5
--- /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 00000000000..7ca88e64e2e
--- /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 00000000000..cf69a1e1563
--- /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 00000000000..ae8a395a05e
--- /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 00000000000..e18b9111991
--- /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 00000000000..4216de7bdf3
--- /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 00000000000..4216de7bdf3
--- /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 00000000000..9c3d49019f2
--- /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 00000000000..fc91285f27c
--- /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 00000000000..db2d1266bb6
--- /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 00000000000..b121bba6550
--- /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 00000000000..8b82de22232
--- /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 00000000000..092a7129037
--- /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 00000000000..a62a767f23a
--- /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 00000000000..eed491b4d94
--- /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 00000000000..94852f0dea1
--- /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 00000000000..565832eed8f
--- /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 00000000000..db29da93ca2
--- /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 00000000000..cd408c7bc2f
--- /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 00000000000..6b34032a39b
--- /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 00000000000..3d2fa1669a2
--- /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 00000000000..7ff3658d0c7
--- /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 00000000000..ef53689bd00
--- /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 00000000000..2754170d2f3
--- /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 00000000000..efc85a42abe
--- /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 00000000000..afc94dcc5cd
--- /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 00000000000..98d79a1b281
--- /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 00000000000..4789f28f5fc
--- /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 00000000000..7150a2a466a
--- /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 00000000000..2341e40bca6
--- /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 00000000000..a62a767f23a
--- /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 00000000000..565832eed8f
--- /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 00000000000..db29da93ca2
--- /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 00000000000..6b34032a39b
--- /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 00000000000..235b55153af
--- /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 00000000000..5ef23019adc
--- /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 00000000000..ee55784548e
--- /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 00000000000..3ecd36bb5e8
--- /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 00000000000..ce674edef61
--- /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 00000000000..565393d0623
--- /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/
+}