summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Gregory <dp@xora.org.uk>2008-03-21 07:36:54 +0000
committerGraeme Gregory <dp@xora.org.uk>2008-03-21 07:36:54 +0000
commita4535d80cb60e8eb76cdd2570e76b39eee2332d0 (patch)
treee5ad4e0278addb0688064b4782d690471a696d8c
parent4a8a75b38c0b7c7e5355710544a1d6eb82d539d9 (diff)
parent8fd078dda0570f74972431b3fe658679bd707ae6 (diff)
merge of '3447c93047f153922a4e64420c682c7b0d9f6e9a'
and '5c982728e5a62f54dc68215741872afd778656a8'
-rw-r--r--classes/sourcepkg.bbclass43
-rw-r--r--conf/distro/include/sane-srcrevs.inc2
-rw-r--r--packages/alsa/alsa-state.bb2
-rw-r--r--packages/images/openmoko-qtopia-image.bb22
-rw-r--r--packages/images/openmoko-qtopia-x11-image.bb7
-rw-r--r--packages/ipkg/files/ipkg_bugfix.patch44
-rw-r--r--packages/openmoko-tools/pty-forward-native.bb24
-rw-r--r--packages/openmoko-tools/serial-forward.bb15
-rw-r--r--packages/qtopia-phone/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/files/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/files/fic-gta01/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/files/fic-gta01/device-conf46
-rw-r--r--packages/qtopia-phone/files/fic-gta01/device-conf.old48
-rw-r--r--packages/qtopia-phone/files/fic-gta01/qplatformdefs.h146
-rw-r--r--packages/qtopia-phone/files/fic-gta02/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/files/fic-gta02/device-conf46
-rw-r--r--packages/qtopia-phone/files/fic-gta02/device-conf.old48
-rw-r--r--packages/qtopia-phone/files/fic-gta02/qplatformdefs.h146
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11/fic-gta02/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/.mtn2git_empty0
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/89qtopia36
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11/qtopia.sh4
-rw-r--r--packages/qtopia-phone/qtopia-phone-x11_4.3.1.bb123
-rw-r--r--packages/qtopia-phone/qtopia-phone.inc114
-rw-r--r--packages/qtopia-phone/qtopia-phone_4.3.0.bb1
-rw-r--r--packages/qtopia-phone/qtopia-phone_4.3.1.bb1
-rw-r--r--packages/qtopia-phone/qtopia-phone_arch.inc23
-rw-r--r--packages/tasks/task-openmoko-qtopia-x11.bb35
-rw-r--r--packages/tasks/task-openmoko-qtopia.bb22
30 files changed, 941 insertions, 57 deletions
diff --git a/classes/sourcepkg.bbclass b/classes/sourcepkg.bbclass
index bbc9f187ec..f7daa9f46c 100644
--- a/classes/sourcepkg.bbclass
+++ b/classes/sourcepkg.bbclass
@@ -18,14 +18,20 @@ def get_src_tree(d):
bb.error("S not defined, unable to find source tree.")
return
- s_tree_raw = s.split('/')[1]
+ try:
+ s_tree_raw = s.split('/')[1]
+ except IndexError:
+ return
+
s_tree = bb.data.expand(s_tree_raw, d)
src_tree_path = os.path.join(workdir, s_tree)
try:
os.listdir(src_tree_path)
except OSError:
- bb.fatal("Expected to find source tree in '%s' which doesn't exist." % src_tree_path)
+ bb.error("Expected to find source tree in '%s' which doesn't exist." % src_tree_path, s)
+ return
+
bb.debug("Assuming source tree is '%s'" % src_tree_path)
return s_tree
@@ -39,11 +45,14 @@ sourcepkg_do_create_orig_tgz(){
done
src_tree=${@get_src_tree(d)}
-
- echo $src_tree
+ if test x${src_tree} = x; then
+ oenote "Skipping empty source tree"
+ return
+ fi
+
oenote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz"
tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree
- cp -pPR $src_tree $src_tree.orig
+ cp -av $src_tree $src_tree.orig
}
sourcepkg_do_archive_bb() {
@@ -74,7 +83,14 @@ python sourcepkg_do_dumpdata() {
bb.note("Dumping metadata into '%s'" % dumpfile)
f = open(dumpfile, "w")
# emit variables and shell functions
- bb.data.emit_env(f, d, True)
+
+ # FIXME: if we emit all, bitbake will get error while
+ # evaluating AUTOREV since we have AUTOREV =
+ # "${@bb.fetch.get_srcrev(d)}" in bitbake.conf, but get_srcrev
+ # without a valid SRC_URI will cause problem.
+
+ bb.data.emit_env(f, d, True)
+
# emit the metadata which isnt valid shell
for e in d.keys():
if bb.data.getVarFlag(e, 'python', d):
@@ -89,8 +105,11 @@ sourcepkg_do_create_diff_gz(){
echo $i >> temp/exclude-from-file
done
-
src_tree=${@get_src_tree(d)}
+ if test x${src_tree} = x; then
+ oenote "Skipping empty source tree"
+ return
+ fi
for i in `find . -maxdepth 1 -type f`; do
mkdir -p $src_tree/${DISTRO}/files
@@ -102,10 +121,10 @@ sourcepkg_do_create_diff_gz(){
rm -rf $src_tree.orig
}
-EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz
+#EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz
+EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_create_diff_gz
addtask create_orig_tgz after do_unpack before do_patch
-addtask archive_bb after do_patch before do_dumpdata
-addtask dumpdata after do_archive_bb before do_create_diff_gz
-addtask create_diff_gz after do_dump_data before do_configure
-
+addtask archive_bb after do_patch before do_configure
+#addtask dumpdata after do_archive_bb before do_configure
+addtask create_diff_gz after do_archive_bb before do_configure
diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc
index cb960d5168..a3569ff226 100644
--- a/conf/distro/include/sane-srcrevs.inc
+++ b/conf/distro/include/sane-srcrevs.inc
@@ -142,6 +142,7 @@ SRCREV_pn-opkg-native ?= "4235"
SRCREV_pn-opkg-sdk ?= "4235"
SRCREV_pn-oprofileui ?= "160"
SRCREV_pn-psplash ?= "249"
+SRCREV_pn-pty-forward-native ?= "4214"
SRCREV_pn-pylgrim ?= "20"
SRCREV_pn-pyneod ?= "88"
SRCREV_pn-pyneog ?= "88"
@@ -149,6 +150,7 @@ SRCREV_pn-python-formencode = "3148"
SRCREV_pn-python-gsmd = "127"
SRCREV_pn-python-lightmediascanner = "68"
SRCREV_pn-s3c24xx-gpio ?= "4130"
+SRCREV_pn-serial-forward ?= "4214"
SRCREV_pn-settings-daemon ?= "1755"
SRCREV_pn-sjf2410-linux-native ?= "933"
SRCREV_pn-sphyrna ?= "45"
diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb
index 7a95b55f34..fa9dbe0fb8 100644
--- a/packages/alsa/alsa-state.bb
+++ b/packages/alsa/alsa-state.bb
@@ -8,7 +8,7 @@ DESCRIPTION = "Default ALSA configuration"
LICENSE = "GPL"
RRECOMMENDS_alsa-state = "alsa-states"
PV = "0.1.0"
-PR = "r11"
+PR = "r14"
SRC_URI = " \
file://asoundrc \
diff --git a/packages/images/openmoko-qtopia-image.bb b/packages/images/openmoko-qtopia-image.bb
new file mode 100644
index 0000000000..351e17e1d8
--- /dev/null
+++ b/packages/images/openmoko-qtopia-image.bb
@@ -0,0 +1,22 @@
+#------------------------------------------------------
+# OpenMoko Qtopia Image Recipe
+#------------------------------------------------------
+
+require openmoko-minimal-image.bb
+
+export IMAGE_BASENAME = "${PN}"
+
+IMAGE_INSTALL += "\
+ alsa-state \
+ bluez-hcidump \
+ bluez-utils \
+ task-openmoko-qtopia \
+"
+
+DEPENDS += "\
+ task-openmoko-qtopia \
+"
+
+RDEPENDS = "${PACKAGE_INSTALL}"
+
+LICENSE = MIT
diff --git a/packages/images/openmoko-qtopia-x11-image.bb b/packages/images/openmoko-qtopia-x11-image.bb
new file mode 100644
index 0000000000..3291c53369
--- /dev/null
+++ b/packages/images/openmoko-qtopia-x11-image.bb
@@ -0,0 +1,7 @@
+#------------------------------------------------------
+# OpenMoko Qtopia/X11 Image Recipe
+#------------------------------------------------------
+
+require openmoko-minimal-image.bb
+
+IMAGE_INSTALL += "task-openmoko-qtopia-x11"
diff --git a/packages/ipkg/files/ipkg_bugfix.patch b/packages/ipkg/files/ipkg_bugfix.patch
deleted file mode 100644
index 51eccbb2bd..0000000000
--- a/packages/ipkg/files/ipkg_bugfix.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: C/ipkg_conf.c
-===================================================================
---- C.orig/ipkg_conf.c 2005-06-21 13:59:32.000000000 +0000
-+++ C/ipkg_conf.c 2007-11-27 01:11:17.000000000 +0000
-@@ -423,6 +423,7 @@
- nv_pair_t *nv_pair;
- pkg_dest_t *dest;
- char *root_dir;
-+ char *list_dir2;
-
- for (iter = nv_pair_list->head; iter; iter = iter->next) {
- nv_pair = iter->data;
-@@ -432,8 +433,14 @@
- } else {
- root_dir = strdup(nv_pair->value);
- }
-- dest = pkg_dest_list_append(&conf->pkg_dest_list, nv_pair->name, root_dir, lists_dir);
-+ if (conf->offline_root) {
-+ sprintf_alloc(&list_dir2, "%s%s", conf->offline_root, lists_dir);
-+ } else {
-+ list_dir2 = strdup(lists_dir);
-+ }
-+ dest = pkg_dest_list_append(&conf->pkg_dest_list, nv_pair->name, root_dir, list_dir2);
- free(root_dir);
-+ free(list_dir2);
- if (dest == NULL) {
- continue;
- }
-@@ -562,13 +569,13 @@
- } else if (strcmp(type, "dest") == 0) {
- nv_pair_list_append(tmp_dest_nv_pair_list, name, value);
- } else if (strcmp(type, "lists_dir") == 0) {
-- *lists_dir = realloc(*lists_dir,strlen(value)+1);
-+ *lists_dir = realloc(*lists_dir,strlen(name)+1);
- if (*lists_dir == NULL) {
- ipkg_message(conf, IPKG_ERROR, "ERROR: Not enough memory\n");
- free(options);
- return EINVAL;
- }
-- sprintf (*lists_dir,"%s",value);
-+ sprintf (*lists_dir,"%s", name);
- } else if (strcmp(type, "arch") == 0) {
- ipkg_message(conf, IPKG_INFO, "supported arch %s priority (%s)\n", name, value);
- if (!value) {
diff --git a/packages/openmoko-tools/pty-forward-native.bb b/packages/openmoko-tools/pty-forward-native.bb
new file mode 100644
index 0000000000..972070d6b6
--- /dev/null
+++ b/packages/openmoko-tools/pty-forward-native.bb
@@ -0,0 +1,24 @@
+LICENSE="GPL"
+SUMMARY="Receive a forwarded serial from serial-forward and provide a PTY"
+
+SRC_URI="svn://svn.openmoko.org/developers/zecke/;module=serial_forward;proto=http"
+S = "${WORKDIR}/serial_forward"
+
+inherit native
+
+do_compile() {
+ cd ${S}
+ oe_runmake
+}
+
+do_stage() {
+ :
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 ${S}/pty_forward ${DEPLOY_DIR_IMAGE}/pty-forward
+}
+
+addtask deploy before do_package after do_install
+
diff --git a/packages/openmoko-tools/serial-forward.bb b/packages/openmoko-tools/serial-forward.bb
new file mode 100644
index 0000000000..3cc33770d6
--- /dev/null
+++ b/packages/openmoko-tools/serial-forward.bb
@@ -0,0 +1,15 @@
+LICENSE="GPL"
+SUMMARY="Forward a serial using TCP/IP"
+
+SRC_URI="svn://svn.openmoko.org/developers/zecke/;module=serial_forward;proto=http"
+S="${WORKDIR}/serial_forward"
+
+do_compile() {
+ cd ${S}
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/forward ${D}/${bindir}/${PN}
+}
diff --git a/packages/qtopia-phone/.mtn2git_empty b/packages/qtopia-phone/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/.mtn2git_empty
diff --git a/packages/qtopia-phone/files/.mtn2git_empty b/packages/qtopia-phone/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/files/.mtn2git_empty
diff --git a/packages/qtopia-phone/files/fic-gta01/.mtn2git_empty b/packages/qtopia-phone/files/fic-gta01/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta01/.mtn2git_empty
diff --git a/packages/qtopia-phone/files/fic-gta01/device-conf b/packages/qtopia-phone/files/fic-gta01/device-conf
new file mode 100644
index 0000000000..f1c3b21f24
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta01/device-conf
@@ -0,0 +1,46 @@
+-arch OE_QT_ARCH
+-xplatform OE_QT_XPLATFORM
+-verbose
+-qtopiamedia
+-mediaengines gstreamer
+-extra-qtopiacore-config "-qt-mouse-linuxtp"
+-extra-qtopiacore-config "-depths 16"
+-no-infrared
+-dbus
+-dbuspath OE_QT_DBUSPATH
+-iconsize 22
+-displaysize 480x640
+-extra-qtopiacore-config "-D QT_QWS_SCREENCORDS"
+-extra-qtopiacore-config "-D QT_QWS_SCREEN_COORDINATES"
+-extra-qtopiacore-config "-fast"
+-extra-qtopiacore-config "-no-accessibility"
+-extra-qtopiacore-config "-no-cups"
+-extra-qtopiacore-config "-no-freetype"
+-extra-qtopiacore-config "-nomake demos"
+-extra-qtopiacore-config "-nomake examples"
+-extra-qtopiacore-config "-qt-gfx-linuxfb"
+-extra-qtopiacore-config "-qt-libjpeg"
+-extra-qtopiacore-config "-qt-libmng"
+-extra-qtopiacore-config "-qt-libpng"
+-extra-qtopiacore-config "-qt-mouse-tslib"
+-extra-qtopiacore-config "-qt-zlib"
+-extra-qtopiacore-config "-release"
+-extra-qtopiacore-config "OE_QT_ENDIAN"
+-extra-qt-config "-nomake examples"
+-extra-qt-config "-nomake demos"
+-font dejavu_sans_condensed:10,11,13,15,16,17,18,19,28,36:50,75
+-image OE_QT_RPREFIX
+-launch-method quicklaunch
+-force-quicklaunch
+-no-clean
+-no-drm
+-no-qvfb
+-no-vpn
+-no-sxe
+-no-silent
+-prefix OE_QT_RPREFIX
+-reduce-exports=yes
+-release
+-confirm-license
+OE_QT_EXTRACONFIG
+
diff --git a/packages/qtopia-phone/files/fic-gta01/device-conf.old b/packages/qtopia-phone/files/fic-gta01/device-conf.old
new file mode 100644
index 0000000000..37a9d1e7de
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta01/device-conf.old
@@ -0,0 +1,48 @@
+-arch OE_QT_ARCH
+-xplatform OE_QT_XPLATFORM
+-verbose
+-qtopiamedia
+-mediaengines gstreamer
+-extra-qtopiacore-config "-qt-mouse-linuxtp"
+-extra-qtopiacore-config "-depths OE_QT_DEPTHS"
+-no-infrared
+-dbus
+-dbuspath OE_QT_DBUSPATH
+-iconsize OT_QT_ICONSIZE
+-displaysize OE_QT_DISPLAYSIZE
+-extra-qtopiacore-config "-D QT_QWS_SCREENCORDS"
+-extra-qtopiacore-config "-D QT_QWS_SCREEN_COORDINATES"
+-extra-qtopiacore-config "-fast"
+-extra-qtopiacore-config "-no-accessibility"
+-extra-qtopiacore-config "-no-cups"
+-extra-qtopiacore-config "-no-freetype"
+-extra-qtopiacore-config "-nomake demos"
+-extra-qtopiacore-config "-nomake examples"
+-extra-qtopiacore-config "-qt-gfx-linuxfb"
+-extra-qtopiacore-config "-qt-libjpeg"
+-extra-qtopiacore-config "-qt-libmng"
+-extra-qtopiacore-config "-qt-libpng"
+-extra-qtopiacore-config "-qt-mouse-tslib"
+-extra-qtopiacore-config "-qt-zlib"
+-extra-qtopiacore-config "-release"
+#-extra-qtopiacore-config "-LOE_QT_LIBDIR"
+#-extra-qtopiacore-config "-IOE_QT_INCDIR"
+-extra-qtopiacore-config "OE_QT_ENDIAN"
+-extra-qt-config "-nomake examples"
+-extra-qt-config "-nomake demos"
+-font dejavu_sans_condensed:10,11,13,15,16,17,18,19,28,36:50,75
+-image OE_QT_RPREFEX
+-launch-method quicklaunch
+-force-quicklaunch
+-no-clean
+-no-drm
+-no-qvfb
+-no-vpn
+-no-sxe
+-no-silent
+-prefix OE_QT_RPREFIX
+-reduce-exports=yes
+-release
+-confirm-license
+OE_QT_EXTRACONFIG
+
diff --git a/packages/qtopia-phone/files/fic-gta01/qplatformdefs.h b/packages/qtopia-phone/files/fic-gta01/qplatformdefs.h
new file mode 100644
index 0000000000..c216578d97
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta01/qplatformdefs.h
@@ -0,0 +1,146 @@
+/****************************************************************************
+**
+** Copyright (C) 2000-2007 TROLLTECH ASA. All rights reserved.
+**
+** This file is part of the Opensource Edition of the Qtopia Toolkit.
+**
+** This software is licensed under the terms of the GNU General Public
+** License (GPL) version 2.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
+
+// 1) need to reset default environment if _BSD_SOURCE is defined
+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
+// 3) it seems older glibc need this to include the X/Open stuff
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+
+#include <unistd.h>
+
+
+// We are hot - unistd.h should have turned on the specific APIs we requested
+
+#include <features.h>
+#include <pthread.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <pwd.h>
+#include <signal.h>
+#include <dlfcn.h>
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/time.h>
+#include <sys/shm.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <netinet/in.h>
+#ifndef QT_NO_IPV6IFNAME
+#include <net/if.h>
+#endif
+
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_STATBUF struct stat64
+#define QT_STATBUF4TSTAT struct stat64
+#define QT_STAT ::stat64
+#define QT_FSTAT ::fstat64
+#define QT_LSTAT ::lstat64
+#define QT_OPEN ::open64
+#define QT_TRUNCATE ::truncate64
+#define QT_FTRUNCATE ::ftruncate64
+#define QT_LSEEK ::lseek64
+#else
+#define QT_STATBUF struct stat
+#define QT_STATBUF4TSTAT struct stat
+#define QT_STAT ::stat
+#define QT_FSTAT ::fstat
+#define QT_LSTAT ::lstat
+#define QT_OPEN ::open
+#define QT_TRUNCATE ::truncate
+#define QT_FTRUNCATE ::ftruncate
+#define QT_LSEEK ::lseek
+#endif
+
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_FOPEN ::fopen64
+#define QT_FSEEK ::fseeko64
+#define QT_FTELL ::ftello64
+#define QT_FGETPOS ::fgetpos64
+#define QT_FSETPOS ::fsetpos64
+#define QT_FPOS_T fpos64_t
+#define QT_OFF_T off64_t
+#else
+#define QT_FOPEN ::fopen
+#define QT_FSEEK ::fseek
+#define QT_FTELL ::ftell
+#define QT_FGETPOS ::fgetpos
+#define QT_FSETPOS ::fsetpos
+#define QT_FPOS_T fpos_t
+#define QT_OFF_T long
+#endif
+
+#define QT_STAT_REG S_IFREG
+#define QT_STAT_DIR S_IFDIR
+#define QT_STAT_MASK S_IFMT
+#define QT_STAT_LNK S_IFLNK
+#define QT_SOCKET_CONNECT ::connect
+#define QT_SOCKET_BIND ::bind
+#define QT_SOCKET_BIND ::bind
+#define QT_FILENO fileno
+#define QT_CLOSE ::close
+#define QT_READ ::read
+#define QT_WRITE ::write
+#define QT_ACCESS ::access
+#define QT_GETCWD ::getcwd
+#define QT_CHDIR ::chdir
+#define QT_MKDIR ::mkdir
+#define QT_RMDIR ::rmdir
+#define QT_OPEN_LARGEFILE O_LARGEFILE
+#define QT_OPEN_RDONLY O_RDONLY
+#define QT_OPEN_WRONLY O_WRONLY
+#define QT_OPEN_RDWR O_RDWR
+#define QT_OPEN_CREAT O_CREAT
+#define QT_OPEN_TRUNC O_TRUNC
+#define QT_OPEN_APPEND O_APPEND
+
+#define QT_SIGNAL_RETTYPE void
+#define QT_SIGNAL_ARGS int
+#define QT_SIGNAL_IGNORE SIG_IGN
+
+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
+#define QT_SOCKLEN_T socklen_t
+#else
+#define QT_SOCKLEN_T int
+#endif
+
+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
+#define QT_SNPRINTF ::snprintf
+#define QT_VSNPRINTF ::vsnprintf
+#endif
+
+#define QT_QLOCALE_USES_FCVT
+
+#endif // QPLATFORMDEFS_H
diff --git a/packages/qtopia-phone/files/fic-gta02/.mtn2git_empty b/packages/qtopia-phone/files/fic-gta02/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta02/.mtn2git_empty
diff --git a/packages/qtopia-phone/files/fic-gta02/device-conf b/packages/qtopia-phone/files/fic-gta02/device-conf
new file mode 100644
index 0000000000..f1c3b21f24
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta02/device-conf
@@ -0,0 +1,46 @@
+-arch OE_QT_ARCH
+-xplatform OE_QT_XPLATFORM
+-verbose
+-qtopiamedia
+-mediaengines gstreamer
+-extra-qtopiacore-config "-qt-mouse-linuxtp"
+-extra-qtopiacore-config "-depths 16"
+-no-infrared
+-dbus
+-dbuspath OE_QT_DBUSPATH
+-iconsize 22
+-displaysize 480x640
+-extra-qtopiacore-config "-D QT_QWS_SCREENCORDS"
+-extra-qtopiacore-config "-D QT_QWS_SCREEN_COORDINATES"
+-extra-qtopiacore-config "-fast"
+-extra-qtopiacore-config "-no-accessibility"
+-extra-qtopiacore-config "-no-cups"
+-extra-qtopiacore-config "-no-freetype"
+-extra-qtopiacore-config "-nomake demos"
+-extra-qtopiacore-config "-nomake examples"
+-extra-qtopiacore-config "-qt-gfx-linuxfb"
+-extra-qtopiacore-config "-qt-libjpeg"
+-extra-qtopiacore-config "-qt-libmng"
+-extra-qtopiacore-config "-qt-libpng"
+-extra-qtopiacore-config "-qt-mouse-tslib"
+-extra-qtopiacore-config "-qt-zlib"
+-extra-qtopiacore-config "-release"
+-extra-qtopiacore-config "OE_QT_ENDIAN"
+-extra-qt-config "-nomake examples"
+-extra-qt-config "-nomake demos"
+-font dejavu_sans_condensed:10,11,13,15,16,17,18,19,28,36:50,75
+-image OE_QT_RPREFIX
+-launch-method quicklaunch
+-force-quicklaunch
+-no-clean
+-no-drm
+-no-qvfb
+-no-vpn
+-no-sxe
+-no-silent
+-prefix OE_QT_RPREFIX
+-reduce-exports=yes
+-release
+-confirm-license
+OE_QT_EXTRACONFIG
+
diff --git a/packages/qtopia-phone/files/fic-gta02/device-conf.old b/packages/qtopia-phone/files/fic-gta02/device-conf.old
new file mode 100644
index 0000000000..37a9d1e7de
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta02/device-conf.old
@@ -0,0 +1,48 @@
+-arch OE_QT_ARCH
+-xplatform OE_QT_XPLATFORM
+-verbose
+-qtopiamedia
+-mediaengines gstreamer
+-extra-qtopiacore-config "-qt-mouse-linuxtp"
+-extra-qtopiacore-config "-depths OE_QT_DEPTHS"
+-no-infrared
+-dbus
+-dbuspath OE_QT_DBUSPATH
+-iconsize OT_QT_ICONSIZE
+-displaysize OE_QT_DISPLAYSIZE
+-extra-qtopiacore-config "-D QT_QWS_SCREENCORDS"
+-extra-qtopiacore-config "-D QT_QWS_SCREEN_COORDINATES"
+-extra-qtopiacore-config "-fast"
+-extra-qtopiacore-config "-no-accessibility"
+-extra-qtopiacore-config "-no-cups"
+-extra-qtopiacore-config "-no-freetype"
+-extra-qtopiacore-config "-nomake demos"
+-extra-qtopiacore-config "-nomake examples"
+-extra-qtopiacore-config "-qt-gfx-linuxfb"
+-extra-qtopiacore-config "-qt-libjpeg"
+-extra-qtopiacore-config "-qt-libmng"
+-extra-qtopiacore-config "-qt-libpng"
+-extra-qtopiacore-config "-qt-mouse-tslib"
+-extra-qtopiacore-config "-qt-zlib"
+-extra-qtopiacore-config "-release"
+#-extra-qtopiacore-config "-LOE_QT_LIBDIR"
+#-extra-qtopiacore-config "-IOE_QT_INCDIR"
+-extra-qtopiacore-config "OE_QT_ENDIAN"
+-extra-qt-config "-nomake examples"
+-extra-qt-config "-nomake demos"
+-font dejavu_sans_condensed:10,11,13,15,16,17,18,19,28,36:50,75
+-image OE_QT_RPREFEX
+-launch-method quicklaunch
+-force-quicklaunch
+-no-clean
+-no-drm
+-no-qvfb
+-no-vpn
+-no-sxe
+-no-silent
+-prefix OE_QT_RPREFIX
+-reduce-exports=yes
+-release
+-confirm-license
+OE_QT_EXTRACONFIG
+
diff --git a/packages/qtopia-phone/files/fic-gta02/qplatformdefs.h b/packages/qtopia-phone/files/fic-gta02/qplatformdefs.h
new file mode 100644
index 0000000000..c216578d97
--- /dev/null
+++ b/packages/qtopia-phone/files/fic-gta02/qplatformdefs.h
@@ -0,0 +1,146 @@
+/****************************************************************************
+**
+** Copyright (C) 2000-2007 TROLLTECH ASA. All rights reserved.
+**
+** This file is part of the Opensource Edition of the Qtopia Toolkit.
+**
+** This software is licensed under the terms of the GNU General Public
+** License (GPL) version 2.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
+
+// 1) need to reset default environment if _BSD_SOURCE is defined
+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
+// 3) it seems older glibc need this to include the X/Open stuff
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+
+#include <unistd.h>
+
+
+// We are hot - unistd.h should have turned on the specific APIs we requested
+
+#include <features.h>
+#include <pthread.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <pwd.h>
+#include <signal.h>
+#include <dlfcn.h>
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/time.h>
+#include <sys/shm.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <netinet/in.h>
+#ifndef QT_NO_IPV6IFNAME
+#include <net/if.h>
+#endif
+
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_STATBUF struct stat64
+#define QT_STATBUF4TSTAT struct stat64
+#define QT_STAT ::stat64
+#define QT_FSTAT ::fstat64
+#define QT_LSTAT ::lstat64
+#define QT_OPEN ::open64
+#define QT_TRUNCATE ::truncate64
+#define QT_FTRUNCATE ::ftruncate64
+#define QT_LSEEK ::lseek64
+#else
+#define QT_STATBUF struct stat
+#define QT_STATBUF4TSTAT struct stat
+#define QT_STAT ::stat
+#define QT_FSTAT ::fstat
+#define QT_LSTAT ::lstat
+#define QT_OPEN ::open
+#define QT_TRUNCATE ::truncate
+#define QT_FTRUNCATE ::ftruncate
+#define QT_LSEEK ::lseek
+#endif
+
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_FOPEN ::fopen64
+#define QT_FSEEK ::fseeko64
+#define QT_FTELL ::ftello64
+#define QT_FGETPOS ::fgetpos64
+#define QT_FSETPOS ::fsetpos64
+#define QT_FPOS_T fpos64_t
+#define QT_OFF_T off64_t
+#else
+#define QT_FOPEN ::fopen
+#define QT_FSEEK ::fseek
+#define QT_FTELL ::ftell
+#define QT_FGETPOS ::fgetpos
+#define QT_FSETPOS ::fsetpos
+#define QT_FPOS_T fpos_t
+#define QT_OFF_T long
+#endif
+
+#define QT_STAT_REG S_IFREG
+#define QT_STAT_DIR S_IFDIR
+#define QT_STAT_MASK S_IFMT
+#define QT_STAT_LNK S_IFLNK
+#define QT_SOCKET_CONNECT ::connect
+#define QT_SOCKET_BIND ::bind
+#define QT_SOCKET_BIND ::bind
+#define QT_FILENO fileno
+#define QT_CLOSE ::close
+#define QT_READ ::read
+#define QT_WRITE ::write
+#define QT_ACCESS ::access
+#define QT_GETCWD ::getcwd
+#define QT_CHDIR ::chdir
+#define QT_MKDIR ::mkdir
+#define QT_RMDIR ::rmdir
+#define QT_OPEN_LARGEFILE O_LARGEFILE
+#define QT_OPEN_RDONLY O_RDONLY
+#define QT_OPEN_WRONLY O_WRONLY
+#define QT_OPEN_RDWR O_RDWR
+#define QT_OPEN_CREAT O_CREAT
+#define QT_OPEN_TRUNC O_TRUNC
+#define QT_OPEN_APPEND O_APPEND
+
+#define QT_SIGNAL_RETTYPE void
+#define QT_SIGNAL_ARGS int
+#define QT_SIGNAL_IGNORE SIG_IGN
+
+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
+#define QT_SOCKLEN_T socklen_t
+#else
+#define QT_SOCKLEN_T int
+#endif
+
+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
+#define QT_SNPRINTF ::snprintf
+#define QT_VSNPRINTF ::vsnprintf
+#endif
+
+#define QT_QLOCALE_USES_FCVT
+
+#endif // QPLATFORMDEFS_H
diff --git a/packages/qtopia-phone/qtopia-phone-x11/.mtn2git_empty b/packages/qtopia-phone/qtopia-phone-x11/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11/.mtn2git_empty
diff --git a/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/.mtn2git_empty b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/.mtn2git_empty
diff --git a/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/.mtn2git_empty b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/.mtn2git_empty
diff --git a/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/89qtopia b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/89qtopia
new file mode 100644
index 0000000000..c987e2618d
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11/fic-gta02/Xsession.d/89qtopia
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# xmodmap to allow the soft-menu to work
+xmodmap -e "keycode 180 = 0x11000601"
+xmodmap -e "keycode 181 = 0x11000602"
+xmodmap -e "keycode 182 = 0x11000603"
+xmodmap -e "keycode 183 = 0x11000604"
+xmodmap -e "keycode 184 = 0x11000605"
+xmodmap -e "keycode 185 = 0x11000606"
+xmodmap -e "keycode 186 = 0x11000607"
+xmodmap -e "keycode 187 = 0x11000608"
+xmodmap -e "keycode 188 = 0x11000609"
+xmodmap -e "keycode 189 = 0x1100060A"
+xmodmap -e "keycode 190 = 0x1100060B"
+xmodmap -e "keycode 191 = 0x1100060B"
+xmodmap -e "keycode 192 = 0x1100060A"
+xmodmap -e "keycode 193 = 0x1100060C"
+xmodmap -e "keycode 194 = 0x1100060D"
+xmodmap -e "keycode 195 = 0x1100060E"
+xmodmap -e "keycode 196 = 0x1100060F"
+xmodmap -e "keycode 197 = 0x11000610"
+xmodmap -e "keycode 198 = 0x1008ff26"
+
+# path setup
+export QPEDIR=/opt/Qtopia
+export PATH=$QPEDIR/bin:$PATH
+export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
+
+#tell Qtopia how to inform illume on incoming phone calls
+#export ILLUME_PHONE_CALL=
+export QTOPIA_PHONE_VENDOR=ficgta01
+export QTOPIA_PHONE_MUX=ficgta01
+
+
+# Now start Qtopia
+qpe &
diff --git a/packages/qtopia-phone/qtopia-phone-x11/qtopia.sh b/packages/qtopia-phone/qtopia-phone-x11/qtopia.sh
new file mode 100644
index 0000000000..b28001d016
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11/qtopia.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+export QPEDIR=/opt/Qtopia
+export PATH=$PATH:$QPEDIR/bin
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QPEDIR/lib
diff --git a/packages/qtopia-phone/qtopia-phone-x11_4.3.1.bb b/packages/qtopia-phone/qtopia-phone-x11_4.3.1.bb
new file mode 100644
index 0000000000..9dfbd8a716
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone-x11_4.3.1.bb
@@ -0,0 +1,123 @@
+# This is qtopia-phone recipe heavilly based off the one in the qtopia-phone
+# distribution.
+#
+# Please DO NOT merge this file into OE, it is not suitable for that yet as
+# it compiles both native and target binaries. This requires stuff to be
+# installed on the host which is against the aim of OE.
+
+DESCRIPTION = "Qtopia OpenSource"
+SECTION = "qtopia-phone"
+LICENSE = "GPL"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+DEPENDS = "glib-2.0 dbus freetype alsa-lib bluez-libs virtual/libx11 fontconfig xft libxext libxrender libxrandr libxcursor libxtst"
+RDEPENDS = "atd tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
+PROVIDES = "qtopia-phone"
+PR = "r8"
+SRCREV = "${AUTOREV}"
+SRC_URI = "git://git.openmoko.org/git/qtopia.git;protocol=git \
+ file://Xsession.d/99qtopia \
+ file://qtopia.sh"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+TARGET-DEVICE="${@base_contains('MACHINE', 'nokia770', ' nokia770', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'nokia800', ' nokia770', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'spitz', ' c3200', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'tosa', ' c3200', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'fic-gta01', 'ficgta01', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'fic-gta02', 'ficgta01', '',d)}"
+
+require qtopia-phone_arch.inc
+
+QT_ARCH = "${@qtopia_arch(d)}"
+QT_ENDIAN = "${@qtopia_endian(d)}"
+PLATFORM = "${BUILD_OS}-g++"
+BUILDDIR = "${WORKDIR}/build"
+OE_QT_PREFIX = "/opt/Qtopia"
+
+export OE_QMAKE_CC="${CC}"
+export OE_QMAKE_CFLAGS="${CFLAGS}"
+export OE_QMAKE_CXX="${CXX}"
+export OE_QMAKE_LDFLAGS="${LDFLAGS}"
+export OE_QMAKE_AR="${AR}"
+export OE_QMAKE_STRIP="echo"
+export OE_QMAKE_RPATH="-Wl,-rpath-link,"
+
+do_configure() {
+
+# This qmake some how does not honor env var, let us fix it by sed force
+sed -i s%$\(OE_QMAKE_CC\)%"${CC}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_CFLAGS\)%"${CFLAGS}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_CXX\)%"${CXX}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_CXXFLAGS\)%"${CXXFLAGS}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_LINK\)%"${CXX}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_LDFLAGS\)%"${LDFLAGS}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_AR\)%"${AR}"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+sed -i s%$\(OE_QMAKE_STRIP\)%"echo"%g ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/linux-oe-g++/qmake.conf
+
+
+unset CC
+unset CXX
+unset CFLAGS
+unset CXXFLAGS
+unset LDFLAGS
+
+
+mkdir -p ${BUILDDIR}
+cd ${BUILDDIR}
+echo yes | ${S}/configure -xplatform linux-oe-g++ -arch ${QT_ARCH} ${QT_ENDIAN} -prefix ${OE_QT_PREFIX} -device ${TARGET-DEVICE} -verbose \
+ -no-drm -no-sxe -displaysize 480x640 -dbus -debug -extra-qtopiacore-config "-qt-libjpeg -qt-zlib -qt-libpng -no-iconv -no-sm -fontconfig -xrender -xrandr" \
+ -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/fontconfig -I${STAGING_INCDIR}/dbus-1.0
+
+}
+
+do_compile() {
+ cd ${BUILDDIR}
+ oe_runmake
+}
+
+do_stage() {
+}
+
+
+do_install() {
+ cd ${BUILDDIR}
+ oe_runmake install INSTALL_ROOT=${D}${OE_QT_PREFIX} IMAGE=${D}${OE_QT_PREFIX}
+
+ # Install freedesktop.org .desktop files for enlightenment
+ install -d ${D}${datadir}/applications
+ for app in "${S}/apps-fdo/"*; do
+ for file in "$app"/*.desktop; do
+ install -m 0644 $file ${D}${datadir}/applications/
+ done
+ done
+
+ # Install good icons for the desktop files
+
+ # Make sure qpe gets launched by X
+ install -d ${D}/${sysconfdir}/X11/Xsession.d
+ install -m 0755 ${WORKDIR}/Xsession.d/99qtopia ${D}${sysconfdir}/X11/Xsession.d/
+
+ # Install some scripts
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/bin/qcop-x11-launch ${D}${bindir}
+
+ install -d ${D}${sysconfdir}/profile.d/
+ install -m 0755 ${WORKDIR}/qtopia.sh ${D}${sysconfdir}/profile.d/
+}
+
+FILES_${PN} += "${OE_QT_PREFIX}/bin ${OE_QT_PREFIX}/help \
+ ${OE_QT_PREFIX}/lib/*.so.* ${OE_QT_PREFIX}/plugins/*/*.so \
+ ${OE_QT_PREFIX}/qtopia_db.sqlite ${OE_QT_PREFIX}/sounds \
+ ${OE_QT_PREFIX}/etc ${OE_QT_PREFIX}/i18n \
+ ${OE_QT_PREFIX}/pics ${OE_QT_PREFIX}/qt_plugins/*/*.so \
+ ${OE_QT_PREFIX}/services"
+
+FILES_${PN}-dbg += "${OE_QT_PREFIX}/lib/.debug/ ${OE_QT_PREFIX}/bin/.debug/ \
+ ${OE_QT_PREFIX}/plugins/*/.debug/ ${OE_QT_PREFIX}/qt_plugins/*/.debug/ "
+
+FILES_${PN}-dev += "${OE_QT_PREFIX}/lib/*.so"
+
diff --git a/packages/qtopia-phone/qtopia-phone.inc b/packages/qtopia-phone/qtopia-phone.inc
new file mode 100644
index 0000000000..ed6e153559
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone.inc
@@ -0,0 +1,114 @@
+# This is qtopia-phone recipe heavilly based off the one in the qtopia-phone
+# distribution.
+#
+# Please DO NOT merge this file into OE, it is not suitable for that yet as
+# it compiles both native and target binaries. This requires stuff to be
+# installed on the host which is against the aim of OE.
+
+DESCRIPTION = "Qtopia OpenSource"
+SECTION = "qtopia-phone"
+LICENSE = "GPL"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+DEPENDS = "glib-2.0 dbus tslib gstreamer"
+PROVIDES = "qtopia-phone"
+PR = "r1"
+SRC_URI = "ftp://ftp.trolltech.com/qtopia/source/qtopia-opensource-src-${PV}.tar.gz \
+ file://device-conf \
+ file://qplatformdefs.h"
+
+S = "${WORKDIR}/qtopia-opensource-${PV}"
+
+inherit pkgconfig update-rc.d
+
+TARGET-DEVICE="${@base_contains('MACHINE', 'nokia770', ' nokia770', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'nokia800', ' nokia770', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'spitz', ' c3200', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'tosa', ' c3200', '',d)}"
+TARGET-DEVICE="${@base_contains('MACHINE', 'fic-gta01', 'ficgta01', '',d)}"
+
+INITSCRIPT_NAME = "qpe"
+INITSCRIPT_PARAMS = "defaults 98"
+
+export QTOPIA_DEPOT_PATH = "${S}"
+
+require qtopia-phone_arch.inc
+
+QT_ARCH = "${@qtopia_arch(d)}"
+QT_ENDIAN = "${@qtopia_endian(d)}"
+PLATFORM = "${BUILD_OS}-g++"
+XPLATFORM = "linux-oe-g++"
+BUILDDIR = "${WORKDIR}/build"
+
+OE_QT_DBUSPATH = "${STAGING_DIR_HOST}"
+OE_QT_ARCH = "${QT_ARCH}"
+OE_QT_XPLATFORM = "${XPLATFORM}"
+OE_QT_LIBDIR = "${STAGING_LIBDIR}"
+OE_QT_INCDIR = "${STAGING_INCDIR}"
+OE_QT_RPREFIX = "/opt/Qtopia"
+OE_QT_ENDIAN = "${QT_ENDIAN}"
+OE_QT_EXTRACONFIG = "-I${STAGING_INCDIR}/dbus-1.0"
+
+do_configure() {
+
+unset CC
+unset CXX
+unset CFLAGS
+unset CXXFLAGS
+unset LDFLAGS
+
+mkdir -p ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/${XPLATFORM}
+install -m 644 ${S}/qtopiacore/qt/mkspecs/qws/linux-arm-g++/qmake.conf \
+ ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/${XPLATFORM}
+install -m 644 ${WORKDIR}/qplatformdefs.h \
+ ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/${XPLATFORM}
+sed -i -e "s@arm-linux-@${TARGET_SYS}-@" ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/${XPLATFORM}/qmake.conf
+sed -i -e "s|QMAKE_RPATH.*|QMAKE_RPATH =|" ${S}/devices/${TARGET-DEVICE}/mkspecs/qws/${XPLATFORM}/qmake.conf
+
+# sed the dynamic config into the file
+sed -i -e "s|OE_QT_DBUSPATH|${OE_QT_DBUSPATH}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_ARCH|${OE_QT_ARCH}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_XPLATFORM|${OE_QT_XPLATFORM}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_LIBDIR|${OE_QT_LIBDIR}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_INCDIR|${OE_QT_INCDIR}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_RPREFIX|${OE_QT_RPREFIX}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_ENDIAN|${OE_QT_ENDIAN}|" ${WORKDIR}/device-conf
+sed -i -e "s|OE_QT_EXTRACONFIG|${OE_QT_EXTRACONFIG}|" ${WORKDIR}/device-conf
+
+rm -f ${S}/devices/${TARGET-DEVICE}/configure
+cp ${WORKDIR}/device-conf ${S}/devices/${TARGET-DEVICE}/configure
+rm -f ${S}/devices/${TARGET-DEVICE}/environment
+echo "" > ${S}/devices/${TARGET-DEVICE}/environment
+
+mkdir -p ${BUILDDIR}
+cd ${BUILDDIR}
+echo yes | ${S}/configure -device ${TARGET-DEVICE} -xplatform ${XPLATFORM}
+
+}
+
+do_compile() {
+ cd ${BUILDDIR}
+ oe_runmake
+}
+
+do_stage() {
+}
+
+
+do_install() {
+ cd ${BUILDDIR}
+ oe_runmake install INSTALL_ROOT=${D}${OE_QT_RPREFIX} IMAGE=${D}${OE_QT_RPREFIX}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/devices/${TARGET-DEVICE}/src/devtools/startup/qpe.sh ${D}${sysconfdir}/init.d/qpe
+
+}
+
+FILES_${PN} += "${OE_QT_RPREFIX}/bin ${OE_QT_RPREFIX}/help \
+ ${OE_QT_RPREFIX}/lib/*.so.* ${OE_QT_RPREFIX}/plugins \
+ ${OE_QT_RPREFIX}/qtopia_db.sqlite ${OE_QT_RPREFIX}/sounds \
+ ${OE_QT_RPREFIX}/etc ${OE_QT_RPREFIX}/i18n \
+ ${OE_QT_RPREFIX}/pics ${OE_QT_RPREFIX}/qt_plugins \
+ ${OE_QT_RPREFIX}/services ${OE_QT_RPREFIX}/lib/fonts"
+
+FILES_${PN}-dev += "${OE_QT_RPREFIX}/lib/*.so"
+
diff --git a/packages/qtopia-phone/qtopia-phone_4.3.0.bb b/packages/qtopia-phone/qtopia-phone_4.3.0.bb
new file mode 100644
index 0000000000..ca6978b952
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone_4.3.0.bb
@@ -0,0 +1 @@
+require qtopia-phone.inc
diff --git a/packages/qtopia-phone/qtopia-phone_4.3.1.bb b/packages/qtopia-phone/qtopia-phone_4.3.1.bb
new file mode 100644
index 0000000000..ca6978b952
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone_4.3.1.bb
@@ -0,0 +1 @@
+require qtopia-phone.inc
diff --git a/packages/qtopia-phone/qtopia-phone_arch.inc b/packages/qtopia-phone/qtopia-phone_arch.inc
new file mode 100644
index 0000000000..84f0e51d01
--- /dev/null
+++ b/packages/qtopia-phone/qtopia-phone_arch.inc
@@ -0,0 +1,23 @@
+inherit siteinfo
+
+def qtopia_arch(d):
+ import bb, re
+ arch = bb.data.getVar('TARGET_ARCH', d, 1)
+ if re.match("^i.86$", arch):
+ arch = "i386"
+ elif re.match("^arm.*", arch):
+ arch = "arm"
+ elif arch == "x86_64":
+ arch = "x86"
+ elif arch == "mipsel":
+ arch = "mips"
+ return arch
+
+def qtopia_endian(d):
+ import bb
+ if bb.data.getVar('SITEINFO_ENDIANESS', d, True) == "le":
+ return "-little-endian"
+ elif bb.data.getVar('SITEINFO_ENDIANESS', d, True) == "be":
+ return "-big-endian"
+ else:
+ assert False
diff --git a/packages/tasks/task-openmoko-qtopia-x11.bb b/packages/tasks/task-openmoko-qtopia-x11.bb
new file mode 100644
index 0000000000..801e0e4ea5
--- /dev/null
+++ b/packages/tasks/task-openmoko-qtopia-x11.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "OpenMoko: Tasks for the OpenMoko Linux Distribution"
+SECTION = "openmoko/base"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+LICENSE = "MIT"
+PR = "r46"
+
+inherit task
+
+XSERVER ?= "xserver-kdrive-fbdev"
+
+PACKAGES = "task-openmoko-qtopia-x11"
+
+#
+# task-openmoko-qtopia-x11
+#
+DESCRIPTION_task-openmoko-qtopia-x11 = "OpenMoko: The Qtopia/X11 based User Interface"
+RDEPENDS_task-openmoko-qtopia-x11 = "\
+ alsa-state \
+ bluez-hcidump \
+ readline \
+ qtopia-phone-x11 \
+ e-wm \
+ illume \
+ ${XSERVER} \
+ xserver-kdrive-common \
+ xserver-nodm-init \
+ xauth \
+ xhost \
+ xset \
+ xrandr \
+ neod \
+ libnotify \
+"
+
diff --git a/packages/tasks/task-openmoko-qtopia.bb b/packages/tasks/task-openmoko-qtopia.bb
new file mode 100644
index 0000000000..6179bae8e6
--- /dev/null
+++ b/packages/tasks/task-openmoko-qtopia.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "OpenMoko: Tasks for the OpenMoko Linux Distribution"
+SECTION = "openmoko/base"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "all"
+LICENSE = "MIT"
+PR = "r45"
+
+PACKAGES = "task-openmoko-qtopia"
+
+#
+# task-openmoko-qtopia
+#
+DESCRIPTION_task-openmoko-qtopia = "OpenMoko: The Qtopia based native User Interface"
+RDEPENDS_task-openmoko-qtopia = "\
+ alsa-state \
+ bluez-hcidump \
+ readline \
+ gstreamer \
+ bootchart \
+ qtopia-phone \
+"
+