summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/distro/include/fso-autorev.inc1
-rw-r--r--conf/distro/include/sane-srcrevs.inc6
-rw-r--r--conf/machine/include/neuros.inc29
-rw-r--r--conf/machine/neuros-osd2.conf5
-rw-r--r--packages/dsplink/codec-engine_2.10.bb2
-rw-r--r--packages/dsplink/dsplink.inc3
-rw-r--r--packages/dsplink/dsplink_1.50.bb2
-rw-r--r--packages/dsplink/dsplink_1.51.00.08.bb2
-rw-r--r--packages/ffmpeg/ffmpeg_git.bb132
-rw-r--r--packages/ffmpeg/ffmpeg_svn.bb2
-rw-r--r--packages/freesmartphone/mickeydbus_git.bb18
-rw-r--r--packages/gtk-doc/gtk-doc.bb9
-rw-r--r--packages/images/dsplink-test-image.bb7
-rw-r--r--packages/images/fso-image.bb1
-rw-r--r--packages/images/neuros-osd-base-image.bb16
-rw-r--r--packages/linux/linux-neuros/neuros-osd2/defconfig4
-rw-r--r--packages/linux/linux-neuros_git.bb4
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/defconfig47
-rw-r--r--packages/linux/linux-omap2-git/omap3evm/defconfig177
-rw-r--r--packages/linux/linux-omap2-git/omap3evm/soc.patch1173
-rw-r--r--packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch43
-rw-r--r--packages/linux/linux-omap2-git/omap3evm/touchscreen.patch22
-rw-r--r--packages/linux/linux-omap2_git.bb6
-rw-r--r--packages/meta/meta-toolchain-neuros.bb14
-rw-r--r--packages/neuros-pkggen/.mtn2git_empty0
-rw-r--r--packages/neuros-pkggen/files/.mtn2git_empty0
-rw-r--r--packages/neuros-pkggen/files/Makefile68
-rw-r--r--packages/neuros-pkggen/files/Makefile.rules18
-rw-r--r--packages/neuros-pkggen/files/config40
-rw-r--r--packages/neuros-pkggen/files/crc32.c198
-rw-r--r--packages/neuros-pkggen/files/package.c410
-rw-r--r--packages/neuros-pkggen/files/package.h145
-rw-r--r--packages/neuros-pkggen/files/readme20
-rw-r--r--packages/neuros-pkggen/files/zlib.h434
-rw-r--r--packages/neuros-pkggen/neuros-pkggen-native.bb25
-rw-r--r--packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb13
-rw-r--r--packages/python/python-cython-native_0.9.6.14.bb (renamed from packages/python/python-cython-native_0.9.6.9.bb)0
-rw-r--r--packages/python/python-cython-native_0.9.8.bb9
-rw-r--r--packages/python/python-cython_0.9.6.14.bb (renamed from packages/python/python-cython_0.9.6.9.bb)4
-rw-r--r--packages/python/python-cython_0.9.8.bb16
-rw-r--r--packages/python/python-opendir/.mtn2git_empty0
-rw-r--r--packages/python/python-opendir/opendir.pyx149
-rw-r--r--packages/python/python-opendir/setup.py25
-rw-r--r--packages/python/python-opendir_1.0.bb15
-rw-r--r--packages/python/python-pyrex-native_0.9.8.4.bb (renamed from packages/python/python-pyrex-native_0.9.5.1a.bb)0
-rw-r--r--packages/python/python-pyrex_0.9.8.4.bb (renamed from packages/python/python-pyrex_0.9.5.1a.bb)0
-rw-r--r--packages/qt4/qt-embedded-4.4.0/.mtn2git_empty0
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch32
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch16
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch25
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch101
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch23
-rw-r--r--packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch23
-rw-r--r--packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch62
-rw-r--r--packages/qt4/qt-embedded-4.4.0/build-tools.patch28
-rw-r--r--packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf95
-rw-r--r--packages/qt4/qt-embedded-4.4.0/qconfig-oe.h45
-rw-r--r--packages/qt4/qt-embedded_4.4.0.bb32
-rw-r--r--packages/qt4/qt_packaging.inc37
-rw-r--r--packages/qt4/qt_staging.inc5
-rw-r--r--packages/qt4/qtopia-core_4.4.0.bb6
-rw-r--r--packages/tar/tar_1.20.bb25
-rw-r--r--packages/tasks/task-python-everything.bb3
-rw-r--r--packages/tasks/task-sdk-bare.bb23
-rw-r--r--packages/u-boot/files/Makefile-fix.patch25
-rw-r--r--packages/u-boot/files/neuros-osd2/.mtn2git_empty0
-rw-r--r--packages/u-boot/files/neuros-osd2/default-env.ascr55
-rw-r--r--packages/u-boot/u-boot-env.bb21
-rw-r--r--packages/u-boot/u-boot_git.bb7
-rw-r--r--packages/uicmoc/uicmoc4-native_4.4.0.bb7
-rw-r--r--packages/webkit/webkit-gtk/GNUmakefile.am125
-rw-r--r--packages/webkit/webkit-gtk/Makefile4
-rw-r--r--packages/webkit/webkit-gtk/configure.ac163
-rw-r--r--packages/webkit/webkit-gtk/update-webkit.sh (renamed from packages/webkit/files/update-webkit.sh)0
-rw-r--r--packages/webkit/webkit-gtk_svn.bb2
75 files changed, 4093 insertions, 211 deletions
diff --git a/conf/distro/include/fso-autorev.inc b/conf/distro/include/fso-autorev.inc
index da6dafd6bc..33380b6dd4 100644
--- a/conf/distro/include/fso-autorev.inc
+++ b/conf/distro/include/fso-autorev.inc
@@ -2,6 +2,7 @@ SRCREV_pn-frameworkd = "${AUTOREV}"
SRCREV_pn-gsm0710muxd = "${AUTOREV}"
SRCREV_pn-gsmd2 = "${AUTOREV}"
SRCREV_pn-pygsm = "${AUTOREV}"
+SRCREV_pn-mickeydbus = "${AUTOREV}"
SRCREV_pn-mickeyterm = "${AUTOREV}"
SRCREV_pn-pyneod = "${AUTOREV}"
SRCREV_pn-pynoeg = "${AUTOREV}"
diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc
index 6e5ca31d8b..f646ee55cb 100644
--- a/conf/distro/include/sane-srcrevs.inc
+++ b/conf/distro/include/sane-srcrevs.inc
@@ -38,7 +38,6 @@ SRCREV_pn-ezxd ?= "2074"
SRCREV_pn-elf2flt ?= "1786"
SRCREV_pn-epiphany ?= "7837"
SRCREV_pn-fbgrab-viewer-native ?= "1943"
-SRCREV_pn-ffmpeg ?= "12186"
SRCREV_pn-frameworkd ?= "0c2b55d857ac1e62c1c8538b86c0d8d62a80ccd6"
SRCREV_pn-fstests ?= "204"
SRCREV_pn-gconf-dbus ?= "641"
@@ -81,6 +80,7 @@ SRCREV_pn-matchbox-keyboard ?= "1910"
SRCREV_pn-matchbox-keyboard-inputmethod ?= "1910"
SRCREV_pn-matchbox-panel-2 ?= "1626"
SRCREV_pn-matchbox-stroke ?= "1820"
+SRCREV_pn-mickeydbus ?= "5cf2a90d86601b2666b4634784853fb51d0d5896"
SRCREV_pn-mickeyterm ?= "af7c48d424f9c03f7aa8979f1c06e3b2c70acdff"
SRCREV_pn-moko-gtk-engine ?= "3612"
SRCREV_pn-mpd-alsa ?= "6952"
@@ -154,7 +154,7 @@ SRCREV_pn-openmoko-theme-standard2-qvga ?= "3425"
SRCREV_pn-openmoko-today ?= "3056"
SRCREV_pn-openmoko-today2 ?= "4168"
SRCREV_pn-openmoko-today2-folders ?= "3704"
-SRCREV_pn-openmoko-toolchain-scripts ?= "3767"
+SRCREV_pn-openmoko-toolchain-scripts ?= "4430"
SRCREV_pn-openmoko-worldclock2 ?= "3365"
SRCREV_pn-openocd ?= "517"
SRCREV_pn-openocd-native ?= "517"
@@ -187,7 +187,7 @@ SRCREV_pn-tmut ?= "60"
SRCREV_pn-u-boot-openmoko ?= "4297"
SRCREV_pn-usbpath ?= "3172"
SRCREV_pn-usbpath-native ?= "3172"
-SRCREV_pn-webkit-gtk ?= "32839"
+SRCREV_pn-webkit-gtk ?= "35062"
SRCREV_pn-webkit-qt ?= "28656"
SRCREV_pn-webkit-qtopia ?= "28656"
SRCREV_pn-wesnoth ?= "22021"
diff --git a/conf/machine/include/neuros.inc b/conf/machine/include/neuros.inc
new file mode 100644
index 0000000000..d744bf9082
--- /dev/null
+++ b/conf/machine/include/neuros.inc
@@ -0,0 +1,29 @@
+MACHINE_POSTPROCESS_COMMAND = "neuros_make_installkit"
+EXTRA_IMAGECMD_yaffs2 = "0"
+
+EXTRA_IMAGEDEPENDS += "u-boot u-boot-env virtual/kernel neuros-pkggen-native"
+
+neuros_make_installkit () {
+ cd ${DEPLOY_DIR_IMAGE}
+ rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/
+ mkdir -p ${IMAGE_NAME}-installkit/temp
+
+ # Get the latest kernel and u-boot using the foo-<machine>.bin symlinks
+ cp uImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/temp/uImage
+ [ -f u-boot-${MACHINE}.bin ] && cp u-boot-${MACHINE}.bin ${IMAGE_NAME}-installkit/u-boot.bin
+ [ -f default_env.img ] && cp default_env.img ${IMAGE_NAME}-installkit/
+
+ cp ${IMAGE_NAME}.rootfs.yaffs2 ${IMAGE_NAME}-installkit/rootfs.yaffs2
+
+ cd ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/
+ mkfs.jffs2 -d ./temp -o uImage.jffs2 -e 0x20000 -s 0x800 -n
+ echo "${MACHINE}" > rootfs.version
+ echo "${MACHINE}" > u-boot.version
+ echo "${MACHINE}" > uImage.version
+ packet_osd2 osd20.pkg '${DISTRO} Developer UPK' default_env.img u-boot.bin uImage.jffs2 rootfs.yaffs2
+ cd ${DEPLOY_DIR_IMAGE}
+
+ cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/osd20.pkg ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-osd20.pkg
+ rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/
+}
+
diff --git a/conf/machine/neuros-osd2.conf b/conf/machine/neuros-osd2.conf
index 4a540270f4..89e14ce363 100644
--- a/conf/machine/neuros-osd2.conf
+++ b/conf/machine/neuros-osd2.conf
@@ -15,14 +15,17 @@ UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
PREFERRED_VERSION_u-boot = "git"
-#UBOOT_MACHINE = "davinci_dvevm_config"
+UBOOT_MACHINE = "davinci_ntosd_644xA_config"
SERIAL_CONSOLE ?= "115200 ttyS0"
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
+IMAGE_FSTYPES += "jffs2 yaffs2"
+
ROOT_FLASH_SIZE = "29"
MACHINE_FEATURES = "kernel26 pcmcia usbhost screen"
require conf/machine/include/tune-arm926ejs.inc
+require conf/machine/include/neuros.inc
diff --git a/packages/dsplink/codec-engine_2.10.bb b/packages/dsplink/codec-engine_2.10.bb
index 8968a0ce02..b783a5ef32 100644
--- a/packages/dsplink/codec-engine_2.10.bb
+++ b/packages/dsplink/codec-engine_2.10.bb
@@ -5,7 +5,7 @@ RDEPENDS = "update-modules"
inherit module
-PR = "r1"
+PR = "r2"
PV = "2.10"
# Get CE tarball from TI website, place in sources and calculate
diff --git a/packages/dsplink/dsplink.inc b/packages/dsplink/dsplink.inc
index 2fa4aae8e0..5fdbd1de90 100644
--- a/packages/dsplink/dsplink.inc
+++ b/packages/dsplink/dsplink.inc
@@ -1,7 +1,8 @@
DESCRIPTION = "DSP Link for TI ARM/DSP processors"
DEPENDS = "virtual/kernel perl-native"
-RDEPENDS = "update-modules"
+RDEPENDS_${PN}-module = "update-modules"
+RRECOMMENDS_${PN} = "${PN}-module"
inherit module
diff --git a/packages/dsplink/dsplink_1.50.bb b/packages/dsplink/dsplink_1.50.bb
index c1b6f15694..f222fd2861 100644
--- a/packages/dsplink/dsplink_1.50.bb
+++ b/packages/dsplink/dsplink_1.50.bb
@@ -1,6 +1,6 @@
require dsplink.inc
-PR = "r4"
+PR = "r6"
PE = "1"
PV = "1.50"
diff --git a/packages/dsplink/dsplink_1.51.00.08.bb b/packages/dsplink/dsplink_1.51.00.08.bb
index 02c04aa054..41e3721a05 100644
--- a/packages/dsplink/dsplink_1.51.00.08.bb
+++ b/packages/dsplink/dsplink_1.51.00.08.bb
@@ -1,6 +1,6 @@
require dsplink.inc
-PR = "r1"
+PR = "r4"
PE = "1"
PV = "1.51"
diff --git a/packages/ffmpeg/ffmpeg_git.bb b/packages/ffmpeg/ffmpeg_git.bb
new file mode 100644
index 0000000000..c287b86623
--- /dev/null
+++ b/packages/ffmpeg/ffmpeg_git.bb
@@ -0,0 +1,132 @@
+require ffmpeg.inc
+
+DEPENDS += "libgsm"
+
+PV = "0.4.9+${PR}+gitr${SRCREV}"
+PR = "r9"
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_armv7a = "1"
+
+FFBRANCH_arm = "arm-neon"
+FFBRANCH ?= "master"
+
+SRCREV = "1e8300e71f79963eacdad6b180d9a12c4f56318d"
+SRCREV_arm = "4cc48b756abd09baa7b31909ebbc0c09be2c8e5a"
+SRC_URI = "git://git.mansr.com/ffmpeg.mru;protocol=git;branch=${FFBRANCH} \
+"
+
+S = "${WORKDIR}/git"
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
+EXTRA_FFCONF ?= ""
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --enable-pthreads \
+ --disable-stripping \
+ --enable-gpl \
+ --enable-nonfree \
+ --enable-postproc \
+ \
+ --cross-prefix=${TARGET_PREFIX} \
+ --prefix=${prefix} \
+ \
+ --enable-x11grab \
+ --enable-libfaac \
+ --enable-libfaad \
+ --enable-libfaadbin \
+ --enable-libgsm \
+ --enable-libmp3lame \
+ --enable-swscale \
+ --arch=${TARGET_ARCH} \
+ --enable-cross-compile \
+ --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+ --extra-ldflags="${TARGET_LDFLAGS}" \
+ --enable-hardcoded-tables \
+ ${EXTRA_FFCONF} \
+"
+
+do_configure() {
+ cd ${S} ; git clone git://git.mplayerhq.hu/libswscale || true
+ mkdir -p ${B}
+ cd ${B}
+ ${S}/configure ${EXTRA_OECONF}
+ sed -i -e s:Os:O4:g ${B}/config.h
+}
+
+do_stage() {
+ for lib in libavcodec libavdevice libavformat \
+ libavutil libpostproc libswscale
+ do
+ oe_libinstall -a -so -C $lib $lib ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/$lib
+ done
+
+ install -d ${STAGING_INCDIR}/ffmpeg
+
+ install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/ffmpeg/avcodec.h
+ install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/ffmpeg/opt.h
+ install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/libavcodec/avcodec.h
+ install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/libavcodec/opt.h
+
+ install -m 0644 ${S}/libavdevice/avdevice.h ${STAGING_INCDIR}/ffmpeg/avdevice.h
+
+ for h in avformat.h avio.h rtp.h rtsp.h rtspcodes.h
+ do
+ install -m 0644 ${S}/libavformat/$h ${STAGING_INCDIR}/ffmpeg/$h
+ done
+
+ for h in adler32.h avstring.h avutil.h base64.h bswap.h \
+ common.h crc.h fifo.h integer.h intfloat_readwrite.h \
+ log.h lzo.h mathematics.h md5.h mem.h random.h \
+ rational.h sha1.h
+ do
+ install -m 0644 ${S}/libavutil/$h ${STAGING_INCDIR}/ffmpeg/$h
+ install -m 0644 ${S}/libavutil/$h ${STAGING_INCDIR}/libavutil/$h
+ done
+
+ install -m 0644 ${S}/libswscale/swscale.h ${STAGING_INCDIR}/ffmpeg/swscale.h
+ install -m 0644 ${S}/libswscale/rgb2rgb.h ${STAGING_INCDIR}/ffmpeg/rgb2rgb.h
+
+ install -d ${STAGING_INCDIR}/libpostproc
+ install -d ${STAGING_INCDIR}/postproc
+ install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/libpostproc/postprocess.h
+ install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/postproc/postprocess.h
+}
+
+PACKAGES += "libavcodec libavcodec-dev libavcodec-dbg \
+ libavdevice libavdevice-dev libavdevice-dbg \
+ libavformat libavformat-dev libavformat-dbg \
+ libavutil libavutil-dev libavutil-dbg \
+ libpostproc libpostproc-dev libpostproc-dbg \
+ libswscale libswscale-dev libswscale-dbg"
+
+FILES_${PN}-dev = "${includedir}"
+FILES_libavcodec = "${libdir}/libavcodec*.so.*"
+FILES_libavcodec-dev = "${libdir}/libavcodec*.so ${libdir}/pkgconfig/libavcodec.pc ${libdir}/libavcodec*.a"
+FILES_libavcodec-dbg += "${libdir}/.debug/libavcodec*"
+
+FILES_libavdevice = "${libdir}/libavdevice*.so.*"
+FILES_libavdevice-dev = "${libdir}/libavdevice*.so ${libdir}/pkgconfig/libavdevice.pc ${libdir}/libavdevice*.a"
+FILES_libavdevice-dbg += "${libdir}/.debug/libavdevice*"
+
+FILES_libavformat = "${libdir}/libavformat*.so.*"
+FILES_libavformat-dev = "${libdir}/libavformat*.so ${libdir}/pkgconfig/libavformat.pc ${libdir}/libavformat*.a"
+FILES_libavformat-dbg += "${libdir}/.debug/libavformat*"
+
+FILES_libavutil = "${libdir}/libavutil*.so.*"
+FILES_libavutil-dev = "${libdir}/libavutil*.so ${libdir}/pkgconfig/libavutil.pc ${libdir}/libavutil*.a"
+FILES_libavutil-dbg += "${libdir}/.debug/libavutil*"
+
+FILES_libpostproc = "${libdir}/libpostproc*.so.*"
+FILES_libpostproc-dev = "${libdir}/libpostproc*.so ${libdir}/pkgconfig/libpostproc.pc ${libdir}/libpostproc*.a ${includedir}/postproc"
+FILES_libpostproc-dbg += "${libdir}/.debug/libpostproc*"
+
+FILES_libswscale = "${libdir}/libswscale*.so.*"
+FILES_libswscale-dev = "${libdir}/libswscale*.so ${libdir}/pkgconfig/libswscale.pc ${libdir}/libswscale*.a"
+FILES_libswscale-dbg += "${libdir}/.debug/libswscale*"
diff --git a/packages/ffmpeg/ffmpeg_svn.bb b/packages/ffmpeg/ffmpeg_svn.bb
index cbf9cf3980..3fef6129a7 100644
--- a/packages/ffmpeg/ffmpeg_svn.bb
+++ b/packages/ffmpeg/ffmpeg_svn.bb
@@ -2,6 +2,8 @@ require ffmpeg.inc
DEPENDS += "libgsm"
+SRCREV ?= "12186"
+
PV = "0.4.9+svnr${SRCREV}"
PR = "r0"
diff --git a/packages/freesmartphone/mickeydbus_git.bb b/packages/freesmartphone/mickeydbus_git.bb
new file mode 100644
index 0000000000..cbd90e5030
--- /dev/null
+++ b/packages/freesmartphone/mickeydbus_git.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Mickey's DBus introspection and calling Program"
+AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+PV = "0.9.0+gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "${FREESMARTPHONE_GIT}/python-helpers.git;protocol=git;branch=master"
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 mickeydbus/mdbus ${D}${bindir}
+}
+
+RDEPENDS_${PN} = "\
+ python-dbus \
+"
diff --git a/packages/gtk-doc/gtk-doc.bb b/packages/gtk-doc/gtk-doc.bb
index 8609138bac..f0dbdd0bae 100644
--- a/packages/gtk-doc/gtk-doc.bb
+++ b/packages/gtk-doc/gtk-doc.bb
@@ -1,7 +1,14 @@
SECTION = "x11/base"
SRC_URI = "file://gtk-doc.m4"
LICENSE = "LGPL"
-PR="r1"
+PR = "r2"
+
+ALLOW_EMPTY_${PN} = "1"
+
+do_install() {
+ install -d ${D}/${datadir}/aclocal
+ install -m 0644 ${WORKDIR}/gtk-doc.m4 ${D}/${datadir}/aclocal
+}
do_stage() {
install -d ${STAGING_DATADIR}/aclocal
diff --git a/packages/images/dsplink-test-image.bb b/packages/images/dsplink-test-image.bb
new file mode 100644
index 0000000000..10c3401e1f
--- /dev/null
+++ b/packages/images/dsplink-test-image.bb
@@ -0,0 +1,7 @@
+# This image is a bare-bones image to test the TI dsplink modules
+
+require minimal-image.bb
+IMAGE_INSTALL += "dsplink"
+
+export IMAGE_BASENAME = "dsplink-testing-image"
+
diff --git a/packages/images/fso-image.bb b/packages/images/fso-image.bb
index 7333b32131..c257158a12 100644
--- a/packages/images/fso-image.bb
+++ b/packages/images/fso-image.bb
@@ -39,6 +39,7 @@ X_INSTALL = "\
TOOLS_INSTALL = "\
# bash \
htop \
+ mickeydbus \
mickeyterm \
nano \
powertop \
diff --git a/packages/images/neuros-osd-base-image.bb b/packages/images/neuros-osd-base-image.bb
index ddf524574a..d2e39760c8 100644
--- a/packages/images/neuros-osd-base-image.bb
+++ b/packages/images/neuros-osd-base-image.bb
@@ -1,7 +1,15 @@
# This image is intended to be the base for further neuros images
+inherit image
+
+export IMAGE_BASENAME = "Neuros-OSD2-base-image"
+
+PR = "r1"
+
# Select which Secure Shell Daemon gets included into the rootfs
DISTRO_SSH_DAEMON ?= "dropbear"
+DISTRO_DEV_MANAGER = "mdev"
+PREFERRED_PROVIDER_hotplug = "mdev"
# Include a timestamp that initscripts can use to set the time to a
# more sane value after a reboot
@@ -9,10 +17,10 @@ IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"
IMAGE_INSTALL = "task-boot \
util-linux-mount util-linux-umount \
+ e2fsprogs dosfstools \
+ wireless-tools zd1211-firmware \
${DISTRO_SSH_DAEMON} \
- "
+ qt-embedded dbus \
+ "
IMAGE_LINGUAS = ""
-
-inherit image
-
diff --git a/packages/linux/linux-neuros/neuros-osd2/defconfig b/packages/linux/linux-neuros/neuros-osd2/defconfig
index b729767e3e..d68f2d069f 100644
--- a/packages/linux/linux-neuros/neuros-osd2/defconfig
+++ b/packages/linux/linux-neuros/neuros-osd2/defconfig
@@ -848,6 +848,8 @@ CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+CONFIG_VIDEO_DAVINCI=y
+CONFIG_VIDEO_TVP5150=y
# CONFIG_VIDEO_TVP5146 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_CPIA2 is not set
@@ -1167,7 +1169,7 @@ CONFIG_INOTIFY_USER=y
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=m
-# CONFIG_FUSE_FS is not set
+CONFIG_FUSE_FS=y
#
# CD-ROM/DVD Filesystems
diff --git a/packages/linux/linux-neuros_git.bb b/packages/linux/linux-neuros_git.bb
index db04361de6..5450fe75f8 100644
--- a/packages/linux/linux-neuros_git.bb
+++ b/packages/linux/linux-neuros_git.bb
@@ -2,10 +2,10 @@ require linux.inc
DESCRIPTION = "Linux kernel for Neuros OSD devices"
-SRCREV = "730beeee197cef4ff1e92ee322481380996a0390"
+SRCREV = "723849a80153f079a653d06a660f63fec67f6d1e"
PV = "2.6.23-${PR}+git${SRCREV}"
-PR = "r3"
+PR = "r4"
COMPATIBLE_MACHINE = "(neuros-osd|neuros-osd2)"
diff --git a/packages/linux/linux-omap2-git/beagleboard/defconfig b/packages/linux/linux-omap2-git/beagleboard/defconfig
index fa11eefc3c..0b4af695d8 100644
--- a/packages/linux/linux-omap2-git/beagleboard/defconfig
+++ b/packages/linux/linux-omap2-git/beagleboard/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.26-rc8-omap1
-# Sun Jul 6 15:22:47 2008
+# Linux kernel version: 2.6.26-rc9-omap1
+# Tue Jul 8 15:36:02 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -1037,6 +1037,7 @@ CONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
@@ -1048,9 +1049,17 @@ CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_CPIA2 is not set
@@ -1059,23 +1068,29 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_AU0828 is not set
CONFIG_V4L_USB_DRIVERS=y
-# CONFIG_VIDEO_PVRUSB2 is not set
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
# CONFIG_VIDEO_EM28XX is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_USB_VICAM is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_QUICKCAM_MESSENGER is not set
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
# CONFIG_USB_ET61X251 is not set
-# CONFIG_VIDEO_OVCAMCHIP is not set
-# CONFIG_USB_W9968CF is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_STV680 is not set
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC is not set
-# CONFIG_USB_ZR364XX is not set
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_ZR364XX=m
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_SOC_CAMERA is not set
CONFIG_RADIO_ADAPTERS=y
diff --git a/packages/linux/linux-omap2-git/omap3evm/defconfig b/packages/linux/linux-omap2-git/omap3evm/defconfig
index f74cef90ee..e61fad48d9 100644
--- a/packages/linux/linux-omap2-git/omap3evm/defconfig
+++ b/packages/linux/linux-omap2-git/omap3evm/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.26-rc3-omap1
-# Wed May 21 07:38:41 2008
+# Linux kernel version: 2.6.26-rc5-omap1
+# Sun Jun 15 21:58:01 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -42,7 +42,8 @@ CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
CONFIG_GROUP_SCHED=y
@@ -170,9 +171,9 @@ CONFIG_ARCH_OMAP3=y
#
# OMAP Feature Selections
#
-CONFIG_OMAP_DEBUG_SRAM_PATCH=y
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
+# CONFIG_OMAP_SMARTREFLEX is not set
# CONFIG_OMAP_RESET_CLOCKS is not set
CONFIG_OMAP_BOOT_TAG=y
CONFIG_OMAP_BOOT_REASON=y
@@ -186,9 +187,9 @@ CONFIG_OMAP_MCBSP=y
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
CONFIG_OMAP_DM_TIMER=y
-# CONFIG_OMAP_LL_DEBUG_UART1 is not set
+CONFIG_OMAP_LL_DEBUG_UART1=y
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
-CONFIG_OMAP_LL_DEBUG_UART3=y
+# CONFIG_OMAP_LL_DEBUG_UART3 is not set
CONFIG_ARCH_OMAP34XX=y
CONFIG_ARCH_OMAP3430=y
@@ -232,10 +233,6 @@ CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_LOCKDOWN_TO_64K_L2 is not set
-# CONFIG_CPU_LOCKDOWN_TO_128K_L2 is not set
-CONFIG_CPU_LOCKDOWN_TO_256K_L2=y
-# CONFIG_CPU_L2CACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
# CONFIG_OUTER_CACHE is not set
@@ -257,7 +254,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_PREEMPT is not set
CONFIG_HZ=128
CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
+# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -286,6 +283,15 @@ CONFIG_CMDLINE=" quiet "
# CONFIG_KEXEC is not set
#
+# CPUIdle
+#
+
+#
+# CPU idle PM support
+#
+# CONFIG_CPU_IDLE is not set
+
+#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
@@ -297,9 +303,6 @@ CONFIG_CMDLINE=" quiet "
#
# At least one emulation must be selected
#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
CONFIG_VFP=y
CONFIG_VFPv3=y
# CONFIG_NEON is not set
@@ -593,9 +596,42 @@ CONFIG_HAVE_IDE=y
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_DMA is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
@@ -697,7 +733,10 @@ CONFIG_INPUT=y
#
# Userland interfaces
#
-# CONFIG_INPUT_MOUSEDEV is not set
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=y
@@ -714,7 +753,18 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_GPIO is not set
-# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
@@ -737,7 +787,10 @@ CONFIG_TOUCHSCREEN_ADS7846=y
#
# Hardware I/O ports
#
-# CONFIG_SERIO is not set
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
@@ -950,9 +1003,17 @@ CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO is not set
#
@@ -966,9 +1027,11 @@ CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
+CONFIG_SND_HWDEP=y
+CONFIG_SND_RAWMIDI=y
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_OSSEMUL=y
-# CONFIG_SND_MIXER_OSS is not set
+CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
# CONFIG_SND_DYNAMIC_MINORS is not set
@@ -1003,7 +1066,7 @@ CONFIG_SND_PCM_XRUN_DEBUG=y
#
# USB devices
#
-# CONFIG_SND_USB_AUDIO is not set
+CONFIG_SND_USB_AUDIO=y
# CONFIG_SND_USB_CAIAQ is not set
#
@@ -1027,8 +1090,6 @@ CONFIG_SND_SOC_TWL4030=y
# Open Sound System
#
CONFIG_SOUND_PRIME=y
-# CONFIG_SOUND_MSNDCLAS is not set
-# CONFIG_SOUND_MSNDPIN is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
@@ -1077,7 +1138,7 @@ CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SL811_HCD=y
CONFIG_USB_R8A66597_HCD=y
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
@@ -1086,7 +1147,6 @@ CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
CONFIG_USB_INVENTRA_DMA=y
@@ -1098,6 +1158,7 @@ CONFIG_USB_MUSB_LOGLEVEL=0
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1106,12 +1167,27 @@ CONFIG_USB_MUSB_LOGLEVEL=0
#
# may also be needed; see USB_STORAGE Help for more information
#
-# CONFIG_USB_LIBUSUAL is not set
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
CONFIG_USB_MON=y
#
@@ -1142,34 +1218,8 @@ CONFIG_USB_MON=y
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_SELECTED=y
-# 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=y
-CONFIG_USB_OMAP=m
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-# CONFIG_USB_GADGET_DUALSPEED is not set
-# CONFIG_USB_ZERO is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_G_SERIAL=m
-# CONFIG_USB_MIDI_GADGET is not set
-CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_GADGET is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
@@ -1180,6 +1230,7 @@ CONFIG_MMC_UNSAFE_RESUME=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
#
# MMC/SD Host Controller Drivers
@@ -1259,7 +1310,7 @@ CONFIG_EXT3_FS=y
CONFIG_JBD=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_POSIX_ACL is not set
@@ -1327,12 +1378,14 @@ CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_SUMMARY=y
-# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
+CONFIG_JFFS2_RUBIN=y
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
@@ -1461,7 +1514,7 @@ CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_LL is not set
# CONFIG_DEBUG_ICEDCC is not set
#
@@ -1561,6 +1614,8 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
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-omap2-git/omap3evm/soc.patch b/packages/linux/linux-omap2-git/omap3evm/soc.patch
new file mode 100644
index 0000000000..bb97403f29
--- /dev/null
+++ b/packages/linux/linux-omap2-git/omap3evm/soc.patch
@@ -0,0 +1,1173 @@
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 3903ab7..468536d 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -44,3 +44,7 @@ config SND_SOC_CS4270_VD33_ERRATA
+ config SND_SOC_TLV320AIC3X
+ tristate
+ depends on SND_SOC && I2C
++
++config SND_SOC_TWL4030
++ tristate
++ depends on SND_SOC && I2C
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index 4e1314c..d2c0b12 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -6,6 +6,7 @@ snd-soc-wm9712-objs := wm9712.o
+ snd-soc-wm9713-objs := wm9713.o
+ snd-soc-cs4270-objs := cs4270.o
+ snd-soc-tlv320aic3x-objs := tlv320aic3x.o
++snd-soc-twl4030-objs := twl4030.o
+
+ obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
+ obj-$(CONFIG_SND_SOC_WM8731) += snd-soc-wm8731.o
+@@ -15,3 +16,4 @@ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
+ obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o
+ obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o
+ obj-$(CONFIG_SND_SOC_TLV320AIC3X) += snd-soc-tlv320aic3x.o
++obj-$(CONFIG_SND_SOC_TWL4030) += snd-soc-twl4030.o
+diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
+new file mode 100644
+index 0000000..c9eee19
+--- /dev/null
++++ b/sound/soc/codecs/twl4030.c
+@@ -0,0 +1,595 @@
++/*
++ * ALSA SoC TWL4030 codec driver
++ *
++ * Author: Steve Sakoman, <steve@sakoman.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++#include <linux/i2c/twl4030.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/initval.h>
++
++#include "twl4030.h"
++
++/*
++ * twl4030 register cache & default register settings
++ */
++static const u8 twl4030_reg[TWL4030_CACHEREGNUM] = {
++ 0x00, // this register not used
++ 0x93, // REG_CODEC_MODE (0x1)
++ 0xc3, // REG_OPTION (0x2)
++ 0x00, // REG_UNKNOWN (0x3)
++ 0x00, // REG_MICBIAS_CTL (0x4)
++ 0x34, // REG_ANAMICL (0x5)
++ 0x14, // REG_ANAMICR (0x6)
++ 0x0a, // REG_AVADC_CTL (0x7)
++ 0x00, // REG_ADCMICSEL (0x8)
++ 0x00, // REG_DIGMIXING (0x9)
++ 0x0c, // REG_ATXL1PGA (0xA)
++ 0x0c, // REG_ATXR1PGA (0xB)
++ 0x00, // REG_AVTXL2PGA (0xC)
++ 0x00, // REG_AVTXR2PGA (0xD)
++ 0x01, // REG_AUDIO_IF (0xE)
++ 0x00, // REG_VOICE_IF (0xF)
++ 0x00, // REG_ARXR1PGA (0x10)
++ 0x00, // REG_ARXL1PGA (0x11)
++ 0x6c, // REG_ARXR2PGA (0x12)
++ 0x6c, // REG_ARXL2PGA (0x13)
++ 0x00, // REG_VRXPGA (0x14)
++ 0x00, // REG_VSTPGA (0x15)
++ 0x00, // REG_VRX2ARXPGA (0x16)
++ 0x0c, // REG_AVDAC_CTL (0x17)
++ 0x00, // REG_ARX2VTXPGA (0x18)
++ 0x00, // REG_ARXL1_APGA_CTL (0x19)
++ 0x00, // REG_ARXR1_APGA_CTL (0x1A)
++ 0x4b, // REG_ARXL2_APGA_CTL (0x1B)
++ 0x4b, // REG_ARXR2_APGA_CTL (0x1C)
++ 0x00, // REG_ATX2ARXPGA (0x1D)
++ 0x00, // REG_BT_IF (0x1E)
++ 0x00, // REG_BTPGA (0x1F)
++ 0x00, // REG_BTSTPGA (0x20)
++ 0x00, // REG_EAR_CTL (0x21)
++ 0x24, // REG_HS_SEL (0x22)
++ 0x0a, // REG_HS_GAIN_SET (0x23)
++ 0x00, // REG_HS_POPN_SET (0x24)
++ 0x00, // REG_PREDL_CTL (0x25)
++ 0x00, // REG_PREDR_CTL (0x26)
++ 0x00, // REG_PRECKL_CTL (0x27)
++ 0x00, // REG_PRECKR_CTL (0x28)
++ 0x00, // REG_HFL_CTL (0x29)
++ 0x00, // REG_HFR_CTL (0x2A)
++ 0x00, // REG_ALC_CTL (0x2B)
++ 0x00, // REG_ALC_SET1 (0x2C)
++ 0x00, // REG_ALC_SET2 (0x2D)
++ 0x00, // REG_BOOST_CTL (0x2E)
++ 0x01, // REG_SOFTVOL_CTL (0x2F)
++ 0x00, // REG_DTMF_FREQSEL (0x30)
++ 0x00, // REG_DTMF_TONEXT1H (0x31)
++ 0x00, // REG_DTMF_TONEXT1L (0x32)
++ 0x00, // REG_DTMF_TONEXT2H (0x33)
++ 0x00, // REG_DTMF_TONEXT2L (0x34)
++ 0x00, // REG_DTMF_TONOFF (0x35)
++ 0x00, // REG_DTMF_WANONOFF (0x36)
++ 0x00, // REG_I2S_RX_SCRAMBLE_H (0x37)
++ 0x00, // REG_I2S_RX_SCRAMBLE_M (0x38)
++ 0x00, // REG_I2S_RX_SCRAMBLE_L (0x39)
++ 0x16, // REG_APLL_CTL (0x3A)
++ 0x00, // REG_DTMF_CTL (0x3B)
++ 0x00, // REG_DTMF_PGA_CTL2 (0x3C)
++ 0x00, // REG_DTMF_PGA_CTL1 (0x3D)
++ 0x00, // REG_MISC_SET_1 (0x3E)
++ 0x00, // REG_PCMBTMUX (0x3F)
++ 0x00, // REG_RX_PATH_SEL (0x43)
++ 0x00, // REG_VDL_APGA_CTL (0x44)
++ 0x00, // REG_VIBRA_CTL (0x45)
++ 0x00, // REG_VIBRA_SET (0x46)
++ 0x00, // REG_VIBRA_PWM_SET (0x47)
++ 0x00, // REG_ANAMIC_GAIN (0x48)
++ 0x00, // REG_MISC_SET_2 (0x49)
++};
++
++static void twl4030_dump_registers(void)
++{
++ int i = 0;
++ u8 data;
++
++ printk(KERN_INFO "TWL 4030 Register dump for Audio Module\n");
++
++ for (i = REG_CODEC_MODE; i <= REG_MISC_SET_2; i++) {
++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &data, i);
++ printk(KERN_INFO "Register[0x%02x]=0x%02x\n", i, data);
++ }
++}
++
++struct twl4030_priv {
++ unsigned int dummy;
++};
++
++/*
++ * read twl4030 register cache
++ */
++static inline unsigned int twl4030_read_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ u8 *cache = codec->reg_cache;
++
++ return cache[reg];
++}
++
++/*
++ * write twl4030 register cache
++ */
++static inline void twl4030_write_reg_cache(struct snd_soc_codec *codec,
++ u8 reg, u8 value)
++{
++ u8 *cache = codec->reg_cache;
++
++ if (reg >= TWL4030_CACHEREGNUM)
++ return;
++ cache[reg] = value;
++}
++
++/*
++ * write to the twl4030 register space
++ */
++static int twl4030_write(struct snd_soc_codec *codec,
++ unsigned int reg, unsigned int value)
++{
++ twl4030_write_reg_cache(codec, reg, value);
++ return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg);
++}
++
++static void twl4030_init_chip(void)
++{
++ unsigned char byte;
++ int i;
++
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++ twl4030_reg[REG_CODEC_MODE] & 0xfd, REG_CODEC_MODE);
++
++ udelay(10); /* 10 ms delay for power settling */
++
++ for (i = REG_OPTION; i <= REG_MISC_SET_2; i++) {
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, twl4030_reg[i], i);
++ }
++
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++ twl4030_reg[REG_CODEC_MODE], REG_CODEC_MODE);
++
++ udelay(10); /* 10 ms delay for power settling */
++
++ /* initiate offset cancellation */
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++ twl4030_reg[REG_ANAMICL] | 0x80, REG_ANAMICL);
++
++ /* wait for offset cancellation to complete */
++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte, REG_ANAMICL);
++ while ((byte & 0x80) == 0x80)
++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte, REG_ANAMICL);
++
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++ twl4030_reg[REG_MISC_SET_1] | 0x02, REG_MISC_SET_1);
++
++ twl4030_dump_registers();
++}
++
++static const struct snd_kcontrol_new twl4030_snd_controls[] = {
++ SOC_DOUBLE_R("Master Playback Volume",
++ REG_ARXL2PGA, REG_ARXR2PGA,
++ 0, 127, 0),
++ SOC_DOUBLE_R("Capture Volume",
++ REG_ATXL1PGA, REG_ATXR1PGA,
++ 0, 127, 0),
++};
++
++/* add non dapm controls */
++static int twl4030_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(twl4030_snd_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&twl4030_snd_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ return 0;
++}
++
++#define TWL4030_PWR 0
++
++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
++ SND_SOC_DAPM_INPUT("INL"),
++ SND_SOC_DAPM_INPUT("INR"),
++
++ SND_SOC_DAPM_OUTPUT("OUTL"),
++ SND_SOC_DAPM_OUTPUT("OUTR"),
++
++ SND_SOC_DAPM_DAC("DACL", "Left Playback", SND_SOC_NOPM, 0, 0),
++ SND_SOC_DAPM_DAC("DACR", "Right Playback", SND_SOC_NOPM, 0, 0),
++
++ SND_SOC_DAPM_ADC("ADCL", "Left Capture", SND_SOC_NOPM, 0, 0),
++ SND_SOC_DAPM_ADC("ADCR", "Right Capture", SND_SOC_NOPM, 0, 0),
++};
++
++static const char *intercon[][3] = {
++ /* outputs */
++ {"OUTL", NULL, "DACL"},
++ {"OUTR", NULL, "DACR"},
++
++ /* inputs */
++ {"ADCL", NULL, "INL"},
++ {"ADCR", NULL, "INR"},
++
++ /* terminator */
++ {NULL, NULL, NULL},
++};
++
++static int twl4030_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]);
++
++ /* set up audio path interconnects */
++ for (i = 0; intercon[i][0] != NULL; i++)
++ snd_soc_dapm_connect_input(codec, intercon[i][0],
++ intercon[i][1], intercon[i][2]);
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++static int twl4030_dapm_event(struct snd_soc_codec *codec, int event)
++{
++
++ printk(KERN_INFO "TWL4030 Audio Codec dapm event\n");
++ switch (event) {
++ case SNDRV_CTL_POWER_D0: /* full On */
++ break;
++ case SNDRV_CTL_POWER_D1: /* partial On */
++ case SNDRV_CTL_POWER_D2: /* partial On */
++ break;
++ case SNDRV_CTL_POWER_D3hot: /* off, with power */
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* off, without power */
++ break;
++ }
++ codec->dapm_state = event;
++
++ return 0;
++}
++
++static void twl4030_power_up (struct snd_soc_codec *codec, u8 mode)
++{
++ twl4030_write(codec, REG_CODEC_MODE, mode & ~CODECPDZ);
++ twl4030_write(codec, REG_CODEC_MODE, mode | CODECPDZ);
++ udelay(10);
++
++ u8 popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) | (0x40);
++ twl4030_write(codec, REG_HS_POPN_SET, popn);
++
++ u8 hsgain = twl4030_read_reg_cache(codec, REG_HS_GAIN_SET) | (0x0a);
++ twl4030_write(codec, REG_HS_GAIN_SET, hsgain);
++
++ popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) | (0x02);
++ twl4030_write(codec, REG_HS_POPN_SET, popn);
++}
++
++static void twl4030_power_down (struct snd_soc_codec *codec)
++{
++ u8 popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) & ~(0x02);
++ twl4030_write(codec, REG_HS_POPN_SET, popn);
++
++ u8 hsgain = twl4030_read_reg_cache(codec, REG_HS_GAIN_SET) & ~(0x0f);
++ twl4030_write(codec, REG_HS_GAIN_SET, hsgain);
++
++ popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) & ~(0x40);
++ twl4030_write(codec, REG_HS_POPN_SET, popn);
++
++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE) & ~CODECPDZ;
++ twl4030_write(codec, REG_CODEC_MODE, mode);
++ udelay(10);
++}
++
++
++static int twl4030_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ struct twl4030_priv *twl4030 = codec->private_data;
++
++ twl4030_power_down(codec);
++
++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE) & ~CODECPDZ;
++
++ mode &= ~APLL_RATE;
++ switch (params_rate(params)) {
++ case 44100:
++ printk(KERN_INFO "TWL4030 hw params: set rate to 44.1khz\n");
++ mode |= APLL_RATE_44100;
++ break;
++ case 48000:
++ printk(KERN_INFO "TWL4030 hw params: set rate to 48khz\n");
++ mode |= APLL_RATE_48000;
++ break;
++ default:
++ printk(KERN_INFO "TWL4030 hw params: unknown rate %d\n", params_rate(params));
++ return -EINVAL;
++ }
++
++ /* bit size */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ printk(KERN_INFO "TWL4030 hw params: set format to S16_LE\n");
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ printk(KERN_INFO "TWL4030 hw params: set format to S24_LE\n");
++ break;
++ default:
++ printk(KERN_INFO "TWL4030 hw params: unknown format %d\n", params_format(params));
++ return -EINVAL;
++ }
++
++ /* change rate and turn codec back on */
++ twl4030_power_up(codec, mode);
++
++ return 0;
++}
++
++static int twl4030_mute(struct snd_soc_codec_dai *dai, int mute)
++{
++ struct snd_soc_codec *codec = dai->codec;
++
++ u8 ldac_reg = twl4030_read_reg_cache(codec, REG_ARXL2PGA);
++ u8 rdac_reg = twl4030_read_reg_cache(codec, REG_ARXR2PGA);
++
++ if (mute) {
++ printk(KERN_INFO "TWL4030 Audio Codec mute\n");
++ twl4030_write(codec, REG_ARXL2PGA, 0x00);
++ twl4030_write(codec, REG_ARXR2PGA, 0x00);
++ twl4030_write_reg_cache(codec, REG_ARXL2PGA, ldac_reg);
++ twl4030_write_reg_cache(codec, REG_ARXR2PGA, rdac_reg);
++ }
++ else {
++ printk(KERN_INFO "TWL4030 Audio Codec unmute: %02x/%02x\n", ldac_reg, rdac_reg);
++ twl4030_write(codec, REG_ARXL2PGA, ldac_reg);
++ twl4030_write(codec, REG_ARXR2PGA, rdac_reg);
++ }
++
++ return 0;
++}
++
++static int twl4030_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct twl4030_priv *twl4030 = codec->private_data;
++
++ /* get current format */
++ u8 format = twl4030_read_reg_cache(codec, REG_AUDIO_IF);
++
++ /* set master/slave audio interface */
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++ printk(KERN_INFO "TWL4030 set dai fmt: master\n");
++ format &= ~(AIF_SLAVE_EN);
++ format |= CLK256FS_EN;
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ printk(KERN_INFO "TWL4030 set dai fmt: slave\n");
++ format &= ~(CLK256FS_EN);
++ format |= AIF_SLAVE_EN;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ /* interface format */
++ format &= ~AIF_FORMAT;
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ printk(KERN_INFO "TWL4030 set dai fmt: i2s\n");
++ format |= AIF_FORMAT_CODEC;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ /* turn off codec before changing format */
++ twl4030_power_down(codec);
++
++ /* change format */
++ twl4030_write(codec, REG_AUDIO_IF, format);
++
++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE);
++ twl4030_power_up(codec, mode);
++
++ return 0;
++}
++
++#define TWL4030_RATES SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000
++#define TWL4030_FORMATS SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S24_LE
++
++struct snd_soc_codec_dai twl4030_dai = {
++ .name = "twl4030",
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = TWL4030_RATES,
++ .formats = TWL4030_FORMATS,},
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = TWL4030_RATES,
++ .formats = TWL4030_FORMATS,},
++ .ops = {
++ .hw_params = twl4030_hw_params,
++ },
++ .dai_ops = {
++ .digital_mute = twl4030_mute,
++ .set_fmt = twl4030_set_dai_fmt,
++ }
++};
++
++EXPORT_SYMBOL_GPL(twl4030_dai);
++
++static int twl4030_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ printk(KERN_INFO "TWL4030 Audio Codec suspend\n");
++ twl4030_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++
++ return 0;
++}
++
++static int twl4030_resume(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++ int i;
++ u16 *cache = codec->reg_cache;
++
++ printk(KERN_INFO "TWL4030 Audio Codec resume\n");
++ /* Sync reg_cache with the hardware */
++ for (i = REG_CODEC_MODE; i <= REG_MISC_SET_2; i++) {
++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, cache[i], i);
++ }
++ twl4030_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++ twl4030_dapm_event(codec, codec->suspend_dapm_state);
++ return 0;
++}
++
++/*
++ * initialize the driver
++ * register the mixer and dsp interfaces with the kernel
++ */
++
++static int twl4030_init(struct snd_soc_device *socdev)
++{
++ struct snd_soc_codec *codec = socdev->codec;
++ int ret = 0;
++
++ printk(KERN_INFO "TWL4030 Audio Codec init \n");
++
++ twl4030_init_chip();
++
++ codec->name = "twl4030";
++ codec->owner = THIS_MODULE;
++ codec->read = twl4030_read_reg_cache;
++ codec->write = twl4030_write;
++ codec->dapm_event = twl4030_dapm_event;
++ codec->dai = &twl4030_dai;
++ codec->num_dai = 1;
++ codec->reg_cache_size = sizeof(twl4030_reg);
++ codec->reg_cache = kmemdup(twl4030_reg, sizeof(twl4030_reg), GFP_KERNEL);
++ if (codec->reg_cache == NULL)
++ return -ENOMEM;
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ printk(KERN_ERR "twl4030: failed to create pcms\n");
++ goto pcm_err;
++ }
++
++ twl4030_add_controls(codec);
++ twl4030_add_widgets(codec);
++
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0) {
++ printk(KERN_ERR "twl4030: failed to register card\n");
++ goto card_err;
++ }
++
++ return ret;
++
++card_err:
++ printk(KERN_INFO "TWL4030 Audio Codec init card error\n");
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++pcm_err:
++ printk(KERN_INFO "TWL4030 Audio Codec init pcm error\n");
++ kfree(codec->reg_cache);
++ return ret;
++}
++
++static struct snd_soc_device *twl4030_socdev;
++
++static int twl4030_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec;
++ struct twl4030_priv *twl4030;
++
++ printk(KERN_INFO "TWL4030 Audio Codec probe\n");
++
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++ twl4030 = kzalloc(sizeof(struct twl4030_priv), GFP_KERNEL);
++ if (twl4030 == NULL) {
++ kfree(codec);
++ return -ENOMEM;
++ }
++
++ codec->private_data = twl4030;
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++
++ twl4030_socdev = socdev;
++ twl4030_init(socdev);
++
++ printk(KERN_INFO "TWL4030 Audio Codec probe exit\n");
++ return 0;
++}
++
++static int twl4030_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ printk(KERN_INFO "TWL4030 Audio Codec remove\n");
++ kfree(codec->private_data);
++ kfree(codec);
++
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_twl4030 = {
++ .probe = twl4030_probe,
++ .remove = twl4030_remove,
++ .suspend = twl4030_suspend,
++ .resume = twl4030_resume,
++};
++EXPORT_SYMBOL_GPL(soc_codec_dev_twl4030);
++
++MODULE_DESCRIPTION("ASoC TWL4030 codec driver");
++MODULE_AUTHOR("Steve Sakoman");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/codecs/twl4030.h b/sound/soc/codecs/twl4030.h
+new file mode 100644
+index 0000000..af8eb43
+--- /dev/null
++++ b/sound/soc/codecs/twl4030.h
+@@ -0,0 +1,125 @@
++/*
++ * ALSA SoC TWL4030 codec driver
++ *
++ * Author: Steve Sakoman, <steve@sakoman.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __TWL4030_AUDIO_H__
++#define __TWL4030_AUDIO_H__
++
++#define REG_CODEC_MODE 0x1
++#define REG_OPTION 0x2
++#define REG_UNKNOWN 0x3
++#define REG_MICBIAS_CTL 0x4
++#define REG_ANAMICL 0x5
++#define REG_ANAMICR 0x6
++#define REG_AVADC_CTL 0x7
++#define REG_ADCMICSEL 0x8
++#define REG_DIGMIXING 0x9
++#define REG_ATXL1PGA 0xA
++#define REG_ATXR1PGA 0xB
++#define REG_AVTXL2PGA 0xC
++#define REG_AVTXR2PGA 0xD
++#define REG_AUDIO_IF 0xE
++#define REG_VOICE_IF 0xF
++#define REG_ARXR1PGA 0x10
++#define REG_ARXL1PGA 0x11
++#define REG_ARXR2PGA 0x12
++#define REG_ARXL2PGA 0x13
++#define REG_VRXPGA 0x14
++#define REG_VSTPGA 0x15
++#define REG_VRX2ARXPGA 0x16
++#define REG_AVDAC_CTL 0x17
++#define REG_ARX2VTXPGA 0x18
++#define REG_ARXL1_APGA_CTL 0x19
++#define REG_ARXR1_APGA_CTL 0x1A
++#define REG_ARXL2_APGA_CTL 0x1B
++#define REG_ARXR2_APGA_CTL 0x1C
++#define REG_ATX2ARXPGA 0x1D
++#define REG_BT_IF 0x1E
++#define REG_BTPGA 0x1F
++#define REG_BTSTPGA 0x20
++#define REG_EAR_CTL 0x21
++#define REG_HS_SEL 0x22
++#define REG_HS_GAIN_SET 0x23
++#define REG_HS_POPN_SET 0x24
++#define REG_PREDL_CTL 0x25
++#define REG_PREDR_CTL 0x26
++#define REG_PRECKL_CTL 0x27
++#define REG_PRECKR_CTL 0x28
++#define REG_HFL_CTL 0x29
++#define REG_HFR_CTL 0x2A
++#define REG_ALC_CTL 0x2B
++#define REG_ALC_SET1 0x2C
++#define REG_ALC_SET2 0x2D
++#define REG_BOOST_CTL 0x2E
++#define REG_SOFTVOL_CTL 0x2F
++#define REG_DTMF_FREQSEL 0x30
++#define REG_DTMF_TONEXT1H 0x31
++#define REG_DTMF_TONEXT1L 0x32
++#define REG_DTMF_TONEXT2H 0x33
++#define REG_DTMF_TONEXT2L 0x34
++#define REG_DTMF_TONOFF 0x35
++#define REG_DTMF_WANONOFF 0x36
++#define REG_I2S_RX_SCRAMBLE_H 0x37
++#define REG_I2S_RX_SCRAMBLE_M 0x38
++#define REG_I2S_RX_SCRAMBLE_L 0x39
++#define REG_APLL_CTL 0x3A
++#define REG_DTMF_CTL 0x3B
++#define REG_DTMF_PGA_CTL2 0x3C
++#define REG_DTMF_PGA_CTL1 0x3D
++#define REG_MISC_SET_1 0x3E
++#define REG_PCMBTMUX 0x3F
++#define REG_RX_PATH_SEL 0x43
++#define REG_VDL_APGA_CTL 0x44
++#define REG_VIBRA_CTL 0x45
++#define REG_VIBRA_SET 0x46
++#define REG_VIBRA_PWM_SET 0x47
++#define REG_ANAMIC_GAIN 0x48
++#define REG_MISC_SET_2 0x49
++
++#define TWL4030_CACHEREGNUM REG_MISC_SET_2 + 1
++
++/* Bitfield Definitions */
++
++/* CODEC_MODE Fields */
++
++#define APLL_RATE 0xF0
++#define APLL_RATE_8000 0x00
++#define APLL_RATE_11025 0x10
++#define APLL_RATE_12000 0x20
++#define APLL_RATE_16000 0x40
++#define APLL_RATE_22050 0x50
++#define APLL_RATE_24000 0x60
++#define APLL_RATE_32000 0x80
++#define APLL_RATE_44100 0x90
++#define APLL_RATE_48000 0xa0
++#define SEL_16K 0x04
++#define CODECPDZ 0x02
++#define OPT_MODE 0x01
++
++/* AUDIO_IF Fields */
++
++#define AIF_SLAVE_EN 0x80
++#define DATA_WIDTH 0x60
++#define DATA_WIDTH_16S_16W 0x00
++#define DATA_WIDTH_32S_16W 0x40
++#define DATA_WIDTH_32S_24W 0x60
++#define AIF_FORMAT 0x18
++#define AIF_FORMAT_CODEC 0x00
++#define AIF_FORMAT_LEFT 0x08
++#define AIF_FORMAT_RIGHT 0x10
++#define AIF_FORMAT_TDM 0x18
++#define AIF_TRI_EN 0x04
++#define CLK256FS_EN 0x02
++#define AIF_EN 0x01
++
++
++extern struct snd_soc_codec_dai twl4030_dai;
++extern struct snd_soc_codec_device soc_codec_dev_twl4030;
++
++#endif /* End of __TWL4030_AUDIO_H__ */
+diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
+index 0230d83..8703cea 100644
+--- a/sound/soc/omap/Kconfig
++++ b/sound/soc/omap/Kconfig
+@@ -16,4 +16,20 @@ config SND_OMAP_SOC_N810
+ help
+ Say Y if you want to add support for SoC audio on Nokia N810.
+
++config SND_OMAP_SOC_OMAP3EVM
++ tristate "SoC Audio support for OMAP3 EVM"
++ depends on SND_OMAP_SOC && MACH_OMAP3EVM
++ select SND_OMAP_SOC_MCBSP
++ select SND_SOC_TWL4030
++ help
++ Say Y if you want to add support for SoC audio on the OMAP3 EVM.
++
++config SND_OMAP_SOC_OMAP3BEAGLE
++ tristate "SoC Audio support for OMAP3 Beagle"
++ depends on SND_OMAP_SOC && MACH_OMAP3_BEAGLE
++ select SND_OMAP_SOC_MCBSP
++ select SND_SOC_TWL4030
++ help
++ Say Y if you want to add support for SoC audio on the OMAP3 Beagle.
++
+ endmenu
+diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
+index d8d8d58..638a240 100644
+--- a/sound/soc/omap/Makefile
++++ b/sound/soc/omap/Makefile
+@@ -7,5 +7,10 @@ obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o
+
+ # OMAP Machine Support
+ snd-soc-n810-objs := n810.o
++snd-soc-omap3evm-objs := omap3evm.o
++snd-soc-omap3beagle-objs := omap3beagle.o
+
+ obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o
++obj-$(CONFIG_SND_OMAP_SOC_OMAP3EVM) += snd-soc-omap3evm.o
++obj-$(CONFIG_SND_OMAP_SOC_OMAP3BEAGLE) += snd-soc-omap3beagle.o
++
+diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c
+new file mode 100644
+index 0000000..fb79938
+--- /dev/null
++++ b/sound/soc/omap/omap3beagle.c
+@@ -0,0 +1,180 @@
++/*
++ * omap3beagle.c -- SoC audio for OMAP3 Beagle
++ *
++ * Author: Steve Sakoman <steve@sakoman.com>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * version 2 as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ */
++
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/arch/hardware.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/mcbsp.h>
++
++#include "omap-mcbsp.h"
++#include "omap-pcm.h"
++#include "../codecs/twl4030.h"
++
++static int omap3beagle_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ int ret;
++
++ /* Set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0) {
++ printk(KERN_INFO "can't set codec DAI configuration\n");
++ return ret;
++ }
++
++ /* Set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0) {
++ printk(KERN_INFO "can't set cpu DAI configuration\n");
++ return ret;
++ }
++
++ return 0;
++}
++
++static struct snd_soc_ops omap3beagle_ops = {
++ .hw_params = omap3beagle_hw_params,
++};
++
++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In", NULL),
++};
++
++static const char *audio_map[][3] = {
++ {"Headphone Jack", NULL, "HPLOUT"},
++ {"Headphone Jack", NULL, "HPROUT"},
++
++ {"Line In", NULL, "Line In"},
++ {"Line In", NULL, "Line In"},
++};
++
++static int omap3beagle_twl4030_init(struct snd_soc_codec *codec)
++{
++ int i;
++
++ printk(KERN_INFO "OMAP3 Beagle TWL4030 SoC init\n");
++
++ /* Add omap3beagle specific widgets */
++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]);
++
++ /* Set up omap3beagle specific audio path audio_map */
++ for (i = 0; i < ARRAY_SIZE(audio_map); i++)
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++
++ /* always connected */
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In", 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++/* Digital audio interface glue - connects codec <--> CPU */
++static struct snd_soc_dai_link omap3beagle_dai = {
++ .name = "TWL4030",
++ .stream_name = "TWL4030",
++ .cpu_dai = &omap_mcbsp_dai[0],
++ .codec_dai = &twl4030_dai,
++ .init = omap3beagle_twl4030_init,
++ .ops = &omap3beagle_ops,
++};
++
++/* Audio machine driver */
++static struct snd_soc_machine snd_soc_machine_omap3beagle = {
++ .name = "omap3beagle",
++ .dai_link = &omap3beagle_dai,
++ .num_links = 1,
++};
++
++/* Audio subsystem */
++static struct snd_soc_device omap3beagle_snd_devdata = {
++ .machine = &snd_soc_machine_omap3beagle,
++ .platform = &omap_soc_platform,
++ .codec_dev = &soc_codec_dev_twl4030,
++};
++
++static struct platform_device *omap3beagle_snd_device;
++
++static int __init omap3beagle_soc_init(void)
++{
++ int ret;
++
++ printk(KERN_INFO "OMAP3 Beagle SoC init\n");
++ if (!machine_is_omap3_beagle()) {
++ printk(KERN_INFO "Not OMAP3 Beagle!\n");
++ return -ENODEV;
++ }
++
++ omap3beagle_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!omap3beagle_snd_device) {
++ printk(KERN_INFO "Platform device allocation failed\n");
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(omap3beagle_snd_device, &omap3beagle_snd_devdata);
++ omap3beagle_snd_devdata.dev = &omap3beagle_snd_device->dev;
++ *(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 1; /* McBSP2 */
++
++ ret = platform_device_add(omap3beagle_snd_device);
++ if (ret)
++ goto err1;
++
++ return 0;
++
++err1:
++ printk(KERN_INFO "Unable to add platform device\n");
++ platform_device_put(omap3beagle_snd_device);
++
++ return ret;
++}
++
++static void __exit omap3beagle_soc_exit(void)
++{
++ printk(KERN_INFO "OMAP3 Beagle SoC exit\n");
++ platform_device_unregister(omap3beagle_snd_device);
++}
++
++module_init(omap3beagle_soc_init);
++module_exit(omap3beagle_soc_exit);
++
++MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>");
++MODULE_DESCRIPTION("ALSA SoC OMAP3 Beagle");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c
+new file mode 100644
+index 0000000..32d4f5d
+--- /dev/null
++++ b/sound/soc/omap/omap3evm.c
+@@ -0,0 +1,180 @@
++/*
++ * omap3evm.c -- SoC audio for OMAP3 EVM
++ *
++ * Author: Steve Sakoman <steve@sakoman.com>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * version 2 as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ */
++
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/arch/hardware.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/mcbsp.h>
++
++#include "omap-mcbsp.h"
++#include "omap-pcm.h"
++#include "../codecs/twl4030.h"
++
++static int omap3evm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ int ret;
++
++ /* Set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0) {
++ printk(KERN_INFO "can't set codec DAI configuration\n");
++ return ret;
++ }
++
++ /* Set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S |
++ SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0) {
++ printk(KERN_INFO "can't set cpu DAI configuration\n");
++ return ret;
++ }
++
++ return 0;
++}
++
++static struct snd_soc_ops omap3evm_ops = {
++ .hw_params = omap3evm_hw_params,
++};
++
++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In", NULL),
++};
++
++static const char *audio_map[][3] = {
++ {"Headphone Jack", NULL, "HPLOUT"},
++ {"Headphone Jack", NULL, "HPROUT"},
++
++ {"Line In", NULL, "Line In"},
++ {"Line In", NULL, "Line In"},
++};
++
++static int omap3evm_twl4030_init(struct snd_soc_codec *codec)
++{
++ int i;
++
++ printk(KERN_INFO "OMAP3 EVM TWL4030 SoC init\n");
++
++ /* Add omap3evm specific widgets */
++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]);
++
++ /* Set up omap3evm specific audio path audio_map */
++ for (i = 0; i < ARRAY_SIZE(audio_map); i++)
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++
++ /* always connected */
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In", 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++/* Digital audio interface glue - connects codec <--> CPU */
++static struct snd_soc_dai_link omap3evm_dai = {
++ .name = "TWL4030",
++ .stream_name = "TWL4030",
++ .cpu_dai = &omap_mcbsp_dai[0],
++ .codec_dai = &twl4030_dai,
++ .init = omap3evm_twl4030_init,
++ .ops = &omap3evm_ops,
++};
++
++/* Audio machine driver */
++static struct snd_soc_machine snd_soc_machine_omap3evm = {
++ .name = "omap3evm",
++ .dai_link = &omap3evm_dai,
++ .num_links = 1,
++};
++
++/* Audio subsystem */
++static struct snd_soc_device omap3evm_snd_devdata = {
++ .machine = &snd_soc_machine_omap3evm,
++ .platform = &omap_soc_platform,
++ .codec_dev = &soc_codec_dev_twl4030,
++};
++
++static struct platform_device *omap3evm_snd_device;
++
++static int __init omap3evm_soc_init(void)
++{
++ int ret;
++
++ printk(KERN_INFO "OMAP3 EVM SoC init\n");
++ if (!machine_is_omap3evm()) {
++ printk(KERN_INFO "Not OMAP3 EVM!\n");
++ return -ENODEV;
++ }
++
++ omap3evm_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!omap3evm_snd_device) {
++ printk(KERN_INFO "Platform device allocation failed\n");
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(omap3evm_snd_device, &omap3evm_snd_devdata);
++ omap3evm_snd_devdata.dev = &omap3evm_snd_device->dev;
++ *(unsigned int *)omap3evm_dai.cpu_dai->private_data = 1; /* McBSP2 */
++
++ ret = platform_device_add(omap3evm_snd_device);
++ if (ret)
++ goto err1;
++
++ return 0;
++
++err1:
++ printk(KERN_INFO "Unable to add platform device\n");
++ platform_device_put(omap3evm_snd_device);
++
++ return ret;
++}
++
++static void __exit omap3evm_soc_exit(void)
++{
++ printk(KERN_INFO "OMAP3 EVM SoC exit\n");
++ platform_device_unregister(omap3evm_snd_device);
++}
++
++module_init(omap3evm_soc_init);
++module_exit(omap3evm_soc_exit);
++
++MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>");
++MODULE_DESCRIPTION("ALSA SoC OMAP3 EVM");
++MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch b/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch
new file mode 100644
index 0000000000..04362c96e3
--- /dev/null
+++ b/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch
@@ -0,0 +1,43 @@
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index b854a89..26f5569 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -253,6 +253,16 @@ void tick_nohz_stop_sched_tick(void)
+
+ /* Schedule the tick, if we are at least one jiffie off */
+ if ((long)delta_jiffies >= 1) {
++ /*
++ * calculate the expiry time for the next timer wheel
++ * timer
++ */
++ expires = ktime_add_ns(last_update, tick_period.tv64 *
++ delta_jiffies);
++
++ /* Skip reprogram of event if its not changed */
++ if(ts->tick_stopped && ktime_equal(expires, dev->next_event))
++ goto out2;
+
+ if (delta_jiffies > 1)
+ cpu_set(cpu, nohz_cpu_mask);
+@@ -304,12 +314,7 @@ void tick_nohz_stop_sched_tick(void)
+ goto out;
+ }
+
+- /*
+- * calculate the expiry time for the next timer wheel
+- * timer
+- */
+- expires = ktime_add_ns(last_update, tick_period.tv64 *
+- delta_jiffies);
++ /* Mark expiries */
+ ts->idle_expires = expires;
+
+ if (ts->nohz_mode == NOHZ_MODE_HIGHRES) {
+@@ -328,6 +333,7 @@ void tick_nohz_stop_sched_tick(void)
+ tick_do_update_jiffies64(ktime_get());
+ cpu_clear(cpu, nohz_cpu_mask);
+ }
++out2:
+ raise_softirq_irqoff(TIMER_SOFTIRQ);
+ out:
+ ts->next_jiffies = next_jiffies;
diff --git a/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch b/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch
new file mode 100644
index 0000000000..2325c401e4
--- /dev/null
+++ b/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch
@@ -0,0 +1,22 @@
+diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
+index d8109ae..f8ce669 100644
+--- a/arch/arm/mach-omap2/board-omap3evm.c
++++ b/arch/arm/mach-omap2/board-omap3evm.c
+@@ -128,8 +128,16 @@ static int ads7846_get_pendown_state(void)
+ }
+
+ struct ads7846_platform_data ads7846_config = {
++ .x_max = 0x0fff,
++ .y_max = 0x0fff,
++ .x_plate_ohms = 180,
++ .pressure_max = 255,
++ .debounce_max = 10,
++ .debounce_tol = 3,
++ .debounce_rep = 1,
+ .get_pendown_state = ads7846_get_pendown_state,
+ .keep_vref_on = 1,
++ .settle_delay_usecs = 150,
+ };
+
+ static struct omap2_mcspi_device_config ads7846_mcspi_config = {
+
diff --git a/packages/linux/linux-omap2_git.bb b/packages/linux/linux-omap2_git.bb
index 0fcda6d6ad..8392ff7308 100644
--- a/packages/linux/linux-omap2_git.bb
+++ b/packages/linux/linux-omap2_git.bb
@@ -2,10 +2,10 @@ require linux-omap.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-omap2-git/${MACHINE}"
-SRCREV = "c32c81d59d2d8a66e63f82c9732db256d302068e"
+SRCREV = "7786cd7a00ae0b18923185789380a88052f4eee7"
-PV = "2.6.25+2.6.26-rc8+${PR}+git${SRCREV}"
-PR = "r39"
+PV = "2.6.25+2.6.26-rc9+${PR}+git${SRCREV}"
+PR = "r40"
SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
file://defconfig"
diff --git a/packages/meta/meta-toolchain-neuros.bb b/packages/meta/meta-toolchain-neuros.bb
new file mode 100644
index 0000000000..5905eceec1
--- /dev/null
+++ b/packages/meta/meta-toolchain-neuros.bb
@@ -0,0 +1,14 @@
+# Toolchain for neuros-osd devices
+
+PR = "r1"
+
+TOOLCHAIN_HOST_TASK = "task-sdk-host"
+
+require meta-toolchain.bb
+
+TOOLCHAIN_TARGET_TASK += " \
+ dbus dbus-dev \
+ qt-embedded qt-embedded-dev \
+ "
+
+SDK_SUFFIX = "toolchain-neuros"
diff --git a/packages/neuros-pkggen/.mtn2git_empty b/packages/neuros-pkggen/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/neuros-pkggen/.mtn2git_empty
diff --git a/packages/neuros-pkggen/files/.mtn2git_empty b/packages/neuros-pkggen/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/neuros-pkggen/files/.mtn2git_empty
diff --git a/packages/neuros-pkggen/files/Makefile b/packages/neuros-pkggen/files/Makefile
new file mode 100644
index 0000000000..fed6835d06
--- /dev/null
+++ b/packages/neuros-pkggen/files/Makefile
@@ -0,0 +1,68 @@
+# * Copyright(C) 2007 Neuros Technology International LLC.
+# * <www.neurostechnology.com>
+# *
+# * ubootcmd application make file..............TQ 2007-02-05
+
+
+# include system config
+include config
+
+
+# executable name
+NT_PACKET := packet_osd2
+
+
+# project directories
+PACKET_DIR_ROOT := .
+
+# compiler flags
+CFLAGS += $(DEFINES) -Wall -Werror
+
+# object files
+OBJS := package.o crc32.o
+
+# build all
+.PHONY: all
+all: $(NT_PACKET)
+
+$(NT_PACKET): $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)
+
+# install
+install: $(NT_PACKET)
+ @echo
+ @echo "Installing $(NT_PACKET) ... "
+ @cp $(NT_PACKET) $(BSP_ROOT)/images/
+ @echo
+
+# clean up project
+.PHONY: clean
+
+clean:
+ @echo
+ @rm -f $(NT_PACKET)
+ @for dir in $(PACKET_DIR_ROOT); do \
+ echo "Entering $$dir ..."; \
+ for file in $$dir/*~ $$dir/*.o $$dir/*.d; do \
+ if [ -f $$file ]; then \
+ echo "removing $$file"; \
+ rm $$file; \
+ fi; \
+ done; \
+ done
+ @echo
+
+# include the C include dependencies
+-include $(OBJS:.o=.d)
+
+
+# calculate C inlcude dependencies
+%.d: %.c
+ @set -e; rm -f $@; \
+ $(CC) -MM $(CFLAGS) $< > $@.$$$$; \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
+ rm -f $@.$$$$
+
+
+# include make rules.
+include Makefile.rules
diff --git a/packages/neuros-pkggen/files/Makefile.rules b/packages/neuros-pkggen/files/Makefile.rules
new file mode 100644
index 0000000000..17550c5e39
--- /dev/null
+++ b/packages/neuros-pkggen/files/Makefile.rules
@@ -0,0 +1,18 @@
+# * Copyright(C) 2007 Neuros Technology International LLC.
+# * <www.neurostechnology.com>
+# *
+# * Terminal application make rules..........TQ 2007-02-05
+
+## build target config.
+ifeq ($(BUILD_TARGET), ARM)
+DEFINES += -DBUILD_TARGET_ARM=1
+else
+DEFINES += -DBUILD_TARGET_ARM=0
+endif
+
+## global test code switch.
+ifeq ($(INCLUDE_TEST_CODE), YES)
+DEFINES += -DTERMINAL_TEST_CODE=1
+else
+DEFINES += -DTERMINAL_TEST_CODE=0
+endif
diff --git a/packages/neuros-pkggen/files/config b/packages/neuros-pkggen/files/config
new file mode 100644
index 0000000000..d323978b6d
--- /dev/null
+++ b/packages/neuros-pkggen/files/config
@@ -0,0 +1,40 @@
+# * Copyright(C) 2007 Neuros Technology International LLC.
+# * <www.neurostechnology.com>
+# *
+# * Terminal application config file.........TQ 2007-02-05
+
+# build target
+# ARM -- Neuros hardware.
+# HOST -- Host PC
+BUILD_TARGET := HOST
+
+# global test code switch
+# YES -- include test code
+# NO -- exclude all test code
+INCLUDE_TEST_CODE:= NO
+
+# BSP root directory
+BSP_ROOT := $(PRJROOT)
+
+
+# setting up tools etc.
+ifeq ($(BUILD_TARGET), ARM)
+ TOOLS_PREFIX :=arm-linux-
+ PROJ_TERMINAL_ENV :="--ARM--"
+ TOOLS_PATH :=${PATH}:${BSP_ROOT}/toolchain/bin
+endif
+ifeq ($(BUILD_TARGET), HOST)
+ TOOLS_PREFIX:=
+ PROJ_TERMINAL_ENV="--HOST--"
+ TOOLS_PATH :=${PATH}
+endif
+PATH:=${TOOLS_PATH}
+
+
+# tools definition
+CC := $(TOOLS_PREFIX)gcc
+CXX := $(TOOLS_PREFIX)g++
+AR := $(TOOLS_PREFIX)ar
+LD := $(TOOLS_PREFIX)ld
+NM := $(TOOLS_PREFIX)nm
+STRIP := $(TOOLS_PREFIX)strip
diff --git a/packages/neuros-pkggen/files/crc32.c b/packages/neuros-pkggen/files/crc32.c
new file mode 100644
index 0000000000..995a11413d
--- /dev/null
+++ b/packages/neuros-pkggen/files/crc32.c
@@ -0,0 +1,198 @@
+/*
+ * This file is derived from crc32.c from the zlib-1.1.3 distribution
+ * by Jean-loup Gailly and Mark Adler.
+ */
+
+/* crc32.c -- compute the CRC-32 of a data stream
+ * Copyright (C) 1995-1998 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+#if 0
+#ifndef USE_HOSTCC /* Shut down "ANSI does not permit..." warnings */
+#include <common.h> /* to get command definitions like CFG_CMD_JFFS2 */
+#endif
+#endif
+
+#include "zlib.h"
+
+#define local static
+#define ZEXPORT /* empty */
+unsigned long crc32 (unsigned long, const unsigned char *, unsigned int);
+
+#ifdef DYNAMIC_CRC_TABLE
+
+local int crc_table_empty = 1;
+local uLongf crc_table[256];
+local void make_crc_table OF((void));
+
+/*
+ Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
+ x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
+
+ Polynomials over GF(2) are represented in binary, one bit per coefficient,
+ with the lowest powers in the most significant bit. Then adding polynomials
+ is just exclusive-or, and multiplying a polynomial by x is a right shift by
+ one. If we call the above polynomial p, and represent a byte as the
+ polynomial q, also with the lowest power in the most significant bit (so the
+ byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
+ where a mod b means the remainder after dividing a by b.
+
+ This calculation is done using the shift-register method of multiplying and
+ taking the remainder. The register is initialized to zero, and for each
+ incoming bit, x^32 is added mod p to the register if the bit is a one (where
+ x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
+ x (which is shifting right by one and adding x^32 mod p if the bit shifted
+ out is a one). We start with the highest power (least significant bit) of
+ q and repeat for all eight bits of q.
+
+ The table is simply the CRC of all possible eight bit values. This is all
+ the information needed to generate CRC's on data a byte at a time for all
+ combinations of CRC register values and incoming bytes.
+*/
+local void make_crc_table()
+{
+ uLong c;
+ int n, k;
+ uLong poly; /* polynomial exclusive-or pattern */
+ /* terms of polynomial defining this crc (except x^32): */
+ static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
+
+ /* make exclusive-or pattern from polynomial (0xedb88320L) */
+ poly = 0L;
+ for (n = 0; n < sizeof(p)/sizeof(Byte); n++)
+ poly |= 1L << (31 - p[n]);
+
+ for (n = 0; n < 256; n++)
+ {
+ c = (uLong)n;
+ for (k = 0; k < 8; k++)
+ c = c & 1 ? poly ^ (c >> 1) : c >> 1;
+ crc_table[n] = c;
+ }
+ crc_table_empty = 0;
+}
+#else
+/* ========================================================================
+ * Table of CRC-32's of all single-byte values (made by make_crc_table)
+ */
+local const uLongf crc_table[256] = {
+ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
+ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
+ 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
+ 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
+ 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
+ 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
+ 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
+ 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
+ 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
+ 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
+ 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
+ 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
+ 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
+ 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
+ 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
+ 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
+ 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
+ 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
+ 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
+ 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
+ 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
+ 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
+ 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
+ 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
+ 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
+ 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
+ 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
+ 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
+ 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
+ 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
+ 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
+ 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
+ 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
+ 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
+ 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
+ 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
+ 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
+ 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
+ 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
+ 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
+ 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
+ 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
+ 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
+ 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
+ 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
+ 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
+ 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
+ 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
+ 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
+ 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
+ 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
+ 0x2d02ef8dL
+};
+#endif
+
+#if 0
+/* =========================================================================
+ * This function can be used by asm versions of crc32()
+ */
+const uLongf * ZEXPORT get_crc_table()
+{
+#ifdef DYNAMIC_CRC_TABLE
+ if (crc_table_empty) make_crc_table();
+#endif
+ return (const uLongf *)crc_table;
+}
+#endif
+
+/* ========================================================================= */
+#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8);
+#define DO2(buf) DO1(buf); DO1(buf);
+#define DO4(buf) DO2(buf); DO2(buf);
+#define DO8(buf) DO4(buf); DO4(buf);
+
+/* ========================================================================= */
+uLong ZEXPORT crc32(crc, buf, len)
+ uLong crc;
+ const Bytef *buf;
+ uInt len;
+{
+#ifdef DYNAMIC_CRC_TABLE
+ if (crc_table_empty)
+ make_crc_table();
+#endif
+ crc = crc ^ 0xffffffffL;
+ while (len >= 8)
+ {
+ DO8(buf);
+ len -= 8;
+ }
+ if (len) do {
+ DO1(buf);
+ } while (--len);
+ return crc ^ 0xffffffffL;
+}
+
+#if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
+
+/* No ones complement version. JFFS2 (and other things ?)
+ * don't use ones compliment in their CRC calculations.
+ */
+uLong ZEXPORT crc32_no_comp(uLong crc, const Bytef *buf, uInt len)
+{
+#ifdef DYNAMIC_CRC_TABLE
+ if (crc_table_empty)
+ make_crc_table();
+#endif
+ while (len >= 8)
+ {
+ DO8(buf);
+ len -= 8;
+ }
+ if (len) do {
+ DO1(buf);
+ } while (--len);
+
+ return crc;
+}
+
+#endif /* CFG_CMD_JFFS2 */
diff --git a/packages/neuros-pkggen/files/package.c b/packages/neuros-pkggen/files/package.c
new file mode 100644
index 0000000000..853d4384db
--- /dev/null
+++ b/packages/neuros-pkggen/files/package.c
@@ -0,0 +1,410 @@
+/*
+ * Copyright(C) 2005 Neuros Technology International LLC.
+ * <www.neurostechnology.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that, in addition to its
+ * original purpose to support Neuros hardware, it will be useful
+ * otherwise, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *****************************************************************************/
+/** package.c
+ *
+ * This file for packaging some images to one package.
+ * The package is named r3.upk.
+ *
+ * 02/22/2005 T.Qiu
+ * Initial creation.
+ * 11/07/2007 T.Qiu
+ * change follow the new UPK structure
+ * 05/15/2008 JWU
+ * change for osd2.0
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include "package.h"
+
+#define RETRYTIMES 15
+#define VER_LIMIT_LEN 14
+#define VER_HW2_LEN 4
+#define SAFE_SIZE (250*1024*1024) //250MB
+
+static package_header_t p_head;
+static image_info_t i_info[10];
+
+static void print_image_info(image_info_t *iif)
+{
+ printf("iif->i_type: %x\n", iif->i_type);
+ printf("iif->i_imagesize: %d\n", iif->i_imagesize);
+ printf("iif->i_startaddr_p: %d\n", iif->i_startaddr_p);
+ printf("iif->i_startaddr_f: %x\n", iif->i_startaddr_f);
+ printf("iif->i_endaddr_f: %x\n", iif->i_endaddr_f);
+ printf("iif->i_name: %s\n", iif->i_name);
+ printf("iif->i_version: %s\n", iif->i_version);
+}
+
+static void print_head_info(void)
+{
+ package_header_t *phd = &p_head;
+
+ printf("phd->p_headsize: %x\n", phd->p_headsize);
+ printf("phd->p_reserve: %x\n", phd->p_reserve);
+ printf("phd->p_headcrc: %x\n", phd->p_headcrc);
+ printf("phd->p_datasize: %d\n", phd->p_datasize);
+ printf("phd->p_datacrc: %x\n", phd->p_datacrc);
+ printf("phd->p_name: %s\n", phd->p_name);
+ printf("phd->p_vuboot: %s\n", phd->p_vuboot);
+ printf("phd->p_vkernel: %s\n", phd->p_vkernel);
+ printf("phd->p_vrootfs: %s\n", phd->p_vrootfs);
+ printf("phd->p_imagenum: %x\n", phd->p_imagenum);
+}
+
+static void print_version_info(version_info *ver_t)
+{
+ printf("ver_t->upk_desc: %s\n", ver_t->upk_desc);
+ printf("ver_t->pack_id: %s\n", ver_t->pack_id);
+ printf("ver_t->os_ver : %s\n", ver_t->os_ver);
+ printf("ver_t->app_ver: %s\n", ver_t->app_ver);
+}
+
+static int pack_firmware(FILE *fp_w, uint32 offst, int num, char *name[])
+{
+ FILE *fp_r;
+ int i, j;
+ uint32 curptr, extcrc;
+ char ch;
+ package_header_t *phd = &p_head;
+ image_info_t *iif;
+
+ /* read version file */
+ if ((fp_r = fopen(UBOOT_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open uboot version file: %s\n", UBOOT_VER_FILE);
+ return(-1);
+ }
+ j=0;
+ while (1)
+ {
+ if (feof(fp_r)) break;
+ if (j > VER_LIMIT_LEN+1)
+ {
+ printf("uboot version can't be longer than 14\n");
+ goto bail;
+ }
+ phd->p_vuboot[j] = fgetc(fp_r);
+ if ((phd->p_vuboot[j]==0x0d) || (phd->p_vuboot[j]==0x0a))
+ phd->p_vuboot[j] = '\0';
+ j++;
+ }
+ fclose(fp_r);
+
+ if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open kernel version file: %s\n", KERNEL_VER_FILE);
+ return(-1);
+ }
+ j=0;
+ while (1)
+ {
+ if (feof(fp_r)) break;
+ if (j > VER_LIMIT_LEN+1)
+ {
+ printf("kernel version can't be longer than 14\n");
+ goto bail;
+ }
+ phd->p_vkernel[j]=fgetc(fp_r);
+ if ((phd->p_vkernel[j]==0x0d) || (phd->p_vkernel[j]==0x0a))
+ phd->p_vkernel[j] = '\0';
+ j++;
+ }
+ fclose(fp_r);
+
+ if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open rootfs version file: %s\n", ROOTFS_VER_FILE);
+ return(-1);
+ }
+ j=0;
+ while (1)
+ {
+ if (feof(fp_r)) break;
+ if (j > VER_LIMIT_LEN+1)
+ {
+ printf("rootfs version can't be longer than 14\n");
+ goto bail;
+ }
+ phd->p_vrootfs[j] = fgetc(fp_r);
+ if ((phd->p_vrootfs[j]==0x0d) ||(phd->p_vrootfs[j]==0x0a))
+ phd->p_vrootfs[j] = '\0';
+ j++;
+ }
+ fclose(fp_r);
+
+ phd->p_imagenum = (uint8)num;
+ phd->p_headsize = sizeof(package_header_t) + phd->p_imagenum * sizeof(image_info_t);
+
+ /* Bit[3] use to indicate osd2.0 package */
+ phd->p_reserve = 0x08;
+
+ phd->p_datasize = 0;
+ phd->p_datacrc = 0;
+ phd->p_headcrc = 0;
+
+ curptr = phd->p_headsize + sizeof(version_info);
+
+ for (i=0; i < phd->p_imagenum; i++)
+ {
+ /* image info */
+ iif = &i_info[i];
+ if (strncmp(name[i], ROOTFS_FILE_NAME, strlen(ROOTFS_FILE_NAME)) == 0)
+ {
+ iif->i_type = IH_TYPE_ROOTFS;
+ strncpy((char *)iif->i_name, ROOTFS_FILE_NAME, NAMELEN-1);
+
+ if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open kernel version file: %s\n", ROOTFS_VER_FILE);
+ break;
+ }
+ for (j = 0; j < sizeof(iif->i_version); j++)
+ {
+ if (feof(fp_r)) break;
+ iif->i_version[j] = fgetc(fp_r);
+ if ((iif->i_version[j]==0x0d) || (iif->i_version[j]==0x0a))
+ iif->i_version[j] = '\0';
+ }
+ fclose(fp_r);
+ }
+ else if (strncmp(name[i], KERNEL_FILE_NAME, strlen(KERNEL_FILE_NAME)) == 0)
+ {
+ iif->i_type = IH_TYPE_KERNEL;
+ strncpy((char *)iif->i_name, KERNEL_FILE_NAME, NAMELEN-1);
+
+ if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open kernel version file: %s\n", KERNEL_VER_FILE);
+ break;
+ }
+ for (j = 0; j < sizeof(iif->i_version); j++)
+ {
+ if (feof(fp_r)) break;
+ iif->i_version[j] = fgetc(fp_r);
+ if ((iif->i_version[j]==0x0d) ||(iif->i_version[j]==0x0a))
+ iif->i_version[j] = '\0';
+ }
+ fclose(fp_r);
+ }
+ else if (strncmp(name[i], UBOOT_FILE_NAME, strlen(UBOOT_FILE_NAME)) == 0)
+ {
+ iif->i_type = IH_TYPE_UBOOT;
+ strncpy((char *)iif->i_name, UBOOT_FILE_NAME, NAMELEN-1);
+
+ if ((fp_r = fopen(UBOOT_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open uboot version file: %s\n", UBOOT_VER_FILE);
+ break;
+ }
+ for (j = 0; j < sizeof(iif->i_version); j++)
+ {
+ if (feof(fp_r)) break;
+ iif->i_version[j] = fgetc(fp_r);
+ if ((iif->i_version[j]==0x0d)|| (iif->i_version[j]==0x0a))
+ iif->i_version[j] = '\0';
+ }
+ fclose(fp_r);
+ }
+ else if (strncmp(name[i], SCRIPT_FILE_NAME, strlen(SCRIPT_FILE_NAME)) == 0)
+ {
+ iif->i_type = IH_TYPE_SCRIPT;
+ strncpy((char *)iif->i_name, SCRIPT_FILE_NAME, NAMELEN-1);
+ }
+
+ /* address in flash*/
+ switch (iif->i_type)
+ {
+ case IH_TYPE_ROOTFS:
+ iif->i_startaddr_f = ROOTFS_ADDR_START;
+ iif->i_endaddr_f = ROOTFS_ADDR_END;
+ break;
+ case IH_TYPE_KERNEL:
+ iif->i_startaddr_f = KERNEL_ADDR_START;
+ iif->i_endaddr_f = KERNEL_ADDR_END;
+ break;
+ case IH_TYPE_UBOOT:
+ iif->i_startaddr_f = UBOOT_ADDR_START;
+ iif->i_endaddr_f = UBOOT_ADDR_END;
+ break;
+ case IH_TYPE_SCRIPT:
+ break;
+ default:
+ printf("un-handle image type\n");
+ break;
+ }
+
+ /* write whole image to package and calculate the imagesize*/
+ iif->i_imagesize = 0;
+ /* images file */
+ if ((fp_r = fopen(name[i], "rb")) == NULL)
+ {
+ printf("can't open file: %s\n", name[i]);
+ break;
+ }
+
+ fseek(fp_w, offst+curptr,SEEK_SET);
+ extcrc = 0;
+ while (!feof(fp_r))
+ {
+ ch = fgetc(fp_r);
+ fputc(ch, fp_w);
+ phd->p_datacrc = crc32(phd->p_datacrc,(uint8 *)&ch, 1);
+ iif->i_imagesize ++;
+ }
+ fclose(fp_r);
+
+ iif->i_startaddr_p = curptr-sizeof(version_info);
+ curptr += iif->i_imagesize;
+ phd->p_datasize += iif->i_imagesize;
+
+ print_image_info(iif); /* print iff*/
+
+ /*write image info */
+ fseek(fp_w, offst+sizeof(version_info)+sizeof(package_header_t)+i*sizeof(image_info_t), SEEK_SET);
+ if (fwrite(iif, sizeof(image_info_t), 1, fp_w) != 1)
+ {
+ printf("can not write iif into package\n");
+ break;
+ }
+ }
+
+ /* write package head*/
+ phd->p_headcrc = crc32(phd->p_headcrc, (uint8 *)phd, sizeof(package_header_t));
+ phd->p_headcrc = crc32(phd->p_headcrc, (uint8 *)i_info, phd->p_imagenum*sizeof(image_info_t));
+
+ print_head_info(); /* print phd */
+
+ fseek(fp_w, offst+sizeof(version_info), SEEK_SET);
+ if (fwrite((uint8 *)phd, sizeof(package_header_t), 1, fp_w) != 1)
+ {
+ printf("can not write head into package");
+ return(-1);
+ }
+ return 0;
+
+ bail:
+ fclose(fp_r);
+
+ return -1;
+}
+
+static int pack_ver_info(FILE *fp_w, uint32 offset, char *desc)
+{
+ version_info ver_t;
+ FILE *fp_r;
+ int i;
+
+ memset((char *)&ver_t, 0, sizeof(version_info));
+
+ if (strlen(desc) >= DESCLEN)
+ {
+ printf("The upk_desc is too long\n");
+ return(-1);
+ }
+ strncpy((char *)ver_t.upk_desc, desc, DESCLEN-1);
+ strncpy((char *)ver_t.pack_id, (char *)PACKAGE_ID, NAMELEN-1);
+ strncpy((char *)ver_t.os_ver, "0.00", VERLEN-1);
+ strncpy((char *)ver_t.app_ver, "0.00", VERLEN-1);
+
+ if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open OS version file: %s\n", KERNEL_VER_FILE);
+ return(-1);
+ }
+ for (i = 0; i < sizeof(ver_t.os_ver); i++)
+ {
+ if (feof(fp_r)) break;
+ ver_t.os_ver[i] = fgetc(fp_r);
+ if ((ver_t.os_ver[i]==0x0d) || (ver_t.os_ver[i]==0x0a))
+ ver_t.os_ver[i] = '\0';
+ }
+ fclose(fp_r);
+
+ if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL)
+ {
+ printf("Can't open App version file: %s\n", ROOTFS_VER_FILE);
+ return(-1);
+ }
+ for (i = 0; i < sizeof(ver_t.app_ver); i++)
+ {
+ if (feof(fp_r)) break;
+ ver_t.app_ver[i] = fgetc(fp_r);
+ if ((ver_t.app_ver[i]==0x0d) || (ver_t.app_ver[i]==0x0a))
+ ver_t.app_ver[i] = '\0';
+ }
+ fclose(fp_r);
+
+ fseek(fp_w, 0, SEEK_SET);
+ if (fwrite((uint8 *)&ver_t, sizeof(version_info), 1, fp_w) != 1)
+ {
+ printf("can not write the version struct into package\n");
+ return(-1);
+ }
+
+ print_version_info(&ver_t);
+
+ return(0);
+}
+
+/* argv[1] packet name
+ argv[2] upk descpription
+ argv[3] u-env image
+ argv[4] u-boot image
+ argv[5] kernel image
+ argv[5] rootfs image*/
+int main(int argc, char *argv[])
+{
+ FILE *fp_w;
+ uint32 hw_len = 0;
+ package_header_t *phd = &p_head;
+ struct stat buf;
+
+ printf("\npackage tool version %s ", VERSION);
+
+ strncpy((char *)phd->p_name, argv[1], NAMELEN-1);
+ if ((fp_w = fopen((char *)phd->p_name, "wb+")) == NULL)
+ {
+ printf("Can't open %s\n",phd->p_name);
+ return(-1);
+ }
+
+ /* packet firmware to package */
+ if (pack_firmware(fp_w, hw_len, 4, &argv[3]) != 0)
+ return(-1);
+ /* packet upk_desc and version info */
+ if (pack_ver_info(fp_w, hw_len+phd->p_headsize, argv[2]) != 0)
+ return(-1);
+
+ fclose(fp_w);
+
+ stat((char *)phd->p_name, &buf);
+ if (buf.st_size > SAFE_SIZE)
+ {
+ printf("Warning!!!!! The upk size is larger than the safe size\n");
+ }
+
+ return 0;
+}
+
+
diff --git a/packages/neuros-pkggen/files/package.h b/packages/neuros-pkggen/files/package.h
new file mode 100644
index 0000000000..225c53d129
--- /dev/null
+++ b/packages/neuros-pkggen/files/package.h
@@ -0,0 +1,145 @@
+/*
+ * Copyright(C) 2005 Neuros Technology International LLC.
+ * <www.neurostechnology.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that, in addition to its
+ * original purpose to support Neuros hardware, it will be useful
+ * otherwise, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *****************************************************************************/
+/** package.h
+ *
+ * Some structure for package.c
+ *
+ * 02/22/2002 T.Qiu
+ * Initial creation.
+ * 05/15/2008 JWU
+ * change for osd2.0
+ */
+
+#ifndef PACKAGE_H
+#define PACKAGE_H
+
+#define VERSION "3.01"
+#define NAMELEN 32
+#define VERLEN 20 /* should same as the uboot */
+#define DESCLEN 256
+
+/* image type*/
+#define IH_TYPE_INVALID 0 /* Invalid Image */
+#define IH_TYPE_STANDALONE 1 /* Standalone Program */
+#define IH_TYPE_KERNEL 2 /* OS Kernel Image */
+#define IH_TYPE_RAMDISK 3 /* RAMDisk Image */
+#define IH_TYPE_MULTI 4 /* Multi-File Image */
+#define IH_TYPE_FIRMWARE 5 /* Firmware Image */
+#define IH_TYPE_SCRIPT 6 /* Script file */
+#define IH_TYPE_FILESYSTEM 7 /* Filesystem Image (any type) */
+#define IH_TYPE_FLATDT 8 /* Binary Flat Device Tree Blob */
+#define IH_TYPE_UBOOT 9
+#define IH_TYPE_ROOTFS 10
+
+/* addr in flash */
+#define UBOOT_ADDR_START 0x00018000
+#define UBOOT_SIZE (1*1024*1024)
+#define UBOOT_ADDR_END (UBOOT_ADDR_START+UBOOT_SIZE-1)
+#define KERNEL_ADDR_START (UBOOT_ADDR_END+1)
+#define KERNEL_SIZE (5*1024*1024)
+#define KERNEL_ADDR_END (KERNEL_ADDR_START+KERNEL_SIZE-1)
+#define ROOTFS_ADDR_START (KERNEL_ADDR_END+1)
+#define ROOTFS_ADDR_END (256*1024*1024 - 1)
+
+#define UBOOT_FILE_NAME "u-boot.bin"
+#define KERNEL_FILE_NAME "kernel.img"
+#define ROOTFS_FILE_NAME "rootfs.img"
+#define SCRIPT_FILE_NAME "env.img"
+
+#define UBOOT_VER_FILE "u-boot.version"
+#define KERNEL_VER_FILE "uImage.version"
+#define ROOTFS_VER_FILE "rootfs.version"
+
+typedef unsigned char uint8;
+typedef unsigned short uint16;
+typedef unsigned int uint32;
+typedef unsigned long uint64;
+
+#define SWAP_LONG(x) \
+ ((uint32)( \
+ (((uint32)(x) & (uint32)0x000000ffUL) << 24) | \
+ (((uint32)(x) & (uint32)0x0000ff00UL) << 8) | \
+ (((uint32)(x) & (uint32)0x00ff0000UL) >> 8) | \
+ (((uint32)(x) & (uint32)0xff000000UL) >> 24) ))
+
+#define SWAP_SHORT(x) \
+ ((uint16)( \
+ (((uint16)(x) & (uint16)0x00ff) << 8) | \
+ (((uint16)(x) & (uint16)0xff00) >> 8))
+
+#define ntohl(a) SWAP_LONG(a)
+#define htonl(a) SWAP_LONG(a)
+#define ntohs(a) SWAP_SHORT(a)
+#define htons(a) SWAP_SHORT(a)
+
+typedef struct packet_header{
+ uint32 p_headsize; /* package header size */
+ uint32 p_reserve; /* Bit[3]:1 OSD2.0 upk */
+ uint32 p_headcrc; /* package header crc checksum */
+ uint32 p_datasize; /* package data size */
+ uint32 p_datacrc; /* package data crc checksum */
+ uint8 p_name[NAMELEN]; /* package name */
+ uint8 p_vuboot[VERLEN]; /* version of uboot which depend on */
+ uint8 p_vkernel[VERLEN];/* version of kernel which depend on*/
+ uint8 p_vrootfs[VERLEN];/* version of rootfs which depend on*/
+ uint32 p_imagenum; /* num of the images in package*/
+ /* follow is image info */
+}package_header_t;
+
+typedef struct image_info{
+ uint32 i_type; /* image type */
+ uint32 i_imagesize; /* size of image */
+ uint32 i_startaddr_p; /* start address in packeage */
+ uint32 i_startaddr_f; /* start address in flash */
+ uint32 i_endaddr_f; /* end address in flash */
+ uint8 i_name[NAMELEN]; /* image name */
+ uint8 i_version[VERLEN];/* image version */
+}image_info_t;
+
+typedef struct image_header {
+ uint32 ih_magic; /* Image Header Magic Number */
+ uint32 ih_hcrc; /* Image Header CRC Checksum */
+ uint32 ih_time; /* Image Creation Timestamp */
+ uint32 ih_size; /* Image Data Size */
+ uint32 ih_load; /* Data Load Address */
+ uint32 ih_ep; /* Entry Point Address */
+ uint32 ih_dcrc; /* Image Data CRC Checksum */
+ uint8 ih_os; /* Operating System */
+ uint8 ih_arch; /* CPU architecture */
+ uint8 ih_type; /* Image Type */
+ uint8 ih_comp; /* Compression Type */
+ uint8 ih_name[NAMELEN]; /* Image Name */
+} image_header_t;
+
+#define PACKAGE_ID "neuros-osd2.0"
+typedef struct version_struct{
+ uint8 upk_desc[DESCLEN];
+ uint8 pack_id[NAMELEN];
+ uint8 os_ver [VERLEN];
+ uint8 app_ver[VERLEN];
+}version_info;
+
+
+extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned int);
+
+#endif
+
diff --git a/packages/neuros-pkggen/files/readme b/packages/neuros-pkggen/files/readme
new file mode 100644
index 0000000000..fd9c31b545
--- /dev/null
+++ b/packages/neuros-pkggen/files/readme
@@ -0,0 +1,20 @@
+This is the tool to generate the OSD upgrading package.
+
+1. Compile the tool
+ gcc crc32.c package.c -o osdpkg
+
+2. Copy tool to neuros-bsp/images
+
+3. Create upk
+ ./osdpkg nh [upk_desc] [upk_name] [bins ...]
+
+You can choose to either generate a full package that includes each
+binary or a package just for that part that has been changed.
+
+Example:
+<1> To create a upk by including everything
+ ./osdpkg nh "upk by yada_yada on 2006-10-18" r3.upk env.img
+u-boot.bin uImage root.cramfs
+
+<2> To create a upk by just including the rootfs
+ ./osdpkg nh "upk by blah_blah on 2006-10-18" r3.upk root.cramfs
diff --git a/packages/neuros-pkggen/files/zlib.h b/packages/neuros-pkggen/files/zlib.h
new file mode 100644
index 0000000000..e441494d0d
--- /dev/null
+++ b/packages/neuros-pkggen/files/zlib.h
@@ -0,0 +1,434 @@
+/*
+ * This file is derived from zlib.h and zconf.h from the zlib-0.95
+ * distribution by Jean-loup Gailly and Mark Adler, with some additions
+ * by Paul Mackerras to aid in implementing Deflate compression and
+ * decompression for PPP packets.
+ */
+
+/*
+ * ==FILEVERSION 960122==
+ *
+ * This marker is used by the Linux installation script to determine
+ * whether an up-to-date version of this file is already installed.
+ */
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 0.95, Aug 16th, 1995.
+
+ Copyright (C) 1995 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ gzip@prep.ai.mit.edu madler@alumni.caltech.edu
+ */
+
+#ifndef _ZLIB_H
+#define _ZLIB_H
+
+/* #include "zconf.h" */ /* included directly here */
+
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995 Jean-loup Gailly.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */
+
+/*
+ The library does not install any signal handler. It is recommended to
+ add at least a handler for SIGSEGV when decompressing; the library checks
+ the consistency of the input data whenever possible but may go nuts
+ for some forms of corrupted input.
+ */
+
+/*
+ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
+ * than 64k bytes at a time (needed on systems with 16-bit int).
+ * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints
+ * at addresses which are not a multiple of their size.
+ * Under DOS, -DFAR=far or -DFAR=__far may be needed.
+ */
+
+#ifndef STDC
+# if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus)
+# define STDC
+# endif
+#endif
+
+#ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */
+# include <unix.h>
+#endif
+
+/* Maximum value for memLevel in deflateInit2 */
+#ifndef MAX_MEM_LEVEL
+# ifdef MAXSEG_64K
+# define MAX_MEM_LEVEL 8
+# else
+# define MAX_MEM_LEVEL 9
+# endif
+#endif
+
+#ifndef FAR
+# define FAR
+#endif
+
+/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
+#ifndef MAX_WBITS
+# define MAX_WBITS 15 /* 32K LZ77 window */
+#endif
+
+/* The memory requirements for deflate are (in bytes):
+ 1 << (windowBits+2) + 1 << (memLevel+9)
+ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
+ plus a few kilobytes for small objects. For example, if you want to reduce
+ the default memory requirements from 256K to 128K, compile with
+ make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
+ Of course this will generally degrade compression (there's no free lunch).
+
+ The memory requirements for inflate are (in bytes) 1 << windowBits
+ that is, 32K for windowBits=15 (default value) plus a few kilobytes
+ for small objects.
+*/
+
+ /* Type declarations */
+
+#ifndef OF /* function prototypes */
+# ifdef STDC
+# define OF(args) args
+# else
+# define OF(args) ()
+# endif
+#endif
+
+typedef unsigned char Byte; /* 8 bits */
+typedef unsigned int uInt; /* 16 bits or more */
+typedef unsigned long uLong; /* 32 bits or more */
+
+typedef Byte FAR Bytef;
+typedef char FAR charf;
+typedef int FAR intf;
+typedef uInt FAR uIntf;
+typedef uLong FAR uLongf;
+
+#ifdef STDC
+ typedef void FAR *voidpf;
+ typedef void *voidp;
+#else
+ typedef Byte FAR *voidpf;
+ typedef Byte *voidp;
+#endif
+
+/* end of original zconf.h */
+
+#define ZLIB_VERSION "0.95P"
+
+/*
+ The 'zlib' compression library provides in-memory compression and
+ decompression functions, including integrity checks of the uncompressed
+ data. This version of the library supports only one compression method
+ (deflation) but other algorithms may be added later and will have the same
+ stream interface.
+
+ For compression the application must provide the output buffer and
+ may optionally provide the input buffer for optimization. For decompression,
+ the application must provide the input buffer and may optionally provide
+ the output buffer for optimization.
+
+ Compression can be done in a single step if the buffers are large
+ enough (for example if an input file is mmap'ed), or can be done by
+ repeated calls of the compression function. In the latter case, the
+ application must provide more input and/or consume the output
+ (providing more output space) before each call.
+*/
+
+typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
+typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes));
+
+typedef void (*cb_func) OF((Bytef *buf, uInt len));
+
+struct internal_state;
+
+typedef struct z_stream_s {
+ Bytef *next_in; /* next input byte */
+ uInt avail_in; /* number of bytes available at next_in */
+ uLong total_in; /* total nb of input bytes read so far */
+
+ Bytef *next_out; /* next output byte should be put there */
+ uInt avail_out; /* remaining free space at next_out */
+ uLong total_out; /* total nb of bytes output so far */
+
+ char *msg; /* last error message, NULL if no error */
+ struct internal_state FAR *state; /* not visible by applications */
+
+ alloc_func zalloc; /* used to allocate the internal state */
+ free_func zfree; /* used to free the internal state */
+ voidp opaque; /* private data object passed to zalloc and zfree */
+
+ Byte data_type; /* best guess about the data type: ascii or binary */
+
+ cb_func outcb; /* called regularly just before blocks of output */
+
+} z_stream;
+
+/*
+ The application must update next_in and avail_in when avail_in has
+ dropped to zero. It must update next_out and avail_out when avail_out
+ has dropped to zero. The application must initialize zalloc, zfree and
+ opaque before calling the init function. All other fields are set by the
+ compression library and must not be updated by the application.
+
+ The opaque value provided by the application will be passed as the first
+ parameter for calls of zalloc and zfree. This can be useful for custom
+ memory management. The compression library attaches no meaning to the
+ opaque value.
+
+ zalloc must return Z_NULL if there is not enough memory for the object.
+ On 16-bit systems, the functions zalloc and zfree must be able to allocate
+ exactly 65536 bytes, but will not be required to allocate more than this
+ if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
+ pointers returned by zalloc for objects of exactly 65536 bytes *must*
+ have their offset normalized to zero. The default allocation function
+ provided by this library ensures this (see zutil.c). To reduce memory
+ requirements and avoid any allocation of 64K objects, at the expense of
+ compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
+
+ The fields total_in and total_out can be used for statistics or
+ progress reports. After compression, total_in holds the total size of
+ the uncompressed data and may be saved for use in the decompressor
+ (particularly if the decompressor wants to decompress everything in
+ a single step).
+*/
+
+ /* constants */
+
+#define Z_NO_FLUSH 0
+#define Z_PARTIAL_FLUSH 1
+#define Z_FULL_FLUSH 2
+#define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */
+#define Z_FINISH 4
+#define Z_PACKET_FLUSH 5
+/* See deflate() below for the usage of these constants */
+
+#define Z_OK 0
+#define Z_STREAM_END 1
+#define Z_ERRNO (-1)
+#define Z_STREAM_ERROR (-2)
+#define Z_DATA_ERROR (-3)
+#define Z_MEM_ERROR (-4)
+#define Z_BUF_ERROR (-5)
+/* error codes for the compression/decompression functions */
+
+#define Z_BEST_SPEED 1
+#define Z_BEST_COMPRESSION 9
+#define Z_DEFAULT_COMPRESSION (-1)
+/* compression levels */
+
+#define Z_FILTERED 1
+#define Z_HUFFMAN_ONLY 2
+#define Z_DEFAULT_STRATEGY 0
+
+#define Z_BINARY 0
+#define Z_ASCII 1
+#define Z_UNKNOWN 2
+/* Used to set the data_type field */
+
+#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
+
+extern char *zlib_version;
+/* The application can compare zlib_version and ZLIB_VERSION for consistency.
+ If the first character differs, the library code actually used is
+ not compatible with the zlib.h header file used by the application.
+ */
+
+ /* basic functions */
+
+extern int inflateInit OF((z_stream *strm));
+/*
+ Initializes the internal stream state for decompression. The fields
+ zalloc and zfree must be initialized before by the caller. If zalloc and
+ zfree are set to Z_NULL, inflateInit updates them to use default allocation
+ functions.
+
+ inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
+ enough memory. msg is set to null if there is no error message.
+ inflateInit does not perform any decompression: this will be done by
+ inflate().
+*/
+
+
+extern int inflate OF((z_stream *strm, int flush));
+/*
+ Performs one or both of the following actions:
+
+ - Decompress more input starting at next_in and update next_in and avail_in
+ accordingly. If not all input can be processed (because there is not
+ enough room in the output buffer), next_in is updated and processing
+ will resume at this point for the next call of inflate().
+
+ - Provide more output starting at next_out and update next_out and avail_out
+ accordingly. inflate() always provides as much output as possible
+ (until there is no more input data or no more space in the output buffer).
+
+ Before the call of inflate(), the application should ensure that at least
+ one of the actions is possible, by providing more input and/or consuming
+ more output, and updating the next_* and avail_* values accordingly.
+ The application can consume the uncompressed output when it wants, for
+ example when the output buffer is full (avail_out == 0), or after each
+ call of inflate().
+
+ If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
+ inflate flushes as much output as possible to the output buffer. The
+ flushing behavior of inflate is not specified for values of the flush
+ parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
+ current implementation actually flushes as much output as possible
+ anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
+ has been consumed, it is expecting to see the length field of a stored
+ block; if not, it returns Z_DATA_ERROR.
+
+ inflate() should normally be called until it returns Z_STREAM_END or an
+ error. However if all decompression is to be performed in a single step
+ (a single call of inflate), the parameter flush should be set to
+ Z_FINISH. In this case all pending input is processed and all pending
+ output is flushed; avail_out must be large enough to hold all the
+ uncompressed data. (The size of the uncompressed data may have been saved
+ by the compressor for this purpose.) The next operation on this stream must
+ be inflateEnd to deallocate the decompression state. The use of Z_FINISH
+ is never required, but can be used to inform inflate that a faster routine
+ may be used for the single inflate() call.
+
+ inflate() returns Z_OK if some progress has been made (more input
+ processed or more output produced), Z_STREAM_END if the end of the
+ compressed data has been reached and all uncompressed output has been
+ produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if
+ the stream structure was inconsistent (for example if next_in or next_out
+ was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no
+ progress is possible or if there was not enough room in the output buffer
+ when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then
+ call inflateSync to look for a good compression block. */
+
+
+extern int inflateEnd OF((z_stream *strm));
+/*
+ All dynamically allocated data structures for this stream are freed.
+ This function discards any unprocessed input and does not flush any
+ pending output.
+
+ inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
+ was inconsistent. In the error case, msg may be set but then points to a
+ static string (which must not be deallocated).
+*/
+
+ /* advanced functions */
+
+extern int inflateInit2 OF((z_stream *strm,
+ int windowBits));
+/*
+ This is another version of inflateInit with more compression options. The
+ fields next_out, zalloc and zfree must be initialized before by the caller.
+
+ The windowBits parameter is the base two logarithm of the maximum window
+ size (the size of the history buffer). It should be in the range 8..15 for
+ this version of the library (the value 16 will be allowed soon). The
+ default value is 15 if inflateInit is used instead. If a compressed stream
+ with a larger window size is given as input, inflate() will return with
+ the error code Z_DATA_ERROR instead of trying to allocate a larger window.
+
+ If next_out is not null, the library will use this buffer for the history
+ buffer; the buffer must either be large enough to hold the entire output
+ data, or have at least 1<<windowBits bytes. If next_out is null, the
+ library will allocate its own buffer (and leave next_out null). next_in
+ need not be provided here but must be provided by the application for the
+ next call of inflate().
+
+ If the history buffer is provided by the application, next_out must
+ never be changed by the application since the decompressor maintains
+ history information inside this buffer from call to call; the application
+ can only reset next_out to the beginning of the history buffer when
+ avail_out is zero and all output has been consumed.
+
+ inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
+ not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
+ windowBits < 8). msg is set to null if there is no error message.
+ inflateInit2 does not perform any decompression: this will be done by
+ inflate().
+*/
+
+extern int inflateSync OF((z_stream *strm));
+/*
+ Skips invalid compressed data until the special marker (see deflate()
+ above) can be found, or until all available input is skipped. No output
+ is provided.
+
+ inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
+ if no more input was provided, Z_DATA_ERROR if no marker has been found,
+ or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
+ case, the application may save the current current value of total_in which
+ indicates where valid compressed data was found. In the error case, the
+ application may repeatedly call inflateSync, providing more input each time,
+ until success or end of the input data.
+*/
+
+extern int inflateReset OF((z_stream *strm));
+/*
+ This function is equivalent to inflateEnd followed by inflateInit,
+ but does not free and reallocate all the internal decompression state.
+ The stream will keep attributes that may have been set by inflateInit2.
+
+ inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent (such as zalloc or state being NULL).
+*/
+
+extern int inflateIncomp OF((z_stream *strm));
+/*
+ This function adds the data at next_in (avail_in bytes) to the output
+ history without performing any output. There must be no pending output,
+ and the decompressor must be expecting to see the start of a block.
+ Calling this function is equivalent to decompressing a stored block
+ containing the data at next_in (except that the data is not output).
+*/
+
+ /* checksum functions */
+
+/*
+ This function is not related to compression but is exported
+ anyway because it might be useful in applications using the
+ compression library.
+*/
+
+extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len));
+
+/*
+ Update a running Adler-32 checksum with the bytes buf[0..len-1] and
+ return the updated checksum. If buf is NULL, this function returns
+ the required initial value for the checksum.
+ An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
+ much faster. Usage example:
+
+ uLong adler = adler32(0L, Z_NULL, 0);
+
+ while (read_buffer(buffer, length) != EOF) {
+ adler = adler32(adler, buffer, length);
+ }
+ if (adler != original_adler) error();
+*/
+
+#ifndef _Z_UTIL_H
+ struct internal_state {int dummy;}; /* hack for buggy compilers */
+#endif
+
+#endif /* _ZLIB_H */
diff --git a/packages/neuros-pkggen/neuros-pkggen-native.bb b/packages/neuros-pkggen/neuros-pkggen-native.bb
new file mode 100644
index 0000000000..001b3a863a
--- /dev/null
+++ b/packages/neuros-pkggen/neuros-pkggen-native.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Tool to generate ready to flash .pkg files for neuros machines"
+LICENSE = "GPLv2"
+PR = "r1"
+
+inherit native
+
+SRC_URI = "file://Makefile \
+ file://Makefile.rules \
+ file://config \
+ file://crc32.c \
+ file://package.c \
+ file://package.h \
+ file://readme \
+ file://zlib.h \
+"
+
+do_compile_prepend() {
+ ( cd ${WORKDIR} ; cp Makefile Makefile.rules config crc32.c package.c package.h readme zlib.h ${S} )
+}
+
+do_stage() {
+ install -m 0755 packet_osd2 ${STAGING_BINDIR_NATIVE}
+}
+
+
diff --git a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb
index 7533f81958..60dab56569 100644
--- a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb
+++ b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb
@@ -1,14 +1,19 @@
DESCRIPTION = "Convenient scripts to be used with openmoko toolchain."
-PR = "r1"
-SRC_URI = "svn://svn.openmoko.org/developers/john_lee;module=toolkit;proto=http"
+PV = "0.0+svnr${SRCREV}"
+PE = "1"
-S = "${WORKDIR}/toolkit"
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=toolchain-scripts;proto=http"
-FILES_${PN} = "/"
+S = "${WORKDIR}/toolchain-scripts"
+
+FILES_${PN} = "/bin /scripts /* \
+"
do_install () {
+ install -d ${D}/doc
cp -dr ${S}/* ${D}
find ${D} -name ".svn" | xargs rm -rf
rm -r ${D}/patches
+ cd ${D} ; mv COPYING COPYING.MIT LICENSE README doc ; mv setup-env bin
}
diff --git a/packages/python/python-cython-native_0.9.6.9.bb b/packages/python/python-cython-native_0.9.6.14.bb
index cb7743e1bf..cb7743e1bf 100644
--- a/packages/python/python-cython-native_0.9.6.9.bb
+++ b/packages/python/python-cython-native_0.9.6.14.bb
diff --git a/packages/python/python-cython-native_0.9.8.bb b/packages/python/python-cython-native_0.9.8.bb
new file mode 100644
index 0000000000..cb7743e1bf
--- /dev/null
+++ b/packages/python/python-cython-native_0.9.8.bb
@@ -0,0 +1,9 @@
+require python-cython_${PV}.bb
+inherit native
+DEPENDS = "python-native"
+RDEPENDS = ""
+
+do_stage() {
+ BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
+ ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR}
+}
diff --git a/packages/python/python-cython_0.9.6.9.bb b/packages/python/python-cython_0.9.6.14.bb
index a513104108..6077089bf2 100644
--- a/packages/python/python-cython_0.9.6.9.bb
+++ b/packages/python/python-cython_0.9.6.14.bb
@@ -4,10 +4,10 @@ and the messy, low-level world of C."
SECTION = "devel/python"
PRIORITY = "optional"
LICENSE = "GPL"
-SRCNAME = "cython"
+SRCNAME = "Cython"
PR = "ml0"
-SRC_URI = "http://www.cython.org/${SRCNAME}-${PV}.zip"
+SRC_URI = "http://pypi.python.org/packages/source/C/Cython/${SRCNAME}-${PV}.tar.gz"
S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit distutils
diff --git a/packages/python/python-cython_0.9.8.bb b/packages/python/python-cython_0.9.8.bb
new file mode 100644
index 0000000000..9243aa61f0
--- /dev/null
+++ b/packages/python/python-cython_0.9.8.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \
+It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
+and the messy, low-level world of C."
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+SRCNAME = "Cython"
+PR = "ml0"
+
+SRC_URI = "http://www.cython.org/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
+
+DEFAULT_PREFERENCE = "-1"
+
diff --git a/packages/python/python-opendir/.mtn2git_empty b/packages/python/python-opendir/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/python/python-opendir/.mtn2git_empty
diff --git a/packages/python/python-opendir/opendir.pyx b/packages/python/python-opendir/opendir.pyx
new file mode 100644
index 0000000000..1ee81f7382
--- /dev/null
+++ b/packages/python/python-opendir/opendir.pyx
@@ -0,0 +1,149 @@
+##############################################################
+#
+# opendir.pyx - A class exposing the functionality of
+# =========== the opendir() family of C libary functions.
+#
+# By Gregory Ewing
+# greg.ewing@canterbury.ac.nz
+#
+# This software and derivative works created from it
+# may be used and redistributed without restriction.
+#
+##############################################################
+
+cdef extern from "sys/errno.h":
+ int errno
+
+cdef extern from "stdio.h":
+ char *strerror(int)
+
+cdef extern from "dirent.h":
+ ctypedef struct DIR
+ struct dirent:
+ int d_namlen
+ char d_name[1]
+ DIR *c_opendir "opendir" (char *)
+ int readdir_r(DIR *, dirent *, dirent **)
+ long telldir(DIR *)
+ void seekdir(DIR *, long)
+ void rewinddir(DIR *)
+ int closedir(DIR *)
+ int dirfd(DIR *)
+
+#------------------------------------------------------------------
+
+cdef class opendir:
+ """opendir(pathname) --> an open directory object
+
+ Opens a directory and provides incremental access to
+ the filenames it contains. May be used as a file-like
+ object or as an iterator.
+
+ When used as a file-like object, each call to read()
+ returns one filename, or an empty string when the end
+ of the directory is reached. The close() method should
+ be called when finished with the directory.
+
+ The close() method should also be called when used as
+ an iterator and iteration is stopped prematurely. If
+ iteration proceeds to completion, the directory is
+ closed automatically."""
+
+ cdef DIR *dir
+
+ def __cinit__(self, char *path):
+ self.dir = c_opendir(path)
+ if not self.dir:
+ raise IOError(errno, "%s: '%s'" % (strerror(errno), path))
+
+ def __dealloc__(self):
+ if self.dir:
+ closedir(self.dir)
+
+ def read(self):
+ """read() --> filename or empty string
+
+ Returns the next filename from the directory, or an empty
+ string if the end of the directory has been reached."""
+
+ cdef dirent entry, *result
+ check_open(self)
+ if readdir_r(self.dir, &entry, &result) < 0:
+ raise IOError(errno)
+ if result:
+ return entry.d_name
+ else:
+ return ""
+
+ def tell(self):
+ """tell() --> position
+
+ Returns a value representing the current position in the
+ directory, suitable for passing to tell(). Only valid for
+ this directory object as long as it remains open."""
+
+ check_open(self)
+ return telldir(self.dir)
+
+ def seek(self, long pos):
+ """seek(position)
+
+ Returns the directory to the specified position, which
+ should be a value previously returned by tell()."""
+
+ check_open(self)
+ seekdir(self.dir, pos)
+
+ def rewind(self):
+ """rewind()
+
+ Resets the position to the beginning of the directory."""
+
+ check_open(self)
+ rewinddir(self.dir)
+
+ def close(self):
+ """close()
+
+ Closes the directory and frees the underlying file descriptor."""
+
+ if self.dir:
+ if closedir(self.dir) < 0:
+ raise IOError(errno)
+ self.dir = NULL
+
+# MaxOSX doesn't seem to have dirfd, despite what the
+# man page says. :-(
+#
+# def fileno(self):
+# """fileno() --> file descriptor
+#
+# Returns the file descriptor associated with the open directory."""
+#
+# check_open(self)
+# return dirfd(self.dir)
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ """next() --> filename
+
+ Returns the next filename from the directory. If the end of the
+ directory has been reached, closes the directory and raises
+ StopIteration."""
+
+ if self.dir:
+ result = self.read()
+ if result:
+ return result
+ self.close()
+ raise StopIteration
+
+#------------------------------------------------------------------
+
+cdef int check_open(opendir d) except -1:
+ if not d.dir:
+ raise ValueError("Directory is closed")
+ return 0
+
diff --git a/packages/python/python-opendir/setup.py b/packages/python/python-opendir/setup.py
new file mode 100644
index 0000000000..d76b22c95a
--- /dev/null
+++ b/packages/python/python-opendir/setup.py
@@ -0,0 +1,25 @@
+from distutils.core import setup
+from distutils.extension import Extension
+from Cython.Distutils import build_ext
+
+setup(
+ name = 'opendir',
+ version = '0.0.1',
+ author = 'Gregory Ewing',
+ author_email = 'greg ewing at canterbury ac nz',
+ maintainer = 'Johannes "josch" Schauer',
+ maintainer_email = 'j schauer at email de',
+ description = 'Implements POSIX opendir',
+ classifiers = [
+ 'Development Status :: 4 - Beta',
+ 'Intended Audience :: Developers',
+ 'Operating System :: POSIX',
+ 'Programming Language :: Pyrex',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'Topic :: System :: Filesystems'
+ ],
+ ext_modules=[
+ Extension("opendir", ["opendir.pyx"]),
+ ],
+ cmdclass = {'build_ext': build_ext}
+)
diff --git a/packages/python/python-opendir_1.0.bb b/packages/python/python-opendir_1.0.bb
new file mode 100644
index 0000000000..88f22a1d9a
--- /dev/null
+++ b/packages/python/python-opendir_1.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "POSIX opendir support for Python"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "PD"
+HOMEPAGE = "http://rabenfrost.net/mokopedia/opendir/"
+DEPENDS = "python-pyrex-native python-cython-native"
+PR = "ml0"
+
+SRC_URI = "\
+ file://opendir.pyx \
+ file://setup.py \
+"
+S = "${WORKDIR}"
+
+inherit distutils
diff --git a/packages/python/python-pyrex-native_0.9.5.1a.bb b/packages/python/python-pyrex-native_0.9.8.4.bb
index d7ec81fd8e..d7ec81fd8e 100644
--- a/packages/python/python-pyrex-native_0.9.5.1a.bb
+++ b/packages/python/python-pyrex-native_0.9.8.4.bb
diff --git a/packages/python/python-pyrex_0.9.5.1a.bb b/packages/python/python-pyrex_0.9.8.4.bb
index d0a5f826e0..d0a5f826e0 100644
--- a/packages/python/python-pyrex_0.9.5.1a.bb
+++ b/packages/python/python-pyrex_0.9.8.4.bb
diff --git a/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty b/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty
diff --git a/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch b/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch
new file mode 100644
index 0000000000..310f1931bc
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch
@@ -0,0 +1,32 @@
+--- /tmp/configure 2008-07-08 10:01:36.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/configure 2008-07-08 10:23:04.000000000 +0200
+@@ -762,7 +762,7 @@
+ UNKNOWN_ARG=yes
+ fi
+ ;;
+- -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
++ -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config|-crossarch)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ shift
+ VAL="$1"
+@@ -1179,7 +1179,10 @@
+ xplatform)
+ XPLATFORM="$VAL"
+ ;;
+- debug-and-release)
++ crossarch)
++ CROSSARCH="$VAL"
++ ;;
++ debug-and-release)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_DEBUG_RELEASE="$VAL"
+ else
+@@ -2417,6 +2420,8 @@
+ ARCH=$HOST_ARCH
+ fi
+
++ARCH="$CROSSARCH"
++
+ if [ -d "$relpath/src/corelib/arch/$ARCH" ]; then
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$ARCH' is supported"
diff --git a/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch b/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch
new file mode 100644
index 0000000000..bb36444f80
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch
@@ -0,0 +1,16 @@
+--- /tmp/src.pro 2008-07-08 10:43:30.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/src/src.pro 2008-07-08 11:28:24.000000000 +0200
+@@ -6,12 +6,9 @@
+ wince*:{
+ SRC_SUBDIRS += src_corelib src_xml src_gui src_sql src_network src_script src_testlib
+ } else {
+- SRC_SUBDIRS += src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_network src_gui src_sql src_script src_testlib
++ SRC_SUBDIRS += src_corelib src_xml src_network src_gui src_sql src_script src_testlib
+ contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
+ contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
+- !cross_compile {
+- contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3
+- }
+ }
+ win32:!contains(QT_EDITION, OpenSource|Console): {
+ SRC_SUBDIRS += src_activeqt
diff --git a/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch b/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch
new file mode 100644
index 0000000000..28f8d3ad9d
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch
@@ -0,0 +1,25 @@
+From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sat, 2 Jun 2007 16:06:59 +0200
+Subject: [PATCH] no qmake
+
+---
+ configure | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index b3c2a52..1901e57 100755
+--- a/configure
++++ b/configure
+@@ -3517,7 +3517,7 @@ END {
+ }
+
+ # build qmake
+-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
++if false; then ###[ '!' -f "$outpath/bin/qmake" ];
+ echo "Creating qmake. Please wait..."
+
+ OLD_QCONFIG_H=
+--
+1.5.0.7
+
diff --git a/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch b/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch
new file mode 100644
index 0000000000..c6f55906bc
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch
@@ -0,0 +1,101 @@
+--- /tmp/g++.conf 2008-07-08 10:32:18.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/g++.conf 2008-07-08 10:34:15.000000000 +0200
+@@ -2,12 +2,12 @@
+ # qmake configuration for common gcc
+ #
+
+-QMAKE_CC = gcc
+-QMAKE_CFLAGS += -pipe
++QMAKE_CC = $(OE_QMAKE_CC)
++QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS)
+ QMAKE_CFLAGS_DEPS += -M
+ QMAKE_CFLAGS_WARN_ON += -Wall -W
+ QMAKE_CFLAGS_WARN_OFF += -w
+-QMAKE_CFLAGS_RELEASE += -O2
++QMAKE_CFLAGS_RELEASE +=
+ QMAKE_CFLAGS_DEBUG += -g
+ QMAKE_CFLAGS_SHLIB += -fPIC
+ QMAKE_CFLAGS_STATIC_LIB += -fPIC
+@@ -16,8 +16,8 @@
+ QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
+
+-QMAKE_CXX = g++
+-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
++QMAKE_CXX = $(OE_QMAKE_CXX)
++QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS)
+ QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
+ QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
+@@ -30,9 +30,9 @@
+ QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+
+-QMAKE_LINK = g++
+-QMAKE_LINK_SHLIB = g++
+-QMAKE_LFLAGS +=
++QMAKE_LINK = $(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
+ QMAKE_LFLAGS_RELEASE +=
+ QMAKE_LFLAGS_DEBUG +=
+ QMAKE_LFLAGS_APP +=
+@@ -41,7 +41,7 @@
+ QMAKE_LFLAGS_SONAME += -Wl,-soname,
+ QMAKE_LFLAGS_THREAD +=
+ QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
+-QMAKE_RPATH = -Wl,-rpath,
++QMAKE_RPATH = -Wl,-rpath-link,
+
+ QMAKE_PCH_OUTPUT_EXT = .gch
+
+--- /tmp/linux.conf 2008-07-08 10:32:18.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/linux.conf 2008-07-08 10:38:37.000000000 +0200
+@@ -7,26 +7,27 @@
+
+ QMAKE_INCDIR =
+ QMAKE_LIBDIR =
+-QMAKE_INCDIR_X11 = /usr/X11R6/include
+-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+-QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
+-QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
+-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
++QMAKE_INCDIR_X11 =
++QMAKE_LIBDIR_X11 =
++QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
++QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
++QMAKE_INCDIR_OPENGL =
++QMAKE_LIBDIR_OPENGL =
++
+
+ QMAKE_LIBS =
+ QMAKE_LIBS_DYNLOAD = -ldl
+-QMAKE_LIBS_X11 = -lXext -lX11 -lm
+-QMAKE_LIBS_X11SM = -lSM -lICE
++QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
++QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
+ QMAKE_LIBS_NIS = -lnsl
+ QMAKE_LIBS_OPENGL = -lGLU -lGL
+ QMAKE_LIBS_OPENGL_QT = -lGL
+ QMAKE_LIBS_THREAD = -lpthread
+
+-QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
++QMAKE_MOC = $(OE_QMAKE_MOC)
++QMAKE_UIC = $(OE_QMAKE_UIC)
+
+-QMAKE_AR = ar cqs
++QMAKE_AR = $(OE_QMAKE_AR) cqs
+ QMAKE_OBJCOPY = objcopy
+ QMAKE_RANLIB =
+
+@@ -39,7 +40,7 @@
+ QMAKE_MOVE = mv -f
+ QMAKE_DEL_FILE = rm -f
+ QMAKE_DEL_DIR = rmdir
+-QMAKE_STRIP = strip
++QMAKE_STRIP = $(OE_QMAKE_STRIP)
+ QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+ QMAKE_CHK_DIR_EXISTS = test -d
+ QMAKE_MKDIR = mkdir -p
diff --git a/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch b/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch
new file mode 100644
index 0000000000..cc8e115fee
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch
@@ -0,0 +1,23 @@
+From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Mon, 4 Jun 2007 14:48:50 +0200
+Subject: [PATCH] freetype host includes
+
+---
+ config.tests/unix/freetype/freetype.pri | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri
+index 84974bf..ab9a6f2 100644
+--- a/config.tests/unix/freetype/freetype.pri
++++ b/config.tests/unix/freetype/freetype.pri
+@@ -1,5 +1,5 @@
+ !cross_compile {
+- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ for(p, TRY_INCLUDEPATHS) {
+ p = $$join(p, "", "", "/freetype2")
+ exists($$p):INCLUDEPATH *= $$p
+--
+1.5.0.7
+
diff --git a/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch b/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch
new file mode 100644
index 0000000000..35b71d9694
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch
@@ -0,0 +1,23 @@
+From d45943adb443ad4b85ca4504952dee743c675e1e Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Mon, 4 Jun 2007 14:58:34 +0200
+Subject: [PATCH] openssl host includes
+
+---
+ config.tests/unix/openssl/openssl.pri | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/config.tests/unix/openssl/openssl.pri b/config.tests/unix/openssl/openssl.pri
+index 756e5fe..19b4061 100644
+--- a/config.tests/unix/openssl/openssl.pri
++++ b/config.tests/unix/openssl/openssl.pri
+@@ -1,5 +1,5 @@
+ !cross_compile {
+- TRY_INCLUDEPATHS = /include /usr/include /usr/local/include $$QMAKE_INCDIR $$INCLUDEPATH
++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$INCLUDEPATH
+ for(p, TRY_INCLUDEPATHS) {
+ pp = $$join(p, "", "", "/openssl")
+ exists($$pp):INCLUDEPATH *= $$p
+--
+1.5.0.7
+
diff --git a/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch b/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch
new file mode 100644
index 0000000000..601f2fc369
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch
@@ -0,0 +1,62 @@
+Index: qtopia-core-opensource-src-4.3.3/configure
+===================================================================
+--- qtopia-core-opensource-src-4.3.3.orig/configure 2008-01-20 11:42:07.000000000 +0100
++++ qtopia-core-opensource-src-4.3.3/configure 2008-01-20 22:31:37.000000000 +0100
+@@ -639,10 +639,10 @@
+
+ CFG_SQL_AVAILABLE=
+ if [ -d "$relpath/src/plugins/sqldrivers" ]; then
+- for a in "$relpath/src/plugins/sqldrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/sqldrivers/`; do
++ dir="$relpath/src/plugins/sqldrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${a}"
+ eval "CFG_SQL_${base_a}=auto"
+ fi
+ done
+@@ -650,30 +650,30 @@
+
+ CFG_DECORATION_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/decorations" ]; then
+- for a in "$relpath/src/plugins/decorations/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/decorations/`; do
++ dir="$relpath/src/plugins/decorations/$a"
++ if [ -d "$dir" ]; then
++ CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ fi
+
+ CFG_MOUSE_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/mousedrivers" ]; then
+- for a in "$relpath/src/plugins/mousedrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/mousedrivers/`; do
++ dir="$relpath/src/plugins/mousedrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ fi
+
+ CFG_GFX_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
+- for a in "$relpath/src/plugins/gfxdrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/gfxdrivers/`; do
++ dir="$relpath/src/plugins/gfxdrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
diff --git a/packages/qt4/qt-embedded-4.4.0/build-tools.patch b/packages/qt4/qt-embedded-4.4.0/build-tools.patch
new file mode 100644
index 0000000000..54ad666374
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/build-tools.patch
@@ -0,0 +1,28 @@
+Do not disable tools, examples and demos for the QWS build. Use brute-force
+to do this.
+
+Index: qtopia-core-opensource-src-4.3.3/configure
+===================================================================
+--- qtopia-core-opensource-src-4.3.3.orig/configure 2007-12-27 16:30:36.000000000 +0100
++++ qtopia-core-opensource-src-4.3.3/configure 2007-12-27 16:30:52.000000000 +0100
+@@ -2265,13 +2265,13 @@
+ CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
+
+ # don't build tools by default when cross-compiling
+- if [ "$PLATFORM" != "$XPLATFORM" ]; then
+- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
+- fi
+-fi
+-for nobuild in $CFG_NOBUILD_PARTS; do
+- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
+-done
++ #if [ "$PLATFORM" != "$XPLATFORM" ]; then
++ # CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
++ #fi
++fi
++#for nobuild in $CFG_NOBUILD_PARTS; do
++# CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
++#done
+ if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
+ # echo
+ # echo "WARNING: libs is a required part of the build."
diff --git a/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf b/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf
new file mode 100644
index 0000000000..fc5ac6dc5c
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf
@@ -0,0 +1,95 @@
+#
+# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+QT += core gui network
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = $(OE_QMAKE_CC)
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA)
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2)
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden
+
+QMAKE_CXX = $(OE_QMAKE_CXX)
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA)
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+QMAKE_INCDIR_QTOPIA = $(OE_QMAKE_INCDIR_QTOPIA)
+QMAKE_LIBDIR_QTOPIA = $(OE_QMAKE_LIBDIR_QTOPIA)
+
+
+QMAKE_LINK = $(OE_QMAKE_LINK)
+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
+QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA)
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath-link,
+
+QMAKE_LIBS = $(LIBS_EXTRA)
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 =
+QMAKE_LIBS_X11SM =
+QMAKE_LIBS_QT = -lqte
+QMAKE_LIBS_QT_THREAD = -lqte-mt
+QMAKE_LIBS_QT_OPENGL = -lqgl
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_QTOPIA = -lqpe -lqtopia
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
+
+QMAKE_AR = $(OE_QMAKE_AR) cqs
+QMAKE_RANLIB = $(OE_QMAKE_RANLIB)
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = $(OE_QMAKE_STRIP)
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
+load(qt_config)
diff --git a/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h b/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h
new file mode 100644
index 0000000000..f820c01da8
--- /dev/null
+++ b/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** This file may be used under the terms of the GNU General Public
+** License version 2.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of
+** this file. Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/
+**
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** In addition, as a special exception, Trolltech gives you certain
+** additional rights. These rights are described in the Trolltech GPL
+** Exception version 1.0, which can be found at
+** http://www.trolltech.com/products/qt/gplexception/ and in the file
+** GPL_EXCEPTION.txt in this package.
+**
+** In addition, as a special exception, Trolltech, as the sole copyright
+** holder for Qt Designer, grants users of the Qt/Eclipse Integration
+** plug-in the right for the Qt/Eclipse Integration to link to
+** functionality provided by Qt Designer and its related libraries.
+**
+** Trolltech reserves all rights not expressly granted herein.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
+
+/*
+ Empty leaves all features enabled. See doc/html/emb-features.html for choices.
+
+ Note that disabling some features will produce a libqt that is not
+ compatible with other libqt builds. Such modifications are only
+ supported on Qtopia Core where reducing the library size is important
+ and where the application-suite is often a fixed set.
+*/
diff --git a/packages/qt4/qt-embedded_4.4.0.bb b/packages/qt4/qt-embedded_4.4.0.bb
new file mode 100644
index 0000000000..f83b2516d7
--- /dev/null
+++ b/packages/qt4/qt-embedded_4.4.0.bb
@@ -0,0 +1,32 @@
+require qtopia-core.inc
+
+PROVIDES += "qtopia-core"
+RPROVIDES_${PN} = "qtopia-core"
+
+PR = "r4"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \
+ file://qconfig-oe.h \
+ file://0001-cross-compile.patch;patch=1 \
+ file://0003-no-tools.patch;patch=1 \
+ file://0004-no-qmake.patch;patch=1 \
+ file://0005-fix-mkspecs.patch;patch=1 \
+ file://build-tools.patch;patch=1"
+S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}"
+
+SRC_URI += " \
+ file://0006-freetype-host-includes.patch;patch=1 \
+ file://0007-openssl-host-includes.patch;patch=1 \
+# file://0008-backport-qt-lib-infix.patch;patch=1 \
+# file://allow-configure-plugins.patch;patch=1 \
+"
+
+QT_CONFIG_FLAGS += " \
+ -no-phonon -webkit \
+ -DQT_KEYPAD_NAVIGATION \
+ "
+
+QT_BASE_NAME = "qt-embedded"
+QT_BASE_LIB = "libqt-embedded"
+
+
diff --git a/packages/qt4/qt_packaging.inc b/packages/qt4/qt_packaging.inc
index 1b4faf97d2..b291925982 100644
--- a/packages/qt4/qt_packaging.inc
+++ b/packages/qt4/qt_packaging.inc
@@ -3,6 +3,7 @@ NONDEV_PACKAGES += "${QT_BASE_LIB}core4 ${QT_BASE_LIB}gui4 ${QT_BASE_LIB}network
${QT_BASE_LIB}designer4 ${QT_BASE_LIB}designercomponents4 \
${QT_BASE_LIB}3support4 ${QT_BASE_LIB}assistantclient4 ${QT_BASE_LIB}script4 \
${QT_BASE_LIB}dbus4 ${QT_BASE_LIB}opengl4 \
+ ${QT_BASE_LIB}help ${QT_BASE_LIB}clucene ${QT_BASE_LIB}webkit \
${QT_BASE_NAME}-assistant ${QT_BASE_NAME}-common \
${QT_BASE_NAME}-designer \
${QT_BASE_NAME}-demos ${QT_BASE_NAME}-examples \
@@ -24,7 +25,11 @@ DEV_PACKAGES += "${QT_BASE_LIB}core4-dev \
${QT_BASE_LIB}script4-dev \
${QT_BASE_LIB}dbus4-dev \
${QT_BASE_LIB}opengl4-dev \
- ${QT_BASE_LIB}uitools4-dev"
+ ${QT_BASE_LIB}uitools4-dev \
+ ${QT_BASE_LIB}help-dev \
+ ${QT_BASE_LIB}clucene-dev \
+ ${QT_BASE_LIB}webkit-dev \
+ "
DBG_PACKAGES += "${QT_BASE_LIB}core4-dbg \
${QT_BASE_LIB}gui4-dbg \
@@ -39,7 +44,11 @@ DBG_PACKAGES += "${QT_BASE_LIB}core4-dbg \
${QT_BASE_LIB}assistantclient4-dbg \
${QT_BASE_LIB}script4-dbg \
${QT_BASE_LIB}dbus4-dbg \
- ${QT_BASE_LIB}opengl4-dbg"
+ ${QT_BASE_LIB}opengl4-dbg \
+ ${QT_BASE_LIB}help-dbg \
+ ${QT_BASE_LIB}clucene-dbg \
+ ${QT_BASE_LIB}webkit-dbg \
+ "
PACKAGES += "${DEV_PACKAGES} ${NONDEV_PACKAGES} ${DBG_PACKAGES}"
@@ -48,9 +57,9 @@ ALLOW_EMPTY_${PN} = "1"
FILES_${PN} = ""
FILES_${PN}-dev = " ${includedir}/${QT_DIR_NAME}/Qt/*"
FILES_${PN}-dbg = "${bindir}/*/.debug "
-RDEPENDS_${PN} = "${NONDEV_PACKAGES}"
-RDEPENDS_${PN}-dev = "${DEV_PACKAGES}"
-RDEPENDS_${PN}-dbg = "${DBG_PACKAGES}"
+RRECOMMENDS_${PN} = "${NONDEV_PACKAGES}"
+RRECOMMENDS_${PN}-dev = "${DEV_PACKAGES}"
+RRECOMMENDS_${PN}-dbg = "${DBG_PACKAGES}"
def qt_default_dev(name):
return """${libdir}/libQt%(name)s${QT_LIBINFIX}.la
@@ -103,7 +112,15 @@ FILES_${QT_BASE_LIB}opengl4 = "${libdir}/libQtOpenGL${QT_LIBINFI
FILES_${QT_BASE_LIB}opengl4-dev = "${@qt_default_dev('OpenGL')}"
FILES_${QT_BASE_LIB}opengl4-dbg = "${libdir}/.debug/libQtOpenGL*"
FILES_${QT_BASE_LIB}uitools4-dev = "${libdir}/libQtUiTools* ${includedir}/${QT_DIR_NAME}/QtUiTools* ${libdir}/pkgconfig/QtUiTools${QT_LIBINFIX}.pc"
-
+FILES_${QT_BASE_LIB}help = "${libdir}/libQtHelp${QT_LIBINFIX}.so.*"
+FILES_${QT_BASE_LIB}help-dev = "${@qt_default_dev('Help')}"
+FILES_${QT_BASE_LIB}help-dbg = "${libdir}/.debug/libQtHelp*"
+FILES_${QT_BASE_LIB}clucene = "${libdir}/libQtCLucene${QT_LIBINFIX}.so.*"
+FILES_${QT_BASE_LIB}clucene-dev = "${@qt_default_dev('CLucene')}"
+FILES_${QT_BASE_LIB}clucene-dbg = "${libdir}/.debug/libQtCLucene*"
+FILES_${QT_BASE_LIB}webkit = "${libdir}/libQtWebKit${QT_LIBINFIX}.so.*"
+FILES_${QT_BASE_LIB}webkit-dev = "${@qt_default_dev('WebKit')}"
+FILES_${QT_BASE_LIB}webkit-dbg = "${libdir}/.debug/libQtWebKit*"
FILES_${QT_BASE_NAME}-assistant = "${bindir}/*assistant*"
FILES_${QT_BASE_NAME}-designer = "${bindir}/*designer*"
@@ -120,11 +137,11 @@ FILES_${QT_BASE_NAME}-fonts = "${libdir}/fonts"
python populate_packages_prepend() {
translation_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/translations/', d)
translation_name = bb.data.expand('${QT_BASE_NAME}-translation-%s', d)
- do_split_packages(d, translation_dir, '^qt_(.*)\.qm$', translation_name, '{PN} translation for %s', extra_depends='' )
+ do_split_packages(d, translation_dir, '^qt_(.*)\.qm$', translation_name, '${PN} translation for %s', extra_depends='' )
phrasebook_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/phrasebooks/', d)
phrasebook_name = bb.data.expand('${QT_BASE_NAME}-phrasebook-%s', d)
- do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '{PN} phrasebook for %s', extra_depends='' )
+ do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '${PN} phrasebook for %s', extra_depends='' )
# Package all the plugins and their -dbg version and create a meta package
import os
@@ -141,7 +158,7 @@ python populate_packages_prepend() {
plugin_name = bb.data.expand('${QT_BASE_NAME}-plugin-%s-%%s' % name, d)
dev_packages = []
dev_hook = lambda file,pkg,b,c,d:dev_packages.append((file,pkg))
- do_split_packages(d, plugin_dir, glob, plugin_name, '{PN} %s for %%s' % name, extra_depends='', hook=dev_hook)
+ do_split_packages(d, plugin_dir, glob, plugin_name, '${PN} %s for %%s' % name, extra_depends='', hook=dev_hook)
# Create a -dbg package as well
plugin_dir_dbg = bb.data.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/.debug' % path, d)
packages = bb.data.getVar('PACKAGES',d)
@@ -149,7 +166,7 @@ python populate_packages_prepend() {
packages = "%s %s-dbg" % (packages, package)
file_name = os.path.join(plugin_dir_dbg, os.path.basename(file))
bb.data.setVar("FILES_%s-dbg" % package, file_name, d)
- bb.data.setVar("DESCRIPTION_%s-dbg" % package, "{PN} %s for %s" % (name, package), d)
+ bb.data.setVar("DESCRIPTION_%s-dbg" % package, "${PN} %s for %s" % (name, package), d)
bb.data.setVar('PACKAGES', packages, d)
diff --git a/packages/qt4/qt_staging.inc b/packages/qt4/qt_staging.inc
index a49be4757e..705ae14f8d 100644
--- a/packages/qt4/qt_staging.inc
+++ b/packages/qt4/qt_staging.inc
@@ -6,6 +6,11 @@ do_stage_append() {
sed -i s#"uic_location=${STAGING_BINDIR}/uic4$"## Qt*.pc
sed -i s#"-L${STAGING_LIBDIR}"##g Qt*.pc
sed -i s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g Qt*.pc
+ sed -i s#"-L${S}/lib"##g phonon*.pc
+ sed -i s#"moc_location=${STAGING_BINDIR}/moc4$"## phonon*.pc
+ sed -i s#"uic_location=${STAGING_BINDIR}/uic4$"## phonon*.pc
+ sed -i s#"-L${STAGING_LIBDIR}"##g phonon*.pc
+ sed -i s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g phonon*.pc
cd ${STAGING_LIBDIR}
sed -i s#"-L${S}/lib"##g libQt*.la
diff --git a/packages/qt4/qtopia-core_4.4.0.bb b/packages/qt4/qtopia-core_4.4.0.bb
new file mode 100644
index 0000000000..71a702b965
--- /dev/null
+++ b/packages/qt4/qtopia-core_4.4.0.bb
@@ -0,0 +1,6 @@
+#Empty recipe to break a recursive loop
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_angstrom = "1"
+
+#keep in sync with qt-embedded_4.4.0.bb
+PR = "r4"
diff --git a/packages/tar/tar_1.20.bb b/packages/tar/tar_1.20.bb
new file mode 100644
index 0000000000..701c0b77bf
--- /dev/null
+++ b/packages/tar/tar_1.20.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "GNU tar saves many files together into a single tape \
+or disk archive, and can restore individual files from the archive."
+SECTION = "base"
+LICENSE = "GPLv3"
+
+SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2"
+
+inherit autotools
+
+do_install () {
+ autotools_do_install
+ install -d ${D}${base_bindir}
+ mv ${D}${bindir}/tar ${D}${base_bindir}/tar.${PN}
+ mv ${D}${libexecdir}/rmt ${D}${libexecdir}/rmt.${PN}
+}
+
+pkg_postinst_${PN} () {
+ update-alternatives --install ${base_bindir}/tar tar tar.${PN} 100
+ update-alternatives --install ${libexecdir}/rmt rmt rmt.${PN} 100
+}
+
+pkg_prerm_${PN} () {
+ update-alternatives --remove tar tar.${PN}
+ update-alternatives --remove rmt rmt.${PN}
+}
diff --git a/packages/tasks/task-python-everything.bb b/packages/tasks/task-python-everything.bb
index 669c94159b..623337455c 100644
--- a/packages/tasks/task-python-everything.bb
+++ b/packages/tasks/task-python-everything.bb
@@ -1,7 +1,7 @@
DESCRIPTION= "Everything Python"
HOMEPAGE = "http://www.vanille.de/projects/python.spy"
LICENSE = "MIT"
-PR = "ml30"
+PR = "ml31"
RDEPENDS = "\
python-ao \
@@ -36,6 +36,7 @@ RDEPENDS = "\
python-numarray \
python-numeric \
python-ogg \
+ python-opendir \
python-pexpect \
python-pyalsa \
python-pyalsaaudio \
diff --git a/packages/tasks/task-sdk-bare.bb b/packages/tasks/task-sdk-bare.bb
new file mode 100644
index 0000000000..d2d40f64b3
--- /dev/null
+++ b/packages/tasks/task-sdk-bare.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Packages for a standalone SDK or external toolchain"
+LICENSE = "MIT"
+ALLOW_EMPTY = "1"
+
+
+PACKAGES = "${PN}"
+
+RDEPENDS_${PN} = "\
+ glibc \
+ glibc-dbg \
+ glibc-dev \
+ glibc-utils \
+ libsegfault \
+ glibc-thread-db \
+ glibc-localedata-i18n \
+ glibc-gconv-ibm850 \
+ glibc-gconv-cp1252 \
+ glibc-gconv-iso8859-1 \
+ glibc-gconv-iso8859-15 \
+ locale-base-en-gb \
+ libgcc \
+ libstdc++ \
+"
diff --git a/packages/u-boot/files/Makefile-fix.patch b/packages/u-boot/files/Makefile-fix.patch
new file mode 100644
index 0000000000..fccf19c63d
--- /dev/null
+++ b/packages/u-boot/files/Makefile-fix.patch
@@ -0,0 +1,25 @@
+--- /tmp/Makefile 2008-07-07 20:48:41.000000000 +0200
++++ git/Makefile 2008-07-07 20:49:22.000000000 +0200
+@@ -21,10 +21,6 @@
+ # MA 02111-1307 USA
+ #
+
+-ifndef PRJROOT
+-$(error You must first source the BSP environment: "source neuros-env")
+-endif
+-
+ VERSION = 1
+ PATCHLEVEL = 3
+ SUBLEVEL = 2
+@@ -417,11 +413,6 @@
+ grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
+ sort > $(obj)System.map
+
+-install: u-boot.bin u-boot
+- @install -p u-boot.bin $(PRJROOT)/images/ > /dev/null
+- @install -p u-boot $(PRJROOT)/images/ > /dev/null
+- @install uboot_desc $(PRJROOT)/images/ > /dev/null
+-
+ #
+ # Auto-generate the autoconf.mk file (which is included by all makefiles)
+ #
diff --git a/packages/u-boot/files/neuros-osd2/.mtn2git_empty b/packages/u-boot/files/neuros-osd2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/u-boot/files/neuros-osd2/.mtn2git_empty
diff --git a/packages/u-boot/files/neuros-osd2/default-env.ascr b/packages/u-boot/files/neuros-osd2/default-env.ascr
new file mode 100644
index 0000000000..965f778b44
--- /dev/null
+++ b/packages/u-boot/files/neuros-osd2/default-env.ascr
@@ -0,0 +1,55 @@
+setenv loadaddr 0x82000000
+setenv ubootaddr 0x82000800
+setenv tftp_root /images
+setenv nfs_root /home/user/rootfs/fs
+setenv bootfile uImage
+
+setenv defenv_fname default_env.img
+setenv defenv_loc /images/default_env.img
+setenv defenv_loc_cmd setenv defenv_loc \$(tftp_root)/\$(defenv_fname)
+
+setenv uboot_fname u-boot.bin
+setenv uboot_loc /images/u-boot.bin
+setenv uboot_loc_cmd setenv uboot_loc \$(tftp_root)/\$(uboot_fname)\;setenv uboot_desc \$(tftp_root)/uboot_desc
+
+setenv kernel_fname uImage
+setenv kernel_loc /images/uImage
+setenv kernel_loc_cmd setenv kernel_loc \$(tftp_root)/\$(kernel_fname)
+
+setenv jffs2_fname uImage.jffs2
+setenv jffs2_loc /images/uImage.jffs2
+setenv jffs2_loc_cmd setenv jffs2_loc \$(tftp_root)/\$(jffs2_fname)
+
+setenv rootfs_fname rootfs.yaffs2
+setenv rootfs_loc /images/rootfs.yaffs2
+setenv rootfs_loc_cmd setenv rootfs_loc \$(tftp_root)/\$(rootfs_fname)
+
+setenv rootfs_nfs_loc /rootfs/fs
+setenv rootfs_nfs_loc_cmd setenv rootfs_nfs_loc \$(nfs_root)
+
+setenv console console=ttyS0,115200n8
+
+setenv mem_reserve mem=200M
+
+setenv video_params video=davincifb:output=ntsc:format=composite
+
+setenv ip ip=\192.168.1.100:\192.168.1.1:\192.168.1.1:\255.255.255.0:\neuros::off
+
+setenv nfs_mount_params udp,v3,rsize=4096,wsize=4096
+setenv nfs_cmd setenv bootargs \$(console) root=/dev/nfs rw nfsroot=\$(serverip):\$(rootfs_nfs_loc),\$(nfs_mount_params) \$(ip) \$(mem_reserve) \$(video_params)
+setenv yaffs_cmd setenv bootargs \$(console) root=/dev/mtdblock4 rw \$(ip) \$(mem_reserve) \$(video_params)
+
+setenv update-locs run uboot_loc_cmd\;run kernel_loc_cmd\;run jffs2_loc_cmd\;run defenv_loc_cmd\;run rootfs_nfs_loc_cmd\;saveenv
+setenv update-defenv run defenv_loc_cmd\;tftp \$(loadaddr) \$(defenv_loc)\;setenv filesize\;autoscr \$(loadaddr)\;run update-locs
+setenv update-uboot run uboot_loc_cmd\;tftp \$(loadaddr) \$(uboot_desc)\;tftp \$(ubootaddr) \$(uboot_loc)\;setenv filesize\;nand erase c0000 c0000\;nand write \$(loadaddr) c0000 c0000
+setenv update-kernel run jffs2_loc_cmd\;tftp \$(loadaddr) \$(jffs2_loc)\;setenv filesize\;nand erase 1c0000 500000\;nand write.jffs2 \$(loadaddr) 1c0000 500000
+setenv update-rootfs run rootfs_loc_cmd\;tftp \$(loadaddr) \$(rootfs_loc)\;nand erase 6c0000\;nand write.yaffs \$(loadaddr) 6c0000 \$(filesize)\;setenv filesize
+
+setenv update-ipdhcp setenv ip ip=::::\$(hostname)::dhcp\;saveenv
+setenv update-ipstatic setenv ip ip=\$(ipaddr):\$(serverip):\$(gatewayip):\$(netmask):\$(hostname)::off\;saveenv
+
+setenv devboot tftp \$(loadaddr) \$(uboot_loc)\;setenv filesize\;go \$(loadaddr)
+setenv devkernel run nfs_cmd\;tftp \$(loadaddr) \$(kernel_loc)\;setenv filesize\;bootm \$(loadaddr)
+setenv yaffs_boot run yaffs_cmd\;fsload \$(loadaddr) \$(bootfile)\;bootm \$(loadaddr)
+
+setenv bootcmd run yaffs_boot
diff --git a/packages/u-boot/u-boot-env.bb b/packages/u-boot/u-boot-env.bb
new file mode 100644
index 0000000000..fc4d64ad78
--- /dev/null
+++ b/packages/u-boot/u-boot-env.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Dummy package to get uboot env image into deploy"
+
+inherit kernel-arch
+
+SRC_URI = "file://default-env.ascr"
+
+
+do_compile() {
+ cp ${WORKDIR}/default-env.ascr ${S}
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T script -C none -a 0 -e 0 -n "${DISTRO_NAME}/${MACHINE} env script" -d default-env.ascr default_env.img
+}
+
+do_stage() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 ${S}/default_env.img ${DEPLOY_DIR_IMAGE}/
+ package_stagefile_shell ${DEPLOY_DIR_IMAGE}/default_env.img
+
+}
+
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/packages/u-boot/u-boot_git.bb b/packages/u-boot/u-boot_git.bb
index c201eced37..32634dfa00 100644
--- a/packages/u-boot/u-boot_git.bb
+++ b/packages/u-boot/u-boot_git.bb
@@ -1,12 +1,13 @@
require u-boot.inc
-PR="r6"
+PR="r7"
SRCREV_davinci-sffsdr = "a524e112b424c6843800ea2f19d3a8cf01d0aa94"
SRCREV_beagleboard = "a94f22f08f280905926219e568568964cb9eeb9d"
+SRCREV_neuros-osd2 = "482dfe48845192c7f810bccfc93db93d0f1654f7"
SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git "
SRC_URI_sequoia = "git://www.denx.de/git/u-boot.git;protocol=git;tag=cf3b41e0c1111dbb865b6e34e9f3c3d3145a6093 "
-
+SRC_URI_neuros-osd2 = "git://git.neurostechnology.com/git/u-boot;protocol=git;branch=neuros"
SRC_URI_append_davinci-sffsdr = " file://sffsdr-u-boot.patch;patch=1 "
SRC_URI_append_beagleboard = "file://base.patch;patch=1 \
@@ -14,6 +15,8 @@ SRC_URI_append_beagleboard = "file://base.patch;patch=1 \
file://armv7-a.patch;patch=1 \
"
+SRC_URI_neuros-osd2 += "file://Makefile-fix.patch;patch=1"
+
S = "${WORKDIR}/git"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/packages/uicmoc/uicmoc4-native_4.4.0.bb b/packages/uicmoc/uicmoc4-native_4.4.0.bb
new file mode 100644
index 0000000000..6d9c83eb75
--- /dev/null
+++ b/packages/uicmoc/uicmoc4-native_4.4.0.bb
@@ -0,0 +1,7 @@
+require uicmoc4-native.inc
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \
+ file://configure-fix.patch;patch=1"
+S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}"
+
+
diff --git a/packages/webkit/webkit-gtk/GNUmakefile.am b/packages/webkit/webkit-gtk/GNUmakefile.am
index 725c79d3c6..a6ae299039 100644
--- a/packages/webkit/webkit-gtk/GNUmakefile.am
+++ b/packages/webkit/webkit-gtk/GNUmakefile.am
@@ -14,8 +14,9 @@
#
# Sources, headers, flags, etc... should be added to the respective variables
# with the above suffix, e.g, webcore-specific sources should go to
-# webcore_sources, gtk port-specific flags should go to webkitgtk_cppflags,
-# etc... The only exceptions are the global variables. See Global Variables below.
+# webcore_sources, gtk port API and WebCoreSupport parts to webkitgtk_sources,
+# etc... The only exceptions are the global variables. See Global Variables
+# below.
#
# Global Variables
#
@@ -37,6 +38,8 @@ GENPROGRAMS := $(top_builddir)/Programs
CREATE_HASH_TABLE = $(srcdir)/JavaScriptCore/kjs/create_hash_table
# Libraries and support components
+bin_PROGRAMS :=
+
noinst_PROGRAMS :=
lib_LIBRARIES :=
@@ -71,6 +74,12 @@ global_cxxflags += \
-fno-rtti
endif
+# -no-undefined required for building DLLs on Windows
+# It breaks the build on other platforms, so we use it conditionally
+if OS_WIN32
+no_undefined = -no-undefined
+endif
+
# Shared libraries
lib_LTLIBRARIES = \
libwebkit-1.0.la
@@ -115,17 +124,19 @@ libJavaScriptCore_la_LIBADD = \
-lpthread
libJavaScriptCore_la_CXXFLAGS = \
+ -fstrict-aliasing \
+ -O3 \
$(global_cxxflags) \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS) \
- $(UNICODE_CFLAGS) \
- -fno-strict-aliasing
+ $(UNICODE_CFLAGS)
libJavaScriptCore_la_CFLAGS = \
+ -fstrict-aliasing \
+ -O3 \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS) \
- $(UNICODE_CFLAGS) \
- -fno-strict-aliasing
+ $(UNICODE_CFLAGS)
libJavaScriptCore_la_CPPFLAGS = \
$(global_cppflags) \
@@ -139,16 +150,22 @@ webcore_headers :=
webcore_libadd :=
webcore_built_sources :=
webcore_built_nosources :=
+webcoregtk_cppflags :=
+webcoregtk_sources :=
+webcoregtk_headers :=
nodist_libWebCore_la_SOURCES = \
$(webcore_built_sources)
libWebCore_la_SOURCES = \
$(webcore_headers) \
- $(webcore_sources)
+ $(webcore_sources) \
+ $(webcoregtk_headers) \
+ $(webcoregtk_sources)
libWebCore_la_CXXFLAGS = \
-fno-strict-aliasing \
+ -O2 \
$(global_cxxflags) \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS) \
@@ -156,6 +173,7 @@ libWebCore_la_CXXFLAGS = \
$(WEBKITDEPS_CFLAGS) \
$(LIBCURL_CFLAGS) \
$(LIBSOUP_CFLAGS) \
+ $(FREETYPE_CFLAGS) \
$(SQLITE3_CFLAGS) \
$(GSTREAMER_CFLAGS) \
$(LIBXSLT_CFLAGS) \
@@ -164,12 +182,14 @@ libWebCore_la_CXXFLAGS = \
libWebCore_la_CFLAGS = \
-fno-strict-aliasing \
+ -O2 \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS) \
$(UNICODE_CFLAGS) \
$(WEBKITDEPS_CFLAGS) \
$(LIBCURL_CFLAGS) \
$(LIBSOUP_CFLAGS) \
+ $(FREETYPE_CFLAGS) \
$(SQLITE3_CFLAGS) \
$(GSTREAMER_CFLAGS) \
$(LIBXSLT_CFLAGS) \
@@ -180,7 +200,7 @@ libWebCore_la_CPPFLAGS = \
$(global_cppflags) \
$(webcore_cppflags) \
$(javascriptcore_cppflags) \
- $(webkitgtk_cppflags) \
+ $(webcoregtk_cppflags) \
$(HILDON_CPPFLAGS)
libWebCore_la_LIBADD = \
@@ -190,6 +210,7 @@ libWebCore_la_LIBADD = \
$(WEBKITDEPS_LIBS) \
$(LIBCURL_LIBS) \
$(LIBSOUP_LIBS) \
+ $(FREETYPE_LIBS) \
$(UNICODE_LIBS) \
$(SQLITE3_LIBS) \
$(GSTREAMER_LIBS) \
@@ -211,7 +232,9 @@ nodist_libwebkit_1_0_la_SOURCES = \
$(webkitgtk_built_sources)
libwebkit_1_0_ladir = $(prefix)/include/webkit-1.0/webkit
-libwebkit_1_0_la_HEADERS = $(webkitgtk_h_api)
+libwebkit_1_0_la_HEADERS = \
+ $(webkitgtk_h_api) \
+ WebKit/gtk/webkit/webkitenumtypes.h
libwebkit_1_0_la_SOURCES = \
$(webkitgtk_headers) \
@@ -224,11 +247,13 @@ libwebkit_1_0_la_CFLAGS = \
$(libWebCore_la_CFLAGS)
libwebkit_1_0_la_CPPFLAGS = \
- $(libWebCore_la_CPPFLAGS)
+ $(libWebCore_la_CPPFLAGS) \
+ $(webkitgtk_cppflags)
libwebkit_1_0_la_LDFLAGS = \
$(COVERAGE_LDFLAGS) \
- -version-info @LIBWEBKITGTK_VERSION@
+ -version-info @LIBWEBKITGTK_VERSION@ \
+ $(no_undefined)
libwebkit_1_0_la_LIBADD = \
libWebCore.la
@@ -236,6 +261,7 @@ libwebkit_1_0_la_LIBADD = \
#
# Extra checks and flags
global_cppflags += \
+ -DBUILDING_CAIRO__=1 \
-DBUILDING_GTK__=1 \
-DWTF_CHANGES
@@ -252,7 +278,7 @@ endif
if !ENABLE_DEBUG
global_cppflags += -DNDEBUG
else
-webkitgtk_cppflags += \
+webcoregtk_cppflags += \
-DG_DISABLE_DEPRECATED \
-DGDK_PIXBUF_DISABLE_DEPRECATED \
-DGDK_DISABLE_DEPRECATED \
@@ -282,15 +308,11 @@ if ENABLE_VIDEO
webcore_libadd += -lgstinterfaces-0.10 -lgstvideo-0.10
endif
-webkitgtk_cppflags += \
--I$(top_builddir)/WebKit/gtk/webkit \
--DBUILDING_CAIRO__=1 \
--DBUILD_WEBKIT
-
webkitgtk_h_api += \
WebKit/gtk/webkit/webkit.h \
WebKit/gtk/webkit/webkitdefines.h \
WebKit/gtk/webkit/webkitnetworkrequest.h \
+ WebKit/gtk/webkit/webkitversion.h \
WebKit/gtk/webkit/webkitwebbackforwardlist.h \
WebKit/gtk/webkit/webkitwebframe.h \
WebKit/gtk/webkit/webkitwebhistoryitem.h \
@@ -299,7 +321,9 @@ webkitgtk_h_api += \
webkitgtk_built_sources += \
DerivedSources/webkit-marshal.h \
- DerivedSources/webkit-marshal.cpp
+ DerivedSources/webkit-marshal.cpp \
+ DerivedSources/webkitenumtypes.cpp \
+ WebKit/gtk/webkit/webkitenumtypes.h
webkitgtk_headers += \
WebKit/gtk/webkit/webkitprivate.h \
@@ -314,6 +338,7 @@ webkitgtk_headers += \
webkitgtk_sources += \
WebKit/gtk/webkit/webkitnetworkrequest.cpp \
WebKit/gtk/webkit/webkitprivate.cpp \
+ WebKit/gtk/webkit/webkitversion.cpp \
WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \
WebKit/gtk/webkit/webkitwebframe.cpp \
WebKit/gtk/webkit/webkitwebhistoryitem.cpp \
@@ -327,6 +352,13 @@ webkitgtk_sources += \
WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \
WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp
+webkitgtk_cppflags += \
+ -DBUILDING_WEBKIT \
+ -I$(srcdir)/WebKit/gtk \
+ -I$(srcdir)/WebKit/gtk/WebCoreSupport \
+ -I$(srcdir)/WebKit/gtk/webkit \
+ -I$(top_builddir)/WebKit/gtk/webkit
+
webkitgtk_cleanfiles += \
$(top_builddir)/Programs/GtkLauncher \
$(top_builddir)/WebKit/gtk/webkit-1.0.pc
@@ -334,12 +366,14 @@ webkitgtk_cleanfiles += \
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = WebKit/gtk/webkit-1.0.pc
-WEBKIT_MARSHAL = $(GENSOURCES)/webkit-marshal
-WEBKIT_MARSHAL_LIST = $(srcdir)/WebKit/gtk/webkit/webkit-marshal.list
-
stamp_files := \
stamp-webkit-marshal.cpp \
- stamp-webkit-marshal.h
+ stamp-webkit-marshal.h \
+ stamp-webkitenumtypes.cpp \
+ stamp-webkitenumtypes.h
+
+WEBKIT_MARSHAL = $(GENSOURCES)/webkit-marshal
+WEBKIT_MARSHAL_LIST = $(srcdir)/WebKit/gtk/webkit/webkit-marshal.list
DerivedSources/webkit-marshal.cpp: stamp-webkit-marshal.cpp
@true
@@ -356,6 +390,53 @@ stamp-webkit-marshal.h: $(WEBKIT_MARSHAL_LIST)
$(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --header > $(WEBKIT_MARSHAL).h && \
echo timestamp > $(@F)
+WebKit/gtk/webkit/webkitenumtypes.h: stamp-webkitenumtypes.h
+ @true
+stamp-webkitenumtypes.h: $(webkitgtk_h_api) Makefile
+ (cd $(srcdir) \
+ && glib-mkenums \
+ --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \
+ --fhead "#define WEBKIT_ENUM_TYPES_H\n\n" \
+ --fhead "#include <glib-object.h>\n\n" \
+ --fhead "#include <webkit/webkitdefines.h>\n\n" \
+ --fhead "G_BEGIN_DECLS\n\n" \
+ --ftail "G_END_DECLS\n\n" \
+ --ftail "#endif\n" \
+ --fprod "#include <@filename@>\n\n" \
+ --eprod "#define WEBKIT_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n\n" \
+ --eprod "WEBKIT_API GType\n@enum_name@_get_type(void);\n\n" \
+ $(webkitgtk_h_api) | \
+ sed 's,WebKit/gtk/,,' | \
+ sed 's,web_kit,webkit,' | \
+ sed 's,WEBKIT_TYPE_KIT,WEBKIT_TYPE,' \
+ ) > xgen-gth \
+ && (cmp -s xgen-gth WebKit/gtk/webkit/webkitenumtypes.h || cp xgen-gth WebKit/gtk/webkit/webkitenumtypes.h) \
+ && rm -f xgen-gth \
+ && echo timestamp > $(@F)
+
+DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) Makefile
+ (cd $(srcdir) \
+ && glib-mkenums \
+ --fhead "#include <config.h>\n" \
+ --fhead "#include <glib-object.h>\n" \
+ --fhead "#include \"$(top_builddir)/WebKit/gtk/webkit/webkitenumtypes.h\"\n\n" \
+ --fhead "extern \"C\" {\n\n" \
+ --fprod "\n/* enumerations from \"@filename@\" */" \
+ --vhead "static const G@Type@Value _@enum_name@_values[] = {" \
+ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+ --vtail " { 0, NULL, NULL }\n};\n\n" \
+ --vtail "GType @enum_name@_get_type(void)\n{\n" \
+ --vtail " static GType type = 0;\n\n" \
+ --vtail " if (!type)\n" \
+ --vtail " type = g_@type@_register_static(\"@EnumName@\", _@enum_name@_values);\n\n" \
+ --vtail " return type;\n}\n\n" \
+ --ftail "}\n" \
+ $(webkitgtk_h_api) | \
+ sed 's,web_kit,webkit,' \
+ ) > xgen-gtc \
+ && cp xgen-gtc $@ \
+ && rm -f xgen-gtc
+
# END WEBKIT GTK+
# Files that will be cleaned
diff --git a/packages/webkit/webkit-gtk/Makefile b/packages/webkit/webkit-gtk/Makefile
index fa7ea02426..217a035483 100644
--- a/packages/webkit/webkit-gtk/Makefile
+++ b/packages/webkit/webkit-gtk/Makefile
@@ -16,6 +16,10 @@ universal u:
@for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+x86_64:
+ @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+ if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+
64:
@for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
diff --git a/packages/webkit/webkit-gtk/configure.ac b/packages/webkit/webkit-gtk/configure.ac
index 24488ef6c4..d0aa7c84d1 100644
--- a/packages/webkit/webkit-gtk/configure.ac
+++ b/packages/webkit/webkit-gtk/configure.ac
@@ -1,11 +1,24 @@
-AC_INIT([WebKit],[0.1],[http://bugs.webkit.org/])
-
AC_PREREQ(2.59)
+m4_define([webkit_major_version], [1])
+m4_define([webkit_minor_version], [0])
+m4_define([webkit_micro_version], [2])
+
+AC_INIT([WebKit],[webkit_major_version.webkit_minor_version.webkit_micro_version],[http://bugs.webkit.org/])
+
AC_CONFIG_HEADERS([aconfig.h])
+
+WEBKIT_MAJOR_VERSION=webkit_major_version
+WEBKIT_MINOR_VERSION=webkit_minor_version
+WEBKIT_MICRO_VERSION=webkit_micro_version
+AC_SUBST(WEBKIT_MAJOR_VERSION)
+AC_SUBST(WEBKIT_MINOR_VERSION)
+AC_SUBST(WEBKIT_MICRO_VERSION)
+
AC_CONFIG_SRCDIR([WebCore/config.h])
-# see http://www.gnu.org/software/libtool/manual.html#Versioning
+dnl # Libtool library version, not to confuse with API version
+dnl # see http://www.gnu.org/software/libtool/manual.html#Versioning
LIBWEBKITGTK_VERSION=1:0:0
AC_SUBST([LIBWEBKITGTK_VERSION])
@@ -38,23 +51,24 @@ case "$host" in
;;
esac
-# If CXXFLAGS and CFLAGS are unset, default to -O2
+# If CXXFLAGS and CFLAGS are unset, default to empty.
# This is to tell automake not to include '-g' if CXXFLAGS is not set
# For more info - http://www.gnu.org/software/automake/manual/autoconf.html#C_002b_002b-Compiler
if test -z "$CXXFLAGS"; then
- CXXFLAGS="-O2"
+ CXXFLAGS=""
fi
if test -z "$CFLAGS"; then
- CFLAGS="-O2"
+ CFLAGS=""
fi
-# programs
-AC_DISABLE_STATIC
-AM_PROG_LIBTOOL
-AC_PROG_INSTALL
AM_PROG_CC_STDC
-AC_PROG_CXX
AM_PROG_CC_C_O
+AC_PROG_CXX
+AC_PROG_INSTALL
+AC_DISABLE_STATIC
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
+DOLT
# check for -fvisibility=hidden compiler support (GCC >= 4)
saved_CFLAGS="$CFLAGS"
@@ -147,10 +161,12 @@ esac
AC_MSG_RESULT([$unicode_backend])
if test "$unicode_backend" = "icu"; then
- # check for icu-config
if test "$os_darwin" = "yes"; then
UNICODE_CFLAGS="-I\$(srcdir)/JavaScriptCore/icu -I\$(srcdir)/WebCore/icu"
UNICODE_LIBS="-licucore"
+ elif test "$os_win32" = "yes"; then
+ UNICODE_CFLAGS=""
+ UNICODE_LIBS="-licuin -licuuc"
else
AC_PATH_PROG(icu_config, icu-config, no)
if test "$icu_config" = "no"; then
@@ -243,9 +259,6 @@ PKG_CHECK_MODULES([WEBKITDEPS],
[gtk+-2.0 >= $GTK_REQUIRED_VERSION
pango >= $PANGO_REQUIRED_VERSION
cairo >= $CAIRO_REQUIRED_VERSION
- cairo-ft,
- fontconfig >= $FONTCONFIG_REQUIRED_VERSION
- freetype2 >= $FREETYPE2_REQUIRED_VERSION
libxml-2.0 >= $LIBXML_REQUIRED_VERSION])
AC_SUBST([WEBKITDEPS_CFLAGS])
AC_SUBST([WEBKITDEPS_LIBS])
@@ -266,14 +279,6 @@ AC_ARG_ENABLE(dashboard_support,
[],[enable_dashboard_support="yes"])
AC_MSG_RESULT([$enable_dashboard_support])
-# check whether to build with cross-document messaging support
-AC_MSG_CHECKING([whether to enable HTML5 cross-document messaging support])
-AC_ARG_ENABLE(cross_document_messaging,
- AC_HELP_STRING([--enable-cross-document-messaging],
- [enable HTML5 cross-document messaging support [default=yes]]),
- [],[enable_cross_document_messaging="yes"])
-AC_MSG_RESULT([$enable_cross_document_messaging])
-
# check whether to enable HTML5 Offline Web Applications support
AC_MSG_CHECKING([whether to enable HTML5 offline web applications support])
AC_ARG_ENABLE(offline_web_applications,
@@ -286,8 +291,8 @@ AC_MSG_RESULT([$enable_offline_web_applications])
AC_MSG_CHECKING([whether to enable HTML5 client-side session and persistent storage support])
AC_ARG_ENABLE(dom_storage,
AC_HELP_STRING([--enable-dom-storage],
- [enable HTML5 client-side session and persistent storage support [default=no]]),
- [],[enable_dom_storage="no"])
+ [enable HTML5 client-side session and persistent storage support [default=yes]]),
+ [],[enable_dom_storage="yes"])
AC_MSG_RESULT([$enable_dom_storage])
# check whether to build with database support
@@ -302,8 +307,8 @@ AC_MSG_RESULT([$enable_database])
AC_MSG_CHECKING([whether to enable icon database support])
AC_ARG_ENABLE(icon_database,
AC_HELP_STRING([--enable-icon-database],
- [enable icon database [default=no]]),
- [],[enable_icon_database="no"])
+ [enable icon database [default=yes]]),
+ [],[enable_icon_database="yes"])
AC_MSG_RESULT([$enable_icon_database])
# check whether to enable HTML5 audio/video support
@@ -330,39 +335,30 @@ AC_ARG_ENABLE(xslt,
[],[enable_xslt="yes"])
AC_MSG_RESULT([$enable_xslt])
-# check whether to enable SVG experimental features
-# Enable all SVG if it is
-AC_MSG_CHECKING([whether to enable SVG experimental features])
-AC_ARG_ENABLE(svg_experimental,
- AC_HELP_STRING([--enable-svg-experimental],
- [enable support for SVG experimental features [default=no]]),
- [],[enable_svg_experimental="no"])
-AC_MSG_RESULT([$enable_svg_experimental])
-
-if test "$enable_svg_experimental" = "yes"; then
- enable_svg=yes
- enable_svg_animation=yes
-# enable_svg_filters=yes
- enable_svg_fonts=yes
- enable_svg_foreign_object=yes
- enable_svg_as_image=yes
- enable_svg_use_element=yes
-fi
-
# check whether to enable SVG support
AC_MSG_CHECKING([whether to enable SVG support])
AC_ARG_ENABLE(svg,
AC_HELP_STRING([--enable-svg],
- [enable support for SVG [default=no]]),
- [],[enable_svg="no"])
+ [enable support for SVG [default=yes]]),
+ [],[enable_svg="yes"])
AC_MSG_RESULT([$enable_svg])
+# turn off svg features if --disable-svg is requested
+if test "$enable_svg" = "no"; then
+ enable_svg_animation=no
+ enable_svg_filters=no
+ enable_svg_fonts=no
+ enable_svg_foreign_object=no
+ enable_svg_as_image=no
+ enable_svg_use_element=no
+fi
+
# check whether to enable support for SVG animation
AC_MSG_CHECKING([whether to enable support for SVG animation])
AC_ARG_ENABLE(svg_animation,
AC_HELP_STRING([--enable-svg-animation],
- [enable support for SVG animation (experimental) [default=no]]),
- [],[enable_svg_animation="no"])
+ [enable support for SVG animation (experimental) [default=yes]]),
+ [],[enable_svg_animation="yes"])
AC_MSG_RESULT([$enable_svg_animation])
# check whether to enable support for SVG filters
@@ -377,34 +373,48 @@ AC_MSG_RESULT([$enable_svg_filters])
AC_MSG_CHECKING([whether to enable support for SVG fonts])
AC_ARG_ENABLE(svg_fonts,
AC_HELP_STRING([--enable-svg-fonts],
- [enable support for SVG fonts (experimental) [default=no]]),
- [],[enable_svg_fonts="no"])
+ [enable support for SVG fonts (experimental) [default=yes]]),
+ [],[enable_svg_fonts="yes"])
AC_MSG_RESULT([$enable_svg_fonts])
# check whether to enable foreign objects support for SVG
AC_MSG_CHECKING([whether to enable support for SVG foreign objects])
AC_ARG_ENABLE(svg_foreign_object,
AC_HELP_STRING([--enable-svg-foreign-object],
- [enable support for SVG foreign objects (experimental) [default=no]]),
- [],[enable_svg_foreign_object="no"])
+ [enable support for SVG foreign objects (experimental) [default=yes]]),
+ [],[enable_svg_foreign_object="yes"])
AC_MSG_RESULT([$enable_svg_foreign_object])
# check whether to enable SVG As Image support
AC_MSG_CHECKING([whether to enable SVG as Image support])
AC_ARG_ENABLE(svg_as_image,
AC_HELP_STRING([--enable-svg-as-image],
- [enable SVG as Image support (experimental) [default=no]]),
- [],[enable_svg_as_image="no"])
+ [enable SVG as Image support (experimental) [default=yes]]),
+ [],[enable_svg_as_image="yes"])
AC_MSG_RESULT([$enable_svg_as_image])
# check whether to enable SVG USE element support
AC_MSG_CHECKING([whether to enable support for SVG use element])
AC_ARG_ENABLE(svg_use_element,
AC_HELP_STRING([--enable-svg-use-element],
- [enable SVG use element support (experimental) [default=no]]),
- [],[enable_svg_use_element="no"])
+ [enable SVG use element support (experimental) [default=yes]]),
+ [],[enable_svg_use_element="yes"])
AC_MSG_RESULT([$enable_svg_use_element])
+# check for SVG features, enabling SVG if necessary
+if test "$enable_svg_animation" = "yes" || \
+ test "$enable_svg_filters" = "yes" || \
+ test "$enable_svg_fonts" = "yes" || \
+ test "$enable_svg_foreign_object" = "yes" || \
+ test "$enable_svg_as_image" = "yes" || \
+ test "$enable_svg_use_element" = "yes"; then
+ svg_flags=yes
+ if test "$enable_svg" = "no"; then
+ AC_MSG_WARN([SVG feature(s) requested but SVG is disabled.. Enabling SVG support])
+ enable_svg=yes
+ fi
+fi
+
# check whether to enable code coverage
AC_MSG_CHECKING([whether to enable code coverage support])
AC_ARG_ENABLE(coverage,
@@ -444,6 +454,9 @@ fi
if test "$with_http_backend" = "curl"; then
PKG_CHECK_MODULES([LIBCURL],
[libcurl >= $LIBCURL_REQUIRED_VERSION])
+ if test "$os_win32" = "yes"; then
+ LIBCURL_LIBS="$LIBCURL_LIBS -lWs2_32"
+ fi
AC_SUBST([LIBCURL_CFLAGS])
AC_SUBST([LIBCURL_LIBS])
fi
@@ -455,8 +468,21 @@ if test "$with_http_backend" = "soup"; then
AC_SUBST([LIBSOUP_LIBS])
fi
+# check if FreeType/FontConfig are available
+if test "$with_font_backend" = "freetype"; then
+ PKG_CHECK_MODULES([FREETYPE],
+ [cairo-ft
+ fontconfig >= $FONTCONFIG_REQUIRED_VERSION
+ freetype2 >= $FREETYPE2_REQUIRED_VERSION])
+ AC_SUBST([FREETYPE_CFLAGS])
+ AC_SUBST([FREETYPE_LIBS])
+fi
+
# check if sqlite 3 is available
-if test "$enable_icon_database" = "yes" || test "$enable_database" = "yes"; then
+if test "$enable_icon_database" = "yes" || \
+ test "$enable_database" = "yes" || \
+ test "$enable_offline_web_applications" = "yes" || \
+ test "$enable_dom_storage" = "yes"; then
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= $SQLITE_REQUIRED_VERSION])
AC_SUBST([SQLITE3_CFLAGS])
AC_SUBST([SQLITE3_LIBS])
@@ -488,18 +514,9 @@ if test "$enable_coverage" = "yes"; then
AC_SUBST([COVERAGE_LDFLAGS])
fi
-# check for SVG features, enabling SVG if necessary
-if test "$enable_svg_animation" = "yes" || \
- test "$enable_svg_filters" = "yes" || \
- test "$enable_svg_fonts" = "yes" || \
- test "$enable_svg_foreign_object" = "yes" || \
- test "$enable_svg_as_image" = "yes" || \
- test "$enable_svg_use_element" = "yes"; then
- svg_flags=yes
- if test "$enable_svg" = "no"; then
- AC_MSG_WARN([SVG feature(s) requested but SVG is disabled.. Enabling SVG support])
- enable_svg=yes
- fi
+# check for HTML features
+if test "$enable_video" = "yes"; then
+ html_flags=yes
fi
# OS conditionals
@@ -525,7 +542,6 @@ AM_CONDITIONAL([USE_PANGO], [test "$with_font_backend" = "pango"])
# WebKit feature conditionals
AM_CONDITIONAL([ENABLE_DEBUG],[test "$enable_debug" = "yes"])
AM_CONDITIONAL([ENABLE_DASHBOARD_SUPPORT],[test "$enable_dashboard_support" = "yes"])
-AM_CONDITIONAL([ENABLE_CROSS_DOCUMENT_MESSAGING],[test "$enable_cross_document_messaging" = "yes"])
AM_CONDITIONAL([ENABLE_OFFLINE_WEB_APPLICATIONS],[test "$enable_offline_web_applications" = "yes"])
AM_CONDITIONAL([ENABLE_DOM_STORAGE],[test "$enable_dom_storage" = "yes"])
AM_CONDITIONAL([ENABLE_DATABASE],[test "$enable_database" = "yes"])
@@ -543,10 +559,12 @@ AM_CONDITIONAL([ENABLE_SVG_USE],[test "$enable_svg_use_element" = "yes"])
AM_CONDITIONAL([ENABLE_COVERAGE],[test "$enable_coverage" = "yes"])
AM_CONDITIONAL([ENABLE_FAST_MALLOC],[test "$enable_fast_malloc" = "yes"])
AM_CONDITIONAL([SVG_FLAGS],[test "$svg_flags" = "yes"])
+AM_CONDITIONAL([HTML_FLAGS],[test "$html_flags" = "yes"])
AC_CONFIG_FILES([
GNUmakefile
WebKit/gtk/webkit-1.0.pc:WebKit/gtk/webkit.pc.in
+WebKit/gtk/webkit/webkitversion.h
]
)
@@ -564,7 +582,6 @@ Build configuration:
Optimized memory allocator : $enable_fast_malloc
Features:
Dashboard support : $enable_dashboard_support
- HTML5 cross-document messaging : $enable_cross_document_messaging
HTML5 offline web applications support : $enable_offline_web_applications
HTML5 client-side session and persistent storage support : $enable_dom_storage
HTML5 client-side database storage support : $enable_database
diff --git a/packages/webkit/files/update-webkit.sh b/packages/webkit/webkit-gtk/update-webkit.sh
index e4cc3ebefa..e4cc3ebefa 100644
--- a/packages/webkit/files/update-webkit.sh
+++ b/packages/webkit/webkit-gtk/update-webkit.sh
diff --git a/packages/webkit/webkit-gtk_svn.bb b/packages/webkit/webkit-gtk_svn.bb
index 11e08ac6ac..06f869ef48 100644
--- a/packages/webkit/webkit-gtk_svn.bb
+++ b/packages/webkit/webkit-gtk_svn.bb
@@ -24,7 +24,7 @@ SRC_URI = "\
S = "${WORKDIR}/"
-inherit autotools pkgconfig
+inherit autotools pkgconfig lib_package
EXTRA_OECONF = "\
--enable-debug=no \