summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Balister <philip@balister.org>2007-12-03 22:23:38 +0000
committerPhilip Balister <philip@balister.org>2007-12-03 22:23:38 +0000
commitc9d9284e477752680bc176a2fa919c8fe14f5ee8 (patch)
tree0894f21101a85f8040c0756ae4143e401908c10e
parent11acd60397990158e6b1c900136c038189f5452e (diff)
parent4dc92f941e3afe632a0f08909713a0279ef9d2d5 (diff)
merge of '3979e1b277e23e3a99c5b86306581ddc32a83d53'
and '3fe444996883cc54a95f94bd89d9fba641d08c20'
-rw-r--r--classes/nslu2-image.bbclass2
-rw-r--r--classes/sip.bbclass10
-rw-r--r--conf/distro/angstrom-2007.1.conf2
-rw-r--r--conf/machine/include/ixp4xx.inc19
-rw-r--r--conf/machine/mpc8313e-rdb.conf3
-rw-r--r--packages/devmem2/devmem2.bb1
-rw-r--r--packages/gcc/gcc-cross_3.3.3.bb1
-rw-r--r--packages/gcc/gcc-cross_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.2.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-cvs.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm.bb2
-rw-r--r--packages/gcc/gcc3-build.inc21
-rw-r--r--packages/gcc/gcc_3.3.3.bb2
-rw-r--r--packages/gcc/gcc_3.3.4.bb2
-rw-r--r--packages/gcc/gcc_3.4.3.bb2
-rw-r--r--packages/gcc/gcc_3.4.4.bb2
-rw-r--r--packages/gcc/gcc_4.0.0.bb2
-rw-r--r--packages/gcc/gcc_4.0.2.bb2
-rw-r--r--packages/gcc/gcc_4.1.0.bb2
-rw-r--r--packages/gcc/gcc_4.1.1.bb2
-rw-r--r--packages/gcc/gcc_4.1.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.1.bb2
-rw-r--r--packages/gcc/gcc_4.2.2.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-cvs.bb2
-rw-r--r--packages/gcc/gcc_csl-arm.bb2
-rw-r--r--packages/gtk-webcore/midori_0.0.12.bb11
-rw-r--r--packages/libungif/libungif_4.1.3.bb2
-rw-r--r--packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch39
-rw-r--r--packages/meta/external-toolchain.bb50
-rw-r--r--packages/perl/libxml-parser-perl_2.34.bb4
-rw-r--r--packages/python/python-pyqt/01_configure.dpatch288
-rw-r--r--packages/python/python-pyqt/02_htmllinks.dpatch18
-rw-r--r--packages/python/python-pyqt/03_qreal.dpatch18
-rw-r--r--packages/python/python-pyqt/04_qreal_api_fixes.dpatch259
-rw-r--r--packages/python/python-pyqt_4.3.1.bb71
-rw-r--r--packages/python/python-pyqt_4.3.bb84
-rw-r--r--packages/python/python-sip_4.7.1.bb (renamed from packages/python/python-sip_4.7.bb)4
-rw-r--r--packages/sip/sip-native_4.7.1.bb (renamed from packages/sip/sip-native_4.7.bb)4
-rw-r--r--packages/sofia-sip/sofia-sip_1.11.7.bb8
-rw-r--r--packages/sofia-sip/sofia-sip_1.12.7.bb12
-rw-r--r--packages/tasks/task-base.bb64
-rw-r--r--packages/tasks/task-native-sdk.bb4
-rw-r--r--packages/xorg-lib/libx11-native_1.0.3.bb28
-rw-r--r--packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch386
-rw-r--r--packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch15
-rw-r--r--packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch438
-rw-r--r--packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch141
-rw-r--r--packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb4
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/Xserver3
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver3
60 files changed, 1854 insertions, 217 deletions
diff --git a/classes/nslu2-image.bbclass b/classes/nslu2-image.bbclass
index 33caa54b21..8be1fa762f 100644
--- a/classes/nslu2-image.bbclass
+++ b/classes/nslu2-image.bbclass
@@ -19,5 +19,5 @@ nslu2_pack_image () {
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2-16mb.bin
}
-EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware ixp4xx-npe upslug2-native apex-nslu2 apex-nslu2-16mb'
+EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware ixp4xx-npe apex-nslu2 apex-nslu2-16mb'
IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/classes/sip.bbclass b/classes/sip.bbclass
index a258fda629..6f77f460dc 100644
--- a/classes/sip.bbclass
+++ b/classes/sip.bbclass
@@ -1,8 +1,10 @@
# Build Class for Sip based Python Bindings
# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
#
-DEPENDS =+ "sip-native"
-RDEPENDS += "python-sip"
+
+# yes, python-sip is actually a build-time dependency, since
+# the recipe installs sip.h
+DEPENDS =+ "sip-native python-sip"
# default stuff, do not uncomment
# EXTRA_SIPTAGS = "-tWS_X11 -tQt_4_3_0"
@@ -34,8 +36,8 @@ sip_do_generate() {
for module in $MODULES
do
install -d ${module}/
- echo "calling 'sip4 -I sip -I ${STAGING_SIPDIR} ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.pro.in sip/${module}/${module}mod.sip'"
- sip4 -I ${STAGING_SIPDIR} -I sip ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.sbf \
+ echo "calling 'sip -I sip -I ${STAGING_SIPDIR} ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.pro.in sip/${module}/${module}mod.sip'"
+ sip -I ${STAGING_SIPDIR} -I sip ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.sbf \
sip/${module}/${module}mod.sip || die "Error calling sip on ${module}"
cat ${module}/${module}.sbf | sed s,target,TARGET, \
| sed s,sources,SOURCES, \
diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf
index ead957f1ba..67be27eae3 100644
--- a/conf/distro/angstrom-2007.1.conf
+++ b/conf/distro/angstrom-2007.1.conf
@@ -60,7 +60,7 @@ MACHINE_KERNEL_VERSION = "2.6"
PCMCIA_MANAGER = "pcmciautils"
#Preferred version for the kernel on various machines
-PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.21-hh18"
+PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.21-hh19"
PREFERRED_VERSION_linux-ixp4xx ?= "2.6.21.6+svnr${SRCREV}"
RDEPENDS_kernel-base_hx4700 = ""
RDEPENDS_kernel-base_htcuniversal = ""
diff --git a/conf/machine/include/ixp4xx.inc b/conf/machine/include/ixp4xx.inc
index 743b7ad362..6e7d303586 100644
--- a/conf/machine/include/ixp4xx.inc
+++ b/conf/machine/include/ixp4xx.inc
@@ -2,24 +2,15 @@
#@NAME: ixp4xx
#@DESCRIPTION: genric machine configuration for ixp4xx platforms
-# Set default for nslu2 - can be overridden for machines with other features.
+# Set default for common ixp4xx-based machines
MACHINE_FEATURES ?= "kernel26 usbhost ext2 redboot apex"
+# Select an appropriate default kernel
PREFERRED_PROVIDER_virtual/kernel ?= "linux-ixp4xx"
PREFERRED_VERSION_linux-ixp4xx ?= "2.6.21.6+svnr${SRCREV}"
-# Add modules required for basic networking support
-
-MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= " \
- ixp4xx-npe \
- "
-
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= " \
- kernel-module-mii \
- kernel-module-ixp4xx-mac \
- kernel-module-ixp4xx-qmgr \
- kernel-module-via-velocity \
- "
+# Add packages required for basic networking support
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "ixp4xx-npe"
# Set default for 16MB machines - can be overridden for more or less flash.
ROOT_FLASH_SIZE ?= "12"
@@ -27,7 +18,7 @@ ROOT_FLASH_SIZE ?= "12"
# Allow for rootfs loaded direct from internal hard disk
IMAGE_FSTYPES ?= "jffs2 tar.gz"
-# Set default for nslu2, nas100d, dsmg600
+# Set default for common ixp4xx-based machines
EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 -n"
require conf/machine/include/tune-xscale.inc
diff --git a/conf/machine/mpc8313e-rdb.conf b/conf/machine/mpc8313e-rdb.conf
index 3c47b53b56..81c3e29e91 100644
--- a/conf/machine/mpc8313e-rdb.conf
+++ b/conf/machine/mpc8313e-rdb.conf
@@ -13,6 +13,9 @@ MACHINE_FEATURES = "kernel26 usbhost ext2"
PREFERRED_VERSION_u-boot = "1.3.0"
UBOOT_MACHINE = "MPC8313ERDB_33_config"
+#rootfs on NAND flash
+EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x4000 --no-cleanmarkers"
+
#don't try to access tty1
USE_VT = "0"
diff --git a/packages/devmem2/devmem2.bb b/packages/devmem2/devmem2.bb
index 64de9fcbf3..56095f5c99 100644
--- a/packages/devmem2/devmem2.bb
+++ b/packages/devmem2/devmem2.bb
@@ -1,3 +1,4 @@
+DESCRIPTION = "Simple program to read/write from/to any location in memory."
SRC_URI = "http://www.abcsinc.com/small-linux/devmem2.c"
LICENSE = "GPL"
diff --git a/packages/gcc/gcc-cross_3.3.3.bb b/packages/gcc/gcc-cross_3.3.3.bb
index a24752fe89..509fe59469 100644
--- a/packages/gcc/gcc-cross_3.3.3.bb
+++ b/packages/gcc/gcc-cross_3.3.3.bb
@@ -1,6 +1,7 @@
SECTION = "devel"
require gcc_${PV}.bb
inherit cross
+
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
diff --git a/packages/gcc/gcc-cross_3.3.4.bb b/packages/gcc/gcc-cross_3.3.4.bb
index 34e111ee45..7cee36d66c 100644
--- a/packages/gcc/gcc-cross_3.3.4.bb
+++ b/packages/gcc/gcc-cross_3.3.4.bb
@@ -4,7 +4,7 @@ require gcc-paths-cross.inc
inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
-PR="r5"
+PR="r6"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_3.4.3.bb b/packages/gcc/gcc-cross_3.4.3.bb
index 21ca6656ec..cec0505eda 100644
--- a/packages/gcc/gcc-cross_3.4.3.bb
+++ b/packages/gcc/gcc-cross_3.4.3.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r11"
+PR = "r12"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_3.4.4.bb b/packages/gcc/gcc-cross_3.4.4.bb
index 0f0ad3b98f..7021b0fdd3 100644
--- a/packages/gcc/gcc-cross_3.4.4.bb
+++ b/packages/gcc/gcc-cross_3.4.4.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r5"
+PR = "r6"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.0.0.bb b/packages/gcc/gcc-cross_4.0.0.bb
index 73fd86a720..63d0f70c74 100644
--- a/packages/gcc/gcc-cross_4.0.0.bb
+++ b/packages/gcc/gcc-cross_4.0.0.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r2"
+PR = "r3"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.0.2.bb b/packages/gcc/gcc-cross_4.0.2.bb
index 33544af026..44ceb4f4ca 100644
--- a/packages/gcc/gcc-cross_4.0.2.bb
+++ b/packages/gcc/gcc-cross_4.0.2.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r8"
+PR = "r9"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.1.0.bb b/packages/gcc/gcc-cross_4.1.0.bb
index bfcfac2033..5719afb740 100644
--- a/packages/gcc/gcc-cross_4.1.0.bb
+++ b/packages/gcc/gcc-cross_4.1.0.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r3"
+PR = "r4"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.1.1.bb b/packages/gcc/gcc-cross_4.1.1.bb
index a817eb3a84..02912f2054 100644
--- a/packages/gcc/gcc-cross_4.1.1.bb
+++ b/packages/gcc/gcc-cross_4.1.1.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r16"
+PR = "r17"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.1.2.bb b/packages/gcc/gcc-cross_4.1.2.bb
index f7a00d8afc..0f63487f2c 100644
--- a/packages/gcc/gcc-cross_4.1.2.bb
+++ b/packages/gcc/gcc-cross_4.1.2.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .bb changes something that affects its *build*
# remember to increment this one too.
-PR = "r12"
+PR = "r13"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.2.1.bb b/packages/gcc/gcc-cross_4.2.1.bb
index eb20e147f8..27816e7146 100644
--- a/packages/gcc/gcc-cross_4.2.1.bb
+++ b/packages/gcc/gcc-cross_4.2.1.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r9"
+PR = "r10"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb
index 9a591e8899..ec169072af 100644
--- a/packages/gcc/gcc-cross_4.2.2.bb
+++ b/packages/gcc/gcc-cross_4.2.2.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r1"
+PR = "r2"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_csl-arm-2005q3.bb b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
index 7ea8a0d166..b779e99435 100644
--- a/packages/gcc/gcc-cross_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
@@ -4,7 +4,7 @@ require gcc-paths-cross.inc
inherit cross
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r1"
+PR = "r2"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_csl-arm-cvs.bb b/packages/gcc/gcc-cross_csl-arm-cvs.bb
index b894c2a86e..a9cb478701 100644
--- a/packages/gcc/gcc-cross_csl-arm-cvs.bb
+++ b/packages/gcc/gcc-cross_csl-arm-cvs.bb
@@ -4,7 +4,7 @@ require gcc-paths-cross.inc
inherit cross
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r0"
+PR = "r1"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc-cross_csl-arm.bb b/packages/gcc/gcc-cross_csl-arm.bb
index 95bda6c95e..5ca4b949e0 100644
--- a/packages/gcc/gcc-cross_csl-arm.bb
+++ b/packages/gcc/gcc-cross_csl-arm.bb
@@ -4,7 +4,7 @@ require gcc-paths-cross.inc
inherit cross
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r0"
+PR = "r1"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc3-build.inc b/packages/gcc/gcc3-build.inc
index bb48f7b099..e56dcdcc4d 100644
--- a/packages/gcc/gcc3-build.inc
+++ b/packages/gcc/gcc3-build.inc
@@ -39,9 +39,11 @@ EXTRA_OECONF_PATHS = " \
--with-local-prefix=${prefix}/local \
--with-gxx-include-dir=${includedir}/c++/${BINV}"
-EXTRA_OECONF_DEP = ""
-EXTRA_OECONF_uclibc = "--disable-__cxa_atexit"
-EXTRA_OECONF_glibc = "--enable-__cxa_atexit"
+# Build uclibc compilers without cxa_atexit support
+EXTRA_OECONF_append_linux = " --enable-__cxa_atexit"
+EXTRA_OECONF_append_linux-gnueabi = " --enable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibc = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
EXTRA_OECONF += "${@get_gcc_fpu_setting(bb, d)}"
CPPFLAGS = ""
@@ -56,19 +58,6 @@ EXTRA_OEMAKE += "ARCH_FLAGS_FOR_TARGET='${ARCH_FLAGS_FOR_TARGET}'"
require gcc-fpu.inc
-python __anonymous () {
- import bb, re
- if (re.match('linux-uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None):
- bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d)
- elif (re.match('linux-uclibcgnueabi$', bb.data.getVar('TARGET_OS', d, 1)) != None):
- bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d)
- elif (re.match('linux-gnueabi$', bb.data.getVar('TARGET_OS', d, 1)) != None):
- bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', d)
- elif (re.match('linux$', bb.data.getVar('TARGET_OS', d, 1)) != None):
- bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', d)
-
-}
-
do_configure () {
# Setup these vars for cross building only
# ... because foo_FOR_TARGET apparently gets misinterpreted inside the
diff --git a/packages/gcc/gcc_3.3.3.bb b/packages/gcc/gcc_3.3.3.bb
index 07387cb1bc..ea34debc64 100644
--- a/packages/gcc/gcc_3.3.3.bb
+++ b/packages/gcc/gcc_3.3.3.bb
@@ -1,5 +1,5 @@
SECTION = "devel"
-PR = "r2"
+PR = "r3"
inherit autotools gettext
DESCRIPTION = "The GNU cc and gcc C compilers."
diff --git a/packages/gcc/gcc_3.3.4.bb b/packages/gcc/gcc_3.3.4.bb
index f11fc36646..294e57d7df 100644
--- a/packages/gcc/gcc_3.3.4.bb
+++ b/packages/gcc/gcc_3.3.4.bb
@@ -1,5 +1,5 @@
SECTION = "devel"
-PR = "r2"
+PR = "r3"
inherit autotools gettext
DESCRIPTION = "The GNU cc and gcc C compilers."
diff --git a/packages/gcc/gcc_3.4.3.bb b/packages/gcc/gcc_3.4.3.bb
index e1f73eaea5..c4d6df955d 100644
--- a/packages/gcc/gcc_3.4.3.bb
+++ b/packages/gcc/gcc_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r11"
+PR = "r12"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_3.4.4.bb b/packages/gcc/gcc_3.4.4.bb
index adc1545b99..e9e073b1ae 100644
--- a/packages/gcc/gcc_3.4.4.bb
+++ b/packages/gcc/gcc_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_4.0.0.bb b/packages/gcc/gcc_4.0.0.bb
index 430bbef0d4..28561e1e07 100644
--- a/packages/gcc/gcc_4.0.0.bb
+++ b/packages/gcc/gcc_4.0.0.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_4.0.2.bb b/packages/gcc/gcc_4.0.2.bb
index 1d7d8242fe..19d67ab1b4 100644
--- a/packages/gcc/gcc_4.0.2.bb
+++ b/packages/gcc/gcc_4.0.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
LICENSE = "GPL"
DEPENDS = "mpfr gmp"
-PR = "r5"
+PR = "r6"
inherit autotools gettext
diff --git a/packages/gcc/gcc_4.1.0.bb b/packages/gcc/gcc_4.1.0.bb
index bdf9eb3b69..a9dbad579f 100644
--- a/packages/gcc/gcc_4.1.0.bb
+++ b/packages/gcc/gcc_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_4.1.1.bb b/packages/gcc/gcc_4.1.1.bb
index d7d489ec9f..8d08df6b8c 100644
--- a/packages/gcc/gcc_4.1.1.bb
+++ b/packages/gcc/gcc_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r16"
+PR = "r17"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb
index 92db116555..e0801d3c7f 100644
--- a/packages/gcc/gcc_4.1.2.bb
+++ b/packages/gcc/gcc_4.1.2.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
LICENSE = "GPL"
# NOTE: split PR. If the main .bb changes something that affects its *build*
# remember to increment the -cross .bb PR too.
-PR = "r9"
+PR = "r10"
inherit autotools gettext
diff --git a/packages/gcc/gcc_4.2.1.bb b/packages/gcc/gcc_4.2.1.bb
index 2e1f20ae5f..5d049398e4 100644
--- a/packages/gcc/gcc_4.2.1.bb
+++ b/packages/gcc/gcc_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_4.2.2.bb b/packages/gcc/gcc_4.2.2.bb
index ccf945ac5b..de3b65ce7f 100644
--- a/packages/gcc/gcc_4.2.2.bb
+++ b/packages/gcc/gcc_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
diff --git a/packages/gcc/gcc_csl-arm-2005q3.bb b/packages/gcc/gcc_csl-arm-2005q3.bb
index fe9b364c88..4c8f8227a9 100644
--- a/packages/gcc/gcc_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc_csl-arm-2005q3.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
LICENSE = "GPL"
BINV = "3.4.4"
PV = "3.4.4+csl-arm-2005q3"
-PR = "r2"
+PR = "r3"
FILESDIR = "${FILE_DIRNAME}/gcc-csl-arm"
diff --git a/packages/gcc/gcc_csl-arm-cvs.bb b/packages/gcc/gcc_csl-arm-cvs.bb
index 20b18b1085..d8e5fee2bb 100644
--- a/packages/gcc/gcc_csl-arm-cvs.bb
+++ b/packages/gcc/gcc_csl-arm-cvs.bb
@@ -5,6 +5,6 @@ BINV = "3.4.4"
SRC_URI += "file://15342.patch;patch=1 file://gcc-3.4.0-arm-lib1asm.patch;patch=1 file://no-libfloat.patch;patch=1"
-PR = "r0"
+PR = "r1"
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/gcc/gcc_csl-arm.bb b/packages/gcc/gcc_csl-arm.bb
index c332feb463..2599498fda 100644
--- a/packages/gcc/gcc_csl-arm.bb
+++ b/packages/gcc/gcc_csl-arm.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
LICENSE = "GPL"
BINV = "3.4.4"
PV = "3.4.4+csl-arm-${SRCDATE}"
-PR = "r0"
+PR = "r1"
FILESDIR = "${FILE_DIRNAME}/gcc-csl-arm"
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/gtk-webcore/midori_0.0.12.bb b/packages/gtk-webcore/midori_0.0.12.bb
new file mode 100644
index 0000000000..23d0179375
--- /dev/null
+++ b/packages/gtk-webcore/midori_0.0.12.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Midori is a lightweight web browser."
+LICENSE = "GPLv2"
+
+DEPENDS = "webkit-gtk libsexy"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \
+ "
+
+
diff --git a/packages/libungif/libungif_4.1.3.bb b/packages/libungif/libungif_4.1.3.bb
index bd7a2fd8cb..caf0427551 100644
--- a/packages/libungif/libungif_4.1.3.bb
+++ b/packages/libungif/libungif_4.1.3.bb
@@ -1,6 +1,6 @@
SECTION = "libs"
DESCRIPTION = "shared library for GIF images"
-SRC_URI = "${SOURCEFORGE_MIRROR}/libungif/libungif-${PV}.tar.bz2"
+SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/libungif-${PV}.tar.bz2"
LICENSE = "MIT"
PR = "r1"
diff --git a/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch b/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch
index 0310746dfe..56176c1095 100644
--- a/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch
+++ b/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch
@@ -1,6 +1,6 @@
diff -urN linux-2.6.23.orig/drivers/leds/Kconfig linux-2.6.23/drivers/leds/Kconfig
--- linux-2.6.23.orig/drivers/leds/Kconfig 2007-10-09 22:31:38.000000000 +0200
-+++ linux-2.6.23/drivers/leds/Kconfig 2007-11-29 09:02:42.000000000 +0100
++++ linux-2.6.23/drivers/leds/Kconfig 2007-12-03 11:08:06.000000000 +0100
@@ -101,6 +101,12 @@
outputs. To be useful the particular board must have LEDs
and they must be connected to the GPIO lines.
@@ -16,8 +16,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/Kconfig linux-2.6.23/drivers/leds/Kconf
config LEDS_TRIGGERS
diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c
--- linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c 2007-11-29 09:02:42.000000000 +0100
-@@ -0,0 +1,128 @@
++++ linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c 2007-12-03 11:08:36.000000000 +0100
+@@ -0,0 +1,127 @@
+/*
+ * drivers/leds/leds-mpc8313e-rdb.c
+ * Copyright (C) 2007 Leon Woestenberg <leon@sidebranch.com>
@@ -38,18 +38,18 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+#include <linux/err.h>
+#include <asm/io.h>
+
-+int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain,
-+ int assignment, int has_irq);
-+int par_io_data_set(u8 port, u8 pin, u8 val);
++#define LEDS_BASE 0xfa000000
++#define LEDS_SIZE 0x2
+
+static struct platform_dev *leds_pdev = NULL;
+static struct resource *led_mem = NULL;
-+static void *p = NULL;
++static void *led_io = NULL;
++static u8 led_state = 0;
+
+static void mpc8313leds_green_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
-+ int d = ioread16(p);
-+ iowrite16(value?d&~1:d|1, p);
++ led_state = value ? led_state&~32 : led_state|32;
++ iowrite8(led_state, led_io);
+}
+
+static struct led_classdev mpc8313_green_led = {
@@ -59,8 +59,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+
+static void mpc8313leds_yellow_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
-+ int d = ioread16(p);
-+ iowrite16(value?d&~2:d|2, p);
++ led_state = value ? led_state&~64 : led_state|64;
++ iowrite8(led_state, led_io);
+}
+
+static struct led_classdev mpc8313_yellow_led = {
@@ -70,8 +70,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+
+static void mpc8313leds_red_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
-+ int d = ioread16(p);
-+ iowrite16(value?d&~4:d|4, p);
++ led_state = value ? led_state&~128 : led_state|128;
++ iowrite8(led_state, led_io);
+}
+
+static struct led_classdev mpc8313_red_led = {
@@ -117,12 +117,11 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+
+static int __init mpc8313leds_init(void)
+{
-+ led_mem = request_mem_region(0xfa000000, 0x100, "mpc8313-leds");
-+ if (led_mem == NULL) return -ENOMEM;
-+ p = ioremap(0xfa000000, 0x100);
-+ if (p == NULL)
++ if (!(led_mem = request_mem_region(LEDS_BASE, LEDS_SIZE, "mpc8313-leds")))
++ return -ENOMEM;
++ if (!(led_io = ioremap(LEDS_BASE, LEDS_SIZE)))
+ {
-+ if (led_mem) release_mem_region(0xfa000000, 0x100);
++ release_mem_region(LEDS_BASE, LEDS_SIZE);
+ led_mem = NULL;
+ return -ENOMEM;
+ }
@@ -133,7 +132,7 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+
+static void __exit mpc8313leds_exit(void)
+{
-+ if (led_mem) release_mem_region(0xfa000000, 0x100);
++ if (led_mem) release_mem_region(LEDS_BASE, LEDS_SIZE);
+ led_mem = NULL;
+ platform_driver_unregister(&mpc8313leds_driver);
+
@@ -148,7 +147,7 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver
+MODULE_LICENSE("GPL");
diff -urN linux-2.6.23.orig/drivers/leds/Makefile linux-2.6.23/drivers/leds/Makefile
--- linux-2.6.23.orig/drivers/leds/Makefile 2007-10-09 22:31:38.000000000 +0200
-+++ linux-2.6.23/drivers/leds/Makefile 2007-11-29 09:03:09.000000000 +0100
++++ linux-2.6.23/drivers/leds/Makefile 2007-12-03 11:08:06.000000000 +0100
@@ -17,6 +17,7 @@
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
diff --git a/packages/meta/external-toolchain.bb b/packages/meta/external-toolchain.bb
new file mode 100644
index 0000000000..c483ea26a6
--- /dev/null
+++ b/packages/meta/external-toolchain.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "This package allows OE to work with an external toolchain generated \
+ by meta-toolchain instead of building its own. It expects that toolchain \
+ to be located in SDK_PREFIX/prefix."
+
+PROVIDES = "\
+ linux-libc-headers \
+ virtual/${TARGET_PREFIX}gcc \
+ virtual/${TARGET_PREFIX}gcc-initial \
+ virtual/${TARGET_PREFIX}binutils \
+ virtual/${TARGET_PREFIX}libc-for-gcc \
+ virtual/libc \
+ virtual/libintl \
+ virtual/libiconv \
+ glibc-thread-db \
+ virtual/linux-libc-headers \
+ "
+
+RPROVIDES = "glibc-utils libsegfault glibc-thread-db libgcc-dev libstdc++-dev libstdc++"
+PACKAGES_DYNAMIC = "glibc-gconv-*"
+PR = "r1"
+
+inherit sdk
+
+do_stage() {
+ if [ ! -e ${prefix}/package-status ]; then
+ echo "The external toolchain could not be found in ${prefix}!"
+ exit 1
+ fi
+
+ install -d ${STAGING_DIR}/pkgdata/
+ install -d ${STAGING_DIR_TARGET}/shlibs/
+
+ cp -ar ${prefix}/pkgdata/* ${STAGING_DIR}/pkgdata/
+ cp -ar ${prefix}/${TARGET_SYS}/shlibs/* ${STAGING_DIR_TARGET}/shlibs/
+
+ if [ -d ${prefix}/ipk ]; then
+ install -d ${DEPLOY_DIR_IPK}/
+ cp -ar ${prefix}/ipk/* ${DEPLOY_DIR_IPK}/
+ fi
+
+ if [ -d ${prefix}/deb ]; then
+ install -d ${DEPLOY_DIR_DEB}/
+ cp -ar ${prefix}/deb/* ${DEPLOY_DIR_DEB}/
+ fi
+
+ if [ -d ${prefix}/pstage -a "x${DEPLOY_DIR_PSTAGE}" != "x" ]; then
+ install -d ${DEPLOY_DIR_PSTAGE}/
+ cp -ar ${prefix}/pstage/* ${DEPLOY_DIR_PSTAGE}/
+ fi
+}
diff --git a/packages/perl/libxml-parser-perl_2.34.bb b/packages/perl/libxml-parser-perl_2.34.bb
index 46ce6512ca..dd502a8f63 100644
--- a/packages/perl/libxml-parser-perl_2.34.bb
+++ b/packages/perl/libxml-parser-perl_2.34.bb
@@ -1,7 +1,7 @@
SECTION = "libs"
LICENSE = "Artistic"
-DEPENDS += "expat-native"
-PR = "r10"
+DEPENDS += "expat expat-native"
+PR = "r11"
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
diff --git a/packages/python/python-pyqt/01_configure.dpatch b/packages/python/python-pyqt/01_configure.dpatch
new file mode 100644
index 0000000000..d7c45b9a44
--- /dev/null
+++ b/packages/python/python-pyqt/01_configure.dpatch
@@ -0,0 +1,288 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_configure.dpatch by Torsten Marek <shlomme@debian.org>
+##
+## DP: Make PyQt4 objectdir-buildable
+
+@DPATCH@
+diff -urNad python-qt4-4.2+snapshot20070727~/configure.py python-qt4-4.2+snapshot20070727/configure.py
+--- python-qt4-4.2+snapshot20070727~/configure.py 2007-07-29 23:58:48.000000000 +0200
++++ python-qt4-4.2+snapshot20070727/configure.py 2007-07-30 00:00:17.000000000 +0200
+@@ -20,6 +20,8 @@
+ # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
++# Modified for Debian by Torsten Marek <shlomme@gmx.net>
++
+ import sys
+ import os
+ import string
+@@ -29,6 +31,23 @@
+
+ import sipconfig
+
++topsrcdir = os.path.dirname(os.path.abspath(__file__))
++has_objdir = topsrcdir != os.path.abspath(os.path.curdir)
++if not has_objdir:
++ topsrcdir = None
++
++
++def makeDir(dirname):
++ try:
++ os.mkdir(dirname)
++ except OSError, e:
++ if e.errno != 17:
++ raise
++
++def srcPath(filename):
++ if topsrcdir is not None:
++ return os.path.join(topsrcdir, filename)
++ return filename
+
+ # Initialise the globals.
+ pyqt_version = 0x040200
+@@ -134,6 +153,8 @@
+ p.add_option("-g", "--consolidate", action="store_true", default=False,
+ dest="bigqt", help="create a single module which links against "
+ "all the Qt libraries")
++ p.add_option("--disable-designer-plugin", action="store_true", default=False,
++ help="do not build the Qt Designer plugin")
+
+ # These are internal options used to build the mega Windows GPL package.
+ p.add_option("--mwg-openssl", action="callback", default=None,
+@@ -282,6 +303,7 @@
+ check_module("QAxContainer", "qaxobject.h", "new QAxObject()",
+ extra_libs=["QAxContainer"])
+
++ makeDir("dbus")
+ if os.path.isdir("dbus"):
+ check_dbus()
+
+@@ -354,7 +376,7 @@
+ generate_code("QtAssistant")
+
+ if "QtDesigner" in pyqt_modules:
+- qpy_dir = os.path.abspath(os.path.join("qpy", "QtDesigner"))
++ qpy_dir = os.path.abspath(srcPath(os.path.join("qpy", "QtDesigner")))
+
+ if sys.platform == "win32":
+ if opts.debug:
+@@ -380,10 +402,10 @@
+
+ # Generate the composite module.
+ qtmod_sipdir = os.path.join("sip", "Qt")
+- mk_clean_dir(qtmod_sipdir)
++ mk_clean_dir(srcPath(qtmod_sipdir))
+
+ qtmod_sipfile = os.path.join(qtmod_sipdir, "Qtmod.sip")
+- f = open(qtmod_sipfile, "w")
++ f = open(srcPath(qtmod_sipfile), "w")
+
+ f.write("""%CompositeModule PyQt4.Qt
+
+@@ -555,7 +577,7 @@
+ return libs, libdirs
+
+ def module_installs(self):
+- return ["__init__.py", "pyqtconfig.py"]
++ return [srcPath("__init__.py"), "pyqtconfig.py"]
+
+ def qpylibs(self):
+ # See which QPy libraries to build.
+@@ -571,8 +593,8 @@
+ for qpy, pro in qpylibs.iteritems():
+ sipconfig.inform("Creating QPy library for %s Makefile..." % qpy)
+
+- os.chdir(os.path.join("qpy", qpy))
+-
++ os.chdir(srcPath(os.path.join("qpy", qpy)))
++
+ if sipcfg.universal:
+ upro = "u_" + pro
+
+@@ -596,6 +618,8 @@
+
+ sipconfig.inform("Creating QPy libraries Makefile...")
+
++ makeDir("qpy")
++ os.system("ln -s %s qpy/QtDesigner" % (srcPath("qpy/QtDesigner"),))
+ sipconfig.ParentMakefile(
+ configuration=sipcfg,
+ dir="qpy",
+@@ -617,6 +641,7 @@
+ install_dir=pydbusmoddir,
+ qt=["QtCore"],
+ debug=opts.debug,
++ topsrcdir=topsrcdir,
+ universal=sipcfg.universal
+ )
+
+@@ -625,18 +650,19 @@
+ makefile.generate()
+ tool.append("dbus")
+
+- # Only include ElementTree for older versions of Python.
+- if sipcfg.py_version < 0x020500:
+- sipconfig.inform("Creating elementtree Makefile...")
++ # Don't include elementtree on Debian
++## # Only include ElementTree for older versions of Python.
++## if sipcfg.py_version < 0x020500:
++## sipconfig.inform("Creating elementtree Makefile...")
+
+- makefile = sipconfig.PythonModuleMakefile(
+- configuration=sipcfg,
+- dstdir=os.path.join(pyqt_modroot, "elementtree"),
+- dir="elementtree"
+- )
++## makefile = sipconfig.PythonModuleMakefile(
++## configuration=sipcfg,
++## dstdir=os.path.join(pyqt_modroot, "elementtree"),
++## dir="elementtree"
++## )
+
+- makefile.generate()
+- tool.append("elementtree")
++## makefile.generate()
++## tool.append("elementtree")
+
+ # Create the pyuic4 wrapper. Use the GUI version on MacOS (so that
+ # previews work properly and normal console use will work anyway), but
+@@ -644,16 +670,18 @@
+ sipconfig.inform("Creating pyuic4 wrapper...")
+
+ uicdir=os.path.join(pyqt_modroot, "uic")
+- wrapper = sipconfig.create_wrapper(os.path.join(uicdir, "pyuic.py"), os.path.join("pyuic", "pyuic4"), (sys.platform == "darwin"))
++ makeDir("pyuic")
++ # Wrapper script is not needed on Debian
++ #wrapper = sipconfig.create_wrapper(os.path.join(uicdir, "pyuic.py"), os.path.join("pyuic", "pyuic4"), (sys.platform == "darwin"))
+
+ sipconfig.inform("Creating pyuic4 Makefile...")
+
+ makefile = sipconfig.PythonModuleMakefile(
+ configuration=sipcfg,
+ dstdir=uicdir,
+- srcdir="uic",
++ srcdir=srcPath(os.path.join("pyuic", "uic")),
+ dir="pyuic",
+- installs=[[os.path.basename(wrapper), opts.pyqtbindir]]
++ #installs=[[os.path.basename(wrapper), opts.pyqtbindir]]
+ )
+
+ makefile.generate()
+@@ -661,7 +689,7 @@
+
+ if "QtXml" in pyqt_modules:
+ sipconfig.inform("Creating pylupdate4 Makefile...")
+-
++ makeDir("pylupdate")
+ makefile = sipconfig.ProgramMakefile(
+ configuration=sipcfg,
+ build_file="pylupdate.sbf",
+@@ -671,14 +699,15 @@
+ qt=["QtCore", "QtGui", "QtXml"],
+ debug=opts.debug,
+ warnings=1,
++ topsrcdir=topsrcdir,
+ universal=sipcfg.universal
+ )
+-
++ makefile.extra_include_dirs.append(srcPath("pylupdate"))
+ makefile.generate()
+ tool.append("pylupdate")
+
+ sipconfig.inform("Creating pyrcc4 Makefile...")
+-
++ makeDir("pyrcc")
+ makefile = sipconfig.ProgramMakefile(
+ configuration=sipcfg,
+ build_file="pyrcc.sbf",
+@@ -688,6 +717,7 @@
+ qt=["QtCore", "QtXml"],
+ debug=opts.debug,
+ warnings=1,
++ topsrcdir=topsrcdir,
+ universal=sipcfg.universal
+ )
+
+@@ -697,7 +727,7 @@
+ sipconfig.inform("pylupdate4 and pyrcc4 will not be built because the Qt XML module is missing.")
+
+ if "QtDesigner" in pyqt_modules:
+- enabled = True
++ enabled = not opts.disable_designer_plugin
+
+ py_major = sipcfg.py_version >> 16
+ py_minor = (sipcfg.py_version >> 8) & 0x0ff
+@@ -731,7 +761,7 @@
+ # Run qmake to generate the Makefile.
+ qmake_args = fix_qmake_args()
+ cwd = os.getcwd()
+- os.chdir("designer")
++ os.chdir(srcPath("designer"))
+
+ # Create the qmake project file.
+ fin = open("python.pro-in")
+@@ -755,7 +785,7 @@
+ run_command("%s %s" % (opts.qmake, qmake_args))
+ os.chdir(cwd)
+
+- tool.append("designer")
++ tool.append(srcPath("designer"))
+
+ return tool
+
+@@ -899,7 +929,6 @@
+ add_makefile_extras(makefile, extra_include_dirs, extra_lib_dirs, extra_libs)
+
+ exe, build = makefile.build_command(name)
+-
+ # Make sure the executable file doesn't exist.
+ remove_file(exe)
+ run_command(build)
+@@ -1025,7 +1054,7 @@
+ return
+
+ # Check the module's main .sip file exists.
+- if os.access(os.path.join("sip", mname, mname + "mod.sip"), os.F_OK):
++ if os.access(srcPath(os.path.join("sip", mname, mname + "mod.sip")), os.F_OK):
+ sipconfig.inform("Checking to see if the %s module should be built..." % mname)
+
+ if check_api(incfile, test, mname, extra_include_dirs=extra_include_dirs, extra_lib_dirs=extra_lib_dirs, extra_libs=extra_libs):
+@@ -1226,10 +1255,14 @@
+ argv.append(buildfile)
+
+ argv.append("-I")
+- argv.append("sip")
++ argv.append(srcPath("sip"))
+
+ # SIP assumes POSIX style path separators.
+- argv.append(string.join(["sip", mname, mname + "mod.sip"], "/"))
++ if topsrcdir is not None:
++ argv.append(string.join([topsrcdir, "sip", mname, mname + "mod.sip"], "/"))
++ else:
++ argv.append(string.join(["sip", mname, mname + "mod.sip"], "/"))
++
+
+ cmd = string.join(argv)
+
+@@ -1251,7 +1284,11 @@
+ sipfiles = []
+
+ for s in glob.glob("sip/" + mname + "/*.sip"):
+- sipfiles.append(os.path.join("..", "sip", mname, os.path.basename(s)))
++ if has_objdir:
++ topdir = topsrcdir
++ else:
++ topdir = ".."
++ sipfiles.append(os.path.join(topdir, "sip", mname, os.path.basename(s)))
+
+ installs.append([sipfiles, os.path.join(opts.pyqtsipdir, mname)])
+
+@@ -1835,7 +1872,7 @@
+ ).generate()
+
+ # Install the configuration module.
+- create_config("pyqtconfig.py", "pyqtconfig.py.in", macros)
++ create_config("pyqtconfig.py", srcPath("pyqtconfig.py.in"), macros)
+
+
+ ###############################################################################
diff --git a/packages/python/python-pyqt/02_htmllinks.dpatch b/packages/python/python-pyqt/02_htmllinks.dpatch
new file mode 100644
index 0000000000..f65509ae2c
--- /dev/null
+++ b/packages/python/python-pyqt/02_htmllinks.dpatch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_htmllinks.dpatch by Torsten Marek <shlomme@debian.org>
+
+## DP: Fix the links in the documentation HTML files.
+
+@DPATCH@
+diff -urNad python-qt4-4.1~/doc/pyqt4ref.html python-qt4-4.1/doc/pyqt4ref.html
+--- python-qt4-4.1~/doc/pyqt4ref.html 2006-11-05 00:51:19.000000000 +0100
++++ python-qt4-4.1/doc/pyqt4ref.html 2006-11-21 23:35:52.000000000 +0100
+@@ -85,7 +85,7 @@
+ <p>This is the reference guide for PyQt 4.1. PyQt v4 is a set of
+ <a class="reference" href="http://www.python.org">Python</a> bindings for v4 of the Qt application
+ framework from <a class="reference" href="http://www.trolltech.com">Trolltech</a>.</p>
+-<p>There is a separate <a class="reference" href="html/classes.html">PyQt API Reference</a>.</p>
++<p>There is a separate <a class="reference" href="classes.html">PyQt API Reference</a>.</p>
+ <p>Qt is a set of C++ libraries and development tools that includes platform
+ independent abstractions for graphical user interfaces, networking, threads,
+ Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and
diff --git a/packages/python/python-pyqt/03_qreal.dpatch b/packages/python/python-pyqt/03_qreal.dpatch
new file mode 100644
index 0000000000..8f9568656c
--- /dev/null
+++ b/packages/python/python-pyqt/03_qreal.dpatch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_qreal.dpatch by Torsten Marek <shlomme@debian.org>
+##
+## DP: On ARM, ARMEL, Mips and Mipsel, qreal is a float, not a double.
+
+@DPATCH@
+diff -urNad python-qt4-4.3~/sip/QtCore/qglobal.sip python-qt4-4.3/sip/QtCore/qglobal.sip
+--- python-qt4-4.3~/sip/QtCore/qglobal.sip 2007-08-07 21:52:15.000000000 +0200
++++ python-qt4-4.3/sip/QtCore/qglobal.sip 2007-08-07 22:10:14.000000000 +0200
+@@ -46,7 +46,7 @@
+ typedef unsigned long long quint64;
+ typedef qint64 qlonglong;
+ typedef quint64 qulonglong;
+-typedef double qreal;
++typedef float qreal;
+ typedef unsigned char uchar;
+ typedef unsigned short ushort;
+ typedef unsigned int uint;
diff --git a/packages/python/python-pyqt/04_qreal_api_fixes.dpatch b/packages/python/python-pyqt/04_qreal_api_fixes.dpatch
new file mode 100644
index 0000000000..abd9e3f4cd
--- /dev/null
+++ b/packages/python/python-pyqt/04_qreal_api_fixes.dpatch
@@ -0,0 +1,259 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04_qreal_api_fixes.dpatch by Torsten Marek <shlomme@debian.org>
+##
+## DP: Exchanges double by qreal in some wrapped methods.
+
+@DPATCH@
+diff -urNad python-qt4-4.3~/sip/QtCore/qlist.sip python-qt4-4.3/sip/QtCore/qlist.sip
+--- python-qt4-4.3~/sip/QtCore/qlist.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtCore/qlist.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -322,8 +322,8 @@
+ %End
+ };
+ %If (Qt_4_3_0 -)
+-// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples.
+-%MappedType QList<QPair<double, double> >
++// QList<QPair<float, float> > is implemented as a Python list of 2-element tuples.
++%MappedType QList<QPair<float, float> >
+ {
+ %TypeHeaderCode
+ #include <qlist.h>
+@@ -340,7 +340,7 @@
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+- const QPair<double, double> &p = sipCpp->at(i);
++ const QPair<float, float> &p = sipCpp->at(i);
+ PyObject *pobj;
+
+ if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL)
+@@ -370,16 +370,16 @@
+ return 1;
+ }
+
+- QList<QPair<double, double> > *ql = new QList<QPair<double, double> >;
++ QList<QPair<float, float> > *ql = new QList<QPair<float, float> >;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ PyObject *tup = PyList_GET_ITEM(sipPy, i);
+
+- double first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
+- double second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1));
++ float first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
++ float second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1));
+
+- ql->append(QPair<double, double>(first, second));
++ ql->append(QPair<float, float>(first, second));
+ }
+
+ *sipCppPtr = ql;
+@@ -389,9 +389,9 @@
+ };
+ %End
+ %If (Qt_4_3_0 -)
+-// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
+-template<double, TYPE>
+-%MappedType QList<QPair<double, TYPE> >
++// QList<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples.
++template<float, TYPE>
++%MappedType QList<QPair<float, TYPE> >
+ {
+ %TypeHeaderCode
+ #include <qlist.h>
+@@ -408,7 +408,7 @@
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+- const QPair<double, TYPE> &p = sipCpp->at(i);
++ const QPair<float, TYPE> &p = sipCpp->at(i);
+ TYPE *t = new TYPE(p.second);
+ PyObject *pobj;
+
+@@ -447,12 +447,12 @@
+ return 1;
+ }
+
+- QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >;
++ QList<QPair<float, TYPE> > *ql = new QList<QPair<float, TYPE> >;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ PyObject *tup = PyList_GET_ITEM(sipPy, i);
+- double d;
++ float d;
+ int state;
+
+ d = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
+@@ -466,7 +466,7 @@
+ return 0;
+ }
+
+- ql->append(QPair<double, TYPE>(d, *t));
++ ql->append(QPair<float, TYPE>(d, *t));
+
+ sipReleaseInstance(t, sipClass_TYPE, state);
+ }
+@@ -524,8 +524,8 @@
+ return sipGetState(sipTransferObj);
+ %End
+ };
+-// QList<double> is implemented as a Python list of floats.
+-%MappedType QList<double>
++// QList<float> is implemented as a Python list of floats.
++%MappedType QList<float>
+ {
+ %TypeHeaderCode
+ #include <qlist.h>
+@@ -561,7 +561,7 @@
+ if (sipIsErr == NULL)
+ return PyList_Check(sipPy);
+
+- QList<double> *ql = new QList<double>;
++ QList<float> *ql = new QList<float>;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i)));
+diff -urNad python-qt4-4.3~/sip/QtCore/qvector.sip python-qt4-4.3/sip/QtCore/qvector.sip
+--- python-qt4-4.3~/sip/QtCore/qvector.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtCore/qvector.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -143,8 +143,8 @@
+ return sipGetState(sipTransferObj);
+ %End
+ };
+-// QVector<double> is implemented as a Python list of floats.
+-%MappedType QVector<double>
++// QVector<float> is implemented as a Python list of floats.
++%MappedType QVector<float>
+ {
+ %TypeHeaderCode
+ #include <qvector.h>
+@@ -180,7 +180,7 @@
+ if (sipIsErr == NULL)
+ return PyList_Check(sipPy);
+
+- QVector<double> *ql = new QVector<double>;
++ QVector<float> *ql = new QVector<float>;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i)));
+@@ -190,9 +190,9 @@
+ return sipGetState(sipTransferObj);
+ %End
+ };
+-// QVector<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
++// QVector<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples.
+ template<TYPE>
+-%MappedType QVector<QPair<double, TYPE> >
++%MappedType QVector<QPair<float, TYPE> >
+ {
+ %TypeHeaderCode
+ #include <qvector.h>
+@@ -209,7 +209,7 @@
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+- const QPair<double, TYPE> &p = sipCpp->at(i);
++ const QPair<float, TYPE> &p = sipCpp->at(i);
+ TYPE *pt = new TYPE(p.second);
+ PyObject *pobj;
+
+@@ -248,14 +248,14 @@
+ return 1;
+ }
+
+- QVector<QPair<double, TYPE> > *qv = new QVector<QPair<double, TYPE> >;
++ QVector<QPair<float, TYPE> > *qv = new QVector<QPair<float, TYPE> >;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ PyObject *tup = PyList_GET_ITEM(sipPy, i);
+ int state;
+ TYPE *s;
+- QPair<double, TYPE> p;
++ QPair<float, TYPE> p;
+
+ p.first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
+
+diff -urNad python-qt4-4.3~/sip/QtGui/qbrush.sip python-qt4-4.3/sip/QtGui/qbrush.sip
+--- python-qt4-4.3~/sip/QtGui/qbrush.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtGui/qbrush.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -138,7 +138,7 @@
+
+ QDataStream &operator>>(QDataStream &, QBrush & /Constrained/);
+ QDataStream &operator<<(QDataStream &, const QBrush & /Constrained/);
+-typedef QVector<QPair<double, QColor> > QGradientStops;
++typedef QVector<QPair<float, QColor> > QGradientStops;
+
+ class QGradient
+ {
+diff -urNad python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip
+--- python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -64,19 +64,19 @@
+
+ public:
+ %If (Qt_4_3_0 -)
+- QList<QPair<double, QPointF> > posList() const;
++ QList<QPair<float, QPointF> > posList() const;
+ %End
+ %If (Qt_4_3_0 -)
+- QList<QPair<double, double> > rotationList() const;
++ QList<QPair<float, float> > rotationList() const;
+ %End
+ %If (Qt_4_3_0 -)
+- QList<QPair<double, QPointF> > translationList() const;
++ QList<QPair<float, QPointF> > translationList() const;
+ %End
+ %If (Qt_4_3_0 -)
+- QList<QPair<double, QPointF> > scaleList() const;
++ QList<QPair<float, QPointF> > scaleList() const;
+ %End
+ %If (Qt_4_3_0 -)
+- QList<QPair<double, QPointF> > shearList() const;
++ QList<QPair<float, QPointF> > shearList() const;
+ %End
+
+ private:
+diff -urNad python-qt4-4.3~/sip/QtGui/qpainterpath.sip python-qt4-4.3/sip/QtGui/qpainterpath.sip
+--- python-qt4-4.3~/sip/QtGui/qpainterpath.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtGui/qpainterpath.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -194,8 +194,8 @@
+ void setCurveThreshold(qreal threshold);
+ qreal curveThreshold() const;
+ void setDashPattern(Qt::PenStyle);
+- void setDashPattern(const QVector<double> &dashPattern);
+- QVector<double> dashPattern() const;
++ void setDashPattern(const QVector<float> &dashPattern);
++ QVector<float> dashPattern() const;
+ QPainterPath createStroke(const QPainterPath &path) const;
+ %If (Qt_4_3_0 -)
+ void setDashOffset(qreal offset);
+diff -urNad python-qt4-4.3~/sip/QtGui/qpen.sip python-qt4-4.3/sip/QtGui/qpen.sip
+--- python-qt4-4.3~/sip/QtGui/qpen.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtGui/qpen.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -91,8 +91,8 @@
+ void setCapStyle(Qt::PenCapStyle pcs);
+ Qt::PenJoinStyle joinStyle() const;
+ void setJoinStyle(Qt::PenJoinStyle pcs);
+- QVector<double> dashPattern() const;
+- void setDashPattern(const QVector<double> &pattern);
++ QVector<float> dashPattern() const;
++ void setDashPattern(const QVector<float> &pattern);
+ qreal miterLimit() const;
+ void setMiterLimit(qreal limit);
+ bool operator==(const QPen &p) const;
+diff -urNad python-qt4-4.3~/sip/QtGui/qtextoption.sip python-qt4-4.3/sip/QtGui/qtextoption.sip
+--- python-qt4-4.3~/sip/QtGui/qtextoption.sip 2007-09-02 00:35:50.000000000 +0200
++++ python-qt4-4.3/sip/QtGui/qtextoption.sip 2007-09-02 00:35:53.000000000 +0200
+@@ -62,8 +62,8 @@
+ typedef QFlags<QTextOption::Flag> Flags;
+ QFlags<QTextOption::Flag> flags() const;
+ qreal tabStop() const;
+- void setTabArray(QList<double> tabStops);
+- QList<double> tabArray() const;
++ void setTabArray(QList<float> tabStops);
++ QList<float> tabArray() const;
+ void setUseDesignMetrics(bool b);
+ bool useDesignMetrics() const;
+ void setAlignment(Qt::Alignment aalignment);
diff --git a/packages/python/python-pyqt_4.3.1.bb b/packages/python/python-pyqt_4.3.1.bb
new file mode 100644
index 0000000000..d9c45ec14c
--- /dev/null
+++ b/packages/python/python-pyqt_4.3.1.bb
@@ -0,0 +1,71 @@
+DESCRIPTION = "Python Qt4 Bindings"
+HOMEPAGE = "http://riverbankcomputing.co.uk"
+AUTHOR = "Phil Thomson @ riverbank.co.uk"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python-core"
+SRCNAME = "pyqt"
+PR = "ml0"
+
+SRC_URI = "\
+ http://www.riverbankcomputing.com/Downloads/PyQt4/GPL/PyQt-x11-gpl-${PV}.tar.gz \
+ file://cross-compile.patch;patch=1 \
+ file://01_configure.dpatch;patch=1 \
+ file://02_htmllinks.dpatch;patch=1 \
+ file://03_qreal.dpatch;patch=1 \
+ file://04_qreal_api_fixes.dpatch;patch=1"
+S = "${WORKDIR}/PyQt-x11-gpl-${PV}"
+
+inherit qt4x11 sip distutils-base
+
+PARALLEL_MAKE = ""
+
+QMAKE_PROFILES = "pyqt.pro"
+EXTRA_SIPTAGS = "-tWS_X11 -tQt_4_3_1 -xVendorID -xPyQt_SessionManager -xPyQt_Accessibility"
+EXTRA_OEMAKE = " MAKEFLAGS= "
+
+SIP_MODULES = "QtCore QtGui QtNetwork QtSql QtSvg QtXml"
+# SIP_MODULES += "QtAssistant"
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${OE_QMAKE_INCDIR_QT}/Qt \
+ INCLUDEPATH+=${STAGING_INCDIR}/${PYTHON_DIR} \
+ DEFINES+=QT_NO_FPU"
+
+FIX_QREAL = "\
+ QtCore/qtimeline.sip \
+ QtCore/qrect.sip \
+ QtGui/qtransform.sip \
+"
+
+do_generate_prepend() {
+ for i in ${FIX_QREAL}; do
+ sed -i -e s,qreal,float,g sip/$i
+ done
+}
+
+do_configure_prepend() {
+ echo "TEMPLATE=subdirs\nSUBDIRS=${SIP_MODULES}\n" >pyqt.pro
+}
+
+do_stage() {
+ install -d ${STAGING_SIPDIR}/qt/
+ install -d ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages
+ for module in ${SIP_MODULES}
+ do
+ install -m 0644 ${S}/sip/${module}/*.sip ${STAGING_SIPDIR}/qt/
+ install -m 0755 ${module}/lib${module}.so ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/${module}.so
+ done
+}
+
+do_install() {
+ install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4
+ for module in ${SIP_MODULES}
+ do
+ echo "from PyQt4.${module} import *\n" >> ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/Qt.py
+ install -m 0755 ${module}/lib${module}.so ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/${module}.so
+ done
+ cp -pPR elementtree ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/
+ cp __init__.py ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/
+}
+
+FILES_${PN} = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/packages/python/python-pyqt_4.3.bb b/packages/python/python-pyqt_4.3.bb
deleted file mode 100644
index c867598b4f..0000000000
--- a/packages/python/python-pyqt_4.3.bb
+++ /dev/null
@@ -1,84 +0,0 @@
-DESCRIPTION = "Python Qt4 Bindings"
-HOMEPAGE = "http://riverbankcomputing.co.uk"
-AUTHOR = "Phil Thomson @ riverbank.co.uk"
-SECTION = "devel/python"
-PRIORITY = "optional"
-LICENSE = "GPL"
-RDEPENDS = "python-core"
-SRCNAME = "pyqt"
-PR = "ml0"
-
-SRC_URI = "http://www.riverbankcomputing.com/Downloads/PyQt4/GPL/PyQt-x11-gpl-${PV}.tar.gz \
- file://cross-compile.patch;patch=1"
-
-BROKEN = "1"
-# Something really fishy wrt. to arm/mips/etc. double vs. qreal. May even be a problem in Qt headers itself.
-# Symptons:
-#| sipQtCoreQTimeLine.cpp:136: error: conflicting return type specified for 'virtual double sipQTimeLine::valueForTime(int) const'
-#| /home/pkg/oe/fic-gta01/tmp/staging/arm-angstrom-linux-gnueabi/qt4/include/QtCore/qtimeline.h:92: error: overriding 'virtual qreal QTimeLine::valueForTime(int) const'
-# And:
-#| sipQtCoreQRectF.cpp: In function 'PyObject* meth_QRectF_getRect(PyObject*, PyObject*)':
-#| sipQtCoreQRectF.cpp:1182: error: no matching function for call to 'QRectF::getRect(double*, double*, double*, double*)'
-#| /home/pkg/oe/fic-gta01/tmp/staging/arm-angstrom-linux-gnueabi/qt4/include/QtCore/qrect.h:725: note: candidates are: void QRectF::getRect(qreal*, qreal*, qreal*, qreal*) const
-#| sipQtCoreQRectF.cpp: In function 'PyObject* meth_QRectF_getCoords(PyObject*, PyObject*)':
-#| sipQtCoreQRectF.cpp:1237: error: no matching function for call to 'QRectF::getCoords(double*, double*, double*, double*)'
-#| /home/pkg/oe/fic-gta01/tmp/staging/arm-angstrom-linux-gnueabi/qt4/include/QtCore/qrect.h:741: note: candidates are: void QRectF::getCoords(qreal*, qreal*, qreal*, qreal*) const
-#| make[1]: *** [sipQtCoreQRectF.o] Error 1
-
-S = "${WORKDIR}/PyQt-x11-gpl-${PV}"
-
-inherit qmake qt4x11 sip distutils-base
-
-PARALLEL_MAKE = ""
-
-QMAKE_PROFILES = "pyqt.pro"
-EXTRA_SIPTAGS = "-tWS_X11 -tQt_4_3_0 -xVendorID -xPyQt_SessionManager -xPyQt_Accessibility"
-EXTRA_OEMAKE = " MAKEFLAGS= "
-
-SIP_MODULES = "QtCore QtGui QtNetwork QtSql QtSvg QtXml"
-# SIP_MODULES += "QtAssistant"
-EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${OE_QMAKE_INCDIR_QT}/Qt \
- INCLUDEPATH+=${STAGING_INCDIR}/${PYTHON_DIR}"
-
-#EXTRA_QMAKEVARS_POST += "QMAKE_UIC=${STAGING_BINDIR_NATIVE}/uic \
-# QMAKE_MOC=${STAGING_BINDIR_NATIVE}/moc \
-# QMAKE_RPATH=-Wl,-rpath-link, \
-# DESTDIR= \
-# VERSION=1.0.0 \
-# DEFINES+=SIP_MAKE_DLL \
-# DEFINES+=SIP_QT_SUPPORT \
-# INCLUDEPATH+=. \
-# INCLUDEPATH+=${STAGING_INCDIR}/${PYTHON_DIR} \
-# INCLUDEPATH+=${STAGING_INCDIR} \
-# LIBS+=-L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages"
-
-do_configure_prepend() {
- echo -e "TEMPLATE=subdirs\nSUBDIRS=${SIP_MODULES}\n" >pyqt.pro
-}
-
-#do_configure() {
-# echo "yes" | python configure.py -w -q ${OE_QMAKE_QMAKE}
-#}
-
-do_stage() {
- install -d ${STAGING_SIPDIR}/qt/
- install -d ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages
- for module in ${SIP_MODULES}
- do
- install -m 0644 ${S}/sip/${module}/*.sip ${STAGING_SIPDIR}/qt/
- install -m 0755 ${module}/lib${module}.so ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/${module}.so
- done
-}
-
-do_install() {
- install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4
- for module in ${SIP_MODULES}
- do
- echo "from PyQt4.${module} import *\n" >> ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/Qt.py
- install -m 0755 ${module}/lib${module}.so ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/${module}.so
- done
- cp -pPR elementtree ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/
- cp __init__.py ${D}${libdir}/${PYTHON_DIR}/site-packages/PyQt4/
-}
-
-FILES_${PN} = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/packages/python/python-sip_4.7.bb b/packages/python/python-sip_4.7.1.bb
index 61fcc32986..fc87b01e53 100644
--- a/packages/python/python-sip_4.7.bb
+++ b/packages/python/python-sip_4.7.1.bb
@@ -1,5 +1,3 @@
-BROKEN = "1"
-
DESCRIPTION = "Runtime helper for sip-generated python wrapper libraries"
SECTION = "devel/python"
HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip"
@@ -12,7 +10,7 @@ PR = "ml0"
SRC_URI = "http://www.riverbankcomputing.com/Downloads/sip4/sip-${PV}.tar.gz"
S = "${WORKDIR}/sip-${PV}/siplib"
-inherit qmake qt4x11 distutils-base
+inherit qt4x11 distutils-base
EXTRA_QMAKEVARS_POST += " TEMPLATE=lib \
CONFIG=console \
diff --git a/packages/sip/sip-native_4.7.bb b/packages/sip/sip-native_4.7.1.bb
index 08cdae4ead..b47a3a7539 100644
--- a/packages/sip/sip-native_4.7.bb
+++ b/packages/sip/sip-native_4.7.1.bb
@@ -8,7 +8,7 @@ LICENSE = "GPL"
SRC_URI = "http://www.riverbankcomputing.com/Downloads/sip4/sip-${PV}.tar.gz"
S = "${WORKDIR}/sip-${PV}/sipgen"
-inherit qmake qt4x11 native
+inherit qt4x11 native
EXTRA_QMAKEVARS_POST += "DESTDIR=${S} CONFIG=console"
@@ -17,7 +17,7 @@ do_configure_prepend() {
}
do_stage() {
- install -m 0755 sip ${STAGING_BINDIR}/sip4
+ install -m 0755 sip ${STAGING_BINDIR_NATIVE}/sip
cd ${WORKDIR}/sip-${PV} && python configure.py
install -d ${STAGING_PYDIR}/site-packages
install -m 0755 sip*.py ${STAGING_PYDIR}/site-packages
diff --git a/packages/sofia-sip/sofia-sip_1.11.7.bb b/packages/sofia-sip/sofia-sip_1.11.7.bb
index 50f4e1d617..d7b24cd0f6 100644
--- a/packages/sofia-sip/sofia-sip_1.11.7.bb
+++ b/packages/sofia-sip/sofia-sip_1.11.7.bb
@@ -1,13 +1,13 @@
DESCRIPTION = "Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification."
HOMEPAGE = "http://sofia-sip.sourceforge.net/"
LICENSE = "LGPL"
+DEPENDS = "glib-2.0 openssl"
+PR = "r1"
SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz"
inherit autotools pkgconfig
-do_stage() {
-autotools_stage_all
+do_stage () {
+ autotools_stage_all
}
-
-
diff --git a/packages/sofia-sip/sofia-sip_1.12.7.bb b/packages/sofia-sip/sofia-sip_1.12.7.bb
new file mode 100644
index 0000000000..91c93fd07e
--- /dev/null
+++ b/packages/sofia-sip/sofia-sip_1.12.7.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification."
+HOMEPAGE = "http://sofia-sip.sourceforge.net/"
+LICENSE = "LGPL"
+DEPENDS = "glib-2.0 openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz"
+
+inherit autotools pkgconfig
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb
index c0b39d34ff..bfb673293d 100644
--- a/packages/tasks/task-base.bb
+++ b/packages/tasks/task-base.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r46"
+PR = "r47"
inherit task
@@ -11,47 +11,43 @@ PACKAGES = ' \
task-distro-base \
task-machine-base \
\
- task-base-acpi \
- task-base-alsa \
- task-base-apm \
+ ${@base_contains("MACHINE_FEATURES", "acpi", "task-base-acpi", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "alsa", "task-base-alsa", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "apm", "task-base-apm", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "ext2", "task-base-ext2", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "irda", "task-base-irda", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "keyboard", "task-base-keyboard", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "pci", "task-base-pci", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "pcmcia", "task-base-pcmcia", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "phone", "task-base-phone", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "screen", "task-base-screen", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "serial", "task-base-serial", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "touchscreen", "task-base-touchscreen", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "usbgadget", "task-base-usbgadget", "", d)} \
+ ${@base_contains("MACHINE_FEATURES", "usbhost", "task-base-usbhost", "", d)} \
+ \
+ ${@base_contains("MACHINE_FEATURES", "uboot", "task-base-uboot", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "redboot", "task-base-redboot", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "apex", "task-base-apex", "",d)} \
+ \
task-base-bluetooth \
- task-base-ext2 \
- task-base-irda \
- task-base-keyboard \
- task-base-pci \
- task-base-pcmcia \
- task-base-phone \
- task-base-screen \
- task-base-serial \
- task-base-touchscreen \
- task-base-usbgadget \
- task-base-usbhost \
task-base-wifi \
- task-base-uboot \
- task-base-redboot \
- task-base-apex \
\
- task-base-cramfs \
- task-base-ipsec \
- task-base-ipv6 \
- task-base-nfs \
- task-base-ppp \
- task-base-smbfs \
- task-base-raid \
- \
+ ${@base_contains("DISTRO_FEATURES", "cramfs", "task-base-cramfs", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "ipsec", "task-base-ipsec", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "ipv6", "task-base-ipv6", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "nfs", "task-base-nfs", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "ppp", "task-base-ppp", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "smbfs", "task-base-smbfs", "", d)} \
+ ${@base_contains("DISTRO_FEATURES", "raid", "task-base-raid", "",d)} \
+ \
${@base_contains("MACHINE_FEATURES","kernel26","task-base-kernel26","task-base-kernel24",d)} \
- '
+ '
#
# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
#
-PACKAGE_ARCH_task-base = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-machine-base = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-base-apm = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-base-bluetooth = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-base-irda = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-base-pcmcia = "${MACHINE_ARCH}"
-PACKAGE_ARCH_task-base-wifi = "${MACHINE_ARCH}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
#
# linux-hotplug or none
diff --git a/packages/tasks/task-native-sdk.bb b/packages/tasks/task-native-sdk.bb
index d27a855c9d..b840254176 100644
--- a/packages/tasks/task-native-sdk.bb
+++ b/packages/tasks/task-native-sdk.bb
@@ -3,8 +3,8 @@ LICENSE = "MIT"
DEPENDS = "gcc binutils make patch patchutils diffstat diffutils automake flex bison gawk sed grep"
RDEPENDS = "gcc-symlinks g++-symlinks binutils-symlinks make libc6-dev \
flex flex-dev bison gawk sed grep autoconf automake make \
- patch patchutils diffstat diffutils libgcc-s-dev libstdc++-dev"
-PR = "r1"
+ patch patchutils diffstat diffutils libstdc++-dev"
+PR = "r2"
ALLOW_EMPTY = "1"
PACKAGES = "${PN}"
diff --git a/packages/xorg-lib/libx11-native_1.0.3.bb b/packages/xorg-lib/libx11-native_1.0.3.bb
new file mode 100644
index 0000000000..d9e0d05844
--- /dev/null
+++ b/packages/xorg-lib/libx11-native_1.0.3.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Base X libs."
+SECTION = "x11/libs"
+PRIORITY = "optional"
+LICENSE = "XFree86"
+PE = "1"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libx11"
+
+DEPENDS = "xproto-native xextproto-native libxau-native xtrans-native libxdmcp-native xcmiscproto-native xf86bigfontproto-native kbproto-native inputproto-native bigreqsproto-native util-macros-native"
+PROVIDES = "x11-native"
+
+XORG_PN = "libX11"
+
+SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
+S = "${WORKDIR}/libX11-${PV}"
+
+inherit native autotools pkgconfig
+
+EXTRA_OECONF="--enable-malloc0returnsnull"
+
+do_compile() {
+ (
+ unset CC LD CXX CCLD
+ oe_runmake -C src/util 'CC=${BUILD_CC}' 'LD=${BUILD_LD}' 'CXX=${BUILD_CXX}' 'CCLD=${BUILD_CCLD}' 'CFLAGS=-D_GNU_SOURCE ${BUILD_CFLAGS}' 'LDFLAGS=${BUILD_LDFLAGS}' 'CXXFLAGS=${BUILD_CXXFLAGS}' 'CPPFLAGS=${BUILD_CPPFLAGS}' makekeys
+ )
+ rm -f ${STAGING_INCDIR}/X11/Xlib.h
+ oe_runmake
+}
diff --git a/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch b/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch
new file mode 100644
index 0000000000..8fc8ff46b9
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch
@@ -0,0 +1,386 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/Makefile.am
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/Makefile.am 2007-11-28 18:44:27.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/Makefile.am 2007-11-28 18:44:28.000000000 +0100
+@@ -20,6 +20,7 @@
+ noinst_LIBRARIES = libglamo.a
+
+ libglamo_a_SOURCES = \
++ glamo-log.h \
+ glamo_dma.c \
+ glamo_dma.h \
+ glamo_draw.c \
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo-log.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo-log.h 2007-11-29 09:05:53.000000000 +0100
+@@ -0,0 +1,63 @@
++/*
++ * Copyright © 2007 OpenMoko, Inc.
++ *
++ * This driver is based on Xati,
++ * Copyright © 2004 Eric Anholt
++ *
++ * 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 the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS 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: Dodji Seketeli <dodji@openedhand.com>
++ */
++#ifndef _GLAMO_LOG_H_
++#define _GLAMO_LOG_H_
++#ifdef HAVE_CONFIG_H
++#include <kdrive-config.h>
++#endif
++
++#include <assert.h>
++#include "os.h"
++
++#ifdef NDEBUG
++/*we are not in debug mode*/
++#define GLAMO_LOG
++#define GLAMO_LOG_ERROR
++
++#else /*NDEBUG*/
++
++#define ERROR_LOG_LEVEL 3
++#define INFO_LOG_LEVEL 4
++
++#ifndef GLAMO_LOG
++#define GLAMO_LOG(...) \
++LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, "in %s:%d:%s: ",\
++ __FILE__, __LINE__, __func__) ; \
++LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, __VA_ARGS__)
++#endif /*GLAMO_LOG*/
++
++#ifndef GLAMO_LOG_ERROR
++#define GLAMO_LOG_ERROR(...) \
++LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, "Error:in %s:%d:%s: ",\
++ __FILE__, __LINE__, __func__) ; \
++LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, __VA_ARGS__)
++#endif /*GLAMO_LOG_ERROR*/
++
++#endif /*NDEBUG*/
++
++#endif /*_GLAMO_LOG_H_*/
++
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-28 18:44:27.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-29 09:33:11.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifdef HAVE_CONFIG_H
+ #include <kdrive-config.h>
+ #endif
++#include "glamo-log.h"
+ #include "glamo.h"
+ #include "glamo-regs.h"
+ #include "glamo_dma.h"
+@@ -90,45 +91,11 @@
+ KdScreenPriv(pScreen);
+ GLAMOScreenInfo(pScreenPriv);
+
+- ENTER_DRAW(0);
++ GLAMO_LOG("enter");
+ GLAMOWaitIdle(glamos);
+- LEAVE_DRAW(0);
++ GLAMO_LOG("leave");
+ }
+
+-#if GLAMO_TRACE_DRAW
+-void
+-GLAMOEnterDraw (PixmapPtr pPix, const char *function)
+-{
+- if (pPix != NULL) {
+- KdScreenPriv(pPix->drawable.pScreen);
+- CARD32 offset;
+-
+- offset = ((CARD8 *)pPix->devPrivate.ptr -
+- pScreenPriv->screen->memory_base);
+-
+- ErrorF ("Enter %s 0x%x (%dx%dx%d/%d)\n", function, (unsigned int) offset,
+- pPix->drawable.width, pPix->drawable.height, pPix->drawable.depth,
+- (unsigned int) pPix->drawable.bitsPerPixel);
+- } else
+- ErrorF ("Enter %s\n", function);
+-}
+-
+-void
+-GLAMOLeaveDraw (PixmapPtr pPix, const char *function)
+-{
+- if (pPix != NULL) {
+- KdScreenPriv(pPix->drawable.pScreen);
+- CARD32 offset;
+-
+- offset = ((CARD8 *)pPix->devPrivate.ptr -
+- pScreenPriv->screen->memory_base);
+-
+- ErrorF ("Leave %s 0x%x\n", function, (unsigned int) offset);
+- } else
+- ErrorF ("Leave %s\n", function);
+-}
+-#endif
+-
+ static Bool
+ GLAMOPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
+ {
+@@ -152,7 +119,7 @@
+ pScreenPriv->screen->memory_base);
+ pitch = pPix->devKind;
+
+- ENTER_DRAW(pPix);
++ GLAMO_LOG("enter");
+
+ BEGIN_DMA(12);
+ OUT_REG(GLAMO_REG_2D_DST_ADDRL, offset & 0xffff);
+@@ -163,7 +130,7 @@
+ OUT_REG(GLAMO_REG_2D_COMMAND2, settings);
+ END_DMA();
+
+- LEAVE_DRAW(pPix);
++ GLAMO_LOG("leave");
+
+ return TRUE;
+ }
+@@ -171,7 +138,7 @@
+ static void
+ GLAMOSolid(int x1, int y1, int x2, int y2)
+ {
+- ENTER_DRAW(0);
++ GLAMO_LOG("enter");
+ GLAMOScreenInfo *glamos = accel_glamos;
+ RING_LOCALS;
+
+@@ -184,14 +151,12 @@
+ OUT_REG(GLAMO_REG_2D_ID1, 0);
+ OUT_REG(GLAMO_REG_2D_ID2, 0);
+ END_DMA();
+- LEAVE_DRAW(0);
++ GLAMO_LOG("leave");
+ }
+
+ static void
+ GLAMODoneSolid(void)
+ {
+- ENTER_DRAW(0);
+- LEAVE_DRAW(0);
+ }
+
+ static Bool
+@@ -204,6 +169,8 @@
+ FbBits mask;
+ RING_LOCALS;
+
++ GLAMO_LOG("enter");
++
+ if (pSrc->drawable.bitsPerPixel != 16 ||
+ pDst->drawable.bitsPerPixel != 16)
+ GLAMO_FALLBACK(("Only 16bpp is supported"));
+@@ -224,8 +191,6 @@
+
+ settings = GLAMOBltRop[alu] << 8;
+
+- ENTER_DRAW (pDst);
+-
+ BEGIN_DMA(16);
+
+ OUT_REG(GLAMO_REG_2D_SRC_ADDRL, src_offset & 0xffff);
+@@ -241,7 +206,7 @@
+
+ END_DMA();
+
+- LEAVE_DRAW(pDst);
++ GLAMO_LOG("leave");
+
+ return TRUE;
+ }
+@@ -268,8 +233,10 @@
+ static void
+ GLAMODoneCopy(void)
+ {
+- ENTER_DRAW(0);
+- LEAVE_DRAW(0);
++ GLAMOScreenInfo *glamos = accel_glamos;
++ GLAMO_LOG("enter");
++ GLAMOFlushIndirect(glamos, 1);
++ GLAMO_LOG("leave");
+ }
+
+ static Bool
+@@ -279,6 +246,7 @@
+ CARD8 *dst_offset;
+ int dst_pitch;
+
++ GLAMO_LOG("enter");
+ dst_offset = (CARD8 *)pDst->devPrivate.ptr;
+ dst_pitch = pDst->devKind;
+ width = pDst->drawable.width;
+@@ -294,83 +262,9 @@
+ src += src_pitch;
+ }
+
+- ErrorF("hostdata upload %d,%d %dbpp\n", width, height, bpp);
+-
+ return TRUE;
+ }
+
+-
+-#if 0
+-static Bool
+-GLAMOUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst)
+-{
+- KdScreenPriv(pSrc->drawable.pScreen);
+- GLAMOCardInfo(pScreenPriv);
+- GLAMOScreenInfo(pScreenPriv);
+- int dst_pitch, src_pitch, w, i, size, bytes;
+- unsigned char *dst, *src;
+- RING_LOCALS;
+-
+- ENTER_DRAW(pSrc);
+- /* Align width to log 2, useful for R128 composite. This should be a
+- * KAA flag we check for (and supported in kaa.c in general) since many
+- * older bits of hardware are going to want POT pitches.
+- */
+- w = pSrc->drawable.width;
+- if (glamos->kaa.flags & KAA_OFFSCREEN_ALIGN_POT)
+- w = 1 << (GLAMOLog2(w - 1) + 1);
+- dst_pitch = (w * pSrc->drawable.bitsPerPixel / 8 +
+- glamos->kaa.pitchAlign - 1) & ~(glamos->kaa.pitchAlign - 1);
+-
+- size = dst_pitch * pSrc->drawable.height;
+- if (size > glamos->scratch_area->size)
+- GLAMO_FALLBACK(("Pixmap too large for scratch (%d,%d)\n",
+- pSrc->drawable.width, pSrc->drawable.height));
+-
+- glamos->scratch_next = (glamos->scratch_next + glamos->kaa.offsetAlign - 1) &
+- ~(glamos->kaa.offsetAlign - 1);
+- if (glamos->scratch_next + size > glamos->scratch_area->offset +
+- glamos->scratch_area->size) {
+- /* Only sync when we've used all of the scratch area. */
+- kaaWaitSync(pSrc->drawable.pScreen);
+- glamos->scratch_next = glamos->scratch_area->offset;
+- }
+- memcpy(pDst, pSrc, sizeof(*pDst));
+- pDst->devKind = dst_pitch;
+- pDst->devPrivate.ptr = pScreenPriv->screen->memory_base +
+- glamos->scratch_next;
+- glamos->scratch_next += size;
+-
+- src = pSrc->devPrivate.ptr;
+- src_pitch = pSrc->devKind;
+- dst = pDst->devPrivate.ptr;
+- bytes = src_pitch < dst_pitch ? src_pitch : dst_pitch;
+-
+- i = pSrc->drawable.height;
+- while (i--) {
+- memcpy(dst, src, bytes);
+- dst += dst_pitch;
+- src += src_pitch;
+- }
+-
+- /* Flush the pixel cache */
+- if (glamoc->is_3362) {
+- BEGIN_DMA(4);
+- OUT_REG(RADEON_REG_RB3D_DSTCACHE_CTLSTAT,
+- RADEON_RB3D_DC_FLUSH_ALL);
+- OUT_REG(GLAMO_REG_WAIT_UNTIL, RADEON_WAIT_HOST_IDLECLEAN);
+- END_DMA();
+- } else {
+- BEGIN_DMA(2);
+- OUT_REG(R128_REG_PC_GUI_CTLSTAT, R128_PC_FLUSH_ALL);
+- END_DMA();
+- }
+-
+- LEAVE_DRAW(pSrc);
+- return TRUE;
+-}
+-#endif
+-
+ static void
+ GLAMOBlockHandler(pointer blockData, OSTimePtr timeout, pointer readmask)
+ {
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_dma.c 2007-11-28 18:44:27.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c 2007-11-28 22:13:23.000000000 +0100
+@@ -25,6 +25,7 @@
+
+ #include <sys/time.h>
+
++#include "glamo-log.h"
+ #include "glamo.h"
+ #include "glamo-regs.h"
+ #include "glamo_dma.h"
+@@ -35,9 +36,7 @@
+ #include "glamo_sarea.h"
+ #endif /* USE_DRI */
+
+-#define DEBUG_FIFO 1
+-
+-#if DEBUG_FIFO
++#ifndef NDEBUG
+ static void
+ GLAMODebugFifo(GLAMOScreenInfo *glamos)
+ {
+@@ -273,7 +272,7 @@
+ count--;
+ }
+ if (TIMEDOUT()) {
+- ErrorF("Timeout submitting packets, resetting...\n");
++ GLAMO_LOG_ERROR("Timeout submitting packets, resetting...\n");
+ GLAMOEngineReset(glamos->screen->pScreen, GLAMO_ENGINE_CQ);
+ GLAMODrawSetup(glamos->screen->pScreen);
+ }
+@@ -292,11 +291,6 @@
+ if ((glamos->indirectStart == buf->used) && !discard)
+ return;
+
+-#if DEBUG_FIFO
+- ErrorF("Dispatching %d DWORDS\n", (buf->used - glamos->indirectStart) /
+- 4);
+-#endif
+-
+ #ifdef USE_DRI
+ if (glamos->using_dri) {
+ buf->drmBuf->used = buf->used;
+@@ -384,11 +378,6 @@
+ glamos->indirectBuffer = GLAMOGetDMABuffer(glamos);
+ if (glamos->indirectBuffer == FALSE)
+ FatalError("Failed to allocate DMA buffer.\n");
+-
+- if (glamos->using_dri)
+- ErrorF("Initialized DRI DMA\n");
+- else
+- ErrorF("Initialized DMA\n");
+ }
+
+ void
+Index: xorg-server-1.3.0.0/configure.ac
+===================================================================
+--- xorg-server-1.3.0.0.orig/configure.ac 2007-11-29 09:07:21.000000000 +0100
++++ xorg-server-1.3.0.0/configure.ac 2007-11-29 09:15:38.000000000 +0100
+@@ -866,6 +866,10 @@
+
+ if ! test "x$DEBUGGING" = xyes; then
+ AC_DEFINE(NDEBUG, 1, [Disable some debugging code])
++ AC_MSG_NOTICE([disabled debugging])
++else
++ AC_MSG_NOTICE([enabled debugging])
++
+ fi
+
+ AC_DEFINE(USE_RGB_TXT, 1, [Use rgb.txt directly])
diff --git a/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch b/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch
new file mode 100644
index 0000000000..1ca96b954d
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch
@@ -0,0 +1,15 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:54:00.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:55:05.000000000 +0100
+@@ -314,8 +314,8 @@
+ */
+
+ glamos->kaa.flags = KAA_OFFSCREEN_PIXMAPS;
+- glamos->kaa.offsetAlign = 2;
+- glamos->kaa.pitchAlign = 2;
++ glamos->kaa.offsetAlign = 0;
++ glamos->kaa.pitchAlign = 0;
+
+ kaaInitTrapOffsets(8, sample_offsets_x, sample_offsets_y, 0.0, 0.0);
+ sample_count = (1 << 8) - 1;
diff --git a/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch b/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch
new file mode 100644
index 0000000000..43315121da
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch
@@ -0,0 +1,438 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.c 2007-11-28 18:44:27.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c 2007-11-30 10:18:43.000000000 +0100
+@@ -27,9 +27,6 @@
+ #include <kdrive-config.h>
+ #endif
+ #include "glamo.h"
+-#if defined(USE_DRI) && defined(GLXEXT)
+-#include "glamo_sarea.h"
+-#endif
+
+ static Bool
+ GLAMOCardInit(KdCardInfo *card)
+@@ -89,13 +86,6 @@
+ return FALSE;
+ }
+
+-#ifdef USE_DRI
+- /* We demand identification by busid, not driver name */
+- glamoc->drmFd = drmOpen(NULL, glamoc->busid);
+- if (glamoc->drmFd < 0)
+- ErrorF("Failed to open DRM, DRI disabled.\n");
+-#endif /* USE_DRI */
+-
+ card->driver = glamoc;
+
+ glamoc->is_3362 = TRUE;
+@@ -122,10 +112,6 @@
+ GLAMOSetOffscreen (KdScreenInfo *screen)
+ {
+ GLAMOCardInfo(screen);
+-#if defined(USE_DRI) && defined(GLXEXT)
+- GLAMOScreenInfo *glamos = (GLAMOScreenInfo *)screen->driver;
+- int l;
+-#endif
+ int screen_size;
+ char *mmio = glamoc->reg_base;
+
+@@ -152,57 +138,7 @@
+ }
+
+ screen_size = screen->fb[0].byteStride * screen->height;
+-
+ screen->off_screen_base = screen_size;
+-
+-#if defined(USE_DRI) && defined(GLXEXT)
+- /* Reserve a static area for the back buffer the same size as the
+- * visible screen. XXX: This would be better initialized in glamo_dri.c
+- * when GLX is set up, but the offscreen memory manager's allocations
+- * don't last through VT switches, while the kernel's understanding of
+- * offscreen locations does.
+- */
+- glamos->frontOffset = 0;
+- glamos->frontPitch = screen->fb[0].byteStride;
+-
+- if (screen->off_screen_base + screen_size <= screen->memory_size) {
+- glamos->backOffset = screen->off_screen_base;
+- glamos->backPitch = screen->fb[0].byteStride;
+- screen->off_screen_base += screen_size;
+- }
+-
+- /* Reserve the depth span for Rage 128 */
+- if (!glamoc->is_3362 && screen->off_screen_base +
+- screen->fb[0].byteStride <= screen->memory_size) {
+- glamos->spanOffset = screen->off_screen_base;
+- screen->off_screen_base += screen->fb[0].byteStride;
+- }
+-
+- /* Reserve the static depth buffer, which happens to be the same
+- * bitsPerPixel as the screen.
+- */
+- if (screen->off_screen_base + screen_size <= screen->memory_size) {
+- glamos->depthOffset = screen->off_screen_base;
+- glamos->depthPitch = screen->fb[0].byteStride;
+- screen->off_screen_base += screen_size;
+- }
+-
+- /* Reserve approx. half of remaining offscreen memory for local
+- * textures. Round down to a whole number of texture regions.
+- */
+- glamos->textureSize = (screen->memory_size - screen->off_screen_base) / 2;
+- l = GLAMOLog2(glamos->textureSize / GLAMO_NR_TEX_REGIONS);
+- if (l < GLAMO_LOG_TEX_GRANULARITY)
+- l = GLAMO_LOG_TEX_GRANULARITY;
+- glamos->textureSize = (glamos->textureSize >> l) << l;
+- if (glamos->textureSize >= 512 * 1024) {
+- glamos->textureOffset = screen->off_screen_base;
+- screen->off_screen_base += glamos->textureSize;
+- } else {
+- /* Minimum texture size is for 2 256x256x32bpp textures */
+- glamos->textureSize = 0;
+- }
+-#endif /* USE_DRI && GLXEXT */
+ }
+
+ static Bool
+@@ -413,9 +349,6 @@
+ GLAMODisable(ScreenPtr pScreen)
+ {
+ KdScreenPriv(pScreen);
+-#if defined(USE_DRI) && defined(GLXEXT)
+- GLAMOScreenInfo(pScreenPriv);
+-#endif /* USE_DRI && GLXEXT */
+ GLAMOCardInfo(pScreenPriv);
+
+ GLAMOUnmapReg(pScreenPriv->card, glamoc);
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_dma.c 2007-11-28 22:13:23.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c 2007-11-30 10:25:49.000000000 +0100
+@@ -31,11 +31,6 @@
+ #include "glamo_dma.h"
+ #include "glamo_draw.h"
+
+-#ifdef USE_DRI
+-#include "radeon_common.h"
+-#include "glamo_sarea.h"
+-#endif /* USE_DRI */
+-
+ #ifndef NDEBUG
+ static void
+ GLAMODebugFifo(GLAMOScreenInfo *glamos)
+@@ -168,26 +163,6 @@
+ if (glamos->indirectBuffer != NULL)
+ GLAMOFlushIndirect(glamos, 0);
+
+-#ifdef USE_DRI
+- if (glamos->using_dri) {
+- int ret = 0;
+- int cmd = (glamoc->is_3362 ? DRM_RADEON_CP_IDLE :
+- DRM_R128_CCE_IDLE);
+- WHILE_NOT_TIMEOUT(2) {
+- ret = drmCommandNone(glamoc->drmFd, cmd);
+- if (ret != -EBUSY)
+- break;
+- }
+- if (TIMEDOUT()) {
+- GLAMODebugFifo(glamos);
+- FatalError("Timed out idling CCE (card hung)\n");
+- }
+- if (ret != 0)
+- ErrorF("Failed to idle DMA, returned %d\n", ret);
+- return;
+- }
+-#endif
+-
+ WHILE_NOT_TIMEOUT(.5) {
+ status = MMIO_IN16(mmio, GLAMO_REG_CQ_STATUS);
+ if ((status & (1 << 2)) && !(status & (1 << 8)))
+@@ -214,20 +189,6 @@
+ if (buf == NULL)
+ return NULL;
+
+-#ifdef USE_DRI
+- if (glamos->using_dri) {
+- buf->drmBuf = GLAMODRIGetBuffer(glamos);
+- if (buf->drmBuf == NULL) {
+- xfree(buf);
+- return NULL;
+- }
+- buf->size = buf->drmBuf->total;
+- buf->used = buf->drmBuf->used;
+- buf->address = buf->drmBuf->address;
+- return buf;
+- }
+-#endif /* USE_DRI */
+-
+ buf->size = glamos->ring_len / 2;
+ buf->address = xalloc(buf->size);
+ if (buf->address == NULL) {
+@@ -290,25 +251,6 @@
+
+ if ((glamos->indirectStart == buf->used) && !discard)
+ return;
+-
+-#ifdef USE_DRI
+- if (glamos->using_dri) {
+- buf->drmBuf->used = buf->used;
+- GLAMODRIDispatchIndirect(glamos, discard);
+- if (discard) {
+- buf->drmBuf = GLAMODRIGetBuffer(glamos);
+- buf->size = buf->drmBuf->total;
+- buf->used = buf->drmBuf->used;
+- buf->address = buf->drmBuf->address;
+- glamos->indirectStart = 0;
+- } else {
+- /* Start on a double word boundary */
+- glamos->indirectStart = buf->used = (buf->used + 7) & ~7;
+- }
+- return;
+- }
+-#endif /* USE_DRI */
+-
+ GLAMODispatchIndirectDMA(glamos);
+
+ buf->used = 0;
+@@ -367,13 +309,7 @@
+ KdScreenPriv(pScreen);
+ GLAMOScreenInfo(pScreenPriv);
+
+-#ifdef USE_DRI
+- if (glamos->using_dri)
+- GLAMODRIDMAStart(glamos);
+-#endif /* USE_DRI */
+-
+- if (!glamos->using_dri)
+- GLAMODMAInit(pScreen);
++ GLAMODMAInit(pScreen);
+
+ glamos->indirectBuffer = GLAMOGetDMABuffer(glamos);
+ if (glamos->indirectBuffer == FALSE)
+@@ -388,11 +324,6 @@
+
+ GLAMOWaitIdle(glamos);
+
+-#ifdef USE_DRI
+- if (glamos->using_dri)
+- GLAMODRIDMAStop(glamos);
+-#endif /* USE_DRI */
+-
+ xfree(glamos->indirectBuffer->address);
+ xfree(glamos->indirectBuffer);
+ glamos->indirectBuffer = NULL;
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.h 2007-11-30 10:24:13.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h 2007-11-30 10:25:06.000000000 +0100
+@@ -39,18 +39,6 @@
+
+ #include "kxv.h"
+
+-#undef XF86DRI
+-#ifdef XF86DRI
+-#define USE_DRI
+-#include "xf86drm.h"
+-#include "dri.h"
+-#ifdef GLXEXT
+-#include "GL/glxint.h"
+-#include "GL/glxtokens.h"
+-#include "glamo_dripriv.h"
+-#endif
+-#endif
+-
+ #define GLAMO_REG_BASE(c) ((c)->attr.address[0])
+ #define GLAMO_REG_SIZE(c) (0x2400)
+
+@@ -124,9 +112,6 @@
+ Bool is_3362;
+ CARD32 crtc_pitch;
+ CARD32 crtc2_pitch;
+-#ifdef USE_DRI
+- int drmFd;
+-#endif /* USE_DRI */
+ Bool use_fbdev, use_vesa;
+ } GLAMOCardInfo;
+
+@@ -166,9 +151,6 @@
+ int size;
+ int used;
+ void *address;
+-#ifdef USE_DRI
+- drmBufPtr drmBuf;
+-#endif
+ } dmaBuf;
+
+ typedef struct _GLAMOScreenInfo {
+@@ -194,8 +176,6 @@
+ KdVideoAdaptorPtr pAdaptor;
+ int num_texture_ports;
+
+- Bool using_dri; /* If we use the DRM for DMA. */
+-
+ KdOffscreenArea *dma_space; /* For "DMA" from framebuffer. */
+ CARD16 *ring_addr; /* Beginning of ring buffer. */
+ int ring_write; /* Index of write ptr in ring. */
+@@ -204,76 +184,6 @@
+
+ dmaBuf *indirectBuffer;
+ int indirectStart;
+-
+-#ifdef USE_DRI
+- Bool dma_started;
+-
+- drmSize registerSize;
+- drmHandle registerHandle;
+- drmHandle fbHandle;
+-
+- drmSize gartSize;
+- drmHandle agpMemHandle; /* Handle from drmAgpAlloc */
+- unsigned long gartOffset;
+- unsigned char *AGP; /* Map */
+- int agpMode;
+- drmSize pciSize;
+- drmHandle pciMemHandle;
+-
+- /* ring buffer data */
+- unsigned long ringStart; /* Offset into AGP space */
+- drmHandle ringHandle; /* Handle from drmAddMap */
+- drmSize ringMapSize; /* Size of map */
+- int ringSize; /* Size of ring (MB) */
+- unsigned char *ring; /* Map */
+-
+- unsigned long ringReadOffset; /* Offset into AGP space */
+- drmHandle ringReadPtrHandle; /* Handle from drmAddMap */
+- drmSize ringReadMapSize; /* Size of map */
+- unsigned char *ringReadPtr; /* Map */
+-
+- /* vertex/indirect buffer data */
+- unsigned long bufStart; /* Offset into AGP space */
+- drmHandle bufHandle; /* Handle from drmAddMap */
+- drmSize bufMapSize; /* Size of map */
+- int bufSize; /* Size of buffers (MB) */
+- unsigned char *buf; /* Map */
+- int bufNumBufs; /* Number of buffers */
+- drmBufMapPtr buffers; /* Buffer map */
+-
+- /* AGP Texture data */
+- unsigned long gartTexStart; /* Offset into AGP space */
+- drmHandle gartTexHandle; /* Handle from drmAddMap */
+- drmSize gartTexMapSize; /* Size of map */
+- int gartTexSize; /* Size of AGP tex space (MB) */
+- unsigned char *gartTex; /* Map */
+- int log2GARTTexGran;
+-
+- int DMAusecTimeout; /* CCE timeout in usecs */
+-
+- /* DRI screen private data */
+- int frontOffset;
+- int frontPitch;
+- int backOffset;
+- int backPitch;
+- int depthOffset;
+- int depthPitch;
+- int spanOffset;
+- int textureOffset;
+- int textureSize;
+- int log2TexGran;
+-
+- int irqEnabled;
+-
+- int serverContext;
+-
+- DRIInfoPtr pDRIInfo;
+-#ifdef GLXEXT
+- int numVisualConfigs;
+- __GLXvisualConfig *pVisualConfigs;
+- GLAMOConfigPrivPtr pVisualConfigsPriv;
+-#endif /* GLXEXT */
+-#endif /* USE_DRI */
+ } GLAMOScreenInfo;
+
+ #define getGLAMOScreenInfo(kd) ((GLAMOScreenInfo *) ((kd)->screen->driver))
+@@ -330,31 +240,6 @@
+ void
+ GLAMODrawFini(ScreenPtr pScreen);
+
+-/* glamo_dri.c */
+-#ifdef USE_DRI
+-Bool
+-GLAMODRIScreenInit(ScreenPtr pScreen);
+-
+-void
+-GLAMODRICloseScreen(ScreenPtr pScreen);
+-
+-void
+-GLAMODRIDMAStart(GLAMOScreenInfo *glamos);
+-
+-void
+-GLAMODRIDMAStop(GLAMOScreenInfo *glamos);
+-
+-void
+-GLAMODRIDMAReset(GLAMOScreenInfo *glamos);
+-
+-void
+-GLAMODRIDispatchIndirect(GLAMOScreenInfo *glamos, Bool discard);
+-
+-drmBufPtr
+-GLAMODRIGetBuffer(GLAMOScreenInfo *glamos);
+-
+-#endif /* USE_DRI */
+-
+ /* glamo_cursor.c */
+ Bool
+ GLAMOCursorInit(ScreenPtr pScreen);
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:55:05.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-30 10:26:02.000000000 +0100
+@@ -296,11 +296,6 @@
+ RegisterBlockAndWakeupHandlers(GLAMOBlockHandler, GLAMOWakeupHandler,
+ pScreen);
+
+- glamos->using_dri = FALSE;
+-#ifdef USE_DRI
+- glamos->using_dri = GLAMODRIScreenInit(pScreen);
+-#endif /* USE_DRI */
+-
+ memset(&glamos->kaa, 0, sizeof(KaaScreenInfoRec));
+ glamos->kaa.waitMarker = GLAMOWaitMarker;
+ glamos->kaa.PrepareSolid = GLAMOPrepareSolid;
+@@ -357,20 +352,6 @@
+ glamos->kaa.UploadToScreen = NULL;
+ glamos->kaa.UploadToScratch = NULL;
+
+-#ifdef USE_DRI
+- if (glamos->using_dri) {
+- if (!glamoc->is_3362) {
+- /*glamos->kaa.PrepareTrapezoids = R128PrepareTrapezoids;
+- glamos->kaa.Trapezoids = R128Trapezoids;
+- glamos->kaa.DoneTrapezoids = R128DoneTrapezoids;*/
+- } else if (glamoc->is_r100 || glamoc->is_r200) {
+- glamos->kaa.PrepareTrapezoids = RadeonPrepareTrapezoids;
+- glamos->kaa.Trapezoids = RadeonTrapezoids;
+- glamos->kaa.DoneTrapezoids = RadeonDoneTrapezoids;
+- }
+- }
+-#endif /* USE_DRI */
+-
+ glamos->kaa.UploadToScreen = GLAMOUploadToScreen;
+
+ /* Reserve a scratch area. It'll be used for storing glyph data during
+@@ -399,15 +380,6 @@
+ void
+ GLAMODrawFini(ScreenPtr pScreen)
+ {
+-#ifdef USE_DRI
+- KdScreenPriv(pScreen);
+- GLAMOScreenInfo(pScreenPriv);
+- if (glamos->using_dri) {
+- GLAMODRICloseScreen(pScreen);
+- glamos->using_dri = FALSE;
+- }
+-#endif /* USE_DRI */
+-
+ RemoveBlockAndWakeupHandlers(GLAMOBlockHandler, GLAMOWakeupHandler,
+ pScreen);
+
diff --git a/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch b/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch
new file mode 100644
index 0000000000..2c44bd8d3d
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch
@@ -0,0 +1,141 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.c 2007-11-30 10:18:43.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c 2007-11-30 10:35:27.000000000 +0100
+@@ -38,9 +38,7 @@
+ if (glamoc == NULL)
+ return FALSE;
+
+-#ifdef KDRIVEFBDEV
+ if (!initialized && fbdevInitialize(card, &glamoc->backend_priv.fbdev)) {
+- glamoc->use_fbdev = TRUE;
+ initialized = TRUE;
+ glamoc->backend_funcs.cardfini = fbdevCardFini;
+ glamoc->backend_funcs.scrfini = fbdevScreenFini;
+@@ -58,29 +56,6 @@
+ glamoc->backend_funcs.randrSetConfig = fbdevRandRSetConfig;
+ #endif
+ }
+-#endif
+-#ifdef KDRIVEVESA
+- if (!initialized && vesaInitialize(card, &glamoc->backend_priv.vesa)) {
+- glamoc->use_vesa = TRUE;
+- initialized = TRUE;
+- glamoc->backend_funcs.cardfini = vesaCardFini;
+- glamoc->backend_funcs.scrfini = vesaScreenFini;
+- glamoc->backend_funcs.initScreen = vesaInitScreen;
+- glamoc->backend_funcs.finishInitScreen = vesaFinishInitScreen;
+- glamoc->backend_funcs.createRes = vesaCreateResources;
+- glamoc->backend_funcs.preserve = vesaPreserve;
+- glamoc->backend_funcs.restore = vesaRestore;
+- glamoc->backend_funcs.dpms = vesaDPMS;
+- glamoc->backend_funcs.enable = vesaEnable;
+- glamoc->backend_funcs.disable = vesaDisable;
+- glamoc->backend_funcs.getColors = vesaGetColors;
+- glamoc->backend_funcs.putColors = vesaPutColors;
+-#ifdef RANDR
+- glamoc->backend_funcs.randrSetConfig = vesaRandRSetConfig;
+-#endif
+- }
+-#endif
+-
+ if (!initialized || !GLAMOMapReg(card, glamoc)) {
+ xfree(glamoc);
+ return FALSE;
+@@ -158,18 +133,8 @@
+
+ if (screen->fb[0].depth == 0)
+ screen->fb[0].depth = 16;
+-#ifdef KDRIVEFBDEV
+- if (glamoc->use_fbdev) {
+- success = fbdevScreenInitialize(screen,
+- &glamos->backend_priv.fbdev);
+- }
+-#endif
+-#ifdef KDRIVEVESA
+- if (glamoc->use_vesa) {
+- success = vesaScreenInitialize(screen,
+- &glamos->backend_priv.vesa);
+- }
+-#endif
++
++ success = fbdevScreenInitialize(screen, &glamos->backend_priv.fbdev);
+
+ if (!success) {
+ screen->driver = NULL;
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.h 2007-11-30 10:25:06.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h 2007-11-30 10:35:17.000000000 +0100
+@@ -30,13 +30,7 @@
+ #include <kdrive-config.h>
+ #endif
+
+-#ifdef KDRIVEFBDEV
+ #include <fbdev.h>
+-#endif
+-#ifdef KDRIVEVESA
+-#include <vesa.h>
+-#endif
+-
+ #include "kxv.h"
+
+ #define GLAMO_REG_BASE(c) ((c)->attr.address[0])
+@@ -99,12 +93,7 @@
+
+ typedef struct _GLAMOCardInfo {
+ union {
+-#ifdef KDRIVEFBDEV
+ FbdevPriv fbdev;
+-#endif
+-#ifdef KDRIVEVESA
+- VesaCardPrivRec vesa;
+-#endif
+ } backend_priv;
+ struct backend_funcs backend_funcs;
+
+@@ -112,7 +101,6 @@
+ Bool is_3362;
+ CARD32 crtc_pitch;
+ CARD32 crtc2_pitch;
+- Bool use_fbdev, use_vesa;
+ } GLAMOCardInfo;
+
+ #define getGLAMOCardInfo(kd) ((GLAMOCardInfo *) ((kd)->card->driver))
+@@ -155,12 +143,7 @@
+
+ typedef struct _GLAMOScreenInfo {
+ union {
+-#ifdef KDRIVEFBDEV
+ FbdevScrPriv fbdev;
+-#endif
+-#ifdef KDRIVEVESA
+- VesaScreenPrivRec vesa;
+-#endif
+ } backend_priv;
+ KaaScreenInfoRec kaa;
+
+Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_stub.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_stub.c 2007-11-28 18:44:27.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_stub.c 2007-11-30 10:34:10.000000000 +0100
+@@ -59,9 +59,6 @@
+ ddxUseMsg (void)
+ {
+ KdUseMsg();
+-#ifdef KDRIVEVESA
+- vesaUseMsg();
+-#endif
+ }
+
+ int
+@@ -69,9 +66,6 @@
+ {
+ int ret;
+
+-#ifdef KDRIVEVESA
+- if (!(ret = vesaProcessArgument (argc, argv, i)))
+-#endif
+ ret = KdProcessArgument(argc, argv, i);
+
+ return ret;
diff --git a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
index f78bef05ae..368b421650 100644
--- a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
+++ b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
@@ -23,6 +23,10 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
file://gumstix-kmode.patch;patch=1 \
file://smedia-glamo.patch;patch=1 \
file://build-glamo.patch;patch=1 \
+ file://00-xglamo-logs.patch;patch=1 \
+ file://01-xglamo-scrolling-artifact-fix.patch;patch=1 \
+ file://02-xglamo-no-dri.patch;patch=1 \
+ file://03-xglamo-no-vesa.patch;patch=1 \
"
S = "${WORKDIR}/xorg-server-${PV}"
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver
index ac6de5d82e..417b29ca2a 100644
--- a/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver
@@ -114,8 +114,7 @@ case `module_id` in
DPI=140
fi
ARGS="$ARGS -dpi ${DPI} -screen ${SCREEN_SIZE}"
- # uncomment the line below if you want to test Xglamo
- #XSERVER=/usr/bin/Xglamo
+ XSERVER=/usr/bin/Xglamo
;;
"Nokia N770")
ARGS="$ARGS -dpi 225 -screen ${SCREEN_SIZE} -mouse tslib"
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver
index f7fe52d84e..99a4138473 100644
--- a/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver
@@ -15,6 +15,9 @@ fi
if [ -f /usr/bin/Xomap ]; then
XSERVER=/usr/bin/Xomap
fi
+if [ -f /usr/bin/Xglamo ]; then
+ XSERVER=/usr/bin/Xglamo
+fi
. /etc/profile