summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRolf Leggewie <oe-devel@rolf.leggewie.biz>2007-05-06 16:09:44 +0000
committerRolf Leggewie <oe-devel@rolf.leggewie.biz>2007-05-06 16:09:44 +0000
commitcd1720fefd729bb1598d569442a17fb2054acc46 (patch)
tree1cb5f724286cc608ad96a883121a5e40a16cef82
parent106b275a737d82c767dc18861b9c006db2e11ddd (diff)
parent33de73cb673b87938d734673c5fec3e5957250a7 (diff)
merge of '4e038cbec73ce09bc146fb74f60b2c6d4359a29b'
and '61b65ffb0a858399f89407df40b6469b203bda44'
-rw-r--r--classes/insane.bbclass2
-rw-r--r--conf/distro/angstrom-2007.1.conf12
-rw-r--r--packages/chrpath/chrpath-native_0.13.bb11
-rw-r--r--packages/chrpath/chrpath.inc10
-rw-r--r--packages/chrpath/chrpath_0.13.bb1
-rw-r--r--packages/db/db_4.2.52.bb2
-rw-r--r--packages/db/db_4.3.29.bb2
-rw-r--r--packages/glib-2.0/glib.inc5
-rw-r--r--packages/gpe-autostarter/gpe-autostarter-0.12/.mtn2git_empty0
-rw-r--r--packages/gpe-autostarter/gpe-autostarter-0.12/wireless.patch12
-rw-r--r--packages/gpe-autostarter/gpe-autostarter_0.12.bb2
-rw-r--r--packages/kdepimpi/files/qt-mt.patch41
-rw-r--r--packages/kdepimpi/kdepimpi_2.2.7.bb3
-rw-r--r--packages/libtool/libtool-1.5.22/.mtn2git_empty0
-rw-r--r--packages/libtool/libtool-1.5.22/autotools.patch127
-rw-r--r--packages/libtool/libtool-1.5.22/install-path-check.patch25
-rw-r--r--packages/libtool/libtool-1.5.22/libdir-la.patch52
-rw-r--r--packages/libtool/libtool-1.5.22/prefix.patch44
-rw-r--r--packages/libtool/libtool-1.5.22/sedvar.patch16
-rw-r--r--packages/libtool/libtool-1.5.22/tag.patch19
-rw-r--r--packages/libtool/libtool-1.5.22/tag1.patch13
-rw-r--r--packages/libtool/libtool-1.5.22/uclibc.patch19
-rw-r--r--packages/libtool/libtool-cross_1.5.22.bb30
-rw-r--r--packages/libtool/libtool-native_1.5.22.bb44
-rw-r--r--packages/libtool/libtool_1.5.22.bb37
-rw-r--r--packages/linux/linux-ezx-2.6.21/ezx-core.patch40
-rw-r--r--packages/linux/linux-ezx-2.6.21/ezx-emu.patch16
-rw-r--r--packages/linux/linux-ezx-2.6.21/ezx-pcap.patch70
-rw-r--r--packages/linux/linux-ezx-2.6.21/ezx-pm.patch8
-rw-r--r--packages/linux/linux-ezx-2.6.21/pcap-ts.patch450
-rw-r--r--packages/linux/linux-ezx_2.6.21.bb8
-rwxr-xr-xpackages/opie-init/opie-init/opie13
-rw-r--r--packages/opie-init/opie-init_1.2.2.bb2
-rw-r--r--packages/prismstumbler/prismstumbler-0.7.3/wireless.patch21
-rw-r--r--packages/prismstumbler/prismstumbler_0.7.3.bb6
-rw-r--r--packages/sword/sword-1.5.9/.mtn2git_empty0
-rw-r--r--packages/sword/sword-1.5.9/gcc-visibility.patch26
-rw-r--r--packages/sword/sword_1.5.9.bb3
-rw-r--r--packages/tracker/tracker_0.5.4.bb2
39 files changed, 1105 insertions, 89 deletions
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 30b164b734..c3a211eefd 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -219,7 +219,7 @@ def package_qa_check_rpath(file,name,d):
#bb.note("???%s???" % bad_dir_test)
for line in txt:
#bb.note("===%s===" % line)
- if bad_dir_test in line:
+ if bad_dir in line:
package_qa_write_error( 1, name, file, d)
bb.error("QA Issue package %s contains bad RPATH %s in file %s" % (name, line, file))
#bb.note("Fixing RPATH for you in %s" % file)
diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf
index daa579f132..be2a5b88bf 100644
--- a/conf/distro/angstrom-2007.1.conf
+++ b/conf/distro/angstrom-2007.1.conf
@@ -8,7 +8,7 @@
#DISTRO_VERSION = "2007.4"
DISTRO_VERSION = "test-${DATE}"
-DISTRO_REVISION = "41"
+DISTRO_REVISION = "42"
require conf/distro/include/angstrom.inc
require conf/distro/include/sane-srcdates.inc
@@ -51,6 +51,7 @@ FEED_ARCH_htcuniversal = "armv5te"
FEED_ARCH_hx2000 = "armv5te"
FEED_ARCH_hx4700 = "armv5te"
FEED_ARCH_ixp4xx = "armv5te"
+FEED_ARCH_ixp4xxle = "armv5te"
FEED_ARCH_magician = "armv5te"
FEED_ARCH_netbook-pro = "armv5te"
FEED_ARCH_nokia770 = "armv5te"
@@ -60,6 +61,8 @@ FEED_ARCH_spitz = "armv5te"
FEED_ARCH_tosa = "armv5te"
+FEED_ARCH_ixp4xxbe = "armv5teb"
+
#i586 machines
FEED_ARCH_epia = "i586"
@@ -98,6 +101,9 @@ PREFERRED_VERSION_linux-handhelds-2.6_magician ?= "2.6.20-hh6"
PREFERRED_VERSION_file = "4.18"
PREFERRED_VERSION_file_native = "4.18"
+PREFERRED_VERSION_perl-native = "5.8.8"
+PREFERRED_VERSION_perl = "5.8.8"
+
CVS_TARBALL_STASH = "\
http://www.angstrom-distribution.org/unstable/sources/ \
http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/sources/ \
@@ -132,7 +138,7 @@ PREFERRED_VERSION_fontconfig = "2.4.1"
PREFERRED_VERSION_freetype = "2.3.3"
PREFERRED_VERSION_freetype-native = "2.2.1"
PREFERRED_VERSION_cairo = "1.4.4"
-PREFERRED_VERSION_glib-2.0 = "2.12.11"
+PREFERRED_VERSION_glib-2.0 = "2.12.12"
# older gtk-webcore releases don't work on ARM/EABI
# We need to switch to a fixed SRCDATE or release as soon as possible
@@ -148,7 +154,7 @@ PREFERRED_PROVIDER_xserver ?= "xserver-kdrive"
require conf/distro/include/preferred-xorg-versions-X11R7.2.inc
#PREFERRED_VERSION_xserver-kdrive = "1.2.0"
-PREFERRED_VERSION_gtk+ = "2.10.10"
+PREFERRED_VERSION_gtk+ = "2.10.12"
PREFERRED_VERSION_libgnomeui = "2.16.1"
PREFERRED_VERSION_prismstumbler = "0.7.3"
diff --git a/packages/chrpath/chrpath-native_0.13.bb b/packages/chrpath/chrpath-native_0.13.bb
index c9cc9112a3..6ba8feb5e6 100644
--- a/packages/chrpath/chrpath-native_0.13.bb
+++ b/packages/chrpath/chrpath-native_0.13.bb
@@ -1,10 +1,3 @@
-DESCRIPTION = "chrpath allows you to change the rpath (where the application looks for libraries) in an application. It does not (yet) allow you to add an rpath if there isn't one already."
-LICENSE = "GPL"
-
-SRC_URI = "http://ftp.debian.org/debian/pool/main/c/chrpath/chrpath_0.13.orig.tar.gz"
-
-inherit autotools native
-
-S = "${WORKDIR}/chrpath-${PV}"
-
+require chrpath.inc
+inherit native
diff --git a/packages/chrpath/chrpath.inc b/packages/chrpath/chrpath.inc
new file mode 100644
index 0000000000..1858d47d2c
--- /dev/null
+++ b/packages/chrpath/chrpath.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "chrpath allows you to change the rpath (where the application looks for libraries) in an application. It does not (yet) allow you to add an rpath if there isn't one already."
+LICENSE = "GPL"
+
+SRC_URI = "http://ftp.debian.org/debian/pool/main/c/chrpath/chrpath_${PV}.orig.tar.gz"
+
+inherit autotools
+
+S = "${WORKDIR}/chrpath-${PV}"
+
+
diff --git a/packages/chrpath/chrpath_0.13.bb b/packages/chrpath/chrpath_0.13.bb
new file mode 100644
index 0000000000..15392d9ac2
--- /dev/null
+++ b/packages/chrpath/chrpath_0.13.bb
@@ -0,0 +1 @@
+require chrpath.inc
diff --git a/packages/db/db_4.2.52.bb b/packages/db/db_4.2.52.bb
index 05565287f5..a0c394f7a4 100644
--- a/packages/db/db_4.2.52.bb
+++ b/packages/db/db_4.2.52.bb
@@ -91,7 +91,7 @@ do_install_append() {
if test -d "${D}/${prefix}/docs"
then
mkdir -p "${D}/${datadir}"
- test ! -d "${D}/${docdir}" || rmdir "${D}/${docdir}"
+ test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}"
mv "${D}/${prefix}/docs" "${D}/${docdir}"
fi
}
diff --git a/packages/db/db_4.3.29.bb b/packages/db/db_4.3.29.bb
index 3c14b9eb96..474e73724f 100644
--- a/packages/db/db_4.3.29.bb
+++ b/packages/db/db_4.3.29.bb
@@ -92,7 +92,7 @@ do_install_append() {
if test -d "${D}/${prefix}/docs"
then
mkdir -p "${D}/${datadir}"
- test ! -d "${D}/${docdir}" || rmdir "${D}/${docdir}"
+ test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}"
mv "${D}/${prefix}/docs" "${D}/${docdir}"
fi
}
diff --git a/packages/glib-2.0/glib.inc b/packages/glib-2.0/glib.inc
index 7539dd1e2a..6b384ad6c7 100644
--- a/packages/glib-2.0/glib.inc
+++ b/packages/glib-2.0/glib.inc
@@ -15,7 +15,10 @@ PR = "r1"
LEAD_SONAME = "libglib-2.0.*"
FILES_glib-2.0-utils = "${bindir}/*"
-EXTRA_OECONF = "--disable-debug --enable-included-printf=no"
+EXTRA_OECONF = "--disable-debug "
+
+# Add and entry for your favourite arch if your (g)libc has a sane printf
+EXTRA_OECONF_append_glibc_arm = " --enable-included-printf=no "
S = "${WORKDIR}/glib-${PV}"
diff --git a/packages/gpe-autostarter/gpe-autostarter-0.12/.mtn2git_empty b/packages/gpe-autostarter/gpe-autostarter-0.12/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-autostarter/gpe-autostarter-0.12/.mtn2git_empty
diff --git a/packages/gpe-autostarter/gpe-autostarter-0.12/wireless.patch b/packages/gpe-autostarter/gpe-autostarter-0.12/wireless.patch
new file mode 100644
index 0000000000..b375507ca8
--- /dev/null
+++ b/packages/gpe-autostarter/gpe-autostarter-0.12/wireless.patch
@@ -0,0 +1,12 @@
+--- gpe-autostarter-0.12/net.c.orig 2007-04-30 21:26:40.000000000 +0200
++++ gpe-autostarter-0.12/net.c 2007-04-30 21:33:20.000000000 +0200
+@@ -18,7 +18,9 @@
+ #include <locale.h>
+ #include <signal.h>
+
++#include <linux/types.h>
+ #include <sys/socket.h>
++#include <linux/if.h>
+ #include <linux/wireless.h>
+ #include <sys/ioctl.h>
+
diff --git a/packages/gpe-autostarter/gpe-autostarter_0.12.bb b/packages/gpe-autostarter/gpe-autostarter_0.12.bb
index f92b5df16b..c47f75797e 100644
--- a/packages/gpe-autostarter/gpe-autostarter_0.12.bb
+++ b/packages/gpe-autostarter/gpe-autostarter_0.12.bb
@@ -4,3 +4,5 @@ DEPENDS = "glib-2.0 dbus-glib hotplug-dbus virtual/libx11"
RDEPENDS = "hotplug-dbus"
inherit gpe
+
+SRC_URI += "file://wireless.patch;patch=1"
diff --git a/packages/kdepimpi/files/qt-mt.patch b/packages/kdepimpi/files/qt-mt.patch
new file mode 100644
index 0000000000..c7e3f9d88a
--- /dev/null
+++ b/packages/kdepimpi/files/qt-mt.patch
@@ -0,0 +1,41 @@
+diff --git a/microkde/kresources/resource.cpp b/microkde/kresources/resource.cpp
+index cccd485..65d82e2 100644
+--- a/microkde/kresources/resource.cpp
++++ b/microkde/kresources/resource.cpp
+@@ -29,6 +29,23 @@
+
+ using namespace KRES;
+
++namespace fixme {
++ class QMutexLocker {
++ public:
++ QMutexLocker(QMutex *m) : mtx(m) {
++ if(mtx) mtx->lock();
++ }
++ ~QMutexLocker() {
++ if(mtx) mtx->unlock();
++ }
++
++ QMutex *mutex() const { return mtx; }
++ private:
++ QMutex *mtx;
++ };
++}
++using namespace fixme;
++
+ class Resource::ResourcePrivate
+ {
+ public:
+diff --git a/microkde/kresources/resource.h b/microkde/kresources/resource.h
+index ed5af96..997fff6 100644
+--- a/microkde/kresources/resource.h
++++ b/microkde/kresources/resource.h
+@@ -25,7 +25,7 @@
+
+ //US
+ #ifdef QT_THREAD_SUPPORT
+-#include <qmutex.h>
++#include <qthread.h>
+ #endif //QT_THREAD_SUPPORT
+
+ #include <qvaluelist.h>
diff --git a/packages/kdepimpi/kdepimpi_2.2.7.bb b/packages/kdepimpi/kdepimpi_2.2.7.bb
index 6059bf8528..ca4d5c0786 100644
--- a/packages/kdepimpi/kdepimpi_2.2.7.bb
+++ b/packages/kdepimpi/kdepimpi_2.2.7.bb
@@ -1,5 +1,6 @@
SRC_URI = "${SOURCEFORGE_MIRROR}/kdepimpi/kdepimpi-${PV}.tar.gz \
- file://gcc4.patch;patch=1"
+ file://gcc4.patch;patch=1 \
+ file://qt-mt.patch;patch=1"
require kdepimpi-base.inc
diff --git a/packages/libtool/libtool-1.5.22/.mtn2git_empty b/packages/libtool/libtool-1.5.22/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/.mtn2git_empty
diff --git a/packages/libtool/libtool-1.5.22/autotools.patch b/packages/libtool/libtool-1.5.22/autotools.patch
new file mode 100644
index 0000000000..5df441e945
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/autotools.patch
@@ -0,0 +1,127 @@
+diff -urNd -urNd libtool-1.5/cdemo/configure.ac libtool-1.5.ac/cdemo/configure.ac
+--- libtool-1.5/cdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400
++++ libtool-1.5.ac/cdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([cdemo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([main.c])
++AC_CONFIG_AUX_DIR([..])
+
+
+ ## ------------------------ ##
+diff -urNd -urNd libtool-1.5/demo/configure.ac libtool-1.5.ac/demo/configure.ac
+--- libtool-1.5/demo/configure.ac 2002-03-02 22:19:55.000000000 -0500
++++ libtool-1.5.ac/demo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([demo], [1.0], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([hello.c])
++AC_CONFIG_AUX_DIR([..])
+
+
+ ## ------------------------ ##
+diff -urNd -urNd libtool-1.5/demo/Makefile.am libtool-1.5.ac/demo/Makefile.am
+--- libtool-1.5/demo/Makefile.am 2002-11-19 04:42:39.000000000 -0500
++++ libtool-1.5.ac/demo/Makefile.am 2004-05-05 17:17:34.000000000 -0400
+@@ -121,17 +121,16 @@
+
+ # This is one of the essential tests for deplibs_check_method=pass_all.
+ # If this one passes with pass_all, it is likely that pass_all works
+-EXTRA_LIBRARIES = libhell0.a
+-libhell0_a_SOURCES = hello.c foo.c
+-EXTRA_LTLIBRARIES = libhell1.la libhell2.la
++EXTRA_LTLIBRARIES = libhell0.la libhell1.la libhell2.la
++libhell0_la_SOURCES = hello.c foo.c
+ libhell1_la_SOURCES = hell1.c
+ libhell1_la_LIBADD = -L. -lhell0
+ libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir)
+-libhell1_la_DEPENDENCIES = libhell0.a
++libhell1_la_DEPENDENCIES = libhell0.la
+ libhell2_la_SOURCES = hell2.c
+ libhell2_la_LIBADD = -L. -lhell0
+ libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir)
+-libhell2_la_DEPENDENCIES = libhell0.a
++libhell2_la_DEPENDENCIES = libhell0.la
+ EXTRA_PROGRAMS = hell0
+ hell0_SOURCES = main.c
+ hell0_LDADD = libhell1.la libhell2.la $(LIBM)
+diff -urNd -urNd libtool-1.5/depdemo/configure.ac libtool-1.5.ac/depdemo/configure.ac
+--- libtool-1.5/depdemo/configure.ac 2002-10-22 15:29:28.000000000 -0400
++++ libtool-1.5.ac/depdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([depdemo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([main.c])
++AC_CONFIG_AUX_DIR([..])
+
+
+ ## ------------------------ ##
+diff -urNd -urNd libtool-1.5/f77demo/configure.ac libtool-1.5.ac/f77demo/configure.ac
+--- libtool-1.5/f77demo/configure.ac 2003-03-22 01:34:27.000000000 -0500
++++ libtool-1.5.ac/f77demo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -23,6 +23,7 @@
+ ## ------------------------ ##
+ AC_INIT([f77demo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([foof.f])dnl
++AC_CONFIG_AUX_DIR([..])
+
+ ## ------------------------ ##
+ ## Automake Initialisation. ##
+diff -urNd -urNd libtool-1.5/mdemo/configure.ac libtool-1.5.ac/mdemo/configure.ac
+--- libtool-1.5/mdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400
++++ libtool-1.5.ac/mdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([mdemo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([main.c])
++AC_CONFIG_AUX_DIR([..])
+
+
+ ## ------------------------ ##
+diff -urNd -urNd libtool-1.5/pdemo/configure.ac libtool-1.5.ac/pdemo/configure.ac
+--- libtool-1.5/pdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400
++++ libtool-1.5.ac/pdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([pdemo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([longer_file_name_hello.c])
++AC_CONFIG_AUX_DIR([..])
+
+
+ ## ------------------------ ##
+diff -urNd -urNd libtool-1.5/pdemo/Makefile.am libtool-1.5.ac/pdemo/Makefile.am
+--- libtool-1.5/pdemo/Makefile.am 2002-11-19 04:42:39.000000000 -0500
++++ libtool-1.5.ac/pdemo/Makefile.am 2004-05-05 17:17:59.000000000 -0400
+@@ -121,17 +121,16 @@
+
+ # This is one of the essential tests for deplibs_check_method=pass_all.
+ # If this one passes with pass_all, it is likely that pass_all works
+-EXTRA_LIBRARIES = libhell0.a
+-libhell0_a_SOURCES = longer_file_name_hello.c longer_file_name_foo.c
+-EXTRA_LTLIBRARIES = libhell1.la libhell2.la
++libhell0_la_SOURCES = longer_file_name_hello.c longer_file_name_foo.c
++EXTRA_LTLIBRARIES = libhell0.la libhell1.la libhell2.la
+ libhell1_la_SOURCES = longer_file_name_hell1.c
+ libhell1_la_LIBADD = -L. -lhell0
+ libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir)
+-libhell1_la_DEPENDENCIES = libhell0.a
++libhell1_la_DEPENDENCIES = libhell0.la
+ libhell2_la_SOURCES = longer_file_name_hell2.c
+ libhell2_la_LIBADD = -L. -lhell0
+ libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir)
+-libhell2_la_DEPENDENCIES = libhell0.a
++libhell2_la_DEPENDENCIES = libhell0.la
+ EXTRA_PROGRAMS = hell0
+ hell0_SOURCES = longer_file_name_main.c
+ hell0_LDADD = libhell1.la libhell2.la $(LIBM)
+diff -urNd -urNd libtool-1.5/tagdemo/configure.ac libtool-1.5.ac/tagdemo/configure.ac
+--- libtool-1.5/tagdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400
++++ libtool-1.5.ac/tagdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400
+@@ -24,6 +24,7 @@
+ ## ------------------------ ##
+ AC_INIT([tagdemo], [0.1], [bug-libtool@gnu.org])
+ AC_CONFIG_SRCDIR([foo.cpp])
++AC_CONFIG_AUX_DIR([..])
+
+ AC_CANONICAL_TARGET
+
diff --git a/packages/libtool/libtool-1.5.22/install-path-check.patch b/packages/libtool/libtool-1.5.22/install-path-check.patch
new file mode 100644
index 0000000000..46cc960986
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/install-path-check.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- libtool-1.5.6/ltmain.in~install-path-check 2004-05-14 22:56:19.000000000 -0500
++++ libtool-1.5.6/ltmain.in 2004-05-14 22:57:48.000000000 -0500
+@@ -5503,10 +5503,13 @@
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+- if test "$inst_prefix_dir" = "$destdir"; then
+- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+- exit $EXIT_FAILURE
+- fi
++ #
++ # This breaks install into our staging area. -PB
++ #
++ # if test "$inst_prefix_dir" = "$destdir"; then
++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++ # exit $EXIT_FAILURE
++ # fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
diff --git a/packages/libtool/libtool-1.5.22/libdir-la.patch b/packages/libtool/libtool-1.5.22/libdir-la.patch
new file mode 100644
index 0000000000..47aae4c7af
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/libdir-la.patch
@@ -0,0 +1,52 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- libtool-1.5.6/ltmain.in~libdir-la 2004-04-01 21:46:15.000000000 -0600
++++ libtool-1.5.6/ltmain.in 2004-05-14 22:53:51.000000000 -0500
+@@ -2147,8 +2147,14 @@
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+- dir="$libdir"
+- absdir="$libdir"
++ # Adding 'libdir' from the .la file to our library search paths
++ # breaks crosscompilation horribly. We cheat here and don't add
++ # it, instead adding the path where we found the .la. -CL
++ dir="$abs_ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ #dir="$libdir"
++ #absdir="$libdir"
+ fi
+ else
+ dir="$ladir/$objdir"
+@@ -2615,6 +2621,16 @@
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
++# This interferes with crosscompilation. -CL
++# else
++# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++# if test -z "$libdir"; then
++# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++# exit 1
++# fi
++# if test "$absdir" != "$libdir"; then
++# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++# fi
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+@@ -5165,6 +5181,10 @@
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
++ # Replacing uninstalled with installed can easily break crosscompilation,
++ # since the installed path is generally the wrong architecture. -CL
++ newdependency_libs="$newdependency_libs $deplib"
++ continue
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
diff --git a/packages/libtool/libtool-1.5.22/prefix.patch b/packages/libtool/libtool-1.5.22/prefix.patch
new file mode 100644
index 0000000000..5e7d9ba51d
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/prefix.patch
@@ -0,0 +1,44 @@
+diff -aur libtool-1.5.22.orig/libtool.m4 libtool-1.5.22/libtool.m4
+--- libtool-1.5.22.orig/libtool.m4 2005-12-18 16:53:17.000000000 -0500
++++ libtool-1.5.22/libtool.m4 2007-05-05 15:47:41.000000000 -0400
+@@ -67,7 +67,8 @@
+ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/$host_alias-libtool"
+ AC_SUBST(LIBTOOL)dnl
+
+ # Prevent multiple expansion
+@@ -134,7 +135,7 @@
+ rm="rm -f"
+
+ # Global variables:
+-default_ofile=libtool
++default_ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+Only in libtool-1.5.22: libtool.m4.orig
+diff -aur libtool-1.5.22.orig/Makefile.am libtool-1.5.22/Makefile.am
+--- libtool-1.5.22.orig/Makefile.am 2005-08-12 13:21:09.000000000 -0400
++++ libtool-1.5.22/Makefile.am 2007-05-05 15:49:25.000000000 -0400
+@@ -30,7 +30,7 @@
+ aclocal_DATA = $(aclocal_macros)
+
+ # The standalone libtool script, and the libtool distributor.
+-bin_SCRIPTS = libtool libtoolize
++bin_SCRIPTS = $(host_alias)-libtool libtoolize
+
+ ## These are installed as a subdirectory of pkgdatadir so that
+ ## libtoolize --ltdl can find them later:
+@@ -55,7 +55,7 @@
+ libltdl/configure \
+ libltdl/config-h.in
+
+-libtool: $(srcdir)/ltmain.sh $(top_builddir)/configure.ac
++$(host_alias)-libtool: $(srcdir)/ltmain.sh $(top_builddir)/configure.ac
+ $(SHELL) $(top_builddir)/config.status --recheck
+ chmod +x $@
+
diff --git a/packages/libtool/libtool-1.5.22/sedvar.patch b/packages/libtool/libtool-1.5.22/sedvar.patch
new file mode 100644
index 0000000000..d505edae24
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/sedvar.patch
@@ -0,0 +1,16 @@
+
+#
+# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- libtool-1.5/ltmain.in~sedvar 2003-04-14 16:58:24.000000000 -0500
++++ libtool-1.5/ltmain.in 2003-09-24 14:18:50.175518400 -0500
+@@ -48,6 +48,8 @@
+ exit 0
+ fi
+
++[ -z "${SED}" ] && SED=sed
++
+ # The name of this program.
+ progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+ modename="$progname"
diff --git a/packages/libtool/libtool-1.5.22/tag.patch b/packages/libtool/libtool-1.5.22/tag.patch
new file mode 100644
index 0000000000..8921a3efb7
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/tag.patch
@@ -0,0 +1,19 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- libtool-1.5.6/ltmain.in~tag 2004-05-15 05:14:32.000000000 -0400
++++ libtool-1.5.6/ltmain.in 2004-05-15 05:18:01.000000000 -0400
+@@ -226,8 +226,9 @@
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+- $echo "$modename: specify a tag with \`--tag'" 1>&2
+- exit $EXIT_FAILURE
++ $echo "$modename: defaulting to \`CC'"
++ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
++# exit $EXIT_FAILURE
+ # else
+ # $echo "$modename: using $tagname tagged configuration"
+ fi
diff --git a/packages/libtool/libtool-1.5.22/tag1.patch b/packages/libtool/libtool-1.5.22/tag1.patch
new file mode 100644
index 0000000000..6fefd6266d
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/tag1.patch
@@ -0,0 +1,13 @@
+Index: libtool-1.5.10/libltdl/ltmain.sh
+===================================================================
+--- libtool-1.5.10.orig/libltdl/ltmain.sh 2004-09-19 13:34:44.000000000 +0100
++++ libtool-1.5.10/libltdl/ltmain.sh 2006-05-25 15:28:39.000000000 +0100
+@@ -232,7 +232,7 @@
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+ $echo "$modename: specify a tag with \`--tag'" 1>&2
+- exit $EXIT_FAILURE
++# exit $EXIT_FAILURE
+ # else
+ # $echo "$modename: using $tagname tagged configuration"
+ fi
diff --git a/packages/libtool/libtool-1.5.22/uclibc.patch b/packages/libtool/libtool-1.5.22/uclibc.patch
new file mode 100644
index 0000000000..2c8cbabbb3
--- /dev/null
+++ b/packages/libtool/libtool-1.5.22/uclibc.patch
@@ -0,0 +1,19 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- libtool-1.5.8/libtool.m4~uclibc
++++ libtool-1.5.8/libtool.m4
+@@ -2221,6 +2221,11 @@
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
++linux-uclibc*)
++ lt_cv_deplibs_check_method=pass_all
++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
++ ;;
++
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
diff --git a/packages/libtool/libtool-cross_1.5.22.bb b/packages/libtool/libtool-cross_1.5.22.bb
new file mode 100644
index 0000000000..2188963495
--- /dev/null
+++ b/packages/libtool/libtool-cross_1.5.22.bb
@@ -0,0 +1,30 @@
+DEFAULT_PREFERENCE = "-1"
+
+SECTION = "devel"
+require libtool_${PV}.bb
+
+PR = "r0"
+PACKAGES = ""
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
+SRC_URI_append = " file://libdir-la.patch;patch=1 \
+ file://prefix.patch;patch=1 \
+ file://tag.patch;patch=1 \
+ file://tag1.patch;patch=1 \
+ file://install-path-check.patch;patch=1"
+S = "${WORKDIR}/libtool-${PV}"
+
+prefix = "${STAGING_DIR}"
+exec_prefix = "${prefix}/${BUILD_SYS}"
+bindir = "${STAGING_BINDIR_NATIVE}"
+
+do_compile () {
+ :
+}
+
+do_stage () {
+ install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
+}
+
+do_install () {
+ :
+}
diff --git a/packages/libtool/libtool-native_1.5.22.bb b/packages/libtool/libtool-native_1.5.22.bb
new file mode 100644
index 0000000000..35d7f40b09
--- /dev/null
+++ b/packages/libtool/libtool-native_1.5.22.bb
@@ -0,0 +1,44 @@
+DEFAULT_PREFERENCE = "-1"
+
+SECTION = "devel"
+require libtool_${PV}.bb
+
+PR = "r0"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
+SRC_URI_append = " file://libdir-la.patch;patch=1 \
+ file://prefix.patch;patch=1 \
+ file://tag.patch;patch=1 \
+ file://tag1.patch;patch=1 \
+ file://install-path-check.patch;patch=1"
+S = "${WORKDIR}/libtool-${PV}"
+
+STAGING_DATADIR_safe := "${STAGING_DATADIR}"
+
+inherit native
+
+do_stage () {
+ install -m 0755 ${HOST_SYS}-libtool ${STAGING_BINDIR}/${HOST_SYS}-libtool
+ install -m 0755 libtoolize ${STAGING_BINDIR}/libtoolize
+ oe_libinstall -a -so -C libltdl libltdl ${STAGING_LIBDIR}
+ install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/
+ for dir in ${STAGING_DATADIR} ${STAGING_DATADIR_safe}; do
+ ltdldir="${dir}/libtool/libltdl"
+ install -d $dir/libtool \
+ $ltdldir \
+ $dir/aclocal
+ install -c config.guess $dir/libtool/config.guess
+ install -c config.sub $dir/libtool/config.sub
+ install -c -m 0644 ltmain.sh $dir/libtool/
+ install -c -m 0644 libtool.m4 $dir/aclocal/
+ install -c -m 0644 ltdl.m4 $dir/aclocal/
+
+ for src in README COPYING.LIB Makefile.am configure.ac \
+ config-h.in ltdl.c ltdl.h; do
+ install -m 0644 libltdl/${src} ${ltdldir}
+ done
+ done
+}
+
+do_install () {
+ :
+}
diff --git a/packages/libtool/libtool_1.5.22.bb b/packages/libtool/libtool_1.5.22.bb
new file mode 100644
index 0000000000..d470d30cda
--- /dev/null
+++ b/packages/libtool/libtool_1.5.22.bb
@@ -0,0 +1,37 @@
+DEFAULT_PREFERENCE = "-1"
+
+DESCRIPTION = "Generic library support script \
+This is GNU libtool, a generic library support script. Libtool hides \
+the complexity of generating special library types (such as shared \
+libraries) behind a consistent interface."
+HOMEPAGE = "http://www.gnu.org/software/libtool/libtool.html"
+LICENSE = "GPL"
+SECTION = "devel"
+PR = "r1"
+
+SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
+ file://autotools.patch;patch=1 \
+ file://uclibc.patch;patch=1"
+# file://3figures.patch;patch=1"
+S = "${WORKDIR}/libtool-${PV}"
+
+PACKAGES = "libltdl libltdl-dev ${PN}"
+FILES_${PN} += "${datadir}/aclocal*"
+FILES_libltdl = "${libdir}/libltdl.so.*"
+FILES_libltdl-dev = "${libdir}/libltdl.* ${includedir}/ltdl.h"
+
+inherit autotools
+
+EXTRA_AUTORECONF = "--exclude=libtoolize"
+
+do_configure () {
+ find ${S} -name acinclude.m4 | for m4 in `cat`; do
+ cat ${S}/libtool.m4 ${S}/ltdl.m4 > $m4
+ done
+ autotools_do_configure
+}
+
+do_stage () {
+ oe_libinstall -a -so -C libltdl libltdl ${STAGING_LIBDIR}
+ install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/
+}
diff --git a/packages/linux/linux-ezx-2.6.21/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/ezx-core.patch
index f62d89a408..8e89afff53 100644
--- a/packages/linux/linux-ezx-2.6.21/ezx-core.patch
+++ b/packages/linux/linux-ezx-2.6.21/ezx-core.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-05-01 14:00:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-05-01 14:00:48.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-05-03 17:42:02.000000000 -0300
@@ -53,3 +53,6 @@
str r1, [r0, #0x18]
#endif
@@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
+#endif
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-01 14:00:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-01 23:02:56.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-04 04:17:33.000000000 -0300
@@ -37,6 +37,10 @@
bool "Keith und Koep Trizeps4 DIMM-Module"
select PXA27x
@@ -60,8 +60,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
endif
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-01 14:00:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-01 23:03:58.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-04 04:17:42.000000000 -0300
@@ -18,6 +18,7 @@
obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
@@ -73,7 +73,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-01 23:03:58.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-04 04:17:42.000000000 -0300
@@ -0,0 +1,378 @@
+/*
+ * linux/arch/arm/mach-ezx/a780.c
@@ -456,7 +456,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-05-01 14:00:48.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-05-03 17:42:02.000000000 -0300
@@ -0,0 +1,225 @@
+/*
+ * linux/include/asm-arm/arch-pxa/ezx.h
@@ -685,8 +685,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
+
Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-01 14:00:24.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-01 23:02:53.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-04 04:17:32.000000000 -0300
@@ -849,6 +849,8 @@
#define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */
#define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */
@@ -802,8 +802,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */
Index: linux-2.6.21/arch/arm/boot/compressed/head.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-05-01 14:00:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-05-01 14:00:48.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-05-03 17:42:02.000000000 -0300
@@ -117,6 +117,9 @@
mov r0, r0
.endr
@@ -816,8 +816,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S
.word start @ absolute load/run zImage address
Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-05-01 14:00:24.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-05-01 14:00:48.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-05-03 17:42:02.000000000 -0300
@@ -14,14 +14,14 @@
#define STUART ((volatile unsigned long *)0x40700000)
#define HWUART ((volatile unsigned long *)0x41600000)
@@ -839,7 +839,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
Index: linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c 2007-05-01 14:00:48.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c 2007-05-03 17:42:02.000000000 -0300
@@ -0,0 +1,126 @@
+/*
+ * SSP control code for Motorola EZX phones
@@ -970,7 +970,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.h 2007-05-01 14:00:48.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.h 2007-05-03 17:42:02.000000000 -0300
@@ -0,0 +1,9 @@
+#include <asm/arch/ezx.h>
+
@@ -984,7 +984,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.h
Index: linux-2.6.21/arch/arm/mach-pxa/ezx_lcd.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx_lcd.c 2007-05-01 22:53:54.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx_lcd.c 2007-05-03 17:42:02.000000000 -0300
@@ -0,0 +1,113 @@
+/*
+ * linux/arch/arm/mach-ezx/a780.c
@@ -1101,13 +1101,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx_lcd.c
+arch_initcall(__ezx_lcd_init);
Index: linux-2.6.21/arch/arm/mm/init.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-05-01 14:00:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/mm/init.c 2007-05-01 14:00:48.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-05-03 17:41:57.000000000 -0300
++++ linux-2.6.21/arch/arm/mm/init.c 2007-05-04 03:48:30.000000000 -0300
@@ -241,6 +241,10 @@
*/
reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
boot_pages << PAGE_SHIFT);
-+#ifdef CONFIG_ARCH_EZX
++#ifdef CONFIG_PXA_EZX
+ /* reserve the first page memory for exiting sleep and user off */
+ reserve_bootmem_node(pgdat, PHYS_OFFSET, PAGE_SIZE);
+#endif
diff --git a/packages/linux/linux-ezx-2.6.21/ezx-emu.patch b/packages/linux/linux-ezx-2.6.21/ezx-emu.patch
index 95fdd96fc1..91d99ee17b 100644
--- a/packages/linux/linux-ezx-2.6.21/ezx-emu.patch
+++ b/packages/linux/linux-ezx-2.6.21/ezx-emu.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-05-01 03:58:42.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-05-02 23:30:15.000000000 -0300
@@ -0,0 +1,215 @@
+/*
+ * EMU Driver for Motorola EZX phones
@@ -151,7 +151,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+ return 0;
+}
+
-+static int ezx_emu_suspend(struct platform_device *dev)
++static int ezx_emu_suspend(struct platform_device *dev, pm_message_t state)
+{
+ emu_switch_to_nothing();
+ return 0;
@@ -220,8 +220,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-01 01:39:12.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-01 02:07:23.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-02 21:31:22.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-02 23:26:53.000000000 -0300
@@ -94,6 +94,27 @@
endchoice
@@ -252,8 +252,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
endmenu
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-01 02:07:23.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-01 04:10:48.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-02 23:26:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-03 17:41:40.000000000 -0300
@@ -19,6 +19,7 @@
obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
obj-$(CONFIG_MACH_TOSA) += tosa.o
@@ -264,8 +264,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
led-y := leds.o
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-01 02:07:23.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-01 02:07:23.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-02 23:26:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-03 17:25:08.000000000 -0300
@@ -35,6 +35,7 @@
#include <asm/arch/ohci.h>
#include <asm/arch/pxa-regs.h>
diff --git a/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch b/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch
index de64d722e9..a077ad5ffb 100644
--- a/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch
+++ b/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-05-01 14:00:50.000000000 -0300
-@@ -0,0 +1,411 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-05-04 03:07:37.000000000 -0300
+@@ -0,0 +1,425 @@
+/* Driver for Motorola PCAP2 as present in EZX phones
+ *
+ * This is both a SPI device driver for PCAP itself, as well as
@@ -51,7 +51,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ ezx_ssp_pcap_putget(value);
+ local_irq_enable();
+
-+ DEBUGP("pcap write r%x: 0x%08x\n", reg_num, value);
++// DEBUGP("pcap write r%x: 0x%08x\n", reg_num, value);
+ return 0;
+}
+EXPORT_SYMBOL_GPL(ezx_pcap_write);
@@ -65,7 +65,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ *value = ezx_ssp_pcap_putget(frame);
+ local_irq_enable();
+
-+ DEBUGP("pcap read r%x: 0x%08x\n", reg_num, *value);
++// DEBUGP("pcap read r%x: 0x%08x\n", reg_num, *value);
+ return 0;
+}
+EXPORT_SYMBOL_GPL(ezx_pcap_read);
@@ -121,12 +121,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ /* FIXME: this should be board-level, not chip-level */
+ /* implement a per board pcap init reg array? */
+
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB4VI, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB4VM, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB1VI, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB1VM, 0);
++// ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB4VI, 1);
++// ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB4VM, 0);
++// ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB1VI, 1);
++// ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB1VM, 0);
+ // disable all interrupts
-+ //ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, 0x03ffffff);
++ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, PCAP_MASK_ALL_INTERRUPT);
++ // clear all interrupts
++ ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, PCAP_MASK_ALL_INTERRUPT);
+
+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL, 1);
+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3);
@@ -288,12 +290,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+{
+ int i;
+ const unsigned int cpu = smp_processor_id();
-+ u_int32_t reg;
-+
-+ DEBUGP("pcap_irq_demux_handler(%u,,) entered\n", irq);
++ u_int32_t reg, mask;
+
+ spin_lock(&desc->lock);
+
++ DEBUGP("pcap_irq_demux_handler(%u,,) entered\n", irq);
++
+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
+
+ if (unlikely(desc->status & IRQ_INPROGRESS)) {
@@ -305,6 +307,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ }
+
+ kstat_cpu(cpu).irqs[irq]++;
++ desc->chip->ack(irq);
+ desc->status |= IRQ_INPROGRESS;
+
+ do {
@@ -317,30 +320,27 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ }
+
+ desc->status &= ~IRQ_PENDING;
-+ spin_unlock(&desc->lock);
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_ISR_REGISTER, &reg);
-+ DEBUGP("pcap_irq_demux_handler: ISR=0x%08x\n", reg);
++ ezx_pcap_read(SSP_PCAP_ADJ_ISR_REGISTER, &reg);
++ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, &mask);
++ DEBUGP("pcap_irq_demux_handler: ISR=0x%08x MSR=0x%08x\n", reg, mask);
+
+ for (i = ARRAY_SIZE(pcap2irq)-1; i >= 0; i--) {
+ unsigned int pirq = pcap2irq[i];
+ if (pirq == 0)
+ continue;
+
-+ if (reg & (1 << i)) {
++ if ((reg & (1 << i)) && !(mask & (1 << i))) {
+ struct irq_desc *subdesc;
+ DEBUGP("found irq %u\n", pirq);
+ subdesc = irq_desc + pirq;
-+
-+ // acknowledge pcap irq
-+ // do just one pcap irq each time
+ subdesc->chip->ack(pirq);
-+ i = 0;
+
++ spin_unlock(&desc->lock);
+ handle_IRQ_event(pirq, subdesc->action);
++ spin_lock(&desc->lock);
+ }
+ }
-+ spin_lock(&desc->lock);
+
+ } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
+
@@ -387,9 +387,23 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ return 0;
+}
+
++static int ezx_pcap_suspend(struct platform_device *dev, pm_message_t state)
++{
++ DEBUGP("pcap suspend!\n");
++ return 0;
++}
++
++static int ezx_pcap_resume(struct platform_device *dev)
++{
++ DEBUGP("pcap resume!\n");
++ return 0;
++}
++
+static struct platform_driver ezxpcap_driver = {
+ .probe = ezx_pcap_probe,
+ .remove = ezx_pcap_remove,
++ .suspend = ezx_pcap_suspend,
++ .resume = ezx_pcap_resume,
+ .driver = {
+ .name = "ezx-pcap",
+ .owner = THIS_MODULE,
@@ -417,7 +431,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-05-01 14:00:50.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-05-03 17:43:48.000000000 -0300
@@ -0,0 +1,665 @@
+/* (c) Copyright Motorola Beijing 2002 all rights reserved.
+
@@ -1086,8 +1100,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h
+#endif
Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-05-01 14:00:24.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-05-01 14:00:50.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-05-03 17:41:55.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-05-03 17:43:48.000000000 -0300
@@ -176,7 +176,8 @@
#define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1)
#elif defined(CONFIG_ARCH_LUBBOCK) || \
@@ -1117,8 +1131,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h
+
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-01 14:00:48.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-01 14:00:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-03 17:42:02.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-04 04:17:33.000000000 -0300
@@ -18,7 +18,7 @@
obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
@@ -1130,8 +1144,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
led-y := leds.o
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-01 14:00:48.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-01 14:00:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-03 17:42:02.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-04 04:17:33.000000000 -0300
@@ -72,6 +72,24 @@
.clk_pcap = 1,
};
diff --git a/packages/linux/linux-ezx-2.6.21/ezx-pm.patch b/packages/linux/linux-ezx-2.6.21/ezx-pm.patch
index 2b498c8b8c..4ad66936c9 100644
--- a/packages/linux/linux-ezx-2.6.21/ezx-pm.patch
+++ b/packages/linux/linux-ezx-2.6.21/ezx-pm.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-04-26 00:08:32.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-04-30 18:29:49.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-05-03 17:41:39.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-05-03 17:43:42.000000000 -0300
@@ -22,6 +22,10 @@
#include <asm/arch/pxa-regs.h>
#include <asm/arch/ohci.h>
@@ -29,8 +29,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
}
Index: linux-2.6.21/arch/arm/mach-pxa/pm.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-04-26 00:08:32.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-04-30 18:29:49.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-05-03 17:41:39.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-05-04 03:51:15.000000000 -0300
@@ -24,6 +24,10 @@
#include <asm/arch/lubbock.h>
#include <asm/mach/time.h>
diff --git a/packages/linux/linux-ezx-2.6.21/pcap-ts.patch b/packages/linux/linux-ezx-2.6.21/pcap-ts.patch
new file mode 100644
index 0000000000..a07ec1abe9
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/pcap-ts.patch
@@ -0,0 +1,450 @@
+Index: linux-2.6.21/drivers/input/touchscreen/Kconfig
+===================================================================
+--- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-05-03 17:39:18.000000000 -0300
++++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-05-03 17:44:12.000000000 -0300
+@@ -164,4 +164,13 @@
+ To compile this driver as a module, choose M here: the
+ module will be called ucb1400_ts.
+
++config TOUCHSCREEN_PCAP
++ tristate "Motorola PCAP touchscreen"
++ depends on PXA_EZX
++ help
++ Say Y here if you have a Motorola EZX telephone and
++ want to support the built-in touchscreen.
++
++ If unsure, say N.
++
+ endif
+Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-05-04 04:17:22.000000000 -0300
+@@ -0,0 +1,372 @@
++/*
++ * pcap_ts.c - Touchscreen driver for Motorola PCAP2 based touchscreen as found
++ * in the EZX phone platform.
++ *
++ * Copyright (C) 2006 Harald Welte <laforge@openezx.org>
++ *
++ * Based on information found in the original Motorola 2.4.x ezx-ts.c driver.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * May 3, 2007 - Daniel Ribeiro <drwyrm@gmail.com>
++ * Major cleanup
++ * PM Callbacks
++ *
++ * TODO:
++ * split this in a hardirq handler and a tasklet/bh
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/fs.h>
++#include <linux/string.h>
++#include <linux/pm.h>
++#include <linux/timer.h>
++//#include <linux/config.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/input.h>
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/pxa-regs.h>
++#include <asm/arch/ezx-pcap.h>
++
++#if 0
++#define DEBUGP(x, args ...) printk(x, ## args)
++#else
++#define DEBUGP(x, args ...)
++#endif
++
++#define PRESSURE 1
++#define COORDINATE 2
++#define STANDBY 3
++
++struct pcap_ts {
++ int irq_xy;
++ int irq_touch;
++ struct input_dev *input;
++ struct timer_list timer;
++
++ u_int16_t x, y;
++ u_int16_t pressure;
++
++ u_int8_t read_state;
++};
++
++#define X_AXIS_MIN 0
++#define X_AXIS_MAX 1023
++
++#define Y_AXIS_MAX X_AXIS_MAX
++#define Y_AXIS_MIN X_AXIS_MIN
++
++#define PRESSURE_MAX X_AXIS_MAX
++#define PRESSURE_MIN X_AXIS_MIN
++
++/* if we try to read faster, pressure reading becomes unreliable */
++#define SAMPLE_INTERVAL (HZ/50)
++
++
++static void pcap_ts_mode(u_int32_t mode)
++{
++ u_int32_t tmp;
++
++ ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
++ tmp &= ~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK;
++ tmp |= mode;
++ ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++}
++
++/* issue a XY read command to the ADC of PCAP2. Well get an ADCDONE2 interrupt
++ * once the result of the conversion is available */
++static void pcap_ts_start_xy_read(struct pcap_ts *pcap_ts)
++{
++ u_int32_t tmp;
++
++ ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
++ tmp &= SSP_PCAP_ADC_START_VALUE_SET_MASK;
++ tmp |= SSP_PCAP_ADC_START_VALUE;
++ ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC2_ASC, 1);
++}
++
++/* read the XY result from the ADC of PCAP2 */
++static void pcap_ts_get_xy_value(struct pcap_ts *pcap_ts)
++{
++ u_int32_t tmp;
++
++ ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp);
++
++ if (pcap_ts->read_state == COORDINATE && !(tmp & 0x00400000)) {
++ pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK);
++ pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
++ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ } else {
++ pcap_ts->pressure = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
++ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ }
++
++}
++
++/* PCAP2 interrupts us when ADC conversion result is available */
++static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id)
++{
++ struct pcap_ts *pcap_ts = dev_id;
++
++ pcap_ts_get_xy_value(pcap_ts);
++ DEBUGP(KERN_DEBUG "%s X=%4d, Y=%4d Z=%4d ",
++ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS",
++ pcap_ts->x, pcap_ts->y, pcap_ts->pressure);
++
++ switch (pcap_ts->read_state) {
++ case PRESSURE:
++ if (pcap_ts->pressure >= PRESSURE_MAX ||
++ pcap_ts->pressure <= PRESSURE_MIN ) {
++ /* pen has been released (or cant read pressure - WM)*/
++ DEBUGP("UP\n");
++ /* do nothing */
++ } else {
++ /* pen has been touched down */
++ DEBUGP("DOWN\n");
++ input_report_key(pcap_ts->input, BTN_TOUCH, 1);
++ input_report_abs(pcap_ts->input, ABS_PRESSURE, pcap_ts->pressure);
++ }
++ /* switch state machine into coordinate read mode */
++ pcap_ts->read_state = COORDINATE;
++ pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT);
++ pcap_ts_start_xy_read(pcap_ts);
++ break;
++ case COORDINATE:
++ if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX ||
++ pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) {
++ /* pen has been released */
++ DEBUGP("UP END\n");
++
++ input_report_key(pcap_ts->input, BTN_TOUCH, 0);
++ input_report_abs(pcap_ts->input, ABS_PRESSURE, 0);
++
++ /* no need for timer, we'll get interrupted with
++ * next touch down event */
++ del_timer(&pcap_ts->timer);
++
++ /* ask PCAP2 to interrupt us if touch event happens
++ * again */
++ pcap_ts->read_state = STANDBY;
++ pcap_ts_mode(PCAP_TS_STANDBY_MODE);
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++ } else {
++ DEBUGP("DOWN\n");
++ input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x);
++ input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y);
++
++ /* switch back to pressure read mode */
++ pcap_ts->read_state = PRESSURE;
++ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT);
++ mod_timer(&pcap_ts->timer, jiffies + SAMPLE_INTERVAL);
++ }
++ input_sync(pcap_ts->input);
++ break;
++ default:
++ DEBUGP("ERROR\n");
++ break;
++ }
++
++ return IRQ_HANDLED;
++}
++
++/* PCAP2 interrupts us if the pen touches down (interrupts also on pen up - WM)*/
++static irqreturn_t pcap_ts_irq_touch(int irq, void *dev_id)
++{
++ struct pcap_ts *pcap_ts = dev_id;
++
++ /* mask Touchscreen interrupt bit, prevents further touch events
++ * from being reported to us until we're finished with reading
++ * both pressure and x/y from ADC */
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 1);
++
++ DEBUGP("touched!!\n");
++ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT);
++ pcap_ts->read_state = PRESSURE;
++ pcap_ts_start_xy_read(pcap_ts);
++
++ return IRQ_HANDLED;
++}
++
++static void pcap_ts_timer_fn(unsigned long data)
++{
++ struct pcap_ts *pcap_ts = (struct pcap_ts *) data;
++
++ pcap_ts_start_xy_read(pcap_ts);
++}
++
++static int __init ezxts_probe(struct platform_device *pdev)
++{
++ int ret;
++ u_int32_t tmp;
++ struct pcap_ts *pcap_ts;
++ struct input_dev *input_dev;
++ int err = -ENOMEM;
++
++ pcap_ts = kzalloc(sizeof(*pcap_ts), GFP_KERNEL);
++ input_dev = input_allocate_device();
++ if (!pcap_ts || !input_dev)
++ goto fail;
++
++ pcap_ts->irq_xy = platform_get_irq(pdev, 0);
++ if (pcap_ts->irq_xy < 0) {
++ err = pcap_ts->irq_xy;
++ goto fail;
++ }
++
++ pcap_ts->irq_touch = platform_get_irq(pdev, 1);
++ if (pcap_ts->irq_touch < 0) {
++ err = pcap_ts->irq_touch;
++ goto fail;
++ }
++
++ // Some initialization before done in ssp_pcap_open()
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_TS_REFENB, 0);
++ // ack interrupts
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I, 1);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_TSI, 1);
++ // unmask interrupts
++ // ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_ADCDONE2M, 0);
++ // set adc bits? FIXME I dont think its necessary - WM
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC1, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC2, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO0, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO1, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO2, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO3, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATOX, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR1, 0);
++ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR2, 0);
++
++ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
++ if (ret < 0)
++ return ret;
++
++ tmp &= (~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK);
++ tmp |= PCAP_TS_STANDBY_MODE;
++
++ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++ if (ret < 0)
++ return ret;
++
++ err = request_irq(pcap_ts->irq_xy, pcap_ts_irq_xy, SA_INTERRUPT,
++ "PCAP Touchscreen XY", pcap_ts);
++ if (err < 0) {
++ printk(KERN_ERR "pcap_ts: can't grab xy irq %d: %d\n",
++ pcap_ts->irq_xy, err);
++ goto fail;
++ }
++
++ err = request_irq(pcap_ts->irq_touch, pcap_ts_irq_touch, SA_INTERRUPT,
++ "PCAP Touchscreen Touch", pcap_ts);
++ if (err < 0) {
++ printk(KERN_ERR "pcap_ts: can't grab touch irq %d: %d\n",
++ pcap_ts->irq_touch, err);
++ goto fail_xy;
++ }
++
++ pcap_ts->input = input_dev;
++ init_timer(&pcap_ts->timer);
++ pcap_ts->timer.data = (unsigned long) pcap_ts;
++ pcap_ts->timer.function = &pcap_ts_timer_fn;
++
++ platform_set_drvdata(pdev, pcap_ts);
++
++ pcap_ts->read_state = STANDBY;
++ pcap_ts_mode(PCAP_TS_STANDBY_MODE);
++
++ /* enable pressure interrupt */
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++
++ input_dev->name = "EZX PCAP2 Touchscreen";
++ input_dev->phys = "ezxts/input0";
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x0001;
++ input_dev->id.product = 0x0002;
++ input_dev->id.version = 0x0100;
++ input_dev->cdev.dev = &pdev->dev;
++ input_dev->private = pcap_ts;
++
++ input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
++ input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
++ input_set_abs_params(input_dev, ABS_X, X_AXIS_MIN, X_AXIS_MAX, 0, 0);
++ input_set_abs_params(input_dev, ABS_Y, Y_AXIS_MIN, Y_AXIS_MAX, 0, 0);
++ input_set_abs_params(input_dev, ABS_PRESSURE, PRESSURE_MIN,
++ PRESSURE_MAX, 0, 0);
++
++ input_register_device(pcap_ts->input);
++
++ return 0;
++
++fail_xy:
++ free_irq(pcap_ts->irq_xy, pcap_ts);
++fail:
++ input_free_device(input_dev);
++ kfree(pcap_ts);
++
++ return err;
++}
++
++static int ezxts_remove(struct platform_device *pdev)
++{
++ struct pcap_ts *pcap_ts = platform_get_drvdata(pdev);
++
++ del_timer_sync(&pcap_ts->timer);
++
++ free_irq(pcap_ts->irq_touch, pcap_ts);
++ free_irq(pcap_ts->irq_xy, pcap_ts);
++
++ input_unregister_device(pcap_ts->input);
++ kfree(pcap_ts);
++
++ return 0;
++}
++
++static int ezxts_suspend(struct platform_device *dev, pm_message_t state)
++{
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR, 1);
++ return 0;
++}
++
++static int ezxts_resume(struct platform_device *dev)
++{
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR, 0);
++ /* just in case we suspend with TSI masked. */
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++ return 0;
++}
++
++
++static struct platform_driver ezxts_driver = {
++ .probe = ezxts_probe,
++ .remove = ezxts_remove,
++ .suspend = ezxts_suspend,
++ .resume = ezxts_resume,
++ .driver = {
++ .name = "pcap-ts",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init ezxts_init(void)
++{
++ return platform_driver_register(&ezxts_driver);
++}
++
++static void __exit ezxts_exit(void)
++{
++ platform_driver_unregister(&ezxts_driver);
++}
++
++module_init(ezxts_init);
++module_exit(ezxts_exit);
++
++MODULE_DESCRIPTION("Motorola PCAP2 touchscreen driver");
++MODULE_AUTHOR("Harald Welte <laforge@openezx.org>");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-03 19:09:25.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-03 19:15:57.000000000 -0300
+@@ -116,8 +116,32 @@
+ .resource = ezxemu_resources,
+ };
+
+-/* OHCI Controller */
++/* PCAP_TS */
++struct resource pcap_ts_resources[] = {
++ [0] = {
++ .start = EZX_IRQ_ADCDONE2,
++ .end = EZX_IRQ_ADCDONE2,
++ .flags = IORESOURCE_IRQ,
++ },
++ [1] = {
++ .start = EZX_IRQ_TS,
++ .end = EZX_IRQ_TS,
++ .flags = IORESOURCE_IRQ,
++ }
++};
+
++struct platform_device pcap_ts_device = {
++ .name = "pcap-ts",
++ .id = -1,
++ .dev = {
++ .parent = &ezxpcap_device.dev,
++ },
++ .num_resources = ARRAY_SIZE(pcap_ts_resources),
++ .resource = pcap_ts_resources,
++};
++
++
++/* OHCI Controller */
+ static int ezx_ohci_init(struct device *dev)
+ {
+ /* for A780 support (connected with Neptune) */
+@@ -342,6 +366,7 @@
+ &ezxpcap_device,
+ &ezxbp_device,
+ &ezxemu_device,
++ &pcap_ts_device,
+ };
+
+ static void __init a780_init(void)
+Index: linux-2.6.21/drivers/input/touchscreen/Makefile
+===================================================================
+--- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-05-03 18:50:12.000000000 -0300
++++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-05-03 18:50:59.000000000 -0300
+@@ -16,3 +16,4 @@
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
+ obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
++obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o
diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb
index 28be2b8d17..35dc2dff5d 100644
--- a/packages/linux/linux-ezx_2.6.21.bb
+++ b/packages/linux/linux-ezx_2.6.21.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://www.openezx.org"
LICENSE = "GPL"
DEPENDS += "quilt-native"
EZX = "ezx0"
-PR = "${EZX}-r3"
+PR = "${EZX}-r4"
inherit kernel
@@ -18,6 +18,7 @@ RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
SRC_URI = " \
${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://ezx-core.patch;patch=1 \
+ file://ezx-pm.patch;patch=1 \
file://ezx-pcap.patch;patch=1 \
file://ezx-mci.patch;patch=1 \
file://pxa27x-udc-support.2.patch;patch=1 \
@@ -26,7 +27,7 @@ SRC_URI = " \
file://ezx-serial-bug-workaround.patch;patch=1 \
file://pxa-kbd.patch;patch=1 \
file://ezx-kbd.patch;patch=1 \
- file://ezx-pm.patch;patch=1 \
+ file://pcap-ts.patch;patch=1 \
file://mux_cli.patch;patch=1 \
file://mux-fix.patch;patch=1 \
file://mux-fix-init-errorpath.patch;patch=1 \
@@ -38,9 +39,6 @@ SRC_URI = " \
file://mux-linux-2.6.21-fix.patch;patch=1 \
file://mux-ifdef-ezx-features.patch;patch=1 \
file://mux_debug.patch;patch=1 \
- file://ezx-ts.patch;patch=1 \
- file://pcap_ts.c.patch;patch=1 \
- file://touchscreen-fix-r0.patch;patch=1 \
file://logo_linux_clut224.ppm \
file://defconfig-a780 \
file://defconfig-e680 \
diff --git a/packages/opie-init/opie-init/opie b/packages/opie-init/opie-init/opie
index 8f08732797..63eeb7b47d 100755
--- a/packages/opie-init/opie-init/opie
+++ b/packages/opie-init/opie-init/opie
@@ -64,17 +64,26 @@ case $1 in
fi
echo Starting Opie....
$SSHAGENT $OPIEDIR/bin/qpe -terminal 3
- sleep 1
- $OPIEDIR/bin/qss </dev/null >/var/log/opie-qss.log 2>&1 &
+ echo -n >/var/log/opie-qss.log
+ test -x $OPIEDIR/bin/qpe && { for attempt in 0 1 2 3 4 5 6 7 8 9 a b c d e f ; do
+ sleep 1
+ echo "Waiting for qcop to startup: $attempt ..." >>/var/log/opie-qss.log
+ $OPIEDIR/bin/qcop QPE/System 'ping()' || continue
+ echo "Starting qss" >>/var/log/opie-qss.log
+ $OPIEDIR/bin/qss </dev/null >>/var/log/opie-qss.log 2>&1
+ echo "qss exited, will try to restart" >>/var/log/opie-qss.log
+ done; } &
fi
;;
'stop')
echo "Stopping Opie..."
+ killall qss 2>/dev/null
killall qpe 2>/dev/null
killall opie-login 2>/dev/null
killall quicklauncher 2>/dev/null
+ true
;;
diff --git a/packages/opie-init/opie-init_1.2.2.bb b/packages/opie-init/opie-init_1.2.2.bb
index 47cca4f066..bc1a4bc4e6 100644
--- a/packages/opie-init/opie-init_1.2.2.bb
+++ b/packages/opie-init/opie-init_1.2.2.bb
@@ -1,5 +1,5 @@
require ${PN}.inc
-PR = "r1"
+PR = "r2"
SRC_URI = "file://opie-reorgfiles \
file://opie \
diff --git a/packages/prismstumbler/prismstumbler-0.7.3/wireless.patch b/packages/prismstumbler/prismstumbler-0.7.3/wireless.patch
new file mode 100644
index 0000000000..729a88d0c3
--- /dev/null
+++ b/packages/prismstumbler/prismstumbler-0.7.3/wireless.patch
@@ -0,0 +1,21 @@
+--- prismstumbler-0.7.3/src/iface-wlan-14.c.orig 2007-04-30 22:22:11.000000000 +0200
++++ prismstumbler-0.7.3/src/iface-wlan-14.c 2007-04-30 22:22:40.000000000 +0200
+@@ -26,6 +26,7 @@
+ #include <string.h>
+ #include <errno.h>
+
++#include <net/if.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+ #include <linux/types.h> /* for "__kernel_caddr_t" et al */
+--- prismstumbler-0.7.3/src/cards.c.orig 2007-04-30 22:23:06.000000000 +0200
++++ prismstumbler-0.7.3/src/cards.c 2007-04-30 22:23:33.000000000 +0200
+@@ -9,6 +9,8 @@
+
+ #include <stdio.h>
+ #include <sys/socket.h>
++#include <linux/types.h>
++#include <net/if.h>
+ #include <linux/wireless.h>
+ #include <glib.h>
+ #include <string.h>
diff --git a/packages/prismstumbler/prismstumbler_0.7.3.bb b/packages/prismstumbler/prismstumbler_0.7.3.bb
index bf38d10ca1..c0bfdcc5be 100644
--- a/packages/prismstumbler/prismstumbler_0.7.3.bb
+++ b/packages/prismstumbler/prismstumbler_0.7.3.bb
@@ -10,7 +10,8 @@ RDEPENDS = "wireless-tools"
SRC_URI = "${SOURCEFORGE_MIRROR}/prismstumbler/${PN}-${PV}.tar.bz2 \
file://bogoconf.patch;patch=1 \
file://crosscompile.patch;patch=1 \
- file://libz.patch;patch=1;pnum=0"
+ file://libz.patch;patch=1;pnum=0 \
+ file://wireless.patch;patch=1"
inherit autotools pkgconfig
@@ -19,7 +20,8 @@ EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \
--with-libpcap=${STAGING_DIR}/${HOST_SYS} \
--with-sqlite-includes=${STAGING_INCDIR} \
--with-sqlite-libs=${STAGING_LIBDIR} \
- --without-athena"
+ --without-athena \
+ --without-motif"
CFLAGS =+ "-I${S}/include -D_GNU_SOURCE"
diff --git a/packages/sword/sword-1.5.9/.mtn2git_empty b/packages/sword/sword-1.5.9/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/sword/sword-1.5.9/.mtn2git_empty
diff --git a/packages/sword/sword-1.5.9/gcc-visibility.patch b/packages/sword/sword-1.5.9/gcc-visibility.patch
new file mode 100644
index 0000000000..f23a66767f
--- /dev/null
+++ b/packages/sword/sword-1.5.9/gcc-visibility.patch
@@ -0,0 +1,26 @@
+diff --git a/include/rawtext.h b/include/rawtext.h
+index 32986fe..1304bf7 100644
+--- a/include/rawtext.h
++++ b/include/rawtext.h
+@@ -43,7 +43,7 @@ public:
+ virtual ~RawText();
+ virtual SWBuf &getRawEntryBuf();
+ virtual void increment(int steps = 1);
+- virtual void decrement(int steps = 1) { increment(-steps); }
++ virtual __attribute__((visibility("default"))) void decrement(int steps = 1) { increment(-steps); }
+ virtual signed char createSearchFramework(
+ void (*percent) (char, void *) = &nullPercent,
+ void *percentUserData = 0);
+diff --git a/include/versekey.h b/include/versekey.h
+index 0ca5e47..53084d9 100644
+--- a/include/versekey.h
++++ b/include/versekey.h
+@@ -253,7 +253,7 @@ public:
+ */
+ virtual const char *getText() const;
+ virtual const char *getShortText() const;
+- virtual void setText(const char *ikey) { SWKey::setText(ikey); parse (); }
++ virtual __attribute__((visibility("default"))) void setText(const char *ikey) { SWKey::setText(ikey); parse (); }
+ virtual void copyFrom(const SWKey &ikey);
+
+ /** Equates this VerseKey to another VerseKey
diff --git a/packages/sword/sword_1.5.9.bb b/packages/sword/sword_1.5.9.bb
index 362b75e57c..2c180ac7e3 100644
--- a/packages/sword/sword_1.5.9.bb
+++ b/packages/sword/sword_1.5.9.bb
@@ -7,7 +7,8 @@ PRIORITY = "optional"
LICENSE = "GPL"
PR = "r0"
-SRC_URI = "http://www.crosswire.org/ftpmirror/pub/sword/source/v1.5/sword-${PV}.tar.gz"
+SRC_URI = "http://www.crosswire.org/ftpmirror/pub/sword/source/v1.5/sword-${PV}.tar.gz \
+ file://gcc-visibility.patch;patch=1"
inherit autotools pkgconfig
diff --git a/packages/tracker/tracker_0.5.4.bb b/packages/tracker/tracker_0.5.4.bb
index eaf8c3f566..d10a2a646b 100644
--- a/packages/tracker/tracker_0.5.4.bb
+++ b/packages/tracker/tracker_0.5.4.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly."
LICENSE = "GPLv2"
-DEPENDS = "gtk+ gstreamer gamin libgmime dbus poppler libexif libgsf"
+DEPENDS = "file gtk+ gstreamer gamin libgmime dbus poppler libexif libgsf"
SRC_URI = "http://www.gnome.org/~jamiemcc/tracker/tracker-${PV}.tar.gz \
file://no-ioprio.patch;patch=1"