aboutsummaryrefslogtreecommitdiffstats
path: root/meta-demoapps/recipes-graphics
diff options
context:
space:
mode:
authorSaul Wold <Saul.Wold@intel.com>2010-11-22 13:57:13 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-11-22 13:57:13 +0000
commitcfe12efb5ec9586dab6961f141d52b103bd8b1d1 (patch)
tree7108e22aa7ddf6cfc2f1b6c6b73a811187706ecb /meta-demoapps/recipes-graphics
parent762fd6b7b3b22d7a8cb80ef9e9ba62e7ef21af3e (diff)
downloadpoky-cfe12efb5ec9586dab6961f141d52b103bd8b1d1.tar.gz
poky-cfe12efb5ec9586dab6961f141d52b103bd8b1d1.tar.bz2
poky-cfe12efb5ec9586dab6961f141d52b103bd8b1d1.zip
Meta: Recipe Reogranization
This is the next stage of recipe reorganization, in this stage many recipes where moved to a new meta-demoapps layer since this is more appropriate for demo usage then the core. Additional some recipes were moved to meta-extras to indicate they may be depercated at a future time. A number of recipes were modified since dependencies need to be corrected. Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Diffstat (limited to 'meta-demoapps/recipes-graphics')
-rw-r--r--meta-demoapps/recipes-graphics/clutter/table/fixes.patch14
-rw-r--r--meta-demoapps/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch15
-rw-r--r--meta-demoapps/recipes-graphics/libxklavier/libxklavier_3.9.bb12
-rw-r--r--meta-demoapps/recipes-graphics/pong-clock/pong-clock/pong-clock-no-flicker.c410
-rw-r--r--meta-demoapps/recipes-graphics/pong-clock/pong-clock_1.0.bb16
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xbacklight_1.1.bb4
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xev/diet-x11.patch80
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xev_1.0.3.bb7
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xeyes_1.0.1.bb4
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xrdb/60XDefaults.sh3
-rw-r--r--meta-demoapps/recipes-graphics/xorg-app/xrdb_1.0.5.bb14
-rw-r--r--meta-demoapps/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch63
-rw-r--r--meta-demoapps/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb11
-rw-r--r--meta-demoapps/recipes-graphics/xorg-lib/libxaw_1.0.5.bb21
-rw-r--r--meta-demoapps/recipes-graphics/xorg-lib/libxevie_1.0.2.bb8
-rw-r--r--meta-demoapps/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb8
-rw-r--r--meta-demoapps/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb5
-rw-r--r--meta-demoapps/recipes-graphics/xournal/files/ldflags.patch15
-rw-r--r--meta-demoapps/recipes-graphics/xournal/files/no-printing.diff178
-rw-r--r--meta-demoapps/recipes-graphics/xournal/xournal_0.2.bb12
20 files changed, 900 insertions, 0 deletions
diff --git a/meta-demoapps/recipes-graphics/clutter/table/fixes.patch b/meta-demoapps/recipes-graphics/clutter/table/fixes.patch
new file mode 100644
index 0000000000..a7cdc43713
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch b/meta-demoapps/recipes-graphics/libxklavier/libxklavier/pkgconfigfix.patch
new file mode 100644
index 0000000000..4aaafb2b1e
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/libxklavier/libxklavier_3.9.bb b/meta-demoapps/recipes-graphics/libxklavier/libxklavier_3.9.bb
new file mode 100644
index 0000000000..1d9b6f21a4
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/pong-clock/pong-clock/pong-clock-no-flicker.c b/meta-demoapps/recipes-graphics/pong-clock/pong-clock/pong-clock-no-flicker.c
new file mode 100644
index 0000000000..41cebc58a7
--- /dev/null
+++ b/meta-demoapps/recipes-graphics/pong-clock/pong-clock/pong-clock-no-flicker.c
@@ -0,0 +1,410 @@
+/*
+ * Pong Clock - A clock that plays pong.
+ * See http://mocoloco.com/archives/001766.php for the inspiration.
+ *
+ * Copyright (C) 2005 Matthew Allum
+ *
+ * Author: Matthew Allum mallum@openedhand.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include <stdlib.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xatom.h>
+
+/* Tweak values for different hw setups */
+
+#define FPS 50
+#define RESX 40
+#define RESY 40
+#define TO_MISS_SECS 55
+#define BALLDX 16
+#define BALLDY 4
+
+
+typedef struct PongClock
+{
+ Display *xdpy;
+ int xscreen;
+ Window xwin, xwin_root;
+ Pixmap backbuffer;
+ GC xgc;
+ int xwin_width, xwin_height;
+ int pixelw, pixelh;
+
+ int ball_x, ball_y, ball_dx, ball_dy;
+ int bata_y, batb_y;
+ Bool bata_to_miss, batb_to_miss;
+
+}
+PongClock;
+
+void
+get_time(int *hour, int *min, int *sec)
+{
+ struct timeval tv;
+ struct tm *localTime = NULL;
+ time_t actualTime;
+
+ gettimeofday(&tv, 0);
+ actualTime = tv.tv_sec;
+ localTime = localtime(&actualTime);
+
+ if (hour)
+ *hour = localTime->tm_hour;
+
+ if (min)
+ *min = localTime->tm_min;
+
+ if (sec)
+ *sec = localTime->tm_sec;
+}
+
+void
+draw_rect (PongClock *pong_clock,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ XFillRectangle (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ x * pong_clock->pixelw,
+ y * pong_clock->pixelh,
+ width * pong_clock->pixelw,
+ height * pong_clock->pixelh);
+}
+
+void
+draw_field (PongClock *pong_clock)
+{
+ int i;
+
+ draw_rect (pong_clock, 0, 0, RESX+1, 1);
+ draw_rect (pong_clock, 0, RESY-1, RESX+1, 1);
+
+ for (i=0; i < RESY/2; i++)
+ draw_rect (pong_clock, (RESX/2)-1, i*2, 2, 1);
+}
+
+void
+draw_digit (PongClock *pong_clock,
+ int x,
+ int y,
+ int digit)
+{
+ int digits[] = { 0x1f8c63f, 0x1f21086, 0x1f0fe1f, 0x1f87e1f, 0x1087e31,
+ 0x1f87c3f, 0x1f8fc3f, 0x84421f, 0x1f8fe3f, 0x1087e3f };
+
+ XRectangle rects[5*5];
+ int i,j,k;
+
+ i = 0;
+
+ for (k=0; k<5; k++)
+ for (j=0; j<5; j++)
+ if (digits[digit] & (1 << ((k*5)+j)))
+ {
+ rects[i].x = (x + j) * pong_clock->pixelw;
+ rects[i].y = (y + k) * pong_clock->pixelh;
+ rects[i].width = pong_clock->pixelw;
+ rects[i].height = pong_clock->pixelh;
+ i++;
+ }
+
+ XFillRectangles (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ rects, i);
+}
+
+void
+draw_time (PongClock *pong_clock)
+{
+ int hour, min;
+
+ get_time(&hour, &min, NULL);
+
+ draw_digit (pong_clock,
+ (RESX/2) - 14,
+ 5,
+ hour / 10 );
+
+ draw_digit (pong_clock,
+ (RESX/2) - 8,
+ 5,
+ hour % 10 );
+
+ draw_digit (pong_clock,
+ (RESX/2) + 3,
+ 5,
+ min / 10 );
+
+ draw_digit (pong_clock,
+ (RESX/2) + 9,
+ 5,
+ min % 10 );
+}
+
+void
+draw_bat_and_ball (PongClock *pong_clock)
+{
+ /* ball */
+
+ XFillRectangle (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ pong_clock->ball_x,
+ pong_clock->ball_y,
+ pong_clock->pixelw,
+ pong_clock->pixelh);
+
+ /* bat a */
+
+ XFillRectangle (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ 0,
+ pong_clock->bata_y - (2 * pong_clock->pixelh),
+ pong_clock->pixelw,
+ pong_clock->pixelh * 5);
+
+ /* bat b */
+
+ XFillRectangle (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ (pong_clock->xwin_width - pong_clock->pixelw),
+ pong_clock->batb_y - (2 * pong_clock->pixelh),
+ pong_clock->pixelw,
+ pong_clock->pixelh * 5);
+
+}
+
+void
+update_state (PongClock *pong_clock)
+{
+ int sec, min, hour;
+
+ get_time(&hour, &min, &sec);
+
+ /* Check ball is on field and no ones dues to miss a shot.
+ */
+ if ( (pong_clock->ball_x < 0 && !pong_clock->bata_to_miss)
+ || (pong_clock->ball_x > (pong_clock->xwin_width - pong_clock->pixelw)
+ && !pong_clock->batb_to_miss) )
+ pong_clock->ball_dx *= -1;
+
+ if ((pong_clock->ball_y < pong_clock->pixelh)
+ || pong_clock->ball_y > (pong_clock->xwin_height - (2*pong_clock->pixelh)))
+ pong_clock->ball_dy *= -1;
+
+ pong_clock->ball_x += pong_clock->ball_dx;
+ pong_clock->ball_y += pong_clock->ball_dy;
+
+ /* Set up someone to miss if we getting close to an hour or min.
+ */
+ if (sec > TO_MISS_SECS)
+ {
+ if (min == 59)
+ pong_clock->batb_to_miss = True;
+ else
+ pong_clock->bata_to_miss = True;
+ }
+ else
+ {
+ /* Reset the game */
+ if (pong_clock->bata_to_miss)
+ {
+ pong_clock->bata_to_miss = False;
+ pong_clock->ball_y = pong_clock->bata_y;
+ pong_clock->ball_x = pong_clock->pixelw;
+ pong_clock->ball_dx *= -1;
+ }
+
+ if (pong_clock->batb_to_miss)
+ {
+ pong_clock->batb_to_miss = False;
+ pong_clock->ball_y = pong_clock->batb_y;
+ pong_clock->ball_x = pong_clock->xwin_width - pong_clock->pixelw;
+ pong_clock->ball_dx *= -1;
+ }
+ }
+
+ /* Keep bats on field and only move in not setup to miss */
+ if (pong_clock->ball_y >= (3*pong_clock->pixelh)
+ && pong_clock->ball_y <= (pong_clock->xwin_height - (5*pong_clock->pixelh)))
+ {
+ if (!pong_clock->batb_to_miss)
+ pong_clock->batb_y = pong_clock->ball_y;
+
+ if (!pong_clock->bata_to_miss)
+ pong_clock->bata_y = pong_clock->ball_y;
+ }
+}
+
+void
+draw_frame (PongClock *pong_clock)
+{
+ update_state (pong_clock);
+
+ /* Clear playfield */
+ XSetForeground (pong_clock->xdpy,
+ pong_clock->xgc,
+ BlackPixel(pong_clock->xdpy,
+ pong_clock->xscreen));
+
+ XFillRectangle (pong_clock->xdpy,
+ pong_clock->backbuffer,
+ pong_clock->xgc,
+ 0, 0,
+ pong_clock->xwin_width,
+ pong_clock->xwin_height);
+
+ XSetForeground (pong_clock->xdpy,
+ pong_clock->xgc,
+ WhitePixel(pong_clock->xdpy,
+ pong_clock->xscreen));
+
+ draw_field (pong_clock);
+
+ draw_time (pong_clock);
+
+ draw_bat_and_ball (pong_clock);
+
+ /* flip 'backbuffer' */
+ XSetWindowBackgroundPixmap (pong_clock->xdpy,
+ pong_clock->xwin,
+ pong_clock->backbuffer);
+ XClearWindow(pong_clock->xdpy, pong_clock->xwin);
+
+ XSync(pong_clock->xdpy, False);
+}
+
+int
+main (int argc, char **argv)
+{
+ XGCValues gcv;
+ Atom atoms_WINDOW_STATE, atoms_WINDOW_STATE_FULLSCREEN;
+ PongClock *pong_clock;
+
+ pong_clock = malloc(sizeof(PongClock));
+ memset(pong_clock, 0, sizeof(PongClock));
+
+ if ((pong_clock->xdpy = XOpenDisplay(getenv("DISPLAY"))) == NULL) {
+ fprintf(stderr, "Cannot connect to X server on display %s.",
+ getenv("DISPLAY"));
+ exit(-1);
+ }
+
+ pong_clock->xscreen = DefaultScreen(pong_clock->xdpy);
+ pong_clock->xwin_root = DefaultRootWindow(pong_clock->xdpy);
+ pong_clock->xwin_width = DisplayWidth(pong_clock->xdpy,
+ pong_clock->xscreen);
+ pong_clock->xwin_height = DisplayHeight(pong_clock->xdpy,
+ pong_clock->xscreen);
+
+ pong_clock->pixelw = pong_clock->xwin_width / RESX;
+ pong_clock->pixelh = pong_clock->xwin_height / RESY;
+
+ pong_clock->ball_x = 0;
+ pong_clock->ball_y = pong_clock->xwin_height / 2;
+
+ pong_clock->ball_dx = BALLDX;
+ pong_clock->ball_dy = BALLDY;
+
+ pong_clock->batb_y = pong_clock->bata_y = pong_clock->ball_y;
+
+ gcv.background = BlackPixel(pong_clock->xdpy,
+ pong_clock->xscreen);
+ gcv.foreground = WhitePixel(pong_clock->xdpy,
+ pong_clock->xscreen);
+ gcv.graphics_exposures = False;
+
+ pong_clock->xgc = XCreateGC (pong_clock->xdpy, pong_clock->xwin_root,
+ GCForeground|GCBackground|GCGraphicsExposures,
+ &gcv);
+
+ atoms_WINDOW_STATE
+ = XInternAtom(pong_clock->xdpy, "_NET_WM_STATE",False);
+ atoms_WINDOW_STATE_FULLSCREEN
+ = XInternAtom(pong_clock->xdpy, "_NET_WM_STATE_FULLSCREEN",False);
+
+ pong_clock->xwin = XCreateSimpleWindow(pong_clock->xdpy,
+ pong_clock->xwin_root,
+ 0, 0,
+ pong_clock->xwin_width,
+ pong_clock->xwin_height,
+ 0,
+ WhitePixel(pong_clock->xdpy,
+ pong_clock->xscreen),
+ BlackPixel(pong_clock->xdpy,
+ pong_clock->xscreen));
+
+ pong_clock->backbuffer = XCreatePixmap(pong_clock->xdpy,
+ pong_clock->xwin_root,
+ pong_clock->xwin_width,
+ pong_clock->xwin_height,
+ DefaultDepth(pong_clock->xdpy,
+ pong_clock->xscreen));
+
+ XSelectInput(pong_clock->xdpy, pong_clock->xwin, KeyPressMask);
+
+
+ /* Set the hints for fullscreen */
+ XChangeProperty(pong_clock->xdpy,
+ pong_clock->xwin,
+ atoms_WINDOW_STATE,
+ XA_ATOM,
+ 32,
+ PropModeReplace,
+ (unsigned char *) &atoms_WINDOW_STATE_FULLSCREEN, 1);
+
+ XMapWindow(pong_clock->xdpy, pong_clock->xwin);
+
+ while (True)
+ {
+ struct timeval timeout;
+ XEvent xev;
+
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 1000000 / FPS;
+ select (0, NULL, NULL, NULL, &timeout);
+
+ draw_frame (pong_clock);
+
+ XFlush(pong_clock->xdpy);
+
+ if (XPending(pong_clock->xdpy))
+ {
+ if (XCheckMaskEvent(pong_clock->xdpy,
+ KeyPressMask,
+ &xev))
+ exit(-1);
+ }
+ }
+}
diff --git a/meta-demoapps/recipes-graphics/pong-clock/pong-clock_1.0.bb b/meta-demoapps/recipes-graphics/pong-clock/pong-clock_1.0.bb
new file mode 100644
index 0000000000..8d3659ff91
--- /dev/null
+++ b/meta-demoapps/recipes-graphics/pong-clock/pong-clock_1.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "A clock combined with a game of pong"
+LICENSE = "GPLv2+"
+DEPENDS = "virtual/libx11 xdmcp xau"
+
+SRC_URI = "file://pong-clock-no-flicker.c"
+
+S = "${WORKDIR}"
+
+do_compile () {
+ ${CC} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp`
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 pong-clock ${D}${bindir}
+}
diff --git a/meta-demoapps/recipes-graphics/xorg-app/xbacklight_1.1.bb b/meta-demoapps/recipes-graphics/xorg-app/xbacklight_1.1.bb
new file mode 100644
index 0000000000..78804d734e
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-app/xev/diet-x11.patch b/meta-demoapps/recipes-graphics/xorg-app/xev/diet-x11.patch
new file mode 100644
index 0000000000..9f515e8c73
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-app/xev_1.0.3.bb b/meta-demoapps/recipes-graphics/xorg-app/xev_1.0.3.bb
new file mode 100644
index 0000000000..b7a4070a8f
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-app/xeyes_1.0.1.bb b/meta-demoapps/recipes-graphics/xorg-app/xeyes_1.0.1.bb
new file mode 100644
index 0000000000..07ce0724fa
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-app/xrdb/60XDefaults.sh b/meta-demoapps/recipes-graphics/xorg-app/xrdb/60XDefaults.sh
new file mode 100644
index 0000000000..08d8beca33
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-app/xrdb_1.0.5.bb b/meta-demoapps/recipes-graphics/xorg-app/xrdb_1.0.5.bb
new file mode 100644
index 0000000000..906d7d8527
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch b/meta-demoapps/recipes-graphics/xorg-lib/liblbxutil/mkg3states.patch
new file mode 100644
index 0000000000..029d761d95
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta-demoapps/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
new file mode 100644
index 0000000000..cdf3509246
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-lib/libxaw_1.0.5.bb b/meta-demoapps/recipes-graphics/xorg-lib/libxaw_1.0.5.bb
new file mode 100644
index 0000000000..489f456647
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-lib/libxevie_1.0.2.bb b/meta-demoapps/recipes-graphics/xorg-lib/libxevie_1.0.2.bb
new file mode 100644
index 0000000000..6c6b4595aa
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/meta-demoapps/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
new file mode 100644
index 0000000000..9a3f5f1327
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb b/meta-demoapps/recipes-graphics/xorg-proto/xproxymanagementprotocol_1.0.3.bb
new file mode 100644
index 0000000000..9c3d9efa71
--- /dev/null
+++ b/meta-demoapps/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-demoapps/recipes-graphics/xournal/files/ldflags.patch b/meta-demoapps/recipes-graphics/xournal/files/ldflags.patch
new file mode 100644
index 0000000000..7f6585befb
--- /dev/null
+++ b/meta-demoapps/recipes-graphics/xournal/files/ldflags.patch
@@ -0,0 +1,15 @@
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: xournal-0.2/src/Makefile.am
+===================================================================
+--- xournal-0.2.orig/src/Makefile.am 2007-05-09 15:06:26.000000000 +0100
++++ xournal-0.2/src/Makefile.am 2007-05-09 15:06:35.000000000 +0100
+@@ -21,5 +21,5 @@ xournal_SOURCES = \
+ xo-interface.c xo-interface.h \
+ xo-callbacks.c xo-callbacks.h
+
+-xournal_LDADD = @PACKAGE_LIBS@
++xournal_LDADD = @PACKAGE_LIBS@ -lz
+
diff --git a/meta-demoapps/recipes-graphics/xournal/files/no-printing.diff b/meta-demoapps/recipes-graphics/xournal/files/no-printing.diff
new file mode 100644
index 0000000000..7a4724e696
--- /dev/null
+++ b/meta-demoapps/recipes-graphics/xournal/files/no-printing.diff
@@ -0,0 +1,178 @@
+diff -ru xournal-0.2/configure.in xournal-0.2.noprint/configure.in
+--- xournal-0.2/configure.in 2006-01-29 22:25:10.000000000 +0000
++++ xournal-0.2.noprint/configure.in 2006-03-17 13:08:01.000000000 +0000
+@@ -10,11 +10,16 @@
+ AM_PROG_CC_STDC
+ AC_HEADER_STDC
+
+-pkg_modules="gtk+-2.0 >= 2.4.0 libgnomecanvas-2.0 >= 2.4.0 libgnomeprintui-2.2 >= 2.0.0"
++pkg_modules="gtk+-2.0 >= 2.4.0 libgnomecanvas-2.0 >= 2.4.0"
+ PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
+ AC_SUBST(PACKAGE_CFLAGS)
+ AC_SUBST(PACKAGE_LIBS)
+
++#PKG_CHECK_MODULES(GNOMEPRINT, libgnomeprintui-2.2 >= 2.0.0
++#AC_SUBST(GNOMEPRINT_CFLAGS)
++#AC_SUBST(GNOMEPRINT_LIBS)
++AM_CONDITIONAL(ENABLE_PRINTING, false)
++
+ AC_OUTPUT([
+ Makefile
+ src/Makefile
+diff -ru xournal-0.2/src/main.c xournal-0.2.noprint/src/main.c
+--- xournal-0.2/src/main.c 2006-01-29 22:22:52.000000000 +0000
++++ xournal-0.2.noprint/src/main.c 2006-03-17 13:14:50.000000000 +0000
+@@ -28,7 +28,9 @@
+
+ void hide_unimplemented(void)
+ {
++#if ENABLE_PRINTING
+ gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
++#endif
+ gtk_widget_hide(GET_COMPONENT("journalFlatten"));
+ gtk_widget_hide(GET_COMPONENT("papercolorOther"));
+ gtk_widget_hide(GET_COMPONENT("journalApplyAllPages"));
+diff -ru xournal-0.2/src/Makefile.am xournal-0.2.noprint/src/Makefile.am
+--- xournal-0.2/src/Makefile.am 2005-12-14 20:54:42.000000000 +0000
++++ xournal-0.2.noprint/src/Makefile.am 2006-03-17 13:07:47.000000000 +0000
+@@ -7,12 +7,16 @@
+
+ bin_PROGRAMS = xournal
+
++if ENABLE_PRINTING
++PRINT_SOURCE = xo-print.c xo-print.h
++endif
++
+ xournal_SOURCES = \
+ main.c xournal.h \
+ xo-misc.c xo-misc.h \
+ xo-file.c xo-file.h \
+ xo-paint.c xo-paint.h \
+- xo-print.c xo-print.h \
++ $(PRINT_SOURCE) \
+ xo-support.c xo-support.h \
+ xo-interface.c xo-interface.h \
+ xo-callbacks.c xo-callbacks.h
+diff -ru xournal-0.2/src/xo-callbacks.c xournal-0.2.noprint/src/xo-callbacks.c
+--- xournal-0.2/src/xo-callbacks.c 2006-01-29 19:39:22.000000000 +0000
++++ xournal-0.2.noprint/src/xo-callbacks.c 2006-03-17 13:12:01.000000000 +0000
+@@ -7,7 +7,9 @@
+ #include <gtk/gtk.h>
+ #include <libgnomecanvas/libgnomecanvas.h>
+ #include <time.h>
++#if ENABLE_PRINTING
+ #include <libgnomeprintui/gnome-print-dialog.h>
++#endif
+ #include <glib/gstdio.h>
+
+ #include "xournal.h"
+@@ -17,7 +19,9 @@
+ #include "xo-misc.h"
+ #include "xo-file.h"
+ #include "xo-paint.h"
++#if ENABLE_PRINTING
+ #include "xo-print.h"
++#endif
+
+ void
+ on_fileNew_activate (GtkMenuItem *menuitem,
+@@ -261,7 +265,7 @@
+
+ }
+
+-
++#if ENABLE_PRINTING
+ void
+ on_filePrint_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+@@ -407,7 +411,7 @@
+
+ g_free(filename);
+ }
+-
++#endif
+
+ void
+ on_fileQuit_activate (GtkMenuItem *menuitem,
+diff -ru xournal-0.2/src/xo-callbacks.h xournal-0.2.noprint/src/xo-callbacks.h
+--- xournal-0.2/src/xo-callbacks.h 2006-01-26 20:47:00.000000000 +0000
++++ xournal-0.2.noprint/src/xo-callbacks.h 2006-03-17 13:08:45.000000000 +0000
+@@ -24,6 +24,7 @@
+ on_filePrintOptions_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
++#if ENABLE_PRINTING
+ void
+ on_filePrint_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+@@ -32,6 +33,8 @@
+ on_filePrintPDF_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
++#endif
++
+ void
+ on_fileQuit_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+diff -ru xournal-0.2/src/xo-interface.c xournal-0.2.noprint/src/xo-interface.c
+--- xournal-0.2/src/xo-interface.c 2006-01-29 18:58:25.000000000 +0000
++++ xournal-0.2.noprint/src/xo-interface.c 2006-03-17 13:11:31.000000000 +0000
+@@ -41,10 +41,12 @@
+ GtkWidget *fileSave;
+ GtkWidget *fileSaveAs;
+ GtkWidget *separator1;
++#if ENABLE_PRINTING
+ GtkWidget *filePrintOptions;
+ GtkWidget *image501;
+ GtkWidget *filePrint;
+ GtkWidget *filePrintPDF;
++#endif
+ GtkWidget *separator2;
+ GtkWidget *fileQuit;
+ GtkWidget *menuEdit;
+@@ -327,6 +329,7 @@
+ gtk_container_add (GTK_CONTAINER (menuFile_menu), separator1);
+ gtk_widget_set_sensitive (separator1, FALSE);
+
++#if ENABLE_PRINTING
+ filePrintOptions = gtk_image_menu_item_new_with_mnemonic ("Print Options");
+ gtk_widget_show (filePrintOptions);
+ gtk_container_add (GTK_CONTAINER (menuFile_menu), filePrintOptions);
+@@ -347,6 +350,7 @@
+ gtk_widget_show (separator2);
+ gtk_container_add (GTK_CONTAINER (menuFile_menu), separator2);
+ gtk_widget_set_sensitive (separator2, FALSE);
++#endif
+
+ fileQuit = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group);
+ gtk_widget_show (fileQuit);
+@@ -1522,6 +1526,7 @@
+ g_signal_connect ((gpointer) fileSaveAs, "activate",
+ G_CALLBACK (on_fileSaveAs_activate),
+ NULL);
++#if ENABLE_PRINTING
+ g_signal_connect ((gpointer) filePrintOptions, "activate",
+ G_CALLBACK (on_filePrintOptions_activate),
+ NULL);
+@@ -1531,6 +1536,7 @@
+ g_signal_connect ((gpointer) filePrintPDF, "activate",
+ G_CALLBACK (on_filePrintPDF_activate),
+ NULL);
++#endif
+ g_signal_connect ((gpointer) fileQuit, "activate",
+ G_CALLBACK (on_fileQuit_activate),
+ NULL);
+@@ -1941,11 +1947,13 @@
+ GLADE_HOOKUP_OBJECT (winMain, fileSave, "fileSave");
+ GLADE_HOOKUP_OBJECT (winMain, fileSaveAs, "fileSaveAs");
+ GLADE_HOOKUP_OBJECT (winMain, separator1, "separator1");
++#if ENABLE_PRINTING
+ GLADE_HOOKUP_OBJECT (winMain, filePrintOptions, "filePrintOptions");
+ GLADE_HOOKUP_OBJECT (winMain, image501, "image501");
+ GLADE_HOOKUP_OBJECT (winMain, filePrint, "filePrint");
+ GLADE_HOOKUP_OBJECT (winMain, filePrintPDF, "filePrintPDF");
+ GLADE_HOOKUP_OBJECT (winMain, separator2, "separator2");
++#endif
+ GLADE_HOOKUP_OBJECT (winMain, fileQuit, "fileQuit");
+ GLADE_HOOKUP_OBJECT (winMain, menuEdit, "menuEdit");
+ GLADE_HOOKUP_OBJECT (winMain, menuEdit_menu, "menuEdit_menu");
diff --git a/meta-demoapps/recipes-graphics/xournal/xournal_0.2.bb b/meta-demoapps/recipes-graphics/xournal/xournal_0.2.bb
new file mode 100644
index 0000000000..1ca6e1ed7c
--- /dev/null
+++ b/meta-demoapps/recipes-graphics/xournal/xournal_0.2.bb
@@ -0,0 +1,12 @@
+HOMEPAGE = "http://www-math.mit.edu/~auroux/software/xournal/"
+DESCRIPTION = "Xournal is an application for notetaking, sketching, keeping a journal using a stylus."
+DEPENDS = "gtk+ libgnomecanvas zlib"
+SECTION = "x11"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "http://math.mit.edu/~auroux/software/xournal/xournal-0.2.tar.gz \
+ file://ldflags.patch;patch=1 \
+ file://no-printing.diff;patch=1"
+
+inherit autotools pkgconfig