summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorStefan Schmidt <stefan@datenfreihafen.org>2008-10-19 00:43:17 +0200
committerStefan Schmidt <stefan@datenfreihafen.org>2008-10-19 00:43:17 +0200
commit14bf8220ea36950431c7d521a9ab47dace33ba9d (patch)
tree04a23c0f7bbea0d4142747143f355e256aaa1055 /packages
parent310ccc10715067a20f96c87c4e78553193060c90 (diff)
parentf5908addf3671abab19e1e43763b3b0ca60a451b (diff)
Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into org.openembedded.dev
Diffstat (limited to 'packages')
-rw-r--r--packages/base-files/base-files/collie/fstab13
-rw-r--r--packages/base-files/base-files_3.0.14.bb2
-rw-r--r--packages/boost/boost-36.inc101
-rw-r--r--packages/boost/boost_1.36.0.bb2
-rw-r--r--packages/duke3d/duke3d_svn.bb2
-rw-r--r--packages/freesmartphone/frameworkd_git.bb20
-rw-r--r--packages/gcc/gcc-4.1.1.inc1
-rw-r--r--packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch18
-rw-r--r--packages/gcc/gcc-configure-common.inc9
-rw-r--r--packages/gcc/gcc-cross-kernel.inc7
-rw-r--r--packages/gettext/gettext-0.17/use_open_properly.patch15
-rw-r--r--packages/gettext/gettext-native_0.17.bb2
-rw-r--r--packages/gettext/gettext_0.17.bb3
-rw-r--r--packages/kexecboot/linux-kexecboot-2.6.26/collie.patch883
-rw-r--r--packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig13
-rw-r--r--packages/kexecboot/linux-kexecboot_2.6.26.bb2
-rw-r--r--packages/libsdl/files/fixmfour.patch14
-rw-r--r--packages/libsdl/libsdl-image_1.2.6.bb4
-rw-r--r--packages/libsdl/libsdl-x11_1.2.11.bb3
-rw-r--r--packages/linux/linux-openmoko_2.6.24+git.bb2
-rw-r--r--packages/linux/linux-rp-2.6.26/collie-ucbfix.patch28
-rw-r--r--packages/linux/linux-rp-2.6.26/collie.patch883
-rw-r--r--packages/linux/linux-rp-2.6.26/defconfig-collie63
-rw-r--r--packages/linux/linux-rp_2.6.26.bb3
-rw-r--r--packages/lirc/lirc_0.8.1+cvs20070307.bb4
-rw-r--r--packages/meta/slugos-packages.bb4
-rwxr-xr-xpackages/pointercal/files/collie/pointercal1
-rw-r--r--packages/pointercal/pointercal_0.0.bb2
-rw-r--r--packages/tasks/task-fso-compliance.bb16
-rw-r--r--packages/tasks/task-x11-illume.bb2
-rw-r--r--packages/tasks/task-x11.bb2
-rw-r--r--packages/tasks/task-xfce-base.bb29
-rw-r--r--packages/telepathy/libtelepathy_0.3.3.bb2
-rw-r--r--packages/uclibc/bfin-uclibc_svn.bb2
-rw-r--r--packages/uclibc/uclibc.inc5
-rw-r--r--packages/uclibc/uclibc_0.9.26.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.27.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.28.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.29.bb2
-rw-r--r--packages/uclibc/uclibc_nptl.bb2
-rw-r--r--packages/uclibc/uclibc_svn.bb2
-rw-r--r--packages/unicap/ucview_0.22.bb12
-rw-r--r--packages/unicap/unicap-0.9.3/pkgconfig.patch9
-rw-r--r--packages/unicap/unicap_0.9.3.bb22
-rw-r--r--packages/wt/files/cmakelist.patch26
-rw-r--r--packages/wt/wt_2.2.0.bb31
-rw-r--r--packages/xfce/exo/configure.patch43
-rw-r--r--packages/xfce/exo_0.3.4.bb (renamed from packages/xfce/exo_0.3.2.bb)6
-rw-r--r--packages/xfce/gtk-xfce-engine_2.4.2.bb (renamed from packages/xfce/gtk-xfce-engine_2.4.1.bb)3
-rw-r--r--packages/xfce/libxfce4mcs_4.4.1.bb5
-rw-r--r--packages/xfce/libxfce4mcs_4.4.2.bb (renamed from packages/xfce/libxfce4mcs.inc)2
-rw-r--r--packages/xfce/libxfce4util_4.4.1.bb5
-rw-r--r--packages/xfce/libxfce4util_4.4.2.bb (renamed from packages/xfce/libxfce4util.inc)2
-rw-r--r--packages/xfce/libxfcegui4_4.4.1.bb5
-rw-r--r--packages/xfce/libxfcegui4_4.4.2.bb (renamed from packages/xfce/libxfcegui4.inc)3
-rw-r--r--packages/xfce/mousepad_0.2.13.bb (renamed from packages/xfce/mousepad_0.2.12.bb)3
-rw-r--r--packages/xfce/orage_4.4.2.bb (renamed from packages/xfce/orage_4.4.1.bb)0
-rw-r--r--packages/xfce/thunar_0.9.0.bb (renamed from packages/xfce/thunar_0.8.0.bb)11
-rw-r--r--packages/xfce/xfce-mcs-manager.inc4
-rw-r--r--packages/xfce/xfce-mcs-manager_4.4.1.bb5
-rw-r--r--packages/xfce/xfce-mcs-manager_4.4.2.bb25
-rw-r--r--packages/xfce/xfce-mcs-plugins_4.4.1.bb5
-rw-r--r--packages/xfce/xfce-mcs-plugins_4.4.2.bb (renamed from packages/xfce/xfce-mcs-plugins.inc)0
-rw-r--r--packages/xfce/xfce-terminal_0.2.8.bb (renamed from packages/xfce/xfce-terminal_0.2.6.bb)2
-rw-r--r--packages/xfce/xfce-utils_4.4.1.bb6
-rw-r--r--packages/xfce/xfce-utils_4.4.2.bb (renamed from packages/xfce/xfce-utils.inc)0
-rw-r--r--packages/xfce/xfce4-appfinder_4.4.1.bb5
-rw-r--r--packages/xfce/xfce4-appfinder_4.4.2.bb (renamed from packages/xfce/xfce4-appfinder.inc)0
-rw-r--r--packages/xfce/xfce4-dev-tools_4.4.0.1.bb (renamed from packages/xfce/xfce4-dev-tools.inc)3
-rw-r--r--packages/xfce/xfce4-dev-tools_4.4.0.bb1
-rw-r--r--packages/xfce/xfce4-icon-theme_4.4.2.bb (renamed from packages/xfce/xfce4-icon-theme_4.4.1.bb)0
-rw-r--r--packages/xfce/xfce4-mixer_4.4.1.bb5
-rw-r--r--packages/xfce/xfce4-mixer_4.4.2.bb (renamed from packages/xfce/xfce4-mixer.inc)3
-rw-r--r--packages/xfce/xfce4-panel.inc26
-rw-r--r--packages/xfce/xfce4-panel_4.4.1.bb6
-rw-r--r--packages/xfce/xfce4-panel_4.4.2.bb37
-rw-r--r--packages/xfce/xfce4-session_4.4.2.bb (renamed from packages/xfce/xfce4-session_4.4.1.bb)0
-rw-r--r--packages/xfce/xfdesktop/relocation-and-memleak.patch49
-rw-r--r--packages/xfce/xfdesktop_4.4.1.bb6
-rw-r--r--packages/xfce/xfdesktop_4.4.2.bb (renamed from packages/xfce/xfdesktop.inc)6
-rw-r--r--packages/xfce/xfprint_4.4.2.bb (renamed from packages/xfce/xfprint_4.4.1.bb)0
-rw-r--r--packages/xfce/xfwm4-themes_4.4.1.bb5
-rw-r--r--packages/xfce/xfwm4-themes_4.4.2.bb (renamed from packages/xfce/xfwm4-themes.inc)0
-rw-r--r--packages/xfce/xfwm4_4.4.1.bb6
-rw-r--r--packages/xfce/xfwm4_4.4.2.bb (renamed from packages/xfce/xfwm4.inc)8
-rw-r--r--packages/xorg-xserver/xorg-xserver-common.inc2
86 files changed, 2109 insertions, 468 deletions
diff --git a/packages/base-files/base-files/collie/fstab b/packages/base-files/base-files/collie/fstab
deleted file mode 100644
index c2e3f3c189..0000000000
--- a/packages/base-files/base-files/collie/fstab
+++ /dev/null
@@ -1,13 +0,0 @@
-/dev/mtdblock4 / jffs2 defaults 1 1
-proc /proc proc defaults 0 0
-/dev/hda1 /media/cf auto defaults,sync,noauto,noatime,user,exec,suid,gid=100,umask=0002 0 0
-tmpfs /var/volatile tmpfs mode=0755 0 0
-tmpfs /dev/shm tmpfs mode=0777 0 0
-
-# we use a non-volatile ramdisk, see /etc/init.d/ramdisk
-#tmpfs /media/ram tmpfs defaults 0 0
-
-# SD/MMC in kernel 2.4
-#/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
-# SD/MMC in kernel 2.6
-/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb
index 4a7a41ac57..31164e4bc1 100644
--- a/packages/base-files/base-files_3.0.14.bb
+++ b/packages/base-files/base-files_3.0.14.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Miscellaneous files for the base system."
SECTION = "base"
PRIORITY = "required"
-FILE_PR = "r81"
+FILE_PR = "r82"
LICENSE = "GPL"
SRC_URI = " \
diff --git a/packages/boost/boost-36.inc b/packages/boost/boost-36.inc
index 826ad81299..3ccb66f4b6 100644
--- a/packages/boost/boost-36.inc
+++ b/packages/boost/boost-36.inc
@@ -15,59 +15,52 @@ BOOST_VER = "${@"_".join(bb.data.getVar("PV",d,1).split("."))}"
BOOST_MAJ = "${@"_".join(bb.data.getVar("PV",d,1).split(".")[0:2])}"
BOOST_P = "boost_${BOOST_VER}"
-S = "${WORKDIR}/${BOOST_P}"
-
-# Make a package for each library, plus -dev and -python
-PACKAGES = "${PN}-dbg"
-BOOSTLIBS = ""
-
-PACKAGES += "boost-date-time"
-FILES_boost-date-time = "${libdir}/libboost_date_time*.so*"
-
-BOOSTLIBS += "boost-filesystem"
-FILES_boost-filesystem = "${libdir}/libboost_filesystem*.so*"
-
-BOOSTLIBS += "boost-prg-exec-monitor"
-FILES_boost-prg-exec-monitor = "${libdir}/libboost_prg_exec_monitor*.so*"
-
-BOOSTLIBS += "boost-program-options"
-FILES_boost-program-options = "${libdir}/libboost_program_options*.so*"
-
-BOOSTLIBS += "boost-regex"
-FILES_boost-regex = "${libdir}/libboost_regex*.so*"
-
-BOOSTLIBS += "boost-signals"
-FILES_boost-signals = "${libdir}/libboost_signals*.so*"
-
-BOOSTLIBS += "boost-test-exec-monitor"
-FILES_boost-test-exec-monitor = "${libdir}/libboost_test_exec_monitor*.so*"
+BOOST_LIBS = "\
+ date_time \
+ filesystem \
+ graph \
+ iostreams \
+ program_options \
+ regex \
+ signals \
+ system \
+ test \
+ thread \
+ "
+
+# FIXME: for some reason this fails on powerpc
+#BOOST_LIBS += "serialization"
+
+# To enable python, uncomment the following:
+#BOOST_LIBS += "python"
+#DEPENDS += "python"
+#PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}"
+#PYTHON_VERSION = "2.5"
-BOOSTLIBS += "boost-thread-mt"
-FILES_boost-thread-mt = "${libdir}/libboost_thread-mt.so*"
-
-BOOSTLIBS += "boost-unit-test-framework"
-FILES_boost-unit-test-framework = "${libdir}/libboost_unit_test_framework*.so*"
-
-BOOSTLIBS += "boost-iostreams"
-FILES_boost-iostreams = "${libdir}/libboost_iostreams*.so*"
-
-BOOSTLIBS += "boost-serialization"
-FILES_boost-serialization = "${libdir}/libboost_serialization*.so*"
-
-BOOSTLIBS += "boost-wserialization"
-FILES_boost-wserialization = "${libdir}/libboost_wserialization*.so*"
-
-# Python - remove this and set:
-#PYTHON_ROOT = "/dev/null"
-# to remove the python build
-DEPENDS += "python"
-PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}"
-PYTHON_VERSION = "2.5"
+S = "${WORKDIR}/${BOOST_P}"
-BOOSTLIBS += "boost-python"
-FILES_boost-python = "${libdir}/libboost_python*.so*"
+# Make a package for each library, plus -dev
+PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}"
+python __anonymous () {
+ import bb
+
+ packages = []
+ extras = []
+ for lib in bb.data.getVar('BOOST_LIBS', d, 1).split( ):
+ pkg = "boost-%s" % lib.replace("_", "-")
+ extras.append("--with-%s" % lib)
+ packages.append(pkg)
+ if not bb.data.getVar("FILES_%s" % pkg, d, 1):
+ bb.data.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so*" % lib, d)
+ bb.data.setVar("BOOST_PACKAGES", " ".join(packages), d)
+ bb.data.setVar("BJAM_EXTRA", " ".join(extras), d)
+}
-PACKAGES += "${BOOSTLIBS}"
+# Override the contents of specific packages
+FILES_boost-serialization = "${libdir}/libboost_serialization*.so* \
+ ${libdir}/libboost_wserialization*.so*"
+FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so \
+ ${libdir}/libboost_unit_test_framework*.so*"
# -dev last to pick up the remaining stuff
PACKAGES += "${PN}-dev"
@@ -75,7 +68,7 @@ FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a"
# "boost" is a metapackage which pulls in all boost librabries
PACKAGES += "${PN}"
-RRECOMMENDS_${PN} += "${BOOSTLIBS}"
+RRECOMMENDS_${PN} += "${BOOST_PACKAGES}"
# Oh yippee, a new build system, it's sooo cooool I could eat my own
# foot. inlining=on lets the compiler choose, I think. At least this
@@ -122,12 +115,6 @@ BJAM_TOOLS = "-sTOOLS=gcc \
'--layout=system' \
"
-BJAM_EXTRA = '\
- --with-thread \
- --with-date_time \
- --with-filesystem \
- '
-
BJAM_OPTS = '${BJAM_TOOLS} \
--builddir=${S}/${TARGET_SYS} \
--with-python-root=${PYTHON_ROOT} \
diff --git a/packages/boost/boost_1.36.0.bb b/packages/boost/boost_1.36.0.bb
index 20a8f0ad47..17fddb06b4 100644
--- a/packages/boost/boost_1.36.0.bb
+++ b/packages/boost/boost_1.36.0.bb
@@ -2,7 +2,7 @@ include boost-36.inc
DEFAULT_PREFERENCE = "-1"
-FILE_PR = "r1"
+FILE_PR = "r3"
SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \
file://arm-intrinsics.patch;patch=1 \
diff --git a/packages/duke3d/duke3d_svn.bb b/packages/duke3d/duke3d_svn.bb
index 11c33b1fad..36e46df513 100644
--- a/packages/duke3d/duke3d_svn.bb
+++ b/packages/duke3d/duke3d_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Duke Nukem 3D game engine"
LICENSE = "GPLv2"
-DEPENDS = "libsdl libsdl-mixer"
+DEPENDS = "virtual/libsdl libsdl-mixer"
SRCREV = "185"
PV = "0.0+svnr${SRCREV}"
diff --git a/packages/freesmartphone/frameworkd_git.bb b/packages/freesmartphone/frameworkd_git.bb
index 3ad398b5e7..2fd8a480fd 100644
--- a/packages/freesmartphone/frameworkd_git.bb
+++ b/packages/freesmartphone/frameworkd_git.bb
@@ -4,7 +4,7 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de> et. al."
SECTION = "console/network"
DEPENDS = "python-cython-native python-pyrex-native"
LICENSE = "GPL"
-PV = "0.8.4.0+gitr${SRCREV}"
+PV = "0.8.4.2+gitr${SRCREV}"
FILE_PR = "r0"
inherit distutils update-rc.d
@@ -35,6 +35,7 @@ RDEPENDS_${PN} += "\
python-shell \
python-subprocess \
python-syslog \
+ python-textutils \
\
${PN}-config \
"
@@ -49,10 +50,21 @@ RRECOMMENDS_${PN}_append_om-gta01 = "gsm0710muxd"
RRECOMMENDS_${PN}_append_om-gta02 = "gsm0710muxd"
PACKAGES =+ "${PN}-config"
-
PACKAGE_ARCH_${PN}-config = "${MACHINE_ARCH}"
-FILES_${PN}-config = "${sysconfdir}/frameworkd.conf"
-CONFFILES_${PN}-config = "${sysconfdir}/frameworkd.conf"
+
+FILES_${PN}-config = "\
+ ${sysconfdir}/frameworkd.conf \
+ ${sysconfdir}/freesmartphone \
+"
+CONFFILES_${PN}-config = "\
+ ${sysconfdir}/frameworkd.conf \
+ ${sysconfdir}/freesmartphone/opreferences/conf/phone/silent.yaml \
+ ${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml \
+ ${sysconfdir}/freesmartphone/opreferences/conf/profiles/default.yaml \
+ ${sysconfdir}/freesmartphone/opreferences/conf/rules/silent.yaml \
+ ${sysconfdir}/freesmartphone/opreferences/conf/rules/default.yaml \
+ ${sysconfdir}/freesmartphone/oevents/rules.yaml \
+"
PACKAGE_ARCH_${PN} = "${BASE_PACKAGE_ARCH}"
FILES_${PN} += "${sysconfdir}/dbus-1 ${sysconfdir}/freesmartphone ${sysconfdir}/init.d ${datadir}"
diff --git a/packages/gcc/gcc-4.1.1.inc b/packages/gcc/gcc-4.1.1.inc
index 92ee2d7bb8..ac8a4a8a71 100644
--- a/packages/gcc/gcc-4.1.1.inc
+++ b/packages/gcc/gcc-4.1.1.inc
@@ -29,6 +29,7 @@ SRC_URI = "http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2 \
file://gcc-ignore-cache.patch;patch=1 \
file://gcc-4.1.1-e300cx.patch;patch=1 \
file://pr34130.patch;patch=1 \
+ file://sed-fixinc-backslash.patch;patch=1 \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
diff --git a/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch b/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch
new file mode 100644
index 0000000000..9aff951bdc
--- /dev/null
+++ b/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch
@@ -0,0 +1,18 @@
+2006-09-06 Matthias Klose <doko@debian.org>
+
+ * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
+ strings.
+
+--- s/gcc/Makefile.in~ 2008-10-18 08:53:56.000000000 +0100
++++ s/gcc/Makefile.in 2008-10-18 08:55:16.000000000 +0100
+@@ -3146,8 +3146,8 @@
+ macro_list: s-macro_list; @true
+ s-macro_list : $(GCC_PASSES)
+ echo | $(GCC_FOR_TARGET) -E -dM - | \
+- sed -n 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p ; \
+- s/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
++ sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
++ -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
+ sort -u > tmp-macro_list
+ $(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list
+ $(STAMP) s-macro_list
diff --git a/packages/gcc/gcc-configure-common.inc b/packages/gcc/gcc-configure-common.inc
index 795911db74..e88cee5cb2 100644
--- a/packages/gcc/gcc-configure-common.inc
+++ b/packages/gcc/gcc-configure-common.inc
@@ -75,6 +75,13 @@ do_configure () {
export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}"
export ARCH_FLAGS_FOR_TARGET="${ARCH_FLAGS_FOR_TARGET}"
(cd ${S} && gnu-configize) || die "failure running gnu-configize"
+
+ # splice our idea of where the headers live into gcc's world
+ echo "NATIVE_SYSTEM_HEADER_DIR = ${layout_includedir}" > ${T}/t-oe
+ sed 's%^tmake_file=.*$%& ${T}/t-oe%' < ${S}/gcc/Makefile.in >${S}/gcc/Makefile.in.new
+ mv ${S}/gcc/Makefile.in.new ${S}/gcc/Makefile.in
+
+ echo "#define STANDARD_INCLUDE_DIR \"${layout_includedir}\"" >> ${S}/gcc/defaults.h
+
oe_runconf
}
-
diff --git a/packages/gcc/gcc-cross-kernel.inc b/packages/gcc/gcc-cross-kernel.inc
index a567c60119..c0a8de77cc 100644
--- a/packages/gcc/gcc-cross-kernel.inc
+++ b/packages/gcc/gcc-cross-kernel.inc
@@ -9,6 +9,13 @@ do_install () {
:
}
+do_compile () {
+ # This compiler is only for the kernel. Don't bother running fixincludes.
+ mkdir -p gcc
+ touch gcc/stmp-fixinc
+ oe_runmake
+}
+
do_stage () {
cd gcc
oe_runmake installdirs install-common install-headers install-libgcc
diff --git a/packages/gettext/gettext-0.17/use_open_properly.patch b/packages/gettext/gettext-0.17/use_open_properly.patch
new file mode 100644
index 0000000000..111714b543
--- /dev/null
+++ b/packages/gettext/gettext-0.17/use_open_properly.patch
@@ -0,0 +1,15 @@
+Index: gettext-0.17/gettext-tools/src/write-catalog.c
+===================================================================
+--- gettext-0.17.orig/gettext-tools/src/write-catalog.c 2008-10-16 15:18:16.000000000 +0200
++++ gettext-0.17/gettext-tools/src/write-catalog.c 2008-10-16 18:17:13.000000000 +0200
+@@ -220,7 +220,9 @@
+ /* Open the output file. */
+ if (!to_stdout)
+ {
+- fd = open (filename, O_WRONLY | O_CREAT);
++ fd = open (filename, O_WRONLY | O_CREAT,
++ /* 0666 in portable POSIX notation: */
++ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
+ if (fd < 0)
+ {
+ const char *errno_description = strerror (errno);
diff --git a/packages/gettext/gettext-native_0.17.bb b/packages/gettext/gettext-native_0.17.bb
index 9f6cb861bd..c07302bc2b 100644
--- a/packages/gettext/gettext-native_0.17.bb
+++ b/packages/gettext/gettext-native_0.17.bb
@@ -1,5 +1,5 @@
require gettext_${PV}.bb
-FILE_PR = "r2"
+FILE_PR = "r3"
DEPENDS = ""
PROVIDES = ""
diff --git a/packages/gettext/gettext_0.17.bb b/packages/gettext/gettext_0.17.bb
index 13ac5b9373..fe48080085 100644
--- a/packages/gettext/gettext_0.17.bb
+++ b/packages/gettext/gettext_0.17.bb
@@ -2,13 +2,14 @@ DESCRIPTION = "The GNU internationalization library."
HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
SECTION = "libs"
LICENSE = "GPL"
-FILE_PR = "r1"
+FILE_PR = "r2"
DEPENDS = "gettext-native virtual/libiconv ncurses expat"
PROVIDES = "virtual/libintl"
SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://autotools.patch;patch=1 \
file://wchar-uclibc.patch;patch=1 \
+ file://use_open_properly.patch;patch=1 \
"
SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch b/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch
index 6dad0027c6..750be8ecf3 100644
--- a/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch
+++ b/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch
@@ -1,8 +1,8 @@
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index c7ad324..daa2e0a 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -998,7 +998,7 @@ config CPU_FREQ_SA1100
+Index: linux-2.6.26/arch/arm/Kconfig
+===================================================================
+--- linux-2.6.26.orig/arch/arm/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/Kconfig 2008-10-17 18:15:31.391792839 +0200
+@@ -967,7 +967,7 @@
config CPU_FREQ_SA1110
bool
@@ -11,11 +11,24 @@ index c7ad324..daa2e0a 100644
default y
config CPU_FREQ_INTEGRATOR
-diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c
-index e508028..36f726c 100644
---- a/arch/arm/mach-sa1100/dma.c
-+++ b/arch/arm/mach-sa1100/dma.c
-@@ -39,7 +39,7 @@ typedef struct {
+Index: linux-2.6.26/arch/arm/mach-sa1100/collie.c
+===================================================================
+--- linux-2.6.26.orig/arch/arm/mach-sa1100/collie.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/mach-sa1100/collie.c 2008-10-17 18:15:31.391792839 +0200
+@@ -206,7 +206,7 @@
+ }
+
+ static struct flash_platform_data collie_flash_data = {
+- .map_name = "cfi_probe",
++ .map_name = "sharp",
+ .set_vpp = collie_set_vpp,
+ .parts = collie_partitions,
+ .nr_parts = ARRAY_SIZE(collie_partitions),
+Index: linux-2.6.26/arch/arm/mach-sa1100/dma.c
+===================================================================
+--- linux-2.6.26.orig/arch/arm/mach-sa1100/dma.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/mach-sa1100/dma.c 2008-10-17 18:15:31.399789199 +0200
+@@ -39,7 +39,7 @@
static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS];
@@ -24,11 +37,11 @@ index e508028..36f726c 100644
static irqreturn_t dma_irq_handler(int irq, void *dev_id)
-diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c
-index 9caed30..79e19bf 100644
---- a/drivers/input/keyboard/locomokbd.c
-+++ b/drivers/input/keyboard/locomokbd.c
-@@ -265,6 +265,7 @@ static int __devinit locomokbd_probe(struct locomo_dev *dev)
+Index: linux-2.6.26/drivers/input/keyboard/locomokbd.c
+===================================================================
+--- linux-2.6.26.orig/drivers/input/keyboard/locomokbd.c 2008-10-17 18:13:16.000000000 +0200
++++ linux-2.6.26/drivers/input/keyboard/locomokbd.c 2008-10-17 18:15:31.403791239 +0200
+@@ -272,6 +272,7 @@
for (i = 0; i < LOCOMOKBD_NUMKEYS; i++)
set_bit(locomokbd->keycode[i], input_dev->keybit);
clear_bit(0, input_dev->keybit);
@@ -36,11 +49,11 @@ index 9caed30..79e19bf 100644
/* attempt to get the interrupt */
err = request_irq(dev->irq[0], locomokbd_interrupt, 0, "locomokbd", locomokbd);
-diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
-index 9f93c29..33fc5d6 100644
---- a/drivers/mfd/Kconfig
-+++ b/drivers/mfd/Kconfig
-@@ -72,4 +72,10 @@ config MCP_UCB1200_TS
+Index: linux-2.6.26/drivers/mfd/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/Kconfig 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/mfd/Kconfig 2008-10-17 18:15:31.403791239 +0200
+@@ -77,4 +77,10 @@
tristate "Touchscreen interface support"
depends on MCP_UCB1200 && INPUT
@@ -51,11 +64,11 @@ index 9f93c29..33fc5d6 100644
+ Driver for touchscreen on collie - sharp sl-5500.
+
endmenu
-diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
-index 33daa2f..0885ccd 100644
---- a/drivers/mfd/Makefile
-+++ b/drivers/mfd/Makefile
-@@ -16,7 +16,7 @@ obj-$(CONFIG_MCP) += mcp-core.o
+Index: linux-2.6.26/drivers/mfd/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/Makefile 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/mfd/Makefile 2008-10-17 18:15:31.407791679 +0200
+@@ -14,7 +14,7 @@
obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o
obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o
obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o
@@ -64,11 +77,10 @@ index 33daa2f..0885ccd 100644
ifeq ($(CONFIG_SA1100_ASSABET),y)
obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o
endif
-diff --git a/drivers/mfd/collie-ts.c b/drivers/mfd/collie-ts.c
-new file mode 100644
-index 0000000..ddde5fc
---- /dev/null
-+++ b/drivers/mfd/collie-ts.c
+Index: linux-2.6.26/drivers/mfd/collie-ts.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/mfd/collie-ts.c 2008-10-17 18:15:31.415790559 +0200
@@ -0,0 +1,449 @@
+/*
+ * Touchscreen driver for UCB1x00-based touchscreens
@@ -103,9 +115,9 @@ index 0000000..ddde5fc
+#include <linux/freezer.h>
+#include <linux/slab.h>
+#include <linux/kthread.h>
++#include <linux/semaphore.h>
+
+#include <asm/dma.h>
-+#include <asm/semaphore.h>
+#include <asm/arch/collie.h>
+#include <asm/mach-types.h>
+
@@ -519,10 +531,10 @@ index 0000000..ddde5fc
+MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
+MODULE_DESCRIPTION("UCB1x00 touchscreen driver");
+MODULE_LICENSE("GPL");
-diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h
-index a8ad8a0..137b043 100644
---- a/drivers/mfd/ucb1x00.h
-+++ b/drivers/mfd/ucb1x00.h
+Index: linux-2.6.26/drivers/mfd/ucb1x00.h
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/ucb1x00.h 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mfd/ucb1x00.h 2008-10-17 18:15:31.415790559 +0200
@@ -34,7 +34,10 @@
#define UCB_IE_TCLIP (1 << 14)
#define UCB_IE_ACLIP (1 << 15)
@@ -534,28 +546,719 @@ index a8ad8a0..137b043 100644
#define UCB_TC_A 0x05
#define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */
-diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c
-index c7d5a52..215bec2 100644
---- a/drivers/mtd/maps/sa1100-flash.c
-+++ b/drivers/mtd/maps/sa1100-flash.c
-@@ -210,6 +210,12 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r
+Index: linux-2.6.26/drivers/mtd/chips/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/chips/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/chips/Kconfig 2008-10-17 18:15:31.419791479 +0200
+@@ -239,5 +239,13 @@
+ used for XIP purposes. If you're not sure what this is all about
+ then say N.
+
++config MTD_SHARP
++ tristate "pre-CFI Sharp chip support"
++ depends on MTD
++ help
++ This option enables support for flash chips using Sharp-compatible
++ commands, including some which are not CFI-compatible and hence
++ cannot be used with the CONFIG_MTD_CFI_INTELxxx options.
++
+ endmenu
+
+Index: linux-2.6.26/drivers/mtd/chips/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/chips/Makefile 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/chips/Makefile 2008-10-17 18:15:31.419791479 +0200
+@@ -12,4 +12,5 @@
+ obj-$(CONFIG_MTD_JEDECPROBE) += jedec_probe.o
+ obj-$(CONFIG_MTD_RAM) += map_ram.o
+ obj-$(CONFIG_MTD_ROM) += map_rom.o
++obj-$(CONFIG_MTD_SHARP) += sharp.o
+ obj-$(CONFIG_MTD_ABSENT) += map_absent.o
+Index: linux-2.6.26/drivers/mtd/chips/sharp.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/mtd/chips/sharp.c 2008-10-17 18:15:31.423790399 +0200
+@@ -0,0 +1,645 @@
++/*
++ * MTD chip driver for pre-CFI Sharp flash chips
++ *
++ * Copyright 2000,2001 David A. Schleef <ds@schleef.org>
++ * 2000,2001 Lineo, Inc.
++ *
++ * $Id: sharp.c,v 1.17 2005/11/29 14:28:28 gleixner Exp $
++ *
++ * Devices supported:
++ * LH28F016SCT Symmetrical block flash memory, 2Mx8
++ * LH28F008SCT Symmetrical block flash memory, 1Mx8
++ *
++ * Documentation:
++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/
++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/01symf/16m/016sctl9.pdf
++ * 016sctl9.pdf
++ *
++ * Limitations:
++ * This driver only supports 4x1 arrangement of chips.
++ * Not tested on anything but PowerPC.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/sched.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/mtd/map.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/cfi.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++
++#define CMD_RESET 0xffffffff
++#define CMD_READ_ID 0x90909090
++#define CMD_READ_STATUS 0x70707070
++#define CMD_CLEAR_STATUS 0x50505050
++#define CMD_BLOCK_ERASE_1 0x20202020
++#define CMD_BLOCK_ERASE_2 0xd0d0d0d0
++#define CMD_BYTE_WRITE 0x40404040
++#define CMD_SUSPEND 0xb0b0b0b0
++#define CMD_RESUME 0xd0d0d0d0
++#define CMD_SET_BLOCK_LOCK_1 0x60606060
++#define CMD_SET_BLOCK_LOCK_2 0x01010101
++#define CMD_SET_MASTER_LOCK_1 0x60606060
++#define CMD_SET_MASTER_LOCK_2 0xf1f1f1f1
++#define CMD_CLEAR_BLOCK_LOCKS_1 0x60606060
++#define CMD_CLEAR_BLOCK_LOCKS_2 0xd0d0d0d0
++
++#define SR_READY 0x80808080 // 1 = ready
++#define SR_ERASE_SUSPEND 0x40404040 // 1 = block erase suspended
++#define SR_ERROR_ERASE 0x20202020 // 1 = error in block erase or clear lock bits
++#define SR_ERROR_WRITE 0x10101010 // 1 = error in byte write or set lock bit
++#define SR_VPP 0x08080808 // 1 = Vpp is low
++#define SR_WRITE_SUSPEND 0x04040404 // 1 = byte write suspended
++#define SR_PROTECT 0x02020202 // 1 = lock bit set
++#define SR_RESERVED 0x01010101
++
++#define SR_ERRORS (SR_ERROR_ERASE|SR_ERROR_WRITE|SR_VPP|SR_PROTECT)
++
++#define BLOCK_MASK 0xfffe0000
++
++/* Configuration options */
++
++#define AUTOUNLOCK /* automatically unlocks blocks before erasing */
++
++static struct mtd_info *sharp_probe(struct map_info *);
++
++static int sharp_probe_map(struct map_info *map, struct mtd_info *mtd);
++
++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, u_char *buf);
++static int sharp_write(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, const u_char *buf);
++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr);
++static void sharp_sync(struct mtd_info *mtd);
++static int sharp_suspend(struct mtd_info *mtd);
++static void sharp_resume(struct mtd_info *mtd);
++static void sharp_destroy(struct mtd_info *mtd);
++
++static int sharp_write_oneword(struct map_info *map, struct flchip *chip,
++ unsigned long adr, __u32 datum);
++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr);
++#ifdef AUTOUNLOCK
++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr);
++#endif
++
++
++struct sharp_info{
++ struct flchip *chip;
++ int bogus;
++ int chipshift;
++ int numchips;
++ struct flchip chips[1];
++};
++
++static void sharp_destroy(struct mtd_info *mtd);
++
++static struct mtd_chip_driver sharp_chipdrv = {
++ .probe = sharp_probe,
++ .destroy = sharp_destroy,
++ .name = "sharp",
++ .module = THIS_MODULE
++};
++
++static void sharp_udelay(unsigned long i) {
++ if (in_interrupt()) {
++ udelay(i);
++ } else {
++ schedule();
++ }
++}
++
++static struct mtd_info *sharp_probe(struct map_info *map)
++{
++ struct mtd_info *mtd = NULL;
++ struct sharp_info *sharp = NULL;
++ int width;
++
++ mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
++ if(!mtd)
++ return NULL;
++
++ sharp = kzalloc(sizeof(*sharp), GFP_KERNEL);
++ if(!sharp) {
++ kfree(mtd);
++ return NULL;
++ }
++
++ width = sharp_probe_map(map,mtd);
++ if(!width){
++ kfree(mtd);
++ kfree(sharp);
++ return NULL;
++ }
++
++ mtd->priv = map;
++ mtd->type = MTD_NORFLASH;
++ mtd->erase = sharp_erase;
++ mtd->read = sharp_read;
++ mtd->write = sharp_write;
++ mtd->sync = sharp_sync;
++ mtd->suspend = sharp_suspend;
++ mtd->resume = sharp_resume;
++ mtd->flags = MTD_CAP_NORFLASH;
++ mtd->writesize = 1;
++ mtd->name = map->name;
++
++ sharp->chipshift = 24;
++ sharp->numchips = 1;
++ sharp->chips[0].start = 0;
++ sharp->chips[0].state = FL_READY;
++ sharp->chips[0].mutex = &sharp->chips[0]._spinlock;
++ sharp->chips[0].word_write_time = 0;
++ init_waitqueue_head(&sharp->chips[0].wq);
++ spin_lock_init(&sharp->chips[0]._spinlock);
++
++ map->fldrv = &sharp_chipdrv;
++ map->fldrv_priv = sharp;
++
++ __module_get(THIS_MODULE);
++ return mtd;
++}
++
++static inline void sharp_send_cmd(struct map_info *map, unsigned long cmd, unsigned long adr)
++{
++ map_word map_cmd;
++ map_cmd.x[0] = cmd;
++ map_write(map, map_cmd, adr);
++}
++
++static int sharp_probe_map(struct map_info *map,struct mtd_info *mtd)
++{
++ map_word tmp, read0, read4;
++ unsigned long base = 0;
++ int width = 4;
++
++ tmp = map_read(map, base+0);
++
++ sharp_send_cmd(map, CMD_READ_ID, base+0);
++
++ read0 = map_read(map, base+0);
++ read4 = map_read(map, base+4);
++ if (read0.x[0] == 0x00b000b0) {
++ printk("Sharp chip, %lx, %lx, width = %d\n", read0.x[0], read4.x[0], width);
++ /* Prints b000b0, b000b0, width = 4 on collie */
++ switch(read4.x[0]){
++ case 0xaaaaaaaa:
++ case 0xa0a0a0a0:
++ /* aa - LH28F016SCT-L95 2Mx8, 32 64k blocks*/
++ /* a0 - LH28F016SCT-Z4 2Mx8, 32 64k blocks*/
++ mtd->erasesize = 0x10000 * width;
++ mtd->size = 0x200000 * width;
++ return width;
++ case 0xa6a6a6a6:
++ /* a6 - LH28F008SCT-L12 1Mx8, 16 64k blocks*/
++ /* a6 - LH28F008SCR-L85 1Mx8, 16 64k blocks*/
++ mtd->erasesize = 0x10000 * width;
++ mtd->size = 0x100000 * width;
++ return width;
++ case 0x00b000b0:
++ /* a6 - LH28F640BFHE 8 64k * 2 chip blocks*/
++ mtd->erasesize = 0x10000 * width / 2;
++ mtd->size = 0x800000 * width / 2;
++ return width;
++ default:
++ printk("Sort-of looks like sharp flash, 0x%08lx 0x%08lx\n",
++ read0.x[0], read4.x[0]);
++ }
++ } else if ((map_read(map, base+0).x[0] == CMD_READ_ID)){
++ /* RAM, probably */
++ printk("Looks like RAM\n");
++ map_write(map, tmp, base+0);
++ }else{
++ printk("Doesn't look like sharp flash, 0x%08lx 0x%08lx\n",
++ read0.x[0], read4.x[0]);
++ }
++
++ return 0;
++}
++
++/* This function returns with the chip->mutex lock held. */
++static int sharp_wait(struct map_info *map, struct flchip *chip)
++{
++ map_word status;
++ unsigned long timeo = jiffies + HZ;
++ DECLARE_WAITQUEUE(wait, current);
++ int adr = 0;
++
++retry:
++ spin_lock_bh(chip->mutex);
++
++ switch (chip->state) {
++ case FL_READY:
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ chip->state = FL_STATUS;
++ case FL_STATUS:
++ status = map_read(map, adr);
++ if ((status.x[0] & SR_READY) == SR_READY)
++ break;
++ spin_unlock_bh(chip->mutex);
++ if (time_after(jiffies, timeo)) {
++ printk("Waiting for chip to be ready timed out in erase\n");
++ return -EIO;
++ }
++ sharp_udelay(1);
++ goto retry;
++ default:
++ set_current_state(TASK_INTERRUPTIBLE);
++ add_wait_queue(&chip->wq, &wait);
++
++ spin_unlock_bh(chip->mutex);
++
++ sharp_udelay(1);
++
++ set_current_state(TASK_RUNNING);
++ remove_wait_queue(&chip->wq, &wait);
++
++ if(signal_pending(current))
++ return -EINTR;
++
++ timeo = jiffies + HZ;
++
++ goto retry;
++ }
++
++ sharp_send_cmd(map, CMD_RESET, adr);
++
++ chip->state = FL_READY;
++
++ return 0;
++}
++
++static void sharp_release(struct flchip *chip)
++{
++ wake_up(&chip->wq);
++ spin_unlock_bh(chip->mutex);
++}
++
++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, u_char *buf)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int chipnum;
++ int ret = 0;
++ int ofs = 0;
++
++ chipnum = (from >> sharp->chipshift);
++ ofs = from & ((1 << sharp->chipshift)-1);
++
++ *retlen = 0;
++
++ while(len){
++ unsigned long thislen;
++
++ if(chipnum>=sharp->numchips)
++ break;
++
++ thislen = len;
++ if(ofs+thislen >= (1<<sharp->chipshift))
++ thislen = (1<<sharp->chipshift) - ofs;
++
++ ret = sharp_wait(map,&sharp->chips[chipnum]);
++ if(ret<0)
++ break;
++
++ map_copy_from(map,buf,ofs,thislen);
++
++ sharp_release(&sharp->chips[chipnum]);
++
++ *retlen += thislen;
++ len -= thislen;
++ buf += thislen;
++
++ ofs = 0;
++ chipnum++;
++ }
++ return ret;
++}
++
++static int sharp_write(struct mtd_info *mtd, loff_t to, size_t len,
++ size_t *retlen, const u_char *buf)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int ret = 0;
++ int i,j;
++ int chipnum;
++ unsigned long ofs;
++ union { u32 l; unsigned char uc[4]; } tbuf;
++
++ *retlen = 0;
++
++ while(len){
++ tbuf.l = 0xffffffff;
++ chipnum = to >> sharp->chipshift;
++ ofs = to & ((1<<sharp->chipshift)-1);
++
++ j=0;
++ for(i=ofs&3;i<4 && len;i++){
++ tbuf.uc[i] = *buf;
++ buf++;
++ to++;
++ len--;
++ j++;
++ }
++ sharp_write_oneword(map, &sharp->chips[chipnum], ofs&~3, tbuf.l);
++ if(ret<0)
++ return ret;
++ (*retlen)+=j;
++ }
++
++ return 0;
++}
++
++static int sharp_write_oneword(struct map_info *map, struct flchip *chip,
++ unsigned long adr, __u32 datum)
++{
++ int ret;
++ int try;
++ int i;
++ map_word data, status;
++
++ status.x[0] = 0;
++ ret = sharp_wait(map,chip);
++ if (ret < 0)
++ return ret;
++
++ for (try=0; try<10; try++) {
++ long timeo;
++
++ sharp_send_cmd(map, CMD_BYTE_WRITE, adr);
++ /* cpu_to_le32 -> hack to fix the writel be->le conversion */
++ data.x[0] = cpu_to_le32(datum);
++ map_write(map, data, adr);
++
++ chip->state = FL_WRITING;
++ timeo = jiffies + (HZ/2);
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ for(i=0;i<100;i++){
++ status = map_read(map, adr);
++ if((status.x[0] & SR_READY) == SR_READY)
++ break;
++ }
++#ifdef AUTOUNLOCK
++ if (status.x[0] & SR_PROTECT) { /* lock block */
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ sharp_unlock_oneblock(map,chip,adr);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ sharp_send_cmd(map, CMD_RESET, adr);
++ continue;
++ }
++#endif
++ if(i==100){
++ printk("sharp: timed out writing\n");
++ }
++
++ if (!(status.x[0] & SR_ERRORS))
++ break;
++
++ printk("sharp: error writing byte at addr=%08lx status=%08lx\n", adr, status.x[0]);
++
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ }
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++
++ sharp_release(chip);
++
++ return 0;
++}
++
++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ unsigned long adr,len;
++ int chipnum, ret=0;
++
++ if(instr->addr & (mtd->erasesize - 1))
++ return -EINVAL;
++ if(instr->len & (mtd->erasesize - 1))
++ return -EINVAL;
++ if(instr->len + instr->addr > mtd->size)
++ return -EINVAL;
++
++ chipnum = instr->addr >> sharp->chipshift;
++ adr = instr->addr & ((1<<sharp->chipshift)-1);
++ len = instr->len;
++
++ while(len){
++ ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr);
++ if(ret)return ret;
++
++ if (adr >= 0xfe0000) {
++ adr += mtd->erasesize / 8;
++ len -= mtd->erasesize / 8;
++ } else {
++ adr += mtd->erasesize;
++ len -= mtd->erasesize;
++ }
++ if(adr >> sharp->chipshift){
++ adr = 0;
++ chipnum++;
++ if(chipnum>=sharp->numchips)
++ break;
++ }
++ }
++
++ instr->state = MTD_ERASE_DONE;
++ mtd_erase_callback(instr);
++
++ return 0;
++}
++
++static inline int sharp_do_wait_for_ready(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ int ret;
++ unsigned long timeo;
++ map_word status;
++ DECLARE_WAITQUEUE(wait, current);
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++
++ timeo = jiffies + HZ * 10;
++
++ while (time_before(jiffies, timeo)) {
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++ if ((status.x[0] & SR_READY) == SR_READY) {
++ ret = 0;
++ goto out;
++ }
++ set_current_state(TASK_INTERRUPTIBLE);
++ add_wait_queue(&chip->wq, &wait);
++
++ spin_unlock_bh(chip->mutex);
++
++ schedule_timeout(1);
++ schedule();
++
++ spin_lock_bh(chip->mutex);
++
++ remove_wait_queue(&chip->wq, &wait);
++ set_current_state(TASK_RUNNING);
++ }
++ ret = -ETIME;
++out:
++ return ret;
++}
++
++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ int ret;
++ map_word status;
++
++ ret = sharp_wait(map,chip);
++ if (ret < 0)
++ return ret;
++
++#ifdef AUTOUNLOCK
++ /* This seems like a good place to do an unlock */
++ sharp_unlock_oneblock(map,chip,adr);
++#endif
++
++ sharp_send_cmd(map, CMD_BLOCK_ERASE_1, adr);
++ sharp_send_cmd(map, CMD_BLOCK_ERASE_2, adr);
++
++ chip->state = FL_ERASING;
++
++ ret = sharp_do_wait_for_ready(map,chip,adr);
++ if(ret<0) {
++ spin_unlock_bh(chip->mutex);
++ return ret;
++ }
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++
++ if (!(status.x[0] & SR_ERRORS)) {
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++ spin_unlock_bh(chip->mutex);
++ return 0;
++ }
++
++ printk("sharp: error erasing block at addr=%08lx status=%08lx\n", adr, status.x[0]);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++
++ sharp_release(chip);
++
++ return -EIO;
++}
++
++#ifdef AUTOUNLOCK
++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ map_word status;
++
++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_1, adr & BLOCK_MASK);
++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_2, adr & BLOCK_MASK);
++
++ sharp_do_wait_for_ready(map,chip,adr);
++
++ status = map_read(map, adr);
++
++ if (!(status.x[0] & SR_ERRORS)) {
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++ return;
++ }
++
++ printk("sharp: error unlocking block at addr=%08lx status=%08lx\n", adr, status.x[0]);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++}
++#endif
++
++static void sharp_sync(struct mtd_info *mtd)
++{
++}
++
++static int sharp_suspend(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int i;
++ struct flchip *chip;
++ int ret = 0;
++
++ for (i = 0; !ret && i < sharp->numchips; i++) {
++ chip = &sharp->chips[i];
++ ret = sharp_wait(map,chip);
++
++ if (ret) {
++ ret = -EAGAIN;
++ } else {
++ chip->state = FL_PM_SUSPENDED;
++ spin_unlock_bh(chip->mutex);
++ }
++ }
++ return ret;
++}
++
++static void sharp_resume(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int i;
++ struct flchip *chip;
++
++ for (i = 0; i < sharp->numchips; i++) {
++ chip = &sharp->chips[i];
++
++ spin_lock_bh(chip->mutex);
++
++ if (chip->state == FL_PM_SUSPENDED) {
++ /* We need to force it back to a known state */
++ sharp_send_cmd(map, CMD_RESET, chip->start);
++ chip->state = FL_READY;
++ wake_up(&chip->wq);
++ }
++
++ spin_unlock_bh(chip->mutex);
++ }
++}
++
++static void sharp_destroy(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++
++ kfree(sharp);
++}
++
++static int __init sharp_probe_init(void)
++{
++ printk("MTD Sharp chip driver <ds@lineo.com>\n");
++
++ register_mtd_chip_driver(&sharp_chipdrv);
++
++ return 0;
++}
++
++static void __exit sharp_probe_exit(void)
++{
++ unregister_mtd_chip_driver(&sharp_chipdrv);
++}
++
++module_init(sharp_probe_init);
++module_exit(sharp_probe_exit);
++
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("David Schleef <ds@schleef.org>");
++MODULE_DESCRIPTION("Old MTD chip driver for pre-CFI Sharp flash chips");
+Index: linux-2.6.26/drivers/mtd/maps/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/maps/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/maps/Kconfig 2008-10-17 18:15:31.431789839 +0200
+@@ -392,7 +392,7 @@
+
+ config MTD_SA1100
+ tristate "CFI Flash device mapped on StrongARM SA11x0"
+- depends on MTD_CFI && ARCH_SA1100 && MTD_PARTITIONS
++ depends on (MTD_CFI || MTD_SHARP) && ARCH_SA1100 && MTD_PARTITIONS
+ help
+ This enables access to the flash chips on most platforms based on
+ the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
+Index: linux-2.6.26/drivers/mtd/maps/sa1100-flash.c
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/maps/sa1100-flash.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/maps/sa1100-flash.c 2008-10-17 18:15:31.431789839 +0200
+@@ -210,6 +210,12 @@
goto err;
}
subdev->mtd->owner = THIS_MODULE;
+
+#ifdef CONFIG_SA1100_COLLIE
+ /* collie flash starts locked */
-+ if (subdev->mtd->unlock)
-+ subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000);
++// if (subdev->mtd->unlock)
++// subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000);
+#endif
printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, "
"%d-bit\n", phys, subdev->mtd->size >> 20,
-diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
-index 3b4e55c..0ae741d 100644
---- a/drivers/net/wireless/hostap/hostap_cs.c
-+++ b/drivers/net/wireless/hostap/hostap_cs.c
-@@ -35,7 +35,7 @@ static int ignore_cis_vcc;
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_cs.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c 2008-10-17 18:15:31.435790279 +0200
+@@ -35,7 +35,7 @@
module_param(ignore_cis_vcc, int, 0444);
MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry");
@@ -564,7 +1267,7 @@ index 3b4e55c..0ae741d 100644
/* struct local_info::hw_priv */
struct hostap_cs_priv {
dev_node_t node;
-@@ -499,11 +499,13 @@ static int hostap_cs_probe(struct pcmcia_device *p_dev)
+@@ -499,11 +499,13 @@
PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info);
p_dev->conf.IntType = INT_MEMORY_AND_IO;
@@ -579,10 +1282,10 @@ index 3b4e55c..0ae741d 100644
return ret;
}
-diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
-index 13d5882..6f24d66 100644
---- a/drivers/net/wireless/hostap/hostap_hw.c
-+++ b/drivers/net/wireless/hostap/hostap_hw.c
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:15:31.443789719 +0200
@@ -54,6 +54,7 @@
#include "hostap.h"
#include "hostap_ap.h"
@@ -591,7 +1294,7 @@ index 13d5882..6f24d66 100644
/* #define final_version */
-@@ -1497,6 +1498,8 @@ static int prism2_hw_config(struct net_device *dev, int initial)
+@@ -1534,6 +1535,8 @@
if (local->hw_downloading)
return 1;
@@ -600,7 +1303,7 @@ index 13d5882..6f24d66 100644
if (prism2_hw_init(dev, initial)) {
return local->no_pri ? 0 : 1;
}
-@@ -2628,8 +2631,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)
+@@ -2665,8 +2668,15 @@
int events = 0;
u16 ev;
@@ -616,12 +1319,12 @@ index 13d5882..6f24d66 100644
+ iface = netdev_priv(dev);
+ local = iface->local;
- prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0);
-
-diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c
-index 3a874fc..df58aa3 100644
---- a/drivers/net/wireless/hostap/hostap_pci.c
-+++ b/drivers/net/wireless/hostap/hostap_pci.c
+ if(dev->base_addr == 0)
+ {
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:13:18.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:15:31.447790279 +0200
@@ -19,6 +19,7 @@
#include "hostap_wlan.h"
@@ -630,10 +1333,10 @@ index 3a874fc..df58aa3 100644
static char *dev_info = "hostap_pci";
-diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c
-index cbf15d7..4475174 100644
---- a/drivers/net/wireless/hostap/hostap_plx.c
-+++ b/drivers/net/wireless/hostap/hostap_plx.c
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:13:18.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:15:31.451790719 +0200
@@ -21,7 +21,7 @@
#include <asm/io.h>
@@ -643,11 +1346,11 @@ index cbf15d7..4475174 100644
static char *dev_info = "hostap_plx";
-diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
-index c5b2a44..eecbe8c 100644
---- a/drivers/pcmcia/sa1100_generic.c
-+++ b/drivers/pcmcia/sa1100_generic.c
-@@ -81,13 +81,14 @@ static int sa11x0_drv_pcmcia_probe(struct device *dev)
+Index: linux-2.6.26/drivers/pcmcia/sa1100_generic.c
+===================================================================
+--- linux-2.6.26.orig/drivers/pcmcia/sa1100_generic.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/pcmcia/sa1100_generic.c 2008-10-17 18:15:31.459789719 +0200
+@@ -81,13 +81,14 @@
return ret;
}
@@ -669,7 +1372,7 @@ index c5b2a44..eecbe8c 100644
};
/* sa11x0_pcmcia_init()
-@@ -100,7 +101,7 @@ static struct device_driver sa11x0_pcmcia_driver = {
+@@ -100,7 +101,7 @@
*/
static int __init sa11x0_pcmcia_init(void)
{
@@ -678,7 +1381,7 @@ index c5b2a44..eecbe8c 100644
}
/* sa11x0_pcmcia_exit()
-@@ -110,7 +111,7 @@ static int __init sa11x0_pcmcia_init(void)
+@@ -110,7 +111,7 @@
*/
static void __exit sa11x0_pcmcia_exit(void)
{
@@ -687,11 +1390,11 @@ index c5b2a44..eecbe8c 100644
}
MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>");
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 66ec5d8..aba38d7 100644
---- a/drivers/spi/Kconfig
-+++ b/drivers/spi/Kconfig
-@@ -123,6 +123,10 @@ config SPI_MPC52xx_PSC
+Index: linux-2.6.26/drivers/spi/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/spi/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/spi/Kconfig 2008-10-17 18:15:31.463790519 +0200
+@@ -123,6 +123,10 @@
This enables using the Freescale MPC52xx Programmable Serial
Controller in master SPI mode.
@@ -702,11 +1405,11 @@ index 66ec5d8..aba38d7 100644
config SPI_MPC83xx
tristate "Freescale MPC83xx/QUICC Engine SPI controller"
depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL
-diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
-index 7fca043..b89992b 100644
---- a/drivers/spi/Makefile
-+++ b/drivers/spi/Makefile
-@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
+Index: linux-2.6.26/drivers/spi/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/spi/Makefile 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/spi/Makefile 2008-10-17 18:15:31.463790519 +0200
+@@ -28,6 +28,7 @@
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
@@ -714,11 +1417,10 @@ index 7fca043..b89992b 100644
# ... add above this line ...
# SPI protocol drivers (device/link on bus)
-diff --git a/drivers/spi/locomo_spi.c b/drivers/spi/locomo_spi.c
-new file mode 100644
-index 0000000..d3a4bd9
---- /dev/null
-+++ b/drivers/spi/locomo_spi.c
+Index: linux-2.6.26/drivers/spi/locomo_spi.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/spi/locomo_spi.c 2008-10-17 18:15:31.471790439 +0200
@@ -0,0 +1,1097 @@
+#include <asm/io.h>
+#include <asm/irq.h>
@@ -1817,11 +2519,10 @@ index 0000000..d3a4bd9
+MODULE_AUTHOR("Thomas Kunze thommy@tabao.de");
+MODULE_DESCRIPTION("Collie mmc driver");
+MODULE_LICENSE("GPL");
-diff --git a/drivers/spi/locomo_spi.h b/drivers/spi/locomo_spi.h
-new file mode 100644
-index 0000000..7e1c0ce
---- /dev/null
-+++ b/drivers/spi/locomo_spi.h
+Index: linux-2.6.26/drivers/spi/locomo_spi.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/spi/locomo_spi.h 2008-10-17 18:15:31.471790439 +0200
@@ -0,0 +1,75 @@
+#include <asm/hardware/locomo.h>
+#ifndef __LOCOMO_SPI_H__
diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig b/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig
index a65552fbbb..4434962a64 100644
--- a/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig
+++ b/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig
@@ -327,13 +327,8 @@ CONFIG_MTD_BLOCK=y
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=y
+# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-# CONFIG_MTD_CFI_NOSWAP is not set
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -344,14 +339,10 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
+CONFING_MTD_SHARP=y
#
# Mapping drivers for chip access
diff --git a/packages/kexecboot/linux-kexecboot_2.6.26.bb b/packages/kexecboot/linux-kexecboot_2.6.26.bb
index 6dec914cc6..7d000ff2e1 100644
--- a/packages/kexecboot/linux-kexecboot_2.6.26.bb
+++ b/packages/kexecboot/linux-kexecboot_2.6.26.bb
@@ -1,6 +1,6 @@
require linux-kexecboot.inc
-FILE_PR = "r4"
+FILE_PR = "r5"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_qemuarm = "-1"
DEFAULT_PREFERENCE_qemux86 = "-1"
diff --git a/packages/libsdl/files/fixmfour.patch b/packages/libsdl/files/fixmfour.patch
new file mode 100644
index 0000000000..0d534bd9a1
--- /dev/null
+++ b/packages/libsdl/files/fixmfour.patch
@@ -0,0 +1,14 @@
+Index: SDL-1.2.11/sdl.m4
+===================================================================
+--- SDL-1.2.11.orig/sdl.m4 2008-10-18 21:20:13.482478928 +0200
++++ SDL-1.2.11/sdl.m4 2008-10-18 21:20:28.979441480 +0200
+@@ -32,9 +32,6 @@
+ fi
+ fi
+
+- if test "x$prefix" != xNONE; then
+- PATH="$prefix/bin:$prefix/usr/bin:$PATH"
+- fi
+ AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
+ min_sdl_version=ifelse([$1], ,0.11.0,$1)
+ AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
diff --git a/packages/libsdl/libsdl-image_1.2.6.bb b/packages/libsdl/libsdl-image_1.2.6.bb
index 27b5aa7d1a..b458e19dba 100644
--- a/packages/libsdl/libsdl-image_1.2.6.bb
+++ b/packages/libsdl/libsdl-image_1.2.6.bb
@@ -1,8 +1,12 @@
require libsdl-image.inc
+FILE_PR= "r1"
+
+DEPENDS += "tiff"
do_unpackpost() {
# Removing this file fixes a libtool version mismatch.
rm acinclude/libtool.m4
+ rm acinclude/sdl.m4
}
addtask unpackpost after do_unpack before do_patch
diff --git a/packages/libsdl/libsdl-x11_1.2.11.bb b/packages/libsdl/libsdl-x11_1.2.11.bb
index 809c9852f8..e9628d9e07 100644
--- a/packages/libsdl/libsdl-x11_1.2.11.bb
+++ b/packages/libsdl/libsdl-x11_1.2.11.bb
@@ -3,7 +3,7 @@ require libsdl.inc
# extra-keys.patch is missing
DEFAULT_PREFERENCE = "-1"
-FILE_PR = "r6"
+FILE_PR = "r7"
SRC_URI = "\
http://www.libsdl.org/release/SDL-${PV}.tar.gz \
@@ -12,6 +12,7 @@ SRC_URI = "\
file://pagesize.patch;patch=1 \
file://kernel-asm-page.patch;patch=1 \
file://sdl-cdfix.patch;patch=1 \
+ file://fixmfour.patch;patch=1 \
"
EXTRA_OECONF = "--disable-static --disable-debug --enable-cdrom --enable-threads --enable-timers --enable-endian \
diff --git a/packages/linux/linux-openmoko_2.6.24+git.bb b/packages/linux/linux-openmoko_2.6.24+git.bb
index 7c65d6c112..524b22a311 100644
--- a/packages/linux/linux-openmoko_2.6.24+git.bb
+++ b/packages/linux/linux-openmoko_2.6.24+git.bb
@@ -7,7 +7,7 @@ KERNEL_RELEASE = "2.6.24"
KERNEL_VERSION = "${KERNEL_RELEASE}"
PV = "${KERNEL_RELEASE}+${PR}+gitr${SRCREV}"
-FILE_PR = "r9"
+FILE_PR = "r10"
SRC_URI = "\
git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \
diff --git a/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch b/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch
new file mode 100644
index 0000000000..ea87e12197
--- /dev/null
+++ b/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch
@@ -0,0 +1,28 @@
+commit 7f4ecbe6bd6515f65f2720117e5b7d69e1648960
+Author: Thomas Kunze <thommycheck@gmx.de>
+Date: Sat Oct 18 00:27:36 2008 +0200
+
+ fix ucb driver
+
+Index: linux-2.6.26/drivers/mfd/mcp-sa11x0.c
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/mcp-sa11x0.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mfd/mcp-sa11x0.c 2008-10-18 01:48:40.964009879 +0200
+@@ -27,6 +27,7 @@
+ #include <asm/arch/mcp.h>
+
+ #include <asm/arch/assabet.h>
++#include <asm/arch/collie.h>
+
+ #include "mcp.h"
+
+@@ -169,6 +170,9 @@
+ if (machine_is_assabet()) {
+ ASSABET_BCR_set(ASSABET_BCR_CODEC_RST);
+ }
++ if (machine_is_collie()) {
++ GPSR |= COLLIE_GPIO_UCB1x00_RESET;
++ }
+
+ /*
+ * Setup the PPC unit correctly.
diff --git a/packages/linux/linux-rp-2.6.26/collie.patch b/packages/linux/linux-rp-2.6.26/collie.patch
index 6dad0027c6..750be8ecf3 100644
--- a/packages/linux/linux-rp-2.6.26/collie.patch
+++ b/packages/linux/linux-rp-2.6.26/collie.patch
@@ -1,8 +1,8 @@
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index c7ad324..daa2e0a 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -998,7 +998,7 @@ config CPU_FREQ_SA1100
+Index: linux-2.6.26/arch/arm/Kconfig
+===================================================================
+--- linux-2.6.26.orig/arch/arm/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/Kconfig 2008-10-17 18:15:31.391792839 +0200
+@@ -967,7 +967,7 @@
config CPU_FREQ_SA1110
bool
@@ -11,11 +11,24 @@ index c7ad324..daa2e0a 100644
default y
config CPU_FREQ_INTEGRATOR
-diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c
-index e508028..36f726c 100644
---- a/arch/arm/mach-sa1100/dma.c
-+++ b/arch/arm/mach-sa1100/dma.c
-@@ -39,7 +39,7 @@ typedef struct {
+Index: linux-2.6.26/arch/arm/mach-sa1100/collie.c
+===================================================================
+--- linux-2.6.26.orig/arch/arm/mach-sa1100/collie.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/mach-sa1100/collie.c 2008-10-17 18:15:31.391792839 +0200
+@@ -206,7 +206,7 @@
+ }
+
+ static struct flash_platform_data collie_flash_data = {
+- .map_name = "cfi_probe",
++ .map_name = "sharp",
+ .set_vpp = collie_set_vpp,
+ .parts = collie_partitions,
+ .nr_parts = ARRAY_SIZE(collie_partitions),
+Index: linux-2.6.26/arch/arm/mach-sa1100/dma.c
+===================================================================
+--- linux-2.6.26.orig/arch/arm/mach-sa1100/dma.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/arch/arm/mach-sa1100/dma.c 2008-10-17 18:15:31.399789199 +0200
+@@ -39,7 +39,7 @@
static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS];
@@ -24,11 +37,11 @@ index e508028..36f726c 100644
static irqreturn_t dma_irq_handler(int irq, void *dev_id)
-diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c
-index 9caed30..79e19bf 100644
---- a/drivers/input/keyboard/locomokbd.c
-+++ b/drivers/input/keyboard/locomokbd.c
-@@ -265,6 +265,7 @@ static int __devinit locomokbd_probe(struct locomo_dev *dev)
+Index: linux-2.6.26/drivers/input/keyboard/locomokbd.c
+===================================================================
+--- linux-2.6.26.orig/drivers/input/keyboard/locomokbd.c 2008-10-17 18:13:16.000000000 +0200
++++ linux-2.6.26/drivers/input/keyboard/locomokbd.c 2008-10-17 18:15:31.403791239 +0200
+@@ -272,6 +272,7 @@
for (i = 0; i < LOCOMOKBD_NUMKEYS; i++)
set_bit(locomokbd->keycode[i], input_dev->keybit);
clear_bit(0, input_dev->keybit);
@@ -36,11 +49,11 @@ index 9caed30..79e19bf 100644
/* attempt to get the interrupt */
err = request_irq(dev->irq[0], locomokbd_interrupt, 0, "locomokbd", locomokbd);
-diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
-index 9f93c29..33fc5d6 100644
---- a/drivers/mfd/Kconfig
-+++ b/drivers/mfd/Kconfig
-@@ -72,4 +72,10 @@ config MCP_UCB1200_TS
+Index: linux-2.6.26/drivers/mfd/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/Kconfig 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/mfd/Kconfig 2008-10-17 18:15:31.403791239 +0200
+@@ -77,4 +77,10 @@
tristate "Touchscreen interface support"
depends on MCP_UCB1200 && INPUT
@@ -51,11 +64,11 @@ index 9f93c29..33fc5d6 100644
+ Driver for touchscreen on collie - sharp sl-5500.
+
endmenu
-diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
-index 33daa2f..0885ccd 100644
---- a/drivers/mfd/Makefile
-+++ b/drivers/mfd/Makefile
-@@ -16,7 +16,7 @@ obj-$(CONFIG_MCP) += mcp-core.o
+Index: linux-2.6.26/drivers/mfd/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/Makefile 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/mfd/Makefile 2008-10-17 18:15:31.407791679 +0200
+@@ -14,7 +14,7 @@
obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o
obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o
obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o
@@ -64,11 +77,10 @@ index 33daa2f..0885ccd 100644
ifeq ($(CONFIG_SA1100_ASSABET),y)
obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o
endif
-diff --git a/drivers/mfd/collie-ts.c b/drivers/mfd/collie-ts.c
-new file mode 100644
-index 0000000..ddde5fc
---- /dev/null
-+++ b/drivers/mfd/collie-ts.c
+Index: linux-2.6.26/drivers/mfd/collie-ts.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/mfd/collie-ts.c 2008-10-17 18:15:31.415790559 +0200
@@ -0,0 +1,449 @@
+/*
+ * Touchscreen driver for UCB1x00-based touchscreens
@@ -103,9 +115,9 @@ index 0000000..ddde5fc
+#include <linux/freezer.h>
+#include <linux/slab.h>
+#include <linux/kthread.h>
++#include <linux/semaphore.h>
+
+#include <asm/dma.h>
-+#include <asm/semaphore.h>
+#include <asm/arch/collie.h>
+#include <asm/mach-types.h>
+
@@ -519,10 +531,10 @@ index 0000000..ddde5fc
+MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
+MODULE_DESCRIPTION("UCB1x00 touchscreen driver");
+MODULE_LICENSE("GPL");
-diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h
-index a8ad8a0..137b043 100644
---- a/drivers/mfd/ucb1x00.h
-+++ b/drivers/mfd/ucb1x00.h
+Index: linux-2.6.26/drivers/mfd/ucb1x00.h
+===================================================================
+--- linux-2.6.26.orig/drivers/mfd/ucb1x00.h 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mfd/ucb1x00.h 2008-10-17 18:15:31.415790559 +0200
@@ -34,7 +34,10 @@
#define UCB_IE_TCLIP (1 << 14)
#define UCB_IE_ACLIP (1 << 15)
@@ -534,28 +546,719 @@ index a8ad8a0..137b043 100644
#define UCB_TC_A 0x05
#define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */
-diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c
-index c7d5a52..215bec2 100644
---- a/drivers/mtd/maps/sa1100-flash.c
-+++ b/drivers/mtd/maps/sa1100-flash.c
-@@ -210,6 +210,12 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r
+Index: linux-2.6.26/drivers/mtd/chips/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/chips/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/chips/Kconfig 2008-10-17 18:15:31.419791479 +0200
+@@ -239,5 +239,13 @@
+ used for XIP purposes. If you're not sure what this is all about
+ then say N.
+
++config MTD_SHARP
++ tristate "pre-CFI Sharp chip support"
++ depends on MTD
++ help
++ This option enables support for flash chips using Sharp-compatible
++ commands, including some which are not CFI-compatible and hence
++ cannot be used with the CONFIG_MTD_CFI_INTELxxx options.
++
+ endmenu
+
+Index: linux-2.6.26/drivers/mtd/chips/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/chips/Makefile 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/chips/Makefile 2008-10-17 18:15:31.419791479 +0200
+@@ -12,4 +12,5 @@
+ obj-$(CONFIG_MTD_JEDECPROBE) += jedec_probe.o
+ obj-$(CONFIG_MTD_RAM) += map_ram.o
+ obj-$(CONFIG_MTD_ROM) += map_rom.o
++obj-$(CONFIG_MTD_SHARP) += sharp.o
+ obj-$(CONFIG_MTD_ABSENT) += map_absent.o
+Index: linux-2.6.26/drivers/mtd/chips/sharp.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/mtd/chips/sharp.c 2008-10-17 18:15:31.423790399 +0200
+@@ -0,0 +1,645 @@
++/*
++ * MTD chip driver for pre-CFI Sharp flash chips
++ *
++ * Copyright 2000,2001 David A. Schleef <ds@schleef.org>
++ * 2000,2001 Lineo, Inc.
++ *
++ * $Id: sharp.c,v 1.17 2005/11/29 14:28:28 gleixner Exp $
++ *
++ * Devices supported:
++ * LH28F016SCT Symmetrical block flash memory, 2Mx8
++ * LH28F008SCT Symmetrical block flash memory, 1Mx8
++ *
++ * Documentation:
++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/
++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/01symf/16m/016sctl9.pdf
++ * 016sctl9.pdf
++ *
++ * Limitations:
++ * This driver only supports 4x1 arrangement of chips.
++ * Not tested on anything but PowerPC.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/sched.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/mtd/map.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/cfi.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++
++#define CMD_RESET 0xffffffff
++#define CMD_READ_ID 0x90909090
++#define CMD_READ_STATUS 0x70707070
++#define CMD_CLEAR_STATUS 0x50505050
++#define CMD_BLOCK_ERASE_1 0x20202020
++#define CMD_BLOCK_ERASE_2 0xd0d0d0d0
++#define CMD_BYTE_WRITE 0x40404040
++#define CMD_SUSPEND 0xb0b0b0b0
++#define CMD_RESUME 0xd0d0d0d0
++#define CMD_SET_BLOCK_LOCK_1 0x60606060
++#define CMD_SET_BLOCK_LOCK_2 0x01010101
++#define CMD_SET_MASTER_LOCK_1 0x60606060
++#define CMD_SET_MASTER_LOCK_2 0xf1f1f1f1
++#define CMD_CLEAR_BLOCK_LOCKS_1 0x60606060
++#define CMD_CLEAR_BLOCK_LOCKS_2 0xd0d0d0d0
++
++#define SR_READY 0x80808080 // 1 = ready
++#define SR_ERASE_SUSPEND 0x40404040 // 1 = block erase suspended
++#define SR_ERROR_ERASE 0x20202020 // 1 = error in block erase or clear lock bits
++#define SR_ERROR_WRITE 0x10101010 // 1 = error in byte write or set lock bit
++#define SR_VPP 0x08080808 // 1 = Vpp is low
++#define SR_WRITE_SUSPEND 0x04040404 // 1 = byte write suspended
++#define SR_PROTECT 0x02020202 // 1 = lock bit set
++#define SR_RESERVED 0x01010101
++
++#define SR_ERRORS (SR_ERROR_ERASE|SR_ERROR_WRITE|SR_VPP|SR_PROTECT)
++
++#define BLOCK_MASK 0xfffe0000
++
++/* Configuration options */
++
++#define AUTOUNLOCK /* automatically unlocks blocks before erasing */
++
++static struct mtd_info *sharp_probe(struct map_info *);
++
++static int sharp_probe_map(struct map_info *map, struct mtd_info *mtd);
++
++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, u_char *buf);
++static int sharp_write(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, const u_char *buf);
++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr);
++static void sharp_sync(struct mtd_info *mtd);
++static int sharp_suspend(struct mtd_info *mtd);
++static void sharp_resume(struct mtd_info *mtd);
++static void sharp_destroy(struct mtd_info *mtd);
++
++static int sharp_write_oneword(struct map_info *map, struct flchip *chip,
++ unsigned long adr, __u32 datum);
++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr);
++#ifdef AUTOUNLOCK
++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr);
++#endif
++
++
++struct sharp_info{
++ struct flchip *chip;
++ int bogus;
++ int chipshift;
++ int numchips;
++ struct flchip chips[1];
++};
++
++static void sharp_destroy(struct mtd_info *mtd);
++
++static struct mtd_chip_driver sharp_chipdrv = {
++ .probe = sharp_probe,
++ .destroy = sharp_destroy,
++ .name = "sharp",
++ .module = THIS_MODULE
++};
++
++static void sharp_udelay(unsigned long i) {
++ if (in_interrupt()) {
++ udelay(i);
++ } else {
++ schedule();
++ }
++}
++
++static struct mtd_info *sharp_probe(struct map_info *map)
++{
++ struct mtd_info *mtd = NULL;
++ struct sharp_info *sharp = NULL;
++ int width;
++
++ mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
++ if(!mtd)
++ return NULL;
++
++ sharp = kzalloc(sizeof(*sharp), GFP_KERNEL);
++ if(!sharp) {
++ kfree(mtd);
++ return NULL;
++ }
++
++ width = sharp_probe_map(map,mtd);
++ if(!width){
++ kfree(mtd);
++ kfree(sharp);
++ return NULL;
++ }
++
++ mtd->priv = map;
++ mtd->type = MTD_NORFLASH;
++ mtd->erase = sharp_erase;
++ mtd->read = sharp_read;
++ mtd->write = sharp_write;
++ mtd->sync = sharp_sync;
++ mtd->suspend = sharp_suspend;
++ mtd->resume = sharp_resume;
++ mtd->flags = MTD_CAP_NORFLASH;
++ mtd->writesize = 1;
++ mtd->name = map->name;
++
++ sharp->chipshift = 24;
++ sharp->numchips = 1;
++ sharp->chips[0].start = 0;
++ sharp->chips[0].state = FL_READY;
++ sharp->chips[0].mutex = &sharp->chips[0]._spinlock;
++ sharp->chips[0].word_write_time = 0;
++ init_waitqueue_head(&sharp->chips[0].wq);
++ spin_lock_init(&sharp->chips[0]._spinlock);
++
++ map->fldrv = &sharp_chipdrv;
++ map->fldrv_priv = sharp;
++
++ __module_get(THIS_MODULE);
++ return mtd;
++}
++
++static inline void sharp_send_cmd(struct map_info *map, unsigned long cmd, unsigned long adr)
++{
++ map_word map_cmd;
++ map_cmd.x[0] = cmd;
++ map_write(map, map_cmd, adr);
++}
++
++static int sharp_probe_map(struct map_info *map,struct mtd_info *mtd)
++{
++ map_word tmp, read0, read4;
++ unsigned long base = 0;
++ int width = 4;
++
++ tmp = map_read(map, base+0);
++
++ sharp_send_cmd(map, CMD_READ_ID, base+0);
++
++ read0 = map_read(map, base+0);
++ read4 = map_read(map, base+4);
++ if (read0.x[0] == 0x00b000b0) {
++ printk("Sharp chip, %lx, %lx, width = %d\n", read0.x[0], read4.x[0], width);
++ /* Prints b000b0, b000b0, width = 4 on collie */
++ switch(read4.x[0]){
++ case 0xaaaaaaaa:
++ case 0xa0a0a0a0:
++ /* aa - LH28F016SCT-L95 2Mx8, 32 64k blocks*/
++ /* a0 - LH28F016SCT-Z4 2Mx8, 32 64k blocks*/
++ mtd->erasesize = 0x10000 * width;
++ mtd->size = 0x200000 * width;
++ return width;
++ case 0xa6a6a6a6:
++ /* a6 - LH28F008SCT-L12 1Mx8, 16 64k blocks*/
++ /* a6 - LH28F008SCR-L85 1Mx8, 16 64k blocks*/
++ mtd->erasesize = 0x10000 * width;
++ mtd->size = 0x100000 * width;
++ return width;
++ case 0x00b000b0:
++ /* a6 - LH28F640BFHE 8 64k * 2 chip blocks*/
++ mtd->erasesize = 0x10000 * width / 2;
++ mtd->size = 0x800000 * width / 2;
++ return width;
++ default:
++ printk("Sort-of looks like sharp flash, 0x%08lx 0x%08lx\n",
++ read0.x[0], read4.x[0]);
++ }
++ } else if ((map_read(map, base+0).x[0] == CMD_READ_ID)){
++ /* RAM, probably */
++ printk("Looks like RAM\n");
++ map_write(map, tmp, base+0);
++ }else{
++ printk("Doesn't look like sharp flash, 0x%08lx 0x%08lx\n",
++ read0.x[0], read4.x[0]);
++ }
++
++ return 0;
++}
++
++/* This function returns with the chip->mutex lock held. */
++static int sharp_wait(struct map_info *map, struct flchip *chip)
++{
++ map_word status;
++ unsigned long timeo = jiffies + HZ;
++ DECLARE_WAITQUEUE(wait, current);
++ int adr = 0;
++
++retry:
++ spin_lock_bh(chip->mutex);
++
++ switch (chip->state) {
++ case FL_READY:
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ chip->state = FL_STATUS;
++ case FL_STATUS:
++ status = map_read(map, adr);
++ if ((status.x[0] & SR_READY) == SR_READY)
++ break;
++ spin_unlock_bh(chip->mutex);
++ if (time_after(jiffies, timeo)) {
++ printk("Waiting for chip to be ready timed out in erase\n");
++ return -EIO;
++ }
++ sharp_udelay(1);
++ goto retry;
++ default:
++ set_current_state(TASK_INTERRUPTIBLE);
++ add_wait_queue(&chip->wq, &wait);
++
++ spin_unlock_bh(chip->mutex);
++
++ sharp_udelay(1);
++
++ set_current_state(TASK_RUNNING);
++ remove_wait_queue(&chip->wq, &wait);
++
++ if(signal_pending(current))
++ return -EINTR;
++
++ timeo = jiffies + HZ;
++
++ goto retry;
++ }
++
++ sharp_send_cmd(map, CMD_RESET, adr);
++
++ chip->state = FL_READY;
++
++ return 0;
++}
++
++static void sharp_release(struct flchip *chip)
++{
++ wake_up(&chip->wq);
++ spin_unlock_bh(chip->mutex);
++}
++
++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, u_char *buf)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int chipnum;
++ int ret = 0;
++ int ofs = 0;
++
++ chipnum = (from >> sharp->chipshift);
++ ofs = from & ((1 << sharp->chipshift)-1);
++
++ *retlen = 0;
++
++ while(len){
++ unsigned long thislen;
++
++ if(chipnum>=sharp->numchips)
++ break;
++
++ thislen = len;
++ if(ofs+thislen >= (1<<sharp->chipshift))
++ thislen = (1<<sharp->chipshift) - ofs;
++
++ ret = sharp_wait(map,&sharp->chips[chipnum]);
++ if(ret<0)
++ break;
++
++ map_copy_from(map,buf,ofs,thislen);
++
++ sharp_release(&sharp->chips[chipnum]);
++
++ *retlen += thislen;
++ len -= thislen;
++ buf += thislen;
++
++ ofs = 0;
++ chipnum++;
++ }
++ return ret;
++}
++
++static int sharp_write(struct mtd_info *mtd, loff_t to, size_t len,
++ size_t *retlen, const u_char *buf)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int ret = 0;
++ int i,j;
++ int chipnum;
++ unsigned long ofs;
++ union { u32 l; unsigned char uc[4]; } tbuf;
++
++ *retlen = 0;
++
++ while(len){
++ tbuf.l = 0xffffffff;
++ chipnum = to >> sharp->chipshift;
++ ofs = to & ((1<<sharp->chipshift)-1);
++
++ j=0;
++ for(i=ofs&3;i<4 && len;i++){
++ tbuf.uc[i] = *buf;
++ buf++;
++ to++;
++ len--;
++ j++;
++ }
++ sharp_write_oneword(map, &sharp->chips[chipnum], ofs&~3, tbuf.l);
++ if(ret<0)
++ return ret;
++ (*retlen)+=j;
++ }
++
++ return 0;
++}
++
++static int sharp_write_oneword(struct map_info *map, struct flchip *chip,
++ unsigned long adr, __u32 datum)
++{
++ int ret;
++ int try;
++ int i;
++ map_word data, status;
++
++ status.x[0] = 0;
++ ret = sharp_wait(map,chip);
++ if (ret < 0)
++ return ret;
++
++ for (try=0; try<10; try++) {
++ long timeo;
++
++ sharp_send_cmd(map, CMD_BYTE_WRITE, adr);
++ /* cpu_to_le32 -> hack to fix the writel be->le conversion */
++ data.x[0] = cpu_to_le32(datum);
++ map_write(map, data, adr);
++
++ chip->state = FL_WRITING;
++ timeo = jiffies + (HZ/2);
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ for(i=0;i<100;i++){
++ status = map_read(map, adr);
++ if((status.x[0] & SR_READY) == SR_READY)
++ break;
++ }
++#ifdef AUTOUNLOCK
++ if (status.x[0] & SR_PROTECT) { /* lock block */
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ sharp_unlock_oneblock(map,chip,adr);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ sharp_send_cmd(map, CMD_RESET, adr);
++ continue;
++ }
++#endif
++ if(i==100){
++ printk("sharp: timed out writing\n");
++ }
++
++ if (!(status.x[0] & SR_ERRORS))
++ break;
++
++ printk("sharp: error writing byte at addr=%08lx status=%08lx\n", adr, status.x[0]);
++
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++ }
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++
++ sharp_release(chip);
++
++ return 0;
++}
++
++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ unsigned long adr,len;
++ int chipnum, ret=0;
++
++ if(instr->addr & (mtd->erasesize - 1))
++ return -EINVAL;
++ if(instr->len & (mtd->erasesize - 1))
++ return -EINVAL;
++ if(instr->len + instr->addr > mtd->size)
++ return -EINVAL;
++
++ chipnum = instr->addr >> sharp->chipshift;
++ adr = instr->addr & ((1<<sharp->chipshift)-1);
++ len = instr->len;
++
++ while(len){
++ ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr);
++ if(ret)return ret;
++
++ if (adr >= 0xfe0000) {
++ adr += mtd->erasesize / 8;
++ len -= mtd->erasesize / 8;
++ } else {
++ adr += mtd->erasesize;
++ len -= mtd->erasesize;
++ }
++ if(adr >> sharp->chipshift){
++ adr = 0;
++ chipnum++;
++ if(chipnum>=sharp->numchips)
++ break;
++ }
++ }
++
++ instr->state = MTD_ERASE_DONE;
++ mtd_erase_callback(instr);
++
++ return 0;
++}
++
++static inline int sharp_do_wait_for_ready(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ int ret;
++ unsigned long timeo;
++ map_word status;
++ DECLARE_WAITQUEUE(wait, current);
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++
++ timeo = jiffies + HZ * 10;
++
++ while (time_before(jiffies, timeo)) {
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++ if ((status.x[0] & SR_READY) == SR_READY) {
++ ret = 0;
++ goto out;
++ }
++ set_current_state(TASK_INTERRUPTIBLE);
++ add_wait_queue(&chip->wq, &wait);
++
++ spin_unlock_bh(chip->mutex);
++
++ schedule_timeout(1);
++ schedule();
++
++ spin_lock_bh(chip->mutex);
++
++ remove_wait_queue(&chip->wq, &wait);
++ set_current_state(TASK_RUNNING);
++ }
++ ret = -ETIME;
++out:
++ return ret;
++}
++
++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ int ret;
++ map_word status;
++
++ ret = sharp_wait(map,chip);
++ if (ret < 0)
++ return ret;
++
++#ifdef AUTOUNLOCK
++ /* This seems like a good place to do an unlock */
++ sharp_unlock_oneblock(map,chip,adr);
++#endif
++
++ sharp_send_cmd(map, CMD_BLOCK_ERASE_1, adr);
++ sharp_send_cmd(map, CMD_BLOCK_ERASE_2, adr);
++
++ chip->state = FL_ERASING;
++
++ ret = sharp_do_wait_for_ready(map,chip,adr);
++ if(ret<0) {
++ spin_unlock_bh(chip->mutex);
++ return ret;
++ }
++
++ sharp_send_cmd(map, CMD_READ_STATUS, adr);
++ status = map_read(map, adr);
++
++ if (!(status.x[0] & SR_ERRORS)) {
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++ spin_unlock_bh(chip->mutex);
++ return 0;
++ }
++
++ printk("sharp: error erasing block at addr=%08lx status=%08lx\n", adr, status.x[0]);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++
++ sharp_release(chip);
++
++ return -EIO;
++}
++
++#ifdef AUTOUNLOCK
++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip,
++ unsigned long adr)
++{
++ map_word status;
++
++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_1, adr & BLOCK_MASK);
++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_2, adr & BLOCK_MASK);
++
++ sharp_do_wait_for_ready(map,chip,adr);
++
++ status = map_read(map, adr);
++
++ if (!(status.x[0] & SR_ERRORS)) {
++ sharp_send_cmd(map, CMD_RESET, adr);
++ chip->state = FL_READY;
++ return;
++ }
++
++ printk("sharp: error unlocking block at addr=%08lx status=%08lx\n", adr, status.x[0]);
++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr);
++}
++#endif
++
++static void sharp_sync(struct mtd_info *mtd)
++{
++}
++
++static int sharp_suspend(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int i;
++ struct flchip *chip;
++ int ret = 0;
++
++ for (i = 0; !ret && i < sharp->numchips; i++) {
++ chip = &sharp->chips[i];
++ ret = sharp_wait(map,chip);
++
++ if (ret) {
++ ret = -EAGAIN;
++ } else {
++ chip->state = FL_PM_SUSPENDED;
++ spin_unlock_bh(chip->mutex);
++ }
++ }
++ return ret;
++}
++
++static void sharp_resume(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++ int i;
++ struct flchip *chip;
++
++ for (i = 0; i < sharp->numchips; i++) {
++ chip = &sharp->chips[i];
++
++ spin_lock_bh(chip->mutex);
++
++ if (chip->state == FL_PM_SUSPENDED) {
++ /* We need to force it back to a known state */
++ sharp_send_cmd(map, CMD_RESET, chip->start);
++ chip->state = FL_READY;
++ wake_up(&chip->wq);
++ }
++
++ spin_unlock_bh(chip->mutex);
++ }
++}
++
++static void sharp_destroy(struct mtd_info *mtd)
++{
++ struct map_info *map = mtd->priv;
++ struct sharp_info *sharp = map->fldrv_priv;
++
++ kfree(sharp);
++}
++
++static int __init sharp_probe_init(void)
++{
++ printk("MTD Sharp chip driver <ds@lineo.com>\n");
++
++ register_mtd_chip_driver(&sharp_chipdrv);
++
++ return 0;
++}
++
++static void __exit sharp_probe_exit(void)
++{
++ unregister_mtd_chip_driver(&sharp_chipdrv);
++}
++
++module_init(sharp_probe_init);
++module_exit(sharp_probe_exit);
++
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("David Schleef <ds@schleef.org>");
++MODULE_DESCRIPTION("Old MTD chip driver for pre-CFI Sharp flash chips");
+Index: linux-2.6.26/drivers/mtd/maps/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/maps/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/maps/Kconfig 2008-10-17 18:15:31.431789839 +0200
+@@ -392,7 +392,7 @@
+
+ config MTD_SA1100
+ tristate "CFI Flash device mapped on StrongARM SA11x0"
+- depends on MTD_CFI && ARCH_SA1100 && MTD_PARTITIONS
++ depends on (MTD_CFI || MTD_SHARP) && ARCH_SA1100 && MTD_PARTITIONS
+ help
+ This enables access to the flash chips on most platforms based on
+ the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
+Index: linux-2.6.26/drivers/mtd/maps/sa1100-flash.c
+===================================================================
+--- linux-2.6.26.orig/drivers/mtd/maps/sa1100-flash.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/mtd/maps/sa1100-flash.c 2008-10-17 18:15:31.431789839 +0200
+@@ -210,6 +210,12 @@
goto err;
}
subdev->mtd->owner = THIS_MODULE;
+
+#ifdef CONFIG_SA1100_COLLIE
+ /* collie flash starts locked */
-+ if (subdev->mtd->unlock)
-+ subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000);
++// if (subdev->mtd->unlock)
++// subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000);
+#endif
printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, "
"%d-bit\n", phys, subdev->mtd->size >> 20,
-diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
-index 3b4e55c..0ae741d 100644
---- a/drivers/net/wireless/hostap/hostap_cs.c
-+++ b/drivers/net/wireless/hostap/hostap_cs.c
-@@ -35,7 +35,7 @@ static int ignore_cis_vcc;
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_cs.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c 2008-10-17 18:15:31.435790279 +0200
+@@ -35,7 +35,7 @@
module_param(ignore_cis_vcc, int, 0444);
MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry");
@@ -564,7 +1267,7 @@ index 3b4e55c..0ae741d 100644
/* struct local_info::hw_priv */
struct hostap_cs_priv {
dev_node_t node;
-@@ -499,11 +499,13 @@ static int hostap_cs_probe(struct pcmcia_device *p_dev)
+@@ -499,11 +499,13 @@
PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info);
p_dev->conf.IntType = INT_MEMORY_AND_IO;
@@ -579,10 +1282,10 @@ index 3b4e55c..0ae741d 100644
return ret;
}
-diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
-index 13d5882..6f24d66 100644
---- a/drivers/net/wireless/hostap/hostap_hw.c
-+++ b/drivers/net/wireless/hostap/hostap_hw.c
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:13:21.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:15:31.443789719 +0200
@@ -54,6 +54,7 @@
#include "hostap.h"
#include "hostap_ap.h"
@@ -591,7 +1294,7 @@ index 13d5882..6f24d66 100644
/* #define final_version */
-@@ -1497,6 +1498,8 @@ static int prism2_hw_config(struct net_device *dev, int initial)
+@@ -1534,6 +1535,8 @@
if (local->hw_downloading)
return 1;
@@ -600,7 +1303,7 @@ index 13d5882..6f24d66 100644
if (prism2_hw_init(dev, initial)) {
return local->no_pri ? 0 : 1;
}
-@@ -2628,8 +2631,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)
+@@ -2665,8 +2668,15 @@
int events = 0;
u16 ev;
@@ -616,12 +1319,12 @@ index 13d5882..6f24d66 100644
+ iface = netdev_priv(dev);
+ local = iface->local;
- prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0);
-
-diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c
-index 3a874fc..df58aa3 100644
---- a/drivers/net/wireless/hostap/hostap_pci.c
-+++ b/drivers/net/wireless/hostap/hostap_pci.c
+ if(dev->base_addr == 0)
+ {
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:13:18.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:15:31.447790279 +0200
@@ -19,6 +19,7 @@
#include "hostap_wlan.h"
@@ -630,10 +1333,10 @@ index 3a874fc..df58aa3 100644
static char *dev_info = "hostap_pci";
-diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c
-index cbf15d7..4475174 100644
---- a/drivers/net/wireless/hostap/hostap_plx.c
-+++ b/drivers/net/wireless/hostap/hostap_plx.c
+Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c
+===================================================================
+--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:13:18.000000000 +0200
++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:15:31.451790719 +0200
@@ -21,7 +21,7 @@
#include <asm/io.h>
@@ -643,11 +1346,11 @@ index cbf15d7..4475174 100644
static char *dev_info = "hostap_plx";
-diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
-index c5b2a44..eecbe8c 100644
---- a/drivers/pcmcia/sa1100_generic.c
-+++ b/drivers/pcmcia/sa1100_generic.c
-@@ -81,13 +81,14 @@ static int sa11x0_drv_pcmcia_probe(struct device *dev)
+Index: linux-2.6.26/drivers/pcmcia/sa1100_generic.c
+===================================================================
+--- linux-2.6.26.orig/drivers/pcmcia/sa1100_generic.c 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/pcmcia/sa1100_generic.c 2008-10-17 18:15:31.459789719 +0200
+@@ -81,13 +81,14 @@
return ret;
}
@@ -669,7 +1372,7 @@ index c5b2a44..eecbe8c 100644
};
/* sa11x0_pcmcia_init()
-@@ -100,7 +101,7 @@ static struct device_driver sa11x0_pcmcia_driver = {
+@@ -100,7 +101,7 @@
*/
static int __init sa11x0_pcmcia_init(void)
{
@@ -678,7 +1381,7 @@ index c5b2a44..eecbe8c 100644
}
/* sa11x0_pcmcia_exit()
-@@ -110,7 +111,7 @@ static int __init sa11x0_pcmcia_init(void)
+@@ -110,7 +111,7 @@
*/
static void __exit sa11x0_pcmcia_exit(void)
{
@@ -687,11 +1390,11 @@ index c5b2a44..eecbe8c 100644
}
MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>");
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 66ec5d8..aba38d7 100644
---- a/drivers/spi/Kconfig
-+++ b/drivers/spi/Kconfig
-@@ -123,6 +123,10 @@ config SPI_MPC52xx_PSC
+Index: linux-2.6.26/drivers/spi/Kconfig
+===================================================================
+--- linux-2.6.26.orig/drivers/spi/Kconfig 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/spi/Kconfig 2008-10-17 18:15:31.463790519 +0200
+@@ -123,6 +123,10 @@
This enables using the Freescale MPC52xx Programmable Serial
Controller in master SPI mode.
@@ -702,11 +1405,11 @@ index 66ec5d8..aba38d7 100644
config SPI_MPC83xx
tristate "Freescale MPC83xx/QUICC Engine SPI controller"
depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL
-diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
-index 7fca043..b89992b 100644
---- a/drivers/spi/Makefile
-+++ b/drivers/spi/Makefile
-@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
+Index: linux-2.6.26/drivers/spi/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/spi/Makefile 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/spi/Makefile 2008-10-17 18:15:31.463790519 +0200
+@@ -28,6 +28,7 @@
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
@@ -714,11 +1417,10 @@ index 7fca043..b89992b 100644
# ... add above this line ...
# SPI protocol drivers (device/link on bus)
-diff --git a/drivers/spi/locomo_spi.c b/drivers/spi/locomo_spi.c
-new file mode 100644
-index 0000000..d3a4bd9
---- /dev/null
-+++ b/drivers/spi/locomo_spi.c
+Index: linux-2.6.26/drivers/spi/locomo_spi.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/spi/locomo_spi.c 2008-10-17 18:15:31.471790439 +0200
@@ -0,0 +1,1097 @@
+#include <asm/io.h>
+#include <asm/irq.h>
@@ -1817,11 +2519,10 @@ index 0000000..d3a4bd9
+MODULE_AUTHOR("Thomas Kunze thommy@tabao.de");
+MODULE_DESCRIPTION("Collie mmc driver");
+MODULE_LICENSE("GPL");
-diff --git a/drivers/spi/locomo_spi.h b/drivers/spi/locomo_spi.h
-new file mode 100644
-index 0000000..7e1c0ce
---- /dev/null
-+++ b/drivers/spi/locomo_spi.h
+Index: linux-2.6.26/drivers/spi/locomo_spi.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.26/drivers/spi/locomo_spi.h 2008-10-17 18:15:31.471790439 +0200
@@ -0,0 +1,75 @@
+#include <asm/hardware/locomo.h>
+#ifndef __LOCOMO_SPI_H__
diff --git a/packages/linux/linux-rp-2.6.26/defconfig-collie b/packages/linux/linux-rp-2.6.26/defconfig-collie
index c0e3e3b448..e21cc21da2 100644
--- a/packages/linux/linux-rp-2.6.26/defconfig-collie
+++ b/packages/linux/linux-rp-2.6.26/defconfig-collie
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.26
-# Sat Jul 26 11:34:02 2008
+# Fri Oct 17 18:46:51 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -157,25 +157,6 @@ CONFIG_ARCH_SA1100=y
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_MSM7X00A is not set
-# CONFIG_ARCH_GUMSTIX is not set
-# CONFIG_ARCH_LUBBOCK is not set
-# CONFIG_MACH_LOGICPD_PXA270 is not set
-# CONFIG_MACH_MAINSTONE is not set
-# CONFIG_ARCH_PXA_IDP is not set
-# CONFIG_PXA_SHARPSL is not set
-# CONFIG_ARCH_PXA_ESERIES is not set
-# CONFIG_MACH_TRIZEPS4 is not set
-# CONFIG_MACH_HX2750 is not set
-# CONFIG_MACH_EM_X270 is not set
-# CONFIG_MACH_COLIBRI is not set
-# CONFIG_MACH_ZYLONITE is not set
-# CONFIG_MACH_LITTLETON is not set
-# CONFIG_MACH_ARMCORE is not set
-# CONFIG_MACH_MAGICIAN is not set
-# CONFIG_MACH_PCM027 is not set
-# CONFIG_MACH_HTCUNIVERSAL is not set
-# CONFIG_PXA_SHARPSL_25x is not set
-# CONFIG_PXA_SHARPSL_27x is not set
#
# SA11x0 Implementations
@@ -283,7 +264,7 @@ CONFIG_ALIGNMENT_TRAP=y
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw fbcon=rotate:1 dyntick=enable debug"
+CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=3 rw mem=64M fbcon=rotate:1 dyntick=enable debug"
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
@@ -586,10 +567,8 @@ CONFIG_MTD_BLOCK=y
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=y
+# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -600,21 +579,15 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
+CONFIG_MTD_SHARP=y
#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
CONFIG_MTD_SA1100=y
# CONFIG_MTD_PLATRAM is not set
@@ -1072,26 +1045,6 @@ CONFIG_FONT_8x8=y
# CONFIG_HID_SUPPORT is not set
CONFIG_HID=m
# CONFIG_USB_SUPPORT is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_ATMEL_USBA is not set
-# CONFIG_USB_GADGET_FSL_USB2 is not set
-# CONFIG_USB_GADGET_NET2280 is not set
-# CONFIG_USB_GADGET_PXA2XX is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_PXA27X is not set
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_ETH is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
@@ -1489,10 +1442,10 @@ CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
CONFIG_CRC7=y
CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=m
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-rp_2.6.26.bb b/packages/linux/linux-rp_2.6.26.bb
index 8ff6fc4c0d..0c76704cc5 100644
--- a/packages/linux/linux-rp_2.6.26.bb
+++ b/packages/linux/linux-rp_2.6.26.bb
@@ -1,6 +1,6 @@
require linux-rp.inc
-FILE_PR = "r2"
+FILE_PR = "r4"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_qemuarm = "-1"
@@ -81,6 +81,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 \
SRC_URI_append_collie = "\
file://collie.patch;patch=1 \
file://collie_keymap.patch;patch=1 \
+ file://collie-ucbfix.patch;patch=1 \
"
SRC_URI_append_poodle = "\
diff --git a/packages/lirc/lirc_0.8.1+cvs20070307.bb b/packages/lirc/lirc_0.8.1+cvs20070307.bb
index dc276b66cb..03397f46bd 100644
--- a/packages/lirc/lirc_0.8.1+cvs20070307.bb
+++ b/packages/lirc/lirc_0.8.1+cvs20070307.bb
@@ -15,7 +15,7 @@ RDEPENDS_lirc-x = "lirc"
RDEPENDS_lirc-exec = "lirc"
RDEPENDS_lirc-nslu2example = "lirc lirc-exec"
RRECOMMENDS_lirc = "lirc-exec"
-FILE_PR = "r1"
+FILE_PR = "r2"
# enable cvs version since until compilation issues for other packages have been fixed (cf. bug 2284 et al).
#DEFAULT_PREFERENCE = "-1"
@@ -65,7 +65,7 @@ PACKAGES =+ "lirc-x lirc-exec lirc-remotes"
PACKAGES_prepend_nslu2 = "lirc-nslu2example "
FILES_${PN}-dbg += "${bindir}/.debug ${sbindir}/.debug"
-FILES_${PN} = "${bindir} ${sbindir} ${libdir} ${sysconfdir}/init.d"
+FILES_${PN} = "${bindir} ${sbindir} ${libdir}/*.so.* ${sysconfdir}/init.d"
FILES_lirc-x = "${bindir}/irxevent ${bindir}/xmode2"
FILES_lirc-exec = "${bindir}/irexec ${sysconfdir}/init.d/lircexec"
FILES_lirc-remotes = "${datadir}/lirc/remotes"
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index c69e20d679..740677eddb 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -5,7 +5,7 @@
DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-FILE_PR = "r58"
+FILE_PR = "r59"
CONFLICTS = "db3"
COMPATIBLE_MACHINE = "nslu2|ixp4xx"
@@ -92,7 +92,6 @@ SLUGOS_PACKAGES = "\
fuse \
gawk \
gcc \
- gdb \
gdbm \
glib-2.0 \
gnu-config \
@@ -255,6 +254,7 @@ SLUGOS_BROKEN_PACKAGES = "\
ctorrent \
dsniff \
eciadsl \
+ gdb \
gspcav1 \
linphone \
lirc-modules lirc \
diff --git a/packages/pointercal/files/collie/pointercal b/packages/pointercal/files/collie/pointercal
new file mode 100755
index 0000000000..59a9f67251
--- /dev/null
+++ b/packages/pointercal/files/collie/pointercal
@@ -0,0 +1 @@
+24730 148 -1698140 -78 -18069 17111372 65536
diff --git a/packages/pointercal/pointercal_0.0.bb b/packages/pointercal/pointercal_0.0.bb
index 00cdc12ad6..06a718b6ac 100644
--- a/packages/pointercal/pointercal_0.0.bb
+++ b/packages/pointercal/pointercal_0.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Touchscreen calibration data"
SECTION = "base"
-FILE_PR = "r7"
+FILE_PR = "r8"
SRC_URI = "file://pointercal"
S = "${WORKDIR}"
diff --git a/packages/tasks/task-fso-compliance.bb b/packages/tasks/task-fso-compliance.bb
new file mode 100644
index 0000000000..c331d7a8d0
--- /dev/null
+++ b/packages/tasks/task-fso-compliance.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "The freesmartphone.org framework -- install this task to make your distribution FSO-compliant."
+SECTION = "fso/base"
+LICENSE = "MIT"
+PV = "1.0"
+FILE_PR = "r0"
+
+inherit task
+
+RDEPENDS_${PN} = "\
+ frameworkd \
+ fso-gpsd \
+"
+
+RRECOMMENDS_${PN} = "\
+ gsm0710muxd \
+"
diff --git a/packages/tasks/task-x11-illume.bb b/packages/tasks/task-x11-illume.bb
index a477c6e8c5..b84efec516 100644
--- a/packages/tasks/task-x11-illume.bb
+++ b/packages/tasks/task-x11-illume.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Illume Windowing Environment -- install this task to get the
SECTION = "x11/wm"
LICENSE = "MIT"
PV = "1.0"
-PR = "r0"
+FILE_PR = "r0"
# WORK IN PROGRESS
diff --git a/packages/tasks/task-x11.bb b/packages/tasks/task-x11.bb
index ad5ca3a412..ce1fa79bba 100644
--- a/packages/tasks/task-x11.bb
+++ b/packages/tasks/task-x11.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The X Window System -- install this task to get a client/server b
SECTION = "x11/server"
LICENSE = "MIT"
PV = "1.0"
-PR = "r0"
+FILE_PR = "r0"
# WORK IN PROGRESS
diff --git a/packages/tasks/task-xfce-base.bb b/packages/tasks/task-xfce-base.bb
index bf6813a4ef..b734341c54 100644
--- a/packages/tasks/task-xfce-base.bb
+++ b/packages/tasks/task-xfce-base.bb
@@ -4,12 +4,31 @@
DESCRIPTION = "All packages required for an base XFCE installation"
LICENSE = "MIT"
-FILE_PR = "r3"
+FILE_PR = "r4"
inherit task
-RDEPENDS_${PN} = "xfce-mcs-manager xfwm4 xfwm4-theme-default xfce-utils xfdesktop \
- xfce4-panel xfce4-panel-plugins xfce-mcs-plugins xfwm4-mcs-plugins \
- xfce4-panel-mcs-plugins \
- xfdesktop-mcs-plugins"
+RDEPENDS_${PN} = " \
+ xfce-mcs-manager \
+ xfwm4 \
+ xfwm4-theme-default \
+ xfce-utils \
+ xfdesktop \
+ xfce4-panel \
+ xfce4-panel-plugin-actions \
+ xfce4-panel-plugin-clock \
+ xfce4-panel-plugin-iconbox \
+ xfce4-panel-plugin-launcher \
+ xfce4-panel-plugin-pager \
+ xfce4-panel-plugin-separator \
+ xfce4-panel-plugin-showdesktop \
+ xfce4-panel-plugin-systray \
+ xfce4-panel-plugin-tasklist \
+ xfce4-panel-plugin-windowlist \
+ xfce-mcs-plugins \
+ xfwm4-mcs-plugins \
+ xfce4-panel-mcs-plugins \
+ xfdesktop-mcs-plugins \
+"
+
RRECOMMENDS_${PN} = "xfce-utils-mcs-plugins"
diff --git a/packages/telepathy/libtelepathy_0.3.3.bb b/packages/telepathy/libtelepathy_0.3.3.bb
index fdd310366c..23d7fc9cdf 100644
--- a/packages/telepathy/libtelepathy_0.3.3.bb
+++ b/packages/telepathy/libtelepathy_0.3.3.bb
@@ -1,5 +1,5 @@
HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-DEPENDS = "glib-2.0 dbus"
+DEPENDS = "telepathy-glib glib-2.0 dbus"
LICENSE = "LGPL"
FILE_PR = "r0"
diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb
index f05a2deb37..891ff87328 100644
--- a/packages/uclibc/bfin-uclibc_svn.bb
+++ b/packages/uclibc/bfin-uclibc_svn.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-FILE_PR = "r3"
+FILE_PR = "r4"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
require uclibc.inc
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index f20caa29f1..9b27e1f323 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -155,11 +155,6 @@ do_stage() {
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
install_dev install_runtime
- # Install into the staging dir
- oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- install_utils
-
# We don't really need this
rm -f ${UCLIBC_STAGE_PREFIX}/include/.cvsignore
diff --git a/packages/uclibc/uclibc_0.9.26.bb b/packages/uclibc/uclibc_0.9.26.bb
index ee741a893c..f4b7aa3c28 100644
--- a/packages/uclibc/uclibc_0.9.26.bb
+++ b/packages/uclibc/uclibc_0.9.26.bb
@@ -1,4 +1,4 @@
-FILE_PR = "r11"
+FILE_PR = "r12"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.27.bb b/packages/uclibc/uclibc_0.9.27.bb
index 367964a2e1..049017b2fb 100644
--- a/packages/uclibc/uclibc_0.9.27.bb
+++ b/packages/uclibc/uclibc_0.9.27.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-FILE_PR = "r11"
+FILE_PR = "r12"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb
index d4c3b174ee..9b6c342080 100644
--- a/packages/uclibc/uclibc_0.9.28.bb
+++ b/packages/uclibc/uclibc_0.9.28.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-FILE_PR = "r16"
+FILE_PR = "r17"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index bd350dd144..7d659160f4 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-FILE_PR = "r28"
+FILE_PR = "r29"
DEFAULT_PREFERENCE = "1"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_nptl.bb b/packages/uclibc/uclibc_nptl.bb
index c1506bc7b6..b441cb821f 100644
--- a/packages/uclibc/uclibc_nptl.bb
+++ b/packages/uclibc/uclibc_nptl.bb
@@ -8,7 +8,7 @@
#
UCLIBC_BASE ?= "0.9.29"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-FILE_PR = "r2"
+FILE_PR = "r3"
#DEFAULT_PREFERENCE = "2"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.
diff --git a/packages/uclibc/uclibc_svn.bb b/packages/uclibc/uclibc_svn.bb
index ee30f20396..d643b43769 100644
--- a/packages/uclibc/uclibc_svn.bb
+++ b/packages/uclibc/uclibc_svn.bb
@@ -8,7 +8,7 @@
#
UCLIBC_BASE ?= "0.9.29"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-FILE_PR = "r16"
+FILE_PR = "r17"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.
diff --git a/packages/unicap/ucview_0.22.bb b/packages/unicap/ucview_0.22.bb
new file mode 100644
index 0000000000..dde8fd1be5
--- /dev/null
+++ b/packages/unicap/ucview_0.22.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Simple camera capture GUI based on unicap."
+SECTION = "graphics"
+LICENSE = "GPL"
+DEPENDS = "intltool-native gtk+ libpng unicap gconf libglade gdk-pixbuf-csource-native"
+PR = "r0"
+
+SRC_URI = "http://www.unicap-imaging.org/downloads/${P}.tar.gz"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " ${datadir}/dbus-1 ${datadir}/icons"
+FILES_${PN}-dbg += " ${libdir}/ucview/plugins/.debug"
diff --git a/packages/unicap/unicap-0.9.3/pkgconfig.patch b/packages/unicap/unicap-0.9.3/pkgconfig.patch
new file mode 100644
index 0000000000..ce5ac2085f
--- /dev/null
+++ b/packages/unicap/unicap-0.9.3/pkgconfig.patch
@@ -0,0 +1,9 @@
+--- unicap-0.9.3/libucil/libucil.pc.in~ 2008-10-17 21:40:01.000000000 +0200
++++ unicap-0.9.3/libucil/libucil.pc.in 2008-10-17 21:40:01.000000000 +0200
+@@ -5,5 +5,5 @@
+ Description: Unicap Imaging Library is a set of simple image processing functions
+ Version: @dist_version@
+ Libs: -L@libdir@ -lucil @GLIB_PACKAGE_LIBS@ @PANGO_PACKAGE_LIBS@ @AVCODEC_PACKAGE_LIBS@ @THEORA_PACKAGE_LIBS@ @PNG_PACKAGE_LIBS@ -lm
+-Cflags: -I@includedir@/unicap @GLIB_PACKAGE_CFLAGS@ @PANGO_PACKAGE_CFLAGS@ @AVCODEC_PACKAGE_CFLAGS@ @THEORA_PACKAGE_CFLAGS@ @PNG_PACKAGE_CFLAGS@
++Cflags: -I@includedir@/unicap
+ Requires: libunicap pangoft2 glib-2.0
diff --git a/packages/unicap/unicap_0.9.3.bb b/packages/unicap/unicap_0.9.3.bb
new file mode 100644
index 0000000000..c527c80819
--- /dev/null
+++ b/packages/unicap/unicap_0.9.3.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A uniform interface to video capture devices."
+SECTION = "graphics"
+LICENSE = "GPL"
+DEPENDS = "intltool-native gtk+ libpng libxv"
+PR = "r0"
+
+SRC_URI = "http://www.unicap-imaging.org/downloads/unicap-${PV}.tar.gz \
+ file://pkgconfig.patch;patch=1"
+
+inherit autotools pkgconfig
+
+do_stage () {
+ autotools_stage_all
+}
+
+PACKAGES += "libucil libunicapgtk"
+
+FILES_${PN} = "${libdir}/libunicap.*so.* ${libdir}/unicap2/cpi/lib*.*so.*"
+FILES_${PN}-dev += " ${libdir}/unicap2/cpi/lib*.*so ${libdir}/unicap2/cpi/lib*.*a"
+FILES_${PN}-dbg += " ${libdir}/unicap2/cpi/.debug"
+FILES_libucil = "${libdir}/libucil*so.*"
+FILES_libunicapgtk = "${libdir}/libunicapgtk*so.*"
diff --git a/packages/wt/files/cmakelist.patch b/packages/wt/files/cmakelist.patch
new file mode 100644
index 0000000000..9e1eab1835
--- /dev/null
+++ b/packages/wt/files/cmakelist.patch
@@ -0,0 +1,26 @@
+diff -urN wt-2.2.0.orig/src/CMakeLists.txt wt-2.2.0/src/CMakeLists.txt
+--- wt-2.2.0.orig/src/CMakeLists.txt 2008-09-10 15:58:34.000000000 +0200
++++ wt-2.2.0/src/CMakeLists.txt 2008-10-18 11:12:20.000000000 +0200
+@@ -33,8 +33,12 @@
+
+ LINK_DIRECTORIES(${BOOST_LIB_DIRS})
+
+-ADD_EXECUTABLE(filetostring web/skeleton/FileToString.C)
+-GET_TARGET_PROPERTY(FILE_TO_STRING_EXE filetostring LOCATION)
++IF(CMAKE_CROSSCOMPILING)
++ ADD_EXECUTABLE(filetostring web/skeleton/FileToString.C)
++ GET_TARGET_PROPERTY(FILE_TO_STRING_EXE filetostring LOCATION)
++ELSE(CMAKE_CROSSCOMPILING)
++ SET(FILE_TO_STRING_EXE ${CMAKE_CURRENT_SOURCE_DIR}/filetostring)
++ENDIF(CMAKE_CROSSCOMPILING)
+
+ MACRO (FILE_TO_STRING infile outfile var)
+ ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${outfile}
+diff -urN wt-2.2.0.orig/src/Wt/Ext/CMakeLists.txt wt-2.2.0/src/Wt/Ext/CMakeLists.txt
+--- wt-2.2.0.orig/src/Wt/Ext/CMakeLists.txt 2008-07-15 08:25:54.000000000 +0200
++++ wt-2.2.0/src/Wt/Ext/CMakeLists.txt 2008-10-17 22:37:38.000000000 +0200
+@@ -1,2 +1,3 @@
+-INSTALL_FILES(/include/Wt/Ext "...+[^Ch~]$")
++# avoid CMake* getting included
++INSTALL_FILES(/include/Wt/Ext "^[A-Z][a-z].*[^Ch~]$")
+ INSTALL_FILES(/include/Wt/Ext ExtDllDefs.h)
diff --git a/packages/wt/wt_2.2.0.bb b/packages/wt/wt_2.2.0.bb
new file mode 100644
index 0000000000..16d8c55d2e
--- /dev/null
+++ b/packages/wt/wt_2.2.0.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "A C++ Web Toolkit"
+PRIORITY = "optional"
+SECTION = "devel"
+LICENSE = "GPL"
+DEPENDS = "boost"
+FILE_PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \
+ file://cmakelist.patch;patch=1"
+
+FILES_${PN} += "${datadir}/Wt"
+FILES_${PN}-dev += "${datadir}/cmake-2.*"
+
+inherit cmake
+
+STAGE_TEMP = "${WORKDIR}/temp-staging"
+
+do_configure_append() {
+ ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C
+}
+
+do_stage() {
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake DESTDIR="${STAGE_TEMP}" install
+ cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}
+ cp -pPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}
+ cp -pPR ${STAGE_TEMP}/${datadir}/cmake-2.* ${STAGING_DATADIR}
+ rm -rf ${STAGE_TEMP}
+}
+
diff --git a/packages/xfce/exo/configure.patch b/packages/xfce/exo/configure.patch
new file mode 100644
index 0000000000..2ccfcfc994
--- /dev/null
+++ b/packages/xfce/exo/configure.patch
@@ -0,0 +1,43 @@
+--- exo-0.3.4/configure.in~ 2007-12-02 10:37:06.000000000 -0200
++++ exo-0.3.4/configure.in 2008-06-05 17:21:42.000000000 -0300
+@@ -127,22 +127,24 @@
+ dnl ***************************************
+ dnl *** Check for strftime() extensions ***
+ dnl ***************************************
+-AC_TRY_RUN([
+- #include <string.h>
+- #include <time.h>
+- int
+- main (int argc, char **argv)
+- {
+- struct tm tm;
+- char buffer[16];
+- tm.tm_year = 81;
+- if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0)
+- return 0;
+- return 1;
+- }
+-], [
+- AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
+-])
++dnl grrrr... this doesn't work for cross compiling, define it for OE
++AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
++dnl AC_TRY_RUN([
++dnl #include <string.h>
++dnl #include <time.h>
++dnl int
++dnl main (int argc, char **argv)
++dnl {
++dnl struct tm tm;
++dnl char buffer[16];
++dnl tm.tm_year = 81;
++dnl if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0)
++dnl return 0;
++dnl return 1;
++dnl }
++dnl ], [
++dnl AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
++dnl ])
+
+ dnl ******************************
+ dnl *** Check for i18n support ***
diff --git a/packages/xfce/exo_0.3.2.bb b/packages/xfce/exo_0.3.4.bb
index b48eeba645..49ab44582c 100644
--- a/packages/xfce/exo_0.3.2.bb
+++ b/packages/xfce/exo_0.3.4.bb
@@ -1,9 +1,9 @@
-
DEPENDS = "libxfce4util xfce-mcs-manager hal liburi-perl-native python-native"
-inherit xfce
+inherit xfce
+XFCE_VERSION = 4.4.2
-SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/exo-0.3.2.tar.bz2"
+SRC_URI += " file://configure.patch;patch=1"
# Note: Python checking is broken
diff --git a/packages/xfce/gtk-xfce-engine_2.4.1.bb b/packages/xfce/gtk-xfce-engine_2.4.2.bb
index bcfecaf53b..fda9b9d833 100644
--- a/packages/xfce/gtk-xfce-engine_2.4.1.bb
+++ b/packages/xfce/gtk-xfce-engine_2.4.2.bb
@@ -1,8 +1,7 @@
DESCRIPTION = "XFCE theme for GTK"
inherit xfce
-
-SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/gtk-xfce-engine-${PV}.tar.bz2"
+XFCE_VERSION = 4.4.2
FILES_${PN} += "${libdir}/gtk-2.0/*/engines/libxfce.so \
${datadir}/themes/"
diff --git a/packages/xfce/libxfce4mcs_4.4.1.bb b/packages/xfce/libxfce4mcs_4.4.1.bb
deleted file mode 100644
index 8e2d522962..0000000000
--- a/packages/xfce/libxfce4mcs_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# libxfce4mcs OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/libxfce4mcs.inc b/packages/xfce/libxfce4mcs_4.4.2.bb
index 6ecbc8db58..20448240e2 100644
--- a/packages/xfce/libxfce4mcs.inc
+++ b/packages/xfce/libxfce4mcs_4.4.2.bb
@@ -6,7 +6,7 @@ DESCRIPTION="Settings management library used by most XFce 4 modules"
DEPENDS="libxfce4util"
SECTION = "x11/libs"
-inherit xfce
+inherit xfce pkgconfig
do_stage() {
install -d ${STAGING_INCDIR}/xfce4/libxfce4mcs
diff --git a/packages/xfce/libxfce4util_4.4.1.bb b/packages/xfce/libxfce4util_4.4.1.bb
deleted file mode 100644
index a53a83e861..0000000000
--- a/packages/xfce/libxfce4util_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# libxfce4util OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/libxfce4util.inc b/packages/xfce/libxfce4util_4.4.2.bb
index ee7b886f20..3386ad57e3 100644
--- a/packages/xfce/libxfce4util.inc
+++ b/packages/xfce/libxfce4util_4.4.2.bb
@@ -7,7 +7,7 @@ SECTION = "x11/libs"
LICENSE = "GPL"
DEPENDS = "glib-2.0 xfce4-dev-tools"
-inherit xfce
+inherit xfce pkgconfig
MACROS="m4/X11.m4 m4/debug.m4 m4/depends.m4 m4/i18n.m4"
diff --git a/packages/xfce/libxfcegui4_4.4.1.bb b/packages/xfce/libxfcegui4_4.4.1.bb
deleted file mode 100644
index a36897f822..0000000000
--- a/packages/xfce/libxfcegui4_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# libxfcegui4 OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/libxfcegui4.inc b/packages/xfce/libxfcegui4_4.4.2.bb
index 1b7703abf9..d38269d6f8 100644
--- a/packages/xfce/libxfcegui4.inc
+++ b/packages/xfce/libxfcegui4_4.4.2.bb
@@ -6,8 +6,7 @@ DESCRIPTION = "XFCE Widget library and X Window System interaction"
DEPENDS = "libxfce4util dbh libxml2 gtk+"
SECTION = "x11/libs"
-inherit xfce
-
+inherit xfce
do_stage() {
autotools_stage_all
diff --git a/packages/xfce/mousepad_0.2.12.bb b/packages/xfce/mousepad_0.2.13.bb
index 670a28dbd7..c55ce5a047 100644
--- a/packages/xfce/mousepad_0.2.12.bb
+++ b/packages/xfce/mousepad_0.2.13.bb
@@ -2,5 +2,4 @@ DESCRIPTION = "Text editor for Xfce based on Leafpad"
DEPENDS = "libxfce4util xfce-mcs-manager hal liburi-perl-native python-native"
inherit xfce
-
-SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/mousepad-${PV}.tar.bz2"
+XFCE_VERSION = 4.4.2
diff --git a/packages/xfce/orage_4.4.1.bb b/packages/xfce/orage_4.4.2.bb
index b8f5284454..b8f5284454 100644
--- a/packages/xfce/orage_4.4.1.bb
+++ b/packages/xfce/orage_4.4.2.bb
diff --git a/packages/xfce/thunar_0.8.0.bb b/packages/xfce/thunar_0.9.0.bb
index ea739e4cde..4c5f02565e 100644
--- a/packages/xfce/thunar_0.8.0.bb
+++ b/packages/xfce/thunar_0.9.0.bb
@@ -1,9 +1,10 @@
DESCRIPTION = "File manager for the Xfce Desktop Environment"
DEPENDS = "libxfcegui4 exo dbus-glib libexif xfce4-panel libice libsm"
-inherit xfce
+inherit xfce pkgconfig
-SRC_URI = "http://thunar.xfce.org/download/sources/Thunar/0.8.0/Thunar-0.8.0.tar.bz2"
+SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.2/src/Thunar-${PV}.tar.bz2"
+FILE_PR = 'r1'
S = "${WORKDIR}/Thunar-${PV}/"
@@ -12,4 +13,8 @@ FILES_${PN} += "${libdir}/thunarx-1/*.so \
${datadir}/thumbnailers \
${datadir}/Thunar \
${datadir}/xfce4"
-FILES_${PN}-dbg += "${libdir}/thunarx-1/.debug/"
+FILES_${PN}-dbg += "${libdir}/thunarx-1/.debug/ ${libexecdir}/xfce4/panel-plugins/.debug/"
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/packages/xfce/xfce-mcs-manager.inc b/packages/xfce/xfce-mcs-manager.inc
index de12b14b05..8ad747b3bc 100644
--- a/packages/xfce/xfce-mcs-manager.inc
+++ b/packages/xfce/xfce-mcs-manager.inc
@@ -14,3 +14,7 @@ do_stage() {
}
+do_stage_append () {
+ install -d ${PKG_CONFIG_DIR}
+ sed -e 's:^includedir=.*:includedir="/usr/include":;' ${S}/xfce-mcs-manager/xfce-mcs-manager.pc >${PKG_CONFIG_DIR}/xfce-mcs-manager.pc
+}
diff --git a/packages/xfce/xfce-mcs-manager_4.4.1.bb b/packages/xfce/xfce-mcs-manager_4.4.1.bb
deleted file mode 100644
index 76e0452ad8..0000000000
--- a/packages/xfce/xfce-mcs-manager_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# xfce-mcs-manager OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/xfce-mcs-manager_4.4.2.bb b/packages/xfce/xfce-mcs-manager_4.4.2.bb
new file mode 100644
index 0000000000..0b9fc43f70
--- /dev/null
+++ b/packages/xfce/xfce-mcs-manager_4.4.2.bb
@@ -0,0 +1,25 @@
+# xfce-mcs-manager OE build file
+# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see COPYING.MIT)
+
+DESCRIPTION="XFCE4 Settings manager."
+DEPENDS="libxfcegui4 libxfce4mcs intltool-native"
+SECTION = "x11"
+PR = "r1"
+
+inherit xfce
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xfce4
+ install -d ${STAGING_INCDIR}/xfce4/xfce-mcs-manager
+ install -m 644 xfce-mcs-manager/manager-plugin.h ${STAGING_INCDIR}/xfce4/xfce-mcs-manager
+}
+
+# xfce-mcs-manager.pc uses ${libdir} to indicate where the mcs plugins live
+# the standard pkgconfig mangling was confusing us. Mangling is not required
+# for this particular .pc, so the following will suffice:
+
+do_stage_append () {
+ install -d ${PKG_CONFIG_DIR}
+ sed -e 's:^includedir=.*:includedir="/usr/include":;' ${S}/xfce-mcs-manager/xfce-mcs-manager.pc >${PKG_CONFIG_DIR}/xfce-mcs-manager.pc
+}
diff --git a/packages/xfce/xfce-mcs-plugins_4.4.1.bb b/packages/xfce/xfce-mcs-plugins_4.4.1.bb
deleted file mode 100644
index bd41458757..0000000000
--- a/packages/xfce/xfce-mcs-plugins_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# xfce-mcs-plugins OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/xfce-mcs-plugins.inc b/packages/xfce/xfce-mcs-plugins_4.4.2.bb
index 80037841fa..80037841fa 100644
--- a/packages/xfce/xfce-mcs-plugins.inc
+++ b/packages/xfce/xfce-mcs-plugins_4.4.2.bb
diff --git a/packages/xfce/xfce-terminal_0.2.6.bb b/packages/xfce/xfce-terminal_0.2.8.bb
index 07a8eb6eb5..9a36c69237 100644
--- a/packages/xfce/xfce-terminal_0.2.6.bb
+++ b/packages/xfce/xfce-terminal_0.2.8.bb
@@ -3,6 +3,6 @@ DEPENDS = "exo vte dbus-glib gtk+"
inherit xfce
-SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/Terminal-${PV}.tar.bz2"
+SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.2/src/Terminal-${PV}.tar.bz2"
S = "${WORKDIR}/Terminal-${PV}"
diff --git a/packages/xfce/xfce-utils_4.4.1.bb b/packages/xfce/xfce-utils_4.4.1.bb
deleted file mode 100644
index c48026b190..0000000000
--- a/packages/xfce/xfce-utils_4.4.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-# xfce-utils OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-FILE_PR = "r1"
-require ${PN}.inc
diff --git a/packages/xfce/xfce-utils.inc b/packages/xfce/xfce-utils_4.4.2.bb
index d681fd7adb..d681fd7adb 100644
--- a/packages/xfce/xfce-utils.inc
+++ b/packages/xfce/xfce-utils_4.4.2.bb
diff --git a/packages/xfce/xfce4-appfinder_4.4.1.bb b/packages/xfce/xfce4-appfinder_4.4.1.bb
deleted file mode 100644
index 471122ea02..0000000000
--- a/packages/xfce/xfce4-appfinder_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# xfce4-appfinder build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/xfce4-appfinder.inc b/packages/xfce/xfce4-appfinder_4.4.2.bb
index ddfa3e1e4e..ddfa3e1e4e 100644
--- a/packages/xfce/xfce4-appfinder.inc
+++ b/packages/xfce/xfce4-appfinder_4.4.2.bb
diff --git a/packages/xfce/xfce4-dev-tools.inc b/packages/xfce/xfce4-dev-tools_4.4.0.1.bb
index 2116b1d414..67c2d341de 100644
--- a/packages/xfce/xfce4-dev-tools.inc
+++ b/packages/xfce/xfce4-dev-tools_4.4.0.1.bb
@@ -2,7 +2,8 @@ DESCRIPTION = "Xfce4 development tools"
SECTION = "x11/libs"
LICENSE = "GPL"
-inherit xfce
+inherit xfce
+XFCE_VERSION = 4.4.2
do_stage() {
install -d ${STAGING_DATADIR}/aclocal
diff --git a/packages/xfce/xfce4-dev-tools_4.4.0.bb b/packages/xfce/xfce4-dev-tools_4.4.0.bb
deleted file mode 100644
index bd54419686..0000000000
--- a/packages/xfce/xfce4-dev-tools_4.4.0.bb
+++ /dev/null
@@ -1 +0,0 @@
-require ${PN}.inc
diff --git a/packages/xfce/xfce4-icon-theme_4.4.1.bb b/packages/xfce/xfce4-icon-theme_4.4.2.bb
index 69d9dacbac..69d9dacbac 100644
--- a/packages/xfce/xfce4-icon-theme_4.4.1.bb
+++ b/packages/xfce/xfce4-icon-theme_4.4.2.bb
diff --git a/packages/xfce/xfce4-mixer_4.4.1.bb b/packages/xfce/xfce4-mixer_4.4.1.bb
deleted file mode 100644
index 13ba0f32e3..0000000000
--- a/packages/xfce/xfce4-mixer_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# xfce-mixer-plugin OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/xfce4-mixer.inc b/packages/xfce/xfce4-mixer_4.4.2.bb
index 4d3faed14c..60bb012810 100644
--- a/packages/xfce/xfce4-mixer.inc
+++ b/packages/xfce/xfce4-mixer_4.4.2.bb
@@ -7,3 +7,6 @@ SECTION = "x11"
DEPENDS="xfce4-panel"
inherit xfce
+
+FILES_${PN}-dev += "${libdir}/xfce4/modules/libxfce4mixer.so"
+FILES_${PN}-dbg += "${libexecdir}/xfce4/panel-plugins/.debug/"
diff --git a/packages/xfce/xfce4-panel.inc b/packages/xfce/xfce4-panel.inc
deleted file mode 100644
index be7092ab9e..0000000000
--- a/packages/xfce/xfce4-panel.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-# xfce4-panel OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-DESCRIPTION = "XFCE4 Panel"
-SECTION = "x11"
-DEPENDS = "startup-notification virtual/libx11 libxfcegui4 libxfce4mcs xfce-mcs-manager libxml2"
-
-inherit xfce
-
-EXTRA_OECONF += " --enable-startup-notification"
-
-
-do_stage() {
-autotools_stage_all
-}
-
-do_install() {
- oe_runmake DESTDIR=${D} install
-}
-
-PACKAGES += "${PN}-plugins ${PN}-mcs-plugins"
-FILES_${PN}-plugins += "${libdir}/xfce4/panel-plugins/*.so* \
- ${datadir}/xfce4/panel-plugins/*.desktop"
-FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/"
-FILES_${PN}-dbg += "${libdir}/xfce4/mcs-plugins/.debug"
diff --git a/packages/xfce/xfce4-panel_4.4.1.bb b/packages/xfce/xfce4-panel_4.4.1.bb
deleted file mode 100644
index d855f35f49..0000000000
--- a/packages/xfce/xfce4-panel_4.4.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-# xfce4-panel OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-FILE_PR ="r2"
-require ${PN}.inc
diff --git a/packages/xfce/xfce4-panel_4.4.2.bb b/packages/xfce/xfce4-panel_4.4.2.bb
new file mode 100644
index 0000000000..2fd087733e
--- /dev/null
+++ b/packages/xfce/xfce4-panel_4.4.2.bb
@@ -0,0 +1,37 @@
+# xfce4-panel OE build file
+# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see COPYING.MIT)
+
+DESCRIPTION = "XFCE4 Panel"
+SECTION = "x11"
+DEPENDS = "startup-notification virtual/libx11 libxfcegui4 libxfce4mcs xfce-mcs-manager libxml2"
+
+inherit pkgconfig xfce
+
+EXTRA_OECONF += " --enable-startup-notification"
+
+
+do_stage() {
+autotools_stage_all
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+python populate_packages_prepend() {
+ plugin_dir = bb.data.expand('${libdir}/xfce4/panel-plugins/', d)
+ plugin_name = bb.data.expand('${PN}-plugin-%s', d)
+ do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name,
+ '${PN} plugin for %s', extra_depends='', prepend=True,
+ aux_files_pattern=['${datadir}/xfce4/panel-plugins/%s.desktop',
+ '${sysconfdir}/xdg/xfce/panel/%s-*',
+ '${datadir}/icons/hicolor/48x48/apps/*-%s.png',
+ '${bindir}/*%s*'])
+}
+
+PACKAGES += "${PN}-mcs-plugins"
+PACKAGES_DYNAMIC = "${PN}-plugin-*"
+
+FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/"
+FILES_${PN}-dbg += "${libdir}/xfce4/mcs-plugins/.debug"
diff --git a/packages/xfce/xfce4-session_4.4.1.bb b/packages/xfce/xfce4-session_4.4.2.bb
index a572b80f55..a572b80f55 100644
--- a/packages/xfce/xfce4-session_4.4.1.bb
+++ b/packages/xfce/xfce4-session_4.4.2.bb
diff --git a/packages/xfce/xfdesktop/relocation-and-memleak.patch b/packages/xfce/xfdesktop/relocation-and-memleak.patch
new file mode 100644
index 0000000000..df9011d8da
--- /dev/null
+++ b/packages/xfce/xfdesktop/relocation-and-memleak.patch
@@ -0,0 +1,49 @@
+Patch taken from Gentoo at http://overlays.gentoo.org/svn/proj/alt/trunk/prefix-overlay/xfce-base/xfdesktop/files/
+
+Included by: Otavio Salvador <otavio@ossystems.com.br>
+
+diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menu-dentry.c xfdesktop-4.4.2/modules/menu/desktop-menu-dentry.c
+--- xfdesktop-4.4.2.orig/modules/menu/desktop-menu-dentry.c 2007-11-17 21:31:43.000000000 +0200
++++ xfdesktop-4.4.2/modules/menu/desktop-menu-dentry.c 2008-03-21 11:18:59.000000000 +0200
+@@ -173,7 +173,8 @@
+ if(cmpname && g_ascii_strcasecmp(name, cmpname) < 0)
+ break;
+ }
+-
++ g_list_free(items);
++
+ gtk_menu_shell_insert(menu_shell, mi, i);
+
+ return i;
+diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.c xfdesktop-4.4.2/modules/menu/desktop-menuspec.c
+--- xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.c 2007-11-17 21:31:43.000000000 +0200
++++ xfdesktop-4.4.2/modules/menu/desktop-menuspec.c 2008-03-21 11:18:59.000000000 +0200
+@@ -203,7 +203,7 @@
+ else
+ foundcat = NULL;
+ if(!foundcat) {
+- g_ptr_array_free(revpath, FALSE);
++ g_ptr_array_free(revpath, TRUE);
+ revpath = NULL;
+ break;
+ }
+@@ -220,7 +220,7 @@
+ newpath[totlen] = 0;
+
+ g_ptr_array_add(mtfpi->paths, newpath);
+- g_ptr_array_free(revpath, FALSE);
++ g_ptr_array_free(revpath, TRUE);
+ }
+ }
+ }
+diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.h xfdesktop-4.4.2/modules/menu/desktop-menuspec.h
+--- xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.h 2007-11-17 21:31:43.000000000 +0200
++++ xfdesktop-4.4.2/modules/menu/desktop-menuspec.h 2008-03-21 11:18:56.000000000 +0200
+@@ -82,6 +82,6 @@
+ * @param paths A GPtrArray obtained from either menuspec_get_path_simple() or
+ * menuspec_get_path_multilevel().
+ */
+-G_INLINE_FUNC void desktop_menuspec_path_free(GPtrArray *paths);
++void desktop_menuspec_path_free(GPtrArray *paths);
+
+ #endif /* ifdef __MENUSPEC_H__ */
diff --git a/packages/xfce/xfdesktop_4.4.1.bb b/packages/xfce/xfdesktop_4.4.1.bb
deleted file mode 100644
index bc35acad2a..0000000000
--- a/packages/xfce/xfdesktop_4.4.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-# xfdesktop OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-FILE_PR = "r2"
-require ${PN}.inc
diff --git a/packages/xfce/xfdesktop.inc b/packages/xfce/xfdesktop_4.4.2.bb
index 35c5ff5954..5b01c16e34 100644
--- a/packages/xfce/xfdesktop.inc
+++ b/packages/xfce/xfdesktop_4.4.2.bb
@@ -4,9 +4,13 @@
DESCRIPTION="xfce4 Desktop Background Manager"
SECTION = "x11/base"
-DEPENDS = "virtual/libx11 libxfcegui4 libxfce4mcs libxml2 xfce4-panel"
+DEPENDS = "virtual/libx11 libxfcegui4 libxfce4mcs libxml2 xfce4-panel thunar"
+FILE_PR = "r1"
inherit xfce
+
+SRC_URI += " file://relocation-and-memleak.patch;patch=1 "
+
PACKAGES += "xfdesktop-backdrops ${PN}-mcs-plugins"
FILES_xfdesktop-backdrops="${datadir}/xfce4/backdrops/*"
diff --git a/packages/xfce/xfprint_4.4.1.bb b/packages/xfce/xfprint_4.4.2.bb
index 19bfa0dde3..19bfa0dde3 100644
--- a/packages/xfce/xfprint_4.4.1.bb
+++ b/packages/xfce/xfprint_4.4.2.bb
diff --git a/packages/xfce/xfwm4-themes_4.4.1.bb b/packages/xfce/xfwm4-themes_4.4.1.bb
deleted file mode 100644
index c7f45d2b09..0000000000
--- a/packages/xfce/xfwm4-themes_4.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-# xfwm4-themes OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-require ${PN}.inc
diff --git a/packages/xfce/xfwm4-themes.inc b/packages/xfce/xfwm4-themes_4.4.2.bb
index 63c5ab0296..63c5ab0296 100644
--- a/packages/xfce/xfwm4-themes.inc
+++ b/packages/xfce/xfwm4-themes_4.4.2.bb
diff --git a/packages/xfce/xfwm4_4.4.1.bb b/packages/xfce/xfwm4_4.4.1.bb
deleted file mode 100644
index 1d8a176d8a..0000000000
--- a/packages/xfce/xfwm4_4.4.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-# xfwm4 OE build file
-# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see COPYING.MIT)
-
-FILE_PR ="r1"
-require ${PN}.inc
diff --git a/packages/xfce/xfwm4.inc b/packages/xfce/xfwm4_4.4.2.bb
index 211853aa18..8d1a1835cf 100644
--- a/packages/xfce/xfwm4.inc
+++ b/packages/xfce/xfwm4_4.4.2.bb
@@ -4,7 +4,7 @@
DESCRIPTION="XFCE4 Window Manager"
SECTION = "x11/wm"
-inherit xfce
+inherit xfce update-alternatives
FILES_${PN} += "${datadir}/xfwm4/defaults ${datadir}/xfwm4/themes/default.keys/*"
@@ -14,7 +14,7 @@ RDEPENDS = "xfwm4-theme-default"
EXTRA_OECONF += " --enable-startup-notification"
-PACKAGES_DYNAMIC = "xfwm4-theme-*"
+PACKAGES_DYNAMIC += "xfwm4-theme-*"
python populate_packages_prepend () {
themedir = bb.data.expand('${datadir}/themes', d)
@@ -25,3 +25,7 @@ PACKAGES += " ${PN}-mcs-plugins"
FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/*.so"
+ALTERNATIVE_PATH = "${bindir}/xfce4-session"
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PRIORITY = "10"
diff --git a/packages/xorg-xserver/xorg-xserver-common.inc b/packages/xorg-xserver/xorg-xserver-common.inc
index 666946b71a..2c16eeacc9 100644
--- a/packages/xorg-xserver/xorg-xserver-common.inc
+++ b/packages/xorg-xserver/xorg-xserver-common.inc
@@ -13,7 +13,7 @@ resourceproto xineramaproto xtrans evieext libxkbfile libxfont libxau \
libfontenc libxdmcp libxxf86vm libxaw libxmu libxt libxpm libxext libx11 \
libxkbui libxxf86misc libxi libdmx libxtst libxres mesa"
-RDEPENDS_${PN} = "hal"
+RECOMMENDS_${PN} = "hal"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2 \