diff options
482 files changed, 30101 insertions, 2178 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index c11f463a98..9e5f8f4387 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -152,17 +152,17 @@ Recipes: altboot, webcam-server Person: Michael 'Mickey' Lauer Mail: mlauer@vanille-media.de -Distros: Ångström, generic -Machines: poodle, c7x0, spitz, nokia770, x86, qemuarm, qemux86 -Interests: Core OE infrastructure, Python, GUI-Toolkits -Recipes: python*, qt*, qte*, sip* +Distros: OpenMoko, Ångström, Generic +Machines: fic-gta01, fic-gta02, nokia810, x86, qemuarm, qemux86 +Interests: Core OE infrastructure, everything Python, EFL, E17, Qt4 +Recipes: *python*, efl/*, e17* Person: Paul Sokolovsky Mail: pmiscml@gmail.com Machines: h3900, h4000, hx4700 Interests: PocketPC and Palm devices support, Win32 support Interests: Cross-machine unification -Recipes: linux-handhelds-2.6, opie-* +Recipes: linux-handhelds-2.6, opie-*, initramfs-*, gnome-mplayer Person: Philip Balister Mail: Crofton@balister.org diff --git a/classes/cmake.bbclass b/classes/cmake.bbclass new file mode 100644 index 0000000000..cec74349dc --- /dev/null +++ b/classes/cmake.bbclass @@ -0,0 +1,7 @@ +inherit autotools + +cmake_do_configure() { + cmake . -DCMAKE_INSTALL_PREFIX:PATH=${prefix} +} + +EXPORT_FUNCTIONS do_configure diff --git a/classes/concatenated-image.bbclass b/classes/concatenated-image.bbclass new file mode 100644 index 0000000000..5cf8d33c05 --- /dev/null +++ b/classes/concatenated-image.bbclass @@ -0,0 +1,38 @@ + +# +# define the FLASH_KERNEL_SIZE and FLASH_ROOT_SIZE in your machine.conf, +# and this class builds a simple, padded concatenated image of +# <kernel><padding><rootfs> and performs error checking that either +# kernel or rootfs isn't too large to fit. +# +concat_pack_image() { + # find latest kernel - is there a more general way to do this? + KERNEL=`ls -tr ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}* | tail -n 1` + if [ -z "$KERNEL" ]; then + oefatal "No kernel found in ${DEPLOY_DIR_IMAGE}. Was expecting a ${KERNEL_IMAGETYPE}\* file." + exit 1 + fi + ROOTFS=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 + OUTPUT=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flash.img + PADFILE=${DEPLOY_DIR_IMAGE}/padfile.zzz + KERNEL_SIZE_MAX_DEC=`echo ${FLASH_KERNEL_SIZE} | awk --non-decimal-data '{printf "%d\n", $1}' ` + ROOT_SIZE_MAX_DEC=`echo ${FLASH_ROOT_SIZE} | awk --non-decimal-data '{printf "%d\n", $1}' ` + KERNEL_SIZE=`ls -l $KERNEL | awk '{print $5}'` + if [ $KERNEL_SIZE -gt $KERNEL_SIZE_MAX_DEC ]; then + oefatal "Kernel too large at $KERNEL_SIZE bytes. Max is $KERNEL_SIZE_MAX_DEC." + exit 1 + fi + ROOT_SIZE=`ls -l $ROOTFS | awk '{print $5}'` + if [ $ROOT_SIZE -gt $ROOT_SIZE_MAX_DEC ]; then + oefatal "Rootfs is too large at $ROOT_SIZE bytes. Max is $ROOT_SIZE_MAX_DEC." + exit 1 + fi + PAD_SIZE=`echo "$KERNEL_SIZE_MAX_DEC - $KERNEL_SIZE" | bc ` + dd if=/dev/zero of=$PADFILE bs=$PAD_SIZE count=1 2>>/dev/null + cat $KERNEL $PADFILE $ROOTFS > $OUTPUT + rm -f $PADFILE + ls -l $OUTPUT +} + +IMAGE_POSTPROCESS_COMMAND += "concat_pack_image; " + diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 840ebf6eff..97cf036dd9 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -464,7 +464,6 @@ python do_qa_configure() { os.path.join(root,"config.log") if "config.log" in files: if os.system(statement) == 0: - bb.fatal("This autoconf log indicates errors, it looked at \ - host includes. Rerun configure task after fixing this. \ - Path was '%s'" % root) + bb.fatal("""This autoconf log indicates errors, it looked at host includes. +Rerun configure task after fixing this. The path was '%s'""" % root) } diff --git a/classes/java-library.bbclass b/classes/java-library.bbclass new file mode 100644 index 0000000000..8aecfef1b9 --- /dev/null +++ b/classes/java-library.bbclass @@ -0,0 +1,37 @@ +# Inherit this bbclass for each java recipe that builds a Java library (jar file[s]). +# +# It automatically adds important build dependencies, defines JPN (Java Package Name) +# a package named ${JPN} whose contents are those of ${datadir}/java (the jar location). +# +# The JPN is basically lib${PN}-java but takes care of the fact that ${PN} already +# starts with "lib" and/or ends with "-java". In case the "lib" prefix is part of +# your package's normal name (e.g. liberator) the guessing is wrong and you have +# to set JPN manually! + +inherit java + +def java_package_name(d): + import bb; + + pre="" + post="" + + pn = bb.data.getVar('PN', d, 1) + if not pn.startswith("lib"): + pre='lib' + + if not pn.endswith("-java"): + post='-java' + + return pre + pn + post + +JPN ?= "${@java_package_name(d)}" + +DEPENDS_prepend = "virtual/javac-native fastjar-native " + +PACKAGES = "${JPN}" + +PACKAGE_ARCH_${JPN} = "all" + +FILES_${JPN} = "${datadir_java}" + diff --git a/classes/java.bbclass b/classes/java.bbclass new file mode 100644 index 0000000000..7fa6dc1786 --- /dev/null +++ b/classes/java.bbclass @@ -0,0 +1,62 @@ +# Defines the commonly used target directories and provides a convenience +# function to install jar files. + +# Jar location on target +datadir_java ?= ${datadir}/java + +# JNI library location on target +libdir_jni ?= ${libdir}/jni + +STAGING_DATADIR_JAVA ?= ${STAGING_DATADIR}/java +STAGING_LIBDIR_JNI ?= ${STAGING_LIBDIR}/jni + +oe_jarinstall() { + # Purpose: Install a jar file and create all the given symlinks to it. + # Example: + # oe_jarinstall foo-1.3.jar foo.jar + # Installs foo-1.3.jar and creates symlink foo.jar. + # + # oe_jarinstall -s foo-1.3.jar foo.jar + # Installs foo-1.3.jar to staging and creates symlink foo.jar. + # + # oe_jarinstall -r foo-1.3.jar foo_1_3.jar foo.jar + # Installs foo_1_3.jar as foo-1.3.jar and creates a symlink to this. + # + dir=${D}${datadir_java} + destname="" + while [ "$#" -gt 0 ]; do + case "$1" in + -s) + dir=${STAGING_DATADIR_JAVA} + ;; + -r) + shift + destname=$1 + ;; + -*) + oefatal "oe_jarinstall: unknown option: $1" + ;; + *) + break; + ;; + esac + shift + done + + jarname=$1 + destname=${destname:-`basename $jarname`} + shift + + install -d $dir + install -m 0644 $jarname $dir/$destname + + # Creates symlinks out of the remaining arguments. + while [ "$#" -gt 0 ]; do + if [ -e $dir/$1 ]; then + oewarn "file was in the way. removing:" $dir/$1 + rm $dir/$1 + fi + ln -s $destname $dir/$1 + shift + done +} diff --git a/classes/module-base.bbclass b/classes/module-base.bbclass index da5bd01dae..c98baceeab 100644 --- a/classes/module-base.bbclass +++ b/classes/module-base.bbclass @@ -10,6 +10,7 @@ export KERNEL_SOURCE = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-source') KERNEL_OBJECT_SUFFIX = "${@[".o", ".ko"][base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion') > "2.6.0"]}" KERNEL_CCSUFFIX = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-ccsuffix')}" KERNEL_LDSUFFIX = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-ldsuffix')}" +KERNEL_ARSUFFIX = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-arsuffix')}" # Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture # specific options necessary for building the kernel and modules. @@ -17,9 +18,12 @@ TARGET_CC_KERNEL_ARCH ?= "" HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" TARGET_LD_KERNEL_ARCH ?= "" HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" +TARGET_AR_KERNEL_ARCH ?= "" +HOST_AR_KERNEL_ARCH ?= "${TARGET_AR_KERNEL_ARCH}" KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}" KERNEL_LD = "${LD}${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}" +KERNEL_AR = "${AR}${KERNEL_ARSUFFIX} ${HOST_AR_KERNEL_ARCH}" # kernel modules are generally machine specific PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/classes/module.bbclass b/classes/module.bbclass index 7083076b5f..1d0f1dd4f8 100644 --- a/classes/module.bbclass +++ b/classes/module.bbclass @@ -9,7 +9,8 @@ module_do_compile() { KERNEL_SRC=${STAGING_KERNEL_DIR} \ KERNEL_VERSION=${KERNEL_VERSION} \ CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ - ${MAKE_TARGETS} + AR="${KERNEL_AR}" \ + ${MAKE_TARGETS} } module_do_install() { diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass index bbc06d9697..9994febf0d 100644 --- a/classes/sanity.bbclass +++ b/classes/sanity.bbclass @@ -83,9 +83,6 @@ def check_sanity(e): if not check_app_exists('${BUILD_PREFIX}g++', e.data): missing = missing + "C++ Compiler (${BUILD_PREFIX}g++)," - if not check_app_exists('${BUILD_PREFIX}gfortran', e.data): - missing = missing + "GNU Fortran Compiler" - required_utilities = "patch help2man diffstat texi2html makeinfo cvs svn bzip2 tar gzip gawk md5sum" for util in required_utilities.split(): diff --git a/classes/sdl.bbclass b/classes/sdl.bbclass index d478d97f18..23cbf10919 100644 --- a/classes/sdl.bbclass +++ b/classes/sdl.bbclass @@ -4,41 +4,41 @@ DEPENDS += "virtual/libsdl libsdl-mixer libsdl-image" -APPDESKTOP ?= "${PN}.desktop" +APPDESKTOP ?= "${WORKDIR}/${PN}.desktop" APPNAME ?= "${PN}" -APPIMAGE ?= "${PN}.png" +APPIMAGE ?= "${WORKDIR}/${PN}.png" sdl_do_sdl_install() { - install -d ${D}${palmtopdir}/bin - install -d ${D}${palmtopdir}/pics - install -d ${D}${palmtopdir}/apps/Games - ln -sf ${bindir}/${APPNAME} ${D}${palmtopdir}/bin/${APPNAME} - install -m 0644 ${APPIMAGE} ${D}${palmtopdir}/pics/${PN}.png + install -d ${D}${datadir}/applications + install -d ${D}${datadir}/pixmaps + + install -m 0644 ${APPIMAGE} ${D}${datadir}/pixmaps/${PN}.png if [ -e "${APPDESKTOP}" ] then - echo ${APPDESKTOP} present, installing to palmtopdir... - install -m 0644 ${APPDESKTOP} ${D}${palmtopdir}/apps/Games/${PN}.desktop + echo ${APPDESKTOP} present, using it... + install -m 0644 ${APPDESKTOP} ${D}${datadir}/applications/ else echo ${APPDESKTOP} not present, creating one on-the-fly... - cat >${D}${palmtopdir}/apps/Games/${PN}.desktop <<EOF + cat >${D}${datadir}/applications/${PN}.desktop <<EOF [Desktop Entry] -Note=Auto Generated... this may be not what you want +Name=${PN} Comment=${DESCRIPTION} +Note=Auto Generated by OE SDL bbclass Exec=${APPNAME} Icon=${PN}.png Type=Application -Name=${PN} +Categories=Games EOF fi } EXPORT_FUNCTIONS do_sdl_install -addtask sdl_install after do_compile before do_populate_staging +addtask sdl_install after do_install before do_package -SECTION = "x11/games" -SECTION_${PN}-opie = "opie/games" +#SECTION = "x11/games" +#SECTION_${PN}-opie = "opie/games" -PACKAGES += "${PN}-opie" -RDEPENDS_${PN}-opie += "${PN}" -FILES_${PN}-opie = "${palmtopdir}" +#PACKAGES += "${PN}-opie" +#RDEPENDS_${PN}-opie += "${PN}" +#FILES_${PN}-opie = "${palmtopdir}" diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf index d833fe922f..ec8a5b9b30 100644 --- a/conf/distro/angstrom-2008.1.conf +++ b/conf/distro/angstrom-2008.1.conf @@ -87,16 +87,44 @@ PREFERRED_PROVIDER_avahi = "avahi" PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" +#powerpc needs additional patches to gcc +PREFERRED_VERSION_gcc_dht-walnut ?= "4.1.1" +PREFERRED_VERSION_gcc-cross_dht-walnut ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-sdk_dht-walnut ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-initial_dht-walnut ?= "4.1.1" + +PREFERRED_VERSION_gcc_xilinx-ml403 ?= "4.1.1" +PREFERRED_VERSION_gcc-cross_xilinx-ml403 ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-sdk_xilinx-ml403 ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-initial_xilinx-ml403 ?= "4.1.1" + +PREFERRED_VERSION_gcc_mpc8323e-rdb ?= "4.1.1" +PREFERRED_VERSION_gcc-cross_mpc8323e-rdb ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-sdk_mpc8323e-rdb ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-initial_mpc8323e-rdb ?= "4.1.1" + PREFERRED_VERSION_gcc ?= "4.2.2" PREFERRED_VERSION_gcc-cross ?= "4.2.2" PREFERRED_VERSION_gcc-cross-sdk ?= "4.2.2" PREFERRED_VERSION_gcc-cross-initial ?= "4.2.2" + #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom require conf/distro/include/preferred-gpe-versions-2.8.inc require conf/distro/include/preferred-e-versions.inc require conf/distro/include/preferred-xorg-versions-X11R7.3.inc +#avr32 only has patches for binutils 2.17 and gcc 4.1.2 in OE +PREFERRED_VERSION_gcc_avr32 = "4.1.2" +PREFERRED_VERSION_gcc-cross_avr32 = "4.1.2" +PREFERRED_VERSION_gcc-cross-sdk_avr32 = "4.1.2" +PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.1.2" +PREFERRED_VERSION_binutils_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17" +#there's is no avr32 patch for 0.9.29 +PREFERRED_VERSION_uclibc_avr32 = "0.9.28" +PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28" # Virtuals: PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" diff --git a/conf/distro/include/angstrom-2007-preferred-versions.inc b/conf/distro/include/angstrom-2007-preferred-versions.inc index 82c31cb64a..156b5b21a3 100644 --- a/conf/distro/include/angstrom-2007-preferred-versions.inc +++ b/conf/distro/include/angstrom-2007-preferred-versions.inc @@ -1305,7 +1305,7 @@ PREFERRED_VERSION_nano ?= "2.0.6" PREFERRED_VERSION_nasm-native ?= "0.98.38" PREFERRED_VERSION_nautilus ?= "2.12.2" PREFERRED_VERSION_nautilus-cd-burner ?= "2.8.5" -PREFERRED_VERSION_navit ?= "0.0.1" +PREFERRED_VERSION_navit ?= "0.0.3" PREFERRED_VERSION_nbd ?= "2.8.7" PREFERRED_VERSION_ncftp ?= "3.2.0" PREFERRED_VERSION_ncmpc ?= "0.11.1" @@ -1538,7 +1538,6 @@ PREFERRED_VERSION_python-pylinda ?= "0.6" PREFERRED_VERSION_python-pylint ?= "0.13.2" PREFERRED_VERSION_python-pymetar ?= "0.11" PREFERRED_VERSION_python-pymp3 ?= "0.3.4" -PREFERRED_VERSION_python-pyqt ?= "4.3" PREFERRED_VERSION_python-pyrad ?= "0.8" PREFERRED_VERSION_python-pyraf ?= "1.4" PREFERRED_VERSION_python-pyreverse ?= "0.5.2" @@ -1560,7 +1559,6 @@ PREFERRED_VERSION_python-scons-native ?= "0.97" PREFERRED_VERSION_python-setuptools ?= "0.6c6" PREFERRED_VERSION_python-sgmlop ?= "1.1" PREFERRED_VERSION_python-simplejson ?= "1.7.1" -PREFERRED_VERSION_python-sip ?= "4.7" PREFERRED_VERSION_python-snmplib ?= "0.1.1" PREFERRED_VERSION_python-soappy ?= "0.11.6" PREFERRED_VERSION_python-spydi ?= "0.9.7" @@ -1721,7 +1719,6 @@ PREFERRED_VERSION_sidplayer ?= "1.5.0" PREFERRED_VERSION_silo ?= "1.4.8" PREFERRED_VERSION_simh ?= "3.7-1" PREFERRED_VERSION_simpad-utilities ?= "1.0" -PREFERRED_VERSION_sip-native ?= "4.7" PREFERRED_VERSION_sip3-native ?= "4.0.1" PREFERRED_VERSION_sipsak ?= "0.9.6" PREFERRED_VERSION_skippy-xd ?= "0.5.0" diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc index 4e01298bf8..aff3ba90d1 100644 --- a/conf/distro/include/angstrom.inc +++ b/conf/distro/include/angstrom.inc @@ -151,6 +151,7 @@ FEED_ARCH_nslu2be = "armv5teb" # armv6 FEED_ARCH_mx31ads = "armv6" +FEED_ARCH_mx31moboard = "armv6" FEED_ARCH_nokia800 = "armv6" FEED_ARCH_omap2420h4 = "armv6" FEED_ARCH_omap2430sdp = "armv6" diff --git a/conf/distro/include/moko-autorev.inc b/conf/distro/include/moko-autorev.inc index 87fea8d622..eb0a403fb3 100644 --- a/conf/distro/include/moko-autorev.inc +++ b/conf/distro/include/moko-autorev.inc @@ -39,6 +39,7 @@ SRCREV_pn-openmoko-theme-standard2 ?= "${AUTOREV}" SRCREV_pn-openmoko-theme-standard2-qvga ?= "${AUTOREV}" SRCREV_pn-openmoko-today2 ?= "${AUTOREV}" SRCREV_pn-openmoko-today2-folders ?= "${AUTOREV}" +SRCREV_pn-openmoko-toolchain-scripts ?= "${AUTOREV}" SRCREV_pn-openmoko-worldclock2 ?= "${AUTOREV}" SRCREV_pn-openocd ?= "${AUTOREV}" diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc index 8f82eb4611..cff6d7316b 100644 --- a/conf/distro/include/sane-srcdates.inc +++ b/conf/distro/include/sane-srcdates.inc @@ -53,7 +53,7 @@ SRCDATE_gtkhtml2 ?= "20060323" # Enlightenment Foundation Libraries # Caution: This is not alphabetically, but (roughly) dependency-sorted. # Please leave it like that. -EFL_SRCDATE = "20071206" +EFL_SRCDATE = "20080117" SRCDATE_edb-native ?= "${EFL_SRCDATE}" SRCDATE_edb ?= "${EFL_SRCDATE}" SRCDATE_eet-native ?= "${EFL_SRCDATE}" @@ -88,6 +88,7 @@ SRCDATE_eflpp ?= "${EFL_SRCDATE}" SRCDATE_python-evas ?= "${EFL_SRCDATE}" SRCDATE_python-ecore ?= "${EFL_SRCDATE}" SRCDATE_python-edje ?= "${EFL_SRCDATE}" +SRCDATE_python-edbus ?= "${EFL_SRCDATE}" SRCDATE_python-emotion ?= "${EFL_SRCDATE}" SRCDATE_python-epsilon ?= "${EFL_SRCDATE}" SRCDATE_python-ewl ?= "${EFL_SRCDATE}" @@ -106,7 +107,8 @@ SRCDATE_entice ?= "${EFL_SRCDATE}" SRCDATE_entrance ?= "${EFL_SRCDATE}" SRCDATE_e-utils ?= "${EFL_SRCDATE}" SRCDATE_e-wm ?= "${EFL_SRCDATE}" -SRCDATE_enna ?= "${EFL_SRCDATE}" +SRCDATE_enna = "${EFL_SRCDATE}" +#SRCDATE_enna ?= "${EFL_SRCDATE}" SRCDATE_exquisite ?= "${EFL_SRCDATE}" # Misc packages, sorted by alphabet diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index af96ae435a..cdcf35d928 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -25,6 +25,7 @@ SRCREV_pn-fbgrab-viewer-native ?= "1943" SRCREV_pn-fstests ?= "204" SRCREV_pn-gconf-dbus ?= "606" SRCREV_pn-gnuradio ?= "6377" +SRCREV_pn-gsm0710muxd ?= "42" SRCREV_pn-gypsy ?= "56" SRCREV_pn-hildon-1 ?= "14429" SRCREV_pn-kismet ?= "2285" @@ -42,8 +43,8 @@ SRCREV_pn-libowl ?= "277" SRCREV_pn-libxosd ?= "627" SRCREV_pn-linux-bfin ?= "3758" SRCREV_pn-linux-hackndev-2.6 ?= "1308" -SRCREV_pn-linux-ixp4xx ?= "957" -SRCREV_pn-linux-openmoko ?= "3238" +SRCREV_pn-linux-ixp4xx ?= "983" +SRCREV_pn-linux-openmoko ?= "3801" SRCREV_pn-llvm-gcc4 ?= "374" SRCREV_pn-llvm-gcc4-cross ?= "374" SRCREV_pn-maemo-mapper ?= "118" @@ -104,7 +105,7 @@ SRCREV_pn-openmoko-stylus-demo-simple ?= "1818" SRCREV_pn-openmoko-taskmanager ?= "1663" SRCREV_pn-openmoko-tasks ?= "320" SRCREV_pn-openmoko-tasks2 ?= "361" -SRCREV_pn-openmoko-terminal2 ?= "3542" +SRCREV_pn-openmoko-terminal2 ?= "3764" SRCREV_pn-openmoko-theme-standard ?= "2370" SRCREV_pn-openmoko-theme-standard-qvga ?= "2370" SRCREV_pn-openmoko-theme-standard2 ?= "3425" @@ -112,12 +113,14 @@ SRCREV_pn-openmoko-theme-standard2-qvga ?= "3425" SRCREV_pn-openmoko-today ?= "3056" SRCREV_pn-openmoko-today2 ?= "3609" SRCREV_pn-openmoko-today2-folders ?= "3414" +SRCREV_pn-openmoko-toolchain-scripts ?= "3767" SRCREV_pn-openmoko-worldclock2 ?= "3365" SRCREV_pn-openocd ?= "206" SRCREV_pn-openocd-native ?= "206" SRCREV_pn-oprofileui ?= "160" SRCREV_pn-psplash ?= "249" SRCREV_pn-python-formencode = "3148" +SRCREV_pn-python-gsmd = "127" SRCREV_pn-settings-daemon ?= "1755" SRCREV_pn-sjf2410-linux-native ?= "933" SRCREV_pn-sphyrna ?= "45" diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf index e3ddd2165b..dd6c2e0b7e 100644 --- a/conf/distro/openmoko.conf +++ b/conf/distro/openmoko.conf @@ -4,6 +4,7 @@ #@DESCRIPTION: Linux Distribution Configuration for the OpenMoko Platform #----------------------------------------------------------------------------- +require conf/distro/include/preferred-om-2008-versions.inc require conf/distro/include/angstrom-2007-for-openmoko.inc # @@ -47,11 +48,8 @@ PREFERRED_PROVIDER_libgsmd = "libgsmd" # Same kernel runs on both these machines PACKAGE_ARCH_pn-linux-openmoko_fic-gta01 = "${MACHINE_CLASS}" PACKAGE_ARCH_pn-linux-openmoko_fic-gta02 = "${MACHINE_CLASS}" -# Same touchscreen on both these machines -PACKAGE_ARCH_pn-pointercal_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-pointercal_fic-gta02 = "${MACHINE_CLASS}" -SRC_URI_OVERRIDES_PACKAGE_ARCH_pn-pointercal_fic-gta01 = "0" -SRC_URI_OVERRIDES_PACKAGE_ARCH_pn-pointercal_fic-gta02 = "0" +PACKAGE_ARCH_pn-linux-openmoko-devel_fic-gta01 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-linux-openmoko-devel_fic-gta02 = "${MACHINE_CLASS}" # Same kernel so same usb PACKAGE_ARCH_pn-usb-gadget-mode_fic-gta01 = "${MACHINE_CLASS}" PACKAGE_ARCH_pn-usb-gadget-mode_fic-gta02 = "${MACHINE_CLASS}" diff --git a/conf/distro/openprotium.conf b/conf/distro/openprotium.conf index 928817d815..533b41526b 100644 --- a/conf/distro/openprotium.conf +++ b/conf/distro/openprotium.conf @@ -1,69 +1,84 @@ # -# Open Iomega distribution - based on openslug and generic confs +# OpenProtium distribution - based upon openslug and generic confs # DISTRO_NAME = "openprotium" -DISTRO_VERSION = ".dev-snapshot-${SRCDATE}" -DISTRO_TYPE = "alpha" +DISTRO_VERSION = "1.3" +DISTRO_TYPE ?= "alpha" +TARGET_OS = "linux" +# +# Basic configuration +# +DISTRO_DEV_MANAGER = "udev" +DISTRO_SSH_DAEMON = "dropbear" +DISTRO_INIT_MANAGER = "sysvinit" +DISTRO_LOGIN_MANAGER = "tinylogin" +MACHINE_TASK_PROVIDER = "task-openprotium" # # Naming schemes # -INHERIT += "debian" +INHERIT += "debian multimachine" # # Packaging and output format # INHERIT += "package_ipk" -IMAGE_BASENAME = "openprotium" -IMAGE_FSTYPES = "jffs2" -FEED_URIS = "openprotium##http://www.openprotium.org/ipkg.ppc.v1.0" +IMAGE_FSTYPES = "jffs2 tar.gz" +OPENPROTIUM_URI = "http://www.openprotium.org" +FEED_ARCH_storcenter = ppc603e +FEED_ARCH_turbostation = ppc603e +FEED_URIS = "\ + no-arch##${OPENPROTIUM_URI}/releases/${DISTRO_VERSION}/all \ + base##${OPENPROTIUM_URI}/releases/${DISTRO_VERSION}/${FEED_ARCH} \ + ${MACHINE}##${OPENPROTIUM_URI}/releases/${DISTRO_VERSION}/${MACHINE} \ + " # For protium on the turbostation +IMAGE_BASENAME = "openprotium" IMAGE_BASENAME_turbostation = "openprotium-ts" -# -# binutils and compilers -# -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross" -#conflict between this and the last below. -#PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}libc-for-gcc:glibc" -# Select 2.6 versions of the depmod support -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}libc-for-gcc:glibc-intermediate" +# versions +PREFERRED_VERSION_binutils ?= "2.18" +PREFERRED_VERSION_binutils-cross ?= "2.18" -PREFERRED_VERSION_binutils = "2.16" -PREFERRED_VERSION_binutils-cross = "2.16" +PREFERRED_VERSION_gcc ?= "4.1.1" +PREFERRED_VERSION_gcc-cross ?= "4.1.2" +PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2" +PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2" -PREFERRED_VERSION_gcc = "4.1.1" -PREFERRED_VERSION_gcc-cross = "4.1.1" -PREFERRED_VERSION_gcc-cross-initial = "4.1.1" +PREFERRED_VERSION_glibc = "2.6.1" +PREFERRED_VERSION_glibc-intermediate = "2.6.1" +PREFERRED_VERSION_glibc-initial = "2.6.1" -PREFERRED_VERSION_glibc = "2.5" -PREFERRED_VERSION_glibc-intermediate = "2.5" -PREFERRED_VERSION_glibc-initial = "2.3.2" +PREFERRED_VERSION_linux-libc-headers = "2.6.11.1" -# -# Target OS & FPU system # -USE_NLS ?= "no" -TARGET_OS = "linux" -HOTPLUG = "udev" -PREFERRED_PROVIDER_virtual/libiconv = "glibc" -PREFERRED_PROVIDER_virtual/libintl = "glibc" - +# Providers... # -# Bootstrap & Init +# binutils and compilers # -#PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" -require conf/distro/include/sane-srcdates.inc +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" + +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial" + +PREFERRED_PROVIDER_virtual/libc = "glibc" +PREFERRED_PROVIDER_virtual/libiconv = "glibc" +PREFERRED_PROVIDER_virtual/libintl = "glibc" + +#silence a warning message... +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" + # +# Misc items. # -# Ensure consistency across all SlugOS builds for the provider of a -# relational database - use the latest version of the SleepyCat -# Berkeley database -PREFERRED_PROVIDER_virtual/db = "db" -PREFERRED_PROVIDER_virtual/db-native = "db-native" +PREFERRED_PROVIDER_virtual/db ?= "db" +PREFERRED_PROVIDER_virtual/db-native ?= "db-native" +PREFERRED_PROVIDER_gconf ?= "gconf" -CMDLINE_DEBUG = "noirqdebug" +require conf/distro/include/sane-srcdates.inc +require conf/distro/include/sane-srcrevs.inc diff --git a/conf/distro/openwrt-sdk.conf b/conf/distro/openwrt-sdk.conf index fc760f9ea0..92e5ac5b39 100644 --- a/conf/distro/openwrt-sdk.conf +++ b/conf/distro/openwrt-sdk.conf @@ -18,9 +18,12 @@ require conf/distro/generic-uclibc.conf # Header # DISTRO_NAME = "OpenWRT" +DISTRO_REVISION = "2" + +IPKGBUILDCMD = "ipkg-build -c -o 0 -g 0" # This is what lives in SDK ASSUME_PROVIDED += "virtual/${TARGET_PREFIX}gcc virtual/libc" # Make sure that we have correct package dependencies for SDK-provided libs. -ASSUME_SHLIBS += "libc.so.0:uclibc libgcc_s.so.1:libgcc" +ASSUME_SHLIBS += "libc.so.0:uclibc libm.so.0:uclibc libgcc_s.so.1:libgcc" diff --git a/conf/machine/chumby.conf b/conf/machine/chumby.conf new file mode 100644 index 0000000000..6cf2e05480 --- /dev/null +++ b/conf/machine/chumby.conf @@ -0,0 +1,26 @@ +#@TYPE: Machine +#@Name: Chumby +#@DESCRIPTION: Machine configuration for the Chumby + +TARGET_ARCH = "arm" + +MACHINE_FEATURES = "kernel26 apm alsa bluetooth ext2 vfat touchscreen usbhost usbgadget wifi" + +GUI_MACHINE_CLASS = "smallscreen" +PACKAGE_EXTRA_ARCHS = "arm armv4t armv5te" + +PREFERRED_PROVIDER_virtual/kernel = "${MACHINE}-kernel" + +MACHINE_EXTRA_RRECOMMENDS = "\ + kernel-modules \ + + +require conf/machine/include/tune-arm926ejs.inc + +# used by sysvinit_2 +SERIAL_CONSOLE = "38400 ttyS0" + +# used by opie-collections.inc +ROOT_FLASH_SIZE = "22" + +IMAGE_FSTYPES += "cramfs" diff --git a/conf/machine/collie.conf b/conf/machine/collie.conf index c91bdcfc92..04e0e83051 100644 --- a/conf/machine/collie.conf +++ b/conf/machine/collie.conf @@ -3,24 +3,16 @@ #@DESCRIPTION: Machine configuration for the SA1100 based Sharp Zaurus SL-5000 and SL-5500 devices TARGET_ARCH = "arm" +TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm1110" MACHINE_KERNEL_VERSION ?= "2.6" -require conf/machine/include/collie-${MACHINE_KERNEL_VERSION}.inc +require conf/machine/include/zaurus-${MACHINE_KERNEL_VERSION}.inc PREFERRED_PROVIDER_xserver = "xserver-kdrive" -# This is needed for the ramdisk script to work -MACHINE_EXTRA_RDEPENDS += "e2fsprogs-mke2fs" - EXTRA_IMAGECMD_jffs2 = "--pad=14680064 --little-endian --eraseblock=0x20000 -n" - IMAGE_LINGUAS = "" - IMAGE_FSTYPES ?= "jffs2 tar.gz" -require conf/machine/include/tune-strongarm.inc - ROOT_FLASH_SIZE = "14" # actually 14680064, see EXTRA_IMAGECMD above - -GUI_MACHINE_CLASS_poodle = "smallscreen" diff --git a/conf/machine/fic-gta01.conf b/conf/machine/fic-gta01.conf index baa2e55dc1..ad0c64bef2 100644 --- a/conf/machine/fic-gta01.conf +++ b/conf/machine/fic-gta01.conf @@ -44,6 +44,3 @@ EXTRA_IMAGEDEPENDS += "dfu-util-native" # tune for S3C24x0 include conf/machine/include/tune-arm920t.inc -# set partition to flash kernel into -MTD_KERNEL_PARTITION = "/dev/mtd2" - diff --git a/conf/machine/fic-gta02.conf b/conf/machine/fic-gta02.conf index 2b2d016089..bd9621413a 100644 --- a/conf/machine/fic-gta02.conf +++ b/conf/machine/fic-gta02.conf @@ -35,7 +35,11 @@ SERIAL_CONSOLE = "115200 ttySAC2" ROOT_FLASH_SIZE = "256" # extra jffs2 tweaks -EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x4000 --pad -n" +EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --pagesize=0x800 \ + --no-cleanmarkers --pad -n ; sumtool --eraseblock=0x20000 --no-cleanmarkers \ + --littleendian --pad \ + -i ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \ + -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2.summary" # build / upload tools EXTRA_IMAGEDEPENDS += "sjf2410-linux-native dfu-util-native" @@ -46,6 +50,3 @@ include conf/machine/include/tune-arm920t.inc # build YAFFS2 IMAGE_FSTYPES ?= "jffs2 yaffs2" -# set partition to flash kernel into -MTD_KERNEL_PARTITION = "/dev/mtd2" - diff --git a/conf/machine/h3600.conf b/conf/machine/h3600.conf index c037226154..6f0e37b803 100644 --- a/conf/machine/h3600.conf +++ b/conf/machine/h3600.conf @@ -8,7 +8,7 @@ TARGET_ARCH = "arm" PACKAGE_EXTRA_ARCHS = "armv4 " -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc # h3700, h3800 have 32, but let that be the bonus ROOT_FLASH_SIZE = "16" diff --git a/conf/machine/htcalpine.conf b/conf/machine/htcalpine.conf index 6bf89999bf..f7f025413d 100644 --- a/conf/machine/htcalpine.conf +++ b/conf/machine/htcalpine.conf @@ -15,7 +15,7 @@ VOLATILE_STORAGE_SIZE = "64" MACHINE_GUI_CLASS = "smallscreen" MACHINE_DISPLAY_WIDTH_PIXELS = "240" MACHINE_DISPLAY_HEIGHT_PIXELS = "320" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa pcmcia irda bluetooth usbgadget screen vfat" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa pcmcia irda bluetooth usbgadget screen vfat phone" # # Software/packages selection diff --git a/conf/machine/htcapache.conf b/conf/machine/htcapache.conf index afaa6fc294..b3debb633c 100644 --- a/conf/machine/htcapache.conf +++ b/conf/machine/htcapache.conf @@ -15,7 +15,7 @@ VOLATILE_STORAGE_SIZE = "64" MACHINE_GUI_CLASS = "smallscreen" MACHINE_DISPLAY_WIDTH_PIXELS = "240" MACHINE_DISPLAY_HEIGHT_PIXELS = "320" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa pcmcia irda bluetooth usbgadget screen vfat" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa pcmcia irda bluetooth usbgadget screen vfat phone" # # Software/packages selection diff --git a/conf/machine/htcblueangel.conf b/conf/machine/htcblueangel.conf index a5feeb2d69..f95cb70833 100644 --- a/conf/machine/htcblueangel.conf +++ b/conf/machine/htcblueangel.conf @@ -15,7 +15,7 @@ VOLATILE_STORAGE_SIZE = "128" MACHINE_GUI_CLASS = "smallscreen" MACHINE_DISPLAY_WIDTH_PIXELS = "240" MACHINE_DISPLAY_HEIGHT_PIXELS = "320" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda bluetooth wifi usbgadget screen vfat" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda bluetooth wifi usbgadget screen vfat phone" # # Software/packages selection diff --git a/conf/machine/htchimalaya.conf b/conf/machine/htchimalaya.conf index 003406bd88..472e5d69e6 100644 --- a/conf/machine/htchimalaya.conf +++ b/conf/machine/htchimalaya.conf @@ -15,7 +15,7 @@ VOLATILE_STORAGE_SIZE = "64" MACHINE_GUI_CLASS = "smallscreen" MACHINE_DISPLAY_WIDTH_PIXELS = "240" MACHINE_DISPLAY_HEIGHT_PIXELS = "320" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda usbgadget screen vfat" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda usbgadget screen vfat phone" # # Software/packages selection diff --git a/conf/machine/htcsable.conf b/conf/machine/htcsable.conf index a577cc78d2..2ae1419bae 100644 --- a/conf/machine/htcsable.conf +++ b/conf/machine/htcsable.conf @@ -15,7 +15,7 @@ VOLATILE_STORAGE_SIZE = "64" MACHINE_GUI_CLASS = "smallscreen" MACHINE_DISPLAY_WIDTH_PIXELS = "240" MACHINE_DISPLAY_HEIGHT_PIXELS = "240" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda usbgadget screen vfat" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda usbgadget screen vfat phone" # # Software/packages selection diff --git a/conf/machine/htctornado.conf b/conf/machine/htctornado.conf index 016247213d..b311afe1b4 100644 --- a/conf/machine/htctornado.conf +++ b/conf/machine/htctornado.conf @@ -9,7 +9,7 @@ PACKAGE_EXTRA_ARCHS = "armv4t armv5te" PREFERRED_PROVIDER_virtual/kernel = "linux-tornado-omap2" -MACHINE_FEATURES = "kernel26 apm alsa bluetooth usbgadget vfat" +MACHINE_FEATURES = "kernel26 apm alsa bluetooth usbgadget vfat phone" MACHINE_EXTRA_RDEPENDS = "alsa-state" diff --git a/conf/machine/htcwallaby.conf b/conf/machine/htcwallaby.conf index 34255a1536..515700d9e6 100644 --- a/conf/machine/htcwallaby.conf +++ b/conf/machine/htcwallaby.conf @@ -8,7 +8,7 @@ TARGET_ARCH = "arm" PACKAGE_EXTRA_ARCHS = "armv4 " -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc ROOT_FLASH_SIZE = "16" VOLATILE_STORAGE_SIZE = "32" diff --git a/conf/machine/include/collie-2.6.inc b/conf/machine/include/collie-2.6.inc deleted file mode 100644 index bc80185fa0..0000000000 --- a/conf/machine/include/collie-2.6.inc +++ /dev/null @@ -1,33 +0,0 @@ -PREFERRED_PROVIDER_virtual/kernel = "linux-rp" - -SERIAL_CONSOLE = "115200 ttySA0" -MACHINE_FEATURES = "kernel26 apm pcmcia screen irda usbgadget keyboard touchscreen wifi vfat" - -MACHINE_EXTRA_RDEPENDS = "kernel-modules" - -MACHINE_POSTPROCESS_COMMAND = "zaurus_make_installkit" - -zaurus_make_installkit () { - cd ${DEPLOY_DIR_IMAGE} - rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/ - mkdir ${IMAGE_NAME}-installkit/ - # Get the latest kernel using the zImage-<machine>.bin symlink - cp zImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/zImage.bin - if [ "${MACHINE}" = "spitz" ]; then - cp gnu-tar ${IMAGE_NAME}-installkit/ - cp ${IMAGE_NAME}.rootfs.tar.gz ${IMAGE_NAME}-installkit/hdimage1.tgz - else - [ -f ${IMAGE_NAME}.rootfs.jffs2 ] && cp ${IMAGE_NAME}.rootfs.jffs2 ${IMAGE_NAME}-installkit/initrd.bin - fi - - # All zaurus machines except collie need updater.sh - if [ "${MACHINE}" != "collie" ]; then - cp updater.sh.${MACHINE} ${IMAGE_NAME}-installkit/updater.sh - fi - - tar czf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz ${IMAGE_NAME}-installkit/ - md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz.md5 - rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/ -} - - diff --git a/conf/machine/include/ixp4xx.inc b/conf/machine/include/ixp4xx.inc index bdf00d15c9..924fb54f1e 100644 --- a/conf/machine/include/ixp4xx.inc +++ b/conf/machine/include/ixp4xx.inc @@ -7,7 +7,7 @@ MACHINE_FEATURES ?= "kernel26 usbhost ext2 vfat redboot apex" # Select an appropriate default kernel PREFERRED_PROVIDER_virtual/kernel ?= "linux-ixp4xx" -PREFERRED_VERSION_linux-ixp4xx ?= "2.6.21.7+svnr${SRCREV}" +PREFERRED_VERSION_linux-ixp4xx ?= "2.6.23.14+svnr${SRCREV}" # Add packages required for basic networking support MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "ixp4xx-npe" diff --git a/conf/machine/include/motorola-ezx-base.inc b/conf/machine/include/motorola-ezx-base.inc index 87571c0db0..da88b1494f 100644 --- a/conf/machine/include/motorola-ezx-base.inc +++ b/conf/machine/include/motorola-ezx-base.inc @@ -11,8 +11,8 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-ezx" #mtd2: 00580000 00020000 "VFM_Filesystem" #mtd3: 00020000 00020000 "Logo" -MACHINE_FEATURES = "kernel26 touchscreen apm alsa bluetooth usbgadget usbhost keyboard screen" -MACHINE_FEATURES += "iwmmxt" +MACHINE_FEATURES = "kernel26 touchscreen apm alsa bluetooth usbgadget usbhost keyboard screen phone" +MACHINE_FEATURES += " iwmmxt" MACHINE_DISPLAY_WIDTH_PIXELS = "240" diff --git a/conf/machine/include/poodle-2.6.inc b/conf/machine/include/poodle-2.6.inc deleted file mode 100644 index fa24a3281b..0000000000 --- a/conf/machine/include/poodle-2.6.inc +++ /dev/null @@ -1 +0,0 @@ -require conf/machine/include/zaurus-2.6.inc diff --git a/conf/machine/include/qemu.inc b/conf/machine/include/qemu.inc index d84f1efb26..26d1e3f8ca 100644 --- a/conf/machine/include/qemu.inc +++ b/conf/machine/include/qemu.inc @@ -1,7 +1,6 @@ PCMCIA_MANAGER = "pcmciautils" PREFERRED_PROVIDER_xserver = "xserver-kdrive" GUI_MACHINE_CLASS = "bigscreen" -GPE_EXTRA_INSTALL += "gaim sylpheed" MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget screen" diff --git a/conf/machine/include/tune-strongarm.inc b/conf/machine/include/tune-strongarm.inc deleted file mode 100644 index 8654c996ef..0000000000 --- a/conf/machine/include/tune-strongarm.inc +++ /dev/null @@ -1,2 +0,0 @@ -TARGET_CC_ARCH = "-march=armv4 -mtune=xscale" - diff --git a/conf/machine/include/tune-strongarm1100.inc b/conf/machine/include/tune-strongarm1100.inc new file mode 100644 index 0000000000..f136710409 --- /dev/null +++ b/conf/machine/include/tune-strongarm1100.inc @@ -0,0 +1,5 @@ +# This machine lists common configuration options for Strongarm 1100 devices +# NOTE: The Zaurus Collie also has a Strongarm processor, but uses the 1110 type + +TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm1100" + diff --git a/conf/machine/include/zaurus-2.6.inc b/conf/machine/include/zaurus-2.6.inc index 3f84138ac8..a0a71a2969 100644 --- a/conf/machine/include/zaurus-2.6.inc +++ b/conf/machine/include/zaurus-2.6.inc @@ -1,8 +1,9 @@ -# Zaurus Clamshell specific configuration for kernel 2.6 -# Don't forget to include zaurus-clamshell.inc as well +# Zaurus specific configuration for kernel 2.6 +# Additionally, clamshell specific stuff in zaurus-clamshell.inc TARGET_ARCH = "arm" PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te" +PACKAGE_EXTRA_ARCHS_collie = "" MACHINE_KERNEL_VERSION = "2.6" @@ -10,20 +11,15 @@ ERASEBLOCKSIZE = "0x4000" ERASEBLOCKSIZE_akita = "0x20000" EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=${ERASEBLOCKSIZE} --pad --faketime -n" - IMAGE_CMD_jffs2 = "mkfs.jffs2 -x lzo --root=${IMAGE_ROOTFS} --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}" - EXTRA_IMAGEDEPENDS += "zaurus-updater" -# Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm. -include conf/machine/include/tune-xscale.inc - SERIAL_CONSOLE = "115200 ttyS0" +SERIAL_CONSOLE_collie = "115200 ttySA0" PREFERRED_PROVIDER_virtual/kernel = "linux-rp" PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive" - PCMCIA_MANAGER ?= "pcmciautils" MACHINE_FEATURES = "kernel26 apm alsa pcmcia irda usbgadget keyboard touchscreen screen vfat" @@ -49,7 +45,7 @@ zaurus_make_installkit () { mkdir ${IMAGE_NAME}-installkit/ # Get the latest kernel using the zImage-<machine>.bin symlink - cp zImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/zImage.bin + cp zImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/zImage if [ "${MACHINE}" = "spitz" ]; then cp gnu-tar ${IMAGE_NAME}-installkit/ diff --git a/conf/machine/include/zaurus-clamshell.inc b/conf/machine/include/zaurus-clamshell.inc index f66502eff1..43c77d42da 100644 --- a/conf/machine/include/zaurus-clamshell.inc +++ b/conf/machine/include/zaurus-clamshell.inc @@ -1,3 +1,6 @@ +# Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm. +include conf/machine/include/tune-xscale.inc + EXTRA_IMAGEDEPENDS += "sharp-flash-header-c700" IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime -m favourlzo \ diff --git a/conf/machine/jornada56x.conf b/conf/machine/jornada56x.conf index 72fff1ed5e..a42dd8c127 100644 --- a/conf/machine/jornada56x.conf +++ b/conf/machine/jornada56x.conf @@ -12,4 +12,4 @@ EXTRA_IMAGECMD_jornada56x_jffs2 = "-e 0x40000 -p" SERIAL_CONSOLE = "115200 ttySA0" -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc diff --git a/conf/machine/jornada7xx.conf b/conf/machine/jornada7xx.conf index 8741eb4ff6..ee9117e406 100644 --- a/conf/machine/jornada7xx.conf +++ b/conf/machine/jornada7xx.conf @@ -4,7 +4,7 @@ TARGET_ARCH = "arm" -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc PREFERRED_PROVIDER_virtual/kernel = "linux-jlime-jornada7xx" PCMCIA_MANAGER = "pcmciautils" diff --git a/conf/machine/mx31moboard.conf b/conf/machine/mx31moboard.conf new file mode 100644 index 0000000000..c918404d6c --- /dev/null +++ b/conf/machine/mx31moboard.conf @@ -0,0 +1,33 @@ +#@TYPE: Machine +#@Name: EPFL mx31MoBoard +#@DESCRIPTION: Machine configuration for EPFL MX31MoBoard +#@Website: http://mobots.epfl.ch/mx31MoBoard.html + +TARGET_ARCH = "arm" +TARGET_FPU_arm = "hard" + +MACHINE_FEATURES = "kernel26 alsa ext2 usbhost usbgadget" + +GUI_MACHINE_CLASS = "smallscreen" +PACKAGE_EXTRA_ARCHS = "arm armv4t armv5te armv6" + +PREFERRED_PROVIDER_virtual/kernel = "linux" + +require conf/machine/include/tune-arm1136jf-s.inc + +# +# usb networking +# +module_conf_g_ether = "alias usb0 g_ether" + +# used by sysvinit_2 +SERIAL_CONSOLE = "-L 115200 ttymxc0 vt100" + +# used by opie-collections.inc +ROOT_FLASH_SIZE = "32" + +# to avoid annoying jffs2 messages +EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000" + +IMAGE_FSTYPES += "tar.gz" + diff --git a/conf/machine/nokia770.conf b/conf/machine/nokia770.conf index 45fc16dc29..4e36c6d38a 100644 --- a/conf/machine/nokia770.conf +++ b/conf/machine/nokia770.conf @@ -12,6 +12,8 @@ XSERVER = "xserver-kdrive-xomap" # 800x480 is big enough for me GUI_MACHINE_CLASS = "bigscreen" +MACHINE_DISPLAY_WIDTH_PIXELS = "800" +MACHINE_DISPLAY_HEIGHT_PIXELS = "480" # Use tune-arm926 per default. Machine independent feeds should be built with tune-strongarm. require conf/machine/include/tune-arm926ejs.inc diff --git a/conf/machine/nokia800.conf b/conf/machine/nokia800.conf index 58ddb25744..144df2ed08 100644 --- a/conf/machine/nokia800.conf +++ b/conf/machine/nokia800.conf @@ -8,6 +8,8 @@ PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive-xomap" XSERVER = "xserver-kdrive-xomap" GUI_MACHINE_CLASS = "bigscreen" +MACHINE_DISPLAY_WIDTH_PIXELS = "800" +MACHINE_DISPLAY_HEIGHT_PIXELS = "480" TARGET_FPU = "hard" include conf/machine/include/tune-arm1136jf-s.inc diff --git a/conf/machine/shark.conf b/conf/machine/shark.conf index d7d35cfda1..87c260856d 100644 --- a/conf/machine/shark.conf +++ b/conf/machine/shark.conf @@ -15,7 +15,7 @@ SERIAL_CONSOLE = "ttySA0 115200 vt100" ROOT_FLASH_SIZE = "16" USE_VT = "0" -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc MACHINE_FEATURES = "kernel26 apm alsa pcmcia keyboard ext2" MACHINE_EXTRA_RDEPENDS_append = " mpg321 mpd madplay " diff --git a/conf/machine/simpad.conf b/conf/machine/simpad.conf index 6334d34171..e187ee1e75 100644 --- a/conf/machine/simpad.conf +++ b/conf/machine/simpad.conf @@ -9,7 +9,7 @@ TARGET_ARCH = "arm" MACHINE_FEATURES = "apm pcmcia irda screen touchscreen vfat" include conf/machine/include/simpad-${MACHINE_KERNEL_VERSION}.inc -require conf/machine/include/tune-strongarm.inc +require conf/machine/include/tune-strongarm1100.inc ROOT_FLASH_SIZE = "16" diff --git a/conf/machine/storcenter.conf b/conf/machine/storcenter.conf index 519c565061..5b69bbdc9a 100644 --- a/conf/machine/storcenter.conf +++ b/conf/machine/storcenter.conf @@ -1,23 +1,27 @@ TARGET_ARCH = "powerpc" -TARGET_OS = "linux" TARGET_FPU = "hard" -PACKAGE_EXTRA_ARCHS = "ppc ppc603e" - -INHERIT += "storcenter-image" +PACKAGE_EXTRA_ARCHS = "ppc603e" # terminal specs - console, but no other ports -SERIAL_CONSOLE="115200 console" +SERIAL_CONSOLE="115200 ttyS0" USE_VT="0" -MODUTILS=26 -MACHINE_FEATURES= "kernel26 usbhost pci ext2 uboot" +# uboot switches +UBOOT_MACHINE="Sandpoint8240_config" + +# plug in other tasks - not "really" used unless we are using task-boot +MACHINE_FEATURES= "kernel26 usbhost pci ext2" PREFERRED_PROVIDER_virtual/kernel = "linux-storcenter" +PREFERRED_VERSION_udev = "115" -# We want udev support in the image -udevdir = "/dev" +# the StorCenter Control Daemon provides cmdline fan and light control +MACHINE_EXTRA_RDEPENDS = "sccd" -EXTRA_IMAGECMD = "--big-endian" -ERASEBLOCK_SIZE = "0x10000" IMAGE_FSTYPES = "jffs2" +KERNEL_IMAGETYPE ?= uImage +EXTRA_IMAGECMD_jffs2 += "--pad --big-endian --eraseblock=0x10000" +# must be in HEX +FLASH_KERNEL_SIZE=0x170000 +FLASH_ROOT_SIZE=0x590000 require conf/machine/include/tune-ppc603e.inc diff --git a/contrib/angstrom/build-feeds.sh b/contrib/angstrom/build-feeds.sh index a0a21ed202..c5d343205f 100755 --- a/contrib/angstrom/build-feeds.sh +++ b/contrib/angstrom/build-feeds.sh @@ -1,6 +1,6 @@ #!/bin/bash -DO_UCLIBC=0 +DO_UCLIBC=1 do_build() { echo "MACHINE = \"$BUILD_MACHINE\"" > conf/auto.conf @@ -20,6 +20,12 @@ do_build() { then BUILD_MODE="uclibc" echo 'ANGSTROM_MODE = "uclibc"' >> conf/auto.conf + + if [ "$BUILD_CLEAN" != "" ] + then + bitbake -c clean $BUILD_CLEAN + fi + for target in $BUILD_TARGETS do bitbake $target && do_report_success @@ -36,8 +42,9 @@ for machine in ep93xx gumstix-connex gumstix-verdex efika dht-walnut omap5912osk do BUILD_MACHINE=$machine BUILD_CLEAN="libtool-cross qmake-native qmake2-native" - BUILD_TARGETS="texinfo flex bison gperf gcc binutils automake autoconf m4 pkgconfig \ - task-proper-tools mc screen \ + BUILD_TARGETS="texinfo flex bison gperf gcc binutils make automake autoconf m4 pkgconfig distcc \ + usbutils pciutils mtd-utils usbview hal \ + task-proper-tools mc screen findutils \ mono perl python ruby \ gtk+ qt-x11-free qt4-x11-free \ gpe-mini-browser midori minimo openmoko-browser2 webkit-gtklauncher \ @@ -46,17 +53,24 @@ do gpe-gallery gpe-scap notecase \ pidgin irssi \ roadmap-gtk2 gpsdrive navit \ - xmms mplayer quasar \ + xmms mplayer quasar vlc-gpe gnome-mplayer \ wpa-gui wifi-radar kismet aircrack-ng dsniff \ - iptables iperf \ + nmap iptables iperf \ + gpe-login ipaq-sleep \ gpe-bluetooth bluez-gnome python-pybluez \ abiword gnumeric evince epdfview gimp \ + scummvm \ flite \ ctorrent \ asterisk \ - gnuplot mpfr gmp fftw fftwf fftwl \ + gnuradio gnuplot mpfr gmp fftw fftwf fftwl \ gphoto2 gqview imagemagick ufraw \ tzdata \ + xserver-kdrive xserver-xorg \ + xf86-video-fbdev xf86-video-ati xf86-video-vesa \ + xf86-input-evdev xf86-input-keyboard xf86-input-mouse \ + task-opie \ + task-openmoko-base task-openmoko-debug task-openmoko-examples task-openmoko-feed task-openmoko-games task-openmoko-linux task-openmoko-native-sdk task-openmoko-net task-openmoko-phone task-openmoko-pim task-openmoko-ui \ " do_build done diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/.mtn2git_empty b/contrib/distro-packages/debian/openembedded-essential-1.3/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/.mtn2git_empty +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/.mtn2git_empty diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/.mtn2git_empty b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/.mtn2git_empty +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/.mtn2git_empty diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/changelog b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/changelog index c0eb3d660c..0cb30e8e18 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/changelog +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/changelog @@ -1,3 +1,10 @@ + +openembedded-essential (1.3) unstable; urgency=low + + * add gfortran as dependency to complement a5c7b007eaa675cc904f5285291d2f8a597efc84 + + -- Rolf Leggewie <oe-devel@rolf.leggewie.biz> Mon, 7 Jan 2008 20:25:00 +0100 + openembedded-essential (1.2) unstable; urgency=low * fixed packaging to make lintian happy diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/compat b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/compat index 7ed6ff82de..7ed6ff82de 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/compat +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/compat diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/control b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/control index c7a7e5b9f7..62d55fbba6 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/control +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.7.2 Package: openembedded-essential Architecture: all -Depends: python (>= 2.3), ccache, build-essential, quilt, bison, wget, cvs, subversion, git-core, monotone, coreutils, unzip, texi2html, texinfo, libsdl1.2-dev, docbook-utils, gawk +Depends: python (>= 2.3), ccache, build-essential, quilt, bison, wget, cvs, subversion, git-core, monotone, coreutils, unzip, texi2html, texinfo, libsdl1.2-dev, docbook-utils, gawk, gfortran Description: Metapackage to install all needed packages to start using OpenEmbedded OpenEmbedded is a full-featured development environment allowing users to target a wide variety of devices. Supporting multiple build, release paths and diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/copyright b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/copyright index 9e4905f97e..9e4905f97e 100644 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/copyright +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/copyright diff --git a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/rules b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/rules index 586b2ff42f..586b2ff42f 100755 --- a/contrib/distro-packages/debian/openembedded-essential-1.2/debian/rules +++ b/contrib/distro-packages/debian/openembedded-essential-1.3/debian/rules diff --git a/contrib/mtn2git/mtn2git.py b/contrib/mtn2git/mtn2git.py index a23e757936..1de3010756 100755 --- a/contrib/mtn2git/mtn2git.py +++ b/contrib/mtn2git/mtn2git.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ - Copyright (C) 2006, 2007 Holger Hans Peter Freyther + Copyright (C) 2006, 2007, 2008 Holger Hans Peter Freyther Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27,18 +27,6 @@ # -tag handling # -work with n-merges # -# DISCUSSION: -# -For some reason the get_revision information might be inaccurate -# and I should consider just comparing the manifests. -# I would use the manifests of the parents and consider all files deleted -# and then remove every dir/file that is inside the new manifest from this -# list. -# Benefits: -# - 1:1 match of the manifest regardles of get_revision information -# - Renaming is handled by git anyway -# Downsides: -# - The size of the import will grow. -# import mtn import os @@ -48,6 +36,17 @@ import email.Utils import status +# Interesting revisions: +# Rename with dest==src: 24cba5923360fef7c5cc81d51000e30b90355eb9 +# Recursive rename: fca159c5c00ae4158c289f5aabce995378d4e41b +# Delete+Rename: 91da98265a39c93946e00adf5d7bf92b341de847 +# +# +# + +# Our manifest/tree fifo construct +cached_tree = {} +cached_fifo = [] def get_mark(revision): """ @@ -104,21 +103,6 @@ def reset_git(ops, revision): cmd += [""] print "\n".join(cmd) -def filter_renamed(manifest, renamed): - """ - If we base from a revision that has already done - the move, git-fast-import will complain that the file - has been already moved - """ - if len(renamed) == 0: - return renamed - - for line in manifest: - if line[0] == "file": - renamed = filter(lambda (to,from_,manifest): to != line[1], renamed) - - return renamed - def get_git_date(revision): """ Convert the "date" cert of monotone to a time understandable by git. No timezone @@ -127,135 +111,90 @@ def get_git_date(revision): dt = datetime.datetime.strptime(revision["date"], "%Y-%m-%dT%H:%M:%S").strftime("%a, %d %b %Y %H:%M:%S +0000") return dt -def recursively_delete(ops, manifest, revision, dir_name, to_delete): - """ - Recursively delete all files that dir_name inside the name - """ - for line in manifest: - if line[0] == "dir" or line[0] == "file": - if line[1].startswith(dir_name): - print >> sys.stderr, "Deleting '%s'" % line[1] - to_delete.add((line[1], revision)) - elif line[0] in ["format_version"]: - assert(line[1] == "1") - else: - print >> sys.stderr, line[0] - assert(False) +def is_executable_attribute_set(attributes, rev): + assert(len(attributes) % 3 == 0), rev - return to_delete + if len(attributes) >= 3: + for i in range(0, len(attributes)%3+1): + if attributes[i] == "attr" and attributes[i+1] == "mtn:execute" and attributes[i+2] == "true": + return True + return False -def recursively_rename(ops, manifest, revision, old_name, new_name, to_add_dirs, to_add_files, to_remove_items, files_deleted, files_sticky): - """ - mtn has a rename command and can rename entrie directories. For git we will have to do the recursive renaming - ourselves. Basicly we will get all files and replace old_name with new_name but only: - If the file of the old_manifest is not in our to be deleted list - """ - old_dir = old_name + "/" - for line in manifest: - if line[1].startswith(old_dir) or line[1] == old_name: - already_handled = False - for (deleted,_) in files_deleted: - if line[1] == deleted: - already_handled = True - break - - # Don't rename files that should be in the same directory - if line[1] in files_sticky: - already_handled = True - - if already_handled: - pass - elif line[0] == "file": - print >> sys.stderr, "Will add '%s' old: '%s' new: '%s' => result: '%s'" % (line[1], old_name, new_name, line[1].replace(old_name, new_name, 1)) - to_add_files.add((line[1].replace(old_name, new_name, 1), None, revision)) - elif line[0] == "dir": - to_add_dirs.add((line[1].replace(old_name, new_name, 1), revision)) - elif line[0] in ["format_version"]: - assert(line[1] == "1") - else: - print >> sys.stderr, line[0] - assert(False) - - return (to_add_files, to_add_dirs) +def build_tree(manifest, rev): + """Assemble a filesystem tree from a given manifest""" -# -# We need to recursively rename the directories. Now the difficult part is to undo certain operations. -# -# e.g we rename the whole dir and then rename a file back. We could revive a directory that was marked -# for deletion. -# -# rename "weird/two/three" -# to "unweird/four" -# -# rename "weird/two/three/four" -# to "weird/two/three" -# -# Here we would schedule weird/two/three for deletion but then revive it again. So three does not -# get copied to unweird/four/three -# """ -def recursively_rename_directories(ops, manifests, rename_commands, files_deleted, files_moved_sticky): - to_add_directories = set() - to_add_files = set() - to_remove_items = set() - - for (old_name, new_name, old_revision) in rename_commands: - # Check if we have the above case and rename a more specific directory - # and then we will alter the result... - inner_rename = False - for (other_old_name, other_new_name, other_rev) in rename_commands: - if old_name.startswith(other_old_name + "/") and other_old_name != old_name: - inner_rename = True - print >> sys.stderr, "Inner rename detected", old_name, other_old_name - # Fixup the renaming - def rename(filename, filerev, rev, would_be_new_name): - if filename.startswith(would_be_new_name + "/"): - return filename.replace(would_be_new_name, new_name, 1), filerev, rev - return filename, filerev, rev - - would_be_new_name = other_new_name + "/" + old_name[len(other_old_name)+1:] - to_remove_items = set(filter(lambda (item,_): item != new_name, to_remove_items)) - to_add_directories = set(filter(lambda (item,_): item != would_be_new_name, to_add_directories)) - to_add_directories.add((new_name, old_revision)) - to_add_files = set(map(lambda (fn, fr, r): rename(fn, fr, r, would_be_new_name), to_add_files)) - - if not inner_rename: - to_remove_items.add((old_name, old_revision)) - recursively_delete(ops, manifests[old_revision], old_revision, old_name + "/", to_remove_items) - recursively_rename(ops, manifests[old_revision], old_revision, old_name, new_name, to_add_directories, to_add_files, to_remove_items, files_deleted, files_moved_sticky) - - return (to_add_directories, to_add_files, to_remove_items) - - -def build_tree(manifest): - dirs = {} - files = {} + class tree: + def __init__(self): + self.dirs = {} + self.files= {} + + tree = tree() for line in manifest: if line[0] == "file": - files[line[1]] = (line[3],line[4:]) + tree.files[line[1]] = (line[3], is_executable_attribute_set(line[4:], rev)) elif line[0] == "dir": - dirs[line[1]] = 1 + tree.dirs[line[1]] = 1 elif line[0] != "format_version": - print >> sys.stderr, line[0] - assert(False) - return (dirs,files) + assert(False), "Rev: %s: Line[0]: '%s'" % (rev, line[0]) -def compare_with_manifest(all_added, all_modified, all_deleted, new_manifest, old_manifests): - """ - Sanity check that the difference between the old and the new manifest is the one - we have in all_added, all_modified, all_deleted - """ - old_trees = {} - really_added = {} - really_modified = {} - really_removed = {} + return tree - current_dirs, current_files = build_tree(new_manifest) +def get_and_cache_tree(ops, revision): + """Simple FIFO to cache a number of trees""" + global cached_tree, cached_fifo - for parent in old_manifests.keys(): - old_trees[parent] = build_tree(old_manifests[parent]) + if revision in cached_tree: + return cached_tree[revision] + + tree = build_tree([line for line in ops.get_manifest_of(revision)], revision) + cached_tree[revision] = tree + cached_fifo.append(revision) + + # Shrink + if len(cached_fifo) > 100: + old_name = cached_fifo[0] + cached_fifo = cached_fifo[1:] + del cached_tree[old_name] + + return tree + +def diff_manifest(old_tree, new_tree): + """Find additions, modifications and deletions""" + added = set() + modified = set() + deleted = set() + + # Removed dirs + for dir in old_tree.dirs.keys(): + if not dir in new_tree.dirs: + deleted.add((dir,True)) + + # New dirs + for dir in new_tree.dirs.keys(): + if not dir in old_tree.dirs: + added.add(dir) + + # Deleted files + for file in old_tree.files.keys(): + if not file in new_tree.files: + deleted.add((file,False)) + + # Added files, goes to modifications + for file in new_tree.files.keys(): + if not file in old_tree.files: + modified.add((file, new_tree.files[file][0])) + continue + + # The file changed, either contents or executable attribute + old = old_tree.files[file] + new = new_tree.files[file] + if old != new: + modified.add((file, new_tree.files[file][0])) + + + return (added, modified, deleted) - print >> sys.stderr, len(old_manifests) def fast_import(ops, revision): """Import a revision into git using git-fast-import. @@ -292,27 +231,28 @@ def fast_import(ops, revision): return # Use the manifest to find dirs and files - manifest = [line for line in ops.get_manifest_of(revision["revision"])] - manifests = {} - dirs = {} - for parent in revision["parent"]: - manifests[parent] = [line for line in ops.get_manifest_of(parent)] - for line in manifests[parent]: - if line[0] == "dir": - if not parent in dirs: - dirs[parent] = {} - dirs[parent][line[1]] = 1 + current_tree = get_and_cache_tree(ops, revision["revision"]) + + all_added = set() + all_modifications = set() + all_deleted = set() - # We can not just change the mode of a file but we need to modifiy the whole file. We - # will simply add it to the modified list and ask to retrieve the status from the manifest - for (file, attribute, value, rev) in revision["set_attributes"]: - if attribute == "mtn:execute": - revision["modified"].append((file, None, rev)) - for (file, attribute, rev) in revision["clear_attributes"]: - if attribute == "mtn:execute": - revision["modified"].append((file, None, rev)) + # Now diff the manifests + for parent in revision["parent"]: + (added, modified, deleted) = diff_manifest(get_and_cache_tree(ops, parent), current_tree) + all_added = all_added.union(added) + all_modifications = all_modifications.union(modified) + all_deleted = all_deleted.union(deleted) + if len(revision["parent"]) == 0: + (added, modified, deleted) = diff_manifest(build_tree([],""), current_tree) + all_added = all_added.union(added) + all_modifications = all_modifications.union(modified) + all_deleted = all_deleted.union(deleted) + # TODO: + # Readd the sanity check to see if we deleted and modified an entry. This + # could probably happen if we have more than one parent (on a merge)? cmd = [] cmd += ["commit refs/heads/%s" % branch] @@ -322,97 +262,28 @@ def fast_import(ops, revision): cmd += ["data %d" % len(revision["changelog"])] cmd += ["%s" % revision["changelog"]] - # Emulation for renaming. We will split them into two lists - file_renamed_del = set() - file_renamed_new = set() - file_moved_sticky = set() - if len(revision["parent"]) != 0: cmd += ["from :%s" % get_mark(revision["parent"][0])] - renamed = revision["renamed"] - - to_rename_directories = [] - for (new_name, old_name, old_revision) in renamed: - # 24cba5923360fef7c5cc81d51000e30b90355eb9 is a rev where src == dest but the - # directory got renamed, so this means this file got added to the new directory - # TODO, XXX, FIXME check if this can be done for directories as well - if new_name == old_name and not old_name in dirs[old_revision]: - print >> sys.stderr, "Bogus rename in %s (%s, %s)?" % (revision["revision"], new_name, old_name) - file_moved_sticky.add(old_name) - - # Check if the old_name was a directory in the old manifest - # If we rename a directory we will need to recursively remove and recursively - # add... - # Add the '/' otherwise we might rename the wrong directory which shares the - # same prefix. - # fca159c5c00ae4158c289f5aabce995378d4e41b is quite funny. It renames a directory - # and then renames another directory within the renamed one and in the worse case - # we will revive a deleted directory, file... - elif old_name in dirs[old_revision]: - print >> sys.stderr, "Detected directory rename '%s' => '%s'" % (old_name, new_name) - assert(old_revision in manifests) - to_rename_directories.append((old_name, new_name, old_revision)) - else: - print >> sys.stderr, "Renaming %s => %s" % (old_name, new_name) - file_renamed_new.add((new_name, None, revision["revision"])) - file_renamed_del.add((old_name, old_revision)) # The first parent is our from. for parent in revision["parent"][1:]: cmd += ["merge :%s" % get_mark(parent)] - # Do the renaming now - (renamed_dirs, renamed_new, renamed_old) = recursively_rename_directories(ops, manifests, to_rename_directories, file_renamed_del.union(set(revision["removed"])), file_moved_sticky) - - # Sanity check, don't remove anything we modify - all_added = set(revision["added_dirs"]).union(renamed_dirs) - all_modifications = set(revision["modified"]).union(set(revision["added_files"])).union(renamed_new).union(file_renamed_new) - all_deleted = set(revision["removed"]).union(renamed_old).union(file_renamed_del) - all_deleted_new = all_deleted - - # Check if we delete and add at the same time - for (deleted,rev) in all_deleted: - for (added,_) in all_added: - if added == deleted: - print >> sys.stderr, "Added and Deleted", added, deleted - all_deleted_new = set(filter(lambda (dele,_): dele != added, all_deleted_new)) - assert((added,rev) not in all_deleted_new) - - for (modified,_,_) in all_modifications: - if modified == deleted: - print >> sys.stderr, "Modified and Deleted", modified, deleted - all_deleted_new = set(filter(lambda (dele,_): dele != modified, all_deleted_new)) - assert((modified,rev) not in all_deleted_new) - - # Filtered list of to be deleted items - all_deleted = all_deleted_new - # Check if we delete but the manifest has a file like this - for line in manifest: - if line[0] == "dir" or line[0] == "file": - for (deleted,rev) in all_deleted: - if line[1] == deleted: - # 91da98265a39c93946e00adf5d7bf92b341de847 of mtn has a delete + rename - print >> sys.stderr, "Trying to delete a file which is in the new manifest", line[1], deleted - assert(False) - - compare_with_manifest(all_added, all_modifications, all_deleted, manifest, manifests) - - for (dir_name, rev) in all_added: + for dir_name in all_added: cmd += ["M 644 inline %s" % os.path.join(dir_name, ".mtn2git_empty")] cmd += ["data <<EOF"] cmd += ["EOF"] cmd += [""] - for (file_name, file_revision, rev) in all_modifications: - (mode, file) = get_file_and_mode(ops, manifest, file_name, file_revision, revision["revision"]) + for (file_name, file_revision) in all_modifications: + (mode, file) = get_file_and_mode(ops, current_tree, file_name, file_revision, revision["revision"]) cmd += ["M %d inline %s" % (mode, file_name)] cmd += ["data %d" % len(file)] cmd += ["%s" % file] - for (path, rev) in all_deleted: - assert(rev in dirs) - if path in dirs[rev]: + for (path, is_dir) in all_deleted: + if is_dir: cmd += ["D %s" % os.path.join(path, ".mtn2git_empty")] else: cmd += ["D %s" % path] @@ -428,33 +299,20 @@ def is_trusted(operations, revision): return False return True -def get_file_and_mode(operations, manifest, file_name, _file_revision, rev = None): - mode = 644 +def get_file_and_mode(operations, file_tree, file_name, _file_revision, rev = None): + assert file_name in file_tree.files, "get_file_and_mode: Revision '%s', file_name='%s' " % (rev, file_name) - file_revision = None - for line in manifest: - if line[0] == "file" and line[1] == file_name: - assert(line[1] == file_name) - assert(line[2] == "content") - - if _file_revision: - assert(line[3] == _file_revision) - file_revision = line[3] - - attributes = line[4:] - assert(len(attributes) % 3 == 0) - if len(attributes) >= 3: - for i in range(0, len(attributes)%3+1): - if attributes[i] == "attr" and attributes[i+1] == "mtn:execute" and attributes[i+2] == "true": - mode = 755 - break + (file_revision, executable) = file_tree.files[file_name] + if _file_revision: + assert _file_revision == file_revision, "Same filerevision for file_name='%s' in rev='%s' (%s,%s)" % (file_name, rev, file_revision, _file_revision) - assert(file_revision) - file = "".join([file for file in operations.get_file(file_revision)]) - return (mode, file) + if executable: + mode = 755 + else: + mode = 644 - print >> sys.stderr, file_name, rev - assert(False) + file = "".join([file for file in operations.get_file(file_revision)]) + return (mode, file) def parse_revision(operations, revision): @@ -491,20 +349,12 @@ def parse_revision(operations, revision): old_rev = line[1] elif line[0] == "new_manifest": revision_description["manifest"] = line[1] - elif line[0] == "rename": - revision_description["renamed"].append((line[3], line[1], old_rev)) - elif line[0] == "patch": - revision_description["modified"].append((line[1], line[5], old_rev)) - elif line[0] == "delete": - revision_description["removed"].append((line[1], old_rev)) - elif line[0] == "add_dir": - revision_description["added_dirs"].append((line[1], old_rev)) - elif line[0] == "add_file": - revision_description["added_files"].append((line[1], line[3], old_rev)) elif line[0] == "clear": revision_description["clear_attributes"].append((line[1], line[3], old_rev)) elif line[0] == "set": revision_description["set_attributes"].append((line[1], line[3], line[5], old_rev)) + elif line[0] in ["rename", "patch", "delete", "add_dir", "add_file"]: + pass else: print >> sys.stderr, line assert(False) @@ -580,10 +430,7 @@ def main(mtn_cli, db, rev): for head in heads: print >> sys.stderr, old_heads, head all_revs += ops.ancestry_difference(head, old_heads) - for rev in all_revs: - if not rev in branch_heads: - branch_heads[rev] = [] - branch_heads[rev].append(branch) + status.former_heads[branch] = heads sorted_revs = [rev for rev in ops.toposort(all_revs)] @@ -593,10 +440,6 @@ def main(mtn_cli, db, rev): else: print >> sys.stderr, "Going to import revision ", rev fast_import(ops, parse_revision(ops, rev)) - branches = branch_heads[rev] - for branch in branches: - status.former_heads[branch] = [rev] - if __name__ == "__main__": import optparse @@ -621,3 +464,4 @@ if __name__ == "__main__": print >> sys.stderr, "Failed to open the status file" main(options.mtn, options.database, options.rev) status.store(options.status) + diff --git a/contrib/python/generate-manifest-2.5.py b/contrib/python/generate-manifest-2.5.py index 440434229c..39031bf237 100755 --- a/contrib/python/generate-manifest-2.5.py +++ b/contrib/python/generate-manifest-2.5.py @@ -11,7 +11,7 @@ import time VERSION = "2.5.1" # increase when touching python-core, this should be the same ml version as in python_2.5.1.bb -BASEREV = 5 +BASEREV = 6 __author__ = "Michael 'Mickey' Lauer <mickey@Vanille.de>" __version__ = "20071205" diff --git a/delete.txt b/delete.txt deleted file mode 100644 index 7c9dc251aa..0000000000 --- a/delete.txt +++ /dev/null @@ -1,27 +0,0 @@ -Packages to be removed from OpenEmbedded if no one will fix them. - -Dropping stuff from metadata is not best way so this file will be filled -with informations about which parts of metadata will be removed. - -Please sort by removal date - -Package Name: recipe, directory or subsystem name -Removal Date: YYYY-MM-DD -Maintainer: Surname Name + e-mail -Reason: description why it will get removed -Proposed by: person which want entry to be removed - ------------------------------------------------------------------------------ - -Package Name: Maemo -Removal Date: 2006-12-15 -Maintainer: none -Reason: Unfetchable, obsoleted by IT2006 release. -Proposed by: Marcin 'Hrw' Juszkiewicz - -Package Name: task-bootstrap* -Removal Date: 2006-12-22 -Maintainer: None -Reason: Obsoleted by task-base -Proposed by: Koen Kooi -Note: Moved to packages/obsolete/tasks on 2006-12-22 diff --git a/files/device_table-minimal-add-md.txt b/files/device_table-minimal-add-md.txt new file mode 100644 index 0000000000..a78ca76605 --- /dev/null +++ b/files/device_table-minimal-add-md.txt @@ -0,0 +1,32 @@ +#<path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> +#/dev/mem c 640 0 0 1 1 0 0 - +# +#type can be one of: +# f A regular file +# d Directory +# c Character special device file +# b Block special device file +# p Fifo (named pipe) + +/dev d 755 0 0 - - - - - +/dev/initctl p 600 0 0 - - - - - +/dev/apm_bios c 660 0 46 10 134 - - - +/dev/fb0 c 600 0 0 29 0 - - - +/dev/hda b 660 0 6 3 0 - - - +/dev/hda b 660 0 6 3 1 1 1 5 +/dev/kmem c 640 0 15 1 2 - - - +/dev/mem c 640 0 15 1 1 - - - +/dev/null c 666 0 0 1 3 - - - +/dev/ram b 640 0 0 1 0 0 1 4 +/dev/tty c 662 0 5 5 0 - - - +/dev/tty c 666 0 5 4 0 0 1 9 +/dev/ttyS c 640 0 5 4 64 0 1 2 +/dev/ttySA c 640 0 5 204 5 0 1 1 +/dev/zero c 644 0 0 1 5 - - - +/dev/mtd c 660 0 6 90 0 0 2 8 +/dev/mtdblock b 640 0 0 31 0 0 1 8 +/dev/console c 662 0 5 5 1 - - - +/dev/random c 644 0 0 1 8 - - - +/dev/urandom c 644 0 0 1 9 - - - +/dev/ptmx c 644 0 0 5 2 - - - +/dev/md b 644 0 0 9 0 0 1 4 diff --git a/packages/agg/agg_2.5.bb b/packages/agg/agg_2.5.bb index a3cf4b9557..ba76a7b4c6 100644 --- a/packages/agg/agg_2.5.bb +++ b/packages/agg/agg_2.5.bb @@ -5,7 +5,7 @@ SECTION = "libs" LICENSE = "AGG License" DEPENDS = "virtual/libx11 virtual/libsdl freetype" -PR = "r0" +PR = "r1" SRC_URI = "http://www.antigrain.com/${P}.tar.gz" S = "${WORKDIR}/${P}" @@ -32,6 +32,12 @@ do_stage() { oe_libinstall -a -so libaggplatformsdl ${STAGING_LIBDIR} install -m 0644 libagg.m4 ${STAGING_DATADIR}/aclocal/ install -d ${STAGING_INCDIR}/agg2 + + for f in font_freetype font_win32_tt gpc + do + install -m 0644 ${S}/$f/*.h ${STAGING_INCDIR}/agg2/ + done + cd include headers=`find . -name "*.h"` for f in $headers @@ -39,6 +45,3 @@ do_stage() { install -D -m 0644 $f ${STAGING_INCDIR}/agg2/$f done } - - - diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index 2707aa224a..02957aebe9 100644 --- a/packages/alsa/alsa-state.bb +++ b/packages/alsa/alsa-state.bb @@ -8,7 +8,7 @@ DESCRIPTION = "Default ALSA configuration" LICENSE = "GPL" RRECOMMENDS_alsa-state = "alsa-states" PV = "0.1.0" -PR = "r7" +PR = "r9" SRC_URI = " \ file://asoundrc \ @@ -26,6 +26,10 @@ SRC_URI_append_fic-gta01 = " \ file://voip-handset.state \ file://voip-headset.state" +SRC_URI_append_fic-gta02 = "\ + file://stereoout.state \ + " + inherit update-rc.d INITSCRIPT_NAME = "alsa-state" diff --git a/packages/gnutls/gnutls/.mtn2git_empty b/packages/alsa/alsa-state/fic-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gnutls/gnutls/.mtn2git_empty +++ b/packages/alsa/alsa-state/fic-gta02/.mtn2git_empty diff --git a/packages/alsa/alsa-state/fic-gta02/asound.state b/packages/alsa/alsa-state/fic-gta02/asound.state new file mode 100644 index 0000000000..df824b66b6 --- /dev/null +++ b/packages/alsa/alsa-state/fic-gta02/asound.state @@ -0,0 +1,875 @@ +state.neo1973gta02 { + control.1 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'PCM Volume' + value.0 255 + value.1 255 + } + control.2 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'ADC Capture Volume' + value.0 195 + value.1 195 + } + control.3 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 127' + iface MIXER + name 'Headphone Playback Volume' + value.0 121 + value.1 121 + } + control.4 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 127' + iface MIXER + name 'Speaker Playback Volume' + value.0 121 + value.1 121 + } + control.5 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 127' + iface MIXER + name 'Mono Playback Volume' + value 121 + } + control.6 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Bypass Playback Volume' + value.0 2 + value.1 2 + } + control.7 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Sidetone Playback Volume' + value.0 2 + value.1 2 + } + control.8 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Voice Playback Volume' + value.0 2 + value.1 2 + } + control.9 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + } + control.10 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + } + control.11 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Bypass Playback Volume' + value 2 + } + control.12 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Sidetone Playback Volume' + value 2 + } + control.13 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Voice Playback Volume' + value 2 + } + control.14 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Playback ZC Switch' + value false + } + control.15 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Linear Control' + comment.item.1 'Adaptive Boost' + iface MIXER + name 'Bass Boost' + value 'Linear Control' + } + control.16 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '130Hz @ 48kHz' + comment.item.1 '200Hz @ 48kHz' + comment.item.2 '100Hz @ 16kHz' + comment.item.3 '400Hz @ 48kHz' + comment.item.4 '100Hz @ 8kHz' + comment.item.5 '200Hz @ 8kHz' + iface MIXER + name 'Bass Filter' + value '130Hz @ 48kHz' + } + control.17 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'Bass Volume' + value 0 + } + control.18 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'Treble Volume' + value 0 + } + control.19 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '8kHz' + comment.item.1 '4kHz' + iface MIXER + name 'Treble Cut-off' + value '8kHz' + } + control.20 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Sidetone Capture Volume' + value.0 2 + value.1 2 + } + control.21 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Voice Sidetone Capture Volume' + value 2 + } + control.22 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 63' + iface MIXER + name 'Capture Volume' + value.0 23 + value.1 23 + } + control.23 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Capture ZC Switch' + value.0 false + value.1 false + } + control.24 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Capture Switch' + value.0 false + value.1 false + } + control.25 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '3.4Hz @ 48kHz' + comment.item.1 '82Hz @ 16k' + comment.item.2 '82Hz @ 8kHz' + comment.item.3 '170Hz @ 8kHz' + iface MIXER + name 'Capture Filter Select' + value '3.4Hz @ 48kHz' + } + control.26 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 HiFi + comment.item.1 Voice + iface MIXER + name 'Capture Filter Cut-off' + value HiFi + } + control.27 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Capture Filter Switch' + value true + } + control.28 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'ALC Capture Target Volume' + value 3 + } + control.29 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'ALC Capture Max Volume' + value 7 + } + control.30 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Off + comment.item.1 Right + comment.item.2 Left + comment.item.3 Stereo + iface MIXER + name 'ALC Capture Function' + value Off + } + control.31 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Capture ZC Switch' + value false + } + control.32 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Hold Time' + value 15 + } + control.33 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Decay Time' + value 12 + } + control.34 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Attack Time' + value 2 + } + control.35 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 31' + iface MIXER + name 'ALC Capture NG Threshold' + value 0 + } + control.36 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Constant PGA Gain' + comment.item.1 'Mute ADC Output' + iface MIXER + name 'ALC Capture NG Type' + value 'Constant PGA Gain' + } + control.37 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Capture NG Switch' + value false + } + control.38 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Capture + comment.item.1 Playback + iface MIXER + name '3D Function' + value Capture + } + control.39 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '2.2kHz' + comment.item.1 '1.5kHz' + iface MIXER + name '3D Upper Cut-off' + value '2.2kHz' + } + control.40 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '200Hz' + comment.item.1 '500Hz' + iface MIXER + name '3D Lower Cut-off' + value '200Hz' + } + control.41 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name '3D Volume' + value 0 + } + control.42 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name '3D Switch' + value false + } + control.43 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Capture 6dB Attenuate' + value false + } + control.44 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback 6dB Attenuate' + value false + } + control.45 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 None + comment.item.1 '32kHz' + comment.item.2 '44.1kHz' + comment.item.3 '48kHz' + iface MIXER + name De-emphasis + value None + } + control.46 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 Left + comment.item.2 Right + comment.item.3 Mono + iface MIXER + name 'Playback Mono Mix' + value Stereo + } + control.47 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Non Inverted' + comment.item.1 Inverted + iface MIXER + name 'Playback Phase' + value 'Non Inverted' + } + control.48 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + iface MIXER + name 'Mic2 Capture Volume' + value 0 + } + control.49 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + iface MIXER + name 'Mic1 Capture Volume' + value 0 + } + control.50 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'DAI 0' + comment.item.1 'DAI 1' + comment.item.2 'DAI 2' + comment.item.3 'DAI 3' + iface MIXER + name 'DAI Mode' + value 'DAI 0' + } + control.51 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Left ADC' + comment.item.2 'Right ADC' + comment.item.3 'Channel Swap' + iface MIXER + name 'ADC Data Select' + value Stereo + } + control.52 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Mic 1' + comment.item.1 'Mic 2' + comment.item.2 'Mic 3' + iface MIXER + name 'Mic Selection Mux' + value 'Mic 1' + } + control.53 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'RXP - RXN' + comment.item.1 'RXP + RXN' + comment.item.2 RXP + comment.item.3 RXN + iface MIXER + name 'Rx Mixer' + value 'RXP - RXN' + } + control.54 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 1 + 2' + comment.item.1 'Line 1 - 2' + comment.item.2 'Line 1' + comment.item.3 'Line 2' + iface MIXER + name 'Line Mixer' + value 'Line 1 + 2' + } + control.55 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line Mix' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Mono Mux' + value 'Line Mix' + } + control.56 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 2' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Right Mux' + value 'Line 2' + } + control.57 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 1' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Left Mux' + value 'Line 1' + } + control.58 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Line Capture Switch' + value false + } + control.59 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Mic2 Capture Switch' + value false + } + control.60 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Mic1 Capture Switch' + value false + } + control.61 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Rx Capture Switch' + value false + } + control.62 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Left PGA' + comment.item.1 'Mic 1' + comment.item.2 'Mic 2' + comment.item.3 'Right PGA' + iface MIXER + name 'Mic Sidetone Mux' + value 'Left PGA' + } + control.63 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 PGA + comment.item.1 'Line or RXP-RXN' + comment.item.2 Sidetone + iface MIXER + name 'Capture Right Mux' + value PGA + } + control.64 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 PGA + comment.item.1 'Line or RXP-RXN' + comment.item.2 Line + iface MIXER + name 'Capture Left Mux' + value PGA + } + control.65 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Analogue Mix Left' + comment.item.2 'Analogue Mix Right' + comment.item.3 'Digital Mono Mix' + iface MIXER + name 'Capture Right Mixer' + value Stereo + } + control.66 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Analogue Mix Left' + comment.item.2 'Analogue Mix Right' + comment.item.3 'Digital Mono Mix' + iface MIXER + name 'Capture Left Mixer' + value Stereo + } + control.67 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Voice Capture Sw' + value false + } + control.68 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Left Capture Swi' + value false + } + control.69 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Right Capture Sw' + value false + } + control.70 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 VREF + comment.item.1 'Capture ST' + comment.item.2 LOUT2 + iface MIXER + name 'Out4 Mux' + value VREF + } + control.71 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 VREF + comment.item.1 ROUT2 + comment.item.2 'Left + Right' + iface MIXER + name 'Out3 Mux' + value VREF + } + control.72 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Inverted Mono 1' + comment.item.1 Left + comment.item.2 Right + comment.item.3 'Left + Right' + iface MIXER + name 'Mono 2 Mux' + value 'Inverted Mono 1' + } + control.73 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Left Playback Switch' + value false + } + control.74 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Right Playback Switc' + value false + } + control.75 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Voice Playback Switc' + value false + } + control.76 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Sidetone Playback Sw' + value false + } + control.77 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Bypass Playback Swit' + value false + } + control.78 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Voice Playback Swit' + value false + } + control.79 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Sidetone Playback S' + value false + } + control.80 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Right Playback Swit' + value true + } + control.81 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Bypass Playback Swi' + value false + } + control.82 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Voice Playback Switc' + value false + } + control.83 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Sidetone Playback Sw' + value false + } + control.84 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Left Playback Switch' + value true + } + control.85 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Bypass Playback Swit' + value false + } + control.86 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Stereo Out Switch' + value true + } + control.87 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM GSM Line Out Switch' + value false + } + control.88 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM GSM Line In Switch' + value false + } + control.89 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Headset Mic Switch' + value false + } + control.90 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Handset Mic Switch' + value false + } + control.91 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Handset Spk Switch' + value false + } + control.92 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Amp State Switch' + value true + } + control.93 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Amp Spk Switch' + value true + } +} diff --git a/packages/alsa/alsa-state/fic-gta02/stereoout.state b/packages/alsa/alsa-state/fic-gta02/stereoout.state new file mode 100644 index 0000000000..df824b66b6 --- /dev/null +++ b/packages/alsa/alsa-state/fic-gta02/stereoout.state @@ -0,0 +1,875 @@ +state.neo1973gta02 { + control.1 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'PCM Volume' + value.0 255 + value.1 255 + } + control.2 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'ADC Capture Volume' + value.0 195 + value.1 195 + } + control.3 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 127' + iface MIXER + name 'Headphone Playback Volume' + value.0 121 + value.1 121 + } + control.4 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 127' + iface MIXER + name 'Speaker Playback Volume' + value.0 121 + value.1 121 + } + control.5 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 127' + iface MIXER + name 'Mono Playback Volume' + value 121 + } + control.6 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Bypass Playback Volume' + value.0 2 + value.1 2 + } + control.7 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Sidetone Playback Volume' + value.0 2 + value.1 2 + } + control.8 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Voice Playback Volume' + value.0 2 + value.1 2 + } + control.9 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + } + control.10 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + } + control.11 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Bypass Playback Volume' + value 2 + } + control.12 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Sidetone Playback Volume' + value 2 + } + control.13 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Mono Voice Playback Volume' + value 2 + } + control.14 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Playback ZC Switch' + value false + } + control.15 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Linear Control' + comment.item.1 'Adaptive Boost' + iface MIXER + name 'Bass Boost' + value 'Linear Control' + } + control.16 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '130Hz @ 48kHz' + comment.item.1 '200Hz @ 48kHz' + comment.item.2 '100Hz @ 16kHz' + comment.item.3 '400Hz @ 48kHz' + comment.item.4 '100Hz @ 8kHz' + comment.item.5 '200Hz @ 8kHz' + iface MIXER + name 'Bass Filter' + value '130Hz @ 48kHz' + } + control.17 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'Bass Volume' + value 0 + } + control.18 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'Treble Volume' + value 0 + } + control.19 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '8kHz' + comment.item.1 '4kHz' + iface MIXER + name 'Treble Cut-off' + value '8kHz' + } + control.20 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 7' + iface MIXER + name 'Sidetone Capture Volume' + value.0 2 + value.1 2 + } + control.21 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'Voice Sidetone Capture Volume' + value 2 + } + control.22 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 63' + iface MIXER + name 'Capture Volume' + value.0 23 + value.1 23 + } + control.23 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Capture ZC Switch' + value.0 false + value.1 false + } + control.24 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Capture Switch' + value.0 false + value.1 false + } + control.25 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '3.4Hz @ 48kHz' + comment.item.1 '82Hz @ 16k' + comment.item.2 '82Hz @ 8kHz' + comment.item.3 '170Hz @ 8kHz' + iface MIXER + name 'Capture Filter Select' + value '3.4Hz @ 48kHz' + } + control.26 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 HiFi + comment.item.1 Voice + iface MIXER + name 'Capture Filter Cut-off' + value HiFi + } + control.27 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Capture Filter Switch' + value true + } + control.28 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'ALC Capture Target Volume' + value 3 + } + control.29 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'ALC Capture Max Volume' + value 7 + } + control.30 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Off + comment.item.1 Right + comment.item.2 Left + comment.item.3 Stereo + iface MIXER + name 'ALC Capture Function' + value Off + } + control.31 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Capture ZC Switch' + value false + } + control.32 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Hold Time' + value 15 + } + control.33 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Decay Time' + value 12 + } + control.34 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name 'ALC Capture Attack Time' + value 2 + } + control.35 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 31' + iface MIXER + name 'ALC Capture NG Threshold' + value 0 + } + control.36 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Constant PGA Gain' + comment.item.1 'Mute ADC Output' + iface MIXER + name 'ALC Capture NG Type' + value 'Constant PGA Gain' + } + control.37 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Capture NG Switch' + value false + } + control.38 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Capture + comment.item.1 Playback + iface MIXER + name '3D Function' + value Capture + } + control.39 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '2.2kHz' + comment.item.1 '1.5kHz' + iface MIXER + name '3D Upper Cut-off' + value '2.2kHz' + } + control.40 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '200Hz' + comment.item.1 '500Hz' + iface MIXER + name '3D Lower Cut-off' + value '200Hz' + } + control.41 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 15' + iface MIXER + name '3D Volume' + value 0 + } + control.42 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name '3D Switch' + value false + } + control.43 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Capture 6dB Attenuate' + value false + } + control.44 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback 6dB Attenuate' + value false + } + control.45 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 None + comment.item.1 '32kHz' + comment.item.2 '44.1kHz' + comment.item.3 '48kHz' + iface MIXER + name De-emphasis + value None + } + control.46 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 Left + comment.item.2 Right + comment.item.3 Mono + iface MIXER + name 'Playback Mono Mix' + value Stereo + } + control.47 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Non Inverted' + comment.item.1 Inverted + iface MIXER + name 'Playback Phase' + value 'Non Inverted' + } + control.48 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + iface MIXER + name 'Mic2 Capture Volume' + value 0 + } + control.49 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + iface MIXER + name 'Mic1 Capture Volume' + value 0 + } + control.50 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'DAI 0' + comment.item.1 'DAI 1' + comment.item.2 'DAI 2' + comment.item.3 'DAI 3' + iface MIXER + name 'DAI Mode' + value 'DAI 0' + } + control.51 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Left ADC' + comment.item.2 'Right ADC' + comment.item.3 'Channel Swap' + iface MIXER + name 'ADC Data Select' + value Stereo + } + control.52 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Mic 1' + comment.item.1 'Mic 2' + comment.item.2 'Mic 3' + iface MIXER + name 'Mic Selection Mux' + value 'Mic 1' + } + control.53 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'RXP - RXN' + comment.item.1 'RXP + RXN' + comment.item.2 RXP + comment.item.3 RXN + iface MIXER + name 'Rx Mixer' + value 'RXP - RXN' + } + control.54 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 1 + 2' + comment.item.1 'Line 1 - 2' + comment.item.2 'Line 1' + comment.item.3 'Line 2' + iface MIXER + name 'Line Mixer' + value 'Line 1 + 2' + } + control.55 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line Mix' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Mono Mux' + value 'Line Mix' + } + control.56 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 2' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Right Mux' + value 'Line 2' + } + control.57 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Line 1' + comment.item.1 'Rx Mix' + iface MIXER + name 'Line Left Mux' + value 'Line 1' + } + control.58 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Line Capture Switch' + value false + } + control.59 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Mic2 Capture Switch' + value false + } + control.60 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Mic1 Capture Switch' + value false + } + control.61 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'ALC Mixer Rx Capture Switch' + value false + } + control.62 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Left PGA' + comment.item.1 'Mic 1' + comment.item.2 'Mic 2' + comment.item.3 'Right PGA' + iface MIXER + name 'Mic Sidetone Mux' + value 'Left PGA' + } + control.63 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 PGA + comment.item.1 'Line or RXP-RXN' + comment.item.2 Sidetone + iface MIXER + name 'Capture Right Mux' + value PGA + } + control.64 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 PGA + comment.item.1 'Line or RXP-RXN' + comment.item.2 Line + iface MIXER + name 'Capture Left Mux' + value PGA + } + control.65 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Analogue Mix Left' + comment.item.2 'Analogue Mix Right' + comment.item.3 'Digital Mono Mix' + iface MIXER + name 'Capture Right Mixer' + value Stereo + } + control.66 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Stereo + comment.item.1 'Analogue Mix Left' + comment.item.2 'Analogue Mix Right' + comment.item.3 'Digital Mono Mix' + iface MIXER + name 'Capture Left Mixer' + value Stereo + } + control.67 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Voice Capture Sw' + value false + } + control.68 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Left Capture Swi' + value false + } + control.69 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Playback Mixer Right Capture Sw' + value false + } + control.70 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 VREF + comment.item.1 'Capture ST' + comment.item.2 LOUT2 + iface MIXER + name 'Out4 Mux' + value VREF + } + control.71 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 VREF + comment.item.1 ROUT2 + comment.item.2 'Left + Right' + iface MIXER + name 'Out3 Mux' + value VREF + } + control.72 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Inverted Mono 1' + comment.item.1 Left + comment.item.2 Right + comment.item.3 'Left + Right' + iface MIXER + name 'Mono 2 Mux' + value 'Inverted Mono 1' + } + control.73 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Left Playback Switch' + value false + } + control.74 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Right Playback Switc' + value false + } + control.75 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Voice Playback Switc' + value false + } + control.76 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Sidetone Playback Sw' + value false + } + control.77 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mono Mixer Bypass Playback Swit' + value false + } + control.78 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Voice Playback Swit' + value false + } + control.79 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Sidetone Playback S' + value false + } + control.80 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Right Playback Swit' + value true + } + control.81 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right Mixer Bypass Playback Swi' + value false + } + control.82 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Voice Playback Switc' + value false + } + control.83 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Sidetone Playback Sw' + value false + } + control.84 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Left Playback Switch' + value true + } + control.85 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left Mixer Bypass Playback Swit' + value false + } + control.86 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Stereo Out Switch' + value true + } + control.87 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM GSM Line Out Switch' + value false + } + control.88 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM GSM Line In Switch' + value false + } + control.89 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Headset Mic Switch' + value false + } + control.90 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Handset Mic Switch' + value false + } + control.91 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAPM Handset Spk Switch' + value false + } + control.92 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Amp State Switch' + value true + } + control.93 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Amp Spk Switch' + value true + } +} diff --git a/packages/apmd/apmd-3.2.2/90-wifi-off b/packages/apmd/apmd-3.2.2/90-wifi-off new file mode 100644 index 0000000000..c54936c4be --- /dev/null +++ b/packages/apmd/apmd-3.2.2/90-wifi-off @@ -0,0 +1,12 @@ +#!/bin/sh +#Author: Rolf Leggewie +# +# turn off wifi cards before suspend so they are fully reloaded upon resume + +wifislot = `pccardctl ls|egrep '(hostap|orinoco)'|cut -f 2 -d " "` +if test $wifislot +then + for slot in $wifislot; do + pccardctl eject $wifislot + done +fi diff --git a/packages/apmd/apmd_3.2.2.bb b/packages/apmd/apmd_3.2.2.bb index c3fce375d3..e9f5c0cbef 100644 --- a/packages/apmd/apmd_3.2.2.bb +++ b/packages/apmd/apmd_3.2.2.bb @@ -3,7 +3,7 @@ SECTION = "base" PRIORITY = "required" DEPENDS = "libtool-cross" LICENSE = "GPL" -PR = "r8" +PR = "r9" SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.orig.tar.gz \ file://debian.patch;patch=1 \ @@ -12,6 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.orig.tar.gz \ file://unlinux.patch;patch=1 \ file://init \ file://default \ + file://90-wifi-off \ file://apmd_proxy \ file://apmd_proxy.conf" @@ -49,6 +50,7 @@ do_install() { install -m 4755 ${S}/.libs/apm ${D}${bindir}/apm install -m 0755 ${S}/.libs/apmd ${D}${sbindir}/apmd + install -m 0755 ${WORKDIR}/90-wifi-off ${D}${sysconfdir}/apm/suspend.d install -m 0755 ${WORKDIR}/apmd_proxy ${D}${sysconfdir}/apm/ install -m 0644 ${WORKDIR}/apmd_proxy.conf ${D}${datadir}/apmd/ install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/apmd diff --git a/packages/jamvm/jamvm-1.3.0/.mtn2git_empty b/packages/asterisk/asterisk-1.4.17/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/jamvm/jamvm-1.3.0/.mtn2git_empty +++ b/packages/asterisk/asterisk-1.4.17/.mtn2git_empty diff --git a/packages/asterisk/asterisk-1.4.17/Makefile.patch b/packages/asterisk/asterisk-1.4.17/Makefile.patch new file mode 100644 index 0000000000..a6d630949e --- /dev/null +++ b/packages/asterisk/asterisk-1.4.17/Makefile.patch @@ -0,0 +1,20 @@ +--- asterisk-1.4.5/Makefile 2007-05-24 15:05:08.000000000 -0400 ++++ asterisk-1.4.5/Makefile.new 2007-06-17 05:36:44.000000000 -0400 +@@ -115,7 +115,7 @@ else + ASTSBINDIR=$(sbindir) + ASTSPOOLDIR=$(localstatedir)/spool/asterisk + ASTLOGDIR=$(localstatedir)/log/asterisk +- ASTVARRUNDIR=$(localstatedir)/run ++ ASTVARRUNDIR=$(localstatedir)/run/asterisk + ASTMANDIR=$(mandir) + ifeq ($(OSARCH),FreeBSD) + ASTVARLIBDIR=$(prefix)/share/asterisk +@@ -468,7 +468,7 @@ oldmodcheck: + echo " WARNING WARNING WARNING" ;\ + fi + +-install: datafiles bininstall $(SUBDIRS_INSTALL) ++install: datafiles bininstall $(SUBDIRS_INSTALL) samples + @if [ -x /usr/sbin/asterisk-post-install ]; then \ + /usr/sbin/asterisk-post-install $(DESTDIR) . ; \ + fi diff --git a/packages/asterisk/asterisk-1.4.17/init b/packages/asterisk/asterisk-1.4.17/init new file mode 100644 index 0000000000..f26ad38db3 --- /dev/null +++ b/packages/asterisk/asterisk-1.4.17/init @@ -0,0 +1,77 @@ +#! /bin/sh +# +# This is an init script for openembedded +# Copy it to /etc/init.d/openpbx and type +# > update-rc.d asterisk defaults 60 +# +asterisk=/usr/sbin/asterisk +pidfile=/var/run/asterisk/asterisk.pid +asterisk_args="-npqT -U asterisk -G asterisk" + +test -x "$asterisk" || exit 0 + +case "$1" in + start) + echo -n "Starting Asterisk" + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + echo "." + ;; + stop) + echo -n "Stopping Asterisk" + $asterisk -rx "stop gracefully" + sleep 4 + if [ -f $pidfile ]; then + start-stop-daemon --stop --quiet --pidfile $pidfile + fi + echo "." + ;; + force-stop) + echo -n "Stopping Asterisk" + $asterisk -rx "stop now" + sleep 2 + if [ -f $pidfile ]; then + start-stop-daemon --stop --quiet --pidfile $pidfile + fi + echo "." + ;; + restart) + echo -n "Restarting Asterisk" + if [ -f $pidfile ]; then + $asterisk -rx "restart gracefully" + sleep 2 + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + force-restart) + echo -n "Forcibly Restarting Asterisk" + if [ -f $pidfile ]; then + $asterisk -rx "restart now" + sleep 2 + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + reload) + echo -n "Reloading Asterisk Configuration" + if [ -f $pidfile ]; then + $asterisk -rx "reload" + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + logger-reload) + if [ -f $pidfile ]; then + $asterisk -rx "logger reload" + fi + ;; + *) + echo "Usage: /etc/init.d/asterisk {start|stop|force-stop|restart|force-restart|reload|logger-reload}" + exit 1 +esac + +exit 0 + diff --git a/packages/asterisk/asterisk-1.4.17/logrotate b/packages/asterisk/asterisk-1.4.17/logrotate new file mode 100644 index 0000000000..dfd25ee55c --- /dev/null +++ b/packages/asterisk/asterisk-1.4.17/logrotate @@ -0,0 +1,12 @@ +/var/log/asterisk/cdr-csv/Master.csv /var/log/asterisk/cdr-custom/Master.csv /var/log/asterisk/queue_log /var/log/asterisk/event_log /var/log/asterisk/messages { + daily + missingok + compress + delaycompress + rotate 30 + sharedscripts + postrotate + /etc/init.d/asterisk logger-reload + endscript +} + diff --git a/packages/asterisk/asterisk-1.4.17/sounds.xml.patch b/packages/asterisk/asterisk-1.4.17/sounds.xml.patch new file mode 100644 index 0000000000..b549fea132 --- /dev/null +++ b/packages/asterisk/asterisk-1.4.17/sounds.xml.patch @@ -0,0 +1,18 @@ +--- asterisk-1.4.4/sounds/sounds.xml 2007-05-24 17:00:45.000000000 -0400 ++++ asterisk-1.4.4/sounds/sounds.xml.new 2007-05-25 13:23:41.000000000 -0400 +@@ -6,7 +6,6 @@ + <member name="CORE-SOUNDS-EN-ALAW" displayname="English, a-Law format"> + </member> + <member name="CORE-SOUNDS-EN-GSM" displayname="English, GSM format" > +- <defaultenabled>yes</defaultenabled> + </member> + <member name="CORE-SOUNDS-EN-G729" displayname="English, G.729 format"> + </member> +@@ -39,7 +38,6 @@ + </category> + <category name="MENUSELECT_MOH" displayname="Music On Hold File Packages" positive_output="yes"> + <member name="MOH-FREEPLAY-WAV" displayname="FreePlay Music On Hold Files, WAV format" > +- <defaultenabled>yes</defaultenabled> + </member> + <member name="MOH-FREEPLAY-ULAW" displayname="FreePlay Music On Hold Files, mu-Law format" > + </member> diff --git a/packages/asterisk/asterisk-1.4.17/volatiles b/packages/asterisk/asterisk-1.4.17/volatiles new file mode 100644 index 0000000000..c68e786c90 --- /dev/null +++ b/packages/asterisk/asterisk-1.4.17/volatiles @@ -0,0 +1,7 @@ +d asterisk asterisk 0775 /var/run/asterisk none +d asterisk asterisk 0775 /var/lib/asterisk none +d asterisk asterisk 0775 /var/log/asterisk none +d asterisk asterisk 0775 /var/log/asterisk/cdr-csv none +d asterisk asterisk 0775 /var/log/asterisk/cdr-custom none +d asterisk asterisk 0775 /var/spool/asterisk/outgoing none +d asterisk asterisk 0775 /var/spool/asterisk/voicemail none diff --git a/packages/asterisk/asterisk-core-sounds-en-alaw_1.4.7.bb b/packages/asterisk/asterisk-core-sounds-en-alaw_1.4.7.bb new file mode 100644 index 0000000000..f1b3d12cd7 --- /dev/null +++ b/packages/asterisk/asterisk-core-sounds-en-alaw_1.4.7.bb @@ -0,0 +1,46 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-core-sounds-en-alaw-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + #install -m 644 ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/CREDITS* ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/core-sounds-en.txt ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/dictate + #install -m 644 ${WORKDIR}/dictate/* ${D}${localstatedir}/lib/asterisk/sounds/dictate/ + mv ${WORKDIR}/dictate ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/digits + #install -m 644 ${WORKDIR}/digits/* ${D}${localstatedir}/lib/asterisk/sounds/digits/ + mv ${WORKDIR}/digits ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/followme + #install -m 644 ${WORKDIR}/followme/* ${D}${localstatedir}/lib/asterisk/sounds/followme/ + mv ${WORKDIR}/followme ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/letters + #install -m 644 ${WORKDIR}/letters/* ${D}${localstatedir}/lib/asterisk/sounds/letters/ + mv ${WORKDIR}/letters ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/silence + #install -m 644 ${WORKDIR}/silence/* ${D}${localstatedir}/lib/asterisk/sounds/silence/ + mv ${WORKDIR}/silence ${D}${localstatedir}/lib/asterisk/sounds/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-core-sounds-en-g729_1.4.7.bb b/packages/asterisk/asterisk-core-sounds-en-g729_1.4.7.bb new file mode 100644 index 0000000000..205c8ff067 --- /dev/null +++ b/packages/asterisk/asterisk-core-sounds-en-g729_1.4.7.bb @@ -0,0 +1,46 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-core-sounds-en-g729-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + #install -m 644 ${WORKDIR}/*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/CREDITS* ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/core-sounds-en.txt ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/dictate + #install -m 644 ${WORKDIR}/dictate/* ${D}${localstatedir}/lib/asterisk/sounds/dictate/ + mv ${WORKDIR}/dictate ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/digits + #install -m 644 ${WORKDIR}/digits/* ${D}${localstatedir}/lib/asterisk/sounds/digits/ + mv ${WORKDIR}/digits ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/followme + #install -m 644 ${WORKDIR}/followme/* ${D}${localstatedir}/lib/asterisk/sounds/followme/ + mv ${WORKDIR}/followme ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/letters + #install -m 644 ${WORKDIR}/letters/* ${D}${localstatedir}/lib/asterisk/sounds/letters/ + mv ${WORKDIR}/letters ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/silence + #install -m 644 ${WORKDIR}/silence/* ${D}${localstatedir}/lib/asterisk/sounds/silence/ + mv ${WORKDIR}/silence ${D}${localstatedir}/lib/asterisk/sounds/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-core-sounds-en-gsm_1.4.7.bb b/packages/asterisk/asterisk-core-sounds-en-gsm_1.4.7.bb new file mode 100644 index 0000000000..2a46c74f84 --- /dev/null +++ b/packages/asterisk/asterisk-core-sounds-en-gsm_1.4.7.bb @@ -0,0 +1,48 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-core-sounds-en-gsm-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + #install -m 644 ${WORKDIR}/*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/CREDITS* ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/core-sounds-en.txt ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/CREDITS* ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/core-sounds-en.txt ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/dictate + #install -m 644 ${WORKDIR}/dictate/* ${D}${localstatedir}/lib/asterisk/sounds/dictate/ + mv ${WORKDIR}/dictate ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/digits + #install -m 644 ${WORKDIR}/digits/* ${D}${localstatedir}/lib/asterisk/sounds/digits/ + mv ${WORKDIR}/digits ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/followme + #install -m 644 ${WORKDIR}/followme/* ${D}${localstatedir}/lib/asterisk/sounds/followme/ + mv ${WORKDIR}/followme ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/letters + #install -m 644 ${WORKDIR}/letters/* ${D}${localstatedir}/lib/asterisk/sounds/letters/ + mv ${WORKDIR}/letters ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/silence + #install -m 644 ${WORKDIR}/silence/* ${D}${localstatedir}/lib/asterisk/sounds/silence/ + mv ${WORKDIR}/silence ${D}${localstatedir}/lib/asterisk/sounds/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-core-sounds-en-ulaw_1.4.7.bb b/packages/asterisk/asterisk-core-sounds-en-ulaw_1.4.7.bb new file mode 100644 index 0000000000..c29ae60f99 --- /dev/null +++ b/packages/asterisk/asterisk-core-sounds-en-ulaw_1.4.7.bb @@ -0,0 +1,46 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-core-sounds-en-ulaw-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + #install -m 644 ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/CREDITS* ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/core-sounds-en.txt ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/dictate + #install -m 644 ${WORKDIR}/dictate/* ${D}${localstatedir}/lib/asterisk/sounds/dictate/ + mv ${WORKDIR}/dictate ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/digits + #install -m 644 ${WORKDIR}/digits/* ${D}${localstatedir}/lib/asterisk/sounds/digits/ + mv ${WORKDIR}/digits ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/followme + #install -m 644 ${WORKDIR}/followme/* ${D}${localstatedir}/lib/asterisk/sounds/followme/ + mv ${WORKDIR}/followme ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/letters + #install -m 644 ${WORKDIR}/letters/* ${D}${localstatedir}/lib/asterisk/sounds/letters/ + mv ${WORKDIR}/letters ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/silence + #install -m 644 ${WORKDIR}/silence/* ${D}${localstatedir}/lib/asterisk/sounds/silence/ + mv ${WORKDIR}/silence ${D}${localstatedir}/lib/asterisk/sounds/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-extra-sounds-en-alaw_1.4.6.bb b/packages/asterisk/asterisk-extra-sounds-en-alaw_1.4.6.bb new file mode 100644 index 0000000000..f18d46258f --- /dev/null +++ b/packages/asterisk/asterisk-extra-sounds-en-alaw_1.4.6.bb @@ -0,0 +1,37 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-extra-sounds-en-alaw-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + # HACK: moving the files in chunkes (too many of them) + rm ${WORKDIR}/conf-thereare.alaw + rm ${WORKDIR}/invalid.alaw + mv ${WORKDIR}/[a-d]*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/[e-l]*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/ha + #install -m 644 ${WORKDIR}/ha/* ${D}${localstatedir}/lib/asterisk/sounds/ha/ + mv ${WORKDIR}/ha ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/wx + #install -m 644 ${WORKDIR}/wx/* ${D}${localstatedir}/lib/asterisk/sounds/wx/ + mv ${WORKDIR}/wx ${D}${localstatedir}/lib/asterisk/sounds +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-extra-sounds-en-g729_1.4.6.bb b/packages/asterisk/asterisk-extra-sounds-en-g729_1.4.6.bb new file mode 100644 index 0000000000..48fabbbdc4 --- /dev/null +++ b/packages/asterisk/asterisk-extra-sounds-en-g729_1.4.6.bb @@ -0,0 +1,37 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-extra-sounds-en-g729-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + # HACK: moving the files in chunks (too many files) + rm ${WORKDIR}/conf-thereare.g729 + rm ${WORKDIR}/invalid.g729 + mv ${WORKDIR}/[a-d]*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/[e-l]*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/*.g729 ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/ha + #install -m 644 ${WORKDIR}/ha/* ${D}${localstatedir}/lib/asterisk/sounds/ha/ + mv ${WORKDIR}/ha ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/wx + #install -m 644 ${WORKDIR}/wx/* ${D}${localstatedir}/lib/asterisk/sounds/wx/ + mv ${WORKDIR}/wx ${D}${localstatedir}/lib/asterisk/sounds +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-extra-sounds-en-gsm_1.4.6.bb b/packages/asterisk/asterisk-extra-sounds-en-gsm_1.4.6.bb new file mode 100644 index 0000000000..da463391b1 --- /dev/null +++ b/packages/asterisk/asterisk-extra-sounds-en-gsm_1.4.6.bb @@ -0,0 +1,37 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-extra-sounds-en-gsm-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + # HACK: moving the files in chunks (too many files) + rm ${WORKDIR}/conf-thereare.gsm + rm ${WORKDIR}/invalid.gsm + mv ${WORKDIR}/[a-d]*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/[e-l]*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/*.gsm ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/ha + #install -m 644 ${WORKDIR}/ha/* ${D}${localstatedir}/lib/asterisk/sounds/ha/ + mv ${WORKDIR}/ha ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/wx + #install -m 644 ${WORKDIR}/wx/* ${D}${localstatedir}/lib/asterisk/sounds/wx/ + mv ${WORKDIR}/wx ${D}${localstatedir}/lib/asterisk/sounds +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-extra-sounds-en-ulaw_1.4.6.bb b/packages/asterisk/asterisk-extra-sounds-en-ulaw_1.4.6.bb new file mode 100644 index 0000000000..6a6f3f5fba --- /dev/null +++ b/packages/asterisk/asterisk-extra-sounds-en-ulaw_1.4.6.bb @@ -0,0 +1,37 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-extra-sounds-en-ulaw-${PV}.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/sounds + # HACK: moving the files in chunkes (too many of them) + rm ${WORKDIR}/conf-thereare.ulaw + rm ${WORKDIR}/invalid.ulaw + mv ${WORKDIR}/[a-d]*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/[e-l]*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + mv ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + #install -m 644 ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/sounds/ + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/ha + #install -m 644 ${WORKDIR}/ha/* ${D}${localstatedir}/lib/asterisk/sounds/ha/ + mv ${WORKDIR}/ha ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/phonetic + #install -m 644 ${WORKDIR}/phonetic/* ${D}${localstatedir}/lib/asterisk/sounds/phonetic/ + mv ${WORKDIR}/phonetic ${D}${localstatedir}/lib/asterisk/sounds + + #install -d ${D}${localstatedir}/lib/asterisk/sounds/wx + #install -m 644 ${WORKDIR}/wx/* ${D}${localstatedir}/lib/asterisk/sounds/wx/ + mv ${WORKDIR}/wx ${D}${localstatedir}/lib/asterisk/sounds +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/sounds/ +} + + diff --git a/packages/asterisk/asterisk-moh-freeplay-alaw_0.0.0.bb b/packages/asterisk/asterisk-moh-freeplay-alaw_0.0.0.bb new file mode 100644 index 0000000000..96c662444e --- /dev/null +++ b/packages/asterisk/asterisk-moh-freeplay-alaw_0.0.0.bb @@ -0,0 +1,22 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-moh-freeplay-alaw.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/moh + #install -m 644 ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/moh/ + #install -m 644 ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ + mv ${WORKDIR}/*.alaw ${D}${localstatedir}/lib/asterisk/moh/ + mv ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/moh/ +} + + diff --git a/packages/asterisk/asterisk-moh-freeplay-g729_0.0.0.bb b/packages/asterisk/asterisk-moh-freeplay-g729_0.0.0.bb new file mode 100644 index 0000000000..581e6bf84f --- /dev/null +++ b/packages/asterisk/asterisk-moh-freeplay-g729_0.0.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-moh-freeplay-g729.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/moh + install -m 644 ${WORKDIR}/*.g729 ${D}${localstatedir}/lib/asterisk/moh/ + install -m 644 ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/moh/ +} + + diff --git a/packages/asterisk/asterisk-moh-freeplay-gsm_0.0.0.bb b/packages/asterisk/asterisk-moh-freeplay-gsm_0.0.0.bb new file mode 100644 index 0000000000..e45c3eec4e --- /dev/null +++ b/packages/asterisk/asterisk-moh-freeplay-gsm_0.0.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-moh-freeplay-gsm.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/moh + install -m 644 ${WORKDIR}/*.gsm ${D}${localstatedir}/lib/asterisk/moh/ + install -m 644 ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/moh/ +} + + diff --git a/packages/asterisk/asterisk-moh-freeplay-ulaw_0.0.0.bb b/packages/asterisk/asterisk-moh-freeplay-ulaw_0.0.0.bb new file mode 100644 index 0000000000..e0e0293c34 --- /dev/null +++ b/packages/asterisk/asterisk-moh-freeplay-ulaw_0.0.0.bb @@ -0,0 +1,22 @@ +DESCRIPTION="The Asterisk open source software PBX" +HOMEPAGE="http://www.asterisk.org" +SECTION = "voip" +LICENSE="GPL" +#DEPENDS="asterisk" +#PR = "r1" + +SRC_URI="http://downloads.digium.com/pub/telephony/sounds/releases/asterisk-moh-freeplay-ulaw.tar.gz" + +do_install() { + install -d ${D}${localstatedir}/lib/asterisk/moh + #install -m 644 ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/moh/ + #install -m 644 ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ + mv ${WORKDIR}/*.ulaw ${D}${localstatedir}/lib/asterisk/moh/ + mv ${WORKDIR}/LICENSE-* ${D}${localstatedir}/lib/asterisk/moh/ +} + +pkg_postinst_prepend() { + chown -R asterisk:asterisk ${localstatedir}/lib/asterisk/moh/ +} + + diff --git a/packages/asterisk/asterisk_1.4.17.bb b/packages/asterisk/asterisk_1.4.17.bb new file mode 100644 index 0000000000..fb64581364 --- /dev/null +++ b/packages/asterisk/asterisk_1.4.17.bb @@ -0,0 +1,171 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +DESCRIPTION = "The Asterisk open source software PBX" +HOMEPAGE = "http://www.asterisk.org" +SECTION = "voip" +LICENSE = "GPLv2" +PRIORITY = "optional" +SECTION = "console/telephony" +DEPENDS = "speex readline zlib openssl curl popt gnutls sqlite libogg libvorbis" +#RRECOMMENDS_${PN} = "logrotate" +PR = "r0" + + +SRC_URI="http://ftp.digium.com/pub/asterisk/releases/asterisk-${PV}.tar.gz\ + file://sounds.xml.patch;patch=1\ + file://Makefile.patch;patch=1\ + file://logrotate \ + file://volatiles \ + file://init" + +ARCH_efika="ppc" +ARCH_dht-walnut="ppc" +ARCH_magicbox="ppc" +ARCH_sequoia="ppc" + + + + +INITSCRIPT_NAME = "asterisk" +INITSCRIPT_PARAMS = "defaults 60" + +inherit autotools update-rc.d + +EXTRA_OECONF = "--with-ssl=${STAGING_DIR}/${TARGET_SYS}\ + --with-z=${STAGING_DIR}/${TARGET_SYS}\ + --with-curl=${STAGING_DIR}/${TARGET_SYS}\ + --with-termcap=${STAGING_DIR}/${TARGET_SYS}\ + --with-ogg=${STAGING_DIR}/${TARGET_SYS}\ + --with-vorbis=${STAGING_DIR}/${TARGET_SYS}\ + --with-sqlite=${STAGING_DIR}/${TARGET_SYS}\ + --with-popt=${STAGING_DIR}/${TARGET_SYS}\ + --with-gnutls=${STAGING_DIR}/${TARGET_SYS}\ + --without-curses\ + --with-ncurses=${STAGING_DIR}/${TARGET_SYS}\ + --without-imap\ + --without-netsnmp\ + --without-odbc\ + --without-osptk\ + --without-nbs\ + --without-pwlib\ + --without-radius\ + --without-tds\ + --without-postgres\ + --without-zaptel\ + " + +#export NOISY_BUILD=yes + +export ASTCFLAGS = "-fsigned-char -I${STAGING_INCDIR} -DPATH_MAX=4096" +export ASTLDFLAGS="${LDFLAGS} -lpthread -ldl -lresolv " +export PROC="${ARCH}" + +do_configure_prepend () { + sed -i 's:/var:${localstatedir}:' ${WORKDIR}/logrotate + sed -i 's:/etc/init.d:${sysconfdir}/init.d:' ${WORKDIR}/logrotate + sed -i 's:/var:${localstatedir}:' ${WORKDIR}/volatiles +} + +do_configure () { + # Looks like rebuilding configure doesn't work, so we are skipping + # that and are just using the shipped one + gnu-configize + libtoolize --force + oe_runconf +} + + +do_compile() { + ( + #make sure that menuselect gets build using host toolchain + unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS + cd menuselect + ./configure + oe_runmake + cd ../ + ) || exit 1 + oe_runmake +} + + + + +do_install_append() { + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/asterisk + install -c -D -m 644 ${WORKDIR}/logrotate ${D}${sysconfdir}/logrotate.d/asterisk + install -c -D -m 644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/asterisk +} + +pkg_postinst_prepend() { + grep -q asterisk ${sysconfdir}/group || addgroup --system asterisk + grep -q asterisk ${sysconfdir}/passwd || adduser --system --home ${localstatedir}/run/asterisk --no-create-home --disabled-password --ingroup asterisk -s ${base_bindir}/false asterisk + chown -R asterisk:asterisk ${libdir}/asterisk ${localstatedir}/lib/asterisk ${localstatedir}/spool/asterisk ${localstatedir}/log/asterisk ${localstatedir}/run/asterisk ${sysconfdir}/asterisk +} + +FILES_${PN} += "${libdir}/asterisk/modules/*" +FILES_${PN}-dbg += "${libdir}/asterisk/modules/.debug \ + ${localstatedir}/lib/asterisk/*/.debug" + +CONFFILES_${PN} += "${sysconfdir}/asterisk/adsi.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/adtranvofr.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/agents.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/alarmreceiver.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/alsa.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/amd.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/asterisk.adsi" +CONFFILES_${PN} += "${sysconfdir}/asterisk/asterisk.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr_custom.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr_manager.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr_odbc.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr_pgsql.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/cdr_tds.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/codecs.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/dnsmgr.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/dundi.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/enum.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/extconfig.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/extensions.ael" +CONFFILES_${PN} += "${sysconfdir}/asterisk/extensions.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/features.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/festival.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/followme.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/func_odbc.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/gtalk.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/h323.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/http.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/iax.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/iaxprov.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/indications.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/jabber.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/logger.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/manager.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/meetme.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/mgcp.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/misdn.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/modules.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/musiconhold.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/muted.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/osp.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/oss.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/phone.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/privacy.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/queues.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/res_odbc.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/res_snmp.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/rpt.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/rtp.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/say.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/sip.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/sip_notify.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/skinny.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/sla.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/smdi.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/telcordia-1.adsi" +CONFFILES_${PN} += "${sysconfdir}/asterisk/udptl.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/users.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/voicemail.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/vpb.conf" +CONFFILES_${PN} += "${sysconfdir}/asterisk/zapata.conf" +CONFFILES_${PN} += "${sysconfdir}/logrotate.d/asterisk" diff --git a/packages/atk/atk.inc b/packages/atk/atk.inc index e47a431e5c..5f81cdf67e 100644 --- a/packages/atk/atk.inc +++ b/packages/atk/atk.inc @@ -1,13 +1,14 @@ -DEPENDS = "glib-2.0 gtk-doc-native" DESCRIPTION = "An accessibility toolkit for GNOME." SECTION = "x11/libs" PRIORITY = "optional" LICENSE = "LGPL" +DEPENDS = "glib-2.0 gtk-doc-native" + inherit autotools pkgconfig EXTRA_OECONF = "--disable-glibtest" -CFLAGS_append = " -I${STAGING_INCDIR}/glib-2.0 \ - -I${STAGING_INCDIR}/glib-2.0/glib \ - -I${STAGING_INCDIR}/glib-2.0/gobject" +do_stage () { + autotools_stage_all +} diff --git a/packages/atk/atk_1.18.0.bb b/packages/atk/atk_1.18.0.bb new file mode 100644 index 0000000000..116d8cabff --- /dev/null +++ b/packages/atk/atk_1.18.0.bb @@ -0,0 +1,8 @@ +require atk.inc + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/atk/1.18/atk-${PV}.tar.bz2" + +do_stage () { + oe_libinstall -so -C atk libatk-1.0 ${STAGING_LIBDIR} + autotools_stage_includes +} diff --git a/packages/atk/atk_1.19.3.bb b/packages/atk/atk_1.19.3.bb index 52136682d7..28adc02ea9 100644 --- a/packages/atk/atk_1.19.3.bb +++ b/packages/atk/atk_1.19.3.bb @@ -2,7 +2,13 @@ require atk.inc SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/atk/1.19/atk-${PV}.tar.bz2" +CFLAGS_append = "\ + -I${STAGING_INCDIR}/glib-2.0 \ + -I${STAGING_INCDIR}/glib-2.0/glib \ + -I${STAGING_INCDIR}/glib-2.0/gobject \ + " + do_stage () { - oe_libinstall -so -C atk libatk-1.0 ${STAGING_LIBDIR} - autotools_stage_includes + oe_libinstall -so -C atk libatk-1.0 ${STAGING_LIBDIR} + autotools_stage_includes } diff --git a/packages/atk/atk_1.20.0.bb b/packages/atk/atk_1.20.0.bb index a909e0eb61..bb64492337 100644 --- a/packages/atk/atk_1.20.0.bb +++ b/packages/atk/atk_1.20.0.bb @@ -1,16 +1,6 @@ -DESCRIPTION = "An accessibility toolkit for GNOME." -SECTION = "x11/libs" -PRIORITY = "optional" -LICENSE = "LGPL" - -DEPENDS = "glib-2.0 gtk-doc-native" +require atk.inc SRC_URI = "http://download.gnome.org/sources/atk/1.20/${PN}-${PV}.tar.bz2" -inherit autotools pkgconfig -EXTRA_OECONF = "--disable-glibtest" -do_stage () { - autotools_stage_all -} diff --git a/packages/avetanabt/avetanabt_20060413.bb b/packages/avetanabt/avetanabt_20060413.bb index 54e3d845bb..5b408e6a71 100644 --- a/packages/avetanabt/avetanabt_20060413.bb +++ b/packages/avetanabt/avetanabt_20060413.bb @@ -1,6 +1,6 @@ DESCRIPTION = "avetanaBT: Bluetooth API implementation for Java (JSR-82)" SECTION = "devel" -DEPENDS = "findutils-native jikes-native kaffeh-native fastjar-native bluez-libs classpath" +DEPENDS = "findutils-native virtual/javac-native kaffeh-native fastjar-native bluez-libs classpath" LICENSE = "GPL" HOMEPAGE = "http://sourceforge.net/projects/avetanabt/" @@ -22,9 +22,8 @@ do_compile() { rm -fr build/* # generate classes - # javac -> jikes ${STAGING_BINDIR_NATIVE}/find {de,javax,com} -iname *.java > file.list - ${STAGING_BINDIR_NATIVE}/jikes -verbose --bootclasspath ${STAGING_DATADIR_NATIVE}/kaffeh/rt.jar -d build @file.list + ${STAGING_BINDIR_NATIVE}/javac -verbose -bootclasspath ${STAGING_DATADIR_NATIVE}/kaffeh/rt.jar -d build @file.list # create own version.xml (add version information available at runtime) head -n 4 version.xml >> build/version.xml diff --git a/packages/avetanabt/avetanabt_cvs.bb b/packages/avetanabt/avetanabt_cvs.bb index a8f795989b..08fe2e9b82 100644 --- a/packages/avetanabt/avetanabt_cvs.bb +++ b/packages/avetanabt/avetanabt_cvs.bb @@ -1,6 +1,6 @@ DESCRIPTION = "avetanaBT: Bluetooth API implementation for Java (JSR-82)" SECTION = "devel" -DEPENDS = "findutils-native jikes-native kaffeh-native fastjar-native bluez-libs classpath" +DEPENDS = "findutils-native virtual/javac-native kaffeh-native fastjar-native bluez-libs classpath" LICENSE = "GPL" HOMEPAGE = "http://sourceforge.net/projects/avetanabt/" @@ -25,9 +25,8 @@ do_compile() { rm -fr build/* # generate classes - # javac -> jikes ${STAGING_BINDIR_NATIVE}/find {de,javax,com} -iname *.java > file.list - ${STAGING_BINDIR_NATIVE}/jikes -verbose --bootclasspath ${STAGING_DATADIR_NATIVE}/kaffeh/rt.jar -d build @file.list + ${STAGING_BINDIR_NATIVE}/javac -verbose -bootclasspath ${STAGING_DATADIR_NATIVE}/kaffeh/rt.jar -d build @file.list # create own version.xml (add version information available at runtime) head -n 4 version.xml >> build/version.xml diff --git a/packages/jamvm/jamvm/.mtn2git_empty b/packages/base-files/base-files/openprotium/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/jamvm/jamvm/.mtn2git_empty +++ b/packages/base-files/base-files/openprotium/.mtn2git_empty diff --git a/packages/base-files/base-files/openprotium/fstab b/packages/base-files/base-files/openprotium/fstab new file mode 100644 index 0000000000..96b0e2adb8 --- /dev/null +++ b/packages/base-files/base-files/openprotium/fstab @@ -0,0 +1,11 @@ +rootfs / auto defaults 1 1 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts mode=0620,gid=5 0 0 +usbfs /proc/bus/usb usbfs defaults 0 0 +#tmpfs /var/volatile tmpfs defaults 0 0 +tmpfs /dev/shm tmpfs mode=0777 0 0 +#tmpfs /media/ram tmpfs defaults 0 0 + +# uncomment this if your device has a SD/MMC/Transflash slot +#/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0 + diff --git a/packages/cacao/cacao-cldc.inc b/packages/cacao/cacao-cldc.inc new file mode 100644 index 0000000000..86df369a32 --- /dev/null +++ b/packages/cacao/cacao-cldc.inc @@ -0,0 +1,64 @@ +DESCRIPTION = "Cacao-cldc is a Java Virtual Machine, which uses MIDPath CLDC as default Java core library" +HOMEPAGE = "http://www.cacaojvm.org/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "interpreters" + +DEPENDS = "zlib libtool classpath midpath-cldc cacaoh-cldc-native virtual/javac-native" + +# Avoid version number here, otherwise dpkg will expect a package name +# and cannot be satisfied with a package that provides classpath. +RDEPENDS = "midpath-cldc" + +PROVIDES = "cacao-cldc virtual/java-cldc" +RPROVIDES_cacao-cldc = "java-cldc-runtime" + +inherit autotools update-alternatives + +EXTRA_OECONF = "\ + ${@['','--enable-softfloat'][bb.data.getVar('TARGET_FPU',d,1) == 'soft']} \ + --enable-debug \ + --enable-jni \ + --disable-libjvm \ + --enable-java=cldc1.1 \ + --with-classpath=cldc1.1 \ + --with-classpath-classes=${STAGING_DATADIR}/midpath-cldc/midpath-cldc1.1.jar \ + --with-target-classpath-classes=${datadir}/midpath-cldc/midpath-cldc1.1.jar \ + --with-cacaoh=${STAGING_BINDIR_NATIVE}/cacaoh-cldc-${PV} \ + --with-classpath-libdir=${STAGING_LIBDIR}/classpath \ + --with-classpath-includedir=${STAGING_INCDIR}/classpath \ + --with-vm-zip=${datadir}/cacao-cldc/vm.zip \ + --libdir=${libdir}/cacao-cldc \ + --program-suffix=-cldc \ + " + +S = "${WORKDIR}/cacao-${PV}" + +PACKAGES = "${PN} ${PN}-doc ${PN}-dbg" + +FILES_${PN} = "${bindir}/${PN} ${libdir}/lib*.so* ${datadir}/${PN}" +FILES_${PN}-doc = "${datadir}/man" +FILES_${PN}-dbg = "${bindir}/.debug ${libdir}/.debug/lib*.so*" + +ALTERNATIVE_NAME = "java-cldc" +ALTERNATIVE_LINK = "${bindir}/${ALTERNATIVE_NAME}" +ALTERNATIVE_PATH = "${bindir}/cacao-cldc" +ALTERNATIVE_PRIORITY = "10" + +do_configure_prepend() { + # Replaces the placeholder OE_LIBDIR_JNI with the JNI library directory + # configured in OE. + if [ -e src/vm/properties.c ]; then + sed -i -e "s|OE_LIBDIR_JNI|${libdir}/jni|" src/vm/properties.c + fi + + if [ -e src/vm/properties.c ]; then + sed -i -e "s|OE_LIBDIR_JNI|${libdir}/jni|" src/vm/vm.c + fi +} + +do_configure_append() { + # Fix the executable name in the wrapper script. + sed -i -e "s|exec cacao|exec cacao-cldc|" src/scripts/java.in +} + diff --git a/packages/cacao/cacao-cldc_0.98.bb b/packages/cacao/cacao-cldc_0.98.bb index 0f6af678f5..f5a48c40a9 100644 --- a/packages/cacao/cacao-cldc_0.98.bb +++ b/packages/cacao/cacao-cldc_0.98.bb @@ -1,35 +1,17 @@ +# Compatible with GNU Classpath 0.95 only! -require cacao.inc +require cacao-cldc.inc -SRC_URI +="file://midpath.patch;patch=1 \ - file://offsets_make.patch;patch=1 \ - file://classpath_var.patch;patch=1 \ - file://libmath.patch;patch=1 \ - file://arm_mmap.patch;patch=1 \ - " -SRC_URI_append_arm = "file://offset.h_arm.patch;patch=1" - -DEPENDS = "cacaoh-cldc-native ecj-native classpath-minimal-native virtual/cldc-api-1.1 libtool zlib" -RDEPENDS = "virtual/cldc-api-1.1 libltdl" -RPROVIDES = "virtual/java" +PR = "r1" -EXTRA_OECONF += "--with-classpath-libdir=${STAGING_DATADIR}/classpath-minimal \ - --with-classpath-includedir=${STAGING_INCDIR}/classpath-minimal \ - --enable-jni \ - --enable-java=cldc1.1 \ - --with-classpath=cldc1.1 \ - --with-classpath-classes=${STAGING_DATADIR}/java/cldc1.1.jar \ - --with-target-classpath-classes=${datadir}/java/cldc1.1.jar \ - --with-cacaoh=${STAGING_BINDIR_NATIVE}/cacaoh \ - --disable-libjvm \ - " +SRC_URI += "\ + http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2;md5sum=8b8907c8b925761c9410bcadb9705346 \ + file://midpath.patch;patch=1 \ + file://offsets_make.patch;patch=1 \ + file://classpath_var.patch;patch=1 \ + file://libmath.patch;patch=1 \ + file://arm_mmap.patch;patch=1 \ + " -PACKAGES = "${PN} ${PN}-doc ${PN}-dbg" - -FILES_${PN} = "${bindir}/cacao" -FILES_${PN}-doc = "${datadir}/man" -FILES_${PN}-dbg = "${bindir}/.debug" +SRC_URI_append_arm = "file://offset.h_arm.patch;patch=1" -ALTERNATIVE_NAME = "java" -ALTERNATIVE_PATH = "${bindir}/cacao" -ALTERNATIVE_PRIORITY = "10" diff --git a/packages/cacao/cacao-initial_0.98.bb b/packages/cacao/cacao-initial_0.98.bb new file mode 100644 index 0000000000..08abf41c33 --- /dev/null +++ b/packages/cacao/cacao-initial_0.98.bb @@ -0,0 +1,34 @@ +require cacao-native.inc + +PROVIDES = "virtual/java-initial" + +DEPENDS = "zlib-native libtool-native fastjar-native classpath-initial jikes-initial" + +PR = "r0" + +SRC_URI = "\ + http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2; \ + file://cacao-0.98-initial.patch;patch=1;pnum=1 \ + " + +# libjvm disabled - it would conflict with cacao-native installations +EXTRA_OECONF = "\ + --enable-debug \ + --with-classpath-libdir=${libdir} \ + --with-classpath-includedir=${includedir}/classpath-initial \ + --with-classpath-classes=${datadir}/classpath-initial/glibj.zip \ + --with-vm-zip=${datadir}/cacao-initial/vm.zip \ + --program-suffix=-initial \ + --disable-libjvm \ + " + +# enforces the usage of jikes-initial +export JAVAC=jikes-initial + +# enforces the usage of fastjar +export JAR=fastjar + +do_configure_append() { + # Fix the executable name in the wrapper script. + sed -i -e "s|exec cacao|exec cacao-initial|" src/scripts/java.in +} diff --git a/packages/cacao/cacao-native.inc b/packages/cacao/cacao-native.inc new file mode 100644 index 0000000000..26d3d37f58 --- /dev/null +++ b/packages/cacao/cacao-native.inc @@ -0,0 +1,27 @@ +DESCRIPTION = "CacaoVM for use as OpenEmbedded's Java VM" +HOMEPAGE = "http://www.cacaojvm.org/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "interpreters" + +DEPENDS = "zlib-native libtool-native classpath-native ecj-initial fastjar-native" + +PROVIDES = "virtual/java-native" + +S = "${WORKDIR}/cacao-${PV}" + +inherit native autotools + +EXTRA_OECONF = "\ + --enable-debug \ + --with-classpath-libdir=${libdir} \ + --with-classpath-includedir=${includedir}/classpath \ + --with-classpath-classes=${datadir}/classpath/glibj.zip \ + --with-vm-zip=${datadir}/cacao/vm.zip \ + " + +# force usage of ecj-initial (but Java5-compatible class library) +export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath/glibj.zip" + +# force usage of fastjar +export JAR=fastjar diff --git a/packages/cacao/cacao-native_0.98+hg20071001.bb b/packages/cacao/cacao-native_0.98+hg20071001.bb new file mode 100644 index 0000000000..409d2c7858 --- /dev/null +++ b/packages/cacao/cacao-native_0.98+hg20071001.bb @@ -0,0 +1,5 @@ +require cacao-native.inc + +PR = "r1" + +SRC_URI = "http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518" diff --git a/packages/cacao/cacao.inc b/packages/cacao/cacao.inc index 9315babfb9..cc107abf27 100644 --- a/packages/cacao/cacao.inc +++ b/packages/cacao/cacao.inc @@ -1,16 +1,52 @@ -DESCRIPTION = "cacao is a Java Virtual Machine, which uses GNU Classpath as default Java core library" +DESCRIPTION = "Cacao is a Java Virtual Machine, which uses GNU Classpath as default Java core library" HOMEPAGE = "http://www.cacaojvm.org/" LICENSE = "GPL" PRIORITY = "optional" SECTION = "interpreters" -PR = "r1" -inherit autotools +DEPENDS = "zlib libtool classpath cacaoh-native virtual/javac-native" -SRC_URI = "http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-0.98/cacao-${PV}.tar.bz2;md5sum=8b8907c8b925761c9410bcadb9705346" +# Avoid version number here, otherwise dpkg will expect a package name +# and cannot be satisfied with a package that provides classpath. +RDEPENDS = "classpath" -S = "${WORKDIR}/cacao-${PV}" +PROVIDES = "cacao virtual/java" +RPROVIDES_cacao = "java2-runtime" + +inherit autotools update-alternatives + +EXTRA_OECONF = "\ + ${@['','--enable-softfloat'][bb.data.getVar('TARGET_FPU',d,1) == 'soft']} \ + --enable-debug \ + --with-cacaoh=${STAGING_BINDIR_NATIVE}/cacaoh-${PV} \ + --with-classpath-libdir=${STAGING_LIBDIR}/classpath \ + --with-classpath-includedir=${STAGING_INCDIR}/classpath \ + --with-classpath-classes=${STAGING_DATADIR}/classpath/glibj.zip \ + --with-target-classpath-classes=${datadir}/classpath/glibj.zip \ + --with-vm-zip=${datadir}/cacao/vm.zip \ + --with-classpath-libdir=${libdir} \ + " + +PACKAGES = "${PN} ${PN}-doc ${PN}-dbg" + +FILES_${PN} = "${bindir}/${PN} ${libdir}/lib*.so* ${datadir}/${PN}" +FILES_${PN}-doc = "${datadir}/man" +FILES_${PN}-dbg = "${bindir}/.debug ${libdir}/.debug/lib*.so*" + +ALTERNATIVE_NAME = "java" +ALTERNATIVE_LINK = "${bindir}/${ALTERNATIVE_NAME}" +ALTERNATIVE_PATH = "${bindir}/cacao" +ALTERNATIVE_PRIORITY = "10" + +do_configure_prepend() { + # Replaces the placeholder OE_LIBDIR_JNI with the JNI library directory + # configured in OE. + if [ -e src/vm/properties.c ]; then + sed -i -e "s|OE_LIBDIR_JNI|${libdir}/jni|" src/vm/properties.c + fi + + if [ -e src/vm/properties.c ]; then + sed -i -e "s|OE_LIBDIR_JNI|${libdir}/jni|" src/vm/vm.c + fi +} -EXTRA_OECONF = "--disable-debug \ - ${@['','--enable-softfloat'][bb.data.getVar('TARGET_FPU',d,1) == 'soft']} \ - " diff --git a/packages/cacao/cacao_0.98+hg20071001.bb b/packages/cacao/cacao_0.98+hg20071001.bb new file mode 100644 index 0000000000..65203189b4 --- /dev/null +++ b/packages/cacao/cacao_0.98+hg20071001.bb @@ -0,0 +1,22 @@ +require cacao.inc + +PR = "r6" + +SRC_URI = "\ + http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518 \ + file://cacao-0.98+svn-libdir.diff;patch=1 \ + file://cacao-0.98+svn-classpath_var.patch;patch=1 \ + file://cacao-0.98+hg-arm-cacheflush-workaround.patch;patch=1 \ + file://cacao-0.98+hg-attachthread.patch;patch=1 \ + " + +EXTRA_OECONF += "\ + --enable-annotations \ + " + +# Quirks for Nokia N800: +# - with mfloat-abi=softfp the runtime fails to run anything +# - without --enable-softfloat it cannot find files within Jars +TARGET_CC_ARCH_nokia800 = "-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=soft" + +EXTRA_OECONF_append_nokia800 = "--enable-softfloat" diff --git a/packages/cacao/cacaoh-cldc-native_0.98.bb b/packages/cacao/cacaoh-cldc-native_0.98.bb index 7ea7cad5dd..e2c92cc328 100644 --- a/packages/cacao/cacaoh-cldc-native_0.98.bb +++ b/packages/cacao/cacaoh-cldc-native_0.98.bb @@ -1,16 +1,19 @@ +require cacaoh-native.inc -require cacao.inc +DEPENDS += "midpath-cldc-native" -DEPENDS = "ecj-native classpath-minimal-native virtual/cldc-api-1.1-native libtool-native zlib-native" +SRC_URI = "\ + http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2;md5sum=8b8907c8b925761c9410bcadb9705346 \ + " -inherit native - -EXTRA_OECONF += "--with-classpath-includedir=${STAGING_INCDIR}/classpath-minimal \ - --enable-jni \ - --enable-java=cldc1.1 \ - --with-classpath=cldc1.1 \ - --with-classpath-classes=${STAGING_DATADIR}/java/cldc1.1.jar \ - " +EXTRA_OECONF += "\ + --with-classpath-includedir=${STAGING_INCDIR}/classpath \ + --enable-jni \ + --enable-java=cldc1.1 \ + --with-classpath=cldc1.1 \ + --with-classpath-classes=${STAGING_DATADIR}/midpath-cldc/midpath-cldc1.1.jar \ +" + do_stage() { - install -m 0755 src/cacaoh/.libs/cacaoh ${STAGING_BINDIR}/ + install -m 0755 src/cacaoh/.libs/cacaoh ${STAGING_BINDIR}/cacaoh-cldc-${PV} } diff --git a/packages/cacao/cacaoh-native.inc b/packages/cacao/cacaoh-native.inc new file mode 100644 index 0000000000..3e7fdd60c6 --- /dev/null +++ b/packages/cacao/cacaoh-native.inc @@ -0,0 +1,27 @@ +DESCRIPTION = "Header generator for Cacao JVM - Needed for cross-compilation builds" +HOMEPAGE = "http://www.cacaojvm.org/" +LICENSE = "GPL" + +DEPENDS = "libtool-native zlib-native virtual/javac-native classpath-native" + +S = "${WORKDIR}/cacao-${PV}" + +PR = "r1" + +inherit autotools native + +EXTRA_OECONF = " \ + --with-classpath-includedir=${STAGING_INCDIR}/classpath \ + --with-classpath-classes=${STAGING_DATADIR}/classpath/glibj.zip \ + " + +do_compile() { + # Compile the header generator only (and what is needed for it). + oe_runmake -C src/toolbox libtoolbox.la + oe_runmake -C src/vmcore libvmcore.la + oe_runmake -C src/cacaoh cacaoh +} + +do_stage() { + install -m 0755 src/cacaoh/.libs/cacaoh ${STAGING_BINDIR}/cacaoh-${PV} +} diff --git a/packages/cacao/cacaoh-native_0.98+hg20071001.bb b/packages/cacao/cacaoh-native_0.98+hg20071001.bb new file mode 100644 index 0000000000..cb552df827 --- /dev/null +++ b/packages/cacao/cacaoh-native_0.98+hg20071001.bb @@ -0,0 +1,5 @@ +require cacaoh-native.inc + +SRC_URI = "http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518" + + diff --git a/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch new file mode 100644 index 0000000000..813cb683f6 --- /dev/null +++ b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-workaround.patch @@ -0,0 +1,50 @@ +Index: cacao-0.98+hg7750/src/vm/jit/arm/asmpart.S +=================================================================== +--- cacao-0.98+hg7750.orig/src/vm/jit/arm/asmpart.S 2007-11-28 10:14:51.000000000 +0100 ++++ cacao-0.98+hg7750/src/vm/jit/arm/asmpart.S 2007-11-28 10:15:31.000000000 +0100 +@@ -302,35 +302,21 @@ + * * + *******************************************************************************/ + +-.equ sys_cacheflush,__ARM_NR_cacheflush /* syscall number for cache flushing */ +- ++.equ sys_cacheflush, 0x9f0002 + asm_cacheflush: +- add a1, a0, a1 +- mov a2, #0 +- +-#if defined(__ARM_EABI__) +- /* According to EABI, the syscall number should be passed via R7, +- see "http://wiki.debian.org/ArmEabiPort" for additional details. */ +- +- stmfd sp!, {r7} +- mov r7, #0x0f0000 +- add r7, r7, #0x000002 +-#endif ++ add a1, a0, a1 ++ mov a2, #0 + + #if 0 +- /* TWISTI: required on iyonix, maybe a linux-2.4 bug */ +- mov a0, #0x0 +- mov a1, #0xff000000 ++ /* TWISTI: required on iyonix, maybe a linux-2.4 bug */ ++ /* TODO: repeair this! */ ++ /* cacheflush is messed up beyond all repair! */ ++ mov a0, #0x0 ++ mov a1, #0xff000000 + #endif + +- swi sys_cacheflush +- +-#if defined(__ARM_EABI__) +- ldmfd sp!, {r7} +-#endif +- +- mov pc, lr +- ++ swi #sys_cacheflush ++ mov pc, lr + + /* disable exec-stacks ********************************************************/ + diff --git a/packages/cacao/files/cacao-0.98+hg-attachthread.patch b/packages/cacao/files/cacao-0.98+hg-attachthread.patch new file mode 100644 index 0000000000..cda01bcfb2 --- /dev/null +++ b/packages/cacao/files/cacao-0.98+hg-attachthread.patch @@ -0,0 +1,89 @@ +# Makes the JNI function AttachCurrentThread work properly. + +Index: cacao-0.98+hg20071001/src/mm/boehm-gc/include/gc.h +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm-gc/include/gc.h 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm-gc/include/gc.h 2008-01-15 14:46:30.000000000 +0100 +@@ -905,6 +905,8 @@ + /* in returned list. */ + extern void GC_thr_init GC_PROTO((void));/* Needed for Solaris/X86 */ + ++extern void GC_thr_init_foreign GC_PROTO((void));/* Needed for Solaris/X86 */ ++ + #endif /* THREADS && !SRC_M3 */ + + #if defined(GC_WIN32_THREADS) && !defined(__CYGWIN32__) && !defined(__CYGWIN__) +Index: cacao-0.98+hg20071001/src/mm/boehm-gc/pthread_support.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm-gc/pthread_support.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm-gc/pthread_support.c 2008-01-15 14:46:30.000000000 +0100 +@@ -864,6 +864,27 @@ + } + #endif /* GC_NETBSD_THREADS */ + ++void GC_thr_init_foreign() ++{ ++# ifndef GC_DARWIN_THREADS ++ int dummy; ++# endif ++ GC_thread t; ++ LOCK(); ++ ++ /* Add the initial thread, so we can stop it. */ ++ t = GC_new_thread(pthread_self()); ++# ifdef GC_DARWIN_THREADS ++ t -> stop_info.mach_thread = mach_thread_self(); ++# else ++ t -> stop_info.stack_ptr = (ptr_t)(&dummy); ++# endif ++ t -> flags = DETACHED; ++ ++ UNLOCK(); ++ ++} ++ + /* We hold the allocation lock. */ + void GC_thr_init() + { +Index: cacao-0.98+hg20071001/src/mm/boehm.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm.c 2008-01-15 14:46:30.000000000 +0100 +@@ -108,6 +108,10 @@ + GC_expand_hp(heapstartsize - heapcurrentsize); + } + ++void gc_init_foreign() ++{ ++ GC_thr_init_foreign(); ++} + + static void gc_ignore_warnings(char *msg, GC_word arg) + { +Index: cacao-0.98+hg20071001/src/mm/gc-common.h +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/gc-common.h 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/gc-common.h 2008-01-15 14:46:30.000000000 +0100 +@@ -74,6 +74,7 @@ + void gc_finalize_all(void); + void *gc_out_of_memory(size_t bytes_requested); + ++void gc_init_foreign(); + + /* inlined functions **********************************************************/ + +Index: cacao-0.98+hg20071001/src/threads/native/threads.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/threads/native/threads.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/threads/native/threads.c 2008-01-15 16:01:22.000000000 +0100 +@@ -1392,7 +1392,10 @@ + + /* thread is completely initialized */ + ++ gc_init_foreign(); ++ + threads_thread_state_runnable(thread); ++ threads_set_current_threadobject(thread); + + DEBUGTHREADS("attaching", thread); + diff --git a/packages/cacao/files/cacao-0.98+svn-classpath_var.patch b/packages/cacao/files/cacao-0.98+svn-classpath_var.patch new file mode 100644 index 0000000000..255281d386 --- /dev/null +++ b/packages/cacao/files/cacao-0.98+svn-classpath_var.patch @@ -0,0 +1,56 @@ +Index: cacao-trunk/src/vm/properties.c +=================================================================== +--- cacao-trunk.orig/src/vm/properties.c 2007-08-31 13:28:53.000000000 +0200 ++++ cacao-trunk/src/vm/properties.c 2007-09-03 00:36:14.000000000 +0200 +@@ -294,14 +294,14 @@ + len = + strlen(CACAO_VM_ZIP) + + strlen(":") + +- strlen(CLASSPATH_CLASSES) + ++ strlen(TARGET_CLASSPATH_CLASSES) + + strlen("0"); + + boot_class_path = MNEW(char, len); + + strcpy(boot_class_path, CACAO_VM_ZIP); + strcat(boot_class_path, ":"); +- strcat(boot_class_path, CLASSPATH_CLASSES); ++ strcat(boot_class_path, TARGET_CLASSPATH_CLASSES); + + # elif defined(WITH_CLASSPATH_SUN) + +Index: cacao-trunk/configure.ac +=================================================================== +--- cacao-trunk.orig/configure.ac 2007-08-31 13:22:03.000000000 +0200 ++++ cacao-trunk/configure.ac 2007-08-31 13:30:44.000000000 +0200 +@@ -851,6 +851,7 @@ + AC_CHECK_WITH_CLASSPATH + AC_CHECK_WITH_CLASSPATH_PREFIX + AC_CHECK_WITH_CLASSPATH_CLASSES ++AC_CHECK_WITH_TARGET_CLASSPATH_CLASSES + AC_CHECK_WITH_CLASSPATH_LIBDIR + AC_CHECK_WITH_CLASSPATH_INCLUDEDIR + +Index: cacao-trunk/m4/classpath.m4 +=================================================================== +--- cacao-trunk.orig/m4/classpath.m4 2007-08-31 13:22:21.000000000 +0200 ++++ cacao-trunk/m4/classpath.m4 2007-08-31 13:30:55.000000000 +0200 +@@ -98,6 +98,18 @@ + AC_SUBST(CLASSPATH_CLASSES) + ]) + ++dnl where are Java core library classes installed on the target ++ ++AC_DEFUN([AC_CHECK_WITH_TARGET_CLASSPATH_CLASSES],[ ++AC_MSG_CHECKING(where Java core library classes are installed on the target) ++AC_ARG_WITH([target-classpath-classes], ++ [AS_HELP_STRING(--with-target-classpath-classes=<path>,path to Java core library classes (includes the name of the file and may be flat) [[default=/usr/local/classpath/share/classpath/glibj.zip]])], ++ [TARGET_CLASSPATH_CLASSES=${withval}], ++ [TARGET_CLASSPATH_CLASSES=${CLASSPATH_PREFIX}/share/classpath/glibj.zip]) ++AC_MSG_RESULT(${TARGET_CLASSPATH_CLASSES}) ++AC_DEFINE_UNQUOTED([TARGET_CLASSPATH_CLASSES], "${TARGET_CLASSPATH_CLASSES}", [Java core library classes on the target]) ++AC_SUBST(TARGET_CLASSPATH_CLASSES) ++]) + + dnl where are Java core library native libraries installed + diff --git a/packages/cacao/files/cacao-0.98+svn-libdir.diff b/packages/cacao/files/cacao-0.98+svn-libdir.diff new file mode 100644 index 0000000000..f5cf9ba5a1 --- /dev/null +++ b/packages/cacao/files/cacao-0.98+svn-libdir.diff @@ -0,0 +1,30 @@ +Index: cacao-trunk/src/vm/properties.c +=================================================================== +--- cacao-trunk.orig/src/vm/properties.c 2007-08-31 13:20:41.000000000 +0200 ++++ cacao-trunk/src/vm/properties.c 2007-09-04 14:54:19.000000000 +0200 +@@ -210,15 +210,22 @@ + + # if defined(WITH_CLASSPATH_GNU) + +- boot_library_path = CLASSPATH_LIBDIR"/classpath"; ++ boot_library_path = CLASSPATH_LIBDIR"/classpath:OE_LIBDIR_JNI"; + + # elif defined(WITH_CLASSPATH_SUN) + +- boot_library_path = CLASSPATH_LIBDIR; ++ boot_library_path = CLASSPATH_LIBDIR":OE_LIBDIR_JNI"; + + # elif defined(WITH_CLASSPATH_CLDC1_1) + +- /* No boot_library_path required. */ ++ /* No boot_library_path required. ++ Well, don't be that strict on Debian-like ++ environments. Setting this to /usr/lib/jni ++ makes it unneccessary to fumble with ++ LD_LIBRARY_PATH to get things like MIDPath ++ running. ++ */ ++ boot_library_path = "OE_LIBDIR_JNI"; + + # else + # error unknown classpath configuration diff --git a/packages/cacao/files/cacao-0.98-initial.patch b/packages/cacao/files/cacao-0.98-initial.patch new file mode 100644 index 0000000000..30b6d147e8 --- /dev/null +++ b/packages/cacao/files/cacao-0.98-initial.patch @@ -0,0 +1,45 @@ +Index: cacao-0.98/configure.ac +=================================================================== +--- cacao-0.98.orig/configure.ac 2007-12-19 22:07:55.000000000 +0100 ++++ cacao-0.98/configure.ac 2007-12-19 22:08:02.000000000 +0100 +@@ -27,7 +27,7 @@ + dnl Process this file with autoconf to produce a configure script. + + +-AC_INIT(cacao, 0.98, cacao@cacaojvm.org) ++AC_INIT(cacao-initial, 0.98, cacao@cacaojvm.org) + AC_CONFIG_SRCDIR(src/cacao/cacao.c) + AC_CANONICAL_HOST + AC_PREREQ(2.59) +Index: cacao-0.98/src/vm/vm.c +=================================================================== +--- cacao-0.98.orig/src/vm/vm.c 2007-12-19 22:31:19.000000000 +0100 ++++ cacao-0.98/src/vm/vm.c 2007-12-19 22:32:36.000000000 +0100 +@@ -623,7 +623,7 @@ + #else + puts(" java.boot.class.path : "CLASSPATH_CLASSES""); + #endif +- puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath\n"); ++ puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath-initial\n"); + + puts("Runtime variables:\n"); + printf(" maximum heap size : %d\n", opt_heapmaxsize); +@@ -828,15 +828,15 @@ + + /* and finally set the path to GNU Classpath libraries */ + +- len = strlen(cacao_prefix) + strlen("/lib/classpath") + strlen("0"); ++ len = strlen(cacao_prefix) + strlen("/lib/classpath-initial") + strlen("0"); + + classpath_libdir = MNEW(char, len); + strcpy(classpath_libdir, cacao_prefix); +- strcat(classpath_libdir, "/lib/classpath"); ++ strcat(classpath_libdir, "/lib/classpath-initial"); + #else + cacao_prefix = CACAO_PREFIX; + cacao_libjvm = CACAO_LIBDIR"/libjvm"; +- classpath_libdir = CLASSPATH_LIBDIR"/classpath"; ++ classpath_libdir = CLASSPATH_LIBDIR"/classpath-initial"; + #endif + + /* set the bootclasspath */ diff --git a/packages/classpath/classpath-initial_0.93.bb b/packages/classpath/classpath-initial_0.93.bb new file mode 100644 index 0000000000..9e303f6eba --- /dev/null +++ b/packages/classpath/classpath-initial_0.93.bb @@ -0,0 +1,28 @@ +# No later version of Classpath may be used because this is the latest that can be compiled +# by jikes! + +require classpath-native.inc + +DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native." + +PR = "r0" + +DEPENDS = "zip-native fastjar-native jikes-native" + +EXTRA_OECONF = "\ + --with-jikes=jikes \ + --with-fastjar=fastjar \ + --with-glibj \ + --disable-local-sockets \ + --disable-alsa \ + --disable-gconf-peer \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-dssi \ + --disable-examples \ + --disable-tools \ + --with-glibj-dir=${STAGING_DATADIR}/classpath-initial \ + --with-native-libdir=${STAGING_LIBDIR}/classpath-initial \ + --includedir=${STAGING_INCDIR}/classpath-initial \ + " + diff --git a/packages/classpath/classpath-minimal_0.96.1.bb b/packages/classpath/classpath-minimal_0.96.1.bb new file mode 100644 index 0000000000..0597274915 --- /dev/null +++ b/packages/classpath/classpath-minimal_0.96.1.bb @@ -0,0 +1,17 @@ +require classpath.inc + +PR = "r3" + +SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0" + +PROVIDES = "${PN} classpath" + +EXTRA_OECONF += "\ + --enable-local-sockets \ + --disable-alsa \ + --disable-gconf-peer \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-dssi \ + --disable-examples \ + " diff --git a/packages/classpath/classpath-native.inc b/packages/classpath/classpath-native.inc new file mode 100644 index 0000000000..bb5abaf178 --- /dev/null +++ b/packages/classpath/classpath-native.inc @@ -0,0 +1,32 @@ +DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent programs" +HOMEPAGE = "http://www.gnu.org/software/classpath/" +LICENSE = "Classpath" + +S = "${WORKDIR}/classpath-${PV}" + +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" + +DEPENDS = "ecj-initial fastjar-native zip-native" + +inherit autotools native + +EXTRA_OECONF = "\ + --with-glibj \ + --with-ecj=${STAGING_BINDIR_NATIVE}/ecj-initial \ + --with-fastjar=fastjar \ + --enable-local-sockets \ + --disable-alsa \ + --disable-gconf-peer \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-dssi \ + --enable-examples \ + --enable-tools \ + --includedir=${STAGING_INCDIR}/classpath \ + --with-vm=java \ + " + +do_stage() { + oe_runmake install +} + diff --git a/packages/classpath/classpath-native_0.96.1.bb b/packages/classpath/classpath-native_0.96.1.bb new file mode 100644 index 0000000000..e7d1d07a81 --- /dev/null +++ b/packages/classpath/classpath-native_0.96.1.bb @@ -0,0 +1,6 @@ +require classpath-native.inc + +PR = "r1" + +SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0" + diff --git a/packages/classpath/classpath.inc b/packages/classpath/classpath.inc index d9498c99d5..97c081af89 100644 --- a/packages/classpath/classpath.inc +++ b/packages/classpath/classpath.inc @@ -3,28 +3,62 @@ HOMEPAGE = "http://www.gnu.org/software/classpath/" SECTION = "libs" PRIORITY = "optional" LICENSE = "Classpath" -PROVIDES = "classpath" -RPROVIDES = "classpath" +PBN = "classpath" -SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz \ - file://gconf_version.patch;patch=1 \ - file://fix-endian-arm-floats.patch;patch=1" +DEPENDS = "virtual/javac-native fastjar-native zip-native" +RPROVIDES = "" + +RDEPENDS_${PN} = "${PBN}-common (>= ${PV})" + +RPROVIDES_${PN} = "${PBN}" +RPROVIDES_${PN}-gtk = "${PBN}-awt" + +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" + +S = "${WORKDIR}/${PBN}-${PV}" + +EXTRA_OECONF = "\ + --with-glibj \ + --with-ecj=javac \ + --with-fastjar=fastjar \ + --includedir=${includedir}/classpath \ + --with-vm=java \ + " inherit autotools do_stage() { install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ + install -m 0644 include/jni* ${STAGING_INCDIR}/classpath + install -m 0644 include/jni_md.h ${STAGING_INCDIR}/classpath/ + + install -d ${STAGING_DATADIR}/classpath + install -m 0644 lib/glibj.zip ${STAGING_DATADIR}/classpath } do_install() { autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} + mv ${D}${libdir}/security ${D}${libdir}/${PBN} } -PACKAGES =+ "classpath-common classpath-examples classpath-tools" -FILES_classpath-common += "${datadir}/classpath/glibj.zip" -FILES_classpath-examples += "${datadir}/classpath/examples" -FILES_classpath-tools += "${datadir}/classpath/tools.zip ${datadir}/classpath/tools" -FILES_classpath-dev += "${libdir}/*.so" -FILES_classpath-dbg += "${libdir}/classpath/.debug" +PACKAGES =+ "${PBN}-common ${PN}-examples \ + ${PN}-tools ${PN}-tools-doc \ + ${PN}-gtk ${PN}-gconf " + +FILES_${PN}-dev += "${libdir}/${PBN}/*.la ${incdir}/${PBN}" + +FILES_${PBN}-common = "${datadir}/${PBN}/glibj.zip ${libdir}/logging.properties ${libdir}/${PBN}/security" +FILES_${PN}-examples = "${datadir}/${PBN}/examples" + +FILES_${PN}-tools = "${datadir}/${PBN}/tools.zip ${bindir}" +FILES_${PN}-tools-doc = "${mandir}" + +FILES_${PN}-dbg += "${libdir}/${PBN}/.debug" +FILES_${PN}-doc = "${infodir}" + +# gcjwebplugin - not built yet +#FILES_${PN}-gcjwebplugin = "${libdir}/${PBN}/libgcjwebplugin.so" +FILES_${PN}-gtk = "${libdir}/${PBN}/libgtkpeer.so ${libdir}/${PBN}/libjawt.so" +FILES_${PN}-gconf = "${libdir}/${PBN}/libgconfpeer.so" +FILES_${PN} = "${libdir}/${PBN}/lib*so*" + diff --git a/packages/classpath/classpath_0.95.bb b/packages/classpath/classpath_0.95.bb new file mode 100644 index 0000000000..6b167a2d47 --- /dev/null +++ b/packages/classpath/classpath_0.95.bb @@ -0,0 +1,20 @@ +require classpath.inc + +SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0" + +PR = "r2" + +DEPENDS += "gtk+ gconf libxtst" + +EXTRA_OECONF += "\ + --disable-alsa \ + --disable-dssi \ + --disable-qt4-peer \ + --disable-plugin \ + --enable-gconf-peer \ + --enable-gtk-peer \ + --enable-local-sockets \ + --with-vm=java \ + " + + diff --git a/packages/classpath/classpath_0.96.1.bb b/packages/classpath/classpath_0.96.1.bb new file mode 100644 index 0000000000..6b167a2d47 --- /dev/null +++ b/packages/classpath/classpath_0.96.1.bb @@ -0,0 +1,20 @@ +require classpath.inc + +SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0" + +PR = "r2" + +DEPENDS += "gtk+ gconf libxtst" + +EXTRA_OECONF += "\ + --disable-alsa \ + --disable-dssi \ + --disable-qt4-peer \ + --disable-plugin \ + --enable-gconf-peer \ + --enable-gtk-peer \ + --enable-local-sockets \ + --with-vm=java \ + " + + diff --git a/packages/classpath/files/gjar-prefix-patch.diff b/packages/classpath/files/gjar-prefix-patch.diff new file mode 100644 index 0000000000..64b262cb41 --- /dev/null +++ b/packages/classpath/files/gjar-prefix-patch.diff @@ -0,0 +1,40 @@ +Index: tools/gnu/classpath/tools/jar/Entry.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Entry.java,v +retrieving revision 1.1 +diff -u -r1.1 Entry.java +--- tools/gnu/classpath/tools/jar/Entry.java 8 May 2006 18:38:20 -0000 1.1 ++++ tools/gnu/classpath/tools/jar/Entry.java 10 Dec 2007 22:20:05 -0000 +@@ -1,5 +1,5 @@ + /* Entry.java - represent a single file to write to a jar +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2007 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -49,12 +49,22 @@ + public Entry(File file, String name) + { + this.file = file; +- this.name = name; ++ ++ /* Removes any './' prefixes automatically. Those caused trouble ++ * in (boot) classpath use-cases. See #32516. ++ */ ++ int start = 0; ++ while (name.length() > start + 2 ++ && name.codePointAt(start) == '.' ++ && name.codePointAt(start + 1) == File.separatorChar) ++ start += 2; ++ ++ this.name = name.substring(start); + } + + public Entry(File file) + { +- this.file = file; +- this.name = file.toString(); ++ this(file, file.toString()); + } ++ + } diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/.mtn2git_empty b/packages/dtnrg/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/.mtn2git_empty +++ b/packages/dtnrg/.mtn2git_empty diff --git a/packages/dtnrg/dtn_2.5.0.bb b/packages/dtnrg/dtn_2.5.0.bb new file mode 100644 index 0000000000..5975a29e7c --- /dev/null +++ b/packages/dtnrg/dtn_2.5.0.bb @@ -0,0 +1,67 @@ +DESCRIPTION = "Delay Tolerant Networking Package" +HOMEPAGE = "http://www.dtnrg.org/wiki" +SECTION = "libs" +DEPENDS = "db openssl python-native xerces-c" +LICENSE = "Apache" +SRC_URI = "http://www.dtnrg.org/docs/code/dtn_${PV}.tgz" +PR = "r2" + +inherit autotools + +EXTRA_OECONF = "\ + --with-python=${STAGING_BINDIR_NATIVE}/python \ + --with-db=${STAGING_DIR} \ + --with-tcl=${STAGING_DIR} \ + --without-google-perftools \ + --without-bluez \ + --without-bonjour \ + --with-expat=${STAGING_DIR} \ + --with-xerces-c=${STAGING_DIR} \ + --without-tclreadline \ + --with-zlib=${STAGING_DIR} \ + --without-xsd-tool \ + --with-db=${STAGING_DIR} \ + --enable-ecl \ + --enable-edp \ + --without-mysql \ + --without-postgres \ + --with-openssl=${STAGING_DIR} \ +" + +def dtn_python_dir(d): + import os, bb + staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 ) + if os.path.exists( "%s/python2.5" % staging_incdir ): return "python2.5" + if os.path.exists( "%s/python2.4" % staging_incdir ): return "python2.4" + if os.path.exists( "%s/python2.3" % staging_incdir ): return "python2.3" + raise "No Python in STAGING_INCDIR. Forgot to build python-native ?" + +PYTHON_DIR = "${@dtn_python_dir(d)}" + +# use this syntax once everyone has at least bitbake 1.8.9 +#export BUILD_SYS +#export HOST_SYS + +export BUILD_SYS:="${BUILD_SYS}" +export HOST_SYS:="${HOST_SYS}" + +do_configure_prepend() { + for i in aclocal/*.ac oasys/aclocal/*.ac; do + install -m 0644 $i ${STAGING_DATADIR}/aclocal/`basename $i`.m4 + done + autotools_do_configure +} + +do_install_append() { + cd applib/python + INCDIR=../.. LIBDIR=.. VERSION=${PV} python setup.py install --prefix=${D}/${prefix} --install-data=${D}/${datadir} +} + +PACKAGES =+ "${PN}-lib" +FILES_${PN}-lib = "${libdir}/*.so*" +PACKAGES += "python-dtn" +DESCRIPTION_python-dtn = "Python bindings to the DTN API" +PR_python-dtn = "ml2" +FILES_python-dtn = "${libdir}/${PYTHON_DIR}" +RDEPENDS_python-dtn = "python-core dtn-lib" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug" diff --git a/packages/quilt/quilt-0.39/.mtn2git_empty b/packages/e17/edje-viewer/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/quilt/quilt-0.39/.mtn2git_empty +++ b/packages/e17/edje-viewer/.mtn2git_empty diff --git a/packages/e17/edje-viewer/no-minimal-size.patch b/packages/e17/edje-viewer/no-minimal-size.patch new file mode 100644 index 0000000000..944447c03f --- /dev/null +++ b/packages/e17/edje-viewer/no-minimal-size.patch @@ -0,0 +1,27 @@ +--- A/src/bin/etk_gui.c 2008-01-13 20:08:45.000000000 +0100 ++++ B/src/bin/etk_gui.c.patched 2008-01-13 20:50:06.000000000 +0100 +@@ -147,21 +147,21 @@ + etk_tree_col_model_add(col2, etk_tree_model_checkbox_new()); + etk_tree_build(ETK_TREE(gui->tree)); + etk_tree_col_sort_set(col2, gui_visibility_col_sort_cb, NULL); +- etk_widget_size_request_set(gui->tree, 300, 0); ++ etk_widget_size_request_set(gui->tree, 0, 0); + etk_signal_connect_by_code(ETK_WIDGET_KEY_DOWN_SIGNAL, + ETK_OBJECT(gui->tree), + ETK_CALLBACK(_gui_tree_key_down_cb), gui); + etk_paned_child1_set(ETK_PANED(paned), gui->tree, ETK_FALSE); + + gui->canvas = etk_canvas_new(); +- etk_widget_size_request_set(gui->canvas, 500, 500); ++ etk_widget_size_request_set(gui->canvas, 50, 50); + etk_object_notification_callback_add(ETK_OBJECT(gui->canvas), "geometry", + canvas_resize_cb, NULL); + etk_paned_child2_set(ETK_PANED(paned), gui->canvas, ETK_TRUE); + + gui->output = etk_tree_new(); + etk_tree_headers_visible_set(ETK_TREE(gui->output), ETK_TRUE); +- col = etk_tree_col_new(ETK_TREE(gui->output), _("Output"), 200, 0.0); ++ col = etk_tree_col_new(ETK_TREE(gui->output), _("Output"), 100, 0.0); + etk_tree_col_model_add(col, etk_tree_model_text_new()); + etk_tree_col_expand_set(col, ETK_TRUE); + etk_tree_build(ETK_TREE(gui->output)); diff --git a/packages/e17/edje-viewer_cvs.bb b/packages/e17/edje-viewer_cvs.bb index 1a15746ca4..88d0df6016 100644 --- a/packages/e17/edje-viewer_cvs.bb +++ b/packages/e17/edje-viewer_cvs.bb @@ -2,11 +2,12 @@ DESCRIPTION = "Edje_Viewer is just that." DEPENDS = "etk" LICENSE = "MIT" PV = "0.0.0+cvs${SRCDATE}" -PR = "r0" +PR = "r3" inherit e -SRC_URI = "${E_CVS};module=e17/apps/edje_viewer" +SRC_URI = "${E_CVS};module=e17/apps/edje_viewer \ + file://no-minimal-size.patch;patch=1" S = "${WORKDIR}/edje_viewer" FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" diff --git a/packages/e17/enna_svn.bb b/packages/e17/enna_cvs.bb index 49e1caeab0..7f2c6eb632 100644 --- a/packages/e17/enna_svn.bb +++ b/packages/e17/enna_cvs.bb @@ -2,15 +2,14 @@ DESCRIPTION = "Enna is a media center application based on EFL" LICENSE = "GPL" DEPENDS = "curl dbus eet evas edje ecore edbus emotion libmusicbrainz libxml2 taglibc" SECTION = "x11/multimedia" -PV = "0.2.0+svn${SRCDATE}" +PV = "0.2.0+cvs${SRCDATE}" inherit e -SRC_URI = "svn://enna.svn.sourceforge.net/svnroot/enna/trunk;module=enna;proto=http \ +SRC_URI = "${E_CVS};module=misc/enna \ file://locale-is-broken.patch;patch=1" S = "${WORKDIR}/enna" do_configure_prepend() { touch po/Makefile.in.in } - diff --git a/packages/ecj/ecj-bootstrap-native_3.3.bb b/packages/ecj/ecj-bootstrap-native_3.3.bb new file mode 100644 index 0000000000..bd4347457c --- /dev/null +++ b/packages/ecj/ecj-bootstrap-native_3.3.bb @@ -0,0 +1,38 @@ +# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more +# and no less features. +# +# Since the VM running the compiler has no effect on the produced bytecode this recipe +# uses the jar created by ecj-initial and creates a start script that runs it with a different +# VM. + +DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +HOMEPAGE = "http://www.eclipse.org/" +SECTION = "devel" +PRIORITY = "optional" +LICENSE = "EPL" + +DEPENDS = "ecj-initial virtual/java-native" + +PROVIDES = "virtual/javac-native" + +SRC_URI = "file://ecj.in" + +S = "${WORKDIR}" + +JAR = "ecj-bootstrap-${PV}.jar" + +inherit native + +do_compile() { + # Create the start script + echo "#!/bin/sh" > ecj-bootstrap + echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap + echo "RUNTIME=java" >> ecj-bootstrap + cat ecj.in >> ecj-bootstrap +} + +do_stage() { + install -d ${STAGING_BINDIR} + install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR} + install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac +} diff --git a/packages/ecj/ecj-initial_3.3.bb b/packages/ecj/ecj-initial_3.3.bb new file mode 100644 index 0000000000..7b65daef99 --- /dev/null +++ b/packages/ecj/ecj-initial_3.3.bb @@ -0,0 +1,84 @@ +# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more +# and no less features. + +# This variant runs on the initial (not Java5-compatible runtime). + +DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +HOMEPAGE = "http://www.eclipse.org/" +LICENSE = "EPL" + +DEPENDS = "fastjar-native jikes-initial virtual/java-initial" + +SRC_URI = "\ + http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecjsrc.zip \ + file://ecj.in \ + " + +S = "${WORKDIR}" + +inherit native + +JAR = "ecj-bootstrap-${PV}.jar" + +do_unpackpost() { + if [ ! -d source ]; then + mkdir source + fi + + if [ ! -d build ]; then + mkdir build + fi + + # Remove crap. + rm about.html build.xml + rm -rf META-INF + + # Move source into separate subdir. + mv org source/ + + # Remove stuff unneeded for the bootstrap compiler. + rm -rf source/org/eclipse/jdt/internal/compiler/apt + rm -rf source/org/eclipse/jdt/internal/compiler/tool + rm -rf source/org/eclipse/jdt/internal/antadapter + rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java + + # Make a copy of the remaining source to get the embedded + # resources. + cp -r source/org build/ + + # Remove source code and other stuff. + find build -name '*.java' -exec rm -f {} \; + find build -name '*.html' -exec rm -f {} \; +} + +addtask unpackpost after do_unpack before do_patch + +do_compile() { + find source -name '*.java' > sourcefiles + split -l 25 sourcefiles ecj-sources. + + # Compiling in place is done because the sources contain + # property files which need to be available at runtime. + for list in `find . -name 'ecj-sources.*'`; do + echo "building files in $list ..."; + echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; + jikes-initial \ + -d build -source 1.4 -sourcepath source `cat $list`; + done + + fastjar -c -C build . -f ${JAR} + + # Create the start script + echo "#!/bin/sh" > ecj-initial + echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial + echo "RUNTIME=java-initial" >> ecj-initial + cat ecj.in >> ecj-initial +} + +do_stage() { + install -d ${STAGING_DATADIR}/java + install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java + + install -d ${STAGING_BINDIR} + install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} +} diff --git a/packages/ecj/ecj-native_3.2.2.bb b/packages/ecj/ecj-native_3.2.2.bb deleted file mode 100644 index 8afa2653ca..0000000000 --- a/packages/ecj/ecj-native_3.2.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "JDT Core Batch Compiler" -HOMEPAGE = "http://www.eclipse.org/" -PRIORITY = "optional" -SECTION = "devel" -LICENSE = "EPL" -PR = "r0" - -inherit native - -SRC_URI = "http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.2.2-200702121330/ecj.jar \ - file://ecj.sh" - -do_stage() { - install -d ${STAGING_BINDIR_NATIVE} - install -m 755 ${S}/../ecj.jar ${STAGING_BINDIR_NATIVE} - install -m 755 ${S}/../ecj.sh ${STAGING_BINDIR_NATIVE}/ecj -} diff --git a/packages/ecj/ecj-native_3.3.bb b/packages/ecj/ecj-native_3.3.bb deleted file mode 100644 index ff2eb5f49e..0000000000 --- a/packages/ecj/ecj-native_3.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "JDT Core Batch Compiler" -HOMEPAGE = "http://www.eclipse.org/" -PRIORITY = "optional" -SECTION = "devel" -LICENSE = "EPL" -PR = "r0" - -inherit native - -SRC_URI = "http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecj.jar \ - file://ecj.sh" - -do_stage() { - install -d ${STAGING_BINDIR_NATIVE} - install -m 755 ${S}/../ecj.jar ${STAGING_BINDIR_NATIVE} - install -m 755 ${S}/../ecj.sh ${STAGING_BINDIR_NATIVE}/ecj -} diff --git a/packages/ecj/files/ecj.in b/packages/ecj/files/ecj.in new file mode 100755 index 0000000000..2099991cef --- /dev/null +++ b/packages/ecj/files/ecj.in @@ -0,0 +1 @@ +${RUNTIME} -Xmx512m -cp ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main ${1+"$@"} diff --git a/packages/ecj/files/ecj.sh b/packages/ecj/files/ecj.sh deleted file mode 100644 index 75aa2c2287..0000000000 --- a/packages/ecj/files/ecj.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -java -Xmx512m -jar $0.jar "$@" diff --git a/packages/efl1/ecore-native_cvs.bb b/packages/efl1/ecore-native_cvs.bb index 92a30397e1..70d9490b50 100644 --- a/packages/efl1/ecore-native_cvs.bb +++ b/packages/efl1/ecore-native_cvs.bb @@ -1,7 +1,7 @@ require ecore.inc inherit native DEPENDS = "eet-native evas-native" -PR = "r2" +PR = "r0" EXTRA_OECONF = "\ --enable-ecore-txt \ diff --git a/packages/efl1/ecore.inc b/packages/efl1/ecore.inc index b71a4b7582..eacde2d012 100644 --- a/packages/efl1/ecore.inc +++ b/packages/efl1/ecore.inc @@ -2,17 +2,13 @@ DESCRIPTION = "Ecore is the core event abstraction layer for the enlightenment \ foundation libraries. It makes makes doing selections, drag and drop, event loops, \ timeouts and idle handlers fast, optimized, and convenient." LICENSE = "MIT" -DEPENDS = "curl directfb eet evas tslib" +DEPENDS = "curl eet evas tslib" # optional -# DEPENDS += "openssl virtual/libiconv" +# DEPENDS += "directfb libsdl-x11 openssl virtual/libiconv" PV = "0.9.9.041+cvs${SRCDATE}" inherit efl_library -# SRC_URI += "file://configure.patch;patch=1 \ -# file://fix-tslib-configure.patch;patch=1 \ -# file://fix-directfb-include.patch;patch=1" - SRC_URI += "file://fix-directfb-include.patch;patch=1" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ecore" @@ -26,6 +22,8 @@ PACKAGES += "\ ${PN}-evas \ ${PN}-fb \ ${PN}-file \ + ${PN}-imf \ + ${PN}-imf-evas \ ${PN}-ipc \ ${PN}-job \ ${PN}-txt \ @@ -40,6 +38,8 @@ FILES_${PN}-sdl = "${libdir}/libecore_sdl.so.*" FILES_${PN}-evas = "${libdir}/libecore_evas.so.*" FILES_${PN}-fb = "${libdir}/libecore_fb.so.*" FILES_${PN}-file = "${libdir}/libecore_file.so.*" +FILES_${PN}-imf = "${libdir}/libecore_imf.so.*" +FILES_${PN}-imf-evas = "${libdir}/libecore_imf_evas.so.*" FILES_${PN}-ipc = "${libdir}/libecore_ipc.so.*" FILES_${PN}-job = "${libdir}/libecore_job.so.*" FILES_${PN}-txt = "${libdir}/libecore_txt.so.*" diff --git a/packages/efl1/ecore_cvs.bb b/packages/efl1/ecore_cvs.bb index 53ee8642d8..6580957871 100644 --- a/packages/efl1/ecore_cvs.bb +++ b/packages/efl1/ecore_cvs.bb @@ -1,16 +1,17 @@ require ecore.inc -PR = "r5" +PR = "r1" EXTRA_OECONF = "\ --enable-ecore-txt \ --disable-ecore-x-xcb \ + --enable-simple-x11 \ --enable-ecore-x \ --enable-ecore-job \ --disable-ecore-directfb \ --disable-ecore-sdl \ --enable-ecore-fb \ --enable-ecore-evas \ - --disable-ecore-evas-gl \ + --disable-ecore-evas-x11-gl \ --enable-ecore-evas-xrender \ --enable-ecore-evas-dfb \ --disable-openssl \ diff --git a/packages/efl1/edbus_cvs.bb b/packages/efl1/edbus_cvs.bb index db1547c3d4..755efcb9ec 100644 --- a/packages/efl1/edbus_cvs.bb +++ b/packages/efl1/edbus_cvs.bb @@ -1,12 +1,18 @@ DESCRIPTION = "DBus and HAL convenience wrappers for EFL" DEPENDS = "dbus ecore" LICENSE = "MIT" -PR = "r0" +PR = "r1" inherit efl_library -SRC_URI = "${E_CVS};module=e17/proto/e_dbus" +SRC_URI = "${E_CVS};module=e17/libs/e_dbus" S = "${WORKDIR}/e_dbus" # TODO increase package granularity +PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal" +FILES_${PN}-enotify = "${libdir}/libenotify.so.*" +FILES_${PN}-edbus = "${libdir}/libedbus.so.*" +FILES_${PN}-enm = "${libdir}/libenm.so.*" +FILES_${PN}-ehal = "${libdir}/libehal.so.*" + diff --git a/packages/efl1/epdf_cvs.bb b/packages/efl1/epdf_cvs.bb index 7ca33bf9d8..27c475c37d 100644 --- a/packages/efl1/epdf_cvs.bb +++ b/packages/efl1/epdf_cvs.bb @@ -1,11 +1,13 @@ DESCRIPTION = "Epdf is the glue between EFL and libpoppler" LICENSE = "BSD" -DEPENDS = "poppler evas ecore etk ewl" +DEPENDS = "poppler evas ecore etk" PV = "0.1.0+cvs${SRCDATE}" -PR = "r1" +PR = "r2" inherit efl_library +EXTRA_OECONF = "--disable-ewl" + SRC_URI = "${E_CVS};module=e17/proto/${SRCNAME} \ file://fix-plugin-path-check.patch;HACK=1;patch=1" diff --git a/packages/efl1/evas.inc b/packages/efl1/evas.inc index 608c897295..0dc8f2d0e8 100644 --- a/packages/efl1/evas.inc +++ b/packages/efl1/evas.inc @@ -42,6 +42,7 @@ RRECOMMENDS_${PN} = "\ libevas-engine-software-generic \ libevas-engine-software-x11 \ libevas-engine-software-16 \ + libevas-engine-software-16-x11 \ libevas-engine-xrender-x11 \ \ libevas-loader-png \ @@ -49,3 +50,4 @@ RRECOMMENDS_${PN} = "\ libevas-loader-eet \ libevas-loader-svg \ " + diff --git a/packages/efl1/evas_cvs.bb b/packages/efl1/evas_cvs.bb index e386d307ad..0734967992 100644 --- a/packages/efl1/evas_cvs.bb +++ b/packages/efl1/evas_cvs.bb @@ -1,5 +1,5 @@ require evas.inc -PR = "r4" +PR = "r1" EXTRA_OECONF = "\ --x-includes=${STAGING_INCDIR}/X11 \ @@ -10,6 +10,7 @@ EXTRA_OECONF = "\ --enable-buffer \ --disable-software-ddraw \ --disable-software-qtopia \ + --enable-simple-x11 \ --enable-software-x11 \ --enable-software-16-x11 \ --disable-software-xcb \ diff --git a/packages/roadmap/roadmap-gtk2-1.0.12/.mtn2git_empty b/packages/freesmartphone/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/roadmap/roadmap-gtk2-1.0.12/.mtn2git_empty +++ b/packages/freesmartphone/.mtn2git_empty diff --git a/packages/freesmartphone/gsm0710muxd_svn.bb b/packages/freesmartphone/gsm0710muxd_svn.bb new file mode 100644 index 0000000000..aca7e2770d --- /dev/null +++ b/packages/freesmartphone/gsm0710muxd_svn.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "gsm.07.10 muxer userspace daemon" +AUTHOR = "M. Dietrich" +SECTION = "console/network" +DEPENDS = "intltool-native dbus" +LICENSE = "GPL" +PV = "0.0+svnr${SRCREV}" + +SRC_URI = "svn://projects.linuxtogo.org/svn/smartphones/trunk/software;module=gsm0710muxd" +S = "${WORKDIR}/gsm0710muxd" + +inherit autotools update-rc.d + +INITSCRIPT_NAME = "gsm0710muxd" +INITSCRIPT_PARAMS = "defaults 35" diff --git a/packages/gcc/gcc-4.2.2/fortran-cross-compile-hack.patch b/packages/gcc/gcc-4.2.2/fortran-cross-compile-hack.patch new file mode 100644 index 0000000000..b3d38ad983 --- /dev/null +++ b/packages/gcc/gcc-4.2.2/fortran-cross-compile-hack.patch @@ -0,0 +1,30 @@ +* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used + used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross + directory. + +diff --git a/libgfortran/configure b/libgfortran/configure +index f7d86fb..d0966ec 100755 +--- a/libgfortran/configure ++++ b/libgfortran/configure +@@ -4475,6 +4475,6 @@ exec 5>>./config.log + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + ac_ext=${FC_SRCEXT-f} + ac_compile='$FC -c $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext >&5' +\ No newline at end of file +diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac +index 4661306..9f83e55 100644 +--- a/libgfortran/configure.ac ++++ b/libgfortran/configure.ac +@@ -140,7 +140,7 @@ AC_SUBST(enable_static) + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + AC_PROG_FC(gfortran) + + # extra LD Flags which are required for targets diff --git a/packages/gcc/gcc-4.2.2/fortran-static-linking.patch b/packages/gcc/gcc-4.2.2/fortran-static-linking.patch new file mode 100644 index 0000000000..3dd6321dc3 --- /dev/null +++ b/packages/gcc/gcc-4.2.2/fortran-static-linking.patch @@ -0,0 +1,48 @@ +f951 (fortran) links to MPFR and GMP of our staging area but when executing +the command the libs can not be found. Use rpath like all the other apps in +our staging bin/ directory. + +Patch the configure to avoid the regeneration... + +Index: gcc-4.2.2/configure +=================================================================== +--- gcc-4.2.2.orig/configure 2008-01-15 23:23:41.000000000 +0100 ++++ gcc-4.2.2/configure 2008-01-15 23:25:20.000000000 +0100 +@@ -2278,14 +2278,14 @@ + + + if test "x$with_mpfr" != x; then +- gmplibs="-L$with_mpfr/lib $gmplibs" ++ gmplibs="-static -L$with_mpfr/lib $gmplibs" + gmpinc="-I$with_mpfr/include" + fi + if test "x$with_mpfr_include" != x; then + gmpinc="-I$with_mpfr_include" + fi + if test "x$with_mpfr_lib" != x; then +- gmplibs="-L$with_mpfr_lib $gmplibs" ++ gmplibs="-static -L$with_mpfr_lib $gmplibs" + fi + + # Specify a location for gmp +Index: gcc-4.2.2/configure.in +=================================================================== +--- gcc-4.2.2.orig/configure.in 2008-01-15 23:23:41.000000000 +0100 ++++ gcc-4.2.2/configure.in 2008-01-15 23:24:36.000000000 +0100 +@@ -1066,14 +1066,14 @@ + AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=PATH Specify the directory for the installed MPFR library]) + + if test "x$with_mpfr" != x; then +- gmplibs="-L$with_mpfr/lib $gmplibs" ++ gmplibs="-static -L$with_mpfr/lib $gmplibs" + gmpinc="-I$with_mpfr/include" + fi + if test "x$with_mpfr_include" != x; then + gmpinc="-I$with_mpfr_include" + fi + if test "x$with_mpfr_lib" != x; then +- gmplibs="-L$with_mpfr_lib $gmplibs" ++ gmplibs="-static -L$with_mpfr_lib $gmplibs" + fi + + # Specify a location for gmp diff --git a/packages/gcc/gcc-4.2.2/gcc-4.0.2-e300c2c3.patch b/packages/gcc/gcc-4.2.2/gcc-4.0.2-e300c2c3.patch new file mode 100644 index 0000000000..736ac4b6b6 --- /dev/null +++ b/packages/gcc/gcc-4.2.2/gcc-4.0.2-e300c2c3.patch @@ -0,0 +1,311 @@ +Adds support for Freescale Power architecture e300c2 and e300c3 cores. +http://www.bitshrine.org/gpp/tc-fsl-x86lnx-e300c3-nptl-4.0.2-2.src.rpm + +Leon Woestenberg <leonw@mailcan.com> + +Index: gcc-4.1.2/gcc/config/rs6000/e300c2c3.md +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gcc-4.1.2/gcc/config/rs6000/e300c2c3.md 2007-10-18 15:32:51.000000000 +0200 +@@ -0,0 +1,189 @@ ++;; Pipeline description for Motorola PowerPC e300c3 core. ++;; Copyright (C) 2003 Free Software Foundation, Inc. ++;; ++;; This file is part of GCC. ++ ++;; GCC 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, or (at your ++;; option) any later version. ++ ++;; GCC 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 GCC; see the file COPYING. If not, write to the ++;; Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++;; MA 02111-1307, USA. ++ ++(define_automaton "ppce300c3_most,ppce300c3_long,ppce300c3_retire") ++(define_cpu_unit "ppce300c3_decode_0,ppce300c3_decode_1" "ppce300c3_most") ++ ++;; We don't simulate general issue queue (GIC). If we have SU insn ++;; and then SU1 insn, they can not be issued on the same cycle ++;; (although SU1 insn and then SU insn can be issued) because the SU ++;; insn will go to SU1 from GIC0 entry. Fortunately, the first cycle ++;; multipass insn scheduling will find the situation and issue the SU1 ++;; insn and then the SU insn. ++(define_cpu_unit "ppce300c3_issue_0,ppce300c3_issue_1" "ppce300c3_most") ++ ++;; We could describe completion buffers slots in combination with the ++;; retirement units and the order of completion but the result ++;; automaton would behave in the same way because we can not describe ++;; real latency time with taking in order completion into account. ++;; Actually we could define the real latency time by querying reserved ++;; automaton units but the current scheduler uses latency time before ++;; issuing insns and making any reservations. ++;; ++;; So our description is aimed to achieve a insn schedule in which the ++;; insns would not wait in the completion buffer. ++(define_cpu_unit "ppce300c3_retire_0,ppce300c3_retire_1" "ppce300c3_retire") ++ ++;; Branch unit: ++(define_cpu_unit "ppce300c3_bu" "ppce300c3_most") ++ ++;; IU: ++(define_cpu_unit "ppce300c3_iu0_stage0,ppce300c3_iu1_stage0" "ppce300c3_most") ++ ++;; IU: This used to describe non-pipelined division. ++(define_cpu_unit "ppce300c3_mu_div" "ppce300c3_long") ++ ++;; SRU: ++(define_cpu_unit "ppce300c3_sru_stage0" "ppce300c3_most") ++ ++;; Here we simplified LSU unit description not describing the stages. ++(define_cpu_unit "ppce300c3_lsu" "ppce300c3_most") ++ ++;; FPU: ++(define_cpu_unit "ppce300c3_fpu" "ppce300c3_most") ++ ++;; The following units are used to make automata deterministic ++(define_cpu_unit "present_ppce300c3_decode_0" "ppce300c3_most") ++(define_cpu_unit "present_ppce300c3_issue_0" "ppce300c3_most") ++(define_cpu_unit "present_ppce300c3_retire_0" "ppce300c3_retire") ++(define_cpu_unit "present_ppce300c3_iu0_stage0" "ppce300c3_most") ++ ++;; The following sets to make automata deterministic when option ndfa is used. ++(presence_set "present_ppce300c3_decode_0" "ppce300c3_decode_0") ++(presence_set "present_ppce300c3_issue_0" "ppce300c3_issue_0") ++(presence_set "present_ppce300c3_retire_0" "ppce300c3_retire_0") ++(presence_set "present_ppce300c3_iu0_stage0" "ppce300c3_iu0_stage0") ++ ++;; Some useful abbreviations. ++(define_reservation "ppce300c3_decode" ++ "ppce300c3_decode_0|ppce300c3_decode_1+present_ppce300c3_decode_0") ++(define_reservation "ppce300c3_issue" ++ "ppce300c3_issue_0|ppce300c3_issue_1+present_ppce300c3_issue_0") ++(define_reservation "ppce300c3_retire" ++ "ppce300c3_retire_0|ppce300c3_retire_1+present_ppce300c3_retire_0") ++(define_reservation "ppce300c3_iu_stage0" ++ "ppce300c3_iu0_stage0|ppce300c3_iu1_stage0+present_ppce300c3_iu0_stage0") ++ ++;; Compares can be executed either one of the IU or SRU ++(define_insn_reservation "ppce300c3_cmp" 1 ++ (and (eq_attr "type" "cmp,compare,delayed_compare,fast_compare") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+(ppce300c3_iu_stage0|ppce300c3_sru_stage0) \ ++ +ppce300c3_retire") ++ ++;; Other one cycle IU insns ++(define_insn_reservation "ppce300c3_iu" 1 ++ (and (eq_attr "type" "integer,insert_word") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_iu_stage0+ppce300c3_retire") ++ ++;; Branch. Actually this latency time is not used by the scheduler. ++(define_insn_reservation "ppce300c3_branch" 1 ++ (and (eq_attr "type" "jmpreg,branch") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_bu,ppce300c3_retire") ++ ++;; Multiply is non-pipelined but can be executed in any IU ++(define_insn_reservation "ppce300c3_multiply" 2 ++ (and (eq_attr "type" "imul,imul2,imul3,imul_compare") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_iu_stage0, \ ++ ppce300c3_iu_stage0+ppce300c3_retire") ++ ++;; Divide. We use the average latency time here. We omit reserving a ++;; retire unit because of the result automata will be huge. ++(define_insn_reservation "ppce300c3_divide" 20 ++ (and (eq_attr "type" "idiv") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_iu_stage0+ppce300c3_mu_div,\ ++ ppce300c3_mu_div*19") ++ ++;; CR logical ++(define_insn_reservation "ppce300c3_cr_logical" 1 ++ (and (eq_attr "type" "cr_logical,delayed_cr") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_sru_stage0+ppce300c3_retire") ++ ++;; Mfcr ++(define_insn_reservation "ppce300c3_mfcr" 1 ++ (and (eq_attr "type" "mfcr") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_sru_stage0+ppce300c3_retire") ++ ++;; Mtcrf ++(define_insn_reservation "ppce300c3_mtcrf" 1 ++ (and (eq_attr "type" "mtcr") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_sru_stage0+ppce300c3_retire") ++ ++;; Mtjmpr ++(define_insn_reservation "ppce300c3_mtjmpr" 1 ++ (and (eq_attr "type" "mtjmpr,mfjmpr") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_sru_stage0+ppce300c3_retire") ++ ++;; Float point instructions ++(define_insn_reservation "ppce300c3_fpcompare" 3 ++ (and (eq_attr "type" "fpcompare") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_fpu,nothing,ppce300c3_retire") ++ ++(define_insn_reservation "ppce300c3_fp" 3 ++ (and (eq_attr "type" "fp") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_fpu,nothing,ppce300c3_retire") ++ ++(define_insn_reservation "ppce300c3_dmul" 4 ++ (and (eq_attr "type" "dmul") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_fpu,ppce300c3_fpu,nothing,ppce300c3_retire") ++ ++; Divides are not pipelined ++(define_insn_reservation "ppce300c3_sdiv" 18 ++ (and (eq_attr "type" "sdiv") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_fpu,ppce300c3_fpu*17") ++ ++(define_insn_reservation "ppce300c3_ddiv" 33 ++ (and (eq_attr "type" "ddiv") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_fpu,ppce300c3_fpu*32") ++ ++;; Loads ++(define_insn_reservation "ppce300c3_load" 2 ++ (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_lsu,ppce300c3_retire") ++ ++(define_insn_reservation "ppce300c3_fpload" 2 ++ (and (eq_attr "type" "fpload,fpload_ux,fpload_u") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_lsu,ppce300c3_retire") ++ ++;; Stores. ++(define_insn_reservation "ppce300c3_store" 2 ++ (and (eq_attr "type" "store,store_ux,store_u") ++ (ior (eq_attr "cpu" "ppce300c2") (eq_attr "cpu" "ppce300c3"))) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_lsu,ppce300c3_retire") ++ ++(define_insn_reservation "ppce300c3_fpstore" 2 ++ (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u") ++ (eq_attr "cpu" "ppce300c3")) ++ "ppce300c3_decode,ppce300c3_issue+ppce300c3_lsu,ppce300c3_retire") +Index: gcc-4.1.2/gcc/config/rs6000/rs6000.c +=================================================================== +--- gcc-4.1.2.orig/gcc/config/rs6000/rs6000.c 2006-12-16 20:24:56.000000000 +0100 ++++ gcc-4.1.2/gcc/config/rs6000/rs6000.c 2007-10-18 15:34:26.000000000 +0200 +@@ -557,6 +557,21 @@ + COSTS_N_INSNS (29), /* ddiv */ + }; + ++/* Instruction costs on E300C2 and E300C3 cores. */ ++static const ++struct processor_costs ppce300c2c3_cost = { ++ COSTS_N_INSNS (4), /* mulsi */ ++ COSTS_N_INSNS (4), /* mulsi_const */ ++ COSTS_N_INSNS (4), /* mulsi_const9 */ ++ COSTS_N_INSNS (4), /* muldi */ ++ COSTS_N_INSNS (19), /* divsi */ ++ COSTS_N_INSNS (19), /* divdi */ ++ COSTS_N_INSNS (3), /* fp */ ++ COSTS_N_INSNS (4), /* dmul */ ++ COSTS_N_INSNS (18), /* sdiv */ ++ COSTS_N_INSNS (33), /* ddiv */ ++}; ++ + /* Instruction costs on POWER4 and POWER5 processors. */ + static const + struct processor_costs power4_cost = { +@@ -1140,6 +1155,8 @@ + /* 8548 has a dummy entry for now. */ + {"8548", PROCESSOR_PPC8540, + POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_STRICT_ALIGN}, ++ {"e300c2", PROCESSOR_PPCE300C2, POWERPC_BASE_MASK | MASK_SOFT_FLOAT}, ++ {"e300c3", PROCESSOR_PPCE300C3, POWERPC_BASE_MASK}, + {"860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT}, + {"970", PROCESSOR_POWER4, + POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64}, +@@ -1529,6 +1546,11 @@ + rs6000_cost = &ppc8540_cost; + break; + ++ case PROCESSOR_PPCE300C2: ++ case PROCESSOR_PPCE300C3: ++ rs6000_cost = &ppce300c2c3_cost; ++ break; ++ + case PROCESSOR_POWER4: + case PROCESSOR_POWER5: + rs6000_cost = &power4_cost; +@@ -16647,6 +16669,8 @@ + case CPU_PPC750: + case CPU_PPC7400: + case CPU_PPC8540: ++ case CPU_PPCE300C2: ++ case CPU_PPCE300C3: + return 2; + case CPU_RIOS2: + case CPU_PPC604: +Index: gcc-4.1.2/gcc/config/rs6000/rs6000.h +=================================================================== +--- gcc-4.1.2.orig/gcc/config/rs6000/rs6000.h 2006-11-18 01:25:49.000000000 +0100 ++++ gcc-4.1.2/gcc/config/rs6000/rs6000.h 2007-10-18 15:32:51.000000000 +0200 +@@ -111,6 +111,8 @@ + %{mcpu=970: -mpower4 -maltivec} \ + %{mcpu=G5: -mpower4 -maltivec} \ + %{mcpu=8540: -me500} \ ++%{mcpu=e300c2: -mppc} \ ++%{mcpu=e300c3: -mppc -mpmr} \ + %{maltivec: -maltivec} \ + -many" + +@@ -211,6 +213,8 @@ + PROCESSOR_PPC7400, + PROCESSOR_PPC7450, + PROCESSOR_PPC8540, ++ PROCESSOR_PPCE300C2, ++ PROCESSOR_PPCE300C3, + PROCESSOR_POWER4, + PROCESSOR_POWER5 + }; +Index: gcc-4.1.2/gcc/config/rs6000/rs6000.md +=================================================================== +--- gcc-4.1.2.orig/gcc/config/rs6000/rs6000.md 2006-12-16 20:24:56.000000000 +0100 ++++ gcc-4.1.2/gcc/config/rs6000/rs6000.md 2007-10-18 15:32:51.000000000 +0200 +@@ -103,7 +103,7 @@ + ;; Processor type -- this attribute must exactly match the processor_type + ;; enumeration in rs6000.h. + +-(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,power4,power5" ++(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppce300c2,ppce300c3,power4,power5" + (const (symbol_ref "rs6000_cpu_attr"))) + + (automata_option "ndfa") +@@ -119,6 +119,7 @@ + (include "7xx.md") + (include "7450.md") + (include "8540.md") ++(include "e300c2c3.md") + (include "power4.md") + (include "power5.md") + +Index: gcc-4.1.2/gcc/config.gcc +=================================================================== +--- gcc-4.1.2.orig/gcc/config.gcc 2007-10-18 15:26:23.000000000 +0200 ++++ gcc-4.1.2/gcc/config.gcc 2007-10-18 15:32:51.000000000 +0200 +@@ -2710,7 +2710,7 @@ + | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ + | 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \ + | 601 | 602 | 603 | 603e | ec603e | 604 \ +- | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ ++ | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 | e300c[23] \ + | 854[08] | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5) + # OK + ;; diff --git a/packages/gcc/gcc-cross-sdk_4.2.2.bb b/packages/gcc/gcc-cross-sdk_4.2.2.bb new file mode 100644 index 0000000000..2fdaa7dc27 --- /dev/null +++ b/packages/gcc/gcc-cross-sdk_4.2.2.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "The GNU cc and gcc C compilers." +HOMEPAGE = "http://www.gnu.org/software/gcc/" +SECTION = "devel" +LICENSE = "GPL" +PR = "r2" + +inherit sdk + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" + +PACKAGES = "${PN}" + +require gcc_${PV}.bb +require gcc4-build-sdk.inc +require gcc-package-sdk.inc + +DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native" + +EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \ + --disable-libgomp --disable-libmudflap \ + --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}" diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb index ec169072af..daf0e65003 100644 --- a/packages/gcc/gcc-cross_4.2.2.bb +++ b/packages/gcc/gcc-cross_4.2.2.bb @@ -5,7 +5,7 @@ inherit cross FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" # NOTE: split PR. If the main .oe changes something that affects its *build* # remember to increment this one too. -PR = "r2" +PR = "r3" DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" diff --git a/packages/gcc/gcc_4.2.2.bb b/packages/gcc/gcc_4.2.2.bb index de3b65ce7f..15a25c9c6a 100644 --- a/packages/gcc/gcc_4.2.2.bb +++ b/packages/gcc/gcc_4.2.2.bb @@ -1,4 +1,4 @@ -PR = "r2" +PR = "r3" DESCRIPTION = "The GNU cc and gcc C compilers." HOMEPAGE = "http://www.gnu.org/software/gcc/" SECTION = "devel" @@ -39,7 +39,9 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \ file://cache-amnesia.patch;patch=1 \ file://gfortran.patch;patch=1 \ + file://gcc-4.0.2-e300c2c3.patch;patch=1 \ file://pr34130.patch;patch=1 \ + file://fortran-static-linking.patch;patch=1 \ " SRC_URI_append_ep93xx = " \ @@ -71,6 +73,8 @@ SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " FORTRAN = "" FORTRAN_linux-gnueabi = ",fortran" +DEPENDS += " gmp mpfr " + #Set the java bits JAVA = "" JAVA_arm = "" @@ -82,3 +86,9 @@ ARCH_FLAGS_FOR_TARGET=-isystem${STAGING_INCDIR} EXTRA_OECONF += " --disable-libssp --disable-bootstrap " +# We know some one is including us, but we only want to apply this fortran hack for the real gcc +python __anonymous () { + import bb + if bb.data.getVar('PN', d, True) == "gcc": + bb.data.setVar('SRC_URI_append', ' file://fortran-cross-compile-hack.patch;patch=1', d) +} diff --git a/packages/roadmap/zroadmap-1.0.12/.mtn2git_empty b/packages/gnutls/gnutls-1.6.3/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/roadmap/zroadmap-1.0.12/.mtn2git_empty +++ b/packages/gnutls/gnutls-1.6.3/.mtn2git_empty diff --git a/packages/gnutls/gnutls/configure_madness.patch b/packages/gnutls/gnutls-1.6.3/configure_madness.patch index 26111dfe96..26111dfe96 100644 --- a/packages/gnutls/gnutls/configure_madness.patch +++ b/packages/gnutls/gnutls-1.6.3/configure_madness.patch diff --git a/packages/gnutls/gnutls/gnutls-openssl.patch b/packages/gnutls/gnutls-1.6.3/gnutls-openssl.patch index e2c189592f..e2c189592f 100644 --- a/packages/gnutls/gnutls/gnutls-openssl.patch +++ b/packages/gnutls/gnutls-1.6.3/gnutls-openssl.patch diff --git a/packages/gnutls/gnutls/gnutls-texinfo-euro.patch b/packages/gnutls/gnutls-1.6.3/gnutls-texinfo-euro.patch index e2a2762424..e2a2762424 100644 --- a/packages/gnutls/gnutls/gnutls-texinfo-euro.patch +++ b/packages/gnutls/gnutls-1.6.3/gnutls-texinfo-euro.patch diff --git a/packages/gnutls/gnutls.inc b/packages/gnutls/gnutls.inc index 2211d5f798..d08b0ca931 100644 --- a/packages/gnutls/gnutls.inc +++ b/packages/gnutls/gnutls.inc @@ -4,10 +4,7 @@ DEPENDS = "zlib libgcrypt lzo" LICENSE = "LGPL" -SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2 \ - file://gnutls-openssl.patch;patch=1 \ - file://gnutls-texinfo-euro.patch;patch=1 \ - file://configure_madness.patch;patch=1 " +SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2" inherit autotools binconfig pkgconfig diff --git a/packages/gnutls/gnutls_1.6.3.bb b/packages/gnutls/gnutls_1.6.3.bb index a5b5341156..ddaef1dea3 100644 --- a/packages/gnutls/gnutls_1.6.3.bb +++ b/packages/gnutls/gnutls_1.6.3.bb @@ -1,2 +1,9 @@ require gnutls.inc + +SRC_URI += "\ + file://gnutls-openssl.patch;patch=1 \ + file://gnutls-texinfo-euro.patch;patch=1 \ + file://configure_madness.patch;patch=1 \ + " + PR = "r3" diff --git a/packages/gpe-scap/gpe-scap-1.3/.mtn2git_empty b/packages/gpe-scap/gpe-scap-1.3/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gpe-scap/gpe-scap-1.3/.mtn2git_empty diff --git a/packages/gpe-scap/gpe-scap-1.3/allow-glade-2.4.0.patch b/packages/gpe-scap/gpe-scap-1.3/allow-glade-2.4.0.patch new file mode 100644 index 0000000000..766c5a51d9 --- /dev/null +++ b/packages/gpe-scap/gpe-scap-1.3/allow-glade-2.4.0.patch @@ -0,0 +1,26 @@ +Index: gpe-scap-1.3/configure +=================================================================== +--- gpe-scap-1.3.orig/configure 2008-01-17 17:01:49.000000000 +0100 ++++ gpe-scap-1.3/configure 2008-01-17 17:03:01.000000000 +0100 +@@ -6327,7 +6327,7 @@ + + + +-GLADE_MODULES="libglade-2.0 >= 2.4.2" ++GLADE_MODULES="libglade-2.0 >= 2.4.0" + + pkg_failed=no + { echo "$as_me:$LINENO: checking for GLADE" >&5 +Index: gpe-scap-1.3/configure.ac +=================================================================== +--- gpe-scap-1.3.orig/configure.ac 2008-01-17 17:35:15.000000000 +0100 ++++ gpe-scap-1.3/configure.ac 2008-01-17 17:35:20.000000000 +0100 +@@ -29,7 +29,7 @@ + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + +-GLADE_MODULES="libglade-2.0 >= 2.4.2" ++GLADE_MODULES="libglade-2.0 >= 2.4.0" + PKG_CHECK_MODULES(GLADE, $GLADE_MODULES) + AC_SUBST(GLADE_CFLAGS) + AC_SUBST(GLADE_LIBS) diff --git a/packages/gpe-scap/gpe-scap_1.3.bb b/packages/gpe-scap/gpe-scap_1.3.bb index aec5819e6e..438a80f4a3 100644 --- a/packages/gpe-scap/gpe-scap_1.3.bb +++ b/packages/gpe-scap/gpe-scap_1.3.bb @@ -11,3 +11,5 @@ DEPENDS = "glib-2.0 gtk+ libgpewidget libglade libsoup" GPE_TARBALL_SUFFIX = "bz2" inherit gpe autotools + +SRC_URI += " file://allow-glade-2.4.0.patch;patch=1" diff --git a/packages/gpe-session-scripts/files/angstrom/matchbox-session b/packages/gpe-session-scripts/files/angstrom/matchbox-session index b0bec8c742..d48b9ed308 100644 --- a/packages/gpe-session-scripts/files/angstrom/matchbox-session +++ b/packages/gpe-session-scripts/files/angstrom/matchbox-session @@ -1,8 +1,6 @@ #!/bin/sh -XRES=`xdpyinfo | awk '/dimensions/ { print $2 }' | cut -dx -f1` - - matchbox-desktop & - -matchbox-panel --no-flip --orientation south & +#XRES=`xdpyinfo | awk '/dimensions/ { print $2 }' | cut -dx -f1` +matchbox-desktop & +matchbox-panel --no-flip --orientation south & diff --git a/packages/gpe-session-scripts/files/matchbox-session b/packages/gpe-session-scripts/files/matchbox-session index e4c0e0c68e..77d5db9df8 100644 --- a/packages/gpe-session-scripts/files/matchbox-session +++ b/packages/gpe-session-scripts/files/matchbox-session @@ -1,8 +1,6 @@ #!/bin/sh -XRES=`xdpyinfo | awk '/dimensions/ { print $2 }' | cut -dx -f1` - - matchbox-desktop & - -MB_MENU_PANEL_DISABLED=1 matchbox-panel --orientation south & +#XRES=`xdpyinfo | awk '/dimensions/ { print $2 }' | cut -dx -f1` +matchbox-desktop & +MB_MENU_PANEL_DISABLED=1 matchbox-panel --orientation south & diff --git a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb index b8d91538c6..bab26e7df0 100644 --- a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb +++ b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb @@ -11,7 +11,7 @@ DEPENDS = "matchbox-wm matchbox-panel xtscal gpe-question matchbox-applet-inputm SRC_URI += "file://matchbox-session \ file://disable-composite.xsettings" -PR = "r10" +PR = "r11" #apply a patch to set the fontsize for bigdpi (200+) devices to 5 SRC_URI_append_hx4700 = " file://highdpifontfix.patch;patch=1" diff --git a/packages/gpephone/addressbook_svn.bb b/packages/gpephone/addressbook_svn.bb index 663c38c09c..cb913bc663 100644 --- a/packages/gpephone/addressbook_svn.bb +++ b/packages/gpephone/addressbook_svn.bb @@ -3,7 +3,7 @@ DESCRIPTION = "LiPS address book" SECTION = "gpe" PRIORITY = "optional" PR = "r0" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/almmgrd_svn.bb b/packages/gpephone/almmgrd_svn.bb new file mode 100644 index 0000000000..70d02ff018 --- /dev/null +++ b/packages/gpephone/almmgrd_svn.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Alarm manager daemon" +SECTION = "gpephone" +PRIORITY = "required" +LICENSE = "LiPS" +DEPENDS = "glib-2.0 libiac sqlite3 libcalenabler2 libalmmgr" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +DEFAULT_PREFERENCE = "-1" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = "${WORKDIR}/${PN}" diff --git a/packages/gpephone/calendar2_svn.bb b/packages/gpephone/calendar2_svn.bb new file mode 100644 index 0000000000..a68b8824f3 --- /dev/null +++ b/packages/gpephone/calendar2_svn.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Calendar application for GPE Phone Edition" +LICENSE = "LiPS" +SECTION = "gpe" +PRIORITY = "optional" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +DEPENDS = "gtk+ libgpewidget libgpephone libgemwidget dbus-glib libcalenabler2 libiac" + +inherit gpephone autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +FILES_${PN} += "${datadir}/database ${datadir}/res" diff --git a/packages/gpephone/contact_svn.bb b/packages/gpephone/contact_svn.bb index 0b785ac9f0..ef4d2707ab 100644 --- a/packages/gpephone/contact_svn.bb +++ b/packages/gpephone/contact_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpe" PRIORITY = "optional" LICENSE = "LiPS" DEPENDS = "gtk+ libgpephone dbus-glib libabenabler2 librecord2 libgemwidget" -PV = "0.0+svn-${SRCREV}" +PV = "0.0+svnr-${SRCREV}" PR = "r0" inherit gpephone autotools diff --git a/packages/gpephone/dialer_svn.bb b/packages/gpephone/dialer_svn.bb new file mode 100644 index 0000000000..7b1b883652 --- /dev/null +++ b/packages/gpephone/dialer_svn.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "GPE Phone Edition phone dialer" +SECTION = "gpe" +PRIORITY = "optional" +LICENSE = "LiPS" +DEPENDS = "gtk+ libgpephone libgemwidget" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone autotools + +SRC_URI = ${GPEPHONE_SVN} + +EXTRA_OECONF = "--disable-hiker" + +S = "${WORKDIR}/${PN}" + + +FILES_${PN} += "${datadir}" + +DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/firewall_svn.bb b/packages/gpephone/firewall_svn.bb index 77b2122449..b3d7aee848 100644 --- a/packages/gpephone/firewall_svn.bb +++ b/packages/gpephone/firewall_svn.bb @@ -5,8 +5,6 @@ PRIORITY = "optional" PR = "r0" PV = "0.0+svnr-${SRCREV}" -SRCREV_pn-${PN} ?= "1400" - DEFAULT_PREFERENCE = "-1" DEPENDS = "gtk+ libmsgenabler libabenabler libiac libgpewidget libgpephone gconf-dbus" diff --git a/packages/gpephone/gpe-applauncher_svn.bb b/packages/gpephone/gpe-applauncher_svn.bb index 311d2eef60..9360c6f6d3 100644 --- a/packages/gpephone/gpe-applauncher_svn.bb +++ b/packages/gpephone/gpe-applauncher_svn.bb @@ -3,7 +3,7 @@ DESCRIPTION = "A cellphone application launcher." SECTION = "gpe" PRIORITY = "optional" PR = "r1" -PV = "0.11+svn-${SRCREV}" +PV = "0.11+svnr-${SRCREV}" SRC_URI_OVERRIDES_PACKAGE_ARCH = "0" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/libabenabler2_svn.bb b/packages/gpephone/libabenabler2_svn.bb index ea070092a2..004ba3ec46 100644 --- a/packages/gpephone/libabenabler2_svn.bb +++ b/packages/gpephone/libabenabler2_svn.bb @@ -3,15 +3,15 @@ SECTION = "gpe/libs" PRIORITY = "optional" LICENSE = "LGPL" DEPENDS = "glib-2.0 librecord2 gconf sqlite3" -PV = "0.0+svn-${SRCDATE}" +PV = "0.0+svnr-${SRCREV}" PR = "r0" +inherit gpephone pkgconfig autotools + SRC_URI = "${GPEPHONE_SVN}" S = "${WORKDIR}/${PN}" -inherit gpephone pkgconfig autotools - do_stage () { autotools_stage_all } diff --git a/packages/gpephone/libabenabler_svn.bb b/packages/gpephone/libabenabler_svn.bb index f362c853d6..4468c3580e 100644 --- a/packages/gpephone/libabenabler_svn.bb +++ b/packages/gpephone/libabenabler_svn.bb @@ -4,7 +4,7 @@ SECTION = "gpe/libs" PRIORITY = "optional" DEPENDS = "glib-2.0 librecord liblipsevent libim sqlite3" PR = "r0" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/libalmmgr_svn.bb b/packages/gpephone/libalmmgr_svn.bb new file mode 100644 index 0000000000..cbae037109 --- /dev/null +++ b/packages/gpephone/libalmmgr_svn.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "LiPS alarm framework library." +SECTION = "gpe/libs" +PRIORITY = "optional" +LICENSE = "LiPS" +DEPENDS = "glib-2.0 libiac" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libcalenabler2_svn.bb b/packages/gpephone/libcalenabler2_svn.bb index 6144e055de..e3bf129ab1 100644 --- a/packages/gpephone/libcalenabler2_svn.bb +++ b/packages/gpephone/libcalenabler2_svn.bb @@ -2,17 +2,16 @@ DESCRIPTION = "LiPS calendar API." SECTION = "gpe/libs" PRIORITY = "optional" LICENSE = "LiPS" -DEPENDS = "glib-2.0 sqlite3 libical" -PV = "0.0+svn-${SRCREV}" +DEPENDS = "glib-2.0 sqlite3 libical libalmmgr" +PV = "0.0+svnr-${SRCREV}" PR = "r0" -SRC_URI = "${GPEPHONE_SVN}" -S = "${WORKDIR}/${PN}" +inherit gpephone pkgconfig autotools -GPE_TARBALL_SUFFIX = "bz2" +SRC_URI = "${GPEPHONE_SVN}" -inherit gpephone pkgconfig autotools +S = "${WORKDIR}/${PN}" do_stage () { autotools_stage_all diff --git a/packages/gpephone/libgemwidget_svn.bb b/packages/gpephone/libgemwidget_svn.bb new file mode 100644 index 0000000000..f4e2e350d8 --- /dev/null +++ b/packages/gpephone/libgemwidget_svn.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Extended widget library for GPE phone environment." +LICENSE = "LiPS" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "gtk+ libiac libgpephone gnome-vfs libxdamage libxcomposite libgpewidget" +PV = "1.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +FILES_${PN} += "${datadir}/gem" + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libiac2/.mtn2git_empty b/packages/gpephone/libiac2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gpephone/libiac2/.mtn2git_empty diff --git a/packages/gpephone/libiac2/disable-tests.patch b/packages/gpephone/libiac2/disable-tests.patch new file mode 100644 index 0000000000..5345d1cc97 --- /dev/null +++ b/packages/gpephone/libiac2/disable-tests.patch @@ -0,0 +1,25 @@ +--- Makefile.am~ 2008-01-10 17:43:18.000000000 +0100 ++++ Makefile.am 2008-01-10 17:43:18.000000000 +0100 +@@ -1,4 +1,4 @@ +-SUBDIRS = src include test po ++SUBDIRS = src include po + + if BUILD_DAEMON + SUBDIRS += daemon +--- configure.ac~ 2008-01-10 17:50:03.000000000 +0100 ++++ configure.ac 2008-01-10 17:50:03.000000000 +0100 +@@ -40,14 +40,11 @@ + AM_CONDITIONAL(BUILD_DAEMON, + test x$enable_daemon = xyes) + +-AM_PATH_CUNIT +- + AC_CONFIG_FILES([ + Makefile + daemon/Makefile + src/Makefile + include/Makefile +-test/Makefile + po/Makefile.in + libiac2.pc + ]) diff --git a/packages/gpephone/libiac2_svn.bb b/packages/gpephone/libiac2_svn.bb new file mode 100644 index 0000000000..7ae0c7b693 --- /dev/null +++ b/packages/gpephone/libiac2_svn.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "LiPS IPC library." +SECTION = "gpe/libs" +PRIORITY = "optional" +LICENSE = "LiPS" +DEPENDS = "gtk+ gtk-doc dbus-glib" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN} \ + file://disable-tests.patch;patch=1;pnum=0" + +EXTRA_OECONF = "--enable-gui --enable-test=no --with-cuint=no" + +S = ${WORKDIR}/${PN} + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libiac_svn.bb b/packages/gpephone/libiac_svn.bb new file mode 100644 index 0000000000..0cd1d6487d --- /dev/null +++ b/packages/gpephone/libiac_svn.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "LiPS IPC library." +SECTION = "gpe/libs" +PRIORITY = "optional" +LICENSE = "LiPS" +DEPENDS = "gtk+ gtk-doc" +PV = "1.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libim2/.mtn2git_empty b/packages/gpephone/libim2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gpephone/libim2/.mtn2git_empty diff --git a/packages/gpephone/libim2/disable-tests.patch b/packages/gpephone/libim2/disable-tests.patch new file mode 100644 index 0000000000..c794abd777 --- /dev/null +++ b/packages/gpephone/libim2/disable-tests.patch @@ -0,0 +1,11 @@ +--- libim2/Makefile.am~ 2008-01-12 01:24:42.000000000 +0100 ++++ libim2/Makefile.am 2008-01-12 01:24:42.000000000 +0100 +@@ -2,7 +2,7 @@ + # have all needed files, that a GNU package needs + AUTOMAKE_OPTIONS = foreign 1.4 + +-SUBDIRS = src include test ++SUBDIRS = src include + + #servicesdir = @DBUS_SERVICES_DIR@ + #services_DATA = improxy.service diff --git a/packages/gpephone/libim2_svn.bb b/packages/gpephone/libim2_svn.bb new file mode 100644 index 0000000000..510877ce3e --- /dev/null +++ b/packages/gpephone/libim2_svn.bb @@ -0,0 +1,22 @@ +LICENSE = "LGPL" +DESCRIPTION = "LiPS instant messenger library." +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "glib-2.0 librecord2 libabenabler2 liblipsevent2 telepathy-glib telepathy-mission-control" +PV = "0.0+svnr-${SRCREV}" +PR = "r1" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN} \ + file://disable-tests.patch;patch=1" + +EXTRA_OECONF = "--enable-test=no" + +S = ${WORKDIR}/libim2 + +FILES_${PN} += " ${datadir}/dbus-1" + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/liblipsevent2_svn.bb b/packages/gpephone/liblipsevent2_svn.bb new file mode 100644 index 0000000000..5d2330c671 --- /dev/null +++ b/packages/gpephone/liblipsevent2_svn.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "LiPS event model library." +LICENSE = "LiPS" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "glib-2.0" +PV = "0.0+svnr-${SRCREV}" +PR = "r0" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libmsgenabler2_svn.bb b/packages/gpephone/libmsgenabler2_svn.bb new file mode 100644 index 0000000000..a294dc93b7 --- /dev/null +++ b/packages/gpephone/libmsgenabler2_svn.bb @@ -0,0 +1,23 @@ +LICENSE = "LiPS" +DESCRIPTION = "LiPS message backend library." +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "glib-2.0 dbus-glib librecord2 liblipsevent2 telepathy-mission-control libgsmd-lips" +PV = "0.0+svnr-${SRCREV}" +PR = "r2" + +DEFAULT_PREFERENCE = "-1" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +S = ${WORKDIR}/${PN} + +FILES_${PN} += "${datadir}/libmsgenabler2 ${libdir}/msg-providers/*.0" +FILES_${PN}-dev += "${libdir}/msg-providers/*.so ${libdir}/msg-providers/*a" +FILES_${PN}-dbg += "${libdir}/msg-providers/.debug" + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/libmsgenabler_1.0.bb b/packages/gpephone/libmsgenabler_1.0.bb index 0522507db0..b8d202a5dd 100644 --- a/packages/gpephone/libmsgenabler_1.0.bb +++ b/packages/gpephone/libmsgenabler_1.0.bb @@ -3,12 +3,14 @@ DESCRIPTION = "LiPS message backend library." SECTION = "gpe/libs" PRIORITY = "optional" DEPENDS = "glib-2.0 dbus-glib librecord sqlite3" -PR = "r0" +PR = "r1" GPE_TARBALL_SUFFIX = "bz2" inherit gpephone pkgconfig autotools +FILES_${PN} += "$(datadir)/libmsgenabler" + do_stage () { autotools_stage_all } diff --git a/packages/gpephone/libmsgenabler_svn.bb b/packages/gpephone/libmsgenabler_svn.bb new file mode 100644 index 0000000000..c8672e143e --- /dev/null +++ b/packages/gpephone/libmsgenabler_svn.bb @@ -0,0 +1,21 @@ +LICENSE = "LiPS" +DESCRIPTION = "LiPS message backend library." +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "glib-2.0 dbus-glib librecord sqlite3" +PV = "1.0+svnr-${SRCREV}" +PR = "r0" + +DEFAULT_PREFERENCE = "-1" + +inherit gpephone pkgconfig autotools + +SRC_URI = "${GPEPHONE_SVN}" + +FILES_${PN} += "$(datadir)/libmsgenabler" + +S = "${WORKDIR}/${PN}" + +do_stage () { + autotools_stage_all +} diff --git a/packages/gpephone/librecord2_svn.bb b/packages/gpephone/librecord2_svn.bb index 6580f6566f..378032dabf 100644 --- a/packages/gpephone/librecord2_svn.bb +++ b/packages/gpephone/librecord2_svn.bb @@ -4,7 +4,7 @@ SECTION = "gpe/libs" PRIORITY = "optional" DEPENDS = "glib-2.0 e2fsprogs-libs sqlite3" PR = "r0" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/libsettings_svn.bb b/packages/gpephone/libsettings_svn.bb index e436849d74..74e1190c5a 100644 --- a/packages/gpephone/libsettings_svn.bb +++ b/packages/gpephone/libsettings_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpe/libs" PRIORITY = "required" LICENSE = "LiPS" DEPENDS = "glib-2.0 gconf-dbus" -PV = "0.0+svn-${SRCDATE}" +PV = "0.0+svnr-${SRCREV}" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/machined_svn.bb b/packages/gpephone/machined_svn.bb index 5c96cfa97c..0c5ccfff51 100644 --- a/packages/gpephone/machined_svn.bb +++ b/packages/gpephone/machined_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpephone" PRIORITY = "required" LICENSE = "GPL" DEPENDS = "glib-2.0 dbus-glib gtk+" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" PR = "r0" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/ptim-engine_svn.bb b/packages/gpephone/ptim-engine_svn.bb index 37c99f7dd1..281ee72c26 100644 --- a/packages/gpephone/ptim-engine_svn.bb +++ b/packages/gpephone/ptim-engine_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpephone" PRIORITY = "optional" LICENSE = "LiPS" DEPENDS = "gtk+ ptim-headers" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" PR = "r1" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/ptim-headers_svn.bb b/packages/gpephone/ptim-headers_svn.bb index 304c103505..4384feccbd 100644 --- a/packages/gpephone/ptim-headers_svn.bb +++ b/packages/gpephone/ptim-headers_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpephone" PRIORITY = "optional" LICENSE = "LiPS" DEPENDS = "gtk+" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" inherit gpephone pkgconfig autotools diff --git a/packages/gpephone/ptim-helper_svn.bb b/packages/gpephone/ptim-helper_svn.bb index 3461de6225..71b004e92b 100644 --- a/packages/gpephone/ptim-helper_svn.bb +++ b/packages/gpephone/ptim-helper_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpephone" PRIORITY = "optional" LICENSE = "LiPS" DEPENDS = "gtk+ ptim-headers" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" PR = "r1" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/ptim-manager_svn.bb b/packages/gpephone/ptim-manager_svn.bb index 5c8042c5d5..da0f4e6af4 100644 --- a/packages/gpephone/ptim-manager_svn.bb +++ b/packages/gpephone/ptim-manager_svn.bb @@ -3,7 +3,7 @@ SECTION = "gpephone" PRIORITY = "optional" LICENSE = "LiPS" DEPENDS = "gtk+ ptim-headers libiac" -PV = "0.1+svn-${SRCDATE}" +PV = "0.1+svnr-${SRCREV}" PR = "r2" DEFAULT_PREFERENCE = "-1" diff --git a/packages/gpephone/quickdial_svn.bb b/packages/gpephone/quickdial_svn.bb index 4533bf4ee8..2a52510d86 100644 --- a/packages/gpephone/quickdial_svn.bb +++ b/packages/gpephone/quickdial_svn.bb @@ -5,11 +5,9 @@ PRIORITY = "optional" PR = "r0" PV = "0.0+svnr-${SRCREV}" -SRCREV_pn-${PN} ?= "1393" - DEFAULT_PREFERENCE = "-1" -DEPENDS = "gtk+ librecord2 libgpephone hiker" +DEPENDS = "gtk+ librecord2 libgpephone" inherit gpephone autotools pkgconfig @@ -17,5 +15,6 @@ SRC_URI = "${GPEPHONE_SVN}" S = "${WORKDIR}/${PN}" +EXTRA_OECONF = "--disable-hiker" FILES_${PN} += "${datadir}/qdial/database" diff --git a/packages/gpephone/useen_svn.bb b/packages/gpephone/useen_svn.bb index 93d180ba52..1a180683a7 100644 --- a/packages/gpephone/useen_svn.bb +++ b/packages/gpephone/useen_svn.bb @@ -5,8 +5,6 @@ PRIORITY = "optional" PR = "r0" PV = "0.0+svnr-${SRCREV}" -SRCREV_pn-${PN} ?= "1400" - DEFAULT_PREFERENCE = "-1" DEPENDS = "glib-2.0" diff --git a/packages/gpsdrive/gpsdrive-pda/.mtn2git_empty b/packages/gpsdrive/gpsdrive-pda/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gpsdrive/gpsdrive-pda/.mtn2git_empty diff --git a/packages/gpsdrive/gpsdrive-pda/makefile.patch b/packages/gpsdrive/gpsdrive-pda/makefile.patch new file mode 100644 index 0000000000..2ec4f6a6d8 --- /dev/null +++ b/packages/gpsdrive/gpsdrive-pda/makefile.patch @@ -0,0 +1,16 @@ +--- gpsdrive-2.10pre2-ipaq/Makefile 2007-11-11 13:29:10.000000000 +0300 ++++ gpsdrive-2.10pre2-ipaq.patched/Makefile 2008-01-12 19:18:46.000000000 +0300 +@@ -5,11 +5,11 @@ + STRIP = arm-linux-strip + + DEFS = -DLOCALEDIR=\"/usr/share/locale\" -DDATADIR=\"/usr/share\" +-INCLUDES = -I. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo ++INCLUDES = -I. `pkg-config gtk+-2.0 --cflags` + + CFLAGS = -O2 -pipe + +-LIBRARIES = -L/usr/lib -lcrypt -lpthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lm -lc ++LIBRARIES = -lcrypt -lpthread -lm -lc `pkg-config gtk+-2.0 --libs` + LDFLAGS = + + SOURCES = gpsdrive.c speech_out.c track.c settings.c splash.c gpsserial.c gpsmisc.c \ diff --git a/packages/gpsdrive/gpsdrive-pda_2.10pre2.bb b/packages/gpsdrive/gpsdrive-pda_2.10pre2.bb new file mode 100644 index 0000000000..6350053768 --- /dev/null +++ b/packages/gpsdrive/gpsdrive-pda_2.10pre2.bb @@ -0,0 +1,34 @@ +inherit autotools pkgconfig + +PR = "r1" +DESCRIPTION = "GPS navigation/map display software, PDA-optimized version" +HOMEPAGE = "http://www.gedanken.demon.co.uk/gpsdrive-ipaq/" +DEPENDS = "virtual/libc gtk+ libpcre gpsd" +RDEPENDS_${PN} = "gdk-pixbuf-loader-gif gpsd" +SECTION = "x11" +PRIORITY = "optional" +LICENSE = "GPL" + +inherit pkgconfig + +SRC_URI = "http://www.gedanken.demon.co.uk/gpsdrive-ipaq/gpsdrive-2.10pre2-ipaq-r4.tar.gz \ + file://makefile.patch;patch=1 " + +S = "${WORKDIR}/gpsdrive-2.10pre2-ipaq" + +FILES_${PN} = "${bindir}/gpsdrive ${datadir}/gpsdrive ${datadir}/pixmaps ${datadir}/applications" +FILES_${PN} += "${datadir}/${PN}" + +do_compile () { + oe_runmake "CC=${CC}" "LD=${CC}" "STRIP=${STRIP}" all +} + +do_install () { + mkdir -p ${D}${datadir} + cp -a ipkg-data/usr/share/* ${D}${datadir}/ + cp -a README.iPAQ.txt ${D}${datadir}/gpsdrive + cp -a COPYING ${D}${datadir}/gpsdrive + cp -a original-docs ${D}${datadir}/gpsdrive + mkdir -p ${D}${bindir} + install -m 0755 gpsdrive ${D}${bindir}/ +} diff --git a/packages/gsm/files/stdint.patch b/packages/gsm/files/stdint.patch new file mode 100644 index 0000000000..bafe54cd44 --- /dev/null +++ b/packages/gsm/files/stdint.patch @@ -0,0 +1,17 @@ +--- include/libtapi/tel_bas_types.h~ 2008-01-16 12:48:19.000000000 +0100 ++++ include/libtapi/tel_bas_types.h 2008-01-16 12:48:19.000000000 +0100 +@@ -27,13 +27,7 @@ + /****************************************************************************** + * Type definitions + *****************************************************************************/ +-#ifndef _STDINT_H +-typedef unsigned long uint32_t; +-typedef unsigned short uint16_t; +-typedef unsigned char uint8_t; +-/* typedef long int32_t; */ +-typedef unsigned int size_t; +-#endif ++#include <stdint.h> + + + typedef unsigned long tel_bool_t; diff --git a/packages/gsm/libgsmd-lips_svn.bb b/packages/gsm/libgsmd-lips_svn.bb new file mode 100644 index 0000000000..c255245ff1 --- /dev/null +++ b/packages/gsm/libgsmd-lips_svn.bb @@ -0,0 +1,15 @@ +BASEPN = "gsmd-lips" +CONFLICTNAME = "gsmd-devel gsmd" + +require gsmd.inc + +RPROVIDES_${PN} = "libgsmd0 libgsmd gsmd gsmd-devel libtapi libgsmd-dev" + +PV = "0.0+svnr${SRCREV}" +PR = "r2" + +SRC_URI = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source/;module=gsm \ + file://stdint.patch;patch=1;pnum=0 \ + file://gsmd \ + file://default" + diff --git a/packages/gtk+/gtk+-2.10.14/small-gtkfilechooser.patch b/packages/gtk+/gtk+-2.10.14/small-gtkfilechooser.patch new file mode 100644 index 0000000000..7681f1170f --- /dev/null +++ b/packages/gtk+/gtk+-2.10.14/small-gtkfilechooser.patch @@ -0,0 +1,222 @@ +diff -ur gtk+-2.10.14.org/gtk/gtkfilechooserdefault.c gtk+-2.10.14/gtk/gtkfilechooserdefault.c +--- gtk+-2.10.14.org/gtk/gtkfilechooserdefault.c 2007-07-16 22:44:17.000000000 +0300 ++++ gtk+-2.10.14/gtk/gtkfilechooserdefault.c 2008-01-05 01:32:58.000000000 +0200 +@@ -243,7 +243,9 @@ + /* Icon size for if we can't get it from the theme */ + #define FALLBACK_ICON_SIZE 16 + +-#define PREVIEW_HBOX_SPACING 12 ++#define PREVIEW_HBOX_SPACING 2 ++#define NORMAL_SPACING 2 ++#define DOUBLE_SPACING 2 + #define NUM_LINES 45 + #define NUM_CHARS 60 + +@@ -425,6 +427,17 @@ + static void location_switch_to_path_bar (GtkFileChooserDefault *impl); + static void settings_load (GtkFileChooserDefault *impl); + ++int ++_gtk_is_pda_mode() ++{ ++ /* PDA mode is when we have small screen width, plus small overall screen area ++ too. What we want to do when it is active is to prefer vertical packing over ++ horizontal (so we can show user filenames of as long length as possible), yet ++ still layout vertical space in such way so user can be able to see as many ++ files as possible. And of course, we save space overall - no big spacings and ++ borders. */ ++ return gdk_screen_width() < 490; ++} + + + /* Drag and drop interface declarations */ +@@ -689,7 +702,7 @@ + impl->pending_select_paths = NULL; + impl->location_mode = LOCATION_MODE_PATH_BAR; + +- gtk_box_set_spacing (GTK_BOX (impl), 12); ++ gtk_box_set_spacing (GTK_BOX (impl), DOUBLE_SPACING); + + impl->tooltips = gtk_tooltips_new (); + g_object_ref_sink (impl->tooltips); +@@ -3603,8 +3616,9 @@ + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *widget; ++ gboolean is_pda = _gtk_is_pda_mode(); + +- vbox = gtk_vbox_new (FALSE, 6); ++ vbox = (is_pda?gtk_hbox_new:gtk_vbox_new) (FALSE, NORMAL_SPACING); + gtk_widget_show (vbox); + + /* Shortcuts tree */ +@@ -3614,7 +3628,7 @@ + + /* Box for buttons */ + +- hbox = gtk_hbox_new (TRUE, 6); ++ hbox = (is_pda?gtk_vbox_new:gtk_hbox_new) (TRUE, NORMAL_SPACING); + gtk_size_group_add_widget (size_group, hbox); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); +@@ -3622,7 +3636,7 @@ + /* Add bookmark button */ + + impl->browse_shortcuts_add_button = button_new (impl, +- _("_Add"), ++ "", + GTK_STOCK_ADD, + FALSE, + TRUE, +@@ -3634,14 +3648,22 @@ + /* Remove bookmark button */ + + impl->browse_shortcuts_remove_button = button_new (impl, +- _("_Remove"), ++ "", + GTK_STOCK_REMOVE, + FALSE, + TRUE, + G_CALLBACK (remove_bookmark_button_clicked_cb)); ++ if (!is_pda) { ++ /* Remove button is pretty reduntant, as that choice is available from popup menu (and would ++ be intuitively expected to be there; compare that with the "Add to shortucts" in popup ++ in files pane - most users would never try that and never new what shortcuts are). ++ If we suspect we can be short of screen space (PDA device is what often has portrait ++ layout), don't pack it, to allow more visually pleasing layout when minimizing location ++ pane. Note that we still instantiate it, as it is referenced thruout the code. */ + gtk_box_pack_start (GTK_BOX (hbox), impl->browse_shortcuts_remove_button, TRUE, TRUE, 0); + gtk_tooltips_set_tip (impl->tooltips, impl->browse_shortcuts_remove_button, + _("Remove the selected bookmark"), NULL); ++ } + + return vbox; + } +@@ -4221,7 +4243,7 @@ + GtkWidget *hbox; + GtkWidget *widget; + +- vbox = gtk_vbox_new (FALSE, 6); ++ vbox = gtk_vbox_new (FALSE, NORMAL_SPACING); + gtk_widget_show (vbox); + + /* Box for lists and preview */ +@@ -4237,13 +4259,13 @@ + + /* Preview */ + +- impl->preview_box = gtk_vbox_new (FALSE, 12); ++ impl->preview_box = gtk_vbox_new (FALSE, DOUBLE_SPACING); + gtk_box_pack_start (GTK_BOX (hbox), impl->preview_box, FALSE, FALSE, 0); + /* Don't show preview box initially */ + + /* Filter combo */ + +- impl->filter_combo_hbox = gtk_hbox_new (FALSE, 12); ++ impl->filter_combo_hbox = gtk_hbox_new (FALSE, DOUBLE_SPACING); + + widget = filter_create (impl); + +@@ -4336,13 +4358,13 @@ + + location_switch_to_path_bar (impl); + +- vbox = gtk_vbox_new (FALSE, 12); ++ vbox = gtk_vbox_new (FALSE, DOUBLE_SPACING); + + table = gtk_table_new (2, 2, FALSE); + gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); + gtk_widget_show (table); +- gtk_table_set_row_spacings (GTK_TABLE (table), 12); +- gtk_table_set_col_spacings (GTK_TABLE (table), 12); ++ gtk_table_set_row_spacings (GTK_TABLE (table), DOUBLE_SPACING); ++ gtk_table_set_col_spacings (GTK_TABLE (table), DOUBLE_SPACING); + + /* Label */ + +@@ -4653,10 +4675,10 @@ + + /* size group is used by the [+][-] buttons and the filter combo */ + size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); +- vbox = gtk_vbox_new (FALSE, 12); ++ vbox = gtk_vbox_new (FALSE, DOUBLE_SPACING); + + /* Location widgets */ +- hbox = gtk_hbox_new (FALSE, 12); ++ hbox = gtk_hbox_new (FALSE, DOUBLE_SPACING); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + +@@ -4678,7 +4700,7 @@ + + /* Box for the location label and entry */ + +- impl->location_entry_box = gtk_hbox_new (FALSE, 12); ++ impl->location_entry_box = gtk_hbox_new (FALSE, DOUBLE_SPACING); + gtk_box_pack_start (GTK_BOX (vbox), impl->location_entry_box, FALSE, FALSE, 0); + + impl->location_label = gtk_label_new_with_mnemonic (_("_Location:")); +@@ -4686,12 +4708,16 @@ + gtk_box_pack_start (GTK_BOX (impl->location_entry_box), impl->location_label, FALSE, FALSE, 0); + + /* Paned widget */ +- hpaned = gtk_hpaned_new (); ++ if (_gtk_is_pda_mode()) ++ hpaned = gtk_vpaned_new (); ++ else ++ hpaned = gtk_hpaned_new (); ++ + gtk_widget_show (hpaned); + gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0); + + widget = shortcuts_pane_create (impl, size_group); +- gtk_paned_pack1 (GTK_PANED (hpaned), widget, FALSE, FALSE); ++ gtk_paned_pack1 (GTK_PANED (hpaned), widget, FALSE, TRUE); /* Shortcuts can shrink beyond requested size */ + widget = file_pane_create (impl, size_group); + gtk_paned_pack2 (GTK_PANED (hpaned), widget, TRUE, FALSE); + +diff -ur gtk+-2.10.14.org/gtk/gtkfilechooserdialog.c gtk+-2.10.14/gtk/gtkfilechooserdialog.c +--- gtk+-2.10.14.org/gtk/gtkfilechooserdialog.c 2007-07-16 22:44:16.000000000 +0300 ++++ gtk+-2.10.14/gtk/gtkfilechooserdialog.c 2008-01-05 01:28:35.000000000 +0200 +@@ -32,8 +32,12 @@ + + #include <stdarg.h> + ++#define NORMAL_SPACING 2 ++#define DOUBLE_SPACING 2 ++ + #define GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE(o) (GTK_FILE_CHOOSER_DIALOG (o)->priv) + ++extern int _gtk_is_pda_mode(void); + static void gtk_file_chooser_dialog_finalize (GObject *object); + + static GObject* gtk_file_chooser_dialog_constructor (GType type, +@@ -162,8 +166,13 @@ + + gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); + +- if (width) +- *width = MIN (*width, (monitor.width * 3) / 4); ++ if (width) { ++ if (_gtk_is_pda_mode()) ++ /* If width is physically small, use it all */ ++ *width = monitor.width; ++ else ++ *width = MIN (*width, (monitor.width * 3) / 4); ++ } + + if (height) + *height = MIN (*height, (monitor.height * 3) / 4); +@@ -430,8 +439,8 @@ + * http://developer.gnome.org/projects/gup/hig/1.0/windows.html#alert-spacing + */ + +- gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox), 12); +- gtk_box_set_spacing (GTK_BOX (dialog->vbox), 24); ++ gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox), DOUBLE_SPACING); ++ gtk_box_set_spacing (GTK_BOX (dialog->vbox), DOUBLE_SPACING * 2); + + gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 0); + gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6); +Only in gtk+-2.10.14/.pc/migration.patch/gtk: gtkmigration.c +Only in gtk+-2.10.14: small-gtkfilechooser.patch diff --git a/packages/gtk+/gtk+_2.10.14.bb b/packages/gtk+/gtk+_2.10.14.bb index 3efe492d34..d8ae8ae9ba 100644 --- a/packages/gtk+/gtk+_2.10.14.bb +++ b/packages/gtk+/gtk+_2.10.14.bb @@ -1,6 +1,6 @@ require gtk-2.10.inc -PR = "r7" +PR = "r8" SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-${PV}.tar.bz2 \ file://no-xwc.patch;patch=1 \ @@ -11,6 +11,7 @@ SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-${PV}.tar.bz2 \ file://xsettings.patch;patch=1 \ file://scroll-timings.patch;patch=1 \ file://small-gtkfilesel.patch;patch=1 \ + file://small-gtkfilechooser.patch;patch=1 \ file://migration.patch;patch=1;pnum=0 \ file://run-iconcache.patch;patch=1 \ file://hardcoded_libtool.patch;patch=1 \ diff --git a/packages/hal/hal_0.5.9.bb b/packages/hal/hal_0.5.9.bb index 064e7985ca..e835f80434 100644 --- a/packages/hal/hal_0.5.9.bb +++ b/packages/hal/hal_0.5.9.bb @@ -5,7 +5,7 @@ RDEPENDS += "udev hal-info" #RDEPENDS_hal-device-manager = "python hal python-pygnome" RRECOMMENDS = "udev-utils" -PR = "r4" +PR = "r5" SRC_URI += "file://99_hal \ file://20hal \ @@ -38,10 +38,12 @@ do_install_append() { } do_stage() { - autotools_stage_all - install -d ${STAGING_LIBDIR} - install -m 755 libhal/.libs/libhal.so.1.0.0 ${STAGING_LIBDIR}/libhal.so - install -m 755 libhal-storage/.libs/libhal-storage.so.1.0.0 ${STAGING_LIBDIR}/libhal-storage.so + oe_libinstall -C libhal -a -so libhal ${STAGING_LIBDIR} + oe_libinstall -C libhal-storage -a -so libhal-storage ${STAGING_LIBDIR} + + install -d ${STAGING_INCDIR}/hal + install -m 0644 libhal/libhal.h ${STAGING_INCDIR}/hal + install -m 0644 libhal-storage/libhal-storage.h ${STAGING_INCDIR}/hal } # At the time the postinst runs, dbus might not be setup so only restart if running diff --git a/packages/imagemagick/imagemagick-native_6.3.5-10.bb b/packages/imagemagick/imagemagick-native_6.3.5-10.bb new file mode 100644 index 0000000000..b03e18e9c1 --- /dev/null +++ b/packages/imagemagick/imagemagick-native_6.3.5-10.bb @@ -0,0 +1,3 @@ +require imagemagick_${PV}.bb +DEPENDS ="libtool-native" +inherit native diff --git a/packages/images/openmoko-python-devel-image.bb b/packages/images/openmoko-python-devel-image.bb new file mode 100644 index 0000000000..9d2a8db2c6 --- /dev/null +++ b/packages/images/openmoko-python-devel-image.bb @@ -0,0 +1,6 @@ +require openmoko-image.bb + +IMAGE_INSTALL += "\ + task-openmoko-python-devel \ +" + diff --git a/packages/images/openprotium-image.bb b/packages/images/openprotium-image.bb index 818fd0b186..0f64ba2052 100644 --- a/packages/images/openprotium-image.bb +++ b/packages/images/openprotium-image.bb @@ -1,128 +1,28 @@ DESCRIPTION = "OpenProtium image" HOMEPAGE = "http://www.openprotium.com" -DEPENDS = "${MACHINE_TASK_PROVIDER}" -EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x10000 -D ${SLUGOS_DEVICE_TABLE}" +DEPENDS = "task-openprotium" +IMAGE_INSTALL = "task-openprotium" IMAGE_LINGUAS = "" -# Setting USE_DEVFS prevents *any* entries being created initially -# in /dev -USE_DEVFS = "1" +IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DISTRO_VERSION}" +PACKAGE_REMOVE = "kernel-image-* task-openprotium" -# This is passed to the image command to build the correct /dev -# directory (because only the image program can make actual -# dev entries!) -SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}" +USE_DEVFS = "1" +OPENPROTIUM_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-minimal-add-md.txt')}" +EXTRA_IMAGECMD_jffs2 += " -D ${OPENPROTIUM_DEVICE_TABLE}" -# IMAGE_PREPROCESS_COMMAND is run before making the image. -# We use this to do a few things: -# . remove the uImage, which is in a separate part of the flash already. -# . adjust the default run level (sysvinit is 5 by default, we like 3) -# . set a default root password, which is no more secure than a blank one -# (since it is documented, in case you were wondering) -# . make the boot more verbose -# -IMAGE_PREPROCESS_COMMAND += "rm ${IMAGE_ROOTFS}/boot/uImage-*;" -IMAGE_PREPROCESS_COMMAND += "sed -i -es,^id:5:initdefault:,id:3:initdefault:, ${IMAGE_ROOTFS}/etc/inittab;" +IMAGE_PREPROCESS_COMMAND += "install -c -m 644 ${OPENPROTIUM_DEVICE_TABLE} ${IMAGE_ROOTFS}/etc/device_table;" +IMAGE_PREPROCESS_COMMAND += "sed -i -es,^id:5:initdefault:,id:3:initdefault:, ${IMAGE_ROOTFS}/etc/inittab;" IMAGE_PREPROCESS_COMMAND += "sed -i -es,^root::0,root:BTMzOOAQfESg6:0, ${IMAGE_ROOTFS}/etc/passwd;" IMAGE_PREPROCESS_COMMAND += "sed -i -es,^VERBOSE=no,VERBOSE=very, ${IMAGE_ROOTFS}/etc/default/rcS;" +IMAGE_PREPROCESS_COMMAND += "sed -i -es,^VOLATILE_ENABLE_CACHE=yes,VOLATILE_ENABLE_CACHE=no, ${IMAGE_ROOTFS}/etc/default/rcS;" +IMAGE_PREPROCESS_COMMAND += "sed -i -es,/dev/tty0,/dev/console, ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh;" +IMAGE_PREPROCESS_COMMAND += "echo /dev/md >> ${IMAGE_ROOTFS}/etc/udev/mount.blacklist;" +IMAGE_PREPROCESS_COMMAND += "echo /dev/hd >> ${IMAGE_ROOTFS}/etc/udev/mount.blacklist;" +IMAGE_PREPROCESS_COMMAND += "echo /dev/mtd3 0x30000 0x10000 0x10000 > ${IMAGE_ROOTFS}/etc/fw_env.config;" -# Always just make a new flash image. -PACK_IMAGE = 'storcenter_pack_image;' -IMAGE_POSTPROCESS_COMMAND += "${PACK_IMAGE}" -PACK_IMAGE_DEPENDS = "" -#EXTRA_IMAGEDEPENDS += "${PACK_IMAGE_DEPENDS}" - -# This hack removes '${MACHINE}' from the end of the arch.conf for ipk, -# preventing _mach.ipk (with no byte sex) taking precedence over everything -# else. -# but we want 'storcenter' in there so kernel modules work correctly. -# -#ROOTFS_POSTPROCESS_COMMAND += "sed -i '$d' '${IMAGE_ROOTFS}/etc/ipkg/arch.conf';" - -# These depends define native utilities - they do not get put in the flash and -# are not required to build the image. -IMAGE_TOOLS = "" -#EXTRA_IMAGEDEPENDS += "${IMAGE_TOOLS}" - -# CONFIG: -# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image -# SLUGOS_SUPPORT: set to here, see below, added to the image. -# SLUGOS_KERNEL: set here, kernel modules added to the image -# -# Do not override the last two unless you really know what you -# are doing - there is more information below. - -# diff, cpio and find are required for reflash and turnup ram. -# Removing these probably leaves the system bootable, but standard -# openslug and ucslugc stuff won't work, so only take these out in -# very non-standard turnkey slugos builds. -# -# udev is the default way of handling devices, there is no guarantee -# that the static device table is completely correct (it is just -# known to be sufficient for boot.) -# we'ere still on 2.6.12 devfs.... -#OPENPROTIUM_SUPPORT ?= "diffutils cpio findutils udev" -# -OPENPROTIUM_SUPPORT ?= "diffutils cpio findutils uboot-utils" - -# kernel-module-af-packet must be in the image for DHCP to work -# kernel-module-netconsole is here because it is small and is -# highly useful on minimal systems (which really don't have anywhere -# other than the network to output error messages!) -SLUGOS_KERNEL ?= "kernel-module-af-packet kernel-module-netconsole \ - kernel-module-mii " - -# this gets /lib/modules made.... -OPENPROTIUM_KERNEL = "kernel-module-dummy \ - kernel-module-af-packet " - -IMAGE_INSTALL = " \ - kernel base-files base-passwd netbase \ - busybox initscripts-openprotium openprotium-init \ - update-modules sysvinit tinylogin \ - module-init-tools-depmod modutils-initscripts \ - ipkg-collateral ipkg ipkg-link \ - libgcc1 \ - portmap \ - dropbear \ - e2fsprogs-blkid \ - mdadm \ - hdparm \ - mtd-utils \ - ${OPENPROTIUM_SUPPORT} \ - ${OPENPROTIUM_KERNEL} " -# ${SLUGOS_EXTRA_RDEPENDS}" - -inherit image +ROOTFS_POSTPROCESS_COMMAND += "ipkg-cl ${IPKG_ARGS} -force-depends \ + remove ${PACKAGE_REMOVE};" -storcenter_pack_image() { - # find latest kernel - KERNEL=`ls -tr ${DEPLOY_DIR_IMAGE}/uImage* | tail -1` - if [ -z "$KERNEL" ]; then - oefatal "No kernel found in ${DEPLOY_DIR_IMAGE}. Bitbake linux-storcenter to create one." - exit 1 - fi - ROOTFS=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 - OUTPUT=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flash.img - PADFILE=${DEPLOY_DIR_IMAGE}/padfile.zzz - HEX_MAX_KERN_SIZE=170000 - DEC_MAX_KERN_SIZE=`echo "ibase=16; $HEX_MAX_KERN_SIZE" | bc ` - HEX_MAX_ROOT_SIZE=590000 - DEC_MAX_ROOT_SIZE=`echo "ibase=16; $HEX_MAX_ROOT_SIZE" | bc ` - KERNEL_SIZE=`ls -l $KERNEL | awk '{print $5}'` - if [ $KERNEL_SIZE -gt $DEC_MAX_KERN_SIZE ]; then - oefatal "Kernel too large at $KERNEL_SIZE bytes. Max is $DEC_MAX_KERN_SIZE." - exit 1 - fi - ROOT_SIZE=`ls -l $ROOTFS | awk '{print $5}'` - if [ $ROOT_SIZE -gt $DEC_MAX_ROOT_SIZE ]; then - oefatal "Rootfs is too large at $ROOT_SIZE bytes. Max is $DEC_MAX_ROOT_SIZE." - exit 1 - fi - PAD_SIZE=`echo "$DEC_MAX_KERN_SIZE - $KERNEL_SIZE" | bc ` - dd if=/dev/zero of=$PADFILE bs=$PAD_SIZE count=1 2>>/dev/null - cat $KERNEL $PADFILE $ROOTFS > $OUTPUT - rm -f $PADFILE - ls -l $OUTPUT -} +inherit image concatenated-image diff --git a/packages/images/opie-image-16mb.bb b/packages/images/opie-image-16mb.bb index 06bcdad7e8..42bf611880 100644 --- a/packages/images/opie-image-16mb.bb +++ b/packages/images/opie-image-16mb.bb @@ -13,50 +13,7 @@ IMAGE_INSTALL = "task-boot \ task-opie-16mb-pim \ task-opie-irda" -# merge feed-sources into ipkg.conf for opie-aqpkg as it can't handle feed-sources outside of ipkg.conf. -merge_feeds() { - - if ! test -z "${FEED_URIS}" - then - # Die gracefully if ipkg-collateral failed - if ! test -e "${IMAGE_ROOTFS}/etc/ipkg.conf" - then - echo "[${IMAGE_ROOTFS}/etc/ipkg.conf] is missing!" - exit 1 - fi - - # comment out existing feed-sources inserted by ipkg-collateral - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | sed "s/^src\ /#src\ /" > ${IMAGE_ROOTFS}/etc/ipkg.conf_ - rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf - - # extract, then delete destinations - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf.dest - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep -v "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf_ - rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf - - - for line in ${FEED_URIS} - do - # strip leading and trailing spaces/tabs, then split into name and uri - line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`" - feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`" - feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`" - - # insert new feed-sources - echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg.conf - done - - # remove temporary files and rebuild ipkg.conf - echo "" >> ${IMAGE_ROOTFS}/etc/ipkg.conf - cat ${IMAGE_ROOTFS}/etc/ipkg.conf.dest >> ${IMAGE_ROOTFS}/etc/ipkg.conf - rm ${IMAGE_ROOTFS}/etc/ipkg.conf.dest - - # remove -feed.conf files which are no longer needed - cd ${IMAGE_ROOTFS}/etc/ipkg/ && rm -- *-feed.conf - fi -} - -# merge feed-sources into ipkg.conf and create /etc/timestamp from build date +# create /etc/timestamp from build date IMAGE_PREPROCESS_COMMAND = "merge_feeds; create_etc_timestamp" inherit image diff --git a/packages/images/opie-image.bb b/packages/images/opie-image.bb index 1f1130204a..04c1f260e8 100644 --- a/packages/images/opie-image.bb +++ b/packages/images/opie-image.bb @@ -9,50 +9,7 @@ IMAGE_INSTALL = "${MACHINE_TASK_PROVIDER} task-opie-base task-opie-base-applets task-opie-extra-settings \ task-opie-bluetooth task-opie-irda " -# merge feed-sources into ipkg.conf for opie-aqpkg as it can't handle feed-sources outside of ipkg.conf. -merge_feeds() { - - if ! test -z "${FEED_URIS}" - then - # Die gracefully if ipkg-collateral failed - if ! test -e "${IMAGE_ROOTFS}/etc/ipkg.conf" - then - echo "[${IMAGE_ROOTFS}/etc/ipkg.conf] is missing!" - exit 1 - fi - - # comment out existing feed-sources inserted by ipkg-collateral - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | sed "s/^src\ /#src\ /" > ${IMAGE_ROOTFS}/etc/ipkg.conf_ - rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf - - # extract, then delete destinations - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf.dest - cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep -v "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf_ - rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf - - - for line in ${FEED_URIS} - do - # strip leading and trailing spaces/tabs, then split into name and uri - line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`" - feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`" - feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`" - - # insert new feed-sources - echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg.conf - done - - # remove temporary files and rebuild ipkg.conf - echo "" >> ${IMAGE_ROOTFS}/etc/ipkg.conf - cat ${IMAGE_ROOTFS}/etc/ipkg.conf.dest >> ${IMAGE_ROOTFS}/etc/ipkg.conf - rm ${IMAGE_ROOTFS}/etc/ipkg.conf.dest - - # remove -feed.conf files which are no longer needed - cd ${IMAGE_ROOTFS}/etc/ipkg/ && rm -- *-feed.conf - fi -} - -# merge feed-sources into ipkg.conf and create /etc/timestamp from build date -IMAGE_PREPROCESS_COMMAND = "merge_feeds; create_etc_timestamp" +# create /etc/timestamp from build date +IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp" inherit image diff --git a/packages/initscripts/initscripts-1.0/openprotium/checkroot.sh b/packages/initscripts/initscripts-1.0/openprotium/checkroot.sh index c69a773482..6b63b07188 100755 --- a/packages/initscripts/initscripts-1.0/openprotium/checkroot.sh +++ b/packages/initscripts/initscripts-1.0/openprotium/checkroot.sh @@ -205,7 +205,7 @@ then : > /etc/mtab fi mount -f -o remount / - mount -f /proc + grep -q '^proc /proc' /etc/mtab || mount -f /proc test "$devfs" && grep -q '^devfs /dev' /proc/mounts && mount -f "$devfs" fi diff --git a/packages/initscripts/initscripts-1.0/openprotium/mountall.sh b/packages/initscripts/initscripts-1.0/openprotium/mountall.sh new file mode 100644 index 0000000000..94ea8217fd --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openprotium/mountall.sh @@ -0,0 +1,27 @@ +# +# mountall.sh Mount all filesystems. +# +# Version: @(#)mountall.sh 2.83-2 01-Nov-2001 miquels@cistron.nl +# +. /etc/default/rcS + +# +# Mount local filesystems in /etc/fstab. For some reason, people +# might want to mount "proc" several times, and mount -v complains +# about this. So we mount "proc" filesystems without -v. +# +test "$VERBOSE" != no && echo "Mounting local filesystems..." +mount -at nonfs,nosmbfs,noncpfs 2>/dev/null + +# +# We might have mounted something over /dev, see if /dev/initctl is there. +# +if test ! -p /dev/initctl +then + rm -f /dev/initctl + mknod -m 600 /dev/initctl p +fi +kill -USR1 1 + +: exit 0 + diff --git a/packages/initscripts/initscripts-1.0/openprotium/umountfs b/packages/initscripts/initscripts-1.0/openprotium/umountfs new file mode 100755 index 0000000000..e489c4c1cd --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openprotium/umountfs @@ -0,0 +1,27 @@ +#! /bin/sh +# +# umountfs Turn off swap and unmount all local filesystems. +# + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +echo "Deactivating swap..." +swapoff -a + +# We leave /proc mounted. +echo "Unmounting local filesystems..." +# umount anything not a pseudo file system, and not root +# doesn't work for nested mounts at a non-root mount point +while read device mountpt fstype options +do + echo "$device" | grep -q "^/" + if [ $? -eq 0 ]; then + if [ "$mountpt" != "/" ] && [ "$mountpt" != "/dev/" ]; then + umount $mountpt + fi + fi +done</proc/mounts + +mount -o remount,ro / + +: exit 0 diff --git a/packages/initscripts/initscripts-1.0/openprotium/umountinitrd.sh b/packages/initscripts/initscripts-1.0/openprotium/umountinitrd.sh new file mode 100644 index 0000000000..6ee0d50e84 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openprotium/umountinitrd.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# umount the static dev - we'd probably never use it. +# +[ -d /dev/.static/dev ] && umount /dev/.static/dev +# +# if a root is found on an ext* filesystem, umount the old initrd +# +grep -q "/ ext" /proc/mounts +if [ $? -eq 0 ]; then + umount /initrd +fi diff --git a/packages/initscripts/initscripts-openprotium_1.0.bb b/packages/initscripts/initscripts-openprotium_1.0.bb index 83e89ef7a1..890bbd756c 100644 --- a/packages/initscripts/initscripts-openprotium_1.0.bb +++ b/packages/initscripts/initscripts-openprotium_1.0.bb @@ -24,16 +24,16 @@ SRC_URI += "file://openprotium/halt" SRC_URI += "file://openprotium/reboot" SRC_URI += "file://openprotium/flashclean" SRC_URI += "file://openprotium/checkroot.sh" +SRC_URI += "file://openprotium/mountall.sh" +SRC_URI += "file://openprotium/umountinitrd.sh" +SRC_URI += "file://openprotium/umountfs" # Without this it is not possible to patch checkroot.sh S = "${WORKDIR}" do_install_append() { - # the image build command now installs this for slugos - # except that mine doesn't. we don't need it, but we turnup - # expects it to at least exist - rm ${D}${sysconfdir}/device_table - touch ${D}${sysconfdir}/device_table + #rm ${D}${sysconfdir}/device_table + #touch ${D}${sysconfdir}/device_table # openprotium specific scripts # install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d @@ -44,6 +44,8 @@ do_install_append() { install -m 0755 ${WORKDIR}/openprotium/devices ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/openprotium/flashclean ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/openprotium/checkroot.sh ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/openprotium/mountall.sh ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/openprotium/umountinitrd.sh ${D}${sysconfdir}/init.d # Remove the do install links (this detects a change to the # initscripts .bb file - it will cause a build failure here.) @@ -130,7 +132,7 @@ do_install_append() { # slugos network syslog starts here (44) update-rc.d -r ${D} mountnfs.sh start 45 S . - update-rc.d -r ${D} bootmisc.sh start 55 S . + # update-rc.d -r ${D} bootmisc.sh start 55 S . # urandom is currently disabled from S 55 (and won't work with tmpfs /var) # ipkg-cl configure runs at S 98 @@ -158,7 +160,7 @@ do_install_append() { # This is the special, correct, slugos umountnfs.sh (it looks in # the /proc/mounts information, not /etc/fstab) update-rc.d -r ${D} umountnfs.sh start 31 0 6 . - update-rc.d -r ${D} save-rtc.sh start 25 0 6 . + # update-rc.d -r ${D} save-rtc.sh start 25 0 6 . # portmap stops at 32 # slugos network syslog stops here (39) # networking stops at 40 (nothing else does, believe me.) diff --git a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb index 23d73ebae6..3101ecb3be 100644 --- a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb @@ -8,7 +8,7 @@ inherit native # Avoid circular dependencies from package_ipk.bbclass PACKAGES = "" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ipkg-utils" -INSTALL += "ipkg-list-fields arfile.py" +INSTALL += "arfile.py" do_stage() { for i in ${INSTALL}; do diff --git a/packages/jamvm/files/.mtn2git_empty b/packages/jamvm/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/jamvm/files/.mtn2git_empty diff --git a/packages/jamvm/jamvm/jamvm-1.3.1-size-defaults.patch b/packages/jamvm/files/jamvm-1.3.1-size-defaults.patch index a41beee982..a41beee982 100644 --- a/packages/jamvm/jamvm/jamvm-1.3.1-size-defaults.patch +++ b/packages/jamvm/files/jamvm-1.3.1-size-defaults.patch diff --git a/packages/jamvm/files/jamvm_1.5.0-initial.patch b/packages/jamvm/files/jamvm_1.5.0-initial.patch new file mode 100644 index 0000000000..9b972da014 --- /dev/null +++ b/packages/jamvm/files/jamvm_1.5.0-initial.patch @@ -0,0 +1,82 @@ +Index: jamvm-1.5.0/configure.ac +=================================================================== +--- jamvm-1.5.0.orig/configure.ac 2007-12-20 00:01:08.000000000 +0100 ++++ jamvm-1.5.0/configure.ac 2007-12-20 00:03:40.000000000 +0100 +@@ -22,7 +22,7 @@ + dnl Process this file with autoconf to produce a configure script. + + AC_INIT(src/jam.c) +-AM_INIT_AUTOMAKE(jamvm, 1.5.0) ++AM_INIT_AUTOMAKE(jamvm-initial, 1.5.0) + AC_CONFIG_HEADERS([src/config.h]) + AC_PREFIX_DEFAULT(/usr/local/jamvm) + +Index: jamvm-1.5.0/java-initial +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ jamvm-1.5.0/java-initial 2007-12-20 00:03:27.000000000 +0100 +@@ -0,0 +1,5 @@ ++#!/bin/sh ++# ++# Wrapper script inspired by the one provided by cacao. ++ ++exec jamvm-initial ${1+"$@"} +Index: jamvm-1.5.0/lib/Makefile.am +=================================================================== +--- jamvm-1.5.0.orig/lib/Makefile.am 2007-12-20 00:05:24.000000000 +0100 ++++ jamvm-1.5.0/lib/Makefile.am 2007-12-20 00:05:28.000000000 +0100 +@@ -19,7 +19,7 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath ++CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath-initial + GLIBJ_ZIP = ${CP_LIB_DIR}/glibj.zip + + SUBDIRS = jamvm java gnu sun +Index: jamvm-1.5.0/src/class.h +=================================================================== +--- jamvm-1.5.0.orig/src/class.h 2007-12-20 00:06:34.000000000 +0100 ++++ jamvm-1.5.0/src/class.h 2007-12-20 00:16:41.000000000 +0100 +@@ -39,11 +39,11 @@ + separate class files in a directory structure */ + + #ifdef USE_ZIP +-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes.zip" +-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath/glibj.zip" ++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes.zip" ++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial/glibj.zip" + #else +-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes" +-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath" ++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes" ++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial" + #endif + + #define DFLT_BCP JAMVM_CLASSES":"CLASSPATH_CLASSES +Index: jamvm-1.5.0/src/dll.c +=================================================================== +--- jamvm-1.5.0.orig/src/dll.c 2007-12-20 00:01:24.000000000 +0100 ++++ jamvm-1.5.0/src/dll.c 2007-12-20 00:03:27.000000000 +0100 +@@ -294,7 +294,7 @@ + } + + char *getBootDllPath() { +- return CLASSPATH_INSTALL_DIR"/lib/classpath"; ++ return CLASSPATH_INSTALL_DIR"/lib/classpath-initial"; + } + + char *getDllName(char *name) { +Index: jamvm-1.5.0/src/Makefile.am +=================================================================== +--- jamvm-1.5.0.orig/src/Makefile.am 2007-12-20 00:21:37.000000000 +0100 ++++ jamvm-1.5.0/src/Makefile.am 2007-12-20 00:21:46.000000000 +0100 +@@ -23,7 +23,7 @@ + DIST_SUBDIRS = os arch interp + + bin_PROGRAMS = jamvm +-include_HEADERS = jni.h ++noinst_HEADERS = jni.h + + lib_LTLIBRARIES = libjvm.la + noinst_LTLIBRARIES = libcore.la diff --git a/packages/jamvm/jamvm-initial_1.5.0.bb b/packages/jamvm/jamvm-initial_1.5.0.bb new file mode 100644 index 0000000000..3369733340 --- /dev/null +++ b/packages/jamvm/jamvm-initial_1.5.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "A compact Java Virtual Machine which conforms to the JVM specification version 2." +HOMEPAGE = "http://jamvm.sourceforge.net/" +LICENSE = "GPL" + +DEPENDS = "zlib-native classpath-initial jikes-initial" + +PROVIDES = "virtual/java-initial" + +S = "${WORKDIR}/jamvm-${PV}" + +SRC_URI = "${SOURCEFORGE_MIRROR}/jamvm/jamvm-${PV}.tar.gz \ + file://jamvm_${PV}-initial.patch;patch=1;pnum=1 \ + " + +# This uses 32 bit arm, so force the instruction set to arm, not thumb +ARM_INSTRUCTION_SET = "arm" + +inherit native autotools + +EXTRA_OECONF = "\ + --with-classpath-install-dir=${STAGING_DIR_NATIVE}\ + --program-suffix=-initial \ + " + +CFLAGS += "-DDEFAULT_MAX_HEAP=16*MB" + +do_compile() { + oe_runmake \ + JAVAC=jikes-initial \ + GLIBJ_ZIP=${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip +} + +do_stage_append() { + install -d ${STAGING_BINDIR} + install -m 0755 java-initial ${STAGING_BINDIR} +} diff --git a/packages/jamvm/jamvm.inc b/packages/jamvm/jamvm.inc new file mode 100644 index 0000000000..36378370c5 --- /dev/null +++ b/packages/jamvm/jamvm.inc @@ -0,0 +1,22 @@ +DESCRIPTION = "A compact Java Virtual Machine which conforms to the JVM specification version 2." +HOMEPAGE = "http://jamvm.sourceforge.net/" +LICENSE = "GPL" + +DEPENDS = "zlib classpath virtual/javac-native" +RDEPENDS = "classpath" + +SRC_URI = "${SOURCEFORGE_MIRROR}/jamvm/jamvm-${PV}.tar.gz" + +RPROVIDES_jamvm = "java2-runtime" + +# This uses 32 bit arm, so force the instruction set to arm, not thumb +ARM_INSTRUCTION_SET = "arm" + +inherit autotools update-alternatives + +EXTRA_OECONF = "--with-classpath-install-dir=${prefix}" +CFLAGS += "-DDEFAULT_MAX_HEAP=16*MB" + +ALTERNATIVE_NAME = "java" +ALTERNATIVE_PATH = "${bindir}/jamvm" +ALTERNATIVE_PRIORITY = "10" diff --git a/packages/jamvm/jamvm/sh3sh4-support.patch b/packages/jamvm/jamvm/sh3sh4-support.patch deleted file mode 100644 index 8fa0d8c161..0000000000 --- a/packages/jamvm/jamvm/sh3sh4-support.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.ac_orig 2006-05-10 21:48:31.000000000 +0000 -+++ configure.ac 2006-05-10 21:49:56.000000000 +0000 -@@ -66,6 +66,8 @@ - arm*-*-linux*) host_cpu=arm host_os=linux ;; - arm*-*-openbsd*) host_cpu=arm host_os=linux libdl_needed=no ;; - arm*-*-freebsd*) host_cpu=arm host_os=linux libdl_needed=no ;; -+sh3-*-linux*) host_cpu=sh3 host_os=linux libdl_needed=no ;; -+sh4-*-linux*) host_cpu=sh4 host_os=linux libdl_needed=no ;; - powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; - powerpc*-*-openbsd*) host_cpu=powerpc host_os=linux libdl_needed=no ;; - powerpc*-*-freebsd*) host_cpu=powerpc host_os=linux libdl_needed=no ;; diff --git a/packages/jamvm/jamvm_1.4.5.bb b/packages/jamvm/jamvm_1.4.5.bb index 489b4fb94b..3cc0431266 100644 --- a/packages/jamvm/jamvm_1.4.5.bb +++ b/packages/jamvm/jamvm_1.4.5.bb @@ -1,24 +1,4 @@ -DESCRIPTION = "A compact Java Virtual Machine which conforms to the JVM specification version 2." -HOMEPAGE = "http://jamvm.sourceforge.net/" -LICENSE = "GPL" -PRIORITY = "optional" -SECTION = "interpreters" +require jamvm.inc -DEPENDS = "zlib classpath" -RDEPENDS = "classpath (>= 0.18) classpath-common (>= 0.18)" +SRC_URI += "file://jamvm-1.3.1-size-defaults.patch;patch=1" -SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz \ - file://jamvm-1.3.1-size-defaults.patch;patch=1" - -# This uses 32 bit arm, so force the instruction set to arm, not thumb -ARM_INSTRUCTION_SET = "arm" - -inherit autotools update-alternatives - -EXTRA_OECONF = "--with-classpath-install-dir=${prefix}" -CFLAGS += "-DDEFAULT_MAX_HEAP=16*MB" - -PROVIDES = "virtual/java" -ALTERNATIVE_NAME = "java" -ALTERNATIVE_PATH = "${bindir}/jamvm" -ALTERNATIVE_PRIORITY = "10" diff --git a/packages/jamvm/jamvm_1.5.0.bb b/packages/jamvm/jamvm_1.5.0.bb new file mode 100644 index 0000000000..efa959f0f9 --- /dev/null +++ b/packages/jamvm/jamvm_1.5.0.bb @@ -0,0 +1,5 @@ +require jamvm.inc + +PR = "r0" + + diff --git a/packages/jikes/jikes-initial.bb b/packages/jikes/jikes-initial.bb new file mode 100644 index 0000000000..0e2f4d0748 --- /dev/null +++ b/packages/jikes/jikes-initial.bb @@ -0,0 +1,23 @@ +SUMMARY = "Initial Java 1.4-compatible (and not higher) compiler" + +DEPENDS = "jikes-native classpath-initial" + +SRC_URI = "" + +S = "${WORKDIR}" + +inherit native + +do_configure() { + : +} + +do_compile() { + echo "#!/bin/sh" > jikes-initial + echo "${STAGING_BINDIR_NATIVE}/jikes -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip \$@" >> jikes-initial +} + +do_stage() { + install -d ${STAGING_BINDIR} + install -m 0755 jikes-initial ${STAGING_BINDIR} +} diff --git a/packages/jikes/jikes-native_1.21.bb b/packages/jikes/jikes-native_1.21.bb index 2996046639..b95cbfcd75 100644 --- a/packages/jikes/jikes-native_1.21.bb +++ b/packages/jikes/jikes-native_1.21.bb @@ -1,7 +1,6 @@ inherit native require jikes_${PV}.bb -PROVIDES = "virtual/javac-native" S = "${WORKDIR}/jikes-${PV}" do_stage() { diff --git a/packages/kaffe/kaffe.inc b/packages/kaffe/kaffe.inc index 2d536b3dea..2ae0929a93 100644 --- a/packages/kaffe/kaffe.inc +++ b/packages/kaffe/kaffe.inc @@ -2,7 +2,7 @@ DESCRIPTION = "Kaffe is a clean room implementation of the Java Virtual Machine" HOMEPAGE = "http://www.kaffe.org/" LICENSE = "GPL LGPL W3C Classpath BSD" -DEPENDS = "jikes-native fastjar-native libffi zip-native" +DEPENDS = "virtual/javac-native fastjar-native libffi zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" SRC_URI += "file://disable-automake-checks.patch;patch=1" diff --git a/packages/libsdl/libsdl-mixer_1.2.6.bb b/packages/libsdl/libsdl-mixer_1.2.6.bb index f78d992806..84841d9741 100644 --- a/packages/libsdl/libsdl-mixer_1.2.6.bb +++ b/packages/libsdl/libsdl-mixer_1.2.6.bb @@ -1,9 +1,9 @@ DESCRIPTION = "Simple DirectMedia Layer mixer library." SECTION = "libs" PRIORITY = "optional" -DEPENDS = "virtual/libsdl" +DEPENDS = "virtual/libsdl libmikmod" LICENSE = "LGPL" -PR = "r1" +PR = "r2" SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz" S = "${WORKDIR}/SDL_mixer-${PV}" @@ -12,7 +12,7 @@ export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" inherit autotools -EXTRA_OECONF = "--disable-music-mp3 --disable-music-libmikmod" +EXTRA_OECONF = "--disable-music-mp3" # although we build smpeg... need to find out how # to deal with optional dependencies diff --git a/packages/libtool/libtool-1.5.6/.mtn2git_empty b/packages/libtool/libtool-1.5.6/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libtool/libtool-1.5.6/.mtn2git_empty diff --git a/packages/libtool/libtool-1.5.6/autotools.patch b/packages/libtool/libtool-1.5.6/autotools.patch new file mode 100644 index 0000000000..5df441e945 --- /dev/null +++ b/packages/libtool/libtool-1.5.6/autotools.patch @@ -0,0 +1,127 @@ +diff -urNd -urNd libtool-1.5/cdemo/configure.ac libtool-1.5.ac/cdemo/configure.ac +--- libtool-1.5/cdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400 ++++ libtool-1.5.ac/cdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([cdemo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([main.c]) ++AC_CONFIG_AUX_DIR([..]) + + + ## ------------------------ ## +diff -urNd -urNd libtool-1.5/demo/configure.ac libtool-1.5.ac/demo/configure.ac +--- libtool-1.5/demo/configure.ac 2002-03-02 22:19:55.000000000 -0500 ++++ libtool-1.5.ac/demo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([demo], [1.0], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([hello.c]) ++AC_CONFIG_AUX_DIR([..]) + + + ## ------------------------ ## +diff -urNd -urNd libtool-1.5/demo/Makefile.am libtool-1.5.ac/demo/Makefile.am +--- libtool-1.5/demo/Makefile.am 2002-11-19 04:42:39.000000000 -0500 ++++ libtool-1.5.ac/demo/Makefile.am 2004-05-05 17:17:34.000000000 -0400 +@@ -121,17 +121,16 @@ + + # This is one of the essential tests for deplibs_check_method=pass_all. + # If this one passes with pass_all, it is likely that pass_all works +-EXTRA_LIBRARIES = libhell0.a +-libhell0_a_SOURCES = hello.c foo.c +-EXTRA_LTLIBRARIES = libhell1.la libhell2.la ++EXTRA_LTLIBRARIES = libhell0.la libhell1.la libhell2.la ++libhell0_la_SOURCES = hello.c foo.c + libhell1_la_SOURCES = hell1.c + libhell1_la_LIBADD = -L. -lhell0 + libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir) +-libhell1_la_DEPENDENCIES = libhell0.a ++libhell1_la_DEPENDENCIES = libhell0.la + libhell2_la_SOURCES = hell2.c + libhell2_la_LIBADD = -L. -lhell0 + libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir) +-libhell2_la_DEPENDENCIES = libhell0.a ++libhell2_la_DEPENDENCIES = libhell0.la + EXTRA_PROGRAMS = hell0 + hell0_SOURCES = main.c + hell0_LDADD = libhell1.la libhell2.la $(LIBM) +diff -urNd -urNd libtool-1.5/depdemo/configure.ac libtool-1.5.ac/depdemo/configure.ac +--- libtool-1.5/depdemo/configure.ac 2002-10-22 15:29:28.000000000 -0400 ++++ libtool-1.5.ac/depdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([depdemo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([main.c]) ++AC_CONFIG_AUX_DIR([..]) + + + ## ------------------------ ## +diff -urNd -urNd libtool-1.5/f77demo/configure.ac libtool-1.5.ac/f77demo/configure.ac +--- libtool-1.5/f77demo/configure.ac 2003-03-22 01:34:27.000000000 -0500 ++++ libtool-1.5.ac/f77demo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -23,6 +23,7 @@ + ## ------------------------ ## + AC_INIT([f77demo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([foof.f])dnl ++AC_CONFIG_AUX_DIR([..]) + + ## ------------------------ ## + ## Automake Initialisation. ## +diff -urNd -urNd libtool-1.5/mdemo/configure.ac libtool-1.5.ac/mdemo/configure.ac +--- libtool-1.5/mdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400 ++++ libtool-1.5.ac/mdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([mdemo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([main.c]) ++AC_CONFIG_AUX_DIR([..]) + + + ## ------------------------ ## +diff -urNd -urNd libtool-1.5/pdemo/configure.ac libtool-1.5.ac/pdemo/configure.ac +--- libtool-1.5/pdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400 ++++ libtool-1.5.ac/pdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([pdemo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([longer_file_name_hello.c]) ++AC_CONFIG_AUX_DIR([..]) + + + ## ------------------------ ## +diff -urNd -urNd libtool-1.5/pdemo/Makefile.am libtool-1.5.ac/pdemo/Makefile.am +--- libtool-1.5/pdemo/Makefile.am 2002-11-19 04:42:39.000000000 -0500 ++++ libtool-1.5.ac/pdemo/Makefile.am 2004-05-05 17:17:59.000000000 -0400 +@@ -121,17 +121,16 @@ + + # This is one of the essential tests for deplibs_check_method=pass_all. + # If this one passes with pass_all, it is likely that pass_all works +-EXTRA_LIBRARIES = libhell0.a +-libhell0_a_SOURCES = longer_file_name_hello.c longer_file_name_foo.c +-EXTRA_LTLIBRARIES = libhell1.la libhell2.la ++libhell0_la_SOURCES = longer_file_name_hello.c longer_file_name_foo.c ++EXTRA_LTLIBRARIES = libhell0.la libhell1.la libhell2.la + libhell1_la_SOURCES = longer_file_name_hell1.c + libhell1_la_LIBADD = -L. -lhell0 + libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir) +-libhell1_la_DEPENDENCIES = libhell0.a ++libhell1_la_DEPENDENCIES = libhell0.la + libhell2_la_SOURCES = longer_file_name_hell2.c + libhell2_la_LIBADD = -L. -lhell0 + libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir) +-libhell2_la_DEPENDENCIES = libhell0.a ++libhell2_la_DEPENDENCIES = libhell0.la + EXTRA_PROGRAMS = hell0 + hell0_SOURCES = longer_file_name_main.c + hell0_LDADD = libhell1.la libhell2.la $(LIBM) +diff -urNd -urNd libtool-1.5/tagdemo/configure.ac libtool-1.5.ac/tagdemo/configure.ac +--- libtool-1.5/tagdemo/configure.ac 2001-10-06 11:35:17.000000000 -0400 ++++ libtool-1.5.ac/tagdemo/configure.ac 2004-05-05 17:16:17.000000000 -0400 +@@ -24,6 +24,7 @@ + ## ------------------------ ## + AC_INIT([tagdemo], [0.1], [bug-libtool@gnu.org]) + AC_CONFIG_SRCDIR([foo.cpp]) ++AC_CONFIG_AUX_DIR([..]) + + AC_CANONICAL_TARGET + diff --git a/packages/libtool/libtool_1.5.6.bb b/packages/libtool/libtool_1.5.6.bb new file mode 100644 index 0000000000..2deb7df15c --- /dev/null +++ b/packages/libtool/libtool_1.5.6.bb @@ -0,0 +1,38 @@ +# Exists for compatibility with certain distributions (e.g. Maemo). + +DESCRIPTION = "Generic library support script \ +This is GNU libtool, a generic library support script. Libtool hides \ +the complexity of generating special library types (such as shared \ +libraries) behind a consistent interface." +HOMEPAGE = "http://www.gnu.org/software/libtool/libtool.html" +LICENSE = "GPL" +SECTION = "devel" +PR = "r2" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ + file://autotools.patch;patch=1" +S = "${WORKDIR}/libtool-${PV}" + +PACKAGES = "libltdl libltdl-dbg libltdl-dev ${PN} ${PN}-doc" +FILES_${PN} += "${datadir}/aclocal*" +FILES_libltdl = "${libdir}/libltdl.so.*" +FILES_libltdl-dev = "${libdir}/libltdl.* ${includedir}/ltdl.h" +FILES_libltdl-dbg = "${libdir}/.debug/" + +inherit autotools + +EXTRA_AUTORECONF = "--exclude=libtoolize" + +do_configure () { + find ${S} -name acinclude.m4 | for m4 in `cat`; do + cat ${S}/libtool.m4 ${S}/ltdl.m4 > $m4 + done + autotools_do_configure +} + +do_stage () { + oe_libinstall -a -so -C libltdl libltdl ${STAGING_LIBDIR} + install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/ +} diff --git a/packages/linux/chumby-kernel/.mtn2git_empty b/packages/linux/chumby-kernel/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/chumby-kernel/.mtn2git_empty diff --git a/packages/linux/chumby-kernel/defconfig b/packages/linux/chumby-kernel/defconfig new file mode 100644 index 0000000000..0fa62db9f8 --- /dev/null +++ b/packages/linux/chumby-kernel/defconfig @@ -0,0 +1,1248 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.16 +# Mon May 21 07:33:23 2007 +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="-csb" +CONFIG_LOCALVERSION_AUTO=y +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_UID16=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +# CONFIG_ELF_CORE is not set +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_SLAB=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set +CONFIG_FAMILY_IMX=y +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_AT91RM9200 is not set + +# +# IMX Implementations +# +# CONFIG_ARCH_MX1ADS is not set +# CONFIG_MACH_CSB535 is not set +CONFIG_MACH_MX21ADS=y +# CONFIG_MACH_TCMX21 is not set +# CONFIG_MACH_CSB536 is not set +CONFIG_ARCH_IMX21=y + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_PREEMPT is not set +# CONFIG_NO_IDLE_HZ is not set +# CONFIG_AEABI is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="" +# CONFIG_XIP_KERNEL is not set + +# +# Floating point emulation +# + +# +# 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 is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Power management options +# +# CONFIG_PM is not set +# CONFIG_APM is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +# CONFIG_BT_L2CAP is not set +# CONFIG_BT_SCO is not set + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=y +CONFIG_IEEE80211_DEBUG=y +CONFIG_IEEE80211_CRYPT_WEP=y +CONFIG_IEEE80211_CRYPT_CCMP=y +# CONFIG_IEEE80211_CRYPT_TKIP is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +CONFIG_DEBUG_DRIVER=y + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=y +CONFIG_NFTL=y +CONFIG_NFTL_RW=y +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NAND_MX21ADS=y +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +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=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y + +# +# SCSI Transport Attributes +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_CIRRUS is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_ATMEL is not set +# CONFIG_HOSTAP is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_TSDEV=y +CONFIG_INPUT_TSDEV_SCREEN_X=320 +CONFIG_INPUT_TSDEV_SCREEN_Y=240 +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_RAW_DRIVER is not set +CONFIG_IMX_SPI=y +# CONFIG_IMX_SPIDEV is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set +# CONFIG_I2C_IMX is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m + +# +# Video For Linux +# + +# +# Video Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_VIDEO_AUDIO_DECODER is not set +# CONFIG_VIDEO_DECODER is not set + +# +# Radio Adapters +# +# CONFIG_RADIO_MAESTRO is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set +CONFIG_FB_IMX=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=m +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_FONT_6x11=y +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +# CONFIG_LOGO_LINUX_VGA16 is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +# CONFIG_LOGO_TURBOCHEF_CLUT224 is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_DEVICE=y + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +# CONFIG_SND_IMX21_WM8731 is not set + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_SL811_HCD is not set +CONFIG_USB_IMX21_HCD=y + +# +# USB Device Class drivers +# +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +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_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_LIBUSUAL=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set +# CONFIG_USB_VICAM is not set +CONFIG_USB_DSBR=m +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC 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_USB_PWC is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +CONFIG_USB_PEGASUS=m +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +CONFIG_ROMFS_FS=y +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=y +CONFIG_AUTOFS4_FS=y +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +CONFIG_HFSPLUS_FS=y +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_CRAMFS=y +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_WAITQ is not set +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/chumby-kernel_2.6.16-chumby-1.2.bb b/packages/linux/chumby-kernel_2.6.16-chumby-1.2.bb new file mode 100644 index 0000000000..d85f001c78 --- /dev/null +++ b/packages/linux/chumby-kernel_2.6.16-chumby-1.2.bb @@ -0,0 +1,37 @@ +require linux.inc + +SECTION = "kernel" +DESCRIPTION = "Linux kernel for the Chumby" +LICENSE = "GPL" +PR = "r2" + +SRC_URI = "http://files.chumby.com/source/ironforge/build396/linux-2.6.16-chumby-1.2.tar.gz \ + http://files.chumby.com/source/ironforge/build396/align.pl \ + file://defconfig \ + " + +S = "${WORKDIR}/linux-2.6.16" + +COMPATIBLE_HOST = 'arm.*-linux' + +ARCH = "arm" + +#CMDLINE_CONSOLE ?= "ttyS0,115200n8" +#CMDLINE_ROOT = "root=/dev/slug rootfstype=ext2,jffs2 initrd=0x01000000,10M mem=32M@0x00000000" +#CMDLINE_ROOT = "root=/dev/ram0 rw rootfstype=ext2,jffs2 initrd=0x01000000,10M init=/linuxrc mem=32M@0x00000000" +#CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,115200 mem=64M" +#CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}" +#CMDLINE = "console=ttyS0,38400 root=/dev/mtdblock5 rootfstype=cramfs psplash=false" + +COMPATIBLE_MACHINE = "chumby" + +do_deploy_prepend() { + perl ../align.pl arch/arm/boot/zImage +} + +do_deploy_append() { + rm -f ${DEPLOY_DIR_IMAGE}/zImage-${PV}-${PR}-${MACHINE}.bin.zip + zip ${DEPLOY_DIR_IMAGE}/zImage-${PV}-${PR}-${MACHINE}.bin.zip ${DEPLOY_DIR_IMAGE}/zImage-${PV}-${PR}-${MACHINE}.bin + ln -sf zImage-${PV}-${PR}-${MACHINE}.bin.zip ${DEPLOY_DIR_IMAGE}/zImage-${MACHINE}.bin.zip +} + diff --git a/packages/linux/linux-2.6.22.6/mx31moboard/.mtn2git_empty b/packages/linux/linux-2.6.22.6/mx31moboard/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-2.6.22.6/mx31moboard/.mtn2git_empty diff --git a/packages/linux/linux-2.6.22.6/mx31moboard/defconfig b/packages/linux/linux-2.6.22.6/mx31moboard/defconfig new file mode 100644 index 0000000000..23c55e35b8 --- /dev/null +++ b/packages/linux/linux-2.6.22.6/mx31moboard/defconfig @@ -0,0 +1,1492 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.22.6 +# Mon Dec 17 11:53:39 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +# CONFIG_GENERIC_GPIO is not set +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +CONFIG_ARCH_MXC=y +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set + +# +# Freescale MXC Implementations +# +CONFIG_ARCH_MX3=y +# CONFIG_ARCH_MX27 is not set +# CONFIG_ARCH_MXC_HAS_NFC_V1 is not set +CONFIG_I2C_MXC_SELECT1=y +CONFIG_I2C_MXC_SELECT2=y + +# +# MX3 Options +# +# CONFIG_MACH_MX31ADS is not set +CONFIG_MACH_MX31MOBOTS=y +CONFIG_MX3_DOZE_DURING_IDLE=y +CONFIG_MXC_SDMA_API=y +# CONFIG_ARCH_MXC_HAS_NFC_V2 is not set + +# +# Device options +# +# CONFIG_I2C_MXC_SELECT3 is not set +CONFIG_ARCH_HAS_EVTMON=y +CONFIG_ISP1504_MXC=y +CONFIG_ISP1504_MXC_OTG=m + +# +# Processor Type +# +CONFIG_CPU_32=y +# CONFIG_CPU_ARM926T is not set +CONFIG_CPU_V6=y +# CONFIG_CPU_32v6K is not set +CONFIG_CPU_32v6=y +CONFIG_CPU_ABRT_EV6=y +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_OUTER_CACHE=y +CONFIG_CACHE_L2X0=y + +# +# Bus support +# +CONFIG_ISA=y +# CONFIG_ARCH_SUPPORTS_MSI is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="noinitrd console=ttymxc0 root=/dev/mtdblock2 rw ip=off" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +# CONFIG_FPE_NWFPE is not set +# CONFIG_FPE_FASTFPE is not set +CONFIG_VFP=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +# CONFIG_APM_EMULATION is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +CONFIG_WIRELESS_EXT=y +# CONFIG_MAC80211 is not set +CONFIG_IEEE80211=y +# CONFIG_IEEE80211_DEBUG is not set +# CONFIG_IEEE80211_CRYPT_WEP is not set +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set +# CONFIG_IEEE80211_SOFTMAC is not set +# CONFIG_RFKILL is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +# CONFIG_MTD_CFI_I2 is not set +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_CFI_AMDSTD=y +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_RAM=y +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_XIP is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_PLATRAM is not set +CONFIG_MTD_MXC=y + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=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=y +# 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_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_SCSI_DTC3280 is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_T128 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ARCNET is not set + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set +CONFIG_MII=m +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +# CONFIG_USB_USBNET_MII is not set +CONFIG_USB_USBNET=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_MXC is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_ADS7846 is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +CONFIG_TOUCHSCREEN_MXC=y +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_UCB1400 is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_MXC=y +CONFIG_SERIAL_MXC_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_MXC_WATCHDOG=y + +# +# ISA-based Watchdog Cards +# +# CONFIG_PCWATCHDOG is not set +# CONFIG_MIXCOMWD is not set +# CONFIG_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ELEKTOR is not set +CONFIG_I2C_MXC=y +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_TINY_USB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=y +CONFIG_SPI_MXC=y +# CONFIG_SPI_MXC_TEST_LOOPBACK is not set +# CONFIG_SPI_MXC_SELECT1 is not set +CONFIG_SPI_MXC_SELECT2=y +CONFIG_SPI_MXC_SELECT3=y + +# +# SPI Protocol Masters +# +# CONFIG_SPI_AT25 is not set +# CONFIG_SPI_SPIDEV is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set +# CONFIG_HWMON is not set + +# +# Misc devices +# + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_PMS is not set +CONFIG_VIDEO_MXC_CAMERA=y + +# +# MXC Camera/V4L2 PRP Features support +# +CONFIG_VIDEO_MXC_IPU_CAMERA=y +CONFIG_MXC_CAMERA_MICRON111=y +# CONFIG_MXC_CAMERA_MC521DA is not set +# CONFIG_MXC_CAMERA_OV2640 is not set +CONFIG_MXC_IPU_PRP_VF_SDC=y +CONFIG_MXC_IPU_PRP_ENC=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +# CONFIG_VIDEO_MXC_OPL is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_VIDEO_PVRUSB2 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_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_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_CADET is not set +# CONFIG_RADIO_RTRACK is not set +# CONFIG_RADIO_RTRACK2 is not set +# CONFIG_RADIO_AZTECH is not set +# CONFIG_RADIO_GEMTEK is not set +# CONFIG_RADIO_SF16FMI is not set +# CONFIG_RADIO_SF16FMR2 is not set +# CONFIG_RADIO_TERRATEC is not set +# CONFIG_RADIO_TRUST is not set +# CONFIG_RADIO_TYPHOON is not set +# CONFIG_RADIO_ZOLTRIX is not set +# CONFIG_USB_DSBR is not set +# CONFIG_DVB_CORE is not set +CONFIG_DAB=y +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_VGASTATE is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_SYS_FOPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_MXC=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_TVOUT=y +# CONFIG_FB_MXC_ASYNC_PANEL is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_MXC_PMIC=y +# CONFIG_SND_MXC_PLAYBACK_MIXING is not set + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_CAIAQ is not set + +# +# System on Chip audio support +# +# CONFIG_SND_SOC is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +CONFIG_USB_OTG=y +CONFIG_USB_OTG_WHITELIST=y +# CONFIG_USB_OTG_BLACKLIST_HUB is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ARC=y +CONFIG_USB_EHCI_ARC_H1=y +CONFIG_USB_EHCI_ARC_H2=y +CONFIG_USB_EHCI_ARC_OTG=y +# CONFIG_USB_EHCI_FSL_MC13783 is not set +# CONFIG_USB_EHCI_FSL_1301 is not set +CONFIG_USB_EHCI_FSL_1504=y +# CONFIG_USB_EHCI_SPLIT_ISO is not set +CONFIG_USB_EHCI_ROOT_HUB_TT=y +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +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_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_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# 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_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +CONFIG_USB_GADGET_ARC=y +CONFIG_USB_ARC=m +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_GADGET_ARC_OTG=y +# CONFIG_USB_GADGET_FSL_MC13783 is not set +# CONFIG_USB_GADGET_FSL_1301 is not set +CONFIG_USB_GADGET_FSL_1504=y +# 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_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_MXC=m + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_MXC=y + +# +# MXC support drivers +# + +# +# MXC IPU +# +CONFIG_MXC_IPU=y +CONFIG_MXC_IPU_PF=y + +# +# MXC SSI support +# +CONFIG_MXC_SSI=y + +# +# MXC Digital Audio Multiplexer support +# +CONFIG_MXC_DAM=y + +# +# MXC PMIC support +# +CONFIG_MXC_SPI_PMIC_CORE=y +CONFIG_MXC_PMIC=y +CONFIG_MXC_PMIC_CHARDEV=y + +# +# MXC PMIC Client Drivers +# +CONFIG_MXC_PMIC_MC13783=y +CONFIG_MXC_MC13783_ADC=y +CONFIG_MXC_MC13783_AUDIO=y +CONFIG_MXC_MC13783_RTC=y +CONFIG_MXC_MC13783_LIGHT=y +CONFIG_MXC_MC13783_BATTERY=y +CONFIG_MXC_MC13783_CONNECTIVITY=y +CONFIG_MXC_MC13783_POWER=y + +# +# Advanced Power Management devices +# +# CONFIG_MXC_DPTC is not set +CONFIG_MXC_DVFS=y +CONFIG_MXC_DVFS_SDMA=y + +# +# MXC Security Drivers +# +CONFIG_MXC_SECURITY_SCC=y +# CONFIG_SCC_DEBUG is not set +CONFIG_MXC_SECURITY_RNG=y +# CONFIG_MXC_RNG_TEST_DRIVER is not set +# CONFIG_MXC_RNG_DEBUG is not set +CONFIG_MXC_SECURITY_RTIC=y +# CONFIG_MXC_RTIC_TEST_DEBUG is not set +CONFIG_MXC_SECURITY_CORE=y + +# +# MXC MPEG4 Encoder Kernel module support +# +CONFIG_MXC_HMP4E=y +# CONFIG_MXC_HMP4E_DEBUG is not set + +# +# MXC VPU(Video Processing Unit) support +# +# CONFIG_MXC_VPU is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=m +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_YAFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_CRAMFS=y +# CONFIG_CRAMFS_LINEAR is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_SUNRPC_BIND34 is not set +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=m + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_USER=y + +# +# CodeTEST setup +# +# CONFIG_CODETEST is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/packages/linux/linux-2.6.23/kallsyms-missing-include.patch b/packages/linux/linux-2.6.23/kallsyms-missing-include.patch new file mode 100644 index 0000000000..9c31b1fa9a --- /dev/null +++ b/packages/linux/linux-2.6.23/kallsyms-missing-include.patch @@ -0,0 +1,19 @@ +A missing include in kallsyms.h. + +Upstream this is fixed in the 2.6.24 rc series: + +http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a75983eef1193c43caebde6643a218bd8d8390e + +Leon Woestenberg <leon.woestenberg@gmail.com> + +--- a/include/linux/kallsyms.h ++++ b/include/linux/kallsyms.h +@@ -6,6 +6,7 @@ + #define _LINUX_KALLSYMS_H + + #include <linux/errno.h> ++#include <linux/stddef.h> + + #define KSYM_NAME_LEN 128 + #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ + diff --git a/packages/linux/linux-ixp4xx/defconfig-2.6.23.12 b/packages/linux/linux-ixp4xx/defconfig-2.6.23.14 index efbd55195d..efbd55195d 100644 --- a/packages/linux/linux-ixp4xx/defconfig-2.6.23.12 +++ b/packages/linux/linux-ixp4xx/defconfig-2.6.23.14 diff --git a/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.23.14 b/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.23.14 new file mode 100644 index 0000000000..cdd7ecdf0e --- /dev/null +++ b/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.23.14 @@ -0,0 +1,1940 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.23.8 +# Wed Nov 21 22:15:10 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=m +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_KALLSYMS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +# CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +CONFIG_ARCH_IXP4XX=y +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y + +# +# Intel IXP4xx Implementation Options +# + +# +# IXP4xx Platforms +# +CONFIG_MACH_NSLU2=y +CONFIG_MACH_AVILA=y +CONFIG_MACH_LOFT=y +# CONFIG_ARCH_ADI_COYOTE is not set +# CONFIG_MACH_GATEWAY7001 is not set +# CONFIG_MACH_WG302V2 is not set +CONFIG_ARCH_IXDP425=y +CONFIG_MACH_IXDPG425=y +# CONFIG_MACH_IXDP465 is not set +# CONFIG_MACH_KIXRP435 is not set +CONFIG_ARCH_IXCDP1100=y +# CONFIG_ARCH_PRPMC1100 is not set +CONFIG_MACH_NAS100D=y +CONFIG_MACH_DSMG600=y +CONFIG_ARCH_IXDP4XX=y +CONFIG_MACH_FSG=y +# CONFIG_MACH_GTWX5715 is not set + +# +# IXP4xx Options +# +CONFIG_DMABOUNCE=y +# CONFIG_IXP4XX_INDIRECT_PCI is not set +CONFIG_IXP4XX_QMGR=y +CONFIG_IXP4XX_NPE=y + +# +# Boot options +# + +# +# Power management +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +# CONFIG_IWMMXT is not set +CONFIG_XSCALE_PMU=y + +# +# Bus support +# +CONFIG_PCI=y +CONFIG_PCI_SYSCALL=y +# CONFIG_ARCH_SUPPORTS_MSI is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE=" noirqdebug console=ttyS0,115200n8" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +# CONFIG_PM is not set +CONFIG_SUSPEND_UP_POSSIBLE=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +# CONFIG_NF_CT_PROTO_UDPLITE is not set +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +# CONFIG_NETFILTER_XT_TARGET_TRACE is not set +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +# CONFIG_NETFILTER_XT_MATCH_U32 is not set +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_IP_NF_QUEUE is not set +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +# CONFIG_IP6_NF_QUEUE is not set +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +# CONFIG_ATM is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +CONFIG_WIRELESS_EXT=y +# CONFIG_MAC80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_RFKILL=m +# CONFIG_RFKILL_INPUT is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +CONFIG_NFTL=y +CONFIG_NFTL_RW=y +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_IXP4XX=y +# CONFIG_MTD_PCI is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_NBD=m +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=4 +CONFIG_BLK_DEV_RAM_SIZE=10240 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS 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=m +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# 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=m +# CONFIG_SCSI_SAS_LIBSAS is not set +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_SRP is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_SATA_AHCI is not set +# CONFIG_SATA_SVW is not set +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_ULI is not set +CONFIG_SATA_VIA=m +# CONFIG_SATA_VITESSE is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +CONFIG_PATA_ARTOP=m +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RZ1000 is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set +# CONFIG_PATA_PLATFORM is not set +CONFIG_PATA_IXP4XX_CF=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_IEEE1394 is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m +# CONFIG_ARCNET is not set +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_IXP4XX_ETH=y +# CONFIG_AX88796 is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_DGRS is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_SC92031 is not set +CONFIG_NETDEV_1000=y +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_SK98LIN is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set +# CONFIG_QLA3XXX is not set +# CONFIG_ATL1 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_HERMES is not set +# CONFIG_ATMEL is not set +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +# CONFIG_HOSTAP is not set +# CONFIG_BCM43XX is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_PPPOL2TP is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +CONFIG_NETCONSOLE=m +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_ISDN=m +# CONFIG_ISDN_I4L is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +# CONFIG_ISDN_CAPI_MIDDLEWARE is not set +CONFIG_ISDN_CAPI_CAPI20=m + +# +# CAPI hardware drivers +# +# CONFIG_CAPI_AVM is not set +# CONFIG_CAPI_EICON is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_IXP4XX_BEEPER=y +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_POWERMATE is not set +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_MOXA_SMARTIO_NEW is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +CONFIG_N_HDLC=m +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_IXP4XX_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_IXP4XX=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=y +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +CONFIG_I2C_GPIO=y +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_IOP3XX is not set +# CONFIG_I2C_IXP4XX is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_STUB is not set +CONFIG_I2C_TINY_USB=m +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set +CONFIG_SENSORS_EEPROM=y +CONFIG_SENSORS_PCF8574=m +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +# CONFIG_W1_MASTER_DS1WM is not set + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +# CONFIG_W1_SLAVE_DS2760 is not set +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +CONFIG_SENSORS_AD7418=m +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +CONFIG_SENSORS_W83781D=m +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_MISC_DEVICES=y +# CONFIG_PHANTOM is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_IXP4XX=y +# CONFIG_LEDS_GPIO is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU_ACTIVITY=y + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_V4L1 is not set +# CONFIG_VIDEO_V4L1_COMPAT is not set +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +# CONFIG_TUNER_TEA5761 is not set +CONFIG_VIDEO_SAA7134=m +# CONFIG_VIDEO_SAA7134_ALSA is not set +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +# CONFIG_VIDEO_CX88_BLACKBIRD is not set +# CONFIG_VIDEO_CAFE_CCIC is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_ZC0301 is not set +CONFIG_USB_ZR364XX=m +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_FB is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# PCI devices +# +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y + +# +# System on Chip audio support +# +# CONFIG_SND_SOC is not set + +# +# SoC Audio support for SuperH +# + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +# CONFIG_USB_U132_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_FREECOM=y +# CONFIG_USB_STORAGE_DPCM is not set +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +# CONFIG_USB_SERIAL_AIRPRIME is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +CONFIG_USB_ADUTUX=m +# CONFIG_USB_AUERSWALD is not set +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +# CONFIG_MMC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_DS1672=y +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +CONFIG_RTC_DRV_ISL1208=y +CONFIG_RTC_DRV_X1205=y +CONFIG_RTC_DRV_PCF8563=y +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices +# + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BIND34=y +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_LRW=m +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CAMELLIA=m +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_HW=y + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/packages/linux/linux-ixp4xx_2.6.23.12.bb b/packages/linux/linux-ixp4xx_2.6.23.14.bb index 14b79ae7cb..b7c7682370 100644 --- a/packages/linux/linux-ixp4xx_2.6.23.12.bb +++ b/packages/linux/linux-ixp4xx_2.6.23.14.bb @@ -1,12 +1,8 @@ -# The new ethernet driver included in the 2.6.23 version of the nslu2-linux.org kernel patches -# has problems with providing the correct MAC address on the initial DHCP request. -DEFAULT_PREFERENCE = "-1" - require linux.inc require linux-ixp4xx.inc VANILLA_VERSION = "2.6.23" -KERNEL_RELEASE = "2.6.23.12" +KERNEL_RELEASE = "2.6.23.14" # If you use a rc, you will need to use this: #PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}" diff --git a/packages/linux/linux-openmoko-devel_2.6.23+2.6.24-rc7.bb b/packages/linux/linux-openmoko-devel_2.6.23+2.6.24-rc7.bb new file mode 100644 index 0000000000..4543979eb3 --- /dev/null +++ b/packages/linux/linux-openmoko-devel_2.6.23+2.6.24-rc7.bb @@ -0,0 +1,59 @@ +require linux.inc +require linux-openmoko.inc + +DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ OpenMoko" +VANILLA_VERSION = "2.6.23" +KERNEL_RELEASE = "2.6.24-rc7" + +KERNEL_VERSION = "${KERNEL_RELEASE}" + +# If you use a rc, you will need to use this: +PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}" +PR = "r0" + +KERNEL_IMAGETYPE = "uImage" +UBOOT_ENTRYPOINT = "30008000" + +############################################################## +# source and patches +# +SRCREV_FORMAT = "patches-rconfig" + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=v2.6.24-rc7 \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=patches;proto=http;name=patches \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=config;proto=http;name=config " + +S = "${WORKDIR}/git" + +############################################################## +# kernel image resides on a seperate flash partition (for now) +# +FILES_kernel-image = "" +ALLOW_EMPTY = "1" + +COMPATIBLE_HOST = "arm.*-linux" +COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' + +CMDLINE = "unused -- bootloader passes ATAG list" + +############################################################### +# module configs specific to this kernel +# + +# usb +module_autoload_ohci-hcd = "ohci-hcd" +module_autoload_hci_usb = "hci_usb" +module_autoload_g_ether = "g_ether" +# audio +module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753" +# sd/mmc +module_autoload_s3cmci = "s3cmci" + +do_prepatch() { + mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av + mv patches patches.openmoko + mv .pc .pc.old + mv ${WORKDIR}/config/defconfig-${KERNEL_VERSION} ${WORKDIR}/defconfig +} + +addtask prepatch after do_unpack before do_patch diff --git a/packages/linux/linux-openmoko.inc b/packages/linux/linux-openmoko.inc index b659153733..4f1981c8b3 100644 --- a/packages/linux/linux-openmoko.inc +++ b/packages/linux/linux-openmoko.inc @@ -12,11 +12,22 @@ pkg_postinst_kernel-image () { if test "x$D" != "x"; then exit 1 else - echo "Upgrading Kernel in Flash" - echo "DO NOT stop this process" + if [ -f ${sysconfdir}/default/flashkernel ] ; then + echo "Upgrading Kernel in Flash" + echo "DO NOT stop this process" - ${bindir}/flash_eraseall ${MTD_KERNEL_PARTITION} - ${bindir}/nandwrite -p ${MTD_KERNEL_PARTITION} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} + MTD_KERNEL_PARTITION=`cat /proc/mtd | grep kernel | cut -d':' -f1` + MTD_KERNEL_PARTITION=/dev/$MTD_KERNEL_PARTITION + + if [ "x$MTD_KERNEL_PARTITION" = "x" ] ; then + exit 1 + fi + + ${bindir}/flash_eraseall $MTD_KERNEL_PARTITION + ${bindir}/nandwrite -p $MTD_KERNEL_PARTITION /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} + else + touch ${sysconfdir}/default/flashkernel + fi fi } diff --git a/packages/linux/linux-openmoko/gta02-sound.patch b/packages/linux/linux-openmoko/gta02-sound.patch index 66fc850350..f742c77303 100644 --- a/packages/linux/linux-openmoko/gta02-sound.patch +++ b/packages/linux/linux-openmoko/gta02-sound.patch @@ -280,7 +280,7 @@ Index: linux-2.6.22/sound/soc/s3c24xx/neo1973_gta02_wm8753.c +static int lm4853_get_spk(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ -+ ucontrol->value.integer.value[0] = (lm4853_state & LM4853_AMP) >> 1; ++ ucontrol->value.integer.value[0] = (lm4853_state & LM4853_SPK) >> 1; + + return 0; +} diff --git a/packages/linux/linux-openmoko_2.6.22.5.bb b/packages/linux/linux-openmoko_2.6.22.5.bb index d1b3c5ef1e..fe46c59a58 100644 --- a/packages/linux/linux-openmoko_2.6.22.5.bb +++ b/packages/linux/linux-openmoko_2.6.22.5.bb @@ -9,7 +9,7 @@ KERNEL_RELEASE = "2.6.22.5" #PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}-moko11+svnr${SRCREV}" PV = "${KERNEL_RELEASE}-moko11+svnr${SRCREV}" -PR = "r10" +PR = "r13" KERNEL_IMAGETYPE = "uImage" UBOOT_ENTRYPOINT = "30008000" @@ -29,7 +29,6 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.ta file://iis-suspend.patch;patch=1 \ file://s3c24xx-pcm-suspend.patch;patch=1 \ file://gta-vibro-pwm-suspend.patch;patch=1 \ - file://glamo-report-vram-size-to-userspace.patch;patch=1 \ file://defconfig-${KERNEL_RELEASE}" S = "${WORKDIR}/linux-${VANILLA_VERSION}" diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/.mtn2git_empty b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/.mtn2git_empty diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/arm_pxa_20070923.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/arm_pxa_20070923.patch index ad4ce996df..ad4ce996df 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/arm_pxa_20070923.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/arm_pxa_20070923.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/binutils-buildid-arm.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/binutils-buildid-arm.patch index 68e35e89e1..68e35e89e1 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/binutils-buildid-arm.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/binutils-buildid-arm.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/connectplus-remove-ide-HACK.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/connectplus-remove-ide-HACK.patch index 4414b21191..4414b21191 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/connectplus-remove-ide-HACK.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/connectplus-remove-ide-HACK.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-akita b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-akita index 59ec5c95b7..a299351698 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-akita +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-akita @@ -40,7 +40,7 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set # CONFIG_AUDIT is not set @@ -677,8 +677,24 @@ CONFIG_MII=m # # Wireless LAN # -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set +CONFIG_WLAN_PRE80211=y +# CONFIG_STRIP is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set +CONFIG_WLAN_80211=y +# CONFIG_PCMCIA_RAYCS is not set +# CONFIG_LIBERTAS is not set +CONFIG_HERMES=m +# CONFIG_ATMEL is not set +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_AIRO_CS=m +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m # # USB Network Adapters @@ -989,7 +1005,7 @@ CONFIG_FB_DEFERRED_IO=y CONFIG_FB_PXA=y CONFIG_FB_PXA_LCD_QVGA=y # CONFIG_FB_PXA_LCD_VGA is not set -# CONFIG_FB_PXA_OVERLAY is not set +CONFIG_FB_PXA_OVERLAY=y # CONFIG_FB_PXA_PARAMETERS is not set # CONFIG_FB_MBX is not set # CONFIG_FB_W100 is not set diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-bootcdx86 b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-bootcdx86 index 833f72ac9e..833f72ac9e 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-bootcdx86 +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-bootcdx86 diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-c7x0 b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-c7x0 index bd11500398..71e175c717 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-c7x0 +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-c7x0 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.23 -# Tue Oct 16 12:02:32 2007 +# Linux kernel version: 2.6.24-rc6 +# Mon Dec 31 17:45:51 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -40,12 +40,17 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -138,7 +143,7 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_OMAP is not set # -# Intel PXA2xx Implementations +# Intel PXA2xx/PXA3xx Implementations # # CONFIG_ARCH_LUBBOCK is not set # CONFIG_MACH_LOGICPD_PXA270 is not set @@ -147,10 +152,11 @@ CONFIG_ARCH_PXA=y CONFIG_PXA_SHARPSL=y # CONFIG_MACH_TRIZEPS4 is not set # CONFIG_MACH_EM_X270 is not set -# CONFIG_MACH_HX2750 is not set -# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_ZYLONITE is not set +# CONFIG_MACH_ARMCORE is not set CONFIG_PXA_SHARPSL_25x=y # CONFIG_PXA_SHARPSL_27x is not set +# CONFIG_MACH_HX2750 is not set # CONFIG_MACH_POODLE is not set CONFIG_MACH_CORGI=y CONFIG_MACH_SHEPHERD=y @@ -198,10 +204,6 @@ CONFIG_SHARP_SCOOP=y # # CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set - -# -# PCCARD (PCMCIA/CardBus) support -# CONFIG_PCCARD=m # CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m @@ -219,6 +221,7 @@ CONFIG_PCMCIA_PXA2XX=m CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_PREEMPT=y CONFIG_HZ=100 CONFIG_AEABI=y @@ -231,6 +234,7 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 @@ -246,6 +250,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable quiet" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y CONFIG_CPU_FREQ_PXA25x=y # @@ -254,15 +259,17 @@ CONFIG_CPU_FREQ_PXA25x=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y -CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT=m # CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # Floating point emulation @@ -326,6 +333,7 @@ CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m +# CONFIG_INET_LRO is not set CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set @@ -388,10 +396,6 @@ CONFIG_IP_NF_QUEUE=m # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set - -# -# QoS and/or fair queueing -# # CONFIG_NET_SCHED is not set # @@ -429,6 +433,8 @@ CONFIG_IRCOMM=m # Dongle support # # CONFIG_KINGSUN_DONGLE is not set +# CONFIG_KSDAZZLE_DONGLE is not set +# CONFIG_KS959_DONGLE is not set # # Old SIR device drivers @@ -461,9 +467,11 @@ CONFIG_BT_HIDP=m # CONFIG_BT_HCIUSB=m # CONFIG_BT_HCIUSB_SCO is not set +# CONFIG_BT_HCIBTSDIO is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIUART_LL is not set CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -496,6 +504,7 @@ CONFIG_IEEE80211_CRYPT_TKIP=m # # Generic Driver Options # +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y @@ -522,6 +531,7 @@ CONFIG_MTD_BLOCK=y # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set # # RAM/ROM/Flash chip drivers @@ -574,6 +584,7 @@ CONFIG_MTD_NAND_IDS=y CONFIG_MTD_NAND_SHARPSL=y # CONFIG_MTD_NAND_NANDSIM is not set # CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set # CONFIG_MTD_ONENAND is not set # @@ -590,15 +601,17 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set -CONFIG_IDE=y +CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set +CONFIG_IDE=m CONFIG_IDE_MAX_HWIFS=4 -CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDE=m # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=y +CONFIG_BLK_DEV_IDEDISK=m # CONFIG_IDEDISK_MULTI_MODE is not set CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDECD is not set @@ -611,10 +624,11 @@ CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # -CONFIG_IDE_GENERIC=y -# CONFIG_IDEPCI_PCIBUS_ORDER is not set +CONFIG_IDE_GENERIC=m +# CONFIG_BLK_DEV_PLATFORM is not set # CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set +CONFIG_IDE_ARCH_OBSOLETE_INIT=y # CONFIG_BLK_DEV_HD is not set # @@ -654,6 +668,7 @@ CONFIG_SCSI_WAIT_SCAN=m # 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 @@ -670,7 +685,9 @@ CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_EMC=m # CONFIG_DM_MULTIPATH_RDAC is not set +# CONFIG_DM_MULTIPATH_HP is not set # CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set CONFIG_NETDEVICES=y # CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set @@ -678,6 +695,7 @@ CONFIG_NETDEVICES=y # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m +# CONFIG_VETH is not set # CONFIG_PHYLIB is not set CONFIG_NET_ETHERNET=y CONFIG_MII=m @@ -685,6 +703,11 @@ CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set # CONFIG_SMC911X is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_B44 is not set # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set @@ -696,9 +719,9 @@ CONFIG_WLAN_80211=y # CONFIG_PCMCIA_RAYCS is not set # CONFIG_LIBERTAS is not set CONFIG_HERMES=m -# CONFIG_ATMEL is not set CONFIG_PCMCIA_HERMES=m CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_ATMEL is not set # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set # CONFIG_USB_ZD1201 is not set @@ -714,7 +737,6 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m @@ -769,7 +791,6 @@ CONFIG_INPUT_MOUSEDEV=m CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set CONFIG_INPUT_POWER=y @@ -844,7 +865,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set # CONFIG_IPMI_HANDLER is not set -# CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set # CONFIG_R3964 is not set @@ -906,36 +926,18 @@ CONFIG_I2C_PXA=y # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set -CONFIG_MISC_DEVICES=y -# CONFIG_EEPROM_93CX6 is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_SM501 is not set -# CONFIG_HTC_ASIC3 is not set -# CONFIG_HTC_ASIC3_DS1WM is not set - -# -# Multi-Function Devices -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y +# CONFIG_WATCHDOG is not set # -# LED drivers +# Sonics Silicon Backplane # -CONFIG_LEDS_CORGI=y -# CONFIG_LEDS_TOSA is not set -# CONFIG_LEDS_GPIO is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set # -# LED Triggers +# Multifunction device drivers # -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_IDE_DISK=y -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_MFD_SM501 is not set # # Multimedia devices @@ -947,12 +949,12 @@ CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set -# CONFIG_TUNER_TEA5761 is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set @@ -981,15 +983,6 @@ CONFIG_USB_DABUSB=m # # Graphics support # -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_CORGI=y - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -998,6 +991,7 @@ CONFIG_FIRMWARE_EDID=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set @@ -1017,6 +1011,15 @@ CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_MBX is not set CONFIG_FB_W100=y # CONFIG_FB_VIRTUAL is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set # # Console display driver support @@ -1042,9 +1045,6 @@ CONFIG_LOGO=y # CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set CONFIG_LOGO_OHAND_CLUT224=y -# CONFIG_LOGO_OZ240_CLUT224 is not set -# CONFIG_LOGO_OZ480_CLUT224 is not set -# CONFIG_LOGO_OZ640_CLUT224 is not set # # Sound @@ -1123,6 +1123,7 @@ CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y # # USB Input Devices @@ -1209,6 +1210,7 @@ CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_AIRPRIME is not set # CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_CH341 is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m # CONFIG_USB_SERIAL_CP2101 is not set @@ -1292,6 +1294,7 @@ CONFIG_USB_GADGET=y # 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=y @@ -1323,11 +1326,29 @@ CONFIG_MMC_UNSAFE_RESUME=y # CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set # # MMC/SD Host Controller Drivers # CONFIG_MMC_PXA=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_CORGI=y +# CONFIG_LEDS_TOSA is not set +# CONFIG_LEDS_GPIO is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y @@ -1347,6 +1368,7 @@ CONFIG_RTC_INTF_DEV=y # I2C RTC drivers # # CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_RS5C372 is not set @@ -1377,19 +1399,6 @@ CONFIG_RTC_INTF_DEV=y CONFIG_RTC_DRV_SA1100=y # -# DMA Engine support -# -# CONFIG_DMA_ENGINE is not set - -# -# DMA Clients -# - -# -# DMA Devices -# - -# # File systems # CONFIG_EXT2_FS=y @@ -1438,7 +1447,6 @@ CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set # @@ -1454,6 +1462,7 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y 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_SYSFS is not set @@ -1467,19 +1476,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_CRAMFS=m -CONFIG_SQUASHFS=m -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_SQUASHFS_VMALLOC is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set - -# -# Network File Systems -# +CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set @@ -1533,10 +1535,6 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_KARMA_PARTITION is not set # CONFIG_EFI_PARTITION is not set # CONFIG_SYSV68_PARTITION is not set - -# -# Native Language Support -# CONFIG_NLS=y CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_CODEPAGE_437=y @@ -1577,22 +1575,17 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=y - -# -# Distributed Lock Manager -# # CONFIG_DLM is not set - -# -# Profiling support -# +CONFIG_INSTRUMENTATION=y CONFIG_PROFILING=y CONFIG_OPROFILE=m +# CONFIG_MARKERS is not set # # Kernel hacking # # CONFIG_PRINTK_TIME is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set @@ -1620,10 +1613,13 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set CONFIG_FRAME_POINTER=y # CONFIG_FORCED_INLINING is not set +# CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_ERRORS=y # CONFIG_DEBUG_LL is not set @@ -1633,6 +1629,7 @@ CONFIG_DEBUG_ERRORS=y # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_BLKCIPHER=m @@ -1653,6 +1650,7 @@ CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_FCRYPT is not set @@ -1667,12 +1665,14 @@ CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m +# CONFIG_CRYPTO_SEED is not set CONFIG_CRYPTO_DEFLATE=m # CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_CAMELLIA is not set CONFIG_CRYPTO_TEST=m +# CONFIG_CRYPTO_AUTHENC is not set CONFIG_CRYPTO_HW=y # diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-collie b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-collie index 0b6cdf35bf..9b3cb6ae34 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-collie +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-collie @@ -1,18 +1,12 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.23-git9 -# Fri Jan 4 01:43:53 2008 +# Linux kernel version: 2.6.20.4 +# Fri Apr 6 23:20:59 2007 # CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y # CONFIG_GENERIC_TIME is not set -# CONFIG_GENERIC_CLOCKEVENTS is not set CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_PROBE=y @@ -21,36 +15,36 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ZONE_DMA=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # -# General setup +# Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set -# CONFIG_USER_NS is not set +# CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_FAIR_USER_SCHED=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y @@ -65,29 +59,32 @@ CONFIG_BUG=y # CONFIG_ELF_CORE is not set CONFIG_BASE_FULL=y CONFIG_FUTEX=y -CONFIG_ANON_INODES=y CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_EVENTFD=y CONFIG_SHMEM=y -CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set +CONFIG_VM_EVENT_COUNTERS=y CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y + +# +# Block layer +# CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set -# CONFIG_BLK_DEV_BSG is not set # # IO Schedulers @@ -119,16 +116,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_MXC is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set @@ -136,7 +130,6 @@ CONFIG_ARCH_SA1100=y # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP is not set # @@ -158,14 +151,6 @@ CONFIG_SA1100_COLLIE=y # CONFIG_SA1100_SSP is not set # -# Boot options -# - -# -# Power management -# - -# # Processor Type # CONFIG_CPU_32=y @@ -183,25 +168,21 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_OUTER_CACHE is not set CONFIG_SHARP_LOCOMO=y CONFIG_SHARP_PARAM=y -CONFIG_SHARPSL_PM=y CONFIG_SHARP_SCOOP=y # # Bus support # CONFIG_ISA=y -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set # # PCCARD (PCMCIA/CardBus) support # -CONFIG_PCCARD=m +CONFIG_PCCARD=y # CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m +CONFIG_PCMCIA=y CONFIG_PCMCIA_LOAD_CIS=y CONFIG_PCMCIA_IOCTL=y @@ -210,12 +191,11 @@ CONFIG_PCMCIA_IOCTL=y # # CONFIG_I82365 is not set # CONFIG_TCIC is not set -CONFIG_PCMCIA_SA1100=m +CONFIG_PCMCIA_SA1100=y # # Kernel Features # -# CONFIG_TICK_ONESHOT is not set CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 @@ -232,9 +212,6 @@ CONFIG_NEED_MULTIPLE_NODES=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y # CONFIG_LEDS is not set CONFIG_ALIGNMENT_TRAP=y @@ -243,7 +220,6 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 mem=64M fbcon=rotate:1 dyntick=enable debug" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y @@ -277,10 +253,8 @@ CONFIG_BINFMT_MISC=m CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND_UP_POSSIBLE=y -CONFIG_SUSPEND=y -CONFIG_APM_EMULATION=y +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM=y # # Networking @@ -290,13 +264,13 @@ CONFIG_NET=y # # Networking options # +# CONFIG_NETDEBUG is not set CONFIG_PACKET=m CONFIG_PACKET_MMAP=y -CONFIG_UNIX=m +CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -311,22 +285,24 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -# CONFIG_INET_LRO is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# # CONFIG_IP_VS is not set CONFIG_IPV6=m # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -349,23 +325,31 @@ CONFIG_NETFILTER=y # # CONFIG_NETFILTER_NETLINK is not set # CONFIG_NF_CONNTRACK_ENABLED is not set -# CONFIG_NF_CONNTRACK is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # CONFIG_IP_NF_QUEUE=m -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_ARPTABLES is not set # # IPv6: Netfilter Configuration (EXPERIMENTAL) # # CONFIG_IP6_NF_QUEUE is not set -# CONFIG_IP6_NF_IPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# # CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# # CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set @@ -419,9 +403,6 @@ CONFIG_IRTTY_SIR=m # Dongle support # # CONFIG_DONGLE is not set -# CONFIG_KINGSUN_DONGLE is not set -# CONFIG_KSDAZZLE_DONGLE is not set -# CONFIG_KS959_DONGLE is not set # # Old SIR device drivers @@ -464,22 +445,13 @@ CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m -# CONFIG_AF_RXRPC is not set - -# -# Wireless -# -# CONFIG_CFG80211 is not set -CONFIG_WIRELESS_EXT=y -# CONFIG_MAC80211 is not set CONFIG_IEEE80211=m # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=m CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m # CONFIG_IEEE80211_SOFTMAC is not set -# CONFIG_RFKILL is not set -# CONFIG_NET_9P is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -488,14 +460,20 @@ CONFIG_IEEE80211_CRYPT_TKIP=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# # CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set # CONFIG_MTD_CONCAT is not set @@ -515,7 +493,6 @@ CONFIG_MTD_BLOCK=y # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set # # RAM/ROM/Flash chip drivers @@ -535,13 +512,15 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_RAM is not set CONFIG_MTD_ROM=y # CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_SHARP is not set +CONFIG_MTD_OBSOLETE_CHIPS=y +CONFIG_MTD_SHARP=y # # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_SA1100=y # CONFIG_MTD_PLATRAM is not set # @@ -560,26 +539,43 @@ CONFIG_MTD_ROM=y # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# # CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# # CONFIG_MTD_ONENAND is not set # -# UBI - Unsorted block images +# Parallel port support # -# CONFIG_MTD_UBI is not set # CONFIG_PARPORT is not set + +# +# Plug and Play support +# # CONFIG_PNP is not set -CONFIG_BLK_DEV=y + +# +# Block devices +# # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set -CONFIG_MISC_DEVICES=y -# CONFIG_EEPROM_93CX6 is not set + +# +# ATA/ATAPI/MFM/RLL support +# CONFIG_IDE=m CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=m @@ -596,29 +592,15 @@ CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set -CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # # CONFIG_IDE_GENERIC is not set -# CONFIG_BLK_DEV_PLATFORM is not set # CONFIG_IDE_ARM is not set - -# -# Other IDE chipsets support -# - -# -# Note: most of these also require special kernel boot parameters -# -# CONFIG_BLK_DEV_4DRIVES is not set -# CONFIG_BLK_DEV_ALI14XX is not set -# CONFIG_BLK_DEV_DTC2278 is not set -# CONFIG_BLK_DEV_HT6560B is not set -# CONFIG_BLK_DEV_QD65XX is not set -# CONFIG_BLK_DEV_UMC8672 is not set +# CONFIG_IDE_CHIPSETS is not set # CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set # @@ -626,7 +608,6 @@ CONFIG_IDE_PROC_FS=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m -CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y @@ -649,7 +630,6 @@ CONFIG_SCSI_MULTI_LUN=y # 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 @@ -657,13 +637,15 @@ CONFIG_SCSI_WAIT_SCAN=m # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -CONFIG_SCSI_LOWLEVEL=y + +# +# SCSI low-level drivers +# # CONFIG_ISCSI_TCP is not set # CONFIG_SCSI_AHA152X is not set # CONFIG_SCSI_AIC7XXX_OLD is not set -# CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set @@ -676,8 +658,24 @@ CONFIG_SCSI_LOWLEVEL=y # CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_T128 is not set # CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set + +# +# PCMCIA SCSI adapter support +# +# CONFIG_PCMCIA_AHA152X is not set +# CONFIG_PCMCIA_FDOMAIN is not set +# CONFIG_PCMCIA_NINJA_SCSI is not set +# CONFIG_PCMCIA_QLOGIC is not set +# CONFIG_PCMCIA_SYM53C500 is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# # CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# CONFIG_MD=y # CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m @@ -688,21 +686,44 @@ CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_EMC=m -# CONFIG_DM_MULTIPATH_RDAC is not set -# CONFIG_DM_DELAY is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# CONFIG_NETDEVICES=y -# CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m -# CONFIG_VETH is not set + +# +# ARCnet devices +# # CONFIG_ARCNET is not set + +# +# PHY device support +# # CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# CONFIG_NET_ETHERNET=y CONFIG_MII=m -# CONFIG_AX88796 is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_SMC91X is not set @@ -712,47 +733,64 @@ CONFIG_MII=m # CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set # CONFIG_NET_PCI is not set -# CONFIG_B44 is not set -CONFIG_NETDEV_1000=y -CONFIG_NETDEV_10000=y + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# # CONFIG_TR is not set # -# Wireless LAN +# Wireless LAN (non-hamradio) # -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set # -# USB Network Adapters +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_ARLAN is not set +# CONFIG_WAVELAN is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set + +# +# Wireless 802.11 Frequency Hopping cards support +# +# CONFIG_PCMCIA_RAYCS is not set + +# +# Wireless 802.11b ISA/PCI cards support +# +CONFIG_HERMES=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +CONFIG_NET_WIRELESS=y + +# +# PCMCIA network device support # -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET_MII=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -# CONFIG_USB_NET_DM9601 is not set -# CONFIG_USB_NET_GL620A is not set -CONFIG_USB_NET_NET1080=m -# CONFIG_USB_NET_PLUSB is not set -# CONFIG_USB_NET_MCS7830 is not set -# CONFIG_USB_NET_RNDIS_HOST is not set -CONFIG_USB_NET_CDC_SUBSET=m -# CONFIG_USB_ALI_M5632 is not set -# CONFIG_USB_AN2720 is not set -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -# CONFIG_USB_EPSON2888 is not set -# CONFIG_USB_KC2190 is not set -CONFIG_USB_NET_ZAURUS=m CONFIG_NET_PCMCIA=y # CONFIG_PCMCIA_3C589 is not set # CONFIG_PCMCIA_3C574 is not set @@ -762,6 +800,10 @@ CONFIG_PCMCIA_PCNET=m # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_PCMCIA_XIRC2PS is not set # CONFIG_PCMCIA_AXNET is not set + +# +# Wan interfaces +# # CONFIG_WAN is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set @@ -772,13 +814,16 @@ CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set -# CONFIG_PPPOL2TP is not set # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# # CONFIG_ISDN is not set # @@ -786,19 +831,19 @@ CONFIG_SLHC=m # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=m +CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_POWER=m +CONFIG_INPUT_POWER=y # # Input Device Drivers @@ -807,14 +852,12 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_LOCOMO=m +CONFIG_KEYBOARD_LOCOMO=y # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_GPIO is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set @@ -851,7 +894,15 @@ CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# # CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# # CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set @@ -865,10 +916,16 @@ CONFIG_HW_RANDOM=m # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set # CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# # CONFIG_TCG_TPM is not set -CONFIG_DEVPORT=y + +# +# I2C support +# CONFIG_I2C=m -CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_CHARDEV is not set # @@ -882,13 +939,9 @@ CONFIG_I2C_BOARDINFO=y # I2C Hardware Bus support # # CONFIG_I2C_ELEKTOR is not set -# CONFIG_I2C_GPIO is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_STUB is not set -# CONFIG_I2C_TINY_USB is not set # CONFIG_I2C_PCA_ISA is not set # @@ -896,13 +949,11 @@ CONFIG_I2C_BOARDINFO=y # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set -# CONFIG_DS1682 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -924,23 +975,22 @@ CONFIG_SPI_LOCOMO=m # # SPI Protocol Masters # -# CONFIG_SPI_AT25 is not set -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_TLE62X0 is not set + +# +# Dallas's 1-wire bus +# # CONFIG_W1 is not set -# CONFIG_POWER_SUPPLY is not set -# CONFIG_HWMON is not set # -# Sonics Silicon Backplane +# Hardware Monitoring support # -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set # -# Multifunction device drivers +# Misc devices # -# CONFIG_MFD_SM501 is not set +# CONFIG_TIFM_CORE is not set # # Multimedia Capabilities Port drivers @@ -948,31 +998,59 @@ CONFIG_SSB_POSSIBLE=y CONFIG_MCP=y CONFIG_MCP_SA11X0=y CONFIG_MCP_UCB1200=y -# CONFIG_MCP_UCB1200_AUDIO is not set CONFIG_MCP_UCB1200_TS=m -CONFIG_MCP_COLLIE_TS=m # # Multi-Function Devices # # +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_LOCOMO=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=m + +# # Multimedia devices # CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters +# # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_PMS is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set -CONFIG_V4L_USB_DRIVERS=y + +# +# V4L USB devices +# # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set # CONFIG_VIDEO_USBVISION is not set @@ -989,8 +1067,10 @@ CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_STV680 is not set # CONFIG_USB_ZC0301 is not set # CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -CONFIG_RADIO_ADAPTERS=y + +# +# Radio Adapters +# # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set @@ -1003,46 +1083,25 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_TYPHOON is not set # CONFIG_RADIO_ZOLTRIX is not set # CONFIG_USB_DSBR is not set -# CONFIG_DVB_CORE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set # -# Graphics support +# Digital Video Broadcasting Devices # -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_LTV350QV is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_CORGI is not set -CONFIG_BACKLIGHT_LOCOMO=y +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # -# Display device support +# Graphics support # -# CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y CONFIG_FIRMWARE_EDID=y -# CONFIG_FB_DDC is not set +CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_SYS_FOPS is not set -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set - -# -# Frame buffer hardware drivers -# CONFIG_FB_SA1100=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_VIRTUAL is not set @@ -1054,7 +1113,6 @@ CONFIG_FB_SA1100=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y CONFIG_FONT_8x8=y @@ -1067,7 +1125,17 @@ CONFIG_FONT_8x8=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# # CONFIG_LOGO is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +CONFIG_BACKLIGHT_LOCOMO=y # # Sound @@ -1107,7 +1175,6 @@ CONFIG_SND_DUMMY=m # USB devices # # CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_CAIAQ is not set # # PCMCIA devices @@ -1116,37 +1183,23 @@ CONFIG_SND_DUMMY=m # CONFIG_SND_PDAUDIOCF is not set # -# System on Chip audio support +# SoC audio support # # CONFIG_SND_SOC is not set # -# SoC Audio support for SuperH -# - -# # Open Sound System # # CONFIG_SOUND_PRIME is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=m -# CONFIG_HID_DEBUG is not set -# CONFIG_HIDRAW is not set # -# USB Input Devices +# HID Devices # -CONFIG_USB_HID=m -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -# CONFIG_USB_HIDDEV is not set +CONFIG_HID=m # -# USB HID Boot Protocol drivers +# USB support # -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set @@ -1157,10 +1210,9 @@ CONFIG_USB=m # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set -# CONFIG_USB_PERSIST is not set # CONFIG_USB_OTG is not set # @@ -1169,7 +1221,6 @@ CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_SL811_HCD=m CONFIG_USB_SL811_CS=m -# CONFIG_USB_R8A66597_HCD is not set # # USB Device Class drivers @@ -1199,10 +1250,60 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_LIBUSUAL is not set # +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET=m +# CONFIG_USB_ALI_M5632 is not set +# CONFIG_USB_AN2720 is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +CONFIG_USB_NET_ZAURUS=m CONFIG_USB_MON=y # @@ -1218,7 +1319,6 @@ CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRPRIME=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_CH341 is not set CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP2101=m @@ -1254,7 +1354,6 @@ CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m -# CONFIG_USB_SERIAL_OTI6858 is not set CONFIG_USB_SERIAL_HP4X=m CONFIG_USB_SERIAL_SAFE=m # CONFIG_USB_SERIAL_SAFE_PADDED is not set @@ -1277,7 +1376,6 @@ CONFIG_USB_EZUSB=y # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set -# CONFIG_USB_BERRY_CHARGE is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set @@ -1287,7 +1385,6 @@ CONFIG_USB_EZUSB=y # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # @@ -1298,39 +1395,36 @@ CONFIG_USB_EZUSB=y # USB Gadget Support # # CONFIG_USB_GADGET is not set -CONFIG_MMC=m -CONFIG_MMC_DEBUG=y -# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set # -# MMC/SD Card Drivers +# MMC/SD Card support # +CONFIG_MMC=m +CONFIG_MMC_DEBUG=y CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y -# CONFIG_SDIO_UART is not set - -# -# MMC/SD Host Controller Drivers -# +# CONFIG_MMC_TIFM_SD is not set CONFIG_MMC_SPI=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_MMC_UNSAFE_RESUME=y -# -# LED drivers -# -CONFIG_LEDS_LOCOMO=m -# CONFIG_LEDS_GPIO is not set # -# LED Triggers +# Real Time Clock # -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -# CONFIG_LEDS_TRIGGER_IDE_DISK is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -1339,57 +1433,27 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set # -# I2C RTC drivers +# RTC drivers # +# CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_DS1553 is not set # CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set - -# -# SPI RTC drivers -# # CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_MAX6902 is not set - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T59 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_V3020 is not set # -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_SA1100=m - -# -# DMA Engine support -# -# CONFIG_DMA_ENGINE is not set - -# -# DMA Clients -# - -# -# DMA Devices -# - -# # File systems # CONFIG_EXT2_FS=m @@ -1454,13 +1518,11 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set # CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_FS_XATTR is not set -# CONFIG_JFFS2_SYSFS is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 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_CRAMFS=m @@ -1488,7 +1550,6 @@ CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m -# CONFIG_SUNRPC_BIND34 is not set CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=m @@ -1503,6 +1564,7 @@ CONFIG_CIFS=m # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set # # Partition Types @@ -1524,14 +1586,13 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_SUN_PARTITION is not set # CONFIG_KARMA_PARTITION is not set # CONFIG_EFI_PARTITION is not set -# CONFIG_SYSV68_PARTITION is not set # # Native Language Support # -CONFIG_NLS=m +CONFIG_NLS=y CONFIG_NLS_DEFAULT="cp437" -CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m @@ -1555,7 +1616,7 @@ CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m @@ -1584,26 +1645,22 @@ CONFIG_NLS_UTF8=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_MUST_CHECK is not set -# CONFIG_MAGIC_SYSRQ is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_DETECT_SOFTLOCKUP is not set -# CONFIG_SCHED_DEBUG is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set -# CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set @@ -1614,7 +1671,6 @@ CONFIG_DEBUG_KERNEL=y CONFIG_FRAME_POINTER=y # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_FAULT_INJECTION is not set # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_ERRORS=y # CONFIG_DEBUG_LL is not set @@ -1624,11 +1680,15 @@ CONFIG_DEBUG_ERRORS=y # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set + +# +# Cryptographic options +# CONFIG_CRYPTO=y -CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_HASH=m -CONFIG_CRYPTO_MANAGER=m +CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=m # CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_NULL=m @@ -1642,12 +1702,8 @@ CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=m -# CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_XTS is not set -# CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_FCRYPT is not set CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -1659,15 +1715,15 @@ CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m -# CONFIG_CRYPTO_SEED is not set CONFIG_CRYPTO_DEFLATE=m # CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m -# CONFIG_CRYPTO_CAMELLIA is not set CONFIG_CRYPTO_TEST=m -# CONFIG_CRYPTO_AUTHENC is not set -CONFIG_CRYPTO_HW=y + +# +# Hardware crypto devices +# # # Library routines @@ -1675,13 +1731,11 @@ CONFIG_CRYPTO_HW=y CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m -CONFIG_CRC_ITU_T=m CONFIG_CRC32=y -CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_LZO=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y +CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-htcuniversal b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-htcuniversal index 2b02621499..2b02621499 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-htcuniversal +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-htcuniversal diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-hx2000 b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-hx2000 index ee05db4e5a..ee05db4e5a 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-hx2000 +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-hx2000 diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-poodle b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-poodle index 387b5e9bff..5f62891410 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-poodle +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-poodle @@ -28,7 +28,7 @@ CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_SYSCTL=y # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemuarm b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-qemuarm index 35cf3f5b17..35cf3f5b17 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemuarm +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-qemuarm diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemux86 b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-qemux86 index e9eb83e2dd..e9eb83e2dd 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemux86 +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-qemux86 diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-spitz b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-spitz index 8e044e6a14..6116d5b215 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-spitz @@ -40,7 +40,7 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set # CONFIG_AUDIT is not set diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-tosa b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-tosa index 74fc076608..8993aea052 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-tosa +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-tosa @@ -26,7 +26,7 @@ CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_SYSCTL=y # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-zylonite b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-zylonite index 0321704a1f..0321704a1f 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-zylonite +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/defconfig-zylonite diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/hostap-monitor-mode.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/hostap-monitor-mode.patch index 641fd19e50..641fd19e50 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/hostap-monitor-mode.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/hostap-monitor-mode.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni-acx.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/htcuni-acx.patch index 769674c935..769674c935 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni-acx.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/htcuni-acx.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/htcuni.patch index 4d746749c5..4d746749c5 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/htcuni.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/hx2750_base-r31.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/hx2750_base-r31.patch new file mode 100644 index 0000000000..5d58bcf55d --- /dev/null +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/hx2750_base-r31.patch @@ -0,0 +1,1094 @@ +--- + arch/arm/mach-pxa/Kconfig | 10 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/hx2750.c | 450 ++++++++++++++++++++++++++++++++++++++ + arch/arm/mach-pxa/hx2750_test.c | 433 ++++++++++++++++++++++++++++++++++++ + arch/arm/mach-pxa/pm.c | 5 + arch/arm/mach-pxa/pxa25x.c | 4 + arch/arm/mach-pxa/pxa27x.c | 4 + include/asm-arm/arch-pxa/hx2750.h | 90 +++++++ + 8 files changed, 995 insertions(+), 2 deletions(-) + +--- /dev/null ++++ linux-2.6.24-rc1/include/asm-arm/arch-pxa/hx2750.h +@@ -0,0 +1,90 @@ ++/* ++ * Hardware specific definitions for iPAQ hx2750 ++ * ++ * Copyright 2005 Openedhand Ltd. ++ * ++ * Author: Richard Purdie <richard@o-hand.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 __ASM_ARCH_HX2750_H ++#define __ASM_ARCH_HX2750_H 1 ++ ++/* ++ * HX2750 (Non Standard) GPIO Definitions ++ */ ++ ++#define HX2750_GPIO_KEYPWR (0) /* Power button */ ++#define HX2750_GPIO_BATTCOVER1 (9) /* Battery Cover Switch */ ++#define HX2750_GPIO_CF_IRQ (11) /* CF IRQ? */ ++#define HX2750_GPIO_USBCONNECT (12) /* USB Connected? */ ++#define HX2750_GPIO_CF_DETECT (13) /* CF Card Detect? */ ++#define HX2750_GPIO_EXTPWR (14) /* External Power Detect */ ++#define HX2750_GPIO_BATLVL (15) /* Battery Level Detect */ ++#define HX2750_GPIO_CF_PWR (17) /* CF Power? */ ++#define HX2750_GPIO_SR_STROBE (18) /* Shift Register Strobe */ ++#define HX2750_GPIO_CHARGE (22) /* Charging Enable (active low) */ ++#define HX2750_GPIO_TSC2101_SS (24) /* TSC2101 SS# */ ++#define HX2750_GPIO_BTPWR (27) /* Bluetooth Power? */ ++#define HX2750_GPIO_BATTCOVER2 (33) /* Battery Cover Switch */ ++#define HX2750_GPIO_SD_DETECT (38) /* MMC Card Detect */ ++#define HX2750_GPIO_SR_CLK1 (52) /* Shift Register Clock */ ++#define HX2750_GPIO_SR_CLK2 (53) ++#define HX2750_GPIO_CF_WIFIIRQ (54) /* CF Wifi IRQ? */ ++#define HX2750_GPIO_GPIO_DIN (88) /* Shift Register Data */ ++#define HX2750_GPIO_KEYLEFT (90) /* Left button */ ++#define HX2750_GPIO_KEYRIGHT (91) /* Right button */ ++#define HX2750_GPIO_KEYCAL (93) /* Calander button */ ++#define HX2750_GPIO_KEYTASK (94) /* Task button */ ++#define HX2750_GPIO_KEYSIDE (95) /* Side button */ ++#define HX2750_GPIO_KEYENTER (96) /* Enter Button*/ ++#define HX2750_GPIO_KEYCON (97) /* Contacts button */ ++#define HX2750_GPIO_KEYMAIL (98) /* Mail button */ ++#define HX2750_GPIO_BIOPWR (99) /* BIO Reader Power? */ ++#define HX2750_GPIO_KEYUP (100) /* Up button */ ++#define HX2750_GPIO_KEYDOWN (101) /* Down button*/ ++#define HX2750_GPIO_SD_READONLY (103) /* MMC/SD Write Protection */ ++#define HX2750_GPIO_LEDMAIL (106) /* Green Mail LED */ ++#define HX2750_GPIO_HP_JACK (108) /* Head Phone Jack Present */ ++#define HX2750_GPIO_PENDOWN (117) /* Touch Screen Pendown */ ++ ++ ++//#define HX2750_GPIO_ () /* */ ++ ++/* ++ * HX2750 Interrupts ++ */ ++#define HX2750_IRQ_GPIO_EXTPWR IRQ_GPIO(HX2750_GPIO_EXTPWR) ++#define HX2750_IRQ_GPIO_SD_DETECT IRQ_GPIO(HX2750_GPIO_SD_DETECT) ++#define HX2750_IRQ_GPIO_PENDOWN IRQ_GPIO(HX2750_GPIO_PENDOWN) ++#define HX2750_IRQ_GPIO_CF_DETECT IRQ_GPIO(HX2750_GPIO_CF_DETECT) ++#define HX2750_IRQ_GPIO_CF_IRQ IRQ_GPIO(HX2750_GPIO_CF_IRQ) ++#define HX2750_IRQ_GPIO_CF_WIFIIRQ IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ) ++ ++/* ++ * HX2750 Extra GPIO Definitions ++ */ ++ ++#define HX2750_EGPIO_WIFI_PWR (1 << 11) /* Wifi power */ ++#define HX2750_EGPIO_LCD_PWR (1 << 10) /* LCD Power */ ++#define HX2750_EGPIO_BL_PWR (1 << 9) /* Backlight LED Power */ ++#define HX2750_EGPIO_8 (1 << 8) /* */ ++#define HX2750_EGPIO_7 (1 << 7) /* */ ++#define HX2750_EGPIO_SD_PWR (1 << 6) /* SD Power */ ++#define HX2750_EGPIO_TSC_PWR (1 << 5) /* TS Power */ ++#define HX2750_EGPIO_CF0_RESET (1 << 4) /* CF0 Reset */ ++#define HX2750_EGPIO_CF1_RESET (1 << 3) /* CF1 Reset */ ++#define HX2750_EGPIO_2 (1 << 2) /* Power/Red LED Related?*/ ++#define HX2750_EGPIO_1 (1 << 1) /* Power/Red LED Related?*/ ++#define HX2750_EGPIO_PWRLED (1 << 0) /* Power/Red LED Related?*/ ++ ++ ++void hx2750_set_egpio(unsigned int gpio); ++void hx2750_clear_egpio(unsigned int gpio); ++ ++ ++#endif /* __ASM_ARCH_HX2750_H */ ++ +--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/Makefile ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/Makefile +@@ -22,6 +22,7 @@ + obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o + obj-$(CONFIG_MACH_TOSA) += tosa.o + obj-$(CONFIG_MACH_EM_X270) += em-x270.o ++obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o + + ifeq ($(CONFIG_MACH_ZYLONITE),y) + obj-y += zylonite.o +--- /dev/null ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/hx2750_test.c +@@ -0,0 +1,433 @@ ++/* ++ * HP iPAQ hx2750 Test Development Code ++ * ++ * Copyright 2005 Openedhand Ltd. ++ * ++ * Author: Richard Purdie <richard@o-hand.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/init.h> ++#include <linux/kernel.h> ++#include <linux/ioport.h> ++#include <linux/device.h> ++#include <linux/input.h> ++#include <linux/delay.h> ++#include <linux/interrupt.h> ++ ++#include <asm/mach-types.h> ++#include <asm/hardware.h> ++#include <asm/mach/arch.h> ++ ++#include <asm/arch/hx2750.h> ++#include <asm/arch/pxa-regs.h> ++ ++ ++static int prodval; ++ ++/* ++ * Sysfs functions ++ */ ++static ssize_t test1_show(struct device *dev, char *buf) ++{ ++ unsigned long rp; ++ ++ asm ("mrc p15, 0, %0, cr1, cr0;\n" :"=r"(rp) ); ++ printk("%lx\n",rp); ++ ++ asm ("mrc p15, 0, %0, cr1, cr1;\n" :"=r"(rp) ); ++ printk("%lx\n",rp); ++ ++ asm ("mrc p15, 0, %0, cr2, cr0;\n" :"=r"(rp) ); ++ printk("%lx\n",rp); ++ ++ asm ("mrc p15, 0, %0, cr3, cr0;\n" :"=r"(rp) ); ++ printk("%lx\n",rp); ++ ++ asm ("mrc p15, 0, %0, cr13, cr0;\n" :"=r"(rp) ); ++ printk("%lx\n",rp); ++ ++ return sprintf(buf, "%d\n",prodval); ++} ++extern void tsc2101_print_miscdata(struct device *dev); ++extern struct platform_device tsc2101_device; ++ ++static ssize_t test1_store(struct device *dev, const char *buf, size_t count) ++{ ++ prodval = simple_strtoul(buf, NULL, 10); ++ ++ tsc2101_print_miscdata(&tsc2101_device.dev); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(test1, 0644, test1_show, test1_store); ++ ++static ssize_t test2_show(struct device *dev, char *buf) ++{ ++ printk(KERN_ERR "SSCR0_P2: %08x\n", SSCR0_P2); ++ printk(KERN_ERR "SSCR1_P2: %08x\n", SSCR1_P2); ++ printk(KERN_ERR "SSSR_P2: %08x\n", SSSR_P2); ++ printk(KERN_ERR "SSITR_P2: %08x\n", SSITR_P2); ++ printk(KERN_ERR "SSDR_P2: %08x\n", SSDR_P2); ++ printk(KERN_ERR "SSTO_P2: %08x\n", SSTO_P2); ++ printk(KERN_ERR "SSPSP_P2: %08x\n", SSPSP_P2); ++ ++ hx2750_ssp_init2(); ++ ++ printk(KERN_ERR "SSCR0_P2: %08x\n", SSCR0_P2); ++ printk(KERN_ERR "SSCR1_P2: %08x\n", SSCR1_P2); ++ printk(KERN_ERR "SSSR_P2: %08x\n", SSSR_P2); ++ printk(KERN_ERR "SSITR_P2: %08x\n", SSITR_P2); ++ printk(KERN_ERR "SSDR_P2: %08x\n", SSDR_P2); ++ printk(KERN_ERR "SSTO_P2: %08x\n", SSTO_P2); ++ printk(KERN_ERR "SSPSP_P2: %08x\n", SSPSP_P2); ++ ++ return sprintf(buf, "%d\n",0); ++} ++ ++static DEVICE_ATTR(test2, 0444, test2_show, NULL); ++ ++extern unsigned int hx2750_egpio_current; ++ ++static ssize_t setegpio_show(struct device *dev, char *buf) ++{ ++ return sprintf(buf, "%x\n",hx2750_egpio_current); ++} ++ ++static ssize_t setegpio_store(struct device *dev, const char *buf, size_t count) ++{ ++ unsigned int val = simple_strtoul(buf, NULL, 10); ++ ++ hx2750_set_egpio(1 << val); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(setegpio, 0644, setegpio_show, setegpio_store); ++ ++static ssize_t clregpio_show(struct device *dev, char *buf) ++{ ++ return sprintf(buf, "%x\n",hx2750_egpio_current); ++} ++ ++static ssize_t gpio_show(struct device *dev, char *buf) ++{ ++ int i; ++ ++ printk(KERN_ERR "GPIO# D S A INTER\n"); ++ ++ for (i=0;i<119;i++) { ++ printk(KERN_ERR " %3d: ",i); ++ if (GPDR(i) & GPIO_bit(i)) ++ printk("O "); ++ else ++ printk("I "); ++ printk("%d ",(GPLR(i) & GPIO_bit(i)) != 0); ++ printk("%d ",((GAFR(i) & (0x3 << (((i) & 0xf)*2)))) >> (((i) & 0xf)*2) ); ++ if (GEDR(i) & GPIO_bit(i)) ++ printk("ED "); ++ if (GRER(i) & GPIO_bit(i)) ++ printk("RE "); ++ if (GFER(i) & GPIO_bit(i)) ++ printk("FE "); ++ ++ printk("\n"); ++ } ++ return sprintf(buf, "EGPIO: %x\n",hx2750_egpio_current); ++} ++ ++static ssize_t clregpio_store(struct device *dev, const char *buf, size_t count) ++{ ++ unsigned int val = simple_strtoul(buf, NULL, 10); ++ ++ hx2750_clear_egpio(1 << val); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(clregpio, 0644, clregpio_show, clregpio_store); ++ ++ ++static ssize_t gpioclr_store(struct device *dev, const char *buf, size_t count) ++{ ++ int prod; ++ prod = simple_strtoul(buf, NULL, 10); ++ ++ GPCR(prod) = GPIO_bit(prod); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(gpioclr, 0644, gpio_show, gpioclr_store); ++ ++static ssize_t gpioset_store(struct device *dev, const char *buf, size_t count) ++{ ++ int prod; ++ prod = simple_strtoul(buf, NULL, 10); ++ ++ GPSR(prod) = GPIO_bit(prod); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(gpioset, 0644, gpio_show, gpioset_store); ++ ++ ++static ssize_t ssp2read_store(struct device *dev, const char *buf, size_t count) ++{ ++ unsigned int val = simple_strtoul(buf, NULL, 16); ++ ++ printk("Read: %08x\n",hx2750_ssp2_read(val)); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(ssp2read, 0200, NULL, ssp2read_store);
++
++static ssize_t ssp2write_store(struct device *dev, const char *buf, size_t count) ++{ ++ unsigned int val = simple_strtoul(buf, NULL, 16); ++ ++ printk("Write: %08x\n",hx2750_ssp2_write(val)); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(ssp2write, 0200, NULL, ssp2write_store); ++ ++ ++static ssize_t sspr_store(struct device *dev, const char *buf, size_t count) ++{ ++ unsigned long val,ret; ++ val = simple_strtoul(buf, NULL, 0); ++ ++ hx2750_tsc2101_send(1<<15,val,&ret,1); ++ ++ printk("Response: %x\n",ret); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(sspr, 0200, NULL, sspr_store); ++ ++static ssize_t sspw_store(struct device *dev, const char *buf, size_t count) ++{ ++ int val,ret; ++ sscanf(buf, "%lx %lx", &val, &ret); ++ ++ hx2750_tsc2101_send(0,val,&ret,1); ++ ++ return count; ++} ++ ++static DEVICE_ATTR(sspw, 0200, NULL, sspw_store); ++ ++ ++extern struct pm_ops pxa_pm_ops; ++extern void pxa_cpu_resume(void); ++extern unsigned long pxa_pm_pspr_value; ++ ++static int (*pxa_pm_enter_orig)(suspend_state_t state); ++ ++//static struct { ++// u32 ffier, fflcr, ffmcr, ffspr, ffisr, ffdll, ffdlh; ++//} sys_ctx; ++ ++u32 resstruct[20]; ++ ++static int hx2750_pxa_pm_enter(suspend_state_t state) ++{ ++ int i; ++ u32 save[10]; ++ ++ PWER = 0xC0000003;// | PWER_RTC; ++ PFER = 0x00000003; ++ PRER = 0x00000003; ++ ++ PGSR0=0x00000018; ++ PGSR1=0x00000380; ++ PGSR2=0x00800000; ++ PGSR3=0x00500400; ++ ++ //PVCR=0x494; or 0x14; ++ //PVCR=0x14; ++ //PCMD0=0x41f; ++ //i=PISR; ++ //PICR=0x00000062; ++ ++ //PCFR=0x457; ++ //PCFR=0x70; // Does not resume from sleep ++ PCFR=0x077; // was 0x477 ++ PSLR=0xff100004; ++ ++ resstruct[0]=0x0000b4e6; ++ resstruct[1]=0x00000001; ++ resstruct[2]=virt_to_phys(pxa_cpu_resume); ++ resstruct[3]=0xffffffff; //value for r0 ++ ++ resstruct[14]=0x00000078; //mcr 15, 0, r0, cr1, cr0, {0} ++ resstruct[15]=0x00000000; //mcr 15, 0, r0, cr1, cr1, {0} 0xffffffff
++ resstruct[16]=0xa0000000; //mcr 15, 0, r0, cr2, cr0, {0} 0xa0748000
++ resstruct[17]=0x00000001; //mcr 15, 0, r0, cr3, cr0, {0} 0x00000015
++ resstruct[18]=0x00000000; //mcr 15, 0, r0, cr13, cr0, {0} 0x00000000
++ ++ pxa_pm_pspr_value=virt_to_phys(&resstruct[0]); ++ ++ hx2750_send_egpio(3); ++ ++ pxa_gpio_mode(87 | GPIO_OUT | GPIO_DFLT_HIGH); ++ ++ //sys_ctx.ffier = FFIER; ++ //sys_ctx.fflcr = FFLCR; ++ //sys_ctx.ffmcr = FFMCR; ++ //sys_ctx.ffspr = FFSPR; ++ //sys_ctx.ffisr = FFISR; ++ //FFLCR |= 0x80; ++ //sys_ctx.ffdll = FFDLL; ++ //sys_ctx.ffdlh = FFDLH; ++ //FFLCR &= 0xef; ++ ++ pxa_pm_enter_orig(state); ++ ++ //FFMCR = sys_ctx.ffmcr; ++ //FFSPR = sys_ctx.ffspr; ++ //FFLCR = sys_ctx.fflcr; ++ //FFLCR |= 0x80; ++ //FFDLH = sys_ctx.ffdlh; ++ //FFDLL = sys_ctx.ffdll; ++ //FFLCR = sys_ctx.fflcr; ++ //FFISR = sys_ctx.ffisr; ++ //FFLCR = 0x07; ++ //FFIER = sys_ctx.ffier; ++ ++ return 0; ++} ++ ++static irqreturn_t hx2750_charge_int(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ if ((GPLR(HX2750_GPIO_EXTPWR) & GPIO_bit(HX2750_GPIO_EXTPWR)) == 0) { ++ printk("Charging On\n"); ++ GPCR(HX2750_GPIO_CHARGE); ++ } else { ++ printk("Charging Off\n"); ++ GPSR(HX2750_GPIO_CHARGE); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++ ++ ++ ++static irqreturn_t hx2750_interrupt(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ printk("Input %d changed.\n", irq-32); ++ ++ return IRQ_HANDLED; ++} ++ ++ ++static int __init hx2750_test_probe(struct device *dev) ++{ ++ pxa_gpio_mode(21 | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(HX2750_GPIO_CHARGE | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(83 | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(HX2750_GPIO_BIOPWR | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(116 | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(118 | GPIO_OUT | GPIO_DFLT_HIGH); ++ ++ ++ //pxa_gpio_mode(HX2750_GPIO_CF_PWR | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(HX2750_GPIO_CF_PWR | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(HX2750_GPIO_BTPWR | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(79 | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(85 | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(HX2750_GPIO_LEDMAIL | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(107 | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(114 | GPIO_OUT | GPIO_DFLT_LOW); ++ ++ pxa_gpio_mode(HX2750_GPIO_BATTCOVER1 | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_BATTCOVER2 | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_CF_IRQ | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_USBCONNECT | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_CF_DETECT | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_EXTPWR | GPIO_IN); ++ ++ pxa_gpio_mode(HX2750_GPIO_BATLVL | GPIO_IN); ++ //pxa_gpio_mode(HX2750_GPIO_CF_WIFIIRQ | GPIO_IN); ++ pxa_gpio_mode(80 | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_HP_JACK | GPIO_IN); ++ pxa_gpio_mode(115 | GPIO_IN); ++ pxa_gpio_mode(119 | GPIO_IN); ++ ++ request_irq(IRQ_GPIO(HX2750_GPIO_BATLVL), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ //request_irq(IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ request_irq(IRQ_GPIO(80), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ request_irq(IRQ_GPIO(115), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ request_irq(IRQ_GPIO(119), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ request_irq(IRQ_GPIO(HX2750_GPIO_SR_CLK2), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ ++ //request_irq(IRQ_GPIO(10), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL); ++ ++ set_irq_type(IRQ_GPIO(HX2750_GPIO_BATLVL),IRQT_BOTHEDGE); ++ //set_irq_type(IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ),IRQT_BOTHEDGE); ++ set_irq_type(IRQ_GPIO(80),IRQT_BOTHEDGE); ++ set_irq_type(IRQ_GPIO(115),IRQT_BOTHEDGE); ++ set_irq_type(IRQ_GPIO(119),IRQT_BOTHEDGE); ++ set_irq_type(IRQ_GPIO(HX2750_GPIO_SR_CLK2),IRQT_BOTHEDGE); ++ ++ //set_irq_type(IRQ_GPIO(10),IRQT_BOTHEDGE); ++ ++ printk("hx2750 Test Code Initialized.\n"); ++ device_create_file(dev, &dev_attr_test1); ++ device_create_file(dev, &dev_attr_test2); ++ device_create_file(dev, &dev_attr_setegpio); ++ device_create_file(dev, &dev_attr_clregpio); ++ device_create_file(dev, &dev_attr_gpioset); ++ device_create_file(dev, &dev_attr_gpioclr); ++ device_create_file(dev, &dev_attr_sspr); ++ device_create_file(dev, &dev_attr_sspw); ++ device_create_file(dev, &dev_attr_ssp2read); ++ device_create_file(dev, &dev_attr_ssp2write); ++ ++ request_irq(HX2750_IRQ_GPIO_EXTPWR, hx2750_charge_int, SA_INTERRUPT, "hx2750_extpwr", NULL); ++ set_irq_type(HX2750_IRQ_GPIO_EXTPWR, IRQT_BOTHEDGE); ++ ++ pxa_pm_enter_orig=pxa_pm_ops.enter; ++ pxa_pm_ops.enter=hx2750_pxa_pm_enter; ++ ++ return 0; ++} ++ ++static struct device_driver hx2750_test_driver = { ++ .name = "hx2750-test", ++ .bus = &platform_bus_type, ++ .probe = hx2750_test_probe, ++// .remove = hx2750_bl_remove, ++// .suspend = hx2750_bl_suspend, ++// .resume = hx2750_bl_resume, ++}; ++ ++ ++static int __init hx2750_test_init(void) ++{ ++ return driver_register(&hx2750_test_driver); ++} ++ ++ ++static void __exit hx2750_test_exit(void) ++{ ++ driver_unregister(&hx2750_test_driver); ++} ++ ++module_init(hx2750_test_init); ++module_exit(hx2750_test_exit); ++ ++MODULE_AUTHOR("Richard Purdie <richard@o-hand.com>"); ++MODULE_DESCRIPTION("iPAQ hx2750 Backlight Driver"); ++MODULE_LICENSE("GPLv2"); +--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/Kconfig ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/Kconfig +@@ -83,6 +83,15 @@ + bool "Sharp PXA270 models (SL-Cxx00)" + select PXA27x + ++config MACH_HX2750 ++ bool "HP iPAQ hx2750" ++ select PXA27x ++ select PXA_KEYS ++ select MFD_TSC2101 ++ select PXA_SSP ++ help ++ This enables support for the HP iPAQ HX2750 handheld. ++ + endchoice + + endif +@@ -181,3 +190,4 @@ + help + Enable support for PXA2xx SSP ports + endif ++ +--- /dev/null ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/hx2750.c +@@ -0,0 +1,450 @@ ++/* ++ * Machine definitions for HP iPAQ hx2750 ++ * ++ * Copyright 2005 Openedhand Ltd. ++ * ++ * Author: Richard Purdie <richard@o-hand.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/init.h> ++#include <linux/kernel.h> ++#include <linux/ioport.h> ++#include <linux/platform_device.h> ++#include <linux/delay.h> ++#include <linux/input.h> ++#include <linux/irq.h> ++#include <linux/mmc/host.h> ++#include <linux/mfd/tsc2101.h> ++ ++#include <asm/mach-types.h> ++#include <asm/hardware.h> ++#include <asm/mach/arch.h> ++ ++#include <asm/arch/hx2750.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/arch/pxa_keys.h> ++#include <asm/mach/map.h> ++#include <asm/arch/udc.h> ++#include <asm/arch/mmc.h> ++#include <asm/arch/audio.h> ++#include <asm/arch/pxafb.h> ++#include <asm/arch/ssp.h> ++ ++#include "generic.h" ++ ++ ++/* ++ * Keys Support ++ */ ++static struct pxa_keys_button hx2750_button_table[] = { ++ { KEY_POWER, HX2750_GPIO_KEYPWR, PXAKEY_PWR_KEY }, ++ { KEY_LEFT, HX2750_GPIO_KEYLEFT, 0 }, ++ { KEY_RIGHT, HX2750_GPIO_KEYRIGHT, 0 }, ++ { KEY_KP0, HX2750_GPIO_KEYCAL, 0 }, ++ { KEY_KP1, HX2750_GPIO_KEYTASK, 0 }, ++ { KEY_KP2, HX2750_GPIO_KEYSIDE, 0 }, ++ { KEY_ENTER, HX2750_GPIO_KEYENTER, 0 }, ++ { KEY_KP3, HX2750_GPIO_KEYCON, 0 }, //KEY_CONTACTS ++ { KEY_MAIL, HX2750_GPIO_KEYMAIL, 0 }, ++ { KEY_UP, HX2750_GPIO_KEYUP, 0 }, ++ { KEY_DOWN, HX2750_GPIO_KEYDOWN, 0 }, ++}; ++ ++static struct pxa_keys_platform_data hx2750_pxa_keys_data = { ++ .buttons = hx2750_button_table, ++ .nbuttons = ARRAY_SIZE(hx2750_button_table), ++}; ++ ++static struct platform_device hx2750_pxa_keys = { ++ .name = "pxa2xx-keys", ++ .dev = { ++ .platform_data = &hx2750_pxa_keys_data, ++ }, ++}; ++ ++ ++/* ++ * Backlight Device ++ */ ++extern struct platform_device pxafb_device; ++ ++static struct platform_device hx2750_bl_device = { ++ .name = "hx2750-bl", ++ .id = -1, ++// .dev = { ++// .parent = &pxafb_device.dev, ++// } ++}; ++ ++ ++/* ++ * UDC/USB ++ */ ++static int hx2750_udc_is_connected (void) ++{ ++ return GPLR0 & GPIO_bit(HX2750_GPIO_USBCONNECT); ++} ++ ++//static void hx2750_udc_command (int cmd) ++//{ ++//} ++ ++static struct pxa2xx_udc_mach_info hx2750_udc_mach_info = { ++ .udc_is_connected = hx2750_udc_is_connected, ++// .udc_command = hx2750_udc_command, ++}; ++ ++ ++/* ++ * SSP Devices Setup ++ */ ++static struct ssp_dev hx2750_ssp_dev1; ++static struct ssp_dev hx2750_ssp_dev2; ++static struct ssp_dev hx2750_ssp_dev3; ++ ++void hx2750_ssp_init(void) ++{ ++ pxa_gpio_mode(HX2750_GPIO_TSC2101_SS | GPIO_OUT | GPIO_DFLT_HIGH); ++ ++ if (ssp_init(&hx2750_ssp_dev1, 1, 0)) ++ printk(KERN_ERR "Unable to register SSP1 handler!\n"); ++ else { ++ ssp_disable(&hx2750_ssp_dev1); ++ ssp_config(&hx2750_ssp_dev1, (SSCR0_Motorola | (SSCR0_DSS & 0x0f )), SSCR1_SPH, 0, SSCR0_SerClkDiv(6)); ++ ssp_enable(&hx2750_ssp_dev1); ++ hx2750_set_egpio(HX2750_EGPIO_TSC_PWR); ++ } ++ ++// if (ssp_init(&hx2750_ssp_dev2, 2, 0)) ++// printk(KERN_ERR "Unable to register SSP2 handler!\n"); ++// else { ++// ssp_disable(&hx2750_ssp_dev2); ++// ssp_config(&hx2750_ssp_dev2, (SSCR0_TI | (SSCR0_DSS & 0x09 )), 0, 0, SSCR0_SerClkDiv(140)); ++// ssp_enable(&hx2750_ssp_dev2); ++// } ++// ++ if (ssp_init(&hx2750_ssp_dev3, 3, 0)) ++ printk(KERN_ERR "Unable to register SSP3 handler!\n"); ++ else { ++ ssp_disable(&hx2750_ssp_dev3); ++ ssp_config(&hx2750_ssp_dev3, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), SSCR1_SPO | SSCR1_SPH, 0, SSCR0_SerClkDiv(166)); ++ ssp_enable(&hx2750_ssp_dev3); ++ } ++ ++ printk("SSP Devices Initialised\n"); ++ ++ return; ++} ++ ++struct ssp_state ssp1; ++ ++void hx2750_ssp_suspend(void) ++{ ++ ssp_disable(&hx2750_ssp_dev1); ++ ssp_save_state(&hx2750_ssp_dev1,&ssp1); ++ hx2750_clear_egpio(HX2750_EGPIO_TSC_PWR); ++} ++ ++void hx2750_ssp_resume(void) ++{ ++ hx2750_set_egpio(HX2750_EGPIO_TSC_PWR); ++ ssp_restore_state(&hx2750_ssp_dev1,&ssp1); ++ ssp_enable(&hx2750_ssp_dev1); ++} ++ ++void hx2750_ssp_init2(void) ++{ ++ printk("Stage 1: %x\n",CKEN); ++ if (ssp_init(&hx2750_ssp_dev2, 2, 0)) ++ printk(KERN_ERR "Unable to register SSP2 handler!\n"); ++ else { ++ printk("Stage 2: %x\n",CKEN); ++ ssp_disable(&hx2750_ssp_dev2); ++ printk("Stage 3: %x\n",CKEN); ++ ssp_config(&hx2750_ssp_dev2, (SSCR0_TI | (SSCR0_DSS & 0x09 )) | SSCR0_SSE, 0, 0, SSCR0_SerClkDiv(212)); ++ printk("Stage 4: %x\n",CKEN); ++ ssp_enable(&hx2750_ssp_dev2); ++ printk("Stage 5: %x\n",CKEN); ++ } ++ printk("SSP Device2 Initialised\n"); ++ ++ printk("Sent: 0x3ff\n"); ++ ssp_write_word(&hx2750_ssp_dev2,0x3ff); ++ ++ return; ++} ++ ++void hx2750_ssp2_reset(void) ++{ ++ ssp_write_word(&hx2750_ssp_dev2,0x000); ++ ssp_write_word(&hx2750_ssp_dev2,0x000); ++ ++} ++ ++unsigned long hx2750_ssp2_read(void) ++{ ++ u32 ret = 0; ++ ssp_read_word(&hx2750_ssp_dev2, &ret); ++ return ret; ++} ++ ++void hx2750_ssp2_write(unsigned long data) ++{ ++ ssp_write_word(&hx2750_ssp_dev2, data); ++} ++ ++ ++/* ++ * Extra hx2750 Specific GPIOs ++ */ ++void hx2750_send_egpio(unsigned int val) ++{ ++ int i; ++ ++ GPCR0 = GPIO_bit(HX2750_GPIO_SR_STROBE); ++ GPCR1 = GPIO_bit(HX2750_GPIO_SR_CLK1); ++ ++ for (i=0;i<12;i++) { ++ if (val & 0x01) ++ GPSR2 = GPIO_bit(HX2750_GPIO_GPIO_DIN); ++ else ++ GPCR2 = GPIO_bit(HX2750_GPIO_GPIO_DIN); ++ val >>= 1; ++ GPSR1 = GPIO_bit(HX2750_GPIO_SR_CLK1); ++ GPCR1 = GPIO_bit(HX2750_GPIO_SR_CLK1); ++ } ++ ++ GPSR0 = GPIO_bit(HX2750_GPIO_SR_STROBE); ++ GPCR0 = GPIO_bit(HX2750_GPIO_SR_STROBE); ++} ++ ++EXPORT_SYMBOL(hx2750_send_egpio); ++ ++unsigned int hx2750_egpio_current; ++ ++void hx2750_set_egpio(unsigned int gpio) ++{ ++ hx2750_egpio_current|=gpio; ++ ++ hx2750_send_egpio(hx2750_egpio_current); ++} ++EXPORT_SYMBOL(hx2750_set_egpio); ++ ++void hx2750_clear_egpio(unsigned int gpio) ++{ ++ hx2750_egpio_current&=~gpio; ++ ++ hx2750_send_egpio(hx2750_egpio_current); ++} ++EXPORT_SYMBOL(hx2750_clear_egpio); ++ ++ ++/* ++ * Touchscreen/Sound/Battery Status ++ */ ++void hx2750_tsc2101_send(int read, int command, int *values, int numval) ++{ ++ u32 ret = 0; ++ int i; ++ ++ GPCR0 = GPIO_bit(HX2750_GPIO_TSC2101_SS); ++ ++ ssp_write_word(&hx2750_ssp_dev1, command | read); ++ /* dummy read */ ++ ssp_read_word(&hx2750_ssp_dev1, &ret); ++ ++ for (i=0; i < numval; i++) { ++ if (read) { ++ ssp_write_word(&hx2750_ssp_dev1, 0); ++ ssp_read_word(&hx2750_ssp_dev1, &values[i]); ++ } else { ++ ssp_write_word(&hx2750_ssp_dev1, values[i]); ++ ssp_read_word(&hx2750_ssp_dev1, &ret); ++ } ++ } ++ ++ GPSR0 = GPIO_bit(HX2750_GPIO_TSC2101_SS); ++} ++ ++static int hx2750_tsc2101_pendown(void) ++{ ++ if ((GPLR(HX2750_GPIO_PENDOWN) & GPIO_bit(HX2750_GPIO_PENDOWN)) == 0) ++ return 1; ++ return 0; ++} ++ ++static struct tsc2101_platform_info hx2750_tsc2101_info = { ++ .send = hx2750_tsc2101_send, ++ .suspend = hx2750_ssp_suspend, ++ .resume = hx2750_ssp_resume, ++ .irq = HX2750_IRQ_GPIO_PENDOWN, ++ .pendown = hx2750_tsc2101_pendown, ++}; ++ ++struct platform_device tsc2101_device = { ++ .name = "tsc2101", ++ .dev = { ++ .platform_data = &hx2750_tsc2101_info, ++ //.parent = &corgissp_device.dev, ++ }, ++ .id = -1, ++}; ++ ++ ++/* ++ * MMC/SD Device ++ * ++ * The card detect interrupt isn't debounced so we delay it by 250ms ++ * to give the card a chance to fully insert/eject. ++ */ ++static struct pxamci_platform_data hx2750_mci_platform_data; ++ ++static int hx2750_mci_init(struct device *dev, irq_handler_t hx2750_detect_int, void *data) ++{ ++ int err; ++ ++ /* ++ * setup GPIO for PXA27x MMC controller ++ */ ++ pxa_gpio_mode(GPIO32_MMCCLK_MD); ++ pxa_gpio_mode(GPIO112_MMCCMD_MD); ++ pxa_gpio_mode(GPIO92_MMCDAT0_MD); ++ pxa_gpio_mode(GPIO109_MMCDAT1_MD); ++ pxa_gpio_mode(GPIO110_MMCDAT2_MD); ++ pxa_gpio_mode(GPIO111_MMCDAT3_MD); ++ pxa_gpio_mode(HX2750_GPIO_SD_DETECT | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_SD_READONLY | GPIO_IN); ++ ++ hx2750_mci_platform_data.detect_delay = msecs_to_jiffies(250); ++ ++ err = request_irq(HX2750_IRQ_GPIO_SD_DETECT, hx2750_detect_int, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, ++ "MMC card detect", data); ++ if (err) { ++ printk(KERN_ERR "hx2750_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static void hx2750_mci_setpower(struct device *dev, unsigned int vdd) ++{ ++ struct pxamci_platform_data* p_d = dev->platform_data; ++ ++ if (( 1 << vdd) & p_d->ocr_mask) ++ hx2750_set_egpio(HX2750_EGPIO_SD_PWR); ++ else ++ hx2750_clear_egpio(HX2750_EGPIO_SD_PWR); ++} ++ ++static void hx2750_mci_exit(struct device *dev, void *data) ++{ ++ free_irq(HX2750_IRQ_GPIO_SD_DETECT, data); ++} ++ ++static struct pxamci_platform_data hx2750_mci_platform_data = { ++ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, ++ .init = hx2750_mci_init, ++ .setpower = hx2750_mci_setpower, ++ .exit = hx2750_mci_exit, ++}; ++ ++ ++/* ++ * FrameBuffer ++ */ ++static struct pxafb_mode_info hx2750_pxafb_modes = { ++ .pixclock = 288462, ++ .xres = 240, ++ .yres = 320, ++ .bpp = 16, ++ .hsync_len = 20, ++ .left_margin = 42, ++ .right_margin = 18, ++ .vsync_len = 4, ++ .upper_margin = 3, ++ .lower_margin = 4, ++ .sync = 0, ++}; ++ ++static struct pxafb_mach_info hx2750_pxafb_info = { ++ .modes = &hx2750_pxafb_modes, ++ .num_modes = 1, ++ .fixed_modes = 1, ++ .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act, ++ .lccr3 = LCCR3_PixFlEdg | LCCR3_OutEnH, ++ .pxafb_backlight_power = NULL, ++}; ++ ++ ++/* ++ * Test Device ++ */ ++static struct platform_device hx2750_test_device = { ++ .name = "hx2750-test", ++ .id = -1, ++}; ++ ++ ++/* Initialization code */ ++static struct platform_device *devices[] __initdata = { ++ &hx2750_bl_device, ++ &hx2750_test_device, ++ &hx2750_pxa_keys, ++ &tsc2101_device, ++}; ++ ++static void __init hx2750_init( void ) ++{ ++ PWER = 0xC0000003;// | PWER_RTC; ++ PFER = 0x00000003; ++ PRER = 0x00000003; ++ ++ PGSR0=0x00000018; ++ PGSR1=0x00000380; ++ PGSR2=0x00800000; ++ PGSR3=0x00500400; ++ ++ //PCFR |= PCFR_OPDE; ++ PCFR=0x77; ++ PSLR=0xff100000; ++ //PCFR=0x10; - does not return from suspend ++ ++ //PCFR= 0x00004040; ++ //PSLR= 0xff400f04; ++ ++ /* Setup Extra GPIO Bank access */ ++ pxa_gpio_mode(HX2750_GPIO_GPIO_DIN | GPIO_OUT | GPIO_DFLT_HIGH); ++ pxa_gpio_mode(HX2750_GPIO_SR_CLK1 | GPIO_OUT | GPIO_DFLT_LOW); ++ pxa_gpio_mode(HX2750_GPIO_SR_CLK2 | GPIO_IN); ++ pxa_gpio_mode(HX2750_GPIO_SR_STROBE | GPIO_OUT | GPIO_DFLT_LOW); ++ ++ /* Init Extra GPIOs - Bootloader reset default is 0x484 */ ++ /* This is 0xe84 */ ++ hx2750_set_egpio(HX2750_EGPIO_2 | HX2750_EGPIO_7 | HX2750_EGPIO_LCD_PWR | HX2750_EGPIO_BL_PWR | HX2750_EGPIO_WIFI_PWR); ++ ++ pxa_set_udc_info(&hx2750_udc_mach_info); ++ pxa_set_mci_info(&hx2750_mci_platform_data); ++ set_pxa_fb_info(&hx2750_pxafb_info); ++ hx2750_ssp_init(); ++ platform_add_devices (devices, ARRAY_SIZE (devices)); ++} ++ ++ ++MACHINE_START(HX2750, "HP iPAQ HX2750") ++ .phys_io = 0x40000000, ++ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, ++ .boot_params = 0xa0000100, ++ .map_io = pxa_map_io, ++ .init_irq = pxa_init_irq, ++ .timer = &pxa_timer, ++ .init_machine = hx2750_init, ++MACHINE_END ++ +--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/pm.c ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/pm.c +@@ -17,6 +17,7 @@ + #include <linux/time.h> + + #include <asm/hardware.h> ++#include <asm/mach-types.h> + #include <asm/memory.h> + #include <asm/system.h> + #include <asm/arch/pm.h> +@@ -91,6 +92,9 @@ + .enter = pxa_pm_enter, + }; + ++unsigned long pxa_pm_pspr_value; ++extern void pxa_cpu_resume(void); ++ + static int __init pxa_pm_init(void) + { + if (!pxa_cpu_pm_fns) { +@@ -104,6 +108,7 @@ + return -ENOMEM; + } + ++ pxa_pm_pspr_value=virt_to_phys(pxa_cpu_resume); + suspend_set_ops(&pxa_pm_ops); + return 0; + } +--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/pxa27x.c ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/pxa27x.c +@@ -259,6 +259,8 @@ + RESTORE(PSTR); + } + ++extern unsigned long pxa_pm_pspr_value; ++ + void pxa27x_cpu_pm_enter(suspend_state_t state) + { + extern void pxa_cpu_standby(void); +@@ -281,7 +283,7 @@ + break; + case PM_SUSPEND_MEM: + /* set resume return address */ +- PSPR = virt_to_phys(pxa_cpu_resume); ++ PSPR = pxa_pm_pspr_value; + pxa27x_cpu_suspend(PWRMODE_SLEEP); + break; + } +--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/pxa25x.c ++++ linux-2.6.24-rc1/arch/arm/mach-pxa/pxa25x.c +@@ -200,6 +200,8 @@ + RESTORE(PSTR); + } + ++extern unsigned long pxa_pm_pspr_value; ++ + static void pxa25x_cpu_pm_enter(suspend_state_t state) + { + CKEN = 0; +@@ -207,7 +209,7 @@ + switch (state) { + case PM_SUSPEND_MEM: + /* set resume return address */ +- PSPR = virt_to_phys(pxa_cpu_resume); ++ PSPR = pxa_pm_pspr_value; + pxa25x_cpu_suspend(PWRMODE_SLEEP); + break; + } diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/mmcsd_no_scr_check-r2.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/mmcsd_no_scr_check-r2.patch index ac2245f088..ac2245f088 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/mmcsd_no_scr_check-r2.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/mmcsd_no_scr_check-r2.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pda-power.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pda-power.patch index face2f4ef2..face2f4ef2 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pda-power.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pda-power.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa-serial-hack.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa-serial-hack.patch index bf20f46a05..bf20f46a05 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa-serial-hack.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa-serial-hack.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa27x_overlay-r8.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa27x_overlay-r8.patch new file mode 100644 index 0000000000..693ad20453 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa27x_overlay-r8.patch @@ -0,0 +1,2427 @@ + drivers/video/Kconfig | 18 + drivers/video/Makefile | 1 + drivers/video/pxafb.c | 305 +++++-- + drivers/video/pxafb.h | 65 + + drivers/video/pxafb_overlay.c | 1525 ++++++++++++++++++++++++++++++++++++ + include/asm-arm/arch-pxa/pxa-regs.h | 111 ++ + 6 files changed, 1969 insertions(+), 56 deletions(-) + +--- linux-2.6.24-rc1.orig/drivers/video/Kconfig ++++ linux-2.6.24-rc1/drivers/video/Kconfig +@@ -1718,6 +1718,24 @@ + + If unsure, say N. + ++choice ++ prompt "PXA LCD type" ++ depends on FB_PXA ++ ++config FB_PXA_LCD_QVGA ++ bool "QVGA(320x240)" ++ ++config FB_PXA_LCD_VGA ++ bool "VGA (640x480)" ++ ++endchoice ++ ++config FB_PXA_OVERLAY ++ tristate "PXA LCD overlay support" ++ depends on FB_PXA ++ ---help--- ++ Frame buffer overlay driver for PXA27x ++ + config FB_PXA_PARAMETERS + bool "PXA LCD command line parameters" + default n +--- linux-2.6.24-rc1.orig/drivers/video/Makefile ++++ linux-2.6.24-rc1/drivers/video/Makefile +@@ -96,6 +96,7 @@ + obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o + obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o + obj-$(CONFIG_FB_PXA) += pxafb.o ++obj-$(CONFIG_FB_PXA_OVERLAY) += pxafb_overlay.o + obj-$(CONFIG_FB_W100) += w100fb.o + obj-$(CONFIG_FB_AU1100) += au1100fb.o + obj-$(CONFIG_FB_AU1200) += au1200fb.o +--- linux-2.6.24-rc1.orig/drivers/video/pxafb.c ++++ linux-2.6.24-rc1/drivers/video/pxafb.c +@@ -59,17 +59,49 @@ + #define LCCR0_INVALID_CONFIG_MASK (LCCR0_OUM|LCCR0_BM|LCCR0_QDM|LCCR0_DIS|LCCR0_EFM|LCCR0_IUM|LCCR0_SFM|LCCR0_LDM|LCCR0_ENB) + #define LCCR3_INVALID_CONFIG_MASK (LCCR3_HSP|LCCR3_VSP|LCCR3_PCD|LCCR3_BPP) + ++wait_queue_head_t fcs_wait_eof; ++int fcs_in_eof; ++static DECLARE_MUTEX(fcs_lcd_sem); ++ + static void (*pxafb_backlight_power)(int); + static void (*pxafb_lcd_power)(int, struct fb_var_screeninfo *); + + static int pxafb_activate_var(struct fb_var_screeninfo *var, struct pxafb_info *); +-static void set_ctrlr_state(struct pxafb_info *fbi, u_int state); ++void pxafb_set_ctrlr_state(struct pxafb_info *fbi, u_int state); + + #ifdef CONFIG_FB_PXA_PARAMETERS + #define PXAFB_OPTIONS_SIZE 256 + static char g_options[PXAFB_OPTIONS_SIZE] __devinitdata = ""; + #endif + ++static struct pxafb_rgb def_rgb_8 = { ++ red: { offset: 0, length: 8, }, ++ green: { offset: 0, length: 8, }, ++ blue: { offset: 0, length: 8, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ ++static struct pxafb_rgb def_rgb_16 = { ++ red: { offset: 11, length: 5, }, ++ green: { offset: 5, length: 6, }, ++ blue: { offset: 0, length: 5, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ ++static struct pxafb_rgb def_rgb_18 = { ++ red: { offset: 12, length: 6, }, ++ green: { offset: 6, length: 6, }, ++ blue: { offset: 0, length: 6, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ ++static struct pxafb_rgb def_rgb_24 = { ++ red: { offset: 16, length: 8, }, ++ green: { offset: 8, length: 8, }, ++ blue: { offset: 0, length: 8, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ + static inline void pxafb_schedule_work(struct pxafb_info *fbi, u_int state) + { + unsigned long flags; +@@ -209,6 +241,10 @@ + case 4: ret = LCCR3_4BPP; break; + case 8: ret = LCCR3_8BPP; break; + case 16: ret = LCCR3_16BPP; break; ++ case 18: ret = LCCR3_18BPP; break; ++ case 19: ret = LCCR3_19BPP; break; ++ case 24: ret = LCCR3_24BPP; break; ++ case 25: ret = LCCR3_25BPP; break; + } + return ret; + } +@@ -320,18 +356,34 @@ + * The pixel packing format is described on page 7-11 of the + * PXA2XX Developer's Manual. + */ +- if (var->bits_per_pixel == 16) { +- var->red.offset = 11; var->red.length = 5; +- var->green.offset = 5; var->green.length = 6; +- var->blue.offset = 0; var->blue.length = 5; +- var->transp.offset = var->transp.length = 0; +- } else { +- var->red.offset = var->green.offset = var->blue.offset = var->transp.offset = 0; +- var->red.length = 8; +- var->green.length = 8; +- var->blue.length = 8; +- var->transp.length = 0; +- } ++ switch (var->bits_per_pixel) { ++ case 16: ++ /* 2 pixels per line */ ++ var->red = def_rgb_16.red; ++ var->green = def_rgb_16.green; ++ var->blue = def_rgb_16.blue; ++ var->transp = def_rgb_16.transp; ++ break; ++ case 18: ++ case 19: ++ var->red = def_rgb_18.red; ++ var->green = def_rgb_18.green; ++ var->blue = def_rgb_18.blue; ++ var->transp = def_rgb_18.transp; ++ break; ++ case 24: ++ case 25: ++ var->red = def_rgb_24.red; ++ var->green = def_rgb_24.green; ++ var->blue = def_rgb_24.blue; ++ var->transp = def_rgb_24.transp; ++ break; ++ default: ++ var->red = def_rgb_8.red; ++ var->green = def_rgb_8.green; ++ var->blue = def_rgb_8.blue; ++ var->transp = def_rgb_8.transp; ++ } + + #ifdef CONFIG_CPU_FREQ + pr_debug("pxafb: dma period = %d ps, clock = %d kHz\n", +@@ -345,7 +397,7 @@ + static inline void pxafb_set_truecolor(u_int is_true_color) + { + pr_debug("pxafb: true_color = %d\n", is_true_color); +- // do your machine-specific setup if needed ++ /* do your machine-specific setup if needed */ + } + + /* +@@ -360,7 +412,8 @@ + + pr_debug("pxafb: set_par\n"); + +- if (var->bits_per_pixel == 16) ++ if (var->bits_per_pixel == 16 || var->bits_per_pixel == 18 ||var->bits_per_pixel == 19 ++ || var->bits_per_pixel == 24 || var->bits_per_pixel == 25) + fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR; + else if (!fbi->cmap_static) + fbi->fb.fix.visual = FB_VISUAL_PSEUDOCOLOR; +@@ -373,12 +426,25 @@ + fbi->fb.fix.visual = FB_VISUAL_STATIC_PSEUDOCOLOR; + } + +- fbi->fb.fix.line_length = var->xres_virtual * +- var->bits_per_pixel / 8; +- if (var->bits_per_pixel == 16) +- fbi->palette_size = 0; +- else +- fbi->palette_size = var->bits_per_pixel == 1 ? 4 : 1 << var->bits_per_pixel; ++ switch (var->bits_per_pixel) { ++ case 16: ++ fbi->fb.fix.line_length = var->xres_virtual * 2; ++ fbi->palette_size = 0; ++ break; ++ case 18: ++ case 19: ++ fbi->fb.fix.line_length = var->xres_virtual * 3; ++ fbi->palette_size = 0; ++ break; ++ case 24: ++ case 25: ++ fbi->fb.fix.line_length = var->xres_virtual * 4; ++ fbi->palette_size = 0; ++ break; ++ default: ++ fbi->fb.fix.line_length = var->xres_virtual * var->bits_per_pixel / 8; ++ fbi->palette_size = var->bits_per_pixel == 1 ? 4 : 1 << var->bits_per_pixel; ++ } + + if ((fbi->lccr4 & LCCR4_PAL_FOR_MASK) == LCCR4_PAL_FOR_0) + palette_mem_size = fbi->palette_size * sizeof(u16); +@@ -395,7 +461,8 @@ + */ + pxafb_set_truecolor(fbi->fb.fix.visual == FB_VISUAL_TRUECOLOR); + +- if (fbi->fb.var.bits_per_pixel == 16) ++ if (fbi->fb.var.bits_per_pixel == 16 || fbi->fb.var.bits_per_pixel == 18 ||fbi->fb.var.bits_per_pixel == 19 ++ || fbi->fb.var.bits_per_pixel == 24 || fbi->fb.var.bits_per_pixel == 25) + fb_dealloc_cmap(&fbi->fb.cmap); + else + fb_alloc_cmap(&fbi->fb.cmap, 1<<fbi->fb.var.bits_per_pixel, 0); +@@ -441,7 +508,7 @@ + * 16 bpp mode does not really use the palette, so this will not + * blank the display in all modes. + */ +-static int pxafb_blank(int blank, struct fb_info *info) ++int pxafb_blank(int blank, struct fb_info *info) + { + struct pxafb_info *fbi = (struct pxafb_info *)info; + int i; +@@ -458,19 +525,20 @@ + for (i = 0; i < fbi->palette_size; i++) + pxafb_setpalettereg(i, 0, 0, 0, 0, info); + +- pxafb_schedule_work(fbi, C_DISABLE); +- //TODO if (pxafb_blank_helper) pxafb_blank_helper(blank); ++ pxafb_schedule_work(fbi, C_BLANK); ++ /* TODO if (pxafb_blank_helper) pxafb_blank_helper(blank); */ + break; + + case FB_BLANK_UNBLANK: +- //TODO if (pxafb_blank_helper) pxafb_blank_helper(blank); ++ /* TODO if (pxafb_blank_helper) pxafb_blank_helper(blank); */ + if (fbi->fb.fix.visual == FB_VISUAL_PSEUDOCOLOR || + fbi->fb.fix.visual == FB_VISUAL_STATIC_PSEUDOCOLOR) + fb_set_cmap(&fbi->fb.cmap, info); +- pxafb_schedule_work(fbi, C_ENABLE); ++ pxafb_schedule_work(fbi, C_UNBLANK); + } + return 0; + } ++EXPORT_SYMBOL(pxafb_blank); + + static int pxafb_mmap(struct fb_info *info, + struct vm_area_struct *vma) +@@ -606,6 +674,10 @@ + case 4: + case 8: + case 16: ++ case 18: ++ case 19: ++ case 24: ++ case 25: + break; + default: + printk(KERN_ERR "%s: invalid bit depth %d\n", +@@ -637,7 +709,10 @@ + + new_regs.lccr0 = fbi->lccr0 | + (LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM | +- LCCR0_QDM | LCCR0_BM | LCCR0_OUM); ++#ifdef CONFIG_PXA27x /* Enable overlay for PXA27x */ ++ LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM | ++#endif ++ LCCR0_QDM | LCCR0_BM | LCCR0_OUM); + + new_regs.lccr1 = + LCCR1_DisWdth(var->xres) + +@@ -696,7 +771,7 @@ + + fbi->dmadesc_fbhigh_cpu->fsadr = fbi->screen_dma; + fbi->dmadesc_fbhigh_cpu->fidr = 0; +- fbi->dmadesc_fbhigh_cpu->ldcmd = BYTES_PER_PANEL; ++ fbi->dmadesc_fbhigh_cpu->ldcmd = BYTES_PER_PANEL | LDCMD_EOFINT; + + fbi->dmadesc_palette_cpu->fsadr = fbi->palette_dma; + fbi->dmadesc_palette_cpu->fidr = 0; +@@ -708,7 +783,8 @@ + sizeof(u32); + fbi->dmadesc_palette_cpu->ldcmd |= LDCMD_PAL; + +- if (var->bits_per_pixel == 16) { ++ if (var->bits_per_pixel == 16 || var->bits_per_pixel == 18 ||var->bits_per_pixel == 19 ++ || var->bits_per_pixel == 24 || var->bits_per_pixel == 25) { + /* palette shouldn't be loaded in true-color mode */ + fbi->dmadesc_fbhigh_cpu->fdadr = fbi->dmadesc_fbhigh_dma; + fbi->fdadr0 = fbi->dmadesc_fbhigh_dma; /* no pal just fbhigh */ +@@ -763,8 +839,8 @@ + } + + /* +- * NOTE! The following functions are purely helpers for set_ctrlr_state. +- * Do not call them directly; set_ctrlr_state does the correct serialisation ++ * NOTE! The following functions are purely helpers for pxafb_set_ctrlr_state. ++ * Do not call them directly; pxafb_set_ctrlr_state does the correct serialisation + * to ensure that things happen in the right way 100% of time time. + * -- rmk + */ +@@ -786,7 +862,8 @@ + + static void pxafb_setup_gpio(struct pxafb_info *fbi) + { +- int gpio, ldd_bits; ++ int gpio; ++ int ldd_bits = 0; + unsigned int lccr0 = fbi->lccr0; + + /* +@@ -796,28 +873,56 @@ + /* 4 bit interface */ + if ((lccr0 & LCCR0_CMS) == LCCR0_Mono && + (lccr0 & LCCR0_SDS) == LCCR0_Sngl && +- (lccr0 & LCCR0_DPD) == LCCR0_4PixMono) ++ (lccr0 & LCCR0_DPD) == LCCR0_4PixMono) { + ldd_bits = 4; +- ++ } + /* 8 bit interface */ + else if (((lccr0 & LCCR0_CMS) == LCCR0_Mono && + ((lccr0 & LCCR0_SDS) == LCCR0_Dual || (lccr0 & LCCR0_DPD) == LCCR0_8PixMono)) || + ((lccr0 & LCCR0_CMS) == LCCR0_Color && +- (lccr0 & LCCR0_PAS) == LCCR0_Pas && (lccr0 & LCCR0_SDS) == LCCR0_Sngl)) ++ (lccr0 & LCCR0_PAS) == LCCR0_Pas && (lccr0 & LCCR0_SDS) == LCCR0_Sngl)) { + ldd_bits = 8; +- ++ } + /* 16 bit interface */ +- else if ((lccr0 & LCCR0_CMS) == LCCR0_Color && +- ((lccr0 & LCCR0_SDS) == LCCR0_Dual || (lccr0 & LCCR0_PAS) == LCCR0_Act)) +- ldd_bits = 16; ++ else if ((lccr0 & LCCR0_CMS) == LCCR0_Color && ++ ((lccr0 & LCCR0_SDS) == LCCR0_Dual || (lccr0 & LCCR0_PAS) == LCCR0_Act)) { ++ switch (fbi->fb.var.bits_per_pixel) { ++ case 16: ++#ifdef CONFIG_PXA27x ++ /* bits 58-77 */ ++ GPDR1 |= (0x3f << 26); ++ GPDR2 |= 0x00003fff; + ++ GAFR1_U = (GAFR1_U & ~(0xfff << 20)) | (0xaaa << 20); ++ GAFR2_L = (GAFR2_L & 0xf0000000) | 0x0aaaaaaa; ++#endif ++ ldd_bits = 16; ++ break; ++ case 18: ++ case 19: ++ case 24: ++ case 25: ++#ifdef CONFIG_PXA27x ++ /* bits 58-77 and 86, 87 */ ++ GPDR1 |= (0x3f << 26); ++ GPDR2 |= 0x00c03fff; ++ ++ GAFR1_U = (GAFR1_U & ~(0xfff << 20)) | (0xaaa << 20); ++ GAFR2_L = (GAFR2_L & 0xf0000000) | 0x0aaaaaaa; ++ GAFR2_U = (GAFR2_U & 0xffff0fff) | 0xa000; ++#endif ++ ldd_bits = 25; ++ break; ++ } ++ } + else { + printk(KERN_ERR "pxafb_setup_gpio: unable to determine bits per pixel\n"); + return; + } + +- for (gpio = 58; ldd_bits; gpio++, ldd_bits--) ++ for (gpio = 58; ldd_bits > 0; gpio++, ldd_bits--) { + pxa_gpio_mode(gpio | GPIO_ALT_FN_2_OUT); ++ } + pxa_gpio_mode(GPIO74_LCD_FCLK_MD); + pxa_gpio_mode(GPIO75_LCD_LCLK_MD); + pxa_gpio_mode(GPIO76_LCD_PCLK_MD); +@@ -837,6 +942,7 @@ + /* enable LCD controller clock */ + clk_enable(fbi->clk); + ++ down(&fcs_lcd_sem); + /* Sequence from 11.7.10 */ + LCCR3 = fbi->reg_lccr3; + LCCR2 = fbi->reg_lccr2; +@@ -847,6 +953,8 @@ + FDADR1 = fbi->fdadr1; + LCCR0 |= LCCR0_ENB; + ++ up(&fcs_lcd_sem); ++ + pr_debug("FDADR0 0x%08x\n", (unsigned int) FDADR0); + pr_debug("FDADR1 0x%08x\n", (unsigned int) FDADR1); + pr_debug("LCCR0 0x%08x\n", (unsigned int) LCCR0); +@@ -862,6 +970,7 @@ + + pr_debug("pxafb: disabling LCD controller\n"); + ++ down(&fcs_lcd_sem); + set_current_state(TASK_UNINTERRUPTIBLE); + add_wait_queue(&fbi->ctrlr_wait, &wait); + +@@ -871,6 +980,7 @@ + + schedule_timeout(200 * HZ / 1000); + remove_wait_queue(&fbi->ctrlr_wait, &wait); ++ up(&fcs_lcd_sem); + + /* disable LCD controller clock */ + clk_disable(fbi->clk); +@@ -888,6 +998,11 @@ + LCCR0 |= LCCR0_LDM; + wake_up(&fbi->ctrlr_wait); + } ++ if (lcsr & LCSR_EOF && fcs_in_eof) { ++ LCCR0 |= LCCR0_EFM; ++ fcs_in_eof = 0; ++ wake_up(&fcs_wait_eof); ++ } + + LCSR = lcsr; + return IRQ_HANDLED; +@@ -898,7 +1013,7 @@ + * sleep when disabling the LCD controller, or if we get two contending + * processes trying to alter state. + */ +-static void set_ctrlr_state(struct pxafb_info *fbi, u_int state) ++void pxafb_set_ctrlr_state(struct pxafb_info *fbi, u_int state) + { + u_int old_state; + +@@ -920,7 +1035,9 @@ + */ + if (old_state != C_DISABLE && old_state != C_DISABLE_PM) { + fbi->state = state; +- //TODO __pxafb_lcd_power(fbi, 0); ++ /* TODO __pxafb_lcd_power(fbi, 0); */ ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_DISABLE); + pxafb_disable_controller(fbi); + } + break; +@@ -934,6 +1051,8 @@ + fbi->state = state; + __pxafb_backlight_power(fbi, 0); + __pxafb_lcd_power(fbi, 0); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_DISABLE); + if (old_state != C_DISABLE_CLKCHANGE) + pxafb_disable_controller(fbi); + } +@@ -947,7 +1066,9 @@ + if (old_state == C_DISABLE_CLKCHANGE) { + fbi->state = C_ENABLE; + pxafb_enable_controller(fbi); +- //TODO __pxafb_lcd_power(fbi, 1); ++ /* TODO __pxafb_lcd_power(fbi, 1); */ ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_ENABLE); + } + break; + +@@ -959,9 +1080,13 @@ + */ + if (old_state == C_ENABLE) { + __pxafb_lcd_power(fbi, 0); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_DISABLE); + pxafb_disable_controller(fbi); + pxafb_setup_gpio(fbi); + pxafb_enable_controller(fbi); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_ENABLE); + __pxafb_lcd_power(fbi, 1); + } + break; +@@ -987,11 +1112,46 @@ + pxafb_enable_controller(fbi); + __pxafb_lcd_power(fbi, 1); + __pxafb_backlight_power(fbi, 1); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_ENABLE); + } + break; ++ ++ case C_BLANK: ++ /* ++ * Disable controller, blank overlays if exist. ++ */ ++ if ((old_state != C_DISABLE) && (old_state != C_BLANK)) { ++ fbi->state = state; ++ __pxafb_backlight_power(fbi, 0); ++ __pxafb_lcd_power(fbi, 0); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_BLANK); ++ if (old_state != C_DISABLE_CLKCHANGE) ++ pxafb_disable_controller(fbi); ++ } ++ break; ++ ++ case C_UNBLANK: ++ /* ++ * Power up the LCD screen, enable controller, and ++ * turn on the backlight, unblank overlays if exist. ++ */ ++ if ((old_state != C_ENABLE) && (old_state != C_UNBLANK)) { ++ fbi->state = C_UNBLANK; ++ pxafb_setup_gpio(fbi); ++ pxafb_enable_controller(fbi); ++ __pxafb_lcd_power(fbi, 1); ++ __pxafb_backlight_power(fbi, 1); ++ if(fbi->set_overlay_ctrlr_state) ++ fbi->set_overlay_ctrlr_state(fbi, C_UNBLANK); ++ } ++ break; ++ + } + up(&fbi->ctrlr_sem); + } ++EXPORT_SYMBOL(pxafb_set_ctrlr_state); + + /* + * Our LCD controller task (which is called when we blank or unblank) +@@ -1003,7 +1163,7 @@ + container_of(work, struct pxafb_info, task); + u_int state = xchg(&fbi->task_state, -1); + +- set_ctrlr_state(fbi, state); ++ pxafb_set_ctrlr_state(fbi, state); + } + + #ifdef CONFIG_CPU_FREQ +@@ -1018,19 +1178,29 @@ + pxafb_freq_transition(struct notifier_block *nb, unsigned long val, void *data) + { + struct pxafb_info *fbi = TO_INF(nb, freq_transition); +- //TODO struct cpufreq_freqs *f = data; ++ /* TODO struct cpufreq_freqs *f = data; */ ++ struct cpufreq_freqs *clkinfo; + u_int pcd; ++ u_int lccr3; + + switch (val) { + case CPUFREQ_PRECHANGE: +- set_ctrlr_state(fbi, C_DISABLE_CLKCHANGE); ++ pxafb_set_ctrlr_state(fbi, C_DISABLE_CLKCHANGE); + break; + + case CPUFREQ_POSTCHANGE: +- pcd = get_pcd(fbi, fbi->fb.var.pixclock); ++ clkinfo = (struct cpufreq_freqs *)data; ++ /* If leaving a 13kHz state with the LCD sustained */ ++ if ((clkinfo->old == 13000)) ++ break; ++ ++ pcd = get_pcd(fbi->fb.var.pixclock); ++ lccr3 = fbi->reg_lccr3; + set_hsync_time(fbi, pcd); + fbi->reg_lccr3 = (fbi->reg_lccr3 & ~0xff) | LCCR3_PixClkDiv(pcd); +- set_ctrlr_state(fbi, C_ENABLE_CLKCHANGE); ++ pxafb_set_ctrlr_state(fbi, C_ENABLE_CLKCHANGE); ++ if (lccr3 != fbi->reg_lccr3 && !((LCCR0 & LCCR0_DIS) || !(LCCR0 & LCCR0_ENB))) ++ LCCR3 = fbi->reg_lccr3; + break; + } + return 0; +@@ -1049,7 +1219,7 @@ + printk(KERN_DEBUG "min dma period: %d ps, " + "new clock %d kHz\n", pxafb_display_dma_period(var), + policy->max); +- // TODO: fill in min/max values ++ /* TODO: fill in min/max values */ + break; + #if 0 + case CPUFREQ_NOTIFY: +@@ -1075,7 +1245,7 @@ + { + struct pxafb_info *fbi = platform_get_drvdata(dev); + +- set_ctrlr_state(fbi, C_DISABLE_PM); ++ pxafb_set_ctrlr_state(fbi, C_DISABLE_PM); + return 0; + } + +@@ -1083,7 +1253,11 @@ + { + struct pxafb_info *fbi = platform_get_drvdata(dev); + +- set_ctrlr_state(fbi, C_ENABLE_PM); ++ pxafb_set_ctrlr_state(fbi, C_ENABLE_PM); ++//RP#ifdef CONFIG_PXA27x ++//RP LCCR4 |= (1 << 31); /* Disable the PCD Divisor, PCDDIV */ ++//RP LCCR4 |= (5 << 17); /* Undocumented feature */ ++//RP#endif + return 0; + } + #else +@@ -1197,11 +1371,21 @@ + fbi->task_state = (u_char)-1; + + for (i = 0; i < inf->num_modes; i++) { +- smemlen = mode[i].xres * mode[i].yres * mode[i].bpp / 8; ++ if (mode[i].bpp <= 16) { /* 8, 16 bpp */ ++ smemlen = mode[i].xres * mode[i].yres * mode[i].bpp / 8; ++ } else if ( mode[i].bpp > 19 ) { /* 24, 25 bpp */ ++ smemlen = mode[i].xres * mode[i].yres * 4; ++ } else { /* 18, 19 bpp */ ++ /* packed format */ ++ smemlen = mode[i].xres * mode[i].yres * 3; ++ } ++ + if (smemlen > fbi->fb.fix.smem_len) + fbi->fb.fix.smem_len = smemlen; + } + ++ fbi->set_overlay_ctrlr_state = NULL; ++ + init_waitqueue_head(&fbi->ctrlr_wait); + INIT_WORK(&fbi->task, pxafb_task); + init_MUTEX(&fbi->ctrlr_sem); +@@ -1268,6 +1452,10 @@ + case 4: + case 8: + case 16: ++ case 18: ++ case 19: ++ case 24: ++ case 25: + inf->modes[0].bpp = bpp; + dev_info(dev, "overriding bit depth: %d\n", bpp); + break; +@@ -1416,7 +1604,7 @@ + fbi = pxafb_init_fbinfo(&dev->dev); + if (!fbi) { + dev_err(&dev->dev, "Failed to initialize framebuffer device\n"); +- ret = -ENOMEM; // only reason for pxafb_init_fbinfo to fail is kmalloc ++ ret = -ENOMEM; /* only reason for pxafb_init_fbinfo to fail is kmalloc */ + goto failed; + } + +@@ -1451,7 +1639,7 @@ + } + + #ifdef CONFIG_PM +- // TODO ++ /* TODO */ + #endif + + #ifdef CONFIG_CPU_FREQ +@@ -1464,7 +1652,12 @@ + /* + * Ok, now enable the LCD controller + */ +- set_ctrlr_state(fbi, C_ENABLE); ++ pxafb_set_ctrlr_state(fbi, C_ENABLE); ++//#ifdef CONFIG_PXA27x ++// LCCR4 |= (1 << 31); /* Disabel the PCD Divisor, PCDDIV */ ++// LCCR4 |= (5 << 17); /* Undocumented feature */ ++//#endif ++ init_waitqueue_head(&fcs_wait_eof); + + return 0; + +--- linux-2.6.24-rc1.orig/drivers/video/pxafb.h ++++ linux-2.6.24-rc1/drivers/video/pxafb.h +@@ -29,6 +29,60 @@ + unsigned int lccr3; + }; + ++struct pxafb_rgb { ++ struct fb_bitfield red; ++ struct fb_bitfield green; ++ struct fb_bitfield blue; ++ struct fb_bitfield transp; ++}; ++ ++#ifdef CONFIG_PXA27x ++/* PXA Overlay Framebuffer Support */ ++struct overlayfb_info ++{ ++ struct fb_info fb; ++ ++ struct fb_var_screeninfo old_var; ++ ++ struct semaphore mutex; ++ unsigned long refcount; ++ ++ struct pxafb_info *basefb; ++ ++ unsigned long map_cpu; ++ unsigned long screen_cpu; ++ unsigned long palette_cpu; ++ unsigned long map_size; ++ unsigned long palette_size; ++ ++ dma_addr_t screen_dma; ++ dma_addr_t map_dma; ++ dma_addr_t palette_dma; ++ ++ volatile u_char state; ++ ++ /* overlay specific info */ ++ unsigned long xpos; /* screen position (x, y)*/ ++ unsigned long ypos; ++ unsigned long format; ++ ++ /* additional */ ++ union { ++ struct pxafb_dma_descriptor *dma0; ++ struct pxafb_dma_descriptor *dma1; ++ struct { ++ struct pxafb_dma_descriptor *dma2; ++ struct pxafb_dma_descriptor *dma3; ++ struct pxafb_dma_descriptor *dma4; ++ }; ++ struct { ++ struct pxafb_dma_descriptor *dma5_pal; ++ struct pxafb_dma_descriptor *dma5_frame; ++ }; ++ }; ++}; ++#endif ++ + /* PXA LCD DMA descriptor */ + struct pxafb_dma_descriptor { + unsigned int fdadr; +@@ -90,6 +144,14 @@ + wait_queue_head_t ctrlr_wait; + struct work_struct task; + ++#ifdef CONFIG_PXA27x ++ /* PXA Overlay Framebuffer Support */ ++ struct overlayfb_info *overlay1fb; ++ struct overlayfb_info *overlay2fb; ++ struct overlayfb_info *cursorfb; ++#endif ++ void (*set_overlay_ctrlr_state)(struct pxafb_info *, u_int); ++ + #ifdef CONFIG_CPU_FREQ + struct notifier_block freq_transition; + struct notifier_block freq_policy; +@@ -109,6 +171,9 @@ + #define C_DISABLE_PM (5) + #define C_ENABLE_PM (6) + #define C_STARTUP (7) ++#define C_BLANK (8) ++#define C_UNBLANK (9) ++ + + #define PXA_NAME "PXA" + +--- /dev/null ++++ linux-2.6.24-rc1/drivers/video/pxafb_overlay.c +@@ -0,0 +1,1525 @@ ++/* ++ * linux/drivers/video/pxafb_overlay.c ++ * ++ * Copyright (c) 2004, Intel Corporation ++ * ++ * Code Status: ++ * 2004/10/28: <yan.yin@intel.com> ++ * - Ported to 2.6 kernel ++ * - Made overlay driver a loadable module ++ * - Merged overlay optimized patch ++ * 2004/03/10: <stanley.cai@intel.com> ++ * - Fixed Bugs ++ * - Added workaround for overlay1&2 ++ * 2003/08/27: <yu.tang@intel.com> ++ * - Added Overlay 1 & Overlay2 & Hardware Cursor support ++ * ++ * ++ * This software program is licensed subject to the GNU Lesser General ++ * Public License (LGPL). Version 2.1, February 1999, available at ++ * http://www.gnu.org/copyleft/lesser.html ++ * ++ * Intel PXA27x LCD Controller Frame Buffer Overlay Driver ++ * ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/moduleparam.h> ++#include <linux/kernel.h> ++#include <linux/sched.h> ++#include <linux/errno.h> ++#include <linux/string.h> ++#include <linux/interrupt.h> ++#include <linux/slab.h> ++#include <linux/fb.h> ++#include <linux/delay.h> ++#include <linux/init.h> ++#include <linux/ioport.h> ++#include <linux/cpufreq.h> ++#include <linux/device.h> ++#include <linux/platform_device.h> ++#include <linux/dma-mapping.h> ++ ++#include <asm/hardware.h> ++#include <asm/io.h> ++#include <asm/irq.h> ++#include <asm/uaccess.h> ++#include <asm/arch/bitfield.h> ++#include <asm/arch/pxafb.h> ++#include <asm/arch/pxa-regs.h> ++ ++#include "pxafb.h" ++ ++/* LCD enhancement : Overlay 1 & 2 & Hardware Cursor */ ++ ++/* ++ * LCD enhancement : Overlay 1 ++ * ++ * Features: ++ * - support 16bpp (No palette) ++ */ ++/* ++ * debugging? ++ */ ++#define DEBUG 0 ++ ++#ifdef DEBUG ++#define dbg(fmt,arg...) printk(KERN_ALERT "%s(): " fmt "\n", __FUNCTION__, ##arg) ++#else ++#define dbg(fmt,arg...) ++#endif ++ ++static int overlay1fb_enable(struct fb_info *info); ++static int overlay2fb_enable(struct fb_info *info); ++static int cursorfb_enable(struct fb_info *info); ++ ++static int overlay1fb_disable(struct fb_info *info); ++static int overlay2fb_disable(struct fb_info *info); ++static int cursorfb_disable(struct fb_info *info); ++ ++static int overlay1fb_blank(int blank, struct fb_info *info); ++static int overlay2fb_blank(int blank, struct fb_info *info); ++static int cursorfb_blank(int blank, struct fb_info *info); ++ ++extern void pxafb_set_ctrlr_state(struct pxafb_info *fbi, u_int state); ++extern int pxafb_blank(int blank, struct fb_info *info); ++ ++static struct pxafb_rgb def_rgb_18 = { ++ red: { offset: 12, length: 6, }, ++ green: { offset: 6, length: 6, }, ++ blue: { offset: 0, length: 6, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ ++static struct pxafb_rgb def_rgbt_16 = { ++ red: { offset: 10, length: 5, }, ++ green: { offset: 5, length: 5, }, ++ blue: { offset: 0, length: 5, }, ++ transp: { offset: 15, length: 1, }, ++}; ++ ++static struct pxafb_rgb def_rgbt_19 = { ++ red: { offset: 12, length: 6, }, ++ green: { offset: 6, length: 6, }, ++ blue: { offset: 0, length: 6, }, ++ transp: { offset: 18, length: 1, }, ++}; ++ ++static struct pxafb_rgb def_rgbt_24 = { ++ red: { offset: 16, length: 7, }, ++ green: { offset: 8, length: 8, }, ++ blue: { offset: 0, length: 8, }, ++ transp: { offset: 0, length: 0, }, ++}; ++ ++static struct pxafb_rgb def_rgbt_25 = { ++ red: { offset: 16, length: 8, }, ++ green: { offset: 8, length: 8, }, ++ blue: { offset: 0, length: 8, }, ++ transp: { offset: 24, length: 1, }, ++}; ++ ++#define CLEAR_LCD_INTR(reg, intr) do { \ ++ reg = (intr); \ ++}while(0) ++ ++#define WAIT_FOR_LCD_INTR(reg,intr,timeout) ({ \ ++ int __done =0; \ ++ int __t = timeout; \ ++ while (__t) { \ ++ __done = (reg) & (intr); \ ++ if (__done) break; \ ++ mdelay(10); \ ++ __t--; \ ++ } \ ++ if (!__t) dbg("wait " #intr " timeount");\ ++ __done; \ ++}) ++ ++#define DISABLE_OVERLAYS(fbi) do { \ ++ if (fbi->overlay1fb && (fbi->overlay1fb->state == C_ENABLE)) { \ ++ overlay1fb_disable((struct fb_info*)fbi->overlay1fb); \ ++ } \ ++ if (fbi->overlay2fb && (fbi->overlay2fb->state == C_ENABLE)) { \ ++ overlay2fb_disable((struct fb_info*)fbi->overlay2fb); \ ++ } \ ++ if (fbi->cursorfb && (fbi->cursorfb->state == C_ENABLE)) { \ ++ cursorfb_disable((struct fb_info*)fbi->cursorfb); \ ++ } \ ++}while(0) ++ ++#define ENABLE_OVERLAYS(fbi) do { \ ++ if (fbi->overlay1fb && (fbi->overlay1fb->state == C_DISABLE)) { \ ++ overlay1fb_enable((struct fb_info*)fbi->overlay1fb); \ ++ } \ ++ if (fbi->overlay2fb && (fbi->overlay2fb->state == C_DISABLE)) { \ ++ overlay2fb_enable((struct fb_info*)fbi->overlay2fb); \ ++ } \ ++ if (fbi->cursorfb && (fbi->cursorfb->state == C_DISABLE)) { \ ++ cursorfb_enable((struct fb_info*)fbi->cursorfb); \ ++ } \ ++}while(0) ++ ++#define BLANK_OVERLAYS(fbi) do { \ ++ if (fbi->overlay1fb && (fbi->overlay1fb->state == C_ENABLE)) { \ ++ overlay1fb_disable((struct fb_info*)fbi->overlay1fb); \ ++ fbi->overlay1fb->state = C_BLANK; \ ++ } \ ++ if (fbi->overlay2fb && (fbi->overlay2fb->state == C_ENABLE)) { \ ++ overlay2fb_disable((struct fb_info*)fbi->overlay2fb); \ ++ fbi->overlay2fb->state = C_BLANK; \ ++ } \ ++ if (fbi->cursorfb && (fbi->cursorfb->state == C_ENABLE)) { \ ++ cursorfb_disable((struct fb_info*)fbi->cursorfb); \ ++ fbi->cursorfb->state = C_BLANK; \ ++ } \ ++}while(0) ++ ++#define UNBLANK_OVERLAYS(fbi) do { \ ++ if (fbi->overlay1fb && (fbi->overlay1fb->state == C_BLANK)) { \ ++ overlay1fb_enable((struct fb_info*)fbi->overlay1fb); \ ++ fbi->overlay1fb->state = C_ENABLE; \ ++ } \ ++ if (fbi->overlay2fb && (fbi->overlay2fb->state == C_BLANK)) { \ ++ overlay2fb_enable((struct fb_info*)fbi->overlay2fb); \ ++ fbi->overlay2fb->state = C_ENABLE; \ ++ } \ ++ if (fbi->cursorfb && (fbi->cursorfb->state == C_BLANK)) { \ ++ cursorfb_enable((struct fb_info*)fbi->cursorfb); \ ++ fbi->cursorfb->state = C_ENABLE; \ ++ } \ ++}while(0) ++ ++static int overlay1fb_open(struct fb_info *info, int user) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ int ret = 0; ++ ++/* If basefb is disable, enable fb. */ ++ if (fbi->basefb && fbi->basefb->state != C_ENABLE) ++ pxafb_blank(VESA_NO_BLANKING, (struct fb_info *)(fbi->basefb)); ++ ++ down(&fbi->mutex); ++ ++ if (fbi->refcount) ++ ret = -EACCES; ++ else ++ fbi->refcount ++; ++ ++ up(&fbi->mutex); ++ ++ /* Initialize the variables in overlay1 framebuffer. */ ++ fbi->fb.var.xres = fbi->fb.var.yres = 0; ++ fbi->fb.var.bits_per_pixel = 0; ++ ++ return ret; ++} ++ ++static int overlay1fb_release(struct fb_info *info, int user) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ down(&fbi->mutex); ++ ++ if (fbi->refcount) ++ fbi->refcount --; ++ ++ up(&fbi->mutex); ++ /* disable overlay when released */ ++ overlay1fb_blank(1, info); ++ ++ return 0; ++} ++ ++static int overlay1fb_map_video_memory(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ ++ if (fbi->map_cpu) ++ dma_free_writecombine(NULL, fbi->map_size, (void*)fbi->map_cpu, fbi->map_dma); ++ fbi->map_size = PAGE_ALIGN(fbi->fb.fix.smem_len + PAGE_SIZE); ++ ++ fbi->map_cpu = (unsigned long)dma_alloc_writecombine(NULL, fbi->map_size, ++ &fbi->map_dma, GFP_KERNEL ); ++ ++ if (!fbi->map_cpu) return -ENOMEM; ++ ++ fbi->screen_cpu = fbi->map_cpu + PAGE_SIZE; ++ fbi->screen_dma = fbi->map_dma + PAGE_SIZE; ++ ++ fbi->fb.fix.smem_start = fbi->screen_dma; ++ ++ /* setup dma descriptor */ ++ fbi->dma1 = (struct pxafb_dma_descriptor*) ++ (fbi->screen_cpu - sizeof(struct pxafb_dma_descriptor)); ++ ++ fbi->dma1->fdadr = (fbi->screen_dma - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma1->fsadr = fbi->screen_dma; ++ fbi->dma1->fidr = 0; ++ fbi->dma1->ldcmd = fbi->fb.fix.smem_len; ++ ++ return 0; ++} ++ ++static int overlay1fb_enable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ unsigned long bpp1; ++ ++ if (!fbi->map_cpu) return -EINVAL; ++ ++ switch (fbi->fb.var.bits_per_pixel) { ++ case 16: ++ bpp1 = 0x4; ++ break; ++ case 18: ++ bpp1 = 0x6; ++ break; ++ case 19: ++ bpp1 = 0x8; ++ break; ++ case 24: ++ bpp1 = 0x9; ++ break; ++ case 25: ++ bpp1 = 0xa; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ /* disable branch/start/end of frame interrupt */ ++ LCCR5 |= (LCCR5_IUM1 | LCCR5_BSM1 | LCCR5_EOFM1 | LCCR5_SOFM1); ++ ++ if (fbi->state == C_DISABLE || fbi->state == C_BLANK) ++ FDADR1 = (fbi->dma1->fdadr); ++ else ++ FBR1 = fbi->dma1->fdadr | 0x1; ++ ++ /* enable overlay 1 window */ ++ OVL1C2 = (fbi->ypos << 10) | fbi->xpos; ++ OVL1C1 = OVL1C1_O1EN | (bpp1 << 20) | ((fbi->fb.var.yres-1)<<10) | (fbi->fb.var.xres-1); ++ ++ fbi->state = C_ENABLE; ++ ++ return 0; ++} ++ ++static int overlay1fb_disable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*)info; ++ int done; ++ ++ if ((fbi->state == C_DISABLE) || (fbi->state == C_BLANK)) ++ return 0; ++ ++ fbi->state = C_DISABLE; ++ ++ /* clear O1EN */ ++ OVL1C1 &= ~OVL1C1_O1EN; ++ ++ CLEAR_LCD_INTR(LCSR1, LCSR1_BS1); ++ FBR1 = 0x3; ++ done = WAIT_FOR_LCD_INTR(LCSR1, LCSR1_BS1, 100); ++ ++ if (!done) { ++ pr_debug(KERN_INFO "%s: timeout\n", __FUNCTION__); ++ return -1; ++ } ++ return 0; ++} ++ ++static int overlay1fb_blank(int blank, struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ int err=0; ++ ++ switch (blank) { ++ case 0: ++ err = overlay1fb_enable(info); ++ if (err) { ++ fbi->state = C_DISABLE; ++ pxafb_set_ctrlr_state(fbi->basefb, C_REENABLE); ++ } ++ break; ++ case 1: ++ err = overlay1fb_disable(info); ++ if (err) { ++ fbi->state = C_DISABLE; ++ pxafb_set_ctrlr_state(fbi->basefb, C_REENABLE); ++ } ++ break; ++ default: ++ break; ++ } ++ ++ return err; ++} ++ ++static int overlay1fb_check_var( struct fb_var_screeninfo *var, struct fb_info *info) ++{ ++ int xpos, ypos; ++ struct overlayfb_info *fbi=(struct overlayfb_info*)info; ++ ++ /* must in base frame */ ++ xpos = (var->nonstd & 0x3ff); ++ ypos = ((var->nonstd>>10) & 0x3ff); ++ ++ if ( (xpos + var->xres) > fbi->basefb->fb.var.xres ) ++ return -EINVAL; ++ ++ if ( (ypos + var->yres) > fbi->basefb->fb.var.yres ) ++ return -EINVAL; ++ ++ switch (var->bits_per_pixel) { ++ case 16: ++ if ( var->xres & 0x1 ) { ++ printk("xres should be a multiple of 2 pixels!\n"); ++ return -EINVAL; ++ } ++ break; ++ case 18: ++ case 19: ++ if ( var->xres & 0x7 ) { ++ printk("xres should be a multiple of 8 pixels!\n"); ++ return -EINVAL; ++ } ++ break; ++ default: ++ break; ++ } ++ ++ fbi->old_var=*var; ++ ++ var->activate=FB_ACTIVATE_NOW; ++ ++ return 0; ++} ++ ++ ++static int overlay1fb_set_par(struct fb_info *info) ++{ ++ int nbytes=0, err=0, pixels_per_line=0; ++ ++ struct overlayfb_info *fbi=(struct overlayfb_info*)info; ++ struct fb_var_screeninfo *var = &fbi->fb.var; ++ ++ info->flags &= ~FBINFO_MISC_USEREVENT; ++ ++ if (fbi->state == C_BLANK) ++ return 0; ++ ++ if (fbi->state == C_DISABLE) ++ goto out1; ++ ++ /* only xpos & ypos change */ ++ if ( (var->xres == fbi->old_var.xres) && ++ (var->yres == fbi->old_var.yres) && ++ (var->bits_per_pixel == fbi->old_var.bits_per_pixel) ) ++ goto out2; ++ ++out1: ++ switch(var->bits_per_pixel) { ++ case 16: ++ /* 2 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x1) & (~0x1); ++ nbytes = 2; ++ ++ var->red = def_rgbt_16.red; ++ var->green = def_rgbt_16.green; ++ var->blue = def_rgbt_16.blue; ++ var->transp = def_rgbt_16.transp; ++ ++ break; ++ case 18: ++ /* 8 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x7 ) & (~0x7); ++ nbytes = 3; ++ ++ var->red = def_rgb_18.red; ++ var->green = def_rgb_18.green; ++ var->blue = def_rgb_18.blue; ++ var->transp = def_rgb_18.transp; ++ ++ break; ++ case 19: ++ /* 8 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x7 ) & (~0x7); ++ nbytes = 3; ++ ++ var->red = def_rgbt_19.red; ++ var->green = def_rgbt_19.green; ++ var->blue = def_rgbt_19.blue; ++ var->transp = def_rgbt_19.transp; ++ ++ break; ++ case 24: ++ pixels_per_line = fbi->fb.var.xres; ++ nbytes = 4; ++ ++ var->red = def_rgbt_24.red; ++ var->green = def_rgbt_24.green; ++ var->blue = def_rgbt_24.blue; ++ var->transp = def_rgbt_24.transp; ++ ++ break; ++ case 25: ++ pixels_per_line = fbi->fb.var.xres; ++ nbytes = 4; ++ ++ var->red = def_rgbt_25.red; ++ var->green = def_rgbt_25.green; ++ var->blue = def_rgbt_25.blue; ++ var->transp = def_rgbt_25.transp; ++ ++ break; ++ } ++ ++ fbi->fb.fix.line_length = nbytes * pixels_per_line; ++ fbi->fb.fix.smem_len = fbi->fb.fix.line_length * fbi->fb.var.yres; ++ ++ err= overlay1fb_map_video_memory((struct fb_info*)fbi); ++ ++ if (err) ++ return err; ++ ++out2: ++ fbi->xpos = var->nonstd & 0x3ff; ++ fbi->ypos = (var->nonstd>>10) & 0x3ff; ++ ++ overlay1fb_enable(info); ++ ++ return 0; ++ ++} ++ ++static struct fb_ops overlay1fb_ops = { ++ .owner = THIS_MODULE, ++ .fb_open = overlay1fb_open, ++ .fb_release = overlay1fb_release, ++ .fb_check_var = overlay1fb_check_var, ++ .fb_set_par = overlay1fb_set_par, ++ .fb_blank = overlay1fb_blank, ++ .fb_fillrect = cfb_fillrect, ++ .fb_copyarea = cfb_copyarea, ++ .fb_imageblit = cfb_imageblit, ++}; ++ ++ /* ++ * LCD enhancement : Overlay 2 ++ * ++ * Features: ++ * - support planar YCbCr420/YCbCr422/YCbCr444; ++ */ ++static int overlay2fb_open(struct fb_info *info, int user) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ int ret = 0; ++ ++ /* if basefb is disable, enable fb. */ ++ if (fbi->basefb && fbi->basefb->state != C_ENABLE) ++ pxafb_blank(VESA_NO_BLANKING, (struct fb_info *)(fbi->basefb)); ++ ++ down(&fbi->mutex); ++ ++ if (fbi->refcount) ++ ret = -EACCES; ++ else ++ fbi->refcount ++; ++ ++ up(&fbi->mutex); ++ fbi->fb.var.xres = fbi->fb.var.yres = 0; ++ ++ return ret; ++} ++ ++static int overlay2fb_release(struct fb_info *info, int user) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ ++ down(&fbi->mutex); ++ ++ if (fbi->refcount) ++ fbi->refcount --; ++ ++ up(&fbi->mutex); ++ ++ /* disable overlay when released */ ++ overlay2fb_blank(1, info); ++ ++ return 0; ++} ++ ++static int overlay2fb_map_YUV_memory( struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ unsigned int ylen, cblen, crlen, aylen, acblen, acrlen; ++ unsigned int yoff, cboff, croff; ++ unsigned int xres,yres; ++ unsigned int nbytes; ++ ++ ylen = cblen = crlen = aylen = acblen = acrlen = 0; ++ yoff = cboff = croff = 0; ++ ++ if (fbi->map_cpu) ++ dma_free_writecombine(NULL, fbi->map_size, (void*)fbi->map_cpu, fbi->map_dma); ++ ++ yres = fbi->fb.var.yres; ++ ++ switch(fbi->format) { ++ case 0x4: /* YCbCr 4:2:0 planar */ ++ pr_debug("420 planar\n"); ++ /* 16 pixels per line */ ++ xres = (fbi->fb.var.xres + 0xf) & (~0xf); ++ fbi->fb.fix.line_length = xres; ++ ++ nbytes = xres * yres; ++ ylen = nbytes; ++ cblen = crlen = (nbytes/4); ++ ++ break; ++ case 0x3: /* YCbCr 4:2:2 planar */ ++ /* 8 pixles per line */ ++ pr_debug("422 planar\n"); ++ xres = (fbi->fb.var.xres + 0x7) & (~0x7); ++ fbi->fb.fix.line_length = xres; ++ ++ nbytes = xres * yres; ++ ylen = nbytes; ++ cblen = crlen = (nbytes/2); ++ ++ break; ++ case 0x2: /* YCbCr 4:4:4 planar */ ++ /* 4 pixels per line */ ++ pr_debug("444 planar\n"); ++ xres = (fbi->fb.var.xres + 0x3) & (~0x3); ++ fbi->fb.fix.line_length = xres; ++ ++ nbytes = xres * yres; ++ ylen = cblen = crlen = nbytes; ++ break; ++ } ++ ++ /* 16-bytes alignment for DMA */ ++ aylen = (ylen + 0xf) & (~0xf); ++ acblen = (cblen + 0xf) & (~0xf); ++ acrlen = (crlen + 0xf) & (~0xf); ++ ++ fbi->fb.fix.smem_len = aylen + acblen + acrlen; ++ ++ /* alloc memory */ ++ ++ fbi->map_size = PAGE_ALIGN(fbi->fb.fix.smem_len + PAGE_SIZE); ++ fbi->map_cpu = (unsigned long)dma_alloc_writecombine(NULL, fbi->map_size, ++ &fbi->map_dma, GFP_KERNEL ); ++ ++ if (!fbi->map_cpu) return -ENOMEM; ++ ++ fbi->screen_cpu = fbi->map_cpu + PAGE_SIZE; ++ fbi->screen_dma = fbi->map_dma + PAGE_SIZE; ++ ++ fbi->fb.fix.smem_start = fbi->screen_dma; ++ ++ /* setup dma for Planar format */ ++ fbi->dma2 = (struct pxafb_dma_descriptor*) ++ (fbi->screen_cpu - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma3 = fbi->dma2 - 1; ++ fbi->dma4 = fbi->dma3 - 1; ++ ++ /* offset */ ++ yoff = 0; ++ cboff = aylen; ++ croff = cboff + acblen; ++ ++ /* Y vector */ ++ fbi->dma2->fdadr = (fbi->screen_dma - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma2->fsadr = fbi->screen_dma + yoff; ++ fbi->dma2->fidr = 0; ++ fbi->dma2->ldcmd = ylen; ++ ++ /* Cb vector */ ++ fbi->dma3->fdadr = (fbi->dma2->fdadr - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma3->fsadr = (fbi->screen_dma + cboff); ++ fbi->dma3->fidr = 0; ++ fbi->dma3->ldcmd = cblen; ++ ++ /* Cr vector */ ++ ++ fbi->dma4->fdadr = (fbi->dma3->fdadr - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma4->fsadr = (fbi->screen_dma + croff); ++ fbi->dma4->fidr = 0; ++ fbi->dma4->ldcmd = crlen; ++ ++ /* adjust for user */ ++ fbi->fb.var.red.length = ylen; ++ fbi->fb.var.red.offset = yoff; ++ fbi->fb.var.green.length = cblen; ++ fbi->fb.var.green.offset = cboff; ++ fbi->fb.var.blue.length = crlen; ++ fbi->fb.var.blue.offset = croff; ++ ++ return 0; ++}; ++ ++static int overlay2fb_map_RGB_memory( struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ struct fb_var_screeninfo *var = &fbi->fb.var; ++ int pixels_per_line=0 , nbytes=0; ++ ++ if (fbi->map_cpu) ++ dma_free_writecombine(NULL, fbi->map_size, (void*)fbi->map_cpu, fbi->map_dma); ++ ++ switch(var->bits_per_pixel) { ++ case 16: ++ /* 2 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x1) & (~0x1); ++ nbytes = 2; ++ ++ var->red = def_rgbt_16.red; ++ var->green = def_rgbt_16.green; ++ var->blue = def_rgbt_16.blue; ++ var->transp = def_rgbt_16.transp; ++ break; ++ ++ case 18: ++ /* 8 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x7 ) & (~0x7); ++ nbytes = 3; ++ ++ var->red = def_rgb_18.red; ++ var->green = def_rgb_18.green; ++ var->blue = def_rgb_18.blue; ++ var->transp = def_rgb_18.transp; ++ ++ break; ++ case 19: ++ /* 8 pixels per line */ ++ pixels_per_line = (fbi->fb.var.xres + 0x7 ) & (~0x7); ++ nbytes = 3; ++ ++ var->red = def_rgbt_19.red; ++ var->green = def_rgbt_19.green; ++ var->blue = def_rgbt_19.blue; ++ var->transp = def_rgbt_19.transp; ++ ++ break; ++ case 24: ++ pixels_per_line = fbi->fb.var.xres; ++ nbytes = 4; ++ ++ var->red = def_rgbt_24.red; ++ var->green = def_rgbt_24.green; ++ var->blue = def_rgbt_24.blue; ++ var->transp = def_rgbt_24.transp; ++ ++ break; ++ ++ case 25: ++ pixels_per_line = fbi->fb.var.xres; ++ nbytes = 4; ++ ++ var->red = def_rgbt_25.red; ++ var->green = def_rgbt_25.green; ++ var->blue = def_rgbt_25.blue; ++ var->transp = def_rgbt_25.transp; ++ ++ break; ++ } ++ ++ fbi->fb.fix.line_length = nbytes * pixels_per_line; ++ fbi->fb.fix.smem_len = fbi->fb.fix.line_length * fbi->fb.var.yres; ++ ++ fbi->map_size = PAGE_ALIGN(fbi->fb.fix.smem_len + PAGE_SIZE); ++ fbi->map_cpu = (unsigned long)dma_alloc_writecombine(NULL, fbi->map_size, ++ &fbi->map_dma, GFP_KERNEL ); ++ ++ if (!fbi->map_cpu) return -ENOMEM; ++ ++ fbi->screen_cpu = fbi->map_cpu + PAGE_SIZE; ++ fbi->screen_dma = fbi->map_dma + PAGE_SIZE; ++ ++ fbi->fb.fix.smem_start = fbi->screen_dma; ++ ++ /* setup dma descriptor */ ++ fbi->dma2 = (struct pxafb_dma_descriptor*) ++ (fbi->screen_cpu - sizeof(struct pxafb_dma_descriptor)); ++ ++ fbi->dma2->fdadr = (fbi->screen_dma - sizeof(struct pxafb_dma_descriptor)); ++ fbi->dma2->fsadr = fbi->screen_dma; ++ fbi->dma2->fidr = 0; ++ fbi->dma2->ldcmd = fbi->fb.fix.smem_len; ++ ++ return 0; ++} ++ ++static int overlay2fb_enable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ unsigned long bpp2; ++ unsigned int xres, yres; ++ ++ if (!fbi->map_cpu) return -EINVAL; ++ ++ switch(fbi->fb.var.bits_per_pixel) { ++ case 16: ++ bpp2 = 0x4; ++ break; ++ case 18: ++ bpp2 = 0x6; ++ break; ++ case 19: ++ bpp2 = 0x8; ++ break; ++ case 24: ++ bpp2 = 0x9; ++ break; ++ case 25: ++ bpp2 = 0xa; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ /* disable branch/start/end of frame interrupt */ ++ LCCR5 |= (LCCR5_IUM4 | LCCR5_IUM3 | LCCR5_IUM2 | ++ LCCR5_BSM4 | LCCR5_BSM3 | LCCR5_BSM2 | ++ LCCR5_EOFM4 | LCCR5_EOFM3 | LCCR5_EOFM2 | ++ LCCR5_SOFM4 | LCCR5_SOFM3 | LCCR5_SOFM2); ++ ++ if (fbi->format == 0) { ++ /* overlay2 RGB resolution, RGB and YUV have different xres value*/ ++ xres = fbi->fb.var.xres; ++ yres = fbi->fb.var.yres; ++ ++ OVL2C2 = (fbi->format << 20) | (fbi->ypos << 10) | fbi->xpos; ++ OVL2C1 = OVL2C1_O2EN | (bpp2 << 20) | ((yres-1)<<10) | (xres-1); ++ /* setup RGB DMA */ ++ if (fbi->state == C_DISABLE || fbi->state == C_BLANK) ++ FDADR2 = fbi->dma2->fdadr; ++ else ++ FBR2 = fbi->dma2->fdadr | 0x1; ++ } else { ++ /* overlay2 YUV resolution */ ++ xres = fbi->fb.fix.line_length; ++ yres = fbi->fb.var.yres; ++ ++ OVL2C2 = (fbi->format << 20) | (fbi->ypos << 10) | fbi->xpos; ++ OVL2C1 = OVL2C1_O2EN | (bpp2 << 20) | ((yres-1)<<10) | (xres-1); ++ ++ if (fbi->state == C_DISABLE || fbi->state == C_BLANK) { ++ FDADR2 = fbi->dma2->fdadr; ++ FDADR3 = fbi->dma3->fdadr; ++ FDADR4 = fbi->dma4->fdadr; ++ } else { ++ FBR2 = fbi->dma2->fdadr | 0x01; ++ FBR3 = fbi->dma3->fdadr | 0x01; ++ FBR4 = fbi->dma4->fdadr | 0x01; ++ } ++ } ++ ++ fbi->state = C_ENABLE; ++ return 0; ++} ++ ++static int overlay2fb_disable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*)info; ++ int done; ++ ++ if (fbi->state == C_DISABLE) ++ return 0; ++ if (fbi->state == C_BLANK) { ++ fbi->state = C_DISABLE; ++ return 0; ++ } ++ ++ fbi->state = C_DISABLE; ++ ++ /* clear O2EN */ ++ OVL2C1 &= ~OVL2C1_O2EN; ++ ++ /* Make overlay2 can't disable/enable ++ * correctly sometimes. ++ */ ++ CLEAR_LCD_INTR(LCSR1, LCSR1_BS2); ++ ++ if (fbi->format == 0) ++ FBR2 = 0x3; ++ else { ++ FBR2 = 0x3; ++ FBR3 = 0x3; ++ FBR4 = 0x3; ++ } ++ ++ done = WAIT_FOR_LCD_INTR(LCSR1, LCSR1_BS2, 100); ++ ++ if (!done) { ++ pr_debug(KERN_INFO "%s: timeout\n", __FUNCTION__); ++ return -1; ++ } ++ return 0; ++} ++ ++static int overlay2fb_blank(int blank, struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ int err=0; ++ ++ switch(blank) ++ { ++ case 0: ++ err = overlay2fb_enable(info); ++ if (err) { ++ fbi->state = C_DISABLE; ++ pxafb_set_ctrlr_state(fbi->basefb, C_REENABLE); ++ } ++ break; ++ case 1: ++ err = overlay2fb_disable(info); ++ if (err) { ++ fbi->state = C_DISABLE; ++ pxafb_set_ctrlr_state(fbi->basefb, C_REENABLE); ++ } ++ break; ++ default: ++ /* reserved */ ++ break; ++ } ++ ++ return err; ++} ++ ++ ++static int overlay2fb_check_var( struct fb_var_screeninfo *var, struct fb_info *info) ++{ ++ int xpos, ypos, xres, yres; ++ int format; ++ struct overlayfb_info *fbi=(struct overlayfb_info*)info; ++ ++ xres=yres=0; ++ ++ xpos = (var->nonstd & 0x3ff); ++ ypos = (var->nonstd >> 10) & 0x3ff; ++ format = (var->nonstd >>20) & 0x7; ++ ++ ++ /* Palnar YCbCr444, YCbCr422, YCbCr420 */ ++ if ( (format != 0x4) && (format != 0x3) && (format != 0x2) && (format !=0x0)) ++ return -EINVAL; ++ ++ /* dummy pixels */ ++ switch(format) { ++ case 0x0: /* RGB */ ++ xres = var->xres; ++ break; ++ case 0x2: /* 444 */ ++ xres = (var->xres + 0x3) & ~(0x3); ++ break; ++ case 0x3: /* 422 */ ++ xres = (var->xres + 0x7) & ~(0x7); ++ break; ++ case 0x4: /* 420 */ ++ xres = (var->xres + 0xf) & ~(0xf); ++ break; ++ } ++ yres = var->yres; ++ ++ if ( (xpos + xres) > fbi->basefb->fb.var.xres ) ++ return -EINVAL; ++ ++ if ( (ypos + yres) > fbi->basefb->fb.var.yres ) ++ return -EINVAL; ++ ++ fbi->old_var=*var; ++ ++ var->activate=FB_ACTIVATE_NOW; ++ ++ return 0; ++ ++} ++ ++ ++/* ++ * overlay2fb_set_var() ++ * ++ * var.nonstd is used as YCbCr format. ++ * var.red/green/blue is used as (Y/Cb/Cr) vector ++ */ ++ ++static int overlay2fb_set_par(struct fb_info *info) ++{ ++ unsigned int xpos, ypos; ++ int format, err; ++ ++ struct overlayfb_info *fbi=(struct overlayfb_info*)info; ++ struct fb_var_screeninfo *var = &fbi->fb.var; ++ ++ info->flags &= ~FBINFO_MISC_USEREVENT; ++ ++ if (fbi->state == C_BLANK) ++ return 0; ++ ++ if (fbi->state == C_DISABLE) ++ goto out1; ++ ++ if ( (var->xres == fbi->old_var.xres) && ++ (var->yres == fbi->old_var.yres) && ++ (var->bits_per_pixel == fbi->old_var.bits_per_pixel) && ++ (((var->nonstd>>20) & 0x7) == fbi->format) ) ++ goto out2; ++ ++out1: ++ xpos = var->nonstd & 0x3ff; ++ ypos = (var->nonstd>>10) & 0x3ff; ++ format = (var->nonstd>>20) & 0x7; ++ ++ ++ fbi->format = format; ++ if ( fbi->format==0 ) ++ err = overlay2fb_map_RGB_memory(info); ++ else ++ err = overlay2fb_map_YUV_memory(info); ++ ++ if (err) return err; ++ ++out2: ++ /* position */ ++ fbi->xpos = var->nonstd & 0x3ff; ++ fbi->ypos = (var->nonstd>>10) & 0x3ff; ++ ++ overlay2fb_enable(info); ++ ++ return 0; ++} ++ ++static struct fb_ops overlay2fb_ops = { ++ .owner = THIS_MODULE, ++ .fb_open = overlay2fb_open, ++ .fb_release = overlay2fb_release, ++ .fb_check_var = overlay2fb_check_var, ++ .fb_set_par = overlay2fb_set_par, ++ .fb_blank = overlay2fb_blank, ++ .fb_fillrect = cfb_fillrect, ++ .fb_copyarea = cfb_copyarea, ++ .fb_imageblit = cfb_imageblit, ++}; ++ ++/* Hardware cursor */ ++ ++/* Bulverde Cursor Modes */ ++struct cursorfb_mode{ ++ int xres; ++ int yres; ++ int bpp; ++}; ++ ++static struct cursorfb_mode cursorfb_modes[]={ ++ { 32, 32, 2}, ++ { 32, 32, 2}, ++ { 32, 32, 2}, ++ { 64, 64, 2}, ++ { 64, 64, 2}, ++ { 64, 64, 2}, ++ {128, 128, 1}, ++ {128, 128, 1} ++}; ++ ++static int cursorfb_enable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ ++ if (!fbi->map_cpu) return -EINVAL; ++ ++ CCR &= ~CCR_CEN; ++ ++ /* set palette format ++ * ++ * FIXME: if only cursor uses palette ++ */ ++ LCCR4 = (LCCR4 & (~(0x3<<15))) | (0x1<<15); ++ ++ /* disable branch/start/end of frame interrupt */ ++ LCCR5 |= (LCCR5_IUM5 | LCCR5_BSM5 | LCCR5_EOFM5 | LCCR5_SOFM5); ++ ++ /* load palette and frame data */ ++ if (fbi->state == C_DISABLE) { ++ FDADR5 = fbi->dma5_pal->fdadr; ++ udelay(1); ++ FDADR5 = fbi->dma5_frame->fdadr; ++ udelay(1); ++ ++ } ++ else { ++ FBR5 = fbi->dma5_pal->fdadr | 0x1; ++ udelay(1); ++ FBR5 = fbi->dma5_frame->fdadr | 0x1; ++ udelay(1); ++ } ++ ++ CCR = CCR_CEN | (fbi->ypos << 15) | (fbi->xpos << 5) | (fbi->format); ++ ++ fbi->state = C_ENABLE; ++ ++ return 0; ++} ++ ++static int cursorfb_disable(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*)info; ++ int done, ret = 0; ++ ++ fbi->state = C_DISABLE; ++ ++ done = WAIT_FOR_LCD_INTR(LCSR1, LCSR1_BS5, 100); ++ if (!done) ret = -1; ++ ++ CCR &= ~CCR_CEN; ++ ++ return ret; ++} ++ ++static int cursorfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, ++ u_int trans, struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info *)info; ++ u_int val, ret = 1; ++ u_int *pal=(u_int*) fbi->palette_cpu; ++ ++ /* 25bit with Transparcy for 16bpp format */ ++ if (regno < fbi->palette_size) { ++ val = ((trans << 24) & 0x1000000); ++ val |= ((red << 16) & 0x0ff0000); ++ val |= ((green << 8 ) & 0x000ff00); ++ val |= ((blue << 0) & 0x00000ff); ++ ++ pal[regno] = val; ++ ret = 0; ++ } ++ return ret; ++} ++ ++int cursorfb_blank(int blank, struct fb_info *info) ++{ ++ switch(blank) ++ { ++ case 0: ++ cursorfb_enable(info); ++ break; ++ case 1: ++ cursorfb_disable(info); ++ break; ++ default: ++ /* reserved */ ++ break; ++ } ++ return 0; ++} ++ ++static int cursorfb_check_var( struct fb_var_screeninfo *var, struct fb_info *info) ++{ ++ int xpos, ypos, xres, yres; ++ int mode; ++ struct cursorfb_mode *cursor; ++ struct overlayfb_info *fbi=(struct overlayfb_info*)info; ++ ++ mode = var->nonstd & 0x7; ++ xpos = (var->nonstd>>5) & 0x3ff; ++ ypos = (var->nonstd>>15) & 0x3ff; ++ ++ if (mode>7 || mode <0 ) ++ return -EINVAL; ++ ++ cursor = cursorfb_modes + mode; ++ ++ xres = cursor->xres; ++ yres = cursor->yres; ++ ++ if ( (xpos + xres) > fbi->basefb->fb.var.xres ) ++ return -EINVAL; ++ ++ if ( (ypos + yres) > fbi->basefb->fb.var.yres ) ++ return -EINVAL; ++ ++ return 0; ++ ++} ++ ++static int cursorfb_set_par(struct fb_info *info) ++{ ++ struct overlayfb_info *fbi = (struct overlayfb_info*) info; ++ struct fb_var_screeninfo *var = &fbi->fb.var; ++ struct cursorfb_mode *cursor; ++ int mode, xpos, ypos; ++ int err; ++ ++ info->flags &= ~FBINFO_MISC_USEREVENT; ++ ++ mode = var->nonstd & 0x7; ++ xpos = (var->nonstd>>5) & 0x3ff; ++ ypos = (var->nonstd>>15) & 0x3ff; ++ ++ if (mode != fbi->format) { ++ cursor = cursorfb_modes + mode; ++ ++ /* update "var" info */ ++ fbi->fb.var.xres = cursor->xres; ++ fbi->fb.var.yres = cursor->yres; ++ fbi->fb.var.bits_per_pixel = cursor->bpp; ++ ++ /* alloc video memory ++ * ++ * 4k is engouh for 128x128x1 cursor, ++ * - 2k for cursor pixels, ++ * - 2k for palette data, plus 2 dma descriptor ++ */ ++ if (!fbi->map_cpu) { ++ fbi->map_size = PAGE_SIZE; ++ fbi->map_cpu = (unsigned long)dma_alloc_writecombine(NULL, fbi->map_size, ++ &fbi->map_dma, GFP_KERNEL ); ++ if (!fbi->map_cpu) return -ENOMEM; ++ } ++ ++ cursor = cursorfb_modes + mode; ++ ++ /* update overlay & fix "info" */ ++ fbi->screen_cpu = fbi->map_cpu; ++ fbi->palette_cpu = fbi->map_cpu + (PAGE_SIZE/2); ++ fbi->screen_dma = fbi->map_dma; ++ fbi->palette_dma = fbi->map_dma + (PAGE_SIZE/2); ++ ++ fbi->format = mode; ++ fbi->palette_size = (1<<cursor->bpp); ++ fbi->fb.fix.smem_start = fbi->screen_dma; ++ fbi->fb.fix.smem_len = cursor->xres * cursor->yres * cursor->bpp / 8; ++ fbi->fb.fix.line_length = cursor->xres * cursor->bpp / 8; ++ ++ fbi->dma5_pal = (struct pxafb_dma_descriptor*)(fbi->map_cpu + PAGE_SIZE - 16 ); ++ fbi->dma5_pal->fdadr = (fbi->map_dma + PAGE_SIZE - 16); ++ fbi->dma5_pal->fsadr = fbi->palette_dma; ++ fbi->dma5_pal->fidr = 0; ++ fbi->dma5_pal->ldcmd = (fbi->palette_size<<2) | LDCMD_PAL; ++ ++ fbi->dma5_frame = (struct pxafb_dma_descriptor*)(fbi->map_cpu + PAGE_SIZE - 32 ); ++ fbi->dma5_frame->fdadr = (fbi->map_dma + PAGE_SIZE - 32); ++ fbi->dma5_frame->fsadr = fbi->screen_dma; ++ fbi->dma5_frame->fidr = 0; ++ fbi->dma5_frame->ldcmd = fbi->fb.fix.smem_len; ++ ++ /* alloc & set default cmap */ ++ err = fb_alloc_cmap(&fbi->fb.cmap, fbi->palette_size, 0); ++ if (err) return err; ++ err = fb_set_cmap(&fbi->fb.cmap, info); ++ if (err) return err; ++ } ++ ++ /* update overlay info */ ++ if ( (xpos != fbi->xpos) || (ypos != fbi->ypos) ) { ++ fbi->xpos = xpos; ++ fbi->ypos = ypos; ++ } ++ ++ cursorfb_enable(info); ++ pxafb_set_ctrlr_state(fbi->basefb, C_REENABLE); ++ ++ return 0; ++} ++ ++static struct fb_ops cursorfb_ops = { ++ .owner = THIS_MODULE, ++ .fb_check_var = cursorfb_check_var, ++ .fb_set_par = cursorfb_set_par, ++ .fb_blank = cursorfb_blank, ++ .fb_fillrect = cfb_fillrect, ++ .fb_copyarea = cfb_copyarea, ++ .fb_imageblit = cfb_imageblit, ++ .fb_setcolreg = cursorfb_setcolreg, ++}; ++ ++static struct overlayfb_info * __init overlay1fb_init_fbinfo(void) ++{ ++ struct overlayfb_info *fbi; ++ ++ fbi = kmalloc(sizeof(struct overlayfb_info) + sizeof(u16) * 16, GFP_KERNEL); ++ if (!fbi) ++ return NULL; ++ ++ memset(fbi, 0, sizeof(struct overlayfb_info) ); ++ ++ fbi->refcount = 0; ++ init_MUTEX(&fbi->mutex); ++ ++ strcpy(fbi->fb.fix.id, "overlay1"); ++ ++ fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; ++ fbi->fb.fix.type_aux = 0; ++ fbi->fb.fix.xpanstep = 0; ++ fbi->fb.fix.ypanstep = 0; ++ fbi->fb.fix.ywrapstep = 0; ++ fbi->fb.fix.accel = FB_ACCEL_NONE; ++ ++ fbi->fb.var.nonstd = 0; ++ fbi->fb.var.activate = FB_ACTIVATE_NOW; ++ fbi->fb.var.height = -1; ++ fbi->fb.var.width = -1; ++ fbi->fb.var.accel_flags = 0; ++ fbi->fb.var.vmode = FB_VMODE_NONINTERLACED; ++ ++ ++ fbi->fb.fbops = &overlay1fb_ops; ++ fbi->fb.flags = FBINFO_FLAG_DEFAULT; ++ fbi->fb.node = -1; ++ fbi->fb.pseudo_palette = NULL; ++ ++ fbi->xpos = 0; ++ fbi->ypos = 0; ++ fbi->format = -1; ++ fbi->state = C_DISABLE; ++ ++ return fbi; ++} ++ ++static struct overlayfb_info * __init overlay2fb_init_fbinfo(void) ++{ ++ struct overlayfb_info *fbi; ++ ++ fbi = kmalloc(sizeof(struct overlayfb_info) + sizeof(u16) * 16, GFP_KERNEL); ++ if (!fbi) ++ return NULL; ++ ++ memset(fbi, 0, sizeof(struct overlayfb_info) ); ++ ++ fbi->refcount = 0; ++ init_MUTEX(&fbi->mutex); ++ ++ strcpy(fbi->fb.fix.id, "overlay2"); ++ ++ fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; ++ fbi->fb.fix.type_aux = 0; ++ fbi->fb.fix.xpanstep = 0; ++ fbi->fb.fix.ypanstep = 0; ++ fbi->fb.fix.ywrapstep = 0; ++ fbi->fb.fix.accel = FB_ACCEL_NONE; ++ ++ fbi->fb.var.nonstd = 0; ++ fbi->fb.var.activate = FB_ACTIVATE_NOW; ++ fbi->fb.var.height = -1; ++ fbi->fb.var.width = -1; ++ fbi->fb.var.accel_flags = 0; ++ fbi->fb.var.vmode = FB_VMODE_NONINTERLACED; ++ ++ fbi->fb.fbops = &overlay2fb_ops; ++ fbi->fb.flags = FBINFO_FLAG_DEFAULT; ++ fbi->fb.node = -1; ++ fbi->fb.pseudo_palette = NULL; ++ ++ fbi->xpos = 0; ++ fbi->ypos = 0; ++ fbi->format = -1; ++ fbi->state = C_DISABLE; ++ ++ return fbi; ++} ++ ++static struct overlayfb_info * __init cursorfb_init_fbinfo(void) ++{ ++ struct overlayfb_info *fbi; ++ ++ fbi = kmalloc(sizeof(struct overlayfb_info) + sizeof(u16) * 16, GFP_KERNEL); ++ if (!fbi) ++ return NULL; ++ ++ memset(fbi, 0, sizeof(struct overlayfb_info) ); ++ ++ fbi->refcount = 0; ++ init_MUTEX(&fbi->mutex); ++ ++ strcpy(fbi->fb.fix.id, "cursor"); ++ ++ fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; ++ fbi->fb.fix.type_aux = 0; ++ fbi->fb.fix.xpanstep = 0; ++ fbi->fb.fix.ypanstep = 0; ++ fbi->fb.fix.ywrapstep = 0; ++ fbi->fb.fix.accel = FB_ACCEL_NONE; ++ ++ fbi->fb.var.nonstd = 0; ++ fbi->fb.var.activate = FB_ACTIVATE_NOW; ++ fbi->fb.var.height = -1; ++ fbi->fb.var.width = -1; ++ fbi->fb.var.accel_flags = 0; ++ fbi->fb.var.vmode = FB_VMODE_NONINTERLACED; ++ ++ fbi->fb.fbops = &cursorfb_ops; ++ fbi->fb.flags = FBINFO_FLAG_DEFAULT; ++ fbi->fb.node = -1; ++ fbi->fb.pseudo_palette = NULL; ++ ++ ++ fbi->xpos = 0; ++ fbi->ypos = 0; ++ fbi->format = -1; ++ fbi->state = C_DISABLE; ++ ++ return fbi; ++} ++ ++ ++void pxa_set_overlay_ctrlr_state(struct pxafb_info *fbi, u_int state) ++{ ++ switch (state) { ++ case C_DISABLE: ++ DISABLE_OVERLAYS(fbi); ++ break; ++ case C_ENABLE: ++ ENABLE_OVERLAYS(fbi); ++ break; ++ case C_BLANK: ++ BLANK_OVERLAYS(fbi); ++ break; ++ case C_UNBLANK: ++ UNBLANK_OVERLAYS(fbi); ++ break; ++ default: ++ break; ++ } ++} ++ ++static int is_pxafb_device(struct device * dev, void * data) ++{ ++ struct platform_device *pdev = container_of(dev, struct platform_device, dev); ++ ++ return (strncmp(pdev->name, "pxa2xx-fb", 9) == 0); ++} ++ ++static int __devinit pxafb_overlay_init(void) ++{ ++ int ret; ++ struct overlayfb_info *overlay1fb, *overlay2fb, *cursorfb; ++ struct pxafb_info *fbi; ++ struct device *dev; ++ ++ ret = -1; ++ overlay1fb = overlay2fb = cursorfb = NULL; ++ fbi = NULL; ++ ++ dev = bus_find_device(&platform_bus_type, NULL, NULL, is_pxafb_device); ++ if (!dev) { ++ printk(KERN_INFO "Base framebuffer not exists, failed to load overlay driver!\n"); ++ return ret; ++ } ++ ++ fbi = dev_get_drvdata(dev); ++ if (fbi == NULL) { ++ printk(KERN_INFO "Base framebuffer not initialized, failed to load overlay driver!\n"); ++ return ret; ++ } ++ ++ /* Overlay 1 windows */ ++ overlay1fb = overlay1fb_init_fbinfo(); ++ ++ if (!overlay1fb) { ++ ret = -ENOMEM; ++ printk("overlay1fb_init_fbinfo failed\n"); ++ goto failed; ++ } ++ ++ ret = register_framebuffer(&overlay1fb->fb); ++ if (ret < 0) ++ goto failed; ++ ++ /* Overlay 2 window */ ++ overlay2fb = overlay2fb_init_fbinfo(); ++ ++ if (!overlay2fb) { ++ ret = -ENOMEM; ++ printk("overlay2fb_init_fbinfo failed\n"); ++ goto failed; ++ } ++ ++ ret = register_framebuffer(&overlay2fb->fb); ++ if (ret < 0) goto failed; ++ ++ /* Hardware cursor window */ ++ cursorfb = cursorfb_init_fbinfo(); ++ ++ if (!cursorfb) { ++ ret = -ENOMEM; ++ printk("cursorfb_init_fbinfo failed\n"); ++ goto failed; ++ } ++ ++ ret = register_framebuffer(&cursorfb->fb); ++ if (ret < 0) goto failed; ++ ++ ++ /* set refernce to Overlays */ ++ fbi->overlay1fb = overlay1fb; ++ fbi->overlay2fb = overlay2fb; ++ fbi->cursorfb = cursorfb; ++ fbi->set_overlay_ctrlr_state=pxa_set_overlay_ctrlr_state; ++ ++ /* set refernce to BaseFrame */ ++ overlay1fb->basefb = fbi; ++ overlay2fb->basefb = fbi; ++ cursorfb->basefb = fbi; ++ ++ printk(KERN_INFO "Load PXA Overlay driver successfully!\n"); ++ ++ return 0; ++ ++failed: ++ if (overlay1fb) ++ kfree(overlay1fb); ++ if (overlay2fb) ++ kfree(overlay2fb); ++ if (cursorfb) ++ kfree(cursorfb); ++ printk(KERN_INFO "Load PXA Overlay driver failed!\n"); ++ return ret; ++} ++ ++static void __exit pxafb_overlay_exit(void) ++{ ++ struct pxafb_info *fbi; ++ struct device *dev; ++ ++ dev = bus_find_device(&platform_bus_type, NULL, NULL, is_pxafb_device); ++ if (!dev) ++ return; ++ ++ fbi = dev_get_drvdata(dev); ++ if (!fbi) ++ return; ++ ++ if (fbi->overlay1fb) { ++ unregister_framebuffer(&(fbi->overlay1fb->fb)); ++ kfree(fbi->overlay1fb); ++ fbi->overlay1fb = NULL; ++ } ++ ++ if (fbi->overlay2fb) { ++ unregister_framebuffer(&(fbi->overlay2fb->fb)); ++ kfree(fbi->overlay2fb); ++ fbi->overlay2fb = NULL; ++ } ++ ++ if (fbi->cursorfb) { ++ unregister_framebuffer(&(fbi->cursorfb->fb)); ++ kfree(fbi->cursorfb); ++ fbi->cursorfb = NULL; ++ } ++ ++ fbi->set_overlay_ctrlr_state = NULL; ++ ++ printk(KERN_INFO "Unload PXA Overlay driver successfully!\n"); ++ return; ++} ++ ++ ++module_init(pxafb_overlay_init); ++module_exit(pxafb_overlay_exit); ++ ++MODULE_DESCRIPTION("Loadable framebuffer overlay driver for PXA"); ++MODULE_LICENSE("GPL"); ++ +--- linux-2.6.24-rc1.orig/include/asm-arm/arch-pxa/pxa-regs.h ++++ linux-2.6.24-rc1/include/asm-arm/arch-pxa/pxa-regs.h +@@ -789,11 +789,18 @@ + #define UDC_INT_PACKETCMP (0x1) + + #define UDCICR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2)) ++/* Older defines, do not use. */ + #define UDCICR1_IECC (1 << 31) /* IntEn - Configuration Change */ + #define UDCICR1_IESOF (1 << 30) /* IntEn - Start of Frame */ + #define UDCICR1_IERU (1 << 29) /* IntEn - Resume */ + #define UDCICR1_IESU (1 << 28) /* IntEn - Suspend */ + #define UDCICR1_IERS (1 << 27) /* IntEn - Reset */ ++/* New defines. */ ++#define UDCISR1_IRCC (1 << 31) /* IntEn - Configuration Change */ ++#define UDCISR1_IRSOF (1 << 30) /* IntEn - Start of Frame */ ++#define UDCISR1_IRRU (1 << 29) /* IntEn - Resume */ ++#define UDCISR1_IRSU (1 << 28) /* IntEn - Suspend */ ++#define UDCISR1_IRRS (1 << 27) /* IntEn - Reset */ + + #define UDCISR0 __REG(0x4060000C) /* UDC Interrupt Status Register 0 */ + #define UDCISR1 __REG(0x40600010) /* UDC Interrupt Status Register 1 */ +@@ -1827,6 +1834,8 @@ + #define DFBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ + #define DFBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ + #define LCSR __REG(0x44000038) /* LCD Controller Status Register */ ++#define LCSR0 __REG(0x44000038) /* LCD Controller Status Register */ ++#define LCSR1 __REG(0x44000034) /* LCD Controller Status Register */ + #define LIIDR __REG(0x4400003C) /* LCD Controller Interrupt ID Register */ + #define TMEDRGBR __REG(0x44000040) /* TMED RGB Seed Register */ + #define TMEDCR __REG(0x44000044) /* TMED Control Register */ +@@ -1836,6 +1845,10 @@ + #define LCCR3_4BPP (2 << 24) + #define LCCR3_8BPP (3 << 24) + #define LCCR3_16BPP (4 << 24) ++#define LCCR3_18BPP (6 << 24) ++#define LCCR3_19BPP (8 << 24) ++#define LCCR3_24BPP (9 << 24) ++#define LCCR3_25BPP (10<< 24) + + #define LCCR3_PDFOR_0 (0 << 30) + #define LCCR3_PDFOR_1 (1 << 30) +@@ -2010,6 +2023,104 @@ + + #define LDCMD_PAL (1 << 26) /* instructs DMA to load palette buffer */ + ++/* Overlay1 & Overlay2 & Hardware Cursor */ ++#define LCSR1_SOF1 (1 << 0) ++#define LCSR1_SOF2 (1 << 1) ++#define LCSR1_SOF3 (1 << 2) ++#define LCSR1_SOF4 (1 << 3) ++#define LCSR1_SOF5 (1 << 4) ++#define LCSR1_SOF6 (1 << 5) ++ ++#define LCSR1_EOF1 (1 << 8) ++#define LCSR1_EOF2 (1 << 9) ++#define LCSR1_EOF3 (1 << 10) ++#define LCSR1_EOF4 (1 << 11) ++#define LCSR1_EOF5 (1 << 12) ++#define LCSR1_EOF6 (1 << 13) ++ ++#define LCSR1_BS1 (1 << 16) ++#define LCSR1_BS2 (1 << 17) ++#define LCSR1_BS3 (1 << 18) ++#define LCSR1_BS4 (1 << 19) ++#define LCSR1_BS5 (1 << 20) ++#define LCSR1_BS6 (1 << 21) ++ ++#define LCSR1_IU2 (1 << 25) ++#define LCSR1_IU3 (1 << 26) ++#define LCSR1_IU4 (1 << 27) ++#define LCSR1_IU5 (1 << 28) ++#define LCSR1_IU6 (1 << 29) ++ ++#define LDCMD_SOFINT (1 << 22) ++#define LDCMD_EOFINT (1 << 21) ++ ++ ++#define LCCR5_SOFM1 (1<<0) /* Start Of Frame Mask for Overlay 1 (channel 1) */ ++#define LCCR5_SOFM2 (1<<1) /* Start Of Frame Mask for Overlay 2 (channel 2) */ ++#define LCCR5_SOFM3 (1<<2) /* Start Of Frame Mask for Overlay 2 (channel 3) */ ++#define LCCR5_SOFM4 (1<<3) /* Start Of Frame Mask for Overlay 2 (channel 4) */ ++#define LCCR5_SOFM5 (1<<4) /* Start Of Frame Mask for cursor (channel 5) */ ++#define LCCR5_SOFM6 (1<<5) /* Start Of Frame Mask for command data (channel 6) */ ++ ++#define LCCR5_EOFM1 (1<<8) /* End Of Frame Mask for Overlay 1 (channel 1) */ ++#define LCCR5_EOFM2 (1<<9) /* End Of Frame Mask for Overlay 2 (channel 2) */ ++#define LCCR5_EOFM3 (1<<10) /* End Of Frame Mask for Overlay 2 (channel 3) */ ++#define LCCR5_EOFM4 (1<<11) /* End Of Frame Mask for Overlay 2 (channel 4) */ ++#define LCCR5_EOFM5 (1<<12) /* End Of Frame Mask for cursor (channel 5) */ ++#define LCCR5_EOFM6 (1<<13) /* End Of Frame Mask for command data (channel 6) */ ++ ++#define LCCR5_BSM1 (1<<16) /* Branch mask for Overlay 1 (channel 1) */ ++#define LCCR5_BSM2 (1<<17) /* Branch mask for Overlay 2 (channel 2) */ ++#define LCCR5_BSM3 (1<<18) /* Branch mask for Overlay 2 (channel 3) */ ++#define LCCR5_BSM4 (1<<19) /* Branch mask for Overlay 2 (channel 4) */ ++#define LCCR5_BSM5 (1<<20) /* Branch mask for cursor (channel 5) */ ++#define LCCR5_BSM6 (1<<21) /* Branch mask for data command (channel 6) */ ++ ++#define LCCR5_IUM1 (1<<24) /* Input FIFO Underrun Mask for Overlay 1 */ ++#define LCCR5_IUM2 (1<<25) /* Input FIFO Underrun Mask for Overlay 2 */ ++#define LCCR5_IUM3 (1<<26) /* Input FIFO Underrun Mask for Overlay 2 */ ++#define LCCR5_IUM4 (1<<27) /* Input FIFO Underrun Mask for Overlay 2 */ ++#define LCCR5_IUM5 (1<<28) /* Input FIFO Underrun Mask for cursor */ ++#define LCCR5_IUM6 (1<<29) /* Input FIFO Underrun Mask for data command */ ++ ++#define OVL1C1_O1EN (1<<31) /* Enable bit for Overlay 1 */ ++#define OVL2C1_O2EN (1<<31) /* Enable bit for Overlay 2 */ ++#define CCR_CEN (1<<31) /* Enable bit for Cursor */ ++ ++/* LCD registers */ ++#define LCCR4 __REG(0x44000010) /* LCD Controller Control Register 4 */ ++#define LCCR5 __REG(0x44000014) /* LCD Controller Control Register 5 */ ++#define FBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ ++#define FBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ ++#define FBR2 __REG(0x44000028) /* DMA Channel 2 Frame Branch Register */ ++#define FBR3 __REG(0x4400002C) /* DMA Channel 3 Frame Branch Register */ ++#define FBR4 __REG(0x44000030) /* DMA Channel 4 Frame Branch Register */ ++#define FDADR2 __REG(0x44000220) /* DMA Channel 2 Frame Descriptor Address Register */ ++#define FSADR2 __REG(0x44000224) /* DMA Channel 2 Frame Source Address Register */ ++#define FIDR2 __REG(0x44000228) /* DMA Channel 2 Frame ID Register */ ++#define LDCMD2 __REG(0x4400022C) /* DMA Channel 2 Command Register */ ++#define FDADR3 __REG(0x44000230) /* DMA Channel 3 Frame Descriptor Address Register */ ++#define FSADR3 __REG(0x44000234) /* DMA Channel 3 Frame Source Address Register */ ++#define FIDR3 __REG(0x44000238) /* DMA Channel 3 Frame ID Register */ ++#define LDCMD3 __REG(0x4400023C) /* DMA Channel 3 Command Register */ ++#define FDADR4 __REG(0x44000240) /* DMA Channel 4 Frame Descriptor Address Register */ ++#define FSADR4 __REG(0x44000244) /* DMA Channel 4 Frame Source Address Register */ ++#define FIDR4 __REG(0x44000248) /* DMA Channel 4 Frame ID Register */ ++#define LDCMD4 __REG(0x4400024C) /* DMA Channel 4 Command Register */ ++#define FDADR5 __REG(0x44000250) /* DMA Channel 5 Frame Descriptor Address Register */ ++#define FSADR5 __REG(0x44000254) /* DMA Channel 5 Frame Source Address Register */ ++#define FIDR5 __REG(0x44000258) /* DMA Channel 5 Frame ID Register */ ++#define LDCMD5 __REG(0x4400025C) /* DMA Channel 5 Command Register */ ++ ++#define OVL1C1 __REG(0x44000050) /* Overlay 1 Control Register 1 */ ++#define OVL1C2 __REG(0x44000060) /* Overlay 1 Control Register 2 */ ++#define OVL2C1 __REG(0x44000070) /* Overlay 2 Control Register 1 */ ++#define OVL2C2 __REG(0x44000080) /* Overlay 2 Control Register 2 */ ++#define CCR __REG(0x44000090) /* Cursor Control Register */ ++ ++#define FBR5 __REG(0x44000110) /* DMA Channel 5 Frame Branch Register */ ++#define FBR6 __REG(0x44000114) /* DMA Channel 6 Frame Branch Register */ ++ + /* + * Memory controller + */ diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa_fb_overlay.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa_fb_overlay.patch index 49c59b3275..49c59b3275 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa_fb_overlay.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/pxa_fb_overlay.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch index b513ba1466..b513ba1466 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/squashfs3.0-2.6.15.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/squashfs3.0-2.6.15.patch index a210afcaf8..a210afcaf8 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/squashfs3.0-2.6.15.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/squashfs3.0-2.6.15.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/squashfs3.2-2.6.20-r0.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/squashfs3.2-2.6.20-r0.patch new file mode 100644 index 0000000000..3870b317e4 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/squashfs3.2-2.6.20-r0.patch @@ -0,0 +1,4376 @@ +--- linux-2.6.24-rc1.orig/fs/Kconfig ++++ linux-2.6.24-rc1/fs/Kconfig +@@ -1405,6 +1405,71 @@ + + If unsure, say N. + ++config SQUASHFS ++ tristate "SquashFS 3.2 - Squashed file system support" ++ select ZLIB_INFLATE ++ help ++ Saying Y here includes support for SquashFS 3.2 (a Compressed Read-Only File ++ System). Squashfs is a highly compressed read-only filesystem for Linux. ++ It uses zlib compression to compress both files, inodes and directories. ++ Inodes in the system are very small and all blocks are packed to minimise ++ data overhead. Block sizes greater than 4K are supported up to a maximum of 64K. ++ SquashFS 3.1 supports 64 bit filesystems and files (larger than 4GB), full ++ uid/gid information, hard links and timestamps. ++ ++ Squashfs is intended for general read-only filesystem use, for archival ++ use (i.e. in cases where a .tar.gz file may be used), and in embedded ++ systems where low overhead is needed. Further information and filesystem tools ++ are available from http://squashfs.sourceforge.net. ++ ++ If you want to compile this as a module ( = code which can be ++ inserted in and removed from the running kernel whenever you want), ++ say M here and read <file:Documentation/modules.txt>. The module ++ will be called squashfs. Note that the root file system (the one ++ containing the directory /) cannot be compiled as a module. ++ ++ If unsure, say N. ++ ++config SQUASHFS_EMBEDDED ++ ++ bool "Additional options for memory-constrained systems" ++ depends on SQUASHFS ++ default n ++ help ++ Saying Y here allows you to specify cache sizes and how Squashfs ++ allocates memory. This is only intended for memory constrained ++ systems. ++ ++ If unsure, say N. ++ ++config SQUASHFS_FRAGMENT_CACHE_SIZE ++ int "Number of fragments cached" if SQUASHFS_EMBEDDED ++ depends on SQUASHFS ++ default "3" ++ help ++ By default SquashFS caches the last 3 fragments read from ++ the filesystem. Increasing this amount may mean SquashFS ++ has to re-read fragments less often from disk, at the expense ++ of extra system memory. Decreasing this amount will mean ++ SquashFS uses less memory at the expense of extra reads from disk. ++ ++ Note there must be at least one cached fragment. Anything ++ much more than three will probably not make much difference. ++ ++config SQUASHFS_VMALLOC ++ bool "Use Vmalloc rather than Kmalloc" if SQUASHFS_EMBEDDED ++ depends on SQUASHFS ++ default n ++ help ++ By default SquashFS uses kmalloc to obtain fragment cache memory. ++ Kmalloc memory is the standard kernel allocator, but it can fail ++ on memory constrained systems. Because of the way Vmalloc works, ++ Vmalloc can succeed when kmalloc fails. Specifying this option ++ will make SquashFS always use Vmalloc to allocate the ++ fragment cache memory. ++ ++ If unsure, say N. ++ + config VXFS_FS + tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" + depends on BLOCK +--- linux-2.6.24-rc1.orig/fs/Makefile ++++ linux-2.6.24-rc1/fs/Makefile +@@ -72,6 +72,7 @@ + obj-$(CONFIG_JBD2) += jbd2/ + obj-$(CONFIG_EXT2_FS) += ext2/ + obj-$(CONFIG_CRAMFS) += cramfs/ ++obj-$(CONFIG_SQUASHFS) += squashfs/ + obj-y += ramfs/ + obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ + obj-$(CONFIG_CODA_FS) += coda/ +--- /dev/null ++++ linux-2.6.24-rc1/fs/squashfs/inode.c +@@ -0,0 +1,2329 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * inode.c ++ */ ++ ++#include <linux/squashfs_fs.h> ++#include <linux/module.h> ++#include <linux/zlib.h> ++#include <linux/fs.h> ++#include <linux/squashfs_fs_sb.h> ++#include <linux/squashfs_fs_i.h> ++#include <linux/buffer_head.h> ++#include <linux/vfs.h> ++#include <linux/vmalloc.h> ++#include <linux/smp_lock.h> ++ ++#include "squashfs.h" ++ ++static void vfs_read_inode(struct inode *i); ++static struct dentry *squashfs_get_parent(struct dentry *child); ++static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); ++static int squashfs_statfs(struct dentry *, struct kstatfs *); ++static int squashfs_symlink_readpage(struct file *file, struct page *page); ++static long long read_blocklist(struct inode *inode, int index, ++ int readahead_blks, char *block_list, ++ unsigned short **block_p, unsigned int *bsize); ++static int squashfs_readpage(struct file *file, struct page *page); ++static int squashfs_readpage4K(struct file *file, struct page *page); ++static int squashfs_readdir(struct file *, void *, filldir_t); ++static struct dentry *squashfs_lookup(struct inode *, struct dentry *, ++ struct nameidata *); ++static int squashfs_remount(struct super_block *s, int *flags, char *data); ++static void squashfs_put_super(struct super_block *); ++static int squashfs_get_sb(struct file_system_type *,int, const char *, void *, ++ struct vfsmount *); ++static struct inode *squashfs_alloc_inode(struct super_block *sb); ++static void squashfs_destroy_inode(struct inode *inode); ++static int init_inodecache(void); ++static void destroy_inodecache(void); ++ ++static struct file_system_type squashfs_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "squashfs", ++ .get_sb = squashfs_get_sb, ++ .kill_sb = kill_block_super, ++ .fs_flags = FS_REQUIRES_DEV ++}; ++ ++static const unsigned char squashfs_filetype_table[] = { ++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK ++}; ++ ++static struct super_operations squashfs_super_ops = { ++ .alloc_inode = squashfs_alloc_inode, ++ .destroy_inode = squashfs_destroy_inode, ++ .statfs = squashfs_statfs, ++ .put_super = squashfs_put_super, ++ .remount_fs = squashfs_remount ++}; ++ ++static struct super_operations squashfs_export_super_ops = { ++ .alloc_inode = squashfs_alloc_inode, ++ .destroy_inode = squashfs_destroy_inode, ++ .statfs = squashfs_statfs, ++ .put_super = squashfs_put_super, ++ .read_inode = vfs_read_inode ++}; ++ ++static struct export_operations squashfs_export_ops = { ++ .get_parent = squashfs_get_parent ++}; ++ ++SQSH_EXTERN const struct address_space_operations squashfs_symlink_aops = { ++ .readpage = squashfs_symlink_readpage ++}; ++ ++SQSH_EXTERN const struct address_space_operations squashfs_aops = { ++ .readpage = squashfs_readpage ++}; ++ ++SQSH_EXTERN const struct address_space_operations squashfs_aops_4K = { ++ .readpage = squashfs_readpage4K ++}; ++ ++static const struct file_operations squashfs_dir_ops = { ++ .read = generic_read_dir, ++ .readdir = squashfs_readdir ++}; ++ ++SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { ++ .lookup = squashfs_lookup ++}; ++ ++ ++static struct buffer_head *get_block_length(struct super_block *s, ++ int *cur_index, int *offset, int *c_byte) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ unsigned short temp; ++ struct buffer_head *bh; ++ ++ if (!(bh = sb_bread(s, *cur_index))) ++ goto out; ++ ++ if (msblk->devblksize - *offset == 1) { ++ if (msblk->swap) ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ else ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ brelse(bh); ++ if (!(bh = sb_bread(s, ++(*cur_index)))) ++ goto out; ++ if (msblk->swap) ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ bh->b_data); ++ else ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ bh->b_data); ++ *c_byte = temp; ++ *offset = 1; ++ } else { ++ if (msblk->swap) { ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset + 1)); ++ } else { ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset + 1)); ++ } ++ *c_byte = temp; ++ *offset += 2; ++ } ++ ++ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { ++ if (*offset == msblk->devblksize) { ++ brelse(bh); ++ if (!(bh = sb_bread(s, ++(*cur_index)))) ++ goto out; ++ *offset = 0; ++ } ++ if (*((unsigned char *) (bh->b_data + *offset)) != ++ SQUASHFS_MARKER_BYTE) { ++ ERROR("Metadata block marker corrupt @ %x\n", ++ *cur_index); ++ brelse(bh); ++ goto out; ++ } ++ (*offset)++; ++ } ++ return bh; ++ ++out: ++ return NULL; ++} ++ ++ ++SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, ++ long long index, unsigned int length, ++ long long *next_index, int srclength) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >> ++ msblk->devblksize_log2) + 2]; ++ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); ++ unsigned int cur_index = index >> msblk->devblksize_log2; ++ int bytes, avail_bytes, b = 0, k = 0; ++ unsigned int compressed; ++ unsigned int c_byte = length; ++ ++ if (c_byte) { ++ bytes = msblk->devblksize - offset; ++ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); ++ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); ++ ++ TRACE("Block @ 0x%llx, %scompressed size %d, src size %d\n", index, compressed ++ ? "" : "un", (unsigned int) c_byte, srclength); ++ ++ if (c_byte > srclength || index < 0 || (index + c_byte) > sblk->bytes_used) ++ goto read_failure; ++ ++ if (!(bh[0] = sb_getblk(s, cur_index))) ++ goto block_release; ++ ++ for (b = 1; bytes < c_byte; b++) { ++ if (!(bh[b] = sb_getblk(s, ++cur_index))) ++ goto block_release; ++ bytes += msblk->devblksize; ++ } ++ ll_rw_block(READ, b, bh); ++ } else { ++ if (index < 0 || (index + 2) > sblk->bytes_used) ++ goto read_failure; ++ ++ if (!(bh[0] = get_block_length(s, &cur_index, &offset, ++ &c_byte))) ++ goto read_failure; ++ ++ bytes = msblk->devblksize - offset; ++ compressed = SQUASHFS_COMPRESSED(c_byte); ++ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); ++ ++ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed ++ ? "" : "un", (unsigned int) c_byte); ++ ++ if (c_byte > srclength || (index + c_byte) > sblk->bytes_used) ++ goto read_failure; ++ ++ for (b = 1; bytes < c_byte; b++) { ++ if (!(bh[b] = sb_getblk(s, ++cur_index))) ++ goto block_release; ++ bytes += msblk->devblksize; ++ } ++ ll_rw_block(READ, b - 1, bh + 1); ++ } ++ ++ if (compressed) { ++ int zlib_err = 0; ++ ++ /* ++ * uncompress block ++ */ ++ ++ mutex_lock(&msblk->read_data_mutex); ++ ++ msblk->stream.next_out = buffer; ++ msblk->stream.avail_out = srclength; ++ ++ for (bytes = 0; k < b; k++) { ++ avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ? ++ msblk->devblksize - offset : ++ c_byte - bytes; ++ wait_on_buffer(bh[k]); ++ if (!buffer_uptodate(bh[k])) ++ goto release_mutex; ++ ++ msblk->stream.next_in = bh[k]->b_data + offset; ++ msblk->stream.avail_in = avail_bytes; ++ ++ if (k == 0) { ++ zlib_err = zlib_inflateInit(&msblk->stream); ++ if (zlib_err != Z_OK) { ++ ERROR("zlib_inflateInit returned unexpected result 0x%x, srclength %d\n", ++ zlib_err, srclength); ++ goto release_mutex; ++ } ++ ++ if (avail_bytes == 0) { ++ offset = 0; ++ brelse(bh[k]); ++ continue; ++ } ++ } ++ ++ zlib_err = zlib_inflate(&msblk->stream, Z_NO_FLUSH); ++ if (zlib_err != Z_OK && zlib_err != Z_STREAM_END) { ++ ERROR("zlib_inflate returned unexpected result 0x%x, srclength %d, avail_in %d, avail_out %d\n", ++ zlib_err, srclength, msblk->stream.avail_in, msblk->stream.avail_out); ++ goto release_mutex; ++ } ++ ++ bytes += avail_bytes; ++ offset = 0; ++ brelse(bh[k]); ++ } ++ ++ if (zlib_err != Z_STREAM_END) ++ goto release_mutex; ++ ++ zlib_err = zlib_inflateEnd(&msblk->stream); ++ if (zlib_err != Z_OK) { ++ ERROR("zlib_inflateEnd returned unexpected result 0x%x, srclength %d\n", ++ zlib_err, srclength); ++ goto release_mutex; ++ } ++ bytes = msblk->stream.total_out; ++ mutex_unlock(&msblk->read_data_mutex); ++ } else { ++ int i; ++ ++ for(i = 0; i < b; i++) { ++ wait_on_buffer(bh[i]); ++ if(!buffer_uptodate(bh[i])) ++ goto block_release; ++ } ++ ++ for (bytes = 0; k < b; k++) { ++ avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ? ++ msblk->devblksize - offset : ++ c_byte - bytes; ++ memcpy(buffer + bytes, bh[k]->b_data + offset, avail_bytes); ++ bytes += avail_bytes; ++ offset = 0; ++ brelse(bh[k]); ++ } ++ } ++ ++ if (next_index) ++ *next_index = index + c_byte + (length ? 0 : ++ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ++ ? 3 : 2)); ++ return bytes; ++ ++release_mutex: ++ mutex_unlock(&msblk->read_data_mutex); ++ ++block_release: ++ for (; k < b; k++) ++ brelse(bh[k]); ++ ++read_failure: ++ ERROR("sb_bread failed reading block 0x%x\n", cur_index); ++ return 0; ++} ++ ++ ++SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, char *buffer, ++ long long block, unsigned int offset, ++ int length, long long *next_block, ++ unsigned int *next_offset) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ int n, i, bytes, return_length = length; ++ long long next_index; ++ ++ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); ++ ++ while ( 1 ) { ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ if (msblk->block_cache[i].block == block) ++ break; ++ ++ mutex_lock(&msblk->block_cache_mutex); ++ ++ if (i == SQUASHFS_CACHED_BLKS) { ++ /* read inode header block */ ++ for (i = msblk->next_cache, n = SQUASHFS_CACHED_BLKS; ++ n ; n --, i = (i + 1) % ++ SQUASHFS_CACHED_BLKS) ++ if (msblk->block_cache[i].block != ++ SQUASHFS_USED_BLK) ++ break; ++ ++ if (n == 0) { ++ wait_queue_t wait; ++ ++ init_waitqueue_entry(&wait, current); ++ add_wait_queue(&msblk->waitq, &wait); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ mutex_unlock(&msblk->block_cache_mutex); ++ schedule(); ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&msblk->waitq, &wait); ++ continue; ++ } ++ msblk->next_cache = (i + 1) % SQUASHFS_CACHED_BLKS; ++ ++ if (msblk->block_cache[i].block == ++ SQUASHFS_INVALID_BLK) { ++ if (!(msblk->block_cache[i].data = ++ kmalloc(SQUASHFS_METADATA_SIZE, ++ GFP_KERNEL))) { ++ ERROR("Failed to allocate cache" ++ "block\n"); ++ mutex_unlock(&msblk->block_cache_mutex); ++ goto out; ++ } ++ } ++ ++ msblk->block_cache[i].block = SQUASHFS_USED_BLK; ++ mutex_unlock(&msblk->block_cache_mutex); ++ ++ msblk->block_cache[i].length = squashfs_read_data(s, ++ msblk->block_cache[i].data, block, 0, &next_index, SQUASHFS_METADATA_SIZE); ++ if (msblk->block_cache[i].length == 0) { ++ ERROR("Unable to read cache block [%llx:%x]\n", ++ block, offset); ++ mutex_lock(&msblk->block_cache_mutex); ++ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; ++ kfree(msblk->block_cache[i].data); ++ wake_up(&msblk->waitq); ++ mutex_unlock(&msblk->block_cache_mutex); ++ goto out; ++ } ++ ++ mutex_lock(&msblk->block_cache_mutex); ++ wake_up(&msblk->waitq); ++ msblk->block_cache[i].block = block; ++ msblk->block_cache[i].next_index = next_index; ++ TRACE("Read cache block [%llx:%x]\n", block, offset); ++ } ++ ++ if (msblk->block_cache[i].block != block) { ++ mutex_unlock(&msblk->block_cache_mutex); ++ continue; ++ } ++ ++ bytes = msblk->block_cache[i].length - offset; ++ ++ if (bytes < 1) { ++ mutex_unlock(&msblk->block_cache_mutex); ++ goto out; ++ } else if (bytes >= length) { ++ if (buffer) ++ memcpy(buffer, msblk->block_cache[i].data + ++ offset, length); ++ if (msblk->block_cache[i].length - offset == length) { ++ *next_block = msblk->block_cache[i].next_index; ++ *next_offset = 0; ++ } else { ++ *next_block = block; ++ *next_offset = offset + length; ++ } ++ mutex_unlock(&msblk->block_cache_mutex); ++ goto finish; ++ } else { ++ if (buffer) { ++ memcpy(buffer, msblk->block_cache[i].data + ++ offset, bytes); ++ buffer += bytes; ++ } ++ block = msblk->block_cache[i].next_index; ++ mutex_unlock(&msblk->block_cache_mutex); ++ length -= bytes; ++ offset = 0; ++ } ++ } ++ ++finish: ++ return return_length; ++out: ++ return 0; ++} ++ ++ ++static int get_fragment_location(struct super_block *s, unsigned int fragment, ++ long long *fragment_start_block, ++ unsigned int *fragment_size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ long long start_block = ++ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; ++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); ++ struct squashfs_fragment_entry fragment_entry; ++ ++ if (msblk->swap) { ++ struct squashfs_fragment_entry sfragment_entry; ++ ++ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, ++ start_block, offset, ++ sizeof(sfragment_entry), &start_block, ++ &offset)) ++ goto out; ++ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, ++ start_block, offset, ++ sizeof(fragment_entry), &start_block, ++ &offset)) ++ goto out; ++ ++ *fragment_start_block = fragment_entry.start_block; ++ *fragment_size = fragment_entry.size; ++ ++ return 1; ++ ++out: ++ return 0; ++} ++ ++ ++SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, struct ++ squashfs_fragment_cache *fragment) ++{ ++ mutex_lock(&msblk->fragment_mutex); ++ fragment->locked --; ++ wake_up(&msblk->fragment_wait_queue); ++ mutex_unlock(&msblk->fragment_mutex); ++} ++ ++ ++SQSH_EXTERN struct squashfs_fragment_cache *get_cached_fragment(struct super_block ++ *s, long long start_block, ++ int length) ++{ ++ int i, n; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ while ( 1 ) { ++ mutex_lock(&msblk->fragment_mutex); ++ ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS && ++ msblk->fragment[i].block != start_block; i++); ++ ++ if (i == SQUASHFS_CACHED_FRAGMENTS) { ++ for (i = msblk->next_fragment, n = ++ SQUASHFS_CACHED_FRAGMENTS; n && ++ msblk->fragment[i].locked; n--, i = (i + 1) % ++ SQUASHFS_CACHED_FRAGMENTS); ++ ++ if (n == 0) { ++ wait_queue_t wait; ++ ++ init_waitqueue_entry(&wait, current); ++ add_wait_queue(&msblk->fragment_wait_queue, ++ &wait); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ mutex_unlock(&msblk->fragment_mutex); ++ schedule(); ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&msblk->fragment_wait_queue, ++ &wait); ++ continue; ++ } ++ msblk->next_fragment = (msblk->next_fragment + 1) % ++ SQUASHFS_CACHED_FRAGMENTS; ++ ++ if (msblk->fragment[i].data == NULL) ++ if (!(msblk->fragment[i].data = SQUASHFS_ALLOC ++ (SQUASHFS_FILE_MAX_SIZE))) { ++ ERROR("Failed to allocate fragment " ++ "cache block\n"); ++ mutex_unlock(&msblk->fragment_mutex); ++ goto out; ++ } ++ ++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; ++ msblk->fragment[i].locked = 1; ++ mutex_unlock(&msblk->fragment_mutex); ++ ++ if (!(msblk->fragment[i].length = squashfs_read_data(s, ++ msblk->fragment[i].data, ++ start_block, length, NULL, sblk->block_size))) { ++ ERROR("Unable to read fragment cache block " ++ "[%llx]\n", start_block); ++ msblk->fragment[i].locked = 0; ++ smp_mb(); ++ goto out; ++ } ++ ++ mutex_lock(&msblk->fragment_mutex); ++ msblk->fragment[i].block = start_block; ++ TRACE("New fragment %d, start block %lld, locked %d\n", ++ i, msblk->fragment[i].block, ++ msblk->fragment[i].locked); ++ mutex_unlock(&msblk->fragment_mutex); ++ break; ++ } ++ ++ msblk->fragment[i].locked++; ++ mutex_unlock(&msblk->fragment_mutex); ++ TRACE("Got fragment %d, start block %lld, locked %d\n", i, ++ msblk->fragment[i].block, ++ msblk->fragment[i].locked); ++ break; ++ } ++ ++ return &msblk->fragment[i]; ++ ++out: ++ return NULL; ++} ++ ++ ++static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, ++ struct squashfs_base_inode_header *inodeb) ++{ ++ i->i_ino = inodeb->inode_number; ++ i->i_mtime.tv_sec = inodeb->mtime; ++ i->i_atime.tv_sec = inodeb->mtime; ++ i->i_ctime.tv_sec = inodeb->mtime; ++ i->i_uid = msblk->uid[inodeb->uid]; ++ i->i_mode = inodeb->mode; ++ i->i_size = 0; ++ if (inodeb->guid == SQUASHFS_GUIDS) ++ i->i_gid = i->i_uid; ++ else ++ i->i_gid = msblk->guid[inodeb->guid]; ++} ++ ++ ++static squashfs_inode_t squashfs_inode_lookup(struct super_block *s, int ino) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ long long start = msblk->inode_lookup_table[SQUASHFS_LOOKUP_BLOCK(ino - 1)]; ++ int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino - 1); ++ squashfs_inode_t inode; ++ ++ TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino); ++ ++ if (msblk->swap) { ++ squashfs_inode_t sinode; ++ ++ if (!squashfs_get_cached_block(s, (char *) &sinode, start, offset, ++ sizeof(sinode), &start, &offset)) ++ goto out; ++ SQUASHFS_SWAP_INODE_T((&inode), &sinode); ++ } else if (!squashfs_get_cached_block(s, (char *) &inode, start, offset, ++ sizeof(inode), &start, &offset)) ++ goto out; ++ ++ TRACE("squashfs_inode_lookup, inode = 0x%llx\n", inode); ++ ++ return inode; ++ ++out: ++ return SQUASHFS_INVALID_BLK; ++} ++ ++ ++static void vfs_read_inode(struct inode *i) ++{ ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino); ++ ++ TRACE("Entered vfs_read_inode\n"); ++ ++ if(inode != SQUASHFS_INVALID_BLK) ++ (msblk->read_inode)(i, inode); ++} ++ ++ ++static struct dentry *squashfs_get_parent(struct dentry *child) ++{ ++ struct inode *i = child->d_inode; ++ struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); ++ struct dentry *rv; ++ ++ TRACE("Entered squashfs_get_parent\n"); ++ ++ if(parent == NULL) { ++ rv = ERR_PTR(-EACCES); ++ goto out; ++ } ++ ++ rv = d_alloc_anon(parent); ++ if(rv == NULL) ++ rv = ERR_PTR(-ENOMEM); ++ ++out: ++ return rv; ++} ++ ++ ++SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct inode *i = iget_locked(s, inode_number); ++ ++ TRACE("Entered squashfs_iget\n"); ++ ++ if(i && (i->i_state & I_NEW)) { ++ (msblk->read_inode)(i, inode); ++ unlock_new_inode(i); ++ } ++ ++ return i; ++} ++ ++ ++static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode) ++{ ++ struct super_block *s = i->i_sb; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long block = SQUASHFS_INODE_BLK(inode) + ++ sblk->inode_table_start; ++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); ++ long long next_block; ++ unsigned int next_offset; ++ union squashfs_inode_header id, sid; ++ struct squashfs_base_inode_header *inodeb = &id.base, ++ *sinodeb = &sid.base; ++ ++ TRACE("Entered squashfs_read_inode\n"); ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, ++ offset, sizeof(*sinodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, ++ sizeof(*sinodeb)); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) inodeb, block, ++ offset, sizeof(*inodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ squashfs_new_inode(msblk, i, inodeb); ++ ++ switch(inodeb->inode_type) { ++ case SQUASHFS_FILE_TYPE: { ++ unsigned int frag_size; ++ long long frag_blk; ++ struct squashfs_reg_inode_header *inodep = &id.reg; ++ struct squashfs_reg_inode_header *sinodep = &sid.reg; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ i->i_nlink = 1; ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %llx, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_LREG_TYPE: { ++ unsigned int frag_size; ++ long long frag_blk; ++ struct squashfs_lreg_inode_header *inodep = &id.lreg; ++ struct squashfs_lreg_inode_header *sinodep = &sid.lreg; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %llx, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_DIR_TYPE: { ++ struct squashfs_dir_inode_header *inodep = &id.dir; ++ struct squashfs_dir_inode_header *sinodep = &sid.dir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops; ++ i->i_fop = &squashfs_dir_ops; ++ i->i_mode |= S_IFDIR; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = 0; ++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; ++ ++ TRACE("Directory inode %x:%x, start_block %x, offset " ++ "%x\n", SQUASHFS_INODE_BLK(inode), ++ offset, inodep->start_block, ++ inodep->offset); ++ break; ++ } ++ case SQUASHFS_LDIR_TYPE: { ++ struct squashfs_ldir_inode_header *inodep = &id.ldir; ++ struct squashfs_ldir_inode_header *sinodep = &sid.ldir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops; ++ i->i_fop = &squashfs_dir_ops; ++ i->i_mode |= S_IFDIR; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; ++ SQUASHFS_I(i)->u.s2.directory_index_offset = ++ next_offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = ++ inodep->i_count; ++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; ++ ++ TRACE("Long directory inode %x:%x, start_block %x, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, inodep->offset); ++ break; ++ } ++ case SQUASHFS_SYMLINK_TYPE: { ++ struct squashfs_symlink_inode_header *inodep = ++ &id.symlink; ++ struct squashfs_symlink_inode_header *sinodep = ++ &sid.symlink; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->symlink_size; ++ i->i_op = &page_symlink_inode_operations; ++ i->i_data.a_ops = &squashfs_symlink_aops; ++ i->i_mode |= S_IFLNK; ++ SQUASHFS_I(i)->start_block = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ ++ TRACE("Symbolic link inode %x:%x, start_block %llx, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ next_block, next_offset); ++ break; ++ } ++ case SQUASHFS_BLKDEV_TYPE: ++ case SQUASHFS_CHRDEV_TYPE: { ++ struct squashfs_dev_inode_header *inodep = &id.dev; ++ struct squashfs_dev_inode_header *sinodep = &sid.dev; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_mode |= (inodeb->inode_type == ++ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : ++ S_IFBLK; ++ init_special_inode(i, i->i_mode, ++ old_decode_dev(inodep->rdev)); ++ ++ TRACE("Device inode %x:%x, rdev %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->rdev); ++ break; ++ } ++ case SQUASHFS_FIFO_TYPE: ++ case SQUASHFS_SOCKET_TYPE: { ++ struct squashfs_ipc_inode_header *inodep = &id.ipc; ++ struct squashfs_ipc_inode_header *sinodep = &sid.ipc; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) ++ ? S_IFIFO : S_IFSOCK; ++ init_special_inode(i, i->i_mode, 0); ++ break; ++ } ++ default: ++ ERROR("Unknown inode type %d in squashfs_iget!\n", ++ inodeb->inode_type); ++ goto failed_read1; ++ } ++ ++ return 1; ++ ++failed_read: ++ ERROR("Unable to read inode [%llx:%x]\n", block, offset); ++ ++failed_read1: ++ make_bad_inode(i); ++ return 0; ++} ++ ++ ++static int read_inode_lookup_table(struct super_block *s) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned int length = SQUASHFS_LOOKUP_BLOCK_BYTES(sblk->inodes); ++ ++ TRACE("In read_inode_lookup_table, length %d\n", length); ++ ++ /* Allocate inode lookup table */ ++ if (!(msblk->inode_lookup_table = kmalloc(length, GFP_KERNEL))) { ++ ERROR("Failed to allocate inode lookup table\n"); ++ return 0; ++ } ++ ++ if (!squashfs_read_data(s, (char *) msblk->inode_lookup_table, ++ sblk->lookup_table_start, length | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { ++ ERROR("unable to read inode lookup table\n"); ++ return 0; ++ } ++ ++ if (msblk->swap) { ++ int i; ++ long long block; ++ ++ for (i = 0; i < SQUASHFS_LOOKUP_BLOCKS(sblk->inodes); i++) { ++ SQUASHFS_SWAP_LOOKUP_BLOCKS((&block), ++ &msblk->inode_lookup_table[i], 1); ++ msblk->inode_lookup_table[i] = block; ++ } ++ } ++ ++ return 1; ++} ++ ++ ++static int read_fragment_index_table(struct super_block *s) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned int length = SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments); ++ ++ if(length == 0) ++ return 1; ++ ++ /* Allocate fragment index table */ ++ if (!(msblk->fragment_index = kmalloc(length, GFP_KERNEL))) { ++ ERROR("Failed to allocate fragment index table\n"); ++ return 0; ++ } ++ ++ if (!squashfs_read_data(s, (char *) msblk->fragment_index, ++ sblk->fragment_table_start, length | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { ++ ERROR("unable to read fragment index table\n"); ++ return 0; ++ } ++ ++ if (msblk->swap) { ++ int i; ++ long long fragment; ++ ++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); i++) { ++ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), ++ &msblk->fragment_index[i], 1); ++ msblk->fragment_index[i] = fragment; ++ } ++ } ++ ++ return 1; ++} ++ ++ ++static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) ++{ ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ msblk->read_inode = squashfs_read_inode; ++ msblk->read_blocklist = read_blocklist; ++ msblk->read_fragment_index_table = read_fragment_index_table; ++ ++ if (sblk->s_major == 1) { ++ if (!squashfs_1_0_supported(msblk)) { ++ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " ++ "are unsupported\n"); ++ SERROR("Please recompile with " ++ "Squashfs 1.0 support enabled\n"); ++ return 0; ++ } ++ } else if (sblk->s_major == 2) { ++ if (!squashfs_2_0_supported(msblk)) { ++ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " ++ "are unsupported\n"); ++ SERROR("Please recompile with " ++ "Squashfs 2.0 support enabled\n"); ++ return 0; ++ } ++ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > ++ SQUASHFS_MINOR) { ++ SERROR("Major/Minor mismatch, trying to mount newer %d.%d " ++ "filesystem\n", sblk->s_major, sblk->s_minor); ++ SERROR("Please update your kernel\n"); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++ ++static int squashfs_fill_super(struct super_block *s, void *data, int silent) ++{ ++ struct squashfs_sb_info *msblk; ++ struct squashfs_super_block *sblk; ++ int i; ++ char b[BDEVNAME_SIZE]; ++ struct inode *root; ++ ++ TRACE("Entered squashfs_read_superblock\n"); ++ ++ if (!(s->s_fs_info = kmalloc(sizeof(struct squashfs_sb_info), ++ GFP_KERNEL))) { ++ ERROR("Failed to allocate superblock\n"); ++ goto failure; ++ } ++ memset(s->s_fs_info, 0, sizeof(struct squashfs_sb_info)); ++ msblk = s->s_fs_info; ++ if (!(msblk->stream.workspace = vmalloc(zlib_inflate_workspacesize()))) { ++ ERROR("Failed to allocate zlib workspace\n"); ++ goto failure; ++ } ++ sblk = &msblk->sblk; ++ ++ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); ++ msblk->devblksize_log2 = ffz(~msblk->devblksize); ++ ++ mutex_init(&msblk->read_data_mutex); ++ mutex_init(&msblk->read_page_mutex); ++ mutex_init(&msblk->block_cache_mutex); ++ mutex_init(&msblk->fragment_mutex); ++ mutex_init(&msblk->meta_index_mutex); ++ ++ init_waitqueue_head(&msblk->waitq); ++ init_waitqueue_head(&msblk->fragment_wait_queue); ++ ++ sblk->bytes_used = sizeof(struct squashfs_super_block); ++ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, ++ sizeof(struct squashfs_super_block) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, sizeof(struct squashfs_super_block))) { ++ SERROR("unable to read superblock\n"); ++ goto failed_mount; ++ } ++ ++ /* Check it is a SQUASHFS superblock */ ++ msblk->swap = 0; ++ if ((s->s_magic = sblk->s_magic) != SQUASHFS_MAGIC) { ++ if (sblk->s_magic == SQUASHFS_MAGIC_SWAP) { ++ struct squashfs_super_block ssblk; ++ ++ WARNING("Mounting a different endian SQUASHFS " ++ "filesystem on %s\n", bdevname(s->s_bdev, b)); ++ ++ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); ++ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); ++ msblk->swap = 1; ++ } else { ++ SERROR("Can't find a SQUASHFS superblock on %s\n", ++ bdevname(s->s_bdev, b)); ++ goto failed_mount; ++ } ++ } ++ ++ /* Check the MAJOR & MINOR versions */ ++ if(!supported_squashfs_filesystem(msblk, silent)) ++ goto failed_mount; ++ ++ /* Check the filesystem does not extend beyond the end of the ++ block device */ ++ if(sblk->bytes_used < 0 || sblk->bytes_used > i_size_read(s->s_bdev->bd_inode)) ++ goto failed_mount; ++ ++ /* Check the root inode for sanity */ ++ if (SQUASHFS_INODE_OFFSET(sblk->root_inode) > SQUASHFS_METADATA_SIZE) ++ goto failed_mount; ++ ++ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); ++ TRACE("Inodes are %scompressed\n", ++ SQUASHFS_UNCOMPRESSED_INODES ++ (sblk->flags) ? "un" : ""); ++ TRACE("Data is %scompressed\n", ++ SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) ++ ? "un" : ""); ++ TRACE("Check data is %s present in the filesystem\n", ++ SQUASHFS_CHECK_DATA(sblk->flags) ? ++ "" : "not"); ++ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); ++ TRACE("Block size %d\n", sblk->block_size); ++ TRACE("Number of inodes %d\n", sblk->inodes); ++ if (sblk->s_major > 1) ++ TRACE("Number of fragments %d\n", sblk->fragments); ++ TRACE("Number of uids %d\n", sblk->no_uids); ++ TRACE("Number of gids %d\n", sblk->no_guids); ++ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); ++ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); ++ if (sblk->s_major > 1) ++ TRACE("sblk->fragment_table_start %llx\n", ++ sblk->fragment_table_start); ++ TRACE("sblk->uid_start %llx\n", sblk->uid_start); ++ ++ s->s_flags |= MS_RDONLY; ++ s->s_op = &squashfs_super_ops; ++ ++ /* Init inode_table block pointer array */ ++ if (!(msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) * ++ SQUASHFS_CACHED_BLKS, GFP_KERNEL))) { ++ ERROR("Failed to allocate block cache\n"); ++ goto failed_mount; ++ } ++ ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; ++ ++ msblk->next_cache = 0; ++ ++ /* Allocate read_page block */ ++ if (!(msblk->read_page = kmalloc(sblk->block_size, GFP_KERNEL))) { ++ ERROR("Failed to allocate read_page block\n"); ++ goto failed_mount; ++ } ++ ++ /* Allocate uid and gid tables */ ++ if (!(msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int), GFP_KERNEL))) { ++ ERROR("Failed to allocate uid/gid table\n"); ++ goto failed_mount; ++ } ++ msblk->guid = msblk->uid + sblk->no_uids; ++ ++ if (msblk->swap) { ++ unsigned int suid[sblk->no_uids + sblk->no_guids]; ++ ++ if (!squashfs_read_data(s, (char *) &suid, sblk->uid_start, ++ ((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int)) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { ++ ERROR("unable to read uid/gid table\n"); ++ goto failed_mount; ++ } ++ ++ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + ++ sblk->no_guids), (sizeof(unsigned int) * 8)); ++ } else ++ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, ++ ((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int)) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { ++ ERROR("unable to read uid/gid table\n"); ++ goto failed_mount; ++ } ++ ++ ++ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) ++ goto allocate_root; ++ ++ if (!(msblk->fragment = kmalloc(sizeof(struct squashfs_fragment_cache) * ++ SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL))) { ++ ERROR("Failed to allocate fragment block cache\n"); ++ goto failed_mount; ++ } ++ ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) { ++ msblk->fragment[i].locked = 0; ++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; ++ msblk->fragment[i].data = NULL; ++ } ++ ++ msblk->next_fragment = 0; ++ ++ /* Allocate and read fragment index table */ ++ if (msblk->read_fragment_index_table(s) == 0) ++ goto failed_mount; ++ ++ if(sblk->s_major < 3 || sblk->lookup_table_start == SQUASHFS_INVALID_BLK) ++ goto allocate_root; ++ ++ /* Allocate and read inode lookup table */ ++ if (read_inode_lookup_table(s) == 0) ++ goto failed_mount; ++ ++ s->s_op = &squashfs_export_super_ops; ++ s->s_export_op = &squashfs_export_ops; ++ ++allocate_root: ++ root = new_inode(s); ++ if ((msblk->read_inode)(root, sblk->root_inode) == 0) ++ goto failed_mount; ++ insert_inode_hash(root); ++ ++ if ((s->s_root = d_alloc_root(root)) == NULL) { ++ ERROR("Root inode create failed\n"); ++ iput(root); ++ goto failed_mount; ++ } ++ ++ TRACE("Leaving squashfs_read_super\n"); ++ return 0; ++ ++failed_mount: ++ kfree(msblk->inode_lookup_table); ++ kfree(msblk->fragment_index); ++ kfree(msblk->fragment); ++ kfree(msblk->uid); ++ kfree(msblk->read_page); ++ kfree(msblk->block_cache); ++ kfree(msblk->fragment_index_2); ++ vfree(msblk->stream.workspace); ++ kfree(s->s_fs_info); ++ s->s_fs_info = NULL; ++ return -EINVAL; ++ ++failure: ++ return -ENOMEM; ++} ++ ++ ++static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) ++{ ++ struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ TRACE("Entered squashfs_statfs\n"); ++ ++ buf->f_type = SQUASHFS_MAGIC; ++ buf->f_bsize = sblk->block_size; ++ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; ++ buf->f_bfree = buf->f_bavail = 0; ++ buf->f_files = sblk->inodes; ++ buf->f_ffree = 0; ++ buf->f_namelen = SQUASHFS_NAME_LEN; ++ ++ return 0; ++} ++ ++ ++static int squashfs_symlink_readpage(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ int index = page->index << PAGE_CACHE_SHIFT, length, bytes; ++ long long block = SQUASHFS_I(inode)->start_block; ++ int offset = SQUASHFS_I(inode)->offset; ++ void *pageaddr = kmap(page); ++ ++ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " ++ "%llx, offset %x\n", page->index, ++ SQUASHFS_I(inode)->start_block, ++ SQUASHFS_I(inode)->offset); ++ ++ for (length = 0; length < index; length += bytes) { ++ if (!(bytes = squashfs_get_cached_block(inode->i_sb, NULL, ++ block, offset, PAGE_CACHE_SIZE, &block, ++ &offset))) { ++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, ++ offset); ++ goto skip_read; ++ } ++ } ++ ++ if (length != index) { ++ ERROR("(squashfs_symlink_readpage) length != index\n"); ++ bytes = 0; ++ goto skip_read; ++ } ++ ++ bytes = (i_size_read(inode) - length) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : ++ i_size_read(inode) - length; ++ ++ if (!(bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, ++ offset, bytes, &block, &offset))) ++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); ++ ++skip_read: ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap(page); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ return 0; ++} ++ ++ ++struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) ++{ ++ struct meta_index *meta = NULL; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ int i; ++ ++ mutex_lock(&msblk->meta_index_mutex); ++ ++ TRACE("locate_meta_index: index %d, offset %d\n", index, offset); ++ ++ if(msblk->meta_index == NULL) ++ goto not_allocated; ++ ++ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) ++ if (msblk->meta_index[i].inode_number == inode->i_ino && ++ msblk->meta_index[i].offset >= offset && ++ msblk->meta_index[i].offset <= index && ++ msblk->meta_index[i].locked == 0) { ++ TRACE("locate_meta_index: entry %d, offset %d\n", i, ++ msblk->meta_index[i].offset); ++ meta = &msblk->meta_index[i]; ++ offset = meta->offset; ++ } ++ ++ if (meta) ++ meta->locked = 1; ++ ++not_allocated: ++ mutex_unlock(&msblk->meta_index_mutex); ++ ++ return meta; ++} ++ ++ ++struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) ++{ ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct meta_index *meta = NULL; ++ int i; ++ ++ mutex_lock(&msblk->meta_index_mutex); ++ ++ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); ++ ++ if(msblk->meta_index == NULL) { ++ if (!(msblk->meta_index = kmalloc(sizeof(struct meta_index) * ++ SQUASHFS_META_NUMBER, GFP_KERNEL))) { ++ ERROR("Failed to allocate meta_index\n"); ++ goto failed; ++ } ++ for(i = 0; i < SQUASHFS_META_NUMBER; i++) { ++ msblk->meta_index[i].inode_number = 0; ++ msblk->meta_index[i].locked = 0; ++ } ++ msblk->next_meta_index = 0; ++ } ++ ++ for(i = SQUASHFS_META_NUMBER; i && ++ msblk->meta_index[msblk->next_meta_index].locked; i --) ++ msblk->next_meta_index = (msblk->next_meta_index + 1) % ++ SQUASHFS_META_NUMBER; ++ ++ if(i == 0) { ++ TRACE("empty_meta_index: failed!\n"); ++ goto failed; ++ } ++ ++ TRACE("empty_meta_index: returned meta entry %d, %p\n", ++ msblk->next_meta_index, ++ &msblk->meta_index[msblk->next_meta_index]); ++ ++ meta = &msblk->meta_index[msblk->next_meta_index]; ++ msblk->next_meta_index = (msblk->next_meta_index + 1) % ++ SQUASHFS_META_NUMBER; ++ ++ meta->inode_number = inode->i_ino; ++ meta->offset = offset; ++ meta->skip = skip; ++ meta->entries = 0; ++ meta->locked = 1; ++ ++failed: ++ mutex_unlock(&msblk->meta_index_mutex); ++ return meta; ++} ++ ++ ++void release_meta_index(struct inode *inode, struct meta_index *meta) ++{ ++ meta->locked = 0; ++ smp_mb(); ++} ++ ++ ++static int read_block_index(struct super_block *s, int blocks, char *block_list, ++ long long *start_block, int *offset) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ unsigned int *block_listp; ++ int block = 0; ++ ++ if (msblk->swap) { ++ char sblock_list[blocks << 2]; ++ ++ if (!squashfs_get_cached_block(s, sblock_list, *start_block, ++ *offset, blocks << 2, start_block, offset)) { ++ ERROR("Unable to read block list [%llx:%x]\n", ++ *start_block, *offset); ++ goto failure; ++ } ++ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), ++ ((unsigned int *)sblock_list), blocks); ++ } else ++ if (!squashfs_get_cached_block(s, block_list, *start_block, ++ *offset, blocks << 2, start_block, offset)) { ++ ERROR("Unable to read block list [%llx:%x]\n", ++ *start_block, *offset); ++ goto failure; ++ } ++ ++ for (block_listp = (unsigned int *) block_list; blocks; ++ block_listp++, blocks --) ++ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); ++ ++ return block; ++ ++failure: ++ return -1; ++} ++ ++ ++#define SIZE 256 ++ ++static inline int calculate_skip(int blocks) { ++ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); ++ return skip >= 7 ? 7 : skip + 1; ++} ++ ++ ++static int get_meta_index(struct inode *inode, int index, ++ long long *index_block, int *index_offset, ++ long long *data_block, char *block_list) ++{ ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); ++ int offset = 0; ++ struct meta_index *meta; ++ struct meta_entry *meta_entry; ++ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; ++ int cur_offset = SQUASHFS_I(inode)->offset; ++ long long cur_data_block = SQUASHFS_I(inode)->start_block; ++ int i; ++ ++ index /= SQUASHFS_META_INDEXES * skip; ++ ++ while ( offset < index ) { ++ meta = locate_meta_index(inode, index, offset + 1); ++ ++ if (meta == NULL) { ++ if ((meta = empty_meta_index(inode, offset + 1, ++ skip)) == NULL) ++ goto all_done; ++ } else { ++ if(meta->entries == 0) ++ goto failed; ++ offset = index < meta->offset + meta->entries ? index : ++ meta->offset + meta->entries - 1; ++ meta_entry = &meta->meta_entry[offset - meta->offset]; ++ cur_index_block = meta_entry->index_block + sblk->inode_table_start; ++ cur_offset = meta_entry->offset; ++ cur_data_block = meta_entry->data_block; ++ TRACE("get_meta_index: offset %d, meta->offset %d, " ++ "meta->entries %d\n", offset, meta->offset, ++ meta->entries); ++ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" ++ " data_block 0x%llx\n", cur_index_block, ++ cur_offset, cur_data_block); ++ } ++ ++ for (i = meta->offset + meta->entries; i <= index && ++ i < meta->offset + SQUASHFS_META_ENTRIES; i++) { ++ int blocks = skip * SQUASHFS_META_INDEXES; ++ ++ while (blocks) { ++ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : ++ blocks; ++ int res = read_block_index(inode->i_sb, block, ++ block_list, &cur_index_block, ++ &cur_offset); ++ ++ if (res == -1) ++ goto failed; ++ ++ cur_data_block += res; ++ blocks -= block; ++ } ++ ++ meta_entry = &meta->meta_entry[i - meta->offset]; ++ meta_entry->index_block = cur_index_block - sblk->inode_table_start; ++ meta_entry->offset = cur_offset; ++ meta_entry->data_block = cur_data_block; ++ meta->entries ++; ++ offset ++; ++ } ++ ++ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", ++ meta->offset, meta->entries); ++ ++ release_meta_index(inode, meta); ++ } ++ ++all_done: ++ *index_block = cur_index_block; ++ *index_offset = cur_offset; ++ *data_block = cur_data_block; ++ ++ return offset * SQUASHFS_META_INDEXES * skip; ++ ++failed: ++ release_meta_index(inode, meta); ++ return -1; ++} ++ ++ ++static long long read_blocklist(struct inode *inode, int index, ++ int readahead_blks, char *block_list, ++ unsigned short **block_p, unsigned int *bsize) ++{ ++ long long block_ptr; ++ int offset; ++ long long block; ++ int res = get_meta_index(inode, index, &block_ptr, &offset, &block, ++ block_list); ++ ++ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" ++ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, ++ block); ++ ++ if(res == -1) ++ goto failure; ++ ++ index -= res; ++ ++ while ( index ) { ++ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; ++ int res = read_block_index(inode->i_sb, blocks, block_list, ++ &block_ptr, &offset); ++ if (res == -1) ++ goto failure; ++ block += res; ++ index -= blocks; ++ } ++ ++ if (read_block_index(inode->i_sb, 1, block_list, ++ &block_ptr, &offset) == -1) ++ goto failure; ++ *bsize = *((unsigned int *) block_list); ++ ++ return block; ++ ++failure: ++ return 0; ++} ++ ++ ++static int squashfs_readpage(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned char *block_list; ++ long long block; ++ unsigned int bsize, i = 0, bytes = 0, byte_offset = 0; ++ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); ++ void *pageaddr; ++ struct squashfs_fragment_cache *fragment = NULL; ++ char *data_ptr = msblk->read_page; ++ ++ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; ++ int start_index = page->index & ~mask; ++ int end_index = start_index | mask; ++ ++ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", ++ page->index, ++ SQUASHFS_I(inode)->start_block); ++ ++ if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) { ++ ERROR("Failed to allocate block_list\n"); ++ goto skip_read; ++ } ++ ++ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> ++ PAGE_CACHE_SHIFT)) ++ goto skip_read; ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || index < (i_size_read(inode) >> ++ sblk->block_log)) { ++ if ((block = (msblk->read_blocklist)(inode, index, 1, ++ block_list, NULL, &bsize)) == 0) ++ goto skip_read; ++ ++ mutex_lock(&msblk->read_page_mutex); ++ ++ if (!(bytes = squashfs_read_data(inode->i_sb, msblk->read_page, ++ block, bsize, NULL, sblk->block_size))) { ++ ERROR("Unable to read page, block %llx, size %x\n", block, ++ bsize); ++ mutex_unlock(&msblk->read_page_mutex); ++ goto skip_read; ++ } ++ } else { ++ if ((fragment = get_cached_fragment(inode->i_sb, ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ SQUASHFS_I(inode)->u.s1.fragment_size)) ++ == NULL) { ++ ERROR("Unable to read page, block %llx, size %x\n", ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ (int) SQUASHFS_I(inode)-> ++ u.s1.fragment_size); ++ goto skip_read; ++ } ++ bytes = SQUASHFS_I(inode)->u.s1.fragment_offset + ++ (i_size_read(inode) & (sblk->block_size ++ - 1)); ++ byte_offset = SQUASHFS_I(inode)->u.s1.fragment_offset; ++ data_ptr = fragment->data; ++ } ++ ++ for (i = start_index; i <= end_index && byte_offset < bytes; ++ i++, byte_offset += PAGE_CACHE_SIZE) { ++ struct page *push_page; ++ int avail = (bytes - byte_offset) > PAGE_CACHE_SIZE ? ++ PAGE_CACHE_SIZE : bytes - byte_offset; ++ ++ TRACE("bytes %d, i %d, byte_offset %d, available_bytes %d\n", ++ bytes, i, byte_offset, avail); ++ ++ push_page = (i == page->index) ? page : ++ grab_cache_page_nowait(page->mapping, i); ++ ++ if (!push_page) ++ continue; ++ ++ if (PageUptodate(push_page)) ++ goto skip_page; ++ ++ pageaddr = kmap_atomic(push_page, KM_USER0); ++ memcpy(pageaddr, data_ptr + byte_offset, avail); ++ memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(push_page); ++ SetPageUptodate(push_page); ++skip_page: ++ unlock_page(push_page); ++ if(i != page->index) ++ page_cache_release(push_page); ++ } ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || index < (i_size_read(inode) >> ++ sblk->block_log)) ++ mutex_unlock(&msblk->read_page_mutex); ++ else ++ release_cached_fragment(msblk, fragment); ++ ++ kfree(block_list); ++ return 0; ++ ++skip_read: ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ kfree(block_list); ++ return 0; ++} ++ ++ ++static int squashfs_readpage4K(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned char *block_list; ++ long long block; ++ unsigned int bsize, bytes = 0; ++ void *pageaddr; ++ ++ TRACE("Entered squashfs_readpage4K, page index %lx, start block %llx\n", ++ page->index, ++ SQUASHFS_I(inode)->start_block); ++ ++ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> ++ PAGE_CACHE_SHIFT)) { ++ block_list = NULL; ++ goto skip_read; ++ } ++ ++ if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) { ++ ERROR("Failed to allocate block_list\n"); ++ goto skip_read; ++ } ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || page->index < (i_size_read(inode) >> ++ sblk->block_log)) { ++ block = (msblk->read_blocklist)(inode, page->index, 1, ++ block_list, NULL, &bsize); ++ if(block == 0) ++ goto skip_read; ++ ++ mutex_lock(&msblk->read_page_mutex); ++ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, ++ bsize, NULL, sblk->block_size); ++ if (bytes) { ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memcpy(pageaddr, msblk->read_page, bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ } else ++ ERROR("Unable to read page, block %llx, size %x\n", ++ block, bsize); ++ mutex_unlock(&msblk->read_page_mutex); ++ } else { ++ struct squashfs_fragment_cache *fragment = ++ get_cached_fragment(inode->i_sb, ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ SQUASHFS_I(inode)-> u.s1.fragment_size); ++ if (fragment) { ++ bytes = i_size_read(inode) & (sblk->block_size - 1); ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memcpy(pageaddr, fragment->data + SQUASHFS_I(inode)-> ++ u.s1.fragment_offset, bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ release_cached_fragment(msblk, fragment); ++ } else ++ ERROR("Unable to read page, block %llx, size %x\n", ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, (int) ++ SQUASHFS_I(inode)-> u.s1.fragment_size); ++ } ++ ++skip_read: ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ kfree(block_list); ++ return 0; ++} ++ ++ ++static int get_dir_index_using_offset(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ long long f_pos) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index index; ++ ++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", ++ i_count, (unsigned int) f_pos); ++ ++ f_pos =- 3; ++ if (f_pos == 0) ++ goto finish; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) &index, ++ index_start, index_offset, ++ sizeof(index), &index_start, ++ &index_offset); ++ ++ if (index.index > f_pos) ++ break; ++ ++ squashfs_get_cached_block(s, NULL, index_start, index_offset, ++ index.size + 1, &index_start, ++ &index_offset); ++ ++ length = index.index; ++ *next_block = index.start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ ++finish: ++ return length + 3; ++} ++ ++ ++static int get_dir_index_using_name(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ const char *name, int size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index *index; ++ char *str; ++ ++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); ++ ++ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + ++ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_index\n"); ++ goto failure; ++ } ++ ++ index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1); ++ strncpy(str, name, size); ++ str[size] = '\0'; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX(index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) index, ++ index_start, index_offset, ++ sizeof(struct squashfs_dir_index), ++ &index_start, &index_offset); ++ ++ squashfs_get_cached_block(s, index->name, index_start, ++ index_offset, index->size + 1, ++ &index_start, &index_offset); ++ ++ index->name[index->size + 1] = '\0'; ++ ++ if (strcmp(index->name, str) > 0) ++ break; ++ ++ length = index->index; ++ *next_block = index->start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ kfree(str); ++failure: ++ return length + 3; ++} ++ ++ ++static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) ++{ ++ struct inode *i = file->f_dentry->d_inode; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header dirh; ++ struct squashfs_dir_entry *dire; ++ ++ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); ++ ++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + ++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_entry\n"); ++ goto finish; ++ } ++ ++ while(file->f_pos < 3) { ++ char *name; ++ int size, i_ino; ++ ++ if(file->f_pos == 0) { ++ name = "."; ++ size = 1; ++ i_ino = i->i_ino; ++ } else { ++ name = ".."; ++ size = 2; ++ i_ino = SQUASHFS_I(i)->u.s2.parent_inode; ++ } ++ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", ++ (unsigned int) dirent, name, size, (int) ++ file->f_pos, i_ino, ++ squashfs_filetype_table[1]); ++ ++ if (filldir(dirent, name, size, ++ file->f_pos, i_ino, ++ squashfs_filetype_table[1]) < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos += size; ++ } ++ ++ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, ++ file->f_pos); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header sdirh; ++ ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block, next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block, next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, ++ dire->size + 1, &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (file->f_pos >= length) ++ continue; ++ ++ dire->name[dire->size + 1] = '\0'; ++ ++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", ++ (unsigned int) dirent, dire->name, ++ dire->size + 1, (int) file->f_pos, ++ dirh.start_block, dire->offset, ++ dirh.inode_number + dire->inode_number, ++ squashfs_filetype_table[dire->type]); ++ ++ if (filldir(dirent, dire->name, dire->size + 1, ++ file->f_pos, ++ dirh.inode_number + dire->inode_number, ++ squashfs_filetype_table[dire->type]) ++ < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos = length; ++ } ++ } ++ ++finish: ++ kfree(dire); ++ return 0; ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ kfree(dire); ++ return 0; ++} ++ ++ ++static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ const unsigned char *name = dentry->d_name.name; ++ int len = dentry->d_name.len; ++ struct inode *inode = NULL; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header dirh; ++ struct squashfs_dir_entry *dire; ++ ++ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); ++ ++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + ++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_entry\n"); ++ goto exit_lookup; ++ } ++ ++ if (len > SQUASHFS_NAME_LEN) ++ goto exit_lookup; ++ ++ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, name, ++ len); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header sdirh; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block,next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block,next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, dire->size + 1, ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (name[0] < dire->name[0]) ++ goto exit_lookup; ++ ++ if ((len == dire->size + 1) && !strncmp(name, dire->name, len)) { ++ squashfs_inode_t ino = SQUASHFS_MKINODE(dirh.start_block, ++ dire->offset); ++ ++ TRACE("calling squashfs_iget for directory " ++ "entry %s, inode %x:%x, %d\n", name, ++ dirh.start_block, dire->offset, ++ dirh.inode_number + dire->inode_number); ++ ++ inode = squashfs_iget(i->i_sb, ino, dirh.inode_number + dire->inode_number); ++ ++ goto exit_lookup; ++ } ++ } ++ } ++ ++exit_lookup: ++ kfree(dire); ++ if (inode) ++ return d_splice_alias(inode, dentry); ++ d_add(dentry, inode); ++ return ERR_PTR(0); ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ goto exit_lookup; ++} ++ ++ ++static int squashfs_remount(struct super_block *s, int *flags, char *data) ++{ ++ *flags |= MS_RDONLY; ++ return 0; ++} ++ ++ ++static void squashfs_put_super(struct super_block *s) ++{ ++ int i; ++ ++ if (s->s_fs_info) { ++ struct squashfs_sb_info *sbi = s->s_fs_info; ++ if (sbi->block_cache) ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ if (sbi->block_cache[i].block != ++ SQUASHFS_INVALID_BLK) ++ kfree(sbi->block_cache[i].data); ++ if (sbi->fragment) ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) ++ SQUASHFS_FREE(sbi->fragment[i].data); ++ kfree(sbi->fragment); ++ kfree(sbi->block_cache); ++ kfree(sbi->read_page); ++ kfree(sbi->uid); ++ kfree(sbi->fragment_index); ++ kfree(sbi->fragment_index_2); ++ kfree(sbi->meta_index); ++ vfree(sbi->stream.workspace); ++ kfree(s->s_fs_info); ++ s->s_fs_info = NULL; ++ } ++} ++ ++ ++static int squashfs_get_sb(struct file_system_type *fs_type, int flags, ++ const char *dev_name, void *data, ++ struct vfsmount *mnt) ++{ ++ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, ++ mnt); ++} ++ ++ ++static int __init init_squashfs_fs(void) ++{ ++ int err = init_inodecache(); ++ if (err) ++ goto out; ++ ++ printk(KERN_INFO "squashfs: version 3.2-r2 (2007/01/15) " ++ "Phillip Lougher\n"); ++ ++ if ((err = register_filesystem(&squashfs_fs_type))) ++ destroy_inodecache(); ++ ++out: ++ return err; ++} ++ ++ ++static void __exit exit_squashfs_fs(void) ++{ ++ unregister_filesystem(&squashfs_fs_type); ++ destroy_inodecache(); ++} ++ ++ ++static struct kmem_cache * squashfs_inode_cachep; ++ ++ ++static struct inode *squashfs_alloc_inode(struct super_block *sb) ++{ ++ struct squashfs_inode_info *ei; ++ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); ++ if (!ei) ++ return NULL; ++ return &ei->vfs_inode; ++} ++ ++ ++static void squashfs_destroy_inode(struct inode *inode) ++{ ++ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); ++} ++ ++ ++static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) ++{ ++ struct squashfs_inode_info *ei = foo; ++ ++ if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == ++ SLAB_CTOR_CONSTRUCTOR) ++ inode_init_once(&ei->vfs_inode); ++} ++ ++ ++static int __init init_inodecache(void) ++{ ++ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", ++ sizeof(struct squashfs_inode_info), ++ 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, ++ init_once, NULL); ++ if (squashfs_inode_cachep == NULL) ++ return -ENOMEM; ++ return 0; ++} ++ ++ ++static void destroy_inodecache(void) ++{ ++ kmem_cache_destroy(squashfs_inode_cachep); ++} ++ ++ ++module_init(init_squashfs_fs); ++module_exit(exit_squashfs_fs); ++MODULE_DESCRIPTION("squashfs 3.2-r2, a compressed read-only filesystem"); ++MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); ++MODULE_LICENSE("GPL"); +--- /dev/null ++++ linux-2.6.24-rc1/fs/squashfs/Makefile +@@ -0,0 +1,7 @@ ++# ++# Makefile for the linux squashfs routines. ++# ++ ++obj-$(CONFIG_SQUASHFS) += squashfs.o ++squashfs-y += inode.o ++squashfs-y += squashfs2_0.o +--- /dev/null ++++ linux-2.6.24-rc1/fs/squashfs/squashfs2_0.c +@@ -0,0 +1,742 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs2_0.c ++ */ ++ ++#include <linux/squashfs_fs.h> ++#include <linux/module.h> ++#include <linux/zlib.h> ++#include <linux/fs.h> ++#include <linux/squashfs_fs_sb.h> ++#include <linux/squashfs_fs_i.h> ++ ++#include "squashfs.h" ++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); ++static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, ++ struct nameidata *); ++ ++static struct file_operations squashfs_dir_ops_2 = { ++ .read = generic_read_dir, ++ .readdir = squashfs_readdir_2 ++}; ++ ++static struct inode_operations squashfs_dir_inode_ops_2 = { ++ .lookup = squashfs_lookup_2 ++}; ++ ++static unsigned char squashfs_filetype_table[] = { ++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK ++}; ++ ++static int read_fragment_index_table_2(struct super_block *s) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 ++ (sblk->fragments), GFP_KERNEL))) { ++ ERROR("Failed to allocate uid/gid table\n"); ++ return 0; ++ } ++ ++ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && ++ !squashfs_read_data(s, (char *) ++ msblk->fragment_index_2, ++ sblk->fragment_table_start, ++ SQUASHFS_FRAGMENT_INDEX_BYTES_2 ++ (sblk->fragments) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments))) { ++ ERROR("unable to read fragment index table\n"); ++ return 0; ++ } ++ ++ if (msblk->swap) { ++ int i; ++ unsigned int fragment; ++ ++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); ++ i++) { ++ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), ++ &msblk->fragment_index_2[i], 1); ++ msblk->fragment_index_2[i] = fragment; ++ } ++ } ++ ++ return 1; ++} ++ ++ ++static int get_fragment_location_2(struct super_block *s, unsigned int fragment, ++ long long *fragment_start_block, ++ unsigned int *fragment_size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ long long start_block = ++ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; ++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); ++ struct squashfs_fragment_entry_2 fragment_entry; ++ ++ if (msblk->swap) { ++ struct squashfs_fragment_entry_2 sfragment_entry; ++ ++ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, ++ start_block, offset, ++ sizeof(sfragment_entry), &start_block, ++ &offset)) ++ goto out; ++ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, ++ start_block, offset, ++ sizeof(fragment_entry), &start_block, ++ &offset)) ++ goto out; ++ ++ *fragment_start_block = fragment_entry.start_block; ++ *fragment_size = fragment_entry.size; ++ ++ return 1; ++ ++out: ++ return 0; ++} ++ ++ ++static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, ++ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) ++{ ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ i->i_ino = ino; ++ i->i_mtime.tv_sec = sblk->mkfs_time; ++ i->i_atime.tv_sec = sblk->mkfs_time; ++ i->i_ctime.tv_sec = sblk->mkfs_time; ++ i->i_uid = msblk->uid[inodeb->uid]; ++ i->i_mode = inodeb->mode; ++ i->i_nlink = 1; ++ i->i_size = 0; ++ if (inodeb->guid == SQUASHFS_GUIDS) ++ i->i_gid = i->i_uid; ++ else ++ i->i_gid = msblk->guid[inodeb->guid]; ++} ++ ++ ++static int squashfs_read_inode_2(struct inode *i, squashfs_inode_t inode) ++{ ++ struct super_block *s = i->i_sb; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned int block = SQUASHFS_INODE_BLK(inode) + ++ sblk->inode_table_start; ++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); ++ unsigned int ino = i->i_ino; ++ long long next_block; ++ unsigned int next_offset; ++ union squashfs_inode_header_2 id, sid; ++ struct squashfs_base_inode_header_2 *inodeb = &id.base, ++ *sinodeb = &sid.base; ++ ++ TRACE("Entered squashfs_iget\n"); ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, ++ offset, sizeof(*sinodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, ++ sizeof(*sinodeb)); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) inodeb, block, ++ offset, sizeof(*inodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ squashfs_new_inode(msblk, i, inodeb, ino); ++ ++ switch(inodeb->inode_type) { ++ case SQUASHFS_FILE_TYPE: { ++ struct squashfs_reg_inode_header_2 *inodep = &id.reg; ++ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; ++ long long frag_blk; ++ unsigned int frag_size = 0; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location_2(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %x, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_DIR_TYPE: { ++ struct squashfs_dir_inode_header_2 *inodep = &id.dir; ++ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops_2; ++ i->i_fop = &squashfs_dir_ops_2; ++ i->i_mode |= S_IFDIR; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = 0; ++ SQUASHFS_I(i)->u.s2.parent_inode = 0; ++ ++ TRACE("Directory inode %x:%x, start_block %x, offset " ++ "%x\n", SQUASHFS_INODE_BLK(inode), ++ offset, inodep->start_block, ++ inodep->offset); ++ break; ++ } ++ case SQUASHFS_LDIR_TYPE: { ++ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; ++ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops_2; ++ i->i_fop = &squashfs_dir_ops_2; ++ i->i_mode |= S_IFDIR; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; ++ SQUASHFS_I(i)->u.s2.directory_index_offset = ++ next_offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = ++ inodep->i_count; ++ SQUASHFS_I(i)->u.s2.parent_inode = 0; ++ ++ TRACE("Long directory inode %x:%x, start_block %x, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, inodep->offset); ++ break; ++ } ++ case SQUASHFS_SYMLINK_TYPE: { ++ struct squashfs_symlink_inode_header_2 *inodep = ++ &id.symlink; ++ struct squashfs_symlink_inode_header_2 *sinodep = ++ &sid.symlink; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_size = inodep->symlink_size; ++ i->i_op = &page_symlink_inode_operations; ++ i->i_data.a_ops = &squashfs_symlink_aops; ++ i->i_mode |= S_IFLNK; ++ SQUASHFS_I(i)->start_block = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ ++ TRACE("Symbolic link inode %x:%x, start_block %llx, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ next_block, next_offset); ++ break; ++ } ++ case SQUASHFS_BLKDEV_TYPE: ++ case SQUASHFS_CHRDEV_TYPE: { ++ struct squashfs_dev_inode_header_2 *inodep = &id.dev; ++ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ i->i_mode |= (inodeb->inode_type == ++ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : ++ S_IFBLK; ++ init_special_inode(i, i->i_mode, ++ old_decode_dev(inodep->rdev)); ++ ++ TRACE("Device inode %x:%x, rdev %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->rdev); ++ break; ++ } ++ case SQUASHFS_FIFO_TYPE: ++ case SQUASHFS_SOCKET_TYPE: { ++ ++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) ++ ? S_IFIFO : S_IFSOCK; ++ init_special_inode(i, i->i_mode, 0); ++ break; ++ } ++ default: ++ ERROR("Unknown inode type %d in squashfs_iget!\n", ++ inodeb->inode_type); ++ goto failed_read1; ++ } ++ ++ return 1; ++ ++failed_read: ++ ERROR("Unable to read inode [%x:%x]\n", block, offset); ++ ++failed_read1: ++ return 0; ++} ++ ++ ++static int get_dir_index_using_offset(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ long long f_pos) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index_2 index; ++ ++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", ++ i_count, (unsigned int) f_pos); ++ ++ if (f_pos == 0) ++ goto finish; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index_2 sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) &index, ++ index_start, index_offset, ++ sizeof(index), &index_start, ++ &index_offset); ++ ++ if (index.index > f_pos) ++ break; ++ ++ squashfs_get_cached_block(s, NULL, index_start, index_offset, ++ index.size + 1, &index_start, ++ &index_offset); ++ ++ length = index.index; ++ *next_block = index.start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ ++finish: ++ return length; ++} ++ ++ ++static int get_dir_index_using_name(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ const char *name, int size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index_2 *index; ++ char *str; ++ ++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); ++ ++ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + ++ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_index\n"); ++ goto failure; ++ } ++ ++ index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1); ++ strncpy(str, name, size); ++ str[size] = '\0'; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index_2 sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) index, ++ index_start, index_offset, ++ sizeof(struct squashfs_dir_index_2), ++ &index_start, &index_offset); ++ ++ squashfs_get_cached_block(s, index->name, index_start, ++ index_offset, index->size + 1, ++ &index_start, &index_offset); ++ ++ index->name[index->size + 1] = '\0'; ++ ++ if (strcmp(index->name, str) > 0) ++ break; ++ ++ length = index->index; ++ *next_block = index->start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ kfree(str); ++failure: ++ return length; ++} ++ ++ ++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) ++{ ++ struct inode *i = file->f_dentry->d_inode; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header_2 dirh; ++ struct squashfs_dir_entry_2 *dire; ++ ++ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); ++ ++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + ++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_entry\n"); ++ goto finish; ++ } ++ ++ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, ++ file->f_pos); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header_2 sdirh; ++ ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry_2 sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block, next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block, next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, ++ dire->size + 1, &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (file->f_pos >= length) ++ continue; ++ ++ dire->name[dire->size + 1] = '\0'; ++ ++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", ++ (unsigned int) dirent, dire->name, ++ dire->size + 1, (int) file->f_pos, ++ dirh.start_block, dire->offset, ++ squashfs_filetype_table[dire->type]); ++ ++ if (filldir(dirent, dire->name, dire->size + 1, ++ file->f_pos, SQUASHFS_MK_VFS_INODE( ++ dirh.start_block, dire->offset), ++ squashfs_filetype_table[dire->type]) ++ < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos = length; ++ } ++ } ++ ++finish: ++ kfree(dire); ++ return 0; ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ kfree(dire); ++ return 0; ++} ++ ++ ++static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ const unsigned char *name = dentry->d_name.name; ++ int len = dentry->d_name.len; ++ struct inode *inode = NULL; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header_2 dirh; ++ struct squashfs_dir_entry_2 *dire; ++ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; ++ ++ TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset); ++ ++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + ++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { ++ ERROR("Failed to allocate squashfs_dir_entry\n"); ++ goto exit_loop; ++ } ++ ++ if (len > SQUASHFS_NAME_LEN) ++ goto exit_loop; ++ ++ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, name, ++ len); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header_2 sdirh; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry_2 sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block,next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block,next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, dire->size + 1, ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (sorted && name[0] < dire->name[0]) ++ goto exit_loop; ++ ++ if ((len == dire->size + 1) && !strncmp(name, ++ dire->name, len)) { ++ squashfs_inode_t ino = ++ SQUASHFS_MKINODE(dirh.start_block, ++ dire->offset); ++ unsigned int inode_number = SQUASHFS_MK_VFS_INODE(dirh.start_block, ++ dire->offset); ++ ++ TRACE("calling squashfs_iget for directory " ++ "entry %s, inode %x:%x, %lld\n", name, ++ dirh.start_block, dire->offset, ino); ++ ++ inode = squashfs_iget(i->i_sb, ino, inode_number); ++ ++ goto exit_loop; ++ } ++ } ++ } ++ ++exit_loop: ++ kfree(dire); ++ d_add(dentry, inode); ++ return ERR_PTR(0); ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ goto exit_loop; ++} ++ ++ ++int squashfs_2_0_supported(struct squashfs_sb_info *msblk) ++{ ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ msblk->read_inode = squashfs_read_inode_2; ++ msblk->read_fragment_index_table = read_fragment_index_table_2; ++ ++ sblk->bytes_used = sblk->bytes_used_2; ++ sblk->uid_start = sblk->uid_start_2; ++ sblk->guid_start = sblk->guid_start_2; ++ sblk->inode_table_start = sblk->inode_table_start_2; ++ sblk->directory_table_start = sblk->directory_table_start_2; ++ sblk->fragment_table_start = sblk->fragment_table_start_2; ++ ++ return 1; ++} +--- /dev/null ++++ linux-2.6.24-rc1/fs/squashfs/squashfs.h +@@ -0,0 +1,87 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs.h ++ */ ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++#endif ++ ++#ifdef SQUASHFS_TRACE ++#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) ++#else ++#define TRACE(s, args...) {} ++#endif ++ ++#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) ++ ++#define SERROR(s, args...) do { \ ++ if (!silent) \ ++ printk(KERN_ERR "SQUASHFS error: "s, ## args);\ ++ } while(0) ++ ++#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) ++ ++static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) ++{ ++ return list_entry(inode, struct squashfs_inode_info, vfs_inode); ++} ++ ++#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) ++#define SQSH_EXTERN ++extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, ++ long long index, unsigned int length, ++ long long *next_index, int srclength); ++extern int squashfs_get_cached_block(struct super_block *s, char *buffer, ++ long long block, unsigned int offset, ++ int length, long long *next_block, ++ unsigned int *next_offset); ++extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct ++ squashfs_fragment_cache *fragment); ++extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block ++ *s, long long start_block, ++ int length); ++extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number); ++extern const struct address_space_operations squashfs_symlink_aops; ++extern const struct address_space_operations squashfs_aops; ++extern const struct address_space_operations squashfs_aops_4K; ++extern struct inode_operations squashfs_dir_inode_ops; ++#else ++#define SQSH_EXTERN static ++#endif ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); ++#else ++static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) ++{ ++ return 0; ++} ++#endif ++ ++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); ++#else ++static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) ++{ ++ return 0; ++} ++#endif +--- /dev/null ++++ linux-2.6.24-rc1/include/linux/squashfs_fs.h +@@ -0,0 +1,934 @@ ++#ifndef SQUASHFS_FS ++#define SQUASHFS_FS ++ ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs.h ++ */ ++ ++#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++#define CONFIG_SQUASHFS_2_0_COMPATIBILITY ++#endif ++ ++#ifdef CONFIG_SQUASHFS_VMALLOC ++#define SQUASHFS_ALLOC(a) vmalloc(a) ++#define SQUASHFS_FREE(a) vfree(a) ++#else ++#define SQUASHFS_ALLOC(a) kmalloc(a, GFP_KERNEL) ++#define SQUASHFS_FREE(a) kfree(a) ++#endif ++#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE ++#define SQUASHFS_MAJOR 3 ++#define SQUASHFS_MINOR 0 ++#define SQUASHFS_MAGIC 0x73717368 ++#define SQUASHFS_MAGIC_SWAP 0x68737173 ++#define SQUASHFS_START 0 ++ ++/* size of metadata (inode and directory) blocks */ ++#define SQUASHFS_METADATA_SIZE 8192 ++#define SQUASHFS_METADATA_LOG 13 ++ ++/* default size of data blocks */ ++#define SQUASHFS_FILE_SIZE 65536 ++#define SQUASHFS_FILE_LOG 16 ++ ++#define SQUASHFS_FILE_MAX_SIZE 65536 ++ ++/* Max number of uids and gids */ ++#define SQUASHFS_UIDS 256 ++#define SQUASHFS_GUIDS 255 ++ ++/* Max length of filename (not 255) */ ++#define SQUASHFS_NAME_LEN 256 ++ ++#define SQUASHFS_INVALID ((long long) 0xffffffffffff) ++#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) ++#define SQUASHFS_INVALID_BLK ((long long) -1) ++#define SQUASHFS_USED_BLK ((long long) -2) ++ ++/* Filesystem flags */ ++#define SQUASHFS_NOI 0 ++#define SQUASHFS_NOD 1 ++#define SQUASHFS_CHECK 2 ++#define SQUASHFS_NOF 3 ++#define SQUASHFS_NO_FRAG 4 ++#define SQUASHFS_ALWAYS_FRAG 5 ++#define SQUASHFS_DUPLICATE 6 ++#define SQUASHFS_EXPORT 7 ++ ++#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) ++ ++#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOI) ++ ++#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOD) ++ ++#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOF) ++ ++#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NO_FRAG) ++ ++#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_ALWAYS_FRAG) ++ ++#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_DUPLICATE) ++ ++#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_EXPORT) ++ ++#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_CHECK) ++ ++#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ ++ duplicate_checking, exortable) (noi | (nod << 1) | (check_data << 2) \ ++ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ ++ (duplicate_checking << 6) | (exportable << 7)) ++ ++/* Max number of types and file types */ ++#define SQUASHFS_DIR_TYPE 1 ++#define SQUASHFS_FILE_TYPE 2 ++#define SQUASHFS_SYMLINK_TYPE 3 ++#define SQUASHFS_BLKDEV_TYPE 4 ++#define SQUASHFS_CHRDEV_TYPE 5 ++#define SQUASHFS_FIFO_TYPE 6 ++#define SQUASHFS_SOCKET_TYPE 7 ++#define SQUASHFS_LDIR_TYPE 8 ++#define SQUASHFS_LREG_TYPE 9 ++ ++/* 1.0 filesystem type definitions */ ++#define SQUASHFS_TYPES 5 ++#define SQUASHFS_IPC_TYPE 0 ++ ++/* Flag whether block is compressed or uncompressed, bit is set if block is ++ * uncompressed */ ++#define SQUASHFS_COMPRESSED_BIT (1 << 15) ++ ++#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ ++ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) ++ ++#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) ++ ++#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) ++ ++#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) (((B) & \ ++ ~SQUASHFS_COMPRESSED_BIT_BLOCK) ? (B) & \ ++ ~SQUASHFS_COMPRESSED_BIT_BLOCK : SQUASHFS_COMPRESSED_BIT_BLOCK) ++ ++#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) ++ ++/* ++ * Inode number ops. Inodes consist of a compressed block number, and an ++ * uncompressed offset within that block ++ */ ++#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) ++ ++#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) ++ ++#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ ++ << 16) + (B))) ++ ++/* Compute 32 bit VFS inode number from squashfs inode number */ ++#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ ++ ((b) >> 2) + 1)) ++/* XXX */ ++ ++/* Translate between VFS mode and squashfs mode */ ++#define SQUASHFS_MODE(a) ((a) & 0xfff) ++ ++/* fragment and fragment table defines */ ++#define SQUASHFS_FRAGMENT_BYTES(A) ((A) * sizeof(struct squashfs_fragment_entry)) ++ ++#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ ++ SQUASHFS_METADATA_SIZE - 1) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ ++ sizeof(long long)) ++ ++/* inode lookup table defines */ ++#define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t)) ++ ++#define SQUASHFS_LOOKUP_BLOCK(A) (SQUASHFS_LOOKUP_BYTES(A) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_LOOKUP_BLOCK_OFFSET(A) (SQUASHFS_LOOKUP_BYTES(A) % \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_LOOKUP_BLOCKS(A) ((SQUASHFS_LOOKUP_BYTES(A) + \ ++ SQUASHFS_METADATA_SIZE - 1) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\ ++ sizeof(long long)) ++ ++/* cached data constants for filesystem */ ++#define SQUASHFS_CACHED_BLKS 8 ++ ++#define SQUASHFS_MAX_FILE_SIZE_LOG 64 ++ ++#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ ++ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) ++ ++#define SQUASHFS_MARKER_BYTE 0xff ++ ++/* meta index cache */ ++#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) ++#define SQUASHFS_META_ENTRIES 31 ++#define SQUASHFS_META_NUMBER 8 ++#define SQUASHFS_SLOTS 4 ++ ++struct meta_entry { ++ long long data_block; ++ unsigned int index_block; ++ unsigned short offset; ++ unsigned short pad; ++}; ++ ++struct meta_index { ++ unsigned int inode_number; ++ unsigned int offset; ++ unsigned short entries; ++ unsigned short skip; ++ unsigned short locked; ++ unsigned short pad; ++ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; ++}; ++ ++ ++/* ++ * definitions for structures on disk ++ */ ++ ++typedef long long squashfs_block_t; ++typedef long long squashfs_inode_t; ++ ++struct squashfs_super_block { ++ unsigned int s_magic; ++ unsigned int inodes; ++ unsigned int bytes_used_2; ++ unsigned int uid_start_2; ++ unsigned int guid_start_2; ++ unsigned int inode_table_start_2; ++ unsigned int directory_table_start_2; ++ unsigned int s_major:16; ++ unsigned int s_minor:16; ++ unsigned int block_size_1:16; ++ unsigned int block_log:16; ++ unsigned int flags:8; ++ unsigned int no_uids:8; ++ unsigned int no_guids:8; ++ unsigned int mkfs_time /* time of filesystem creation */; ++ squashfs_inode_t root_inode; ++ unsigned int block_size; ++ unsigned int fragments; ++ unsigned int fragment_table_start_2; ++ long long bytes_used; ++ long long uid_start; ++ long long guid_start; ++ long long inode_table_start; ++ long long directory_table_start; ++ long long fragment_table_start; ++ long long lookup_table_start; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_index { ++ unsigned int index; ++ unsigned int start_block; ++ unsigned char size; ++ unsigned char name[0]; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_BASE_INODE_HEADER \ ++ unsigned int inode_type:4; \ ++ unsigned int mode:12; \ ++ unsigned int uid:8; \ ++ unsigned int guid:8; \ ++ unsigned int mtime; \ ++ unsigned int inode_number; ++ ++struct squashfs_base_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ squashfs_block_t start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ unsigned int file_size; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_lreg_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ squashfs_block_t start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ long long file_size; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int start_block; ++ unsigned int parent_inode; ++} __attribute__ ((packed)); ++ ++struct squashfs_ldir_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned int file_size:27; ++ unsigned int offset:13; ++ unsigned int start_block; ++ unsigned int i_count:16; ++ unsigned int parent_inode; ++ struct squashfs_dir_index index[0]; ++} __attribute__ ((packed)); ++ ++union squashfs_inode_header { ++ struct squashfs_base_inode_header base; ++ struct squashfs_dev_inode_header dev; ++ struct squashfs_symlink_inode_header symlink; ++ struct squashfs_reg_inode_header reg; ++ struct squashfs_lreg_inode_header lreg; ++ struct squashfs_dir_inode_header dir; ++ struct squashfs_ldir_inode_header ldir; ++ struct squashfs_ipc_inode_header ipc; ++}; ++ ++struct squashfs_dir_entry { ++ unsigned int offset:13; ++ unsigned int type:3; ++ unsigned int size:8; ++ int inode_number:16; ++ char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_header { ++ unsigned int count:8; ++ unsigned int start_block; ++ unsigned int inode_number; ++} __attribute__ ((packed)); ++ ++struct squashfs_fragment_entry { ++ long long start_block; ++ unsigned int size; ++ unsigned int pending; ++} __attribute__ ((packed)); ++ ++extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); ++extern int squashfs_uncompress_init(void); ++extern int squashfs_uncompress_exit(void); ++ ++/* ++ * macros to convert each packed bitfield structure from little endian to big ++ * endian and vice versa. These are needed when creating or using a filesystem ++ * on a machine with different byte ordering to the target architecture. ++ * ++ */ ++ ++#define SQUASHFS_SWAP_START \ ++ int bits;\ ++ int b_pos;\ ++ unsigned long long val;\ ++ unsigned char *s;\ ++ unsigned char *d; ++ ++#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ ++ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ ++ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ ++ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ ++ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ ++ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ ++ SQUASHFS_SWAP((s)->flags, d, 288, 8);\ ++ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ ++ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ ++ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ ++ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ ++ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ ++ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ ++ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ ++ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ ++ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ ++ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ ++ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ ++ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ ++ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ ++ SQUASHFS_SWAP((s)->lookup_table_start, d, 888, 64);\ ++} ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ ++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 64, 32); ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_ipc_inode_header))\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_dev_inode_header)); \ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_reg_inode_header));\ ++ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ ++ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_lreg_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ ++ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 224, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_dir_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 147, 13);\ ++ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_ldir_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ ++ SQUASHFS_SWAP((s)->offset, d, 155, 13);\ ++ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ ++ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ ++ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ ++ SQUASHFS_SWAP((s)->index, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->size, d, 64, 8);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ ++ SQUASHFS_SWAP((s)->count, d, 0, 8);\ ++ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ ++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ ++ SQUASHFS_SWAP((s)->type, d, 13, 3);\ ++ SQUASHFS_SWAP((s)->size, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ ++ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ ++ SQUASHFS_SWAP((s)->size, d, 64, 32);\ ++} ++ ++#define SQUASHFS_SWAP_INODE_T(s, d) SQUASHFS_SWAP_LONG_LONGS(s, d, 1) ++ ++#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 2);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 16)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ ++} ++ ++#define SQUASHFS_SWAP_INTS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 4);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 32)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 8);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 64)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ ++} ++ ++#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * bits / 8);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ bits)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) ++#define SQUASHFS_SWAP_LOOKUP_BLOCKS(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++ ++struct squashfs_base_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int type:4; ++ unsigned int offset:4; ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int mtime; ++ unsigned int start_block; ++ unsigned int file_size:32; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 4);\ ++ SQUASHFS_SWAP((s)->guid, d, 20, 4); ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_ipc_inode_header_1));\ ++ SQUASHFS_SWAP((s)->type, d, 24, 4);\ ++ SQUASHFS_SWAP((s)->offset, d, 28, 4);\ ++} ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_dev_inode_header_1));\ ++ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header_1));\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_reg_inode_header_1));\ ++ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_dir_inode_header_1));\ ++ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 43, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ ++} ++ ++#endif ++ ++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++ ++struct squashfs_dir_index_2 { ++ unsigned int index:27; ++ unsigned int start_block:29; ++ unsigned char size; ++ unsigned char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_base_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int mtime; ++ unsigned int start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ unsigned int file_size:32; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++struct squashfs_ldir_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int file_size:27; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++ unsigned int i_count:16; ++ struct squashfs_dir_index_2 index[0]; ++} __attribute__ ((packed)); ++ ++union squashfs_inode_header_2 { ++ struct squashfs_base_inode_header_2 base; ++ struct squashfs_dev_inode_header_2 dev; ++ struct squashfs_symlink_inode_header_2 symlink; ++ struct squashfs_reg_inode_header_2 reg; ++ struct squashfs_dir_inode_header_2 dir; ++ struct squashfs_ldir_inode_header_2 ldir; ++ struct squashfs_ipc_inode_header_2 ipc; ++}; ++ ++struct squashfs_dir_header_2 { ++ unsigned int count:8; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_entry_2 { ++ unsigned int offset:13; ++ unsigned int type:3; ++ unsigned int size:8; ++ char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_fragment_entry_2 { ++ unsigned int start_block; ++ unsigned int size; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ ++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_dev_inode_header_2)); \ ++ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header_2));\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_reg_inode_header_2));\ ++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 128, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_dir_inode_header_2));\ ++ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 51, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ ++} ++ ++#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_ldir_inode_header_2));\ ++ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ ++ SQUASHFS_SWAP((s)->offset, d, 59, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ ++ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ ++ SQUASHFS_SWAP((s)->index, d, 0, 27);\ ++ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ ++ SQUASHFS_SWAP((s)->size, d, 56, 8);\ ++} ++#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ ++ SQUASHFS_SWAP((s)->count, d, 0, 8);\ ++ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ ++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ ++ SQUASHFS_SWAP((s)->type, d, 13, 3);\ ++ SQUASHFS_SWAP((s)->size, d, 16, 8);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ ++ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->size, d, 32, 32);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) ++ ++/* fragment and fragment table defines */ ++#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) ++ ++#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ ++ SQUASHFS_METADATA_SIZE - 1) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ ++ sizeof(int)) ++ ++#endif ++ ++#ifdef __KERNEL__ ++ ++/* ++ * macros used to swap each structure entry, taking into account ++ * bitfields and different bitfield placing conventions on differing ++ * architectures ++ */ ++ ++#include <asm/byteorder.h> ++ ++#ifdef __BIG_ENDIAN ++ /* convert from little endian to big endian */ ++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ ++ tbits, b_pos) ++#else ++ /* convert from big endian to little endian */ ++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ ++ tbits, 64 - tbits - b_pos) ++#endif ++ ++#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ ++ b_pos = pos % 8;\ ++ val = 0;\ ++ s = (unsigned char *)p + (pos / 8);\ ++ d = ((unsigned char *) &val) + 7;\ ++ for(bits = 0; bits < (tbits + b_pos); bits += 8) \ ++ *d-- = *s++;\ ++ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ ++} ++ ++#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); ++ ++#endif ++#endif +--- /dev/null ++++ linux-2.6.24-rc1/include/linux/squashfs_fs_i.h +@@ -0,0 +1,45 @@ ++#ifndef SQUASHFS_FS_I ++#define SQUASHFS_FS_I ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs_i.h ++ */ ++ ++struct squashfs_inode_info { ++ long long start_block; ++ unsigned int offset; ++ union { ++ struct { ++ long long fragment_start_block; ++ unsigned int fragment_size; ++ unsigned int fragment_offset; ++ long long block_list_start; ++ } s1; ++ struct { ++ long long directory_index_start; ++ unsigned int directory_index_offset; ++ unsigned int directory_index_count; ++ unsigned int parent_inode; ++ } s2; ++ } u; ++ struct inode vfs_inode; ++}; ++#endif +--- /dev/null ++++ linux-2.6.24-rc1/include/linux/squashfs_fs_sb.h +@@ -0,0 +1,74 @@ ++#ifndef SQUASHFS_FS_SB ++#define SQUASHFS_FS_SB ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * or (at your option) any later version. ++ * ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs_sb.h ++ */ ++ ++#include <linux/squashfs_fs.h> ++ ++struct squashfs_cache { ++ long long block; ++ int length; ++ long long next_index; ++ char *data; ++}; ++ ++struct squashfs_fragment_cache { ++ long long block; ++ int length; ++ unsigned int locked; ++ char *data; ++}; ++ ++struct squashfs_sb_info { ++ struct squashfs_super_block sblk; ++ int devblksize; ++ int devblksize_log2; ++ int swap; ++ struct squashfs_cache *block_cache; ++ struct squashfs_fragment_cache *fragment; ++ int next_cache; ++ int next_fragment; ++ int next_meta_index; ++ unsigned int *uid; ++ unsigned int *guid; ++ long long *fragment_index; ++ unsigned int *fragment_index_2; ++ char *read_page; ++ struct mutex read_data_mutex; ++ struct mutex read_page_mutex; ++ struct mutex block_cache_mutex; ++ struct mutex fragment_mutex; ++ struct mutex meta_index_mutex; ++ wait_queue_head_t waitq; ++ wait_queue_head_t fragment_wait_queue; ++ struct meta_index *meta_index; ++ z_stream stream; ++ long long *inode_lookup_table; ++ int (*read_inode)(struct inode *i, squashfs_inode_t \ ++ inode); ++ long long (*read_blocklist)(struct inode *inode, int \ ++ index, int readahead_blks, char *block_list, \ ++ unsigned short **block_p, unsigned int *bsize); ++ int (*read_fragment_index_table)(struct super_block *s); ++}; ++#endif +--- linux-2.6.24-rc1.orig/init/do_mounts_rd.c ++++ linux-2.6.24-rc1/init/do_mounts_rd.c +@@ -5,6 +5,7 @@ + #include <linux/ext2_fs.h> + #include <linux/romfs_fs.h> + #include <linux/cramfs_fs.h> ++#include <linux/squashfs_fs.h> + #include <linux/initrd.h> + #include <linux/string.h> + +@@ -39,6 +40,7 @@ + * numbers could not be found. + * + * We currently check for the following magic numbers: ++ * squashfs + * minix + * ext2 + * romfs +@@ -53,6 +55,7 @@ + struct ext2_super_block *ext2sb; + struct romfs_super_block *romfsb; + struct cramfs_super *cramfsb; ++ struct squashfs_super_block *squashfsb; + int nblocks = -1; + unsigned char *buf; + +@@ -64,6 +67,7 @@ + ext2sb = (struct ext2_super_block *) buf; + romfsb = (struct romfs_super_block *) buf; + cramfsb = (struct cramfs_super *) buf; ++ squashfsb = (struct squashfs_super_block *) buf; + memset(buf, 0xe5, size); + + /* +@@ -101,6 +105,18 @@ + goto done; + } + ++ /* squashfs is at block zero too */ ++ if (squashfsb->s_magic == SQUASHFS_MAGIC) { ++ printk(KERN_NOTICE ++ "RAMDISK: squashfs filesystem found at block %d\n", ++ start_block); ++ if (squashfsb->s_major < 3) ++ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ else ++ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ goto done; ++ } ++ + /* + * Read block 1 to test for minix and ext2 superblock + */ diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/uvesafb-0.1-rc3-2.6.22.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/uvesafb-0.1-rc3-2.6.22.patch index 711375114f..711375114f 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/uvesafb-0.1-rc3-2.6.22.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/uvesafb-0.1-rc3-2.6.22.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/versatile-armv6.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/versatile-armv6.patch new file mode 100644 index 0000000000..e2d0060ac3 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/versatile-armv6.patch @@ -0,0 +1,19 @@ +--- + arch/arm/mm/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- linux-2.6.23.orig/arch/arm/mm/Kconfig ++++ linux-2.6.23/arch/arm/mm/Kconfig +@@ -343,11 +343,11 @@ config CPU_XSC3 + select IO_36 + + # ARMv6 + config CPU_V6 + bool "Support ARM V6 processor" +- depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 ++ depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 || ARCH_VERSATILE_PB + default y if ARCH_MX3 + select CPU_32v6 + select CPU_ABRT_EV6 + select CPU_CACHE_V6 + select CPU_CACHE_VIPT diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/vt_ioctl_race.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/vt_ioctl_race.patch index 5a51d1c3f5..5a51d1c3f5 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/vt_ioctl_race.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/vt_ioctl_race.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/w100fb-unused-var.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/w100fb-unused-var.patch index 8cbbb6bd01..8cbbb6bd01 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/w100fb-unused-var.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/w100fb-unused-var.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/wm97xx-lcdnoise-r0.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/wm97xx-lcdnoise-r0.patch index 191de3af22..191de3af22 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/wm97xx-lcdnoise-r0.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/wm97xx-lcdnoise-r0.patch diff --git a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/zylonite-boot.patch b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/zylonite-boot.patch index f41928eca5..f41928eca5 100644 --- a/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/zylonite-boot.patch +++ b/packages/linux/linux-rp-2.6.23+2.6.24-rc6+git/zylonite-boot.patch diff --git a/packages/linux/linux-rp.inc b/packages/linux/linux-rp.inc index fb6570e3fd..8f180164e0 100644 --- a/packages/linux/linux-rp.inc +++ b/packages/linux/linux-rp.inc @@ -34,8 +34,8 @@ CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug", ############################################################## # Configure memory/ramdisk split for collie # -export mem = '${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "32"}' -export rd = '${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "32"}' +export mem = '${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "64"}' +export rd = '${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "0"}' CMDLINE_MEM_collie = "mem=${mem}M" CMDLINE_ROTATE_spitz = "fbcon=rotate:1" @@ -58,6 +58,7 @@ module_autoload_snd-soc-spitz_spitz = "snd-soc-spitz" module_autoload_snd-soc-poodle_poodle = "snd-soc-poodle" module_autoload_locomo-spi_collie = "locomo-spi" module_autoload_mmc_block_collie = "mmc_block" +module_autoload_locomo-kbd_collie = "locomo-kbd" do_configure() { rm -f ${S}/.config diff --git a/packages/linux/linux-rp_2.6.23+2.6.24-rc0+git.bb b/packages/linux/linux-rp_2.6.23+2.6.24-rc6+git.bb index 3260e6750c..48211e54ca 100644 --- a/packages/linux/linux-rp_2.6.23+2.6.24-rc0+git.bb +++ b/packages/linux/linux-rp_2.6.23+2.6.24-rc6+git.bb @@ -1,32 +1,33 @@ require linux-rp.inc -PR = "r2" +PR = "r4" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_collie = "1" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 -# http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 -# http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2 -# http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1 -# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1 -# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 -# http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1 +# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 +# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2 +# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1 +# ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1 +# ${KERNELORG_MIRROR}pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 +# ${KERNELORG_MIRROR}pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1 # Patches submitted upstream are towards top of this list # Hacks should clearly named and at the bottom -SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ - http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.23-git9.bz2;patch=1 \ +SRC_URI = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ + ${KERNELORG_MIRROR}pub/linux/kernel/v2.6/testing/patch-2.6.24-rc6.bz2;patch=1 \ ${RPSRC}/lzo_crypto-r2.patch;patch=1 \ ${RPSRC}/lzo_jffs2_sysfs-r1.patch;patch=1 \ - ${RPSRC}/hx2750_base-r30.patch;patch=1 \ + file://hx2750_base-r31.patch;patch=1 \ ${RPSRC}/hx2750_bl-r9.patch;patch=1 \ ${RPSRC}/hx2750_pcmcia-r3.patch;patch=1 \ ${RPSRC}/pxa_keys-r8.patch;patch=1 \ - ${RPSRC}/tsc2101-r16.patch;patch=1 \ +# ${RPSRC}/tsc2101-r16.patch;patch=1 \ ${RPSRC}/hx2750_test1-r7.patch;patch=1 \ - ${RPSRC}/input_power-r9.patch;patch=1 \ + ${RPSRC}/input_power-r10.patch;patch=1 \ + ${RPSRC}/input_power_fix-r0.patch;patch=1 \ ${RPSRC}/pxa25x_cpufreq-r2.patch;patch=1 \ ${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \ ${RPSRC}/pm_changes-r1.patch;patch=1 \ @@ -34,14 +35,15 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ ${RPSRC}/usb_pxa27x_udc-r7.patch;patch=1 \ ${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \ ${RPSRC}/poodle_pm-r5.patch;patch=1 \ - ${RPSRC}/pxa27x_overlay-r7.patch;patch=1 \ + file://pxa27x_overlay-r8.patch;patch=1 \ ${RPSRC}/w100_extaccel-r1.patch;patch=1 \ ${RPSRC}/w100_extmem-r1.patch;patch=1 \ + ${RPSRC}/export_atags-r1.patch;patch=1 \ + ${RPSRC}/pxa25x_suspend_fixes-r0.patch;patch=1 \ file://w100fb-unused-var.patch;patch=1 \ file://hostap-monitor-mode.patch;patch=1 \ file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ ${RPSRC}/logo_oh-r1.patch.bz2;patch=1;status=unmergable \ - ${RPSRC}/logo_oz-r2.patch.bz2;patch=1;status=unmergable \ ${RPSRC}/pxa-linking-bug.patch;patch=1;status=unmergable \ ${RPSRC}/mmcsd_large_cards-r1.patch;patch=1;status=hack \ file://mmcsd_no_scr_check-r2.patch;patch=1 \ @@ -50,10 +52,10 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ ${RPSRC}/corgi_rearrange_lcd-r0.patch;patch=1 \ file://pxa-serial-hack.patch;patch=1;status=hack \ file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \ - file://squashfs3.0-2.6.15.patch;patch=1;status=external \ - file://uvesafb-0.1-rc3-2.6.22.patch;patch=1;status=external \ -# file://htcuni.patch;patch=1 \ +# file://squashfs3.2-2.6.20-r0.patch;patch=1;status=external \ +# file://htcuni.patch;patch=1 \ file://binutils-buildid-arm.patch;patch=1 \ + file://versatile-armv6.patch;patch=1 \ file://defconfig-c7x0 \ file://defconfig-hx2000 \ file://defconfig-collie \ @@ -84,17 +86,17 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ # These patches are extracted from Pavel Machek's git tree # (diff against vanilla kernel) SRC_URI_append_collie = "\ - ${TKSRC}/${PN}_${PV}/mtd-sharp-flash-hack-r3.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/mcp-sa11x0-r0.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/locomo-r0.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/locomo_spi-4.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/collie-kexec.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/sharpsl_pm-2.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/collie_pm-2.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/locomokeyb_suspendkey-2.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/ucb1x00_suspend.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/collie-ts.patch;patch=1 \ - ${TKSRC}/${PN}_${PV}/pcmcia_suspend.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/mtd-sharp-flash-hack-r3.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/mcp-sa11x0-r0.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/locomo-r0.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/locomo_spi-4.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/collie-kexec.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/sharpsl_pm-2.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/collie_pm-2.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/locomokeyb_suspendkey-2.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/ucb1x00_suspend.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/collie-ts.patch;patch=1 \ + ${TKSRC}/${PN}_${PV}/pcmcia_suspend.patch;patch=1 \ " SRC_URI_append_tosa = "\ diff --git a/packages/linux/linux-rp_2.6.23.bb b/packages/linux/linux-rp_2.6.23.bb index 24a8192b5b..5b9b4f3b6b 100644 --- a/packages/linux/linux-rp_2.6.23.bb +++ b/packages/linux/linux-rp_2.6.23.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r21" +PR = "r22" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 diff --git a/packages/linux/linux-storcenter/defconfig-2.6.15.7 b/packages/linux/linux-storcenter/defconfig-2.6.15.7 new file mode 100644 index 0000000000..de5e5b80f7 --- /dev/null +++ b/packages/linux/linux-storcenter/defconfig-2.6.15.7 @@ -0,0 +1,1176 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.15.7 +# Tue Jan 15 08:24:59 2008 +# +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_GENERIC_NVRAM=y +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_HOTPLUG=y +CONFIG_KOBJECT_UEVENT=y +# CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EMBEDDED=y +# CONFIG_KALLSYMS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_LBD=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" + +# +# Processor +# +CONFIG_6xx=y +# CONFIG_40x is not set +# CONFIG_44x is not set +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_E200 is not set +# CONFIG_E500 is not set +CONFIG_PPC_FPU=y +# CONFIG_ALTIVEC is not set +# CONFIG_TAU is not set +# CONFIG_KEXEC is not set +# CONFIG_CPU_FREQ is not set +# CONFIG_WANT_EARLY_SERIAL is not set +CONFIG_PPC_GEN550=y +CONFIG_PPC_STD_MMU=y + +# +# Platform options +# +# CONFIG_PPC_MULTIPLATFORM is not set +# CONFIG_APUS is not set +# CONFIG_KATANA is not set +# CONFIG_WILLOW is not set +# CONFIG_CPCI690 is not set +# CONFIG_POWERPMC250 is not set +# CONFIG_CHESTNUT is not set +# CONFIG_SPRUCE is not set +# CONFIG_HDPU is not set +# CONFIG_EV64260 is not set +# CONFIG_LOPEC is not set +# CONFIG_MVME5100 is not set +# CONFIG_PPLUS is not set +# CONFIG_PRPMC750 is not set +# CONFIG_PRPMC800 is not set +# CONFIG_SANDPOINT is not set +# CONFIG_RADSTONE_PPC7D is not set +# CONFIG_PAL4 is not set +# CONFIG_GEMINI is not set +# CONFIG_EST8260 is not set +# CONFIG_SBC82xx is not set +CONFIG_IOMEGA8241=y +# CONFIG_SBS8260 is not set +# CONFIG_RPX8260 is not set +# CONFIG_TQM8260 is not set +# CONFIG_ADS8272 is not set +# CONFIG_PQ2FADS is not set +# CONFIG_LITE5200 is not set +# CONFIG_MPC834x_SYS is not set +# CONFIG_EV64360 is not set +CONFIG_MPC10X_BRIDGE=y +CONFIG_MPC10X_OPENPIC=y +# CONFIG_MPC10X_STORE_GATHERING is not set +# CONFIG_SMP is not set +# CONFIG_HIGHMEM is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=ttyS0,115200" +# CONFIG_PM is not set +# CONFIG_SOFTWARE_SUSPEND is not set +CONFIG_SECCOMP=y +CONFIG_ISA_DMA_API=y + +# +# Bus options +# +CONFIG_GENERIC_ISA_DMA=y +# CONFIG_PPC_I8259 is not set +CONFIG_PPC_INDIRECT_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_PCI_LEGACY_PROC is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Advanced setup +# +# CONFIG_ADVANCED_OPTIONS is not set + +# +# Default settings for advanced configuration options are used +# +CONFIG_HIGHMEM_START=0xfe000000 +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_KERNEL_START=0xc0000000 +CONFIG_TASK_SIZE=0x80000000 +CONFIG_BOOT_LOAD=0x00800000 + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=y +CONFIG_NFTL=y +CONFIG_NFTL_RW=y +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_AMDSTD_RETRY=0 +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0xFF800000 +CONFIG_MTD_PHYSMAP_LEN=0x00800000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=1 +# CONFIG_MTD_PLATRAM is not set +CONFIG_MTD_IOMEGA8241=y + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +CONFIG_BLK_DEV_RAM_COUNT=16 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +CONFIG_BLK_DEV_OFFBOARD=y +# CONFIG_BLK_DEV_GENERIC is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +# CONFIG_IDEDMA_PCI_AUTO is not set +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +CONFIG_BLK_DEV_VIA82CXXX=y +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +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=y +# CONFIG_BLK_DEV_SR_VENDOR 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=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA2XXX=y +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID5=y +# CONFIG_MD_RAID6 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BLK_DEV_DM is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Macintosh device drivers +# +# CONFIG_WINDFARM is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_R8169=y +# CONFIG_R8169_NAPI is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +# CONFIG_INPUT is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +# CONFIG_SERIAL_8250_SHARE_IRQ is not set +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +CONFIG_GEN_RTC=y +# CONFIG_GEN_RTC_X is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set +CONFIG_8241EMI=y + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +# CONFIG_I2C_PIIX4 is not set +CONFIG_I2C_MPC=y +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_SCx200_ACB is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=y +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_M41T00 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +# CONFIG_FB is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +CONFIG_USB_PRINTER=y + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +# 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 + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# InfiniBand support +# +# CONFIG_INFINIBAND is not set + +# +# SN Devices +# + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +CONFIG_XFS_FS=m +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_SECURITY is not set +# CONFIG_XFS_POSIX_ACL is not set +# CONFIG_XFS_RT is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Library routines +# +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SERIAL_TEXT_DEBUG=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# diff --git a/packages/linux/linux-storcenter/kernel.patch-2.6.15.7 b/packages/linux/linux-storcenter/kernel.patch-2.6.15.7 new file mode 100644 index 0000000000..030ef64d2a --- /dev/null +++ b/packages/linux/linux-storcenter/kernel.patch-2.6.15.7 @@ -0,0 +1,1181 @@ +--- linux-2.6.15.orig/arch/ppc/platforms/iomega8241.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.15/arch/ppc/platforms/iomega8241.c 2008-01-07 16:56:45.628534603 -0800 +@@ -0,0 +1,603 @@ ++/* ++ * arch/ppc/platforms/iomega8241.c ++ * ++ * The Iomega StorCenter Network Hard Drive platform is based on the ++ * original sandpoint test platform. That GNU copyright information ++ * is reproduced below: ++ * ++ * Board setup routines for the Motorola SPS Sandpoint Test Platform. ++ * ++ * Author: Mark A. Greer ++ * mgreer@mvista.com ++ * ++ * 2000-2003 (c) MontaVista Software, Inc. This file is licensed under ++ * the terms of the GNU General Public License version 2. This program ++ * is licensed "as is" without any warranty of any kind, whether express ++ * or implied. ++ */ ++ ++/* ++ * Iomega StorCenter Network Hard Drive. ++ * ++ * Maintainer (Iomega Port): Anthony Russello ++ * russello@iomega.com ++ * Much of the below code was taken from the original sandpoint.c/.h port ++ * done my Mark A. Greer (see above copyright information). It was adapted ++ * to support a custom board. ++ */ ++ ++#include <linux/config.h> ++#include <linux/stddef.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/errno.h> ++#include <linux/reboot.h> ++#include <linux/pci.h> ++#include <linux/kdev_t.h> ++#include <linux/major.h> ++#include <linux/initrd.h> ++#include <linux/console.h> ++#include <linux/delay.h> ++#include <linux/irq.h> ++#include <linux/ide.h> ++#include <linux/seq_file.h> ++#include <linux/root_dev.h> ++#include <linux/serial.h> ++#include <linux/tty.h> /* for linux/serial_core.h */ ++#include <linux/serial_8250.h> ++ ++#include <asm/system.h> ++#include <asm/pgtable.h> ++#include <asm/page.h> ++#include <asm/time.h> ++#include <asm/dma.h> ++#include <asm/io.h> ++#include <asm/machdep.h> ++#include <asm/prom.h> ++#include <asm/smp.h> ++#include <asm/vga.h> ++#include <asm/open_pic.h> ++#include <asm/todc.h> ++#include <asm/bootinfo.h> ++#include <asm/mpc10x.h> ++#include <asm/pci-bridge.h> ++#include <asm/kgdb.h> ++ ++#include "iomega8241.h" ++ ++/* Real Time Clock */ ++extern spinlock_t rtc_lock; ++extern int ds1337_do_command(int id, int cmd, void *arg); ++#define DS1337_GET_DATE 0 ++#define DS1337_SET_DATE 1 ++ ++unsigned char __res[sizeof(bd_t)]; ++ ++static void iomega8241_halt(void); ++ ++/* ++ * Define all of the IRQ senses and polarities. ++ */ ++static u_char iomega8241_openpic_initsenses[] __initdata = { ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 0: AN983B */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 1: IDE VIA DS6410 */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 2: USB */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 3: USB */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 4: USB */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 5: UART0 */ ++ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 6: UART1 */ ++}; ++ ++/* ++ * Define all of the PCI IRQ Mappings ++ */ ++static inline int ++iomega8241_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) ++{ ++ static char pci_irq_table[][4] = ++ /* ++ * PCI IDSEL/INTPIN->INTLINE ++ * A B C D ++ */ ++ { ++ { 1, 1, 0, 0 }, ++ { 2, 3, 4, 1 }, ++ { 0, 0, 4, 4 }, ++ { 3, 3, 4, 4 }, ++ { 3, 3, 4, 4 }, ++ }; ++ ++ const long min_idsel = 13, max_idsel = 17, irqs_per_slot = 4; ++ return PCI_IRQ_TABLE_LOOKUP; ++} ++ ++static int ++iomega8241_exclude_device(u_char bus, u_char devfn) ++{ ++ if ((bus == 0) && (PCI_SLOT(devfn) == IOMEGA8241_HOST_BRIDGE_IDSEL)) ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ else ++ return PCIBIOS_SUCCESSFUL; ++} ++ ++static void __init ++iomega8241_find_bridges(void) ++{ ++ struct pci_controller *hose; ++ ++ hose = pcibios_alloc_controller(); ++ ++ if (!hose) ++ return; ++ ++ hose->first_busno = 0; ++ hose->last_busno = 0x1; ++ ++ if (mpc10x_bridge_init(hose, ++ MPC10X_MEM_MAP_B, ++ MPC10X_MEM_MAP_B, ++ MPC10X_MAPB_EUMB_BASE) == 0) { ++ ++ ppc_md.pci_exclude_device = iomega8241_exclude_device; ++ hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); ++ ppc_md.pcibios_fixup = NULL; ++ ppc_md.pcibios_fixup_bus = NULL; ++ ppc_md.pci_swizzle = common_swizzle; ++ ppc_md.pci_map_irq = iomega8241_map_irq; ++ } ++ else { ++ if (ppc_md.progress) ++ ppc_md.progress("Bridge init failed", 0x100); ++ printk("Host bridge init failed\n"); ++ } ++ return; ++} ++ ++ ++static ulong ++get_bus_frequency(void) ++{ ++ bd_t *bp = (bd_t *)__res; ++ ulong freq; ++ if (133333332 == bp->bi_busfreq) ++ freq = 132000000; ++ if (99999999 == bp->bi_busfreq) ++ freq = 100000000; ++ return(freq); ++} ++ ++ ++static void ++iomega8241_early_serial_map(void) ++{ ++#if defined(CONFIG_SERIAL_8250) ++ struct plat_serial8250_port *pdata; ++ bd_t *binfo = (bd_t *) __res; ++ ++ pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(MPC10X_UART0); ++ pdata[0].uartclk = get_bus_frequency(); ++ pdata[0].membase = (unsigned char __iomem *) IOMEGA8241_SERIAL_0; ++ ++ pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(MPC10X_UART1); ++ pdata[0].uartclk = get_bus_frequency(); ++ pdata[0].membase = (unsigned char __iomem *) IOMEGA8241_SERIAL_1; ++#endif ++} ++ ++static void __init ++iomega8241_setup_arch(void) ++{ ++ int i = 0; ++ ++ loops_per_jiffy = 100000000 / HZ; ++ ++#ifdef CONFIG_BLK_DEV_INITRD ++ if (initrd_start) ++ ROOT_DEV = Root_RAM0; ++ else ++#endif ++#ifdef CONFIG_ROOT_NFS ++ ROOT_DEV = Root_NFS; ++#else ++ ROOT_DEV = Root_HDA1; ++#endif ++ ++ /* Lookup PCI host bridges */ ++ iomega8241_find_bridges(); ++ ++ iomega8241_early_serial_map(); ++ ++ printk(KERN_INFO "Iomega StorCenter Network Hard Drive\n"); ++ printk(KERN_INFO "Linux Kernel by Protium Computing\n"); ++ ++ /* DINK32 12.3 and below do not correctly enable any caches. ++ * We will do this now with good known values. Future versions ++ * of DINK32 are supposed to get this correct. ++ */ ++ if (cpu_has_feature(CPU_FTR_SPEC7450)) ++ /* 745x is different. We only want to pass along enable. */ ++ _set_L2CR(L2CR_L2E); ++ else if (cpu_has_feature(CPU_FTR_L2CR)) ++ /* All modules have 1MB of L2. We also assume that an ++ * L2 divisor of 3 will work. ++ */ ++ _set_L2CR(L2CR_L2E | L2CR_L2SIZ_1MB | L2CR_L2CLK_DIV3 ++ | L2CR_L2RAM_PIPE | L2CR_L2OH_1_0 | L2CR_L2DF); ++#if 0 ++ /* Untested right now. */ ++ if (cpu_has_feature(CPU_FTR_L3CR)) { ++ /* Magic value. */ ++ _set_L3CR(0x8f032000); ++ } ++#endif ++} ++ ++#define IOMEGA8241_87308_CFG_ADDR 0x15c ++#define IOMEGA8241_87308_CFG_DATA 0x15d ++ ++#define IOMEGA8241_87308_CFG_INB(addr, byte) { \ ++ outb((addr), IOMEGA8241_87308_CFG_ADDR); \ ++ (byte) = inb(IOMEGA8241_87308_CFG_DATA); \ ++} ++ ++#define IOMEGA8241_87308_CFG_OUTB(addr, byte) { \ ++ outb((addr), IOMEGA8241_87308_CFG_ADDR); \ ++ outb((byte), IOMEGA8241_87308_CFG_DATA); \ ++} ++ ++#define IOMEGA8241_87308_SELECT_DEV(dev_num) { \ ++ IOMEGA8241_87308_CFG_OUTB(0x07, (dev_num)); \ ++} ++ ++#define IOMEGA8241_87308_DEV_ENABLE(dev_num) { \ ++ IOMEGA8241_87308_SELECT_DEV(dev_num); \ ++ IOMEGA8241_87308_CFG_OUTB(0x30, 0x01); \ ++} ++ ++static int __init ++iomega8241_request_io(void) ++{ ++ request_region(0x00,0x20,"dma1"); ++ request_region(0x20,0x20,"pic1"); ++ request_region(0x40,0x20,"timer"); ++ request_region(0x80,0x10,"dma page reg"); ++ request_region(0xa0,0x20,"pic2"); ++ request_region(0xc0,0x20,"dma2"); ++ ++ return 0; ++} ++ ++arch_initcall(iomega8241_request_io); ++ ++/* ++ * Interrupt setup and service. Interrrupts on the Sandpoint come ++ * from the four PCI slots plus the 8259 in the Winbond Super I/O (SIO). ++ * The 8259 is cascaded from EPIC IRQ0, IRQ1-4 map to PCI slots 1-4, ++ * IDE is on EPIC 7 and 8. ++ */ ++static void __init ++iomega8241_init_IRQ(void) ++{ ++ OpenPIC_InitSenses = iomega8241_openpic_initsenses; ++ OpenPIC_NumInitSenses = sizeof(iomega8241_openpic_initsenses); ++ ++ /* ++ * We need to tell openpic_set_sources where things actually are. ++ * mpc10x_common will set up OpenPIC_Addr at ioremap(EUMB phys base + ++ * EPIC offset (0x40000)); The EPIC IRQ register address map - ++ * Interrupt Source Configuration Registers gives these numbers as ++ * offsets starting at 0x50200, we need to adjust accordingly ++ */ ++ mpc10x_set_openpic(); ++} ++ ++static int ++iomega8241_get_irq(struct pt_regs *regs) ++{ ++ int irq; ++ ++ irq = openpic_irq(); ++ if (irq == OPENPIC_VEC_SPURIOUS) ++ irq = -1; ++ ++ return irq; ++} ++ ++static u32 ++iomega8241_irq_canonicalize(u32 irq) ++{ ++ return irq; ++} ++ ++static unsigned long __init ++iomega8241_find_end_of_memory(void) ++{ ++ bd_t *bp = (bd_t *)__res; ++ ++ if (bp->bi_memsize) ++ return bp->bi_memsize; ++ ++ return 64*1024*1024; ++} ++ ++static void __init ++iomega8241_map_io(void) ++{ ++ /* changes suggested by Freescale: */ ++ io_block_mapping(0xfc000000, 0xfc000000, 0x04000000, _PAGE_IO); ++} ++ ++static void ++iomega8241_restart(char *cmd) ++{ ++ local_irq_disable(); ++ ++ /* Set exception prefix high - to the firmware */ ++ _nmask_and_or_msr(0, MSR_IP); ++ ++ for(;;); /* Spin until reset happens */ ++} ++ ++static void ++iomega8241_power_off(void) ++{ ++ local_irq_disable(); ++ for(;;); /* No way to shut power off with software */ ++ /* NOTREACHED */ ++} ++ ++static void ++iomega8241_halt(void) ++{ ++ iomega8241_power_off(); ++ /* NOTREACHED */ ++} ++ ++static int ++iomega8241_show_cpuinfo(struct seq_file *m) ++{ ++ seq_printf(m, "vendor\t\t: Iomega Corporation\n"); ++ seq_printf(m, "machine\t\t: Iomega StorCenter Network Hard Drive\n"); ++ ++ return 0; ++} ++ ++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) ++/* ++ * IDE support. ++ */ ++static int iomega8241_ide_ports_known = 0; ++static unsigned long iomega8241_ide_regbase[MAX_HWIFS]; ++static unsigned long iomega8241_ide_ctl_regbase[MAX_HWIFS]; ++static unsigned long iomega8241_idedma_regbase; ++ ++static void ++iomega8241_ide_probe(void) ++{ ++ struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_VIA, ++ PCI_DEVICE_ID_VIA_6410, NULL); ++ ++ if (pdev) { ++ iomega8241_ide_regbase[0]=pdev->resource[0].start; ++ iomega8241_ide_regbase[1]=pdev->resource[2].start; ++ iomega8241_ide_ctl_regbase[0]=pdev->resource[1].start; ++ iomega8241_ide_ctl_regbase[1]=pdev->resource[3].start; ++ iomega8241_idedma_regbase=pdev->resource[4].start; ++ ++ printk("Found: VIA VT6410 based IDE\n"); ++ } ++ ++ iomega8241_ide_ports_known = 1; ++} ++ ++static int ++iomega8241_ide_default_irq(unsigned long base) ++{ ++ if (iomega8241_ide_ports_known == 0) ++ iomega8241_ide_probe(); ++ ++ if (base == iomega8241_ide_regbase[0]) ++ return IDE_INTRUPT; ++ else if (base == iomega8241_ide_regbase[1]) ++ return IDE_INTRUPT; ++ else ++ return 0; ++} ++ ++static unsigned long ++iomega8241_ide_default_io_base(int index) ++{ ++ if (iomega8241_ide_ports_known == 0) ++ iomega8241_ide_probe(); ++ ++ return iomega8241_ide_regbase[index]; ++} ++ ++static void __init ++iomega8241_ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port, ++ unsigned long ctrl_port, int *irq) ++{ ++ unsigned long reg = data_port; ++ uint alt_status_base; ++ int i; ++ ++ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { ++ hw->io_ports[i] = reg++; ++ } ++ ++ if (data_port == iomega8241_ide_regbase[0]) { ++ alt_status_base = iomega8241_ide_ctl_regbase[0] + 2; ++ hw->irq = IDE_INTRUPT; ++ } else if (data_port == iomega8241_ide_regbase[1]) { ++ alt_status_base = iomega8241_ide_ctl_regbase[1] + 2; ++ hw->irq = IDE_INTRUPT; ++ } else { ++ alt_status_base = 0; ++ hw->irq = 0; ++ } ++ ++ if (ctrl_port) { ++ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port; ++ } else { ++ hw->io_ports[IDE_CONTROL_OFFSET] = alt_status_base; ++ } ++ ++ if (irq != NULL) { ++ *irq = hw->irq; ++ } ++} ++#endif ++ ++/* ++ * Set BAT 3 to map 0xf8000000 to end of physical memory space 1-to-1. ++ */ ++static __inline__ void ++iomega8241_set_bat(void) ++{ ++ unsigned long bat3u, bat3l; ++ ++ __asm__ __volatile__( ++ " lis %0,0xf800\n \ ++ ori %1,%0,0x002a\n \ ++ ori %0,%0,0x0ffe\n \ ++ mtspr 0x21e,%0\n \ ++ mtspr 0x21f,%1\n \ ++ isync\n \ ++ sync " ++ : "=r" (bat3u), "=r" (bat3l)); ++} ++ ++TODC_ALLOC(); ++ ++/* Real Time Clock support. ++ * StorCenter has a DS1337 accessed by I2C. ++ */ ++static void __init ++iomega8241_calibrate_decr(void) ++{ ++ ulong freq = get_bus_frequency() / 4; ++ printk("time_init: decrementer frequency = %lu.%.6lu MHz\n", ++ freq/1000000, freq%1000000); ++ if (freq == 33000000) ++ freq += 332550; ++ ++ tb_ticks_per_jiffy = freq / HZ; ++ tb_to_us = mulhwu_scale_factor(freq, 1000000); ++ ++ return; ++} ++ ++ ++static ulong iomega8241_get_rtc_time(void) ++{ ++ struct rtc_time tm; ++ int result; ++ ++ spin_lock(&rtc_lock); ++ result = ds1337_do_command(0, DS1337_GET_DATE, &tm); ++ spin_unlock(&rtc_lock); ++ ++ if (result == 0) ++ result = mktime(tm.tm_year+1900, tm.tm_mon, tm.tm_mday, ++ tm.tm_hour, tm.tm_min, tm.tm_sec); ++ ++ return result; ++} ++ ++ ++static int iomega8241_set_rtc_time(unsigned long nowtime) ++{ ++ struct rtc_time tm; ++ int result; ++ ++ to_tm(nowtime, &tm); ++ tm.tm_year -= 1900; ++ spin_lock(&rtc_lock); ++ result = ds1337_do_command(0, DS1337_SET_DATE, &tm); ++ spin_unlock(&rtc_lock); ++ ++ return result; ++} ++ ++ ++static void __init ++iomega8241_init2(void) ++{ ++ ppc_md.set_rtc_time = iomega8241_set_rtc_time; ++ ppc_md.get_rtc_time = iomega8241_get_rtc_time; ++} ++ ++ ++void __init ++platform_init(unsigned long r3, unsigned long r4, unsigned long r5, ++ unsigned long r6, unsigned long r7) ++{ ++ parse_bootinfo(find_bootinfo()); ++ ++ /* ASSUMPTION: If both r3 (bd_t pointer) and r6 (cmdline pointer) ++ * are non-zero, then we should use the board info from the bd_t ++ * structure and the cmdline pointed to by r6 instead of the ++ * information from birecs, if any. Otherwise, use the information ++ * from birecs as discovered by the preceeding call to ++ * parse_bootinfo(). This rule should work with both PPCBoot, which ++ * uses a bd_t board info structure, and the kernel boot wrapper, ++ * which uses birecs. ++ */ ++ if (r3 && r6) { ++ /* copy board info structure */ ++ memcpy( (void *)__res,(void *)(r3+KERNELBASE), sizeof(bd_t) ); ++ /* copy command line */ ++ *(char *)(r7+KERNELBASE) = 0; ++ strcpy(cmd_line, (char *)(r6+KERNELBASE)); ++ } ++ ++#ifdef CONFIG_BLK_DEV_INITRD ++ /* take care of initrd if we have one */ ++ if (r4) { ++ initrd_start = r4 + KERNELBASE; ++ initrd_end = r5 + KERNELBASE; ++ } ++#endif /* CONFIG_BLK_DEV_INITRD */ ++ ++ /* Map in board regs, etc. */ ++ iomega8241_set_bat(); ++ ++ isa_io_base = MPC10X_MAPB_ISA_IO_BASE; ++ isa_mem_base = MPC10X_MAPB_ISA_MEM_BASE; ++ pci_dram_offset = MPC10X_MAPB_DRAM_OFFSET; ++ ISA_DMA_THRESHOLD = 0x00ffffff; ++ DMA_MODE_READ = 0x44; ++ DMA_MODE_WRITE = 0x48; ++ ++ ppc_md.setup_arch = iomega8241_setup_arch; ++ ppc_md.show_cpuinfo = iomega8241_show_cpuinfo; ++ ppc_md.irq_canonicalize = iomega8241_irq_canonicalize; ++ ppc_md.init_IRQ = iomega8241_init_IRQ; ++ ppc_md.get_irq = iomega8241_get_irq; ++ ppc_md.init = iomega8241_init2; ++ ++ ppc_md.restart = iomega8241_restart; ++ ppc_md.power_off = iomega8241_power_off; ++ ppc_md.halt = iomega8241_halt; ++ ++ ppc_md.find_end_of_memory = iomega8241_find_end_of_memory; ++ ppc_md.setup_io_mappings = iomega8241_map_io; ++ ++ ppc_md.time_init = NULL; ++ ppc_md.set_rtc_time = NULL; ++ ppc_md.get_rtc_time = NULL; ++ ppc_md.calibrate_decr = iomega8241_calibrate_decr; ++ ++/* ++ * extra credit: ++ * ++ * ppc_md.nvram_read_val = todc_mc146818_read_val; ++ * ppc_md.nvram_write_val = todc_mc146818_write_val; ++ */ ++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) ++ ppc_ide_md.default_irq = iomega8241_ide_default_irq; ++ ppc_ide_md.default_io_base = iomega8241_ide_default_io_base; ++ ppc_ide_md.ide_init_hwif = iomega8241_ide_init_hwif_ports; ++#endif ++ ++} +--- linux-2.6.15.orig/arch/ppc/Kconfig 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/Kconfig 2008-01-01 22:12:32.365126129 -0800 +@@ -649,6 +649,15 @@ + End of Life: - + URL: <http://www.windriver.com/> + ++config IOMEGA8241 ++ bool "IOMEGA8241" ++ ---help--- ++ Iomega StorCenter Network Hard Drive ++ Manufacturer: Iomega Corporation ++ Date of Release: May 2005 ++ End of Life: - ++ URL: <http://www.iomega.com/> ++ + config SBS8260 + bool "SBS8260" + +@@ -801,7 +810,7 @@ + depends on SANDPOINT || SPRUCE || PPLUS || \ + PRPMC750 || PRPMC800 || LOPEC || \ + (EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D || \ +- 83xx ++ 83xx || IOMEGA8241 + default y + + config FORCE +@@ -870,13 +879,13 @@ + + config MPC10X_BRIDGE + bool +- depends on POWERPMC250 || LOPEC || SANDPOINT ++ depends on POWERPMC250 || LOPEC || SANDPOINT || IOMEGA8241 + select PPC_INDIRECT_PCI + default y + + config MPC10X_OPENPIC + bool +- depends on POWERPMC250 || LOPEC || SANDPOINT ++ depends on POWERPMC250 || LOPEC || SANDPOINT || IOMEGA8241 + default y + + config MPC10X_STORE_GATHERING +--- linux-2.6.15.orig/arch/ppc/boot/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/boot/Makefile 2008-01-01 22:12:32.365126129 -0800 +@@ -13,7 +13,7 @@ + CFLAGS += -fno-builtin -D__BOOTER__ -Iarch/$(ARCH)/boot/include + HOSTCFLAGS += -Iarch/$(ARCH)/boot/include + +-BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd ++BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd uImage + + bootdir-y := simple + bootdir-$(CONFIG_PPC_OF) += openfirmware +--- linux-2.6.15.orig/arch/ppc/boot/simple/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/boot/simple/Makefile 2008-01-01 22:12:32.365126129 -0800 +@@ -158,6 +158,10 @@ + end-$(CONFIG_SANDPOINT) := sandpoint + cacheflag-$(CONFIG_SANDPOINT) := -include $(clear_L2_L3) + ++ end-$(CONFIG_IOMEGA8241) := iomega8241 ++ cacheflag-$(CONFIG_IOMEGA8241) := -include $(clear_L2_L3) ++ ++ + zimage-$(CONFIG_SPRUCE) := zImage-TREE + zimageinitrd-$(CONFIG_SPRUCE) := zImage.initrd-TREE + end-$(CONFIG_SPRUCE) := spruce +--- linux-2.6.15.orig/arch/ppc/platforms/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/platforms/Makefile 2008-01-01 22:12:32.365126129 -0800 +@@ -42,6 +42,7 @@ + obj-$(CONFIG_RADSTONE_PPC7D) += radstone_ppc7d.o + obj-$(CONFIG_SANDPOINT) += sandpoint.o + obj-$(CONFIG_SBC82xx) += sbc82xx.o ++obj-$(CONFIG_IOMEGA8241) += iomega8241.o + obj-$(CONFIG_SPRUCE) += spruce.o + obj-$(CONFIG_LITE5200) += lite5200.o + obj-$(CONFIG_EV64360) += ev64360.o +--- linux-2.6.15.orig/arch/ppc/platforms/iomega8241.h 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.15/arch/ppc/platforms/iomega8241.h 2008-01-01 22:12:32.365126129 -0800 +@@ -0,0 +1,66 @@ ++/* ++ * arch/ppc/platforms/iomega8241.h ++ * ++ * The Iomega StorCenter Network Hard Drive platform is based on the ++ * original sandpoint test platform. That GNU copyright information ++ * is reproduced below: ++ * ++ * Board setup routines for the Motorola SPS Sandpoint Test Platform. ++ * ++ * Author: Mark A. Greer ++ * mgreer@mvista.com ++ * ++ * 2000-2003 (c) MontaVista Software, Inc. This file is licensed under ++ * the terms of the GNU General Public License version 2. This program ++ * is licensed "as is" without any warranty of any kind, whether express ++ * or implied. ++ */ ++ ++#ifndef __PPC_PLATFORMS_IOMEGA8241_H ++#define __PPC_PLATFORMS_IOMEGA8241_H ++ ++#include <asm/ppcboot.h> ++#include <linux/config.h> ++ ++/* ++ * G2 Configuration: ++ * ++ * DEVICE IDSEL INTERRUPT NUMBER ++ * AN983B AD12 IRQ0 ++ * IDE Via DS6410 AD13 IRQ1 ++ * NEC USB uPD720101 AD14 IRQ2,3,4 ++ */ ++ ++#define IDE_INTRUPT 1 ++ ++/* ++ * The sandpoint boards have processor modules that either have an 8240 or ++ * an MPC107 host bridge on them. These bridges have an IDSEL line that allows ++ * them to respond to PCI transactions as if they were a normal PCI devices. ++ * However, the processor on the processor side of the bridge can not reach ++ * out onto the PCI bus and then select the bridge or bad things will happen ++ * (documented in the 8240 and 107 manuals). ++ * Because of this, we always skip the bridge PCI device when accessing the ++ * PCI bus. The PCI slot that the bridge occupies is defined by the macro ++ * below. ++ */ ++#define IOMEGA8241_HOST_BRIDGE_IDSEL 12 ++ ++void board_find_bridges(void); ++void iomega8241_fix_uart(void); ++/* ++ * Serial defines. ++ */ ++#define IOMEGA8241_SERIAL_0 0xFDF04500 ++#define IOMEGA8241_SERIAL_1 0xFDF04600 ++ ++#define RS_TABLE_SIZE 4 ++ ++/* Rate for the 1.8432 Mhz clock for the onboard serial chip */ ++#define BASE_BAUD ( 100000000 / 16 ) /* 100Mhz speed, divided by 16 ++ to make the output freqency*/ ++#define UART_CLK 1843200 ++ ++#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST) ++ ++#endif /* __PPC_PLATFORMS_IOMEGA8241_H */ +--- linux-2.6.15.orig/arch/ppc/syslib/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/syslib/Makefile 2008-01-01 22:12:32.365126129 -0800 +@@ -71,6 +71,7 @@ + obj-$(CONFIG_PRPMC800) += open_pic.o pci_auto.o + obj-$(CONFIG_RADSTONE_PPC7D) += pci_auto.o + obj-$(CONFIG_SANDPOINT) += pci_auto.o todc_time.o ++obj-$(CONFIG_IOMEGA8241) += pci_auto.o + obj-$(CONFIG_SBC82xx) += todc_time.o + obj-$(CONFIG_SPRUCE) += cpc700_pic.o pci_auto.o \ + todc_time.o +--- linux-2.6.15.orig/arch/ppc/syslib/mpc10x_common.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/arch/ppc/syslib/mpc10x_common.c 2008-01-01 22:12:32.365126129 -0800 +@@ -35,6 +35,10 @@ + #include <asm/mpc10x.h> + #include <asm/ppc_sys.h> + ++#ifdef CONFIG_IOMEGA8241 ++#define NUM_8259_INTERRUPTS 0 ++#endif ++ + #ifdef CONFIG_MPC10X_OPENPIC + #ifdef CONFIG_EPIC_SERIAL_MODE + #define EPIC_IRQ_BASE (epic_serial_mode ? 16 : 5) +--- linux-2.6.15.orig/drivers/char/Kconfig 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/char/Kconfig 2008-01-01 22:12:32.369126358 -0800 +@@ -999,6 +999,25 @@ + The mmtimer device allows direct userspace access to the + Altix system timer. + ++config 8241EMI ++ tristate "EMI fixes for the 8241 processor" ++ depends on IOMEGA8241 ++ default y ++ help ++ By changing the ODCR value from 0xAB to 0x95, we are able to reduce ++ the EMI along the PCI and MEMORY buses. ++ ++ msb 7 1 Controls the drive strength of DRV_PCI (40ohm) ++ 6 0 reserved ++ 5-4 01 Controls the drive strength of SDRAM_CLK (40ohm) ++ 3-2 01 Controls the drive strength of PCI_CLK and ++ PCI_CLK_SYNC_OUT (40ohm) ++ 1-0 01 Controls the drive strength of SDRAM_CLK and ++ SDRAM_SYNC_OUT (40ohm) ++ ++ See table 4-19 on page 4-22 of the MPC8245 Integrated Processor ++ User's Manual for details on these registers. ++ + source "drivers/char/tpm/Kconfig" + + config TELCLOCK +--- linux-2.6.15.orig/drivers/char/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/char/Makefile 2008-01-01 22:12:32.369126358 -0800 +@@ -48,6 +48,7 @@ + obj-$(CONFIG_VIOTAPE) += viotape.o + obj-$(CONFIG_HVCS) += hvcs.o + obj-$(CONFIG_SGI_MBCS) += mbcs.o ++obj-$(CONFIG_8241EMI) += emiregs.o + + obj-$(CONFIG_PRINTER) += lp.o + obj-$(CONFIG_TIPAR) += tipar.o +--- linux-2.6.15.orig/drivers/char/emiregs.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.15/drivers/char/emiregs.c 2008-01-01 22:12:32.369126358 -0800 +@@ -0,0 +1,68 @@ ++#include <linux/init.h> ++#include <linux/module.h> ++ ++MODULE_LICENSE ("GPL"); ++ ++/* ++ The following CONFIG_READ_BYTE and CONFIG_WRITE_BYTE ++ functions were taken from u-boot ++ ++ By changing the ODCR value from 0xAB to 0x95, we are able to reduce ++ the EMI along the PCI and MEMORY buses. ++ ++ msb 7 1 Controls the drive strength of DRV_PCI (40ohm) ++ 6 0 reserved ++ 5-4 01 Controls the drive strength of SDRAM_CLK (40ohm) ++ 3-2 01 Controls the drive strength of PCI_CLK and ++ PCI_CLK_SYNC_OUT (40ohm) ++ 1-0 01 Controls the drive strength of SDRAM_CLK and ++ SDRAM_SYNC_OUT (40ohm) ++ ++ See table 4-19 on page 4-22 of the MPC8245 Integrated Processor ++ User's Manual for details on these registers. ++*/ ++#define CONFIG_ADDR 0xfec00000 ++#define CONFIG_DATA 0xfee00000 ++ ++#define CONFIG_READ_BYTE( addr, reg ) \ ++ __asm__ ( \ ++ " stwbrx %1, 0, %2\n \ ++ sync\n \ ++ lbz %0, %4(%3)\n \ ++ sync " \ ++ : "=r" (reg) \ ++ : "r" ((addr) & ~3), "r" (CONFIG_ADDR), \ ++ "b" (CONFIG_DATA), "n" ((addr) & 3)); ++ ++#define CONFIG_WRITE_BYTE( addr, data ) \ ++ __asm__ __volatile__( \ ++ " stwbrx %1, 0, %0\n \ ++ sync\n \ ++ stb %3, %4(%2)\n \ ++ sync " \ ++ : /* no output */ \ ++ : "r" (CONFIG_ADDR), "r" ((addr) & ~3), \ ++ "b" (CONFIG_DATA), "r" (data), \ ++ "n" ((addr) & 3)); ++ ++ ++static int emiregs_init (void) ++ { ++ u_long val, val2; ++ CONFIG_READ_BYTE (0x80000073, val); ++ CONFIG_WRITE_BYTE (0x80000073, 0x95); ++ CONFIG_READ_BYTE (0x80000073, val2); ++ ++ printk (KERN_INFO "8241 ODCR: changed from 0x%02lx, to 0x%02lx\n", val, val2); ++ ++ return 0; ++ } ++ ++static void emiregs_exit (void) ++ { ++ printk (KERN_INFO "emiregs module exitting\n"); ++ return; ++ } ++ ++module_init (emiregs_init); ++module_exit (emiregs_exit); +--- linux-2.6.15.orig/drivers/char/rtc.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/char/rtc.c 2008-01-01 22:12:32.369126358 -0800 +@@ -514,9 +514,16 @@ + } + case RTC_RD_TIME: /* Read the time/date from RTC */ + { ++#ifdef CONFIG_IOMEGA8241 ++ unsigned long usi_time; ++ usi_time = ds1337_get_time(); ++ to_tm(usi_time,wtime); ++ break; ++#else + memset(&wtime, 0, sizeof(struct rtc_time)); + rtc_get_rtc_time(&wtime); + break; ++#endif /* CONFIG_IOMEGA8241 */ + } + case RTC_SET_TIME: /* Set the RTC */ + { +@@ -558,7 +565,7 @@ + + if ((yrs -= epoch) > 255) /* They are unsigned */ + return -EINVAL; +- ++#ifndef CONFIG_IOMEGA8241 + spin_lock_irq(&rtc_lock); + #ifdef CONFIG_MACH_DECSTATION + real_yrs = yrs; +@@ -614,6 +621,11 @@ + + spin_unlock_irq(&rtc_lock); + return 0; ++#else /* CONFIG_IOMEGA8241 */ ++ /* next is the forth API provided by ds1337.c USI-SS */ ++ ds1337_usi_set_time(yrs,mon,day,hrs,min,sec); ++ break; ++#endif /* CONFIG_IOMEGA8241 */ + } + #ifdef RTC_IRQ + case RTC_IRQP_READ: /* Read the periodic IRQ rate. */ +--- linux-2.6.15.orig/drivers/i2c/busses/i2c-mpc.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/i2c/busses/i2c-mpc.c 2008-01-01 22:12:32.369126358 -0800 +@@ -285,7 +285,11 @@ + .algo = &mpc_algo, + .class = I2C_CLASS_HWMON, + .timeout = 1, ++#ifdef CONFIG_IOMEGA8241 ++ .retries = 400 ++#else + .retries = 1 ++#endif /* CONFIG_IOMEGA8241 */ + }; + + static int fsl_i2c_probe(struct platform_device *pdev) +--- linux-2.6.15.orig/drivers/ide/pci/via82cxxx.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/ide/pci/via82cxxx.c 2008-01-02 08:21:42.876113109 -0800 +@@ -305,6 +305,12 @@ + */ + + pci_read_config_byte(dev, VIA_IDE_ENABLE, &v); ++#ifdef CONFIG_IOMEGA8241 ++ if(via_config->id == PCI_DEVICE_ID_VIA_6410) { ++ pci_write_config_byte(dev, VIA_IDE_ENABLE, v | 0x3); ++ } ++#endif ++ + + /* + * Set up FIFO sizes and thresholds. +@@ -485,7 +492,11 @@ + .channels = 2, + .autodma = AUTODMA, + .enablebits = {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ++#ifdef CONFIG_IOMEGA8241 ++ .bootable = NEVER_BOARD, ++#else + .bootable = ON_BOARD, ++#endif + } + }; + +--- linux-2.6.15.orig/drivers/mtd/maps/Kconfig 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/mtd/maps/Kconfig 2008-01-01 22:12:32.369126358 -0800 +@@ -639,5 +639,10 @@ + + This selection automatically selects the map_ram driver. + +-endmenu ++config MTD_IOMEGA8241 ++ tristate "Map driver for the Iomega 8241 StorCenter board" ++ depends on IOMEGA8241 ++ help ++ Map driver for the Iomega StorCenter Network Hard Drive. + ++endmenu +--- linux-2.6.15.orig/drivers/mtd/maps/Makefile 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/mtd/maps/Makefile 2008-01-01 22:12:32.369126358 -0800 +@@ -68,6 +68,7 @@ + obj-$(CONFIG_MTD_WRSBC8260) += wr_sbc82xx_flash.o + obj-$(CONFIG_MTD_DMV182) += dmv182.o + obj-$(CONFIG_MTD_SHARP_SL) += sharpsl-flash.o ++obj-$(CONFIG_MTD_IOMEGA8241) += iomega8241_mtd.o + obj-$(CONFIG_MTD_PLATRAM) += plat-ram.o + obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o + obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o +--- linux-2.6.15.orig/drivers/mtd/maps/iomega8241_mtd.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.15/drivers/mtd/maps/iomega8241_mtd.c 2008-01-01 22:12:32.369126358 -0800 +@@ -0,0 +1,102 @@ ++/* ++ * drivers/mtd/maps/iomega8241_mtd.c ++ * ++ * Iomega Corporation ++ * ++ * Flash mapping for the Iomega StorCenter Network Hard Drive ++ * ++ * This module is based on the mpc1211.c file created by ++ * Saito.K & Jeanne <ksaito@interface.co.jp> ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/kernel.h> ++#include <asm/io.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/map.h> ++#include <linux/config.h> ++#include <linux/mtd/partitions.h> ++ ++#include <asm/immap_cpm2.h> ++ ++static struct mtd_info *iomegamtd; ++static struct mtd_partition *parsed_parts; ++ ++struct map_info iomega8241_flash_map = { ++ .name = "Flash", ++ .phys = 0xFF800000, ++ .size = 0x800000, ++ .bankwidth = 1, ++}; ++ ++static struct mtd_partition iomega8241_partitions[] = { ++ { ++ .name = "kernel", ++ /* 1507328 bytes: kernel space */ ++ .size = 0x00170000, ++ .offset = 0, ++ }, { ++ .name = "filesystem", ++ /* 5832704 bytes: root partition */ ++ .size = 0x00590000, ++ /* start is FF970000 */ ++ .offset = MTDPART_OFS_APPEND, ++ }, { ++ .name = "bootloader", ++ /* 262144 bytes for u-boot */ ++ .size = 0x00040000, ++ /* start is FFF00000 */ ++ .offset = MTDPART_OFS_APPEND, ++ }, { ++ .name = "sysconfig", ++ /* 786432 bytes: sysconf partition */ ++ .size = 0x000C0000, ++ /* start is FFF40000 */ ++ .offset = MTDPART_OFS_APPEND, ++ } ++}; ++ ++static int __init ++init_iomega8241_flash(void) ++{ ++ int nr_parts; ++ ++ iomega8241_flash_map.virt = ioremap(iomega8241_flash_map.phys, iomega8241_flash_map.size); ++ ++ simple_map_init(&iomega8241_flash_map); ++ ++ printk("Iomega8241: Probing for flash...\n"); ++ iomegamtd = do_map_probe("cfi_probe", &iomega8241_flash_map); ++ if (!iomegamtd) { ++ printk(KERN_NOTICE "Flash chips not detected at either possible location.\n"); ++ return -ENXIO; ++ } ++ printk("Iomega8241: Flash found at location 0x%x\n", iomega8241_flash_map.phys); ++ iomegamtd->owner = THIS_MODULE; ++ ++ parsed_parts = iomega8241_partitions; ++ nr_parts = ARRAY_SIZE(iomega8241_partitions); ++ ++ add_mtd_partitions(iomegamtd, parsed_parts, nr_parts); ++ return 0; ++} ++ ++static void __exit ++cleanup_iomega8241_flash(void) ++{ ++ if (parsed_parts) ++ del_mtd_partitions(iomegamtd); ++ else ++ del_mtd_device(iomegamtd); ++ map_destroy(iomegamtd); ++} ++ ++module_init(init_iomega8241_flash); ++module_exit(cleanup_iomega8241_flash); ++ ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Anthony Russello <russello@iomega.com>"); ++MODULE_DESCRIPTION("Flash mapping for the Iomega StorCenter Network Hard Drive"); +--- linux-2.6.15.orig/drivers/net/wireless/prism54/islpci_dev.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/net/wireless/prism54/islpci_dev.c 2008-01-01 22:12:32.369126358 -0800 +@@ -874,6 +874,7 @@ + + /* select the firmware file depending on the device id */ + switch (pdev->device) { ++ case 0x3873: + case 0x3877: + strcpy(priv->firmware, ISL3877_IMAGE_FILE); + break; +--- linux-2.6.15.orig/drivers/net/wireless/prism54/islpci_hotplug.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/net/wireless/prism54/islpci_hotplug.c 2008-01-01 22:12:32.373126589 -0800 +@@ -70,6 +70,13 @@ + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, 0 + }, ++ /* Intersil PRISM NetGate 2511 MP PLUS 100mW */ ++ { ++ 0x1260, 0x3873, ++ PCI_ANY_ID, PCI_ANY_ID, ++ 0, 0, 0 ++ }, ++ + + /* End of list */ + {0,0,0,0,0,0,0} +--- linux-2.6.15.orig/drivers/pci/probe.c 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/drivers/pci/probe.c 2008-01-01 22:12:32.373126589 -0800 +@@ -596,6 +596,20 @@ + pci_read_config_dword(dev, PCI_CLASS_REVISION, &class); + class >>= 8; /* upper 3 bytes */ + dev->class = class; ++#ifdef CONFIG_IOMEGA8241 ++ /* ++ * The VIA VT6410 used on the Iomega StorCenter Network Hard Drive reports ++ * with a class of 0x01040 (PCI_CLASS_STORAGE_RAID). ++ * ++ * The following correction allows it to be used as a standard PCI IDE ++ * controller (0x0101) ++ */ ++ if((dev->vendor==PCI_VENDOR_ID_VIA)&&(dev->device==PCI_DEVICE_ID_VIA_6410)) { ++ dev->class=0x01018f; ++ printk("PCI: Adjustments for the VIA VT6410 controller have been made\n"); ++ } ++#endif /* CONFIG_IOMEGA8241 */ ++ + class >>= 8; + + pr_debug("PCI: Found %s [%04x/%04x] %06x %02x\n", pci_name(dev), +--- linux-2.6.15.orig/include/asm-ppc/mpc10x.h 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/include/asm-ppc/mpc10x.h 2008-01-01 22:12:32.373126589 -0800 +@@ -76,7 +76,11 @@ + + #define MPC10X_MAPB_PCI_INTACK_ADDR 0xfef00000 + #define MPC10X_MAPB_PCI_IO_START 0x00000000 ++#ifdef CONFIG_IOMEGA8241 ++#define MPC10X_MAPB_PCI_IO_END 0xFFFF ++#else + #define MPC10X_MAPB_PCI_IO_END (0x00c00000 - 1) ++#endif /* CONFIG_IOMEGA8241 */ + #define MPC10X_MAPB_PCI_MEM_START 0x80000000 + #define MPC10X_MAPB_PCI_MEM_END (0xc0000000 - 1) + +@@ -157,7 +161,12 @@ + */ + extern unsigned long ioremap_base; + #define MPC10X_MAPA_EUMB_BASE (ioremap_base - MPC10X_EUMB_SIZE) ++ ++#ifdef CONFIG_IOMEGA8241 ++#define MPC10X_MAPB_EUMB_BASE 0xFDF00000 ++#else + #define MPC10X_MAPB_EUMB_BASE MPC10X_MAPA_EUMB_BASE ++#endif + + enum ppc_sys_devices { + MPC10X_IIC1, +--- linux-2.6.15.orig/include/asm-ppc/serial.h 2006-01-02 19:21:10.000000000 -0800 ++++ linux-2.6.15/include/asm-ppc/serial.h 2008-01-01 22:12:32.373126589 -0800 +@@ -38,6 +38,8 @@ + #include <asm/mpc85xx.h> + #elif defined(CONFIG_RADSTONE_PPC7D) + #include <platforms/radstone_ppc7d.h> ++#elif defined(CONFIG_IOMEGA8241) ++#include <platforms/iomega8241.h> + #else + + /* diff --git a/packages/linux/linux-storcenter_2.6.15.7.bb b/packages/linux/linux-storcenter_2.6.15.7.bb new file mode 100644 index 0000000000..4895b2174e --- /dev/null +++ b/packages/linux/linux-storcenter_2.6.15.7.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "Linux Kernel for the Iomega storcenter platform" +SECTION = "kernel" +LICENSE = "GPL" +DEPENDS = "u-boot-utils-native" +PR = "r1" + +COMPATIBLE_MACHINE = "storcenter" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ + file://kernel.patch-${PV};patch=1 \ + file://defconfig-${PV} " + +S = "${WORKDIR}/linux-${PV}" + +inherit kernel + +export ARCH = "ppc" + +KERNEL_IMAGETYPE = "uImage" +KERNEL_OUTPUT = "arch/${ARCH}/boot/images/${KERNEL_IMAGETYPE}" + +do_configure() { + install -m 644 ${WORKDIR}/defconfig-${PV} ${S}/.config + make ARCH=${ARCH} oldconfig +} + +do_deploy() { + install -d ${DEPLOY_DIR_IMAGE} + install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME} +} + +do_deploy[dirs] = "${S}" + +addtask deploy before do_build after do_compile + + diff --git a/packages/linux/linux-tornado-omap2/htctornado/defconfig b/packages/linux/linux-tornado-omap2/htctornado/defconfig index 9be1116739..ec67393992 100644 --- a/packages/linux/linux-tornado-omap2/htctornado/defconfig +++ b/packages/linux/linux-tornado-omap2/htctornado/defconfig @@ -259,7 +259,10 @@ CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set diff --git a/packages/linux/linux-tornado-omap2_2.6.16.16.bb b/packages/linux/linux-tornado-omap2_2.6.16.16.bb index f76442401f..ccbb4cd867 100644 --- a/packages/linux/linux-tornado-omap2_2.6.16.16.bb +++ b/packages/linux/linux-tornado-omap2_2.6.16.16.bb @@ -1,6 +1,7 @@ DESCRIPTION = "Linux kernel for HTC Tornado/Typhoon/Hurricane phones." SECTION = "kernel" LICENSE = "GPL" +PR = "r1" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \ http://www.muru.com/linux/omap/patches/old/patch-2.6.16-omap2.bz2;patch=1 \ diff --git a/packages/linux/linux/simpad/defconfig b/packages/linux/linux/simpad/defconfig index 33f08a0593..420d531dc4 100644 --- a/packages/linux/linux/simpad/defconfig +++ b/packages/linux/linux/simpad/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21 -# Sat Jul 7 00:02:55 2007 +# Sat Jan 12 20:06:01 2008 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -227,7 +227,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" +CONFIG_CMDLINE=" quiet " # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set @@ -413,7 +413,12 @@ CONFIG_BT_BNEP_PROTO_FILTER=y # CONFIG_BT_HCIBLUECARD is not set # CONFIG_BT_HCIBTUART is not set # CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set +# CONFIG_IEEE80211_SOFTMAC is not set CONFIG_WIRELESS_EXT=y # @@ -663,34 +668,40 @@ CONFIG_NET_PCI=y # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y -# CONFIG_NET_WIRELESS_RTNETLINK is not set +CONFIG_NET_WIRELESS_RTNETLINK=y # # Obsolete Wireless cards support (pre-802.11) # # CONFIG_STRIP is not set -# CONFIG_ARLAN is not set +CONFIG_ARLAN=m # CONFIG_WAVELAN is not set CONFIG_PCMCIA_WAVELAN=m -# CONFIG_PCMCIA_NETWAVE is not set +CONFIG_PCMCIA_NETWAVE=m # # Wireless 802.11 Frequency Hopping cards support # -# CONFIG_PCMCIA_RAYCS is not set +CONFIG_PCMCIA_RAYCS=m # # Wireless 802.11b ISA/PCI cards support # -# CONFIG_HERMES is not set -# CONFIG_ATMEL is not set +CONFIG_HERMES=m +CONFIG_ATMEL=m # # Wireless 802.11b Pcmcia/Cardbus cards support # -# CONFIG_AIRO_CS is not set -# CONFIG_PCMCIA_WL3501 is not set -# CONFIG_HOSTAP is not set +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_AIRO_CS=m +# CONFIG_PCMCIA_ATMEL is not set +CONFIG_PCMCIA_WL3501=m +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_CS=m CONFIG_NET_WIRELESS=y # @@ -940,10 +951,7 @@ CONFIG_FONT_8x16=y # # Logo configuration # -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO is not set # # Sound @@ -986,7 +994,7 @@ CONFIG_USB_ARCH_HAS_HCD=y # # MMC/SD Card support # -# CONFIG_MMC_SPI_BLOCK is not set +CONFIG_MMC_SPI_BLOCK=m # CONFIG_MMC is not set # @@ -1247,7 +1255,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set +CONFIG_CRYPTO_AES=m # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb index f2ab2116be..265a35a4b3 100644 --- a/packages/linux/linux_2.6.21.bb +++ b/packages/linux/linux_2.6.21.bb @@ -4,7 +4,7 @@ DEFAULT_PREFERENCE_at91sam9263ek = "-1" DEFAULT_PREFERENCE_gumstix-connex = "1" DEFAULT_PREFERENCE_gumstix-verdex = "1" -PR = "r11" +PR = "r12" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://tsc2003.c \ diff --git a/packages/linux/linux_2.6.22.6.bb b/packages/linux/linux_2.6.22.6.bb index dfe1e2e8b1..69b988e332 100644 --- a/packages/linux/linux_2.6.22.6.bb +++ b/packages/linux/linux_2.6.22.6.bb @@ -2,6 +2,7 @@ require linux.inc DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_ts72xx = "1" +DEFAULT_PREFERENCE_mx31moboard = "1" PR = "r1" @@ -25,4 +26,6 @@ SRC_URI_append_ts72xx = "\ file://ts72xx-use-cpld-reset.patch;patch=1 \ " +SRC_URI_append_mx31moboard = "http://mobots.epfl.ch/mx31moboard/linux-2.6.22-moboard.patch.bz2;patch=1" + S = "${WORKDIR}/linux-2.6.22" diff --git a/packages/linux/linux_2.6.23.bb b/packages/linux/linux_2.6.23.bb index aaa9e22f47..640e3533bd 100644 --- a/packages/linux/linux_2.6.23.bb +++ b/packages/linux/linux_2.6.23.bb @@ -9,19 +9,22 @@ DEFAULT_PREFERENCE_mpc8323e-rdb = "1" DEPENDS_append_mpc8313e-rdb = " dtc-native" DEPENDS_append_mpc8323e-rdb = " dtc-native" -PR = "r9" +PR = "r10" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \ file://binutils-buildid-arm.patch;patch=1 \ + file://kallsyms-missing-include.patch;patch=1 \ file://defconfig \ " # Bug fixes on the 2.6.23.x stable branch -SRC_URI += "http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.23.12.bz2;patch=1" +SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-2.6.23.12.bz2;patch=1" +# Real-time preemption (includes CFS). This is experimental and requires a different defconfig. +#SRC_URI += "file://patch-2.6.23.12-rt14;patch=1" +# Only the Completely Fair Scheduler (CFS), the official backport from 2.6.24 +SRC_URI += "http://people.redhat.com/mingo/cfs-scheduler/sched-cfs-v2.6.23.12-v24.1.patch;patch=1" # Add support for squashfs-lzma (a highly compressed read-only filesystem) SRC_URI += "http://kamikaze.waninkoko.info/patches/2.6.23/klight1/broken-out/squashfs-lzma-2.6.23.patch;patch=1" -# Completely fair scheduler -SRC_URI += "http://people.redhat.com/mingo/cfs-scheduler/sched-cfs-v2.6.23.12-v24.1.patch;patch=1" SRC_URI_append_cm-x270 = "\ file://0001-cm-x270-base2.patch;patch=1 \ @@ -36,7 +39,9 @@ SRC_URI_append_cm-x270 = "\ SRC_URI_append_mpc8313e-rdb = "\ file://mpc831x-nand.patch;patch=1 \ file://mpc8313e-rdb-leds.patch;patch=1 \ - file://mpc8313e-rdb-rtc.patch;patch=1" + file://mpc8313e-rdb-rtc.patch;patch=1 \ + file://defconfig-rt" + SRC_URI_append_mpc8323e-rdb = "\ file://mpc832x-leds.patch;patch=1" diff --git a/packages/meta/meta-toolchain-gpe-sbox.bb b/packages/meta/meta-toolchain-gpe-sbox.bb index d32087b964..74ba03825f 100644 --- a/packages/meta/meta-toolchain-gpe-sbox.bb +++ b/packages/meta/meta-toolchain-gpe-sbox.bb @@ -9,3 +9,4 @@ TOOLCHAIN_TARGET_TASK = "\ require meta-toolchain.bb +SDK_SUFFIX = "toolchain-gpe-sbox"
\ No newline at end of file diff --git a/packages/meta/meta-toolchain-gpe.bb b/packages/meta/meta-toolchain-gpe.bb index f79ff31bb7..cad03d71a6 100644 --- a/packages/meta/meta-toolchain-gpe.bb +++ b/packages/meta/meta-toolchain-gpe.bb @@ -7,3 +7,4 @@ TOOLCHAIN_TARGET_TASK = "\ require meta-toolchain.bb +SDK_SUFFIX = "toolchain-gpe"
\ No newline at end of file diff --git a/packages/meta/meta-toolchain-openmoko.bb b/packages/meta/meta-toolchain-openmoko.bb index 90eff20259..b7e5626f61 100644 --- a/packages/meta/meta-toolchain-openmoko.bb +++ b/packages/meta/meta-toolchain-openmoko.bb @@ -1,4 +1,7 @@ -TOOLCHAIN_TARGET_TASK = "task-toolchain-openmoko-sdk" +PR = "r1" -require meta-toolchain.bb +TOOLCHAIN_TARGET_TASK = "task-openmoko-toolchain-target" +TOOLCHAIN_HOST_TASK = "task-openmoko-toolchain-host" +require meta-toolchain.bb +SDK_SUFFIX = "toolchain-openmoko" diff --git a/packages/meta/meta-toolchain-sbox.bb b/packages/meta/meta-toolchain-sbox.bb index 6e31fd0d69..1283c599c6 100644 --- a/packages/meta/meta-toolchain-sbox.bb +++ b/packages/meta/meta-toolchain-sbox.bb @@ -4,3 +4,5 @@ TOOLCHAIN_TARGET_TASK = "\ require meta-toolchain.bb +SDK_SUFFIX = "toolchain-sbox" + diff --git a/packages/meta/meta-toolchain.bb b/packages/meta/meta-toolchain.bb index 91467e5140..923844ef8c 100644 --- a/packages/meta/meta-toolchain.bb +++ b/packages/meta/meta-toolchain.bb @@ -1,12 +1,14 @@ DESCRIPTION = "Meta package for building a installable toolchain" LICENSE = "MIT" DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native" +PR = "r2" inherit sdk meta SDK_DIR = "${WORKDIR}/sdk" SDK_OUTPUT = "${SDK_DIR}/image" SDK_DEPLOY = "${TMPDIR}/deploy/sdk" +SDK_SUFFIX = "toolchain" FEED_ARCH ?= "${TARGET_ARCH}" @@ -73,10 +75,17 @@ do_populate_sdk() { for arch in $revipkgarchs; do pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk if [ -e $pkgnames ]; then - echo "Found $pkgnames" + oenote "Found $pkgnames" cp $pkgnames ${SDK_OUTPUT}/${prefix}/ipk/ orig_pkg=`ipkg-list-fields $pkgnames | grep OE: | cut -d ' ' -f2` - pkg_subdir=$arch${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]} + pkg_subdir_postfix=${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]} + for aarch in $revipkgarchs; do + if [ -e "${STAGING_DIR}/pkgdata/${aarch}${pkg_subdir_postfix}/${orig_pkg}" ]; then + pkg_subdir="${aarch}${pkg_subdir_postfix}" + break + fi + done + oenote "Original package in ${pkg_subdir}" mkdir -p ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/runtime cp ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/ subpkgs=`cat ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-` @@ -120,7 +129,7 @@ do_populate_sdk() { # package it up mkdir -p ${SDK_DEPLOY} cd ${SDK_OUTPUT} - fakeroot tar cfj ${SDK_DEPLOY}/${DISTRO}-${DISTRO_VERSION}-${FEED_ARCH}-${TARGET_OS}-toolchain.tar.bz2 . + fakeroot tar cfj ${SDK_DEPLOY}/${DISTRO}-${DISTRO_VERSION}-${FEED_ARCH}-${TARGET_OS}-${SDK_SUFFIX}.tar.bz2 . } do_populate_sdk[nostamp] = "1" diff --git a/packages/meta/openprotium-packages.bb b/packages/meta/openprotium-packages.bb index 3df2f5e3b2..7d66ee5d61 100644 --- a/packages/meta/openprotium-packages.bb +++ b/packages/meta/openprotium-packages.bb @@ -30,13 +30,14 @@ inherit meta # flac \ # gphoto2 \ # gdb \ -# glib-2.0 \ # lirc \ # masqmail \ # wakelan \ # wireless-tools \ # wpa-supplicant \ +# openldap \ # bluez-utils-nodbus \ +# lcdproc \ # libxml2 \ # libdvb \ # madwifi-ng \ @@ -53,7 +54,13 @@ inherit meta # samba \ # sane-backends \ # vsftpd \ +# syslog-ng \ # zd1211 \ +# cdparanoia \ +# litestream \ +# pvrusb2-mci \ +# pwc \ +# fetchmail \ OPENPROTIUM_PACKAGES = "\ alsa-lib \ @@ -70,7 +77,6 @@ OPENPROTIUM_PACKAGES = "\ bridge-utils \ bzip2 \ ccxstream \ - cdparanoia \ cdstatus \ coreutils \ cron \ @@ -85,7 +91,6 @@ OPENPROTIUM_PACKAGES = "\ e2fsprogs-libs \ expat \ ez-ipupdate \ - fetchmail \ file \ findutils \ flex \ @@ -94,6 +99,7 @@ OPENPROTIUM_PACKAGES = "\ gawk \ gcc \ gdbm \ + glib-2.0 \ gnu-config \ grep \ gtk-doc \ @@ -105,8 +111,6 @@ OPENPROTIUM_PACKAGES = "\ ircp \ joe \ jpeg \ - lcdproc \ - less \ libao \ libid3tag \ liblockfile \ @@ -119,7 +123,6 @@ OPENPROTIUM_PACKAGES = "\ libupnp \ libusb \ libvorbis \ - litestream \ lrzsz \ lsof \ lvm2 \ @@ -144,7 +147,6 @@ OPENPROTIUM_PACKAGES = "\ nmap \ ntp \ openobex-apps \ - openldap \ openntpd \ openobex \ openssh \ @@ -156,8 +158,6 @@ OPENPROTIUM_PACKAGES = "\ pkgconfig \ ppp \ procps \ - pvrusb2-mci \ - pwc \ quilt \ rng-tools \ rsync \ @@ -169,7 +169,6 @@ OPENPROTIUM_PACKAGES = "\ strace \ streamripper \ sysfsutils \ - syslog-ng \ tar \ thttpd \ tiff \ @@ -178,7 +177,6 @@ OPENPROTIUM_PACKAGES = "\ util-linux \ vim \ vlan \ - watchdog \ wget \ zip \ zlib \ diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb index 3452f4e3bd..667b2b2e69 100644 --- a/packages/meta/slugos-packages.bb +++ b/packages/meta/slugos-packages.bb @@ -24,7 +24,18 @@ SLUGOS_PACKAGES = "\ apex-env \ apr \ asterisk \ - asterisk-sounds \ + asterisk-core-sounds-en-alaw \ + asterisk-core-sounds-en-g729 \ + asterisk-core-sounds-en-gsm \ + asterisk-core-sounds-en-ulaw \ + asterisk-extra-sounds-en-alaw \ + asterisk-extra-sounds-en-g729 \ + asterisk-extra-sounds-en-gsm \ + asterisk-extra-sounds-en-ulaw \ + asterisk-moh-freeplay-alaw \ + asterisk-moh-freeplay-g729 \ + asterisk-moh-freeplay-gsm \ + asterisk-moh-freeplay-ulaw \ atftp \ audiofile \ aumix \ @@ -137,6 +148,7 @@ SLUGOS_PACKAGES = "\ miau \ microcom \ minicom \ + monit \ motion \ mpd \ mt-daapd \ @@ -148,9 +160,11 @@ SLUGOS_PACKAGES = "\ ncftp \ ncurses \ net-tools \ + netatalk \ netcat \ netpbm \ nfs-utils \ + ngrep \ nmap \ ntfs-3g \ ntp \ @@ -194,9 +208,11 @@ SLUGOS_PACKAGES = "\ sudo \ sysfsutils \ tar \ + tcpdump \ thttpd \ tiff \ tzdata \ + unrar \ unzip \ upslug2 \ usbutils \ diff --git a/packages/midpath/midpath-cldc-native_0.1.bb b/packages/midpath/midpath-cldc-native_0.1.bb index 27700d2e61..30f67854d4 100644 --- a/packages/midpath/midpath-cldc-native_0.1.bb +++ b/packages/midpath/midpath-cldc-native_0.1.bb @@ -4,9 +4,6 @@ inherit native require midpath-cldc_${PV}.bb -PROVIDES = "virtual/cldc-api-1.1-native" -RPROVIDES = " " - PACKAGES = " " do_install() { diff --git a/packages/midpath/midpath-cldc-x11_0.1.bb b/packages/midpath/midpath-cldc-x11_0.1.bb index 9db0c4a686..7c92621c36 100644 --- a/packages/midpath/midpath-cldc-x11_0.1.bb +++ b/packages/midpath/midpath-cldc-x11_0.1.bb @@ -1,7 +1,7 @@ require midpath.inc -DEPENDS += " virtual/libx11 virtual/cldc-api-1.1" +DEPENDS += "virtual/libx11 midpath-cldc" do_configure() { diff --git a/packages/midpath/midpath-cldc_0.1.bb b/packages/midpath/midpath-cldc_0.1.bb index 51a1314467..7aeefa5264 100644 --- a/packages/midpath/midpath-cldc_0.1.bb +++ b/packages/midpath/midpath-cldc_0.1.bb @@ -1,9 +1,6 @@ require midpath.inc -PROVIDES = "virtual/cldc-api-1.1" -RPROVIDES = "virtual/cldc-api-1.1" - do_compile() { mkdir -p ${S}/dist @@ -18,21 +15,21 @@ cd ${S}/src/cldc-glue make JAVAC=${JAVAC_CMD} JAVAC_FLAGS="-bootclasspath ${S}/external/cldc1.1/classes -sourcepath ${S}/src/cldc-glue -source 1.3 -target 1.1" make install JAVAC=${JAVAC_CMD} JAVAC_FLAGS="-bootclasspath ${S}/external/cldc1.1/classes -source 1.3 -target 1.1" CLASS_DIR=${S}/external/cldc1.1/classes # Make a jar -${FASTJAR_CMD} cvf ${S}/dist/cldc1.1.jar -C ${S}/external/cldc1.1/classes . +${FASTJAR_CMD} cvf ${S}/dist/midpath-cldc1.1.jar -C ${S}/external/cldc1.1/classes . } do_install() { - install -d ${D}${datadir}/java - install -m 0644 dist/cldc1.1.jar ${D}${datadir}/java + install -d ${D}${datadir}/midpath-cldc + install -m 0644 dist/midpath-cldc1.1.jar ${D}${datadir}/midpath-cldc } do_stage() { - install -d ${STAGING_DATADIR}/java - install -m 0644 dist/cldc1.1.jar ${STAGING_DATADIR}/java + install -d ${STAGING_DATADIR}/midpath-cldc + install -m 0644 dist/midpath-cldc1.1.jar ${STAGING_DATADIR}/midpath-cldc } PACKAGES = "${PN}" -FILES_${PN} = "${datadir}/java/cldc1.1.jar" +FILES_${PN} = "${datadir}/midpath-cldc/midpath-cldc1.1.jar" diff --git a/packages/midpath/midpath.inc b/packages/midpath/midpath.inc index 33793bffd0..4bc3b71598 100644 --- a/packages/midpath/midpath.inc +++ b/packages/midpath/midpath.inc @@ -9,14 +9,14 @@ SRC_URI = "http://downloads.sourceforge.net/midpath/midpath-${PV}.tar.gz" S = "${WORKDIR}/midpath-${PV}" -DEPENDS = "ecj-native fastjar-native classpath-minimal" +DEPENDS = "virtual/javac-native fastjar-native classpath" -JAVAC_CMD = "${STAGING_BINDIR_NATIVE}/ecj" +JAVAC_CMD = "${STAGING_BINDIR_NATIVE}/javac" FASTJAR_CMD = "${STAGING_BINDIR_NATIVE}/fastjar" JAVA_PATH = "${STAGING_DATADIR}/java" -GNU_CLASSPATH_PATH = "${JAVA_PATH}/classpath-minimal/glibj.zip" +GNU_CLASSPATH_PATH = "${JAVA_PATH}/classpath/glibj.zip" -CLDC_PATH = ${JAVA_PATH}/cldc1.1.jar +CLDC_PATH = ${STAGING_DATADIR}/midpath-cldc/midpath-cldc1.1.jar diff --git a/packages/monit/.mtn2git_empty b/packages/monit/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/monit/.mtn2git_empty diff --git a/packages/monit/files/.mtn2git_empty b/packages/monit/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/monit/files/.mtn2git_empty diff --git a/packages/monit/files/init b/packages/monit/files/init new file mode 100644 index 0000000000..325a552b28 --- /dev/null +++ b/packages/monit/files/init @@ -0,0 +1,42 @@ +#! /bin/sh +# +# This is an init script for openembedded +# Copy it to /etc/init.d/monit and type +# > update-rc.d monit defaults 99 +# +monit=/usr/bin/monit +pidfile=/var/run/monit.pid +monit_args="-c /etc/monitrc" + +test -x "$monit" || exit 0 + +case "$1" in + start) + echo -n "Starting Monit" + start-stop-daemon --start --quiet --exec $monit -- $monit_args + RETVAL=$? + echo "." + ;; + stop) + echo -n "Stopping Monit" + start-stop-daemon --stop --quiet --pidfile $pidfile + RETVAL=$? + echo "." + ;; + restart) + $0 stop + $0 start + RETVAL=$? + ;; + status) + $monit $monit_args status + RETVAL=$? + echo "." + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 +esac + +exit $RETVAL + diff --git a/packages/monit/monit-4.10.1/.mtn2git_empty b/packages/monit/monit-4.10.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/monit/monit-4.10.1/.mtn2git_empty diff --git a/packages/monit/monit-4.10.1/init b/packages/monit/monit-4.10.1/init new file mode 100644 index 0000000000..325a552b28 --- /dev/null +++ b/packages/monit/monit-4.10.1/init @@ -0,0 +1,42 @@ +#! /bin/sh +# +# This is an init script for openembedded +# Copy it to /etc/init.d/monit and type +# > update-rc.d monit defaults 99 +# +monit=/usr/bin/monit +pidfile=/var/run/monit.pid +monit_args="-c /etc/monitrc" + +test -x "$monit" || exit 0 + +case "$1" in + start) + echo -n "Starting Monit" + start-stop-daemon --start --quiet --exec $monit -- $monit_args + RETVAL=$? + echo "." + ;; + stop) + echo -n "Stopping Monit" + start-stop-daemon --stop --quiet --pidfile $pidfile + RETVAL=$? + echo "." + ;; + restart) + $0 stop + $0 start + RETVAL=$? + ;; + status) + $monit $monit_args status + RETVAL=$? + echo "." + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 +esac + +exit $RETVAL + diff --git a/packages/monit/monit_4.10.1.bb b/packages/monit/monit_4.10.1.bb new file mode 100644 index 0000000000..bb18491c5d --- /dev/null +++ b/packages/monit/monit_4.10.1.bb @@ -0,0 +1,24 @@ +LICENSE = "GPL" +DEPENDS = "openssl" + +SRC_URI = "http://www.tildeslash.com/monit/dist/monit-${PV}.tar.gz\ + file://init" + +INITSCRIPT_NAME = "monit" +INITSCRIPT_PARAMS = "defaults 99" + +inherit autotools update-rc.d + +EXTRA_OECONF = "--with-ssl-lib-dir=${STAGING_LIBDIR} --with-ssl-incl-dir=${STAGING_INCDIR}" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/monit + sed -i 's:# set daemon 120:set daemon 120:' ${S}/monitrc + sed -i 's:include /etc/monit.d/:include /${sysconfdir}/monit.d/:' ${S}/monitrc + install -m 600 ${S}/monitrc ${D}${sysconfdir}/monitrc + install -m 700 -d ${D}${sysconfdir}/monit.d/ +} + +CONFFILES_${PN} += "${sysconfdir}/monitrc" + diff --git a/packages/musicbrainz/libmusicbrainz_2.1.5.bb b/packages/musicbrainz/libmusicbrainz_2.1.5.bb new file mode 100644 index 0000000000..7ab0997218 --- /dev/null +++ b/packages/musicbrainz/libmusicbrainz_2.1.5.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \ +It allows you to access the data held on the MusicBrainz server." +HOMEPAGE = "http://musicbrainz.org" +LICENSE = "LGPL" +DEPENDS = "expat" + +SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-${PV}.tar.gz" + +inherit autotools pkgconfig + +do_stage() { + autotools_stage_all +} diff --git a/packages/musicbrainz/libmusicbrainz_3.0.1.bb b/packages/musicbrainz/libmusicbrainz_3.0.1.bb index 51717f052d..e01695eb3d 100644 --- a/packages/musicbrainz/libmusicbrainz_3.0.1.bb +++ b/packages/musicbrainz/libmusicbrainz_3.0.1.bb @@ -4,11 +4,11 @@ DESCRIPTION = "The MusicBrainz client is a library which can be built into other It allows you to access the data held on the MusicBrainz server." HOMEPAGE = "http://musicbrainz.org" LICENSE = "LGPL" -DEPENDS = "expat" +DEPENDS = "expat neon" SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-${PV}.tar.gz" -inherit autotools pkgconfig +inherit cmake pkgconfig do_stage() { autotools_stage_all diff --git a/packages/navit/files/compile-fix.patch b/packages/navit/files/compile-fix.patch deleted file mode 100644 index 86274d8aa8..0000000000 --- a/packages/navit/files/compile-fix.patch +++ /dev/null @@ -1,8 +0,0 @@ -diff -Naur navit-0.0.1.old/src/fib-1.1/Makefile.am navit-0.0.1/src/fib-1.1/Makefile.am ---- navit-0.0.1.old/src/fib-1.1/Makefile.am 2007-07-05 19:16:20.000000000 +0200 -+++ navit-0.0.1/src/fib-1.1/Makefile.am 2007-09-18 00:48:08.000000000 +0200 -@@ -1,4 +1,3 @@ - noinst_LTLIBRARIES = libfib.la - libfib_la_SOURCES = fib.c fib.h fibpriv.h --libfib_la_LDFLAGS = -static - EXTRA_DIST=README configure.in fh_extractmin.3 fh_makeheap.3 fh_makekeyheap.3 fibtest.c fibtest2.c tt.c use.c diff --git a/packages/navit/navit.inc b/packages/navit/navit.inc index 1d68027e17..06e3a72664 100644 --- a/packages/navit/navit.inc +++ b/packages/navit/navit.inc @@ -5,21 +5,23 @@ RRECOMMENDS = "gpsd speechd flite" inherit autotools +EXTRA_OECONF = "--disable-binding-python --disable-gui-sdl --disable-samplemap --enable-avoid-float --enable-avoid-unaligned" + PACKAGES = "${PN}-dbg ${PN}-dev ${PN} ${PN}-doc ${PN}-locale" FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug" FILES_${PN}-dev += "${libdir}/${PN}/*/*.so" SRC_URI_append = " \ - file://navit.launcher \ + file://navit.xml-so.patch;patch=1 \ + file://navit.desktop \ + file://navit.launcher \ " do_install_append() { - install -d ${D}/usr/share/applications/ - - install -m 0644 ${WORKDIR}/navit.desktop ${D}/usr/share/applications/ - - mv ${D}/usr/bin/navit ${D}/usr/bin/navit.real - - install -m 0755 ${WORKDIR}/navit.launcher ${D}/usr/bin/navit + install -d ${D}/usr/share/applications/ + install -m 0644 ${WORKDIR}/navit.desktop ${D}/usr/share/applications/ + + mv ${D}/usr/bin/navit ${D}/usr/bin/navit.real + install -m 0755 ${WORKDIR}/navit.launcher ${D}/usr/bin/navit } diff --git a/packages/navit/navit_0.0.1.bb b/packages/navit/navit_0.0.1.bb deleted file mode 100644 index f96a04ec16..0000000000 --- a/packages/navit/navit_0.0.1.bb +++ /dev/null @@ -1,8 +0,0 @@ -require navit.inc - -PR = "r3" - -SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz \ - file://compile-fix.patch;patch=1" - -EXTRA_OECONF = "--disable-gui-sdl --disable-binding-python --enable-avoid-unaligned --enable-avoid-float" diff --git a/packages/navit/navit_0.0.2.bb b/packages/navit/navit_0.0.2.bb deleted file mode 100644 index 794f901db5..0000000000 --- a/packages/navit/navit_0.0.2.bb +++ /dev/null @@ -1,7 +0,0 @@ -require navit.inc - -PR = "r2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz" - -EXTRA_OECONF = "--disable-gui-sdl --disable-binding-python --disable-samplemap --enable-avoid-unaligned --enable-avoid-float" diff --git a/packages/navit/navit_0.0.3.bb b/packages/navit/navit_0.0.3.bb index 7fdb491882..a926528faf 100644 --- a/packages/navit/navit_0.0.3.bb +++ b/packages/navit/navit_0.0.3.bb @@ -1,16 +1,5 @@ require navit.inc -PR = "r3" - -SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz \ - file://navit.xml-so.patch;patch=1 \ - file://navit.desktop" - -EXTRA_OECONF = "--disable-binding-python --disable-gui-sdl --disable-samplemap --enable-avoid-float --enable-avoid-unaligned" - -do_install_append() { - install -d ${D}/usr/share/applications/ - - install -m 0644 ${WORKDIR}/navit.desktop ${D}/usr/share/applications/ -} +PR = "r4" +SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz" diff --git a/packages/navit/navit_cvs.bb b/packages/navit/navit_cvs.bb index 0f9583324c..014e7d3a53 100644 --- a/packages/navit/navit_cvs.bb +++ b/packages/navit/navit_cvs.bb @@ -1,15 +1,11 @@ require navit.inc PV = "0.0.3+cvs${SRCDATE}" -PR = "r3" +PR = "r4" S = "${WORKDIR}/navit" -SRC_URI = "cvs://anonymous@navit.cvs.sourceforge.net/cvsroot/navit;module=navit \ - file://navit.xml-so.patch;patch=1 \ - file://navit.desktop" - -EXTRA_OECONF = "--disable-binding-python --disable-gui-sdl --disable-samplemap --enable-avoid-float --enable-avoid-unaligned" +SRC_URI = "cvs://anonymous@navit.cvs.sourceforge.net/cvsroot/navit;module=navit" EXTRA_AUTORECONF = " -I m4" diff --git a/packages/ncurses/ncurses.inc b/packages/ncurses/ncurses.inc index 027f037ee5..2c6cfd05b0 100644 --- a/packages/ncurses/ncurses.inc +++ b/packages/ncurses/ncurses.inc @@ -1,23 +1,14 @@ DESCRIPTION = "Ncurses library" HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html" -LICENSE = "MIT" SECTION = "libs" +LICENSE = "MIT" DEPENDS = "ncurses-native" -PACKAGES_prepend = "ncurses-tools " -PACKAGES_append = " ncurses-terminfo" -FILES_ncurses_append = " ${datadir}/tabset" RSUGGESTS_${PN} = "ncurses-terminfo" RPROVIDES = "libncurses5" inherit autotools -# This keeps only tput/tset in ncurses -# clear/reset are in already busybox -FILES_ncurses-tools = "${bindir}/tic ${bindir}/toe ${bindir}/infotocap ${bindir}/captoinfo ${bindir}/infocmp ${bindir}/clear.${PN} ${bindir}/reset.${PN} ${bindir}/tack " -FILES_ncurses-terminfo = "${datadir}/terminfo" -FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* usr/share/tabset etc/terminfo" - -PARALLEL_MAKE="" +PARALLEL_MAKE = "" EXTRA_OECONF = "--with-shared \ --without-profile \ @@ -88,3 +79,12 @@ pkg_prerm_ncurses-tools () { update-alternatives --remove clear clear.${PN} update-alternatives --remove reset reset.${PN} } + +PACKAGES_prepend = "ncurses-tools " +PACKAGES_append = " ncurses-terminfo" +FILES_ncurses_append = " ${datadir}/tabset" +# This keeps only tput/tset in ncurses +# clear/reset are in already busybox +FILES_ncurses-tools = "${bindir}/tic ${bindir}/toe ${bindir}/infotocap ${bindir}/captoinfo ${bindir}/infocmp ${bindir}/clear.${PN} ${bindir}/reset.${PN} ${bindir}/tack " +FILES_ncurses-terminfo = "${datadir}/terminfo" +FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* §{datadir}/tabset ${sysconfdir}/terminfo" diff --git a/packages/ncurses/ncurses_5.3.bb b/packages/ncurses/ncurses_5.3.bb index e023017f1a..0b0897a409 100644 --- a/packages/ncurses/ncurses_5.3.bb +++ b/packages/ncurses/ncurses_5.3.bb @@ -1,7 +1,7 @@ BaseV := "${PV}" SnapV := "20030906" PV = "${BaseV}.${SnapV}" -PR = "r1" +PR = "r2" SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${BaseV}.tar.gz \ file://${SnapV}.patch;patch=1 \ diff --git a/packages/ncurses/ncurses_5.4.bb b/packages/ncurses/ncurses_5.4.bb index ac125bf6fe..f361d745b3 100644 --- a/packages/ncurses/ncurses_5.4.bb +++ b/packages/ncurses/ncurses_5.4.bb @@ -1,4 +1,4 @@ -PR = "r10" +PR = "r11" SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz \ file://visibility.patch;patch=1" diff --git a/packages/netbase/netbase/mx31moboard/.mtn2git_empty b/packages/netbase/netbase/mx31moboard/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/netbase/netbase/mx31moboard/.mtn2git_empty diff --git a/packages/netbase/netbase/mx31moboard/interfaces b/packages/netbase/netbase/mx31moboard/interfaces new file mode 100644 index 0000000000..17d2b151bc --- /dev/null +++ b/packages/netbase/netbase/mx31moboard/interfaces @@ -0,0 +1,14 @@ +# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) + +# The loopback interface +auto lo +iface lo inet loopback + +# Ethernet/RNDIS gadget (g_ether) +auto usb0 +iface usb0 inet static + address 192.168.0.202 + netmask 255.255.255.0 + network 192.168.0.0 + gateway 192.168.0.200 + diff --git a/packages/nut/.mtn2git_empty b/packages/nut/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nut/.mtn2git_empty diff --git a/packages/nut/files/.mtn2git_empty b/packages/nut/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nut/files/.mtn2git_empty diff --git a/packages/nut/files/libm.patch b/packages/nut/files/libm.patch new file mode 100644 index 0000000000..658d42face --- /dev/null +++ b/packages/nut/files/libm.patch @@ -0,0 +1,21 @@ +--- a/drivers/Makefile.am.org 2007-10-01 16:06:24.000000000 +0300 ++++ a/drivers/Makefile.am 2008-01-09 02:13:09.000000000 +0200 +@@ -125,7 +125,7 @@ + tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm + + bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c nut_usb.c +-bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) ++bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm + + megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c + megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV +--- a/drivers/Makefile.am.org 2008-01-09 02:14:32.000000000 +0200 ++++ a/drivers/Makefile.am 2008-01-09 02:17:37.000000000 +0200 +@@ -67,6 +67,7 @@ + al175_SOURCES = al175.c + apcsmart_SOURCES = apcsmart.c + bcmxcp_SOURCES = bcmxcp.c bcmxcp_ser.c ++bcmxcp_LDADD = $(LDADD) -lm + belkin_SOURCES = belkin.c + belkinunv_SOURCES = belkinunv.c + bestfcom_SOURCES = bestfcom.c diff --git a/packages/nut/nut_2.2.1.bb b/packages/nut/nut_2.2.1.bb new file mode 100644 index 0000000000..db3367435d --- /dev/null +++ b/packages/nut/nut_2.2.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Network UPS Tools" +LICENSE = "GPL" +DEPENDS = "libusb" +PR = "r1" + +inherit autotools + +EXTRA_OECONF = "--with-usb" + +SRC_URI = "http://www.networkupstools.org/source/2.2/nut-${PV}.tar.gz \ + file://libm.patch;patch=1 \ + " + +FILES_${PN} += "${datadir}/" diff --git a/packages/obsolete/classpath/.mtn2git_empty b/packages/obsolete/classpath/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/classpath/.mtn2git_empty diff --git a/packages/classpath/classpath-gtk_0.93.bb b/packages/obsolete/classpath/classpath-gtk_0.93.bb index a3b39d92f8..3c9f073e26 100644 --- a/packages/classpath/classpath-gtk_0.93.bb +++ b/packages/obsolete/classpath/classpath-gtk_0.93.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ cairo gconf libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ cairo gconf libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "classpath-common (>= ${PV})" RCONFLICTS_${PN} = "classpath-minimal" diff --git a/packages/classpath/classpath-gtk_cvs.bb b/packages/obsolete/classpath/classpath-gtk_cvs.bb index 18d79decae..4d4895a319 100644 --- a/packages/classpath/classpath-gtk_cvs.bb +++ b/packages/obsolete/classpath/classpath-gtk_cvs.bb @@ -6,7 +6,7 @@ SRCDATE_${PN} ?= "20070501" PV = "0.93+cvs${SRCDATE}" ### note from Laibsch: bug 2523 has information on how to build this package -DEPENDS = "glib-2.0 gtk+ cairo gconf ecj-native zip-native virtual/java-native libxtst" +DEPENDS = "glib-2.0 gtk+ cairo gconf virtual/javac-native zip-native virtual/java-native libxtst" RDEPENDS_${PN} = "classpath-common (>= ${PV})" RCONFLICTS_${PN} = "classpath-minimal" @@ -15,7 +15,7 @@ SRC_URI = "cvs://anonymous@cvs.savannah.gnu.org/sources/classpath;module=classpa S = "${WORKDIR}/classpath" -EXTRA_OECONF = "--with-ecj=${STAGING_BINDIR_NATIVE}/ecj --with-ecj-jar=${STAGING_BINDIR_NATIVE}/ecj.jar --disable-plugin --disable-dssi --disable-alsa" +EXTRA_OECONF = "--with-javac=${STAGING_BINDIR_NATIVE}/javac --with-ecj-jar=${STAGING_DATADIR_NATIVE}/ecj-bootstrap.jar --disable-plugin --disable-dssi --disable-alsa" do_stage() { install -d ${STAGING_INCDIR}/classpath diff --git a/packages/classpath/classpath-minimal-native_0.93.bb b/packages/obsolete/classpath/classpath-minimal-native_0.93.bb index 83cb60142c..e7862e6e3f 100644 --- a/packages/classpath/classpath-minimal-native_0.93.bb +++ b/packages/obsolete/classpath/classpath-minimal-native_0.93.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 libart-lgpl pango libxtst virtual/javac-native zip-native" PR = "r1" SRC_URI += "file://disable-automake-checks-v2.patch;patch=1" diff --git a/packages/classpath/classpath-minimal-native_0.95.bb b/packages/obsolete/classpath/classpath-minimal-native_0.95.bb index 28b25a7cb9..28b25a7cb9 100644 --- a/packages/classpath/classpath-minimal-native_0.95.bb +++ b/packages/obsolete/classpath/classpath-minimal-native_0.95.bb diff --git a/packages/classpath/classpath-minimal_0.90.bb b/packages/obsolete/classpath/classpath-minimal_0.90.bb index 8d9554c999..e006e23c32 100644 --- a/packages/classpath/classpath-minimal_0.90.bb +++ b/packages/obsolete/classpath/classpath-minimal_0.90.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "jikes-native zip-native" +DEPENDS = "virtual/javac-native zip-native" RDEPENDS_${PBN}-minimal = "${PBN}-common (>= ${PV})" RCONFLICTS_${PBN}-minimal = "${PBN}-gtk" diff --git a/packages/classpath/classpath-minimal_0.95.bb b/packages/obsolete/classpath/classpath-minimal_0.95.bb index bca7a46919..cb38710ac1 100644 --- a/packages/classpath/classpath-minimal_0.95.bb +++ b/packages/obsolete/classpath/classpath-minimal_0.95.bb @@ -11,13 +11,13 @@ S = "${WORKDIR}/classpath-${PV}" SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" -DEPENDS = "ecj-native zip-native" +DEPENDS = "virtual/javac-native zip-native" inherit autotools EXTRA_OECONF = "--with-glibj \ - --with-ecj=${STAGING_BINDIR_NATIVE}/ecj \ + --with-javac=${STAGING_BINDIR_NATIVE}/javac \ --disable-alsa \ --disable-gconf-peer \ --disable-gtk-peer \ diff --git a/packages/obsolete/classpath/classpath.inc b/packages/obsolete/classpath/classpath.inc new file mode 100644 index 0000000000..d9498c99d5 --- /dev/null +++ b/packages/obsolete/classpath/classpath.inc @@ -0,0 +1,30 @@ +DESCRIPTION = "GNU Classpath standard Java libraries" +HOMEPAGE = "http://www.gnu.org/software/classpath/" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "Classpath" +PROVIDES = "classpath" +RPROVIDES = "classpath" + +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz \ + file://gconf_version.patch;patch=1 \ + file://fix-endian-arm-floats.patch;patch=1" + +inherit autotools + +do_stage() { + install -d ${STAGING_INCDIR}/classpath + install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ +} + +do_install() { + autotools_do_install + mv ${D}${libdir}/security ${D}${libdir}/${PN} +} + +PACKAGES =+ "classpath-common classpath-examples classpath-tools" +FILES_classpath-common += "${datadir}/classpath/glibj.zip" +FILES_classpath-examples += "${datadir}/classpath/examples" +FILES_classpath-tools += "${datadir}/classpath/tools.zip ${datadir}/classpath/tools" +FILES_classpath-dev += "${libdir}/*.so" +FILES_classpath-dbg += "${libdir}/classpath/.debug" diff --git a/packages/classpath/classpath_0.14.bb b/packages/obsolete/classpath/classpath_0.14.bb index e4d73bbd3a..a20aa73992 100644 --- a/packages/classpath/classpath_0.14.bb +++ b/packages/obsolete/classpath/classpath_0.14.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" PR = "r2" diff --git a/packages/classpath/classpath_0.15.bb b/packages/obsolete/classpath/classpath_0.15.bb index e4d73bbd3a..a20aa73992 100644 --- a/packages/classpath/classpath_0.15.bb +++ b/packages/obsolete/classpath/classpath_0.15.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" PR = "r2" diff --git a/packages/classpath/classpath_0.17.bb b/packages/obsolete/classpath/classpath_0.17.bb index e4d73bbd3a..a20aa73992 100644 --- a/packages/classpath/classpath_0.17.bb +++ b/packages/obsolete/classpath/classpath_0.17.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" PR = "r2" diff --git a/packages/classpath/classpath_0.18.bb b/packages/obsolete/classpath/classpath_0.18.bb index 9b9e8c3451..8696501fcf 100644 --- a/packages/classpath/classpath_0.18.bb +++ b/packages/obsolete/classpath/classpath_0.18.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" PR = "r1" diff --git a/packages/classpath/classpath_0.19.bb b/packages/obsolete/classpath/classpath_0.19.bb index 9b9e8c3451..8696501fcf 100644 --- a/packages/classpath/classpath_0.19.bb +++ b/packages/obsolete/classpath/classpath_0.19.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" PR = "r1" diff --git a/packages/classpath/classpath_0.20.bb b/packages/obsolete/classpath/classpath_0.20.bb index 9b9e8c3451..8696501fcf 100644 --- a/packages/classpath/classpath_0.20.bb +++ b/packages/obsolete/classpath/classpath_0.20.bb @@ -1,6 +1,6 @@ require classpath.inc -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" PR = "r1" diff --git a/packages/classpath/classpath_cvs.bb b/packages/obsolete/classpath/classpath_cvs.bb index 9e5ac2f000..943af376a7 100644 --- a/packages/classpath/classpath_cvs.bb +++ b/packages/obsolete/classpath/classpath_cvs.bb @@ -7,7 +7,7 @@ PV = "0.20+cvs${SRCDATE}" DEFAULT_PREFERENCE = "-1" -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" SRC_URI = "cvs://anoncvs@cvs.gnu.org/cvsroot/classpath;method=pserver;rsh=ssh;module=classpath \ diff --git a/packages/obsolete/classpath/files/.mtn2git_empty b/packages/obsolete/classpath/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/classpath/files/.mtn2git_empty diff --git a/packages/classpath/files/disable-automake-checks-v2.patch b/packages/obsolete/classpath/files/disable-automake-checks-v2.patch index 0c1df1acae..0c1df1acae 100644 --- a/packages/classpath/files/disable-automake-checks-v2.patch +++ b/packages/obsolete/classpath/files/disable-automake-checks-v2.patch diff --git a/packages/classpath/files/disable-automake-checks.patch b/packages/obsolete/classpath/files/disable-automake-checks.patch index d6a55428ad..d6a55428ad 100644 --- a/packages/classpath/files/disable-automake-checks.patch +++ b/packages/obsolete/classpath/files/disable-automake-checks.patch diff --git a/packages/classpath/files/fix-endian-arm-floats.patch b/packages/obsolete/classpath/files/fix-endian-arm-floats.patch index a9af0611b2..a9af0611b2 100644 --- a/packages/classpath/files/fix-endian-arm-floats.patch +++ b/packages/obsolete/classpath/files/fix-endian-arm-floats.patch diff --git a/packages/classpath/files/gconf_version.patch b/packages/obsolete/classpath/files/gconf_version.patch index b1be1209a2..b1be1209a2 100644 --- a/packages/classpath/files/gconf_version.patch +++ b/packages/obsolete/classpath/files/gconf_version.patch diff --git a/packages/obsolete/jamvm/.mtn2git_empty b/packages/obsolete/jamvm/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/jamvm/.mtn2git_empty diff --git a/packages/obsolete/jamvm/files/.mtn2git_empty b/packages/obsolete/jamvm/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/jamvm/files/.mtn2git_empty diff --git a/packages/obsolete/jamvm/files/jamvm-1.3.1-size-defaults.patch b/packages/obsolete/jamvm/files/jamvm-1.3.1-size-defaults.patch new file mode 100644 index 0000000000..a41beee982 --- /dev/null +++ b/packages/obsolete/jamvm/files/jamvm-1.3.1-size-defaults.patch @@ -0,0 +1,12 @@ +--- jamvm-1.3.1.orig/src/jam.h 2005-07-17 23:53:34.000000000 +0200 ++++ jamvm-1.3.1/src/jam.h 2005-07-17 23:54:17.000000000 +0200 +@@ -548,7 +548,9 @@ + #endif + + /* default size of the Java stack */ ++#ifndef DEFAULT_STACK + #define DEFAULT_STACK 64*KB ++#endif + + /* size of emergency area - big enough to create + a StackOverflow exception */ diff --git a/packages/obsolete/jamvm/jamvm-1.3.0/.mtn2git_empty b/packages/obsolete/jamvm/jamvm-1.3.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/jamvm/jamvm-1.3.0/.mtn2git_empty diff --git a/packages/jamvm/jamvm-1.3.0/heap-size.patch b/packages/obsolete/jamvm/jamvm-1.3.0/heap-size.patch index 36d681889d..36d681889d 100644 --- a/packages/jamvm/jamvm-1.3.0/heap-size.patch +++ b/packages/obsolete/jamvm/jamvm-1.3.0/heap-size.patch diff --git a/packages/jamvm/jamvm_1.3.0.bb b/packages/obsolete/jamvm/jamvm_1.3.0.bb index ffdf74938f..ffdf74938f 100644 --- a/packages/jamvm/jamvm_1.3.0.bb +++ b/packages/obsolete/jamvm/jamvm_1.3.0.bb diff --git a/packages/jamvm/jamvm_1.3.1.bb b/packages/obsolete/jamvm/jamvm_1.3.1.bb index 20b1535707..20b1535707 100644 --- a/packages/jamvm/jamvm_1.3.1.bb +++ b/packages/obsolete/jamvm/jamvm_1.3.1.bb diff --git a/packages/jamvm/jamvm_1.3.2.bb b/packages/obsolete/jamvm/jamvm_1.3.2.bb index 9727fd6cda..9727fd6cda 100644 --- a/packages/jamvm/jamvm_1.3.2.bb +++ b/packages/obsolete/jamvm/jamvm_1.3.2.bb diff --git a/packages/jamvm/jamvm_1.4.1.bb b/packages/obsolete/jamvm/jamvm_1.4.1.bb index 9727fd6cda..9727fd6cda 100644 --- a/packages/jamvm/jamvm_1.4.1.bb +++ b/packages/obsolete/jamvm/jamvm_1.4.1.bb diff --git a/packages/obsolete/quilt/.mtn2git_empty b/packages/obsolete/quilt/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/quilt/.mtn2git_empty diff --git a/packages/obsolete/quilt/quilt-0.39/.mtn2git_empty b/packages/obsolete/quilt/quilt-0.39/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/obsolete/quilt/quilt-0.39/.mtn2git_empty diff --git a/packages/quilt/quilt-0.39/non-gnu.patch b/packages/obsolete/quilt/quilt-0.39/non-gnu.patch index 8b07bc2923..8b07bc2923 100644 --- a/packages/quilt/quilt-0.39/non-gnu.patch +++ b/packages/obsolete/quilt/quilt-0.39/non-gnu.patch diff --git a/packages/quilt/quilt-0.39/nostrip.patch b/packages/obsolete/quilt/quilt-0.39/nostrip.patch index 4dedad96d4..4dedad96d4 100644 --- a/packages/quilt/quilt-0.39/nostrip.patch +++ b/packages/obsolete/quilt/quilt-0.39/nostrip.patch diff --git a/packages/quilt/quilt-native_0.39.bb b/packages/obsolete/quilt/quilt-native_0.39.bb index 7caa9f620c..7caa9f620c 100644 --- a/packages/quilt/quilt-native_0.39.bb +++ b/packages/obsolete/quilt/quilt-native_0.39.bb diff --git a/packages/quilt/quilt_0.39.bb b/packages/obsolete/quilt/quilt_0.39.bb index 5d8ae086c2..5d8ae086c2 100644 --- a/packages/quilt/quilt_0.39.bb +++ b/packages/obsolete/quilt/quilt_0.39.bb diff --git a/packages/quilt/quilt_0.39.inc b/packages/obsolete/quilt/quilt_0.39.inc index 4fbbb03316..4fbbb03316 100644 --- a/packages/quilt/quilt_0.39.inc +++ b/packages/obsolete/quilt/quilt_0.39.inc diff --git a/packages/octave/octave.inc b/packages/octave/octave.inc index 414f95bf83..5d8fe756f9 100644 --- a/packages/octave/octave.inc +++ b/packages/octave/octave.inc @@ -1,7 +1,4 @@ -DESCRIPTION = "GNU Octave is a high-level language, primarily intended for numerical computations. \ -It provides a convenient command line interface for solving linear and nonlinear problems numerically, \ -and for performing other numerical experiments using a language that is mostly compatible with Matlab. \ -It may also be used as a batch-oriented language." +DESCRIPTION = "Matlab alternative for numerical computations" HOMEPAGE = "http://www.gnu.org/software/octave/" SECTION = "console/scientific" LICENSE = "GPL" @@ -11,7 +8,11 @@ RDEPENDS = "libfftw3" inherit autotools -EXTRA_OECONF = "--without-hdf5" +EXTRA_OECONF = "--without-hdf5 --without-glpk -without-umfpack \ + --without-colamd --without-ccolamd --without-cholmod \ + --without-cxsparse" + +# additional missing dependency/functionality: Qhull gperf do_configure() { gnu-configize @@ -26,4 +27,3 @@ FILES_${PN}-m = "${datadir}/${PN}/*" do_stage() { autotools_stage_all } - diff --git a/packages/octave/octave_2.1.73.bb b/packages/octave/octave_2.1.73.bb index a6bf240732..8efe5243d7 100644 --- a/packages/octave/octave_2.1.73.bb +++ b/packages/octave/octave_2.1.73.bb @@ -2,7 +2,7 @@ require octave.inc SRC_URI = "ftp://ftp.octave.org/pub/octave/obsolete/${PN}-${PV}.tar.gz" -PR = "r0" +PR = "r1" PACKAGES =+ "libcruft-dev liboctave-dev liboctinterp-dev" diff --git a/packages/octave/octave_2.9.19.bb b/packages/octave/octave_2.9.19.bb index b92a181754..3b56c8657d 100644 --- a/packages/octave/octave_2.9.19.bb +++ b/packages/octave/octave_2.9.19.bb @@ -3,22 +3,22 @@ require octave.inc SRC_URI = "ftp://ftp.octave.org/pub/octave/${PN}-${PV}.tar.gz \ file://configure.patch;patch=1" -PR = "r0" +PR = "r1" PACKAGES =+ "libcruft liboctave liboctinterp octave-oct \ libcruft-dev liboctave-dev liboctinterp-dev \ libcruft-dbg liboctave-dbg liboctinterp-dbg" -FILES_libcruft = "${libdir}/${PN}-${PV}/libcruft*" -FILES_libcruft-dev = "${libdir}/${PN}-${PV}/libcruft.so" +FILES_libcruft = "${libdir}/${PN}-${PV}/libcruft.so.*" +FILES_libcruft-dev = "${libdir}/${PN}-${PV}/libcruft*" FILES_libcruft-dbg += "${libdir}/${PN}-${PV}/.debug/libcruft*" -FILES_liboctave = "${libdir}/${PN}-${PV}/liboctave*" -FILES_liboctave-dev = "${libdir}/${PN}-${PV}/liboctave.so" +FILES_liboctave = "${libdir}/${PN}-${PV}/liboctave.so.*" +FILES_liboctave-dev = "${libdir}/${PN}-${PV}/liboctave*" FILES_liboctave-dbg += "${libdir}/${PN}-${PV}/.debug/liboctave*" -FILES_liboctinterp = "${libdir}/${PN}-${PV}/liboctinterp*" -FILES_liboctinterp-dev = "${libdir}/${PN}-${PV}/liboctinterp.so" +FILES_liboctinterp = "${libdir}/${PN}-${PV}/liboctinterp.so.*" +FILES_liboctinterp-dev = "${libdir}/${PN}-${PV}/liboctinterp*" FILES_liboctinterp-dbg += "${libdir}/${PN}-${PV}/.debug/liboctinterp*" # octave-oct provides subroutines in .oct file format diff --git a/packages/octave/octave_3.0.0.bb b/packages/octave/octave_3.0.0.bb index b92a181754..3b56c8657d 100644 --- a/packages/octave/octave_3.0.0.bb +++ b/packages/octave/octave_3.0.0.bb @@ -3,22 +3,22 @@ require octave.inc SRC_URI = "ftp://ftp.octave.org/pub/octave/${PN}-${PV}.tar.gz \ file://configure.patch;patch=1" -PR = "r0" +PR = "r1" PACKAGES =+ "libcruft liboctave liboctinterp octave-oct \ libcruft-dev liboctave-dev liboctinterp-dev \ libcruft-dbg liboctave-dbg liboctinterp-dbg" -FILES_libcruft = "${libdir}/${PN}-${PV}/libcruft*" -FILES_libcruft-dev = "${libdir}/${PN}-${PV}/libcruft.so" +FILES_libcruft = "${libdir}/${PN}-${PV}/libcruft.so.*" +FILES_libcruft-dev = "${libdir}/${PN}-${PV}/libcruft*" FILES_libcruft-dbg += "${libdir}/${PN}-${PV}/.debug/libcruft*" -FILES_liboctave = "${libdir}/${PN}-${PV}/liboctave*" -FILES_liboctave-dev = "${libdir}/${PN}-${PV}/liboctave.so" +FILES_liboctave = "${libdir}/${PN}-${PV}/liboctave.so.*" +FILES_liboctave-dev = "${libdir}/${PN}-${PV}/liboctave*" FILES_liboctave-dbg += "${libdir}/${PN}-${PV}/.debug/liboctave*" -FILES_liboctinterp = "${libdir}/${PN}-${PV}/liboctinterp*" -FILES_liboctinterp-dev = "${libdir}/${PN}-${PV}/liboctinterp.so" +FILES_liboctinterp = "${libdir}/${PN}-${PV}/liboctinterp.so.*" +FILES_liboctinterp-dev = "${libdir}/${PN}-${PV}/liboctinterp*" FILES_liboctinterp-dbg += "${libdir}/${PN}-${PV}/.debug/liboctinterp*" # octave-oct provides subroutines in .oct file format diff --git a/packages/openjade/openjade-native_1.3.2.bb b/packages/openjade/openjade-native_1.3.2.bb index ffa945bf42..11a3ca8525 100644 --- a/packages/openjade/openjade-native_1.3.2.bb +++ b/packages/openjade/openjade-native_1.3.2.bb @@ -28,14 +28,15 @@ do_stage () { # Refer to http://www.linuxfromscratch.org/blfs/view/stable/pst/openjade.html # for details. install -m 0755 ${S}/jade/.libs/openjade ${STAGING_BINDIR_NATIVE}/openjade - ln -sf openjade ${STAGING_BINDIR}/jade + ln -sf openjade ${STAGING_BINDIR_NATIVE}/jade oe_libinstall -a -so -C style libostyle ${STAGING_LIBDIR} oe_libinstall -a -so -C spgrove libospgrove ${STAGING_LIBDIR} oe_libinstall -a -so -C grove libogrove ${STAGING_LIBDIR} - install -v -m644 dsssl/catalog ${STAGING_DATADIR}/sgml/openjade-${PV} - install -v -m644 dsssl/*.{dtd,dsl,sgm} ${STAGING_DATADIR}/sgml/openjade-${PV} + install -d ${STAGING_DATADIR}/sgml/openjade-${PV} + install -m 644 dsssl/catalog ${STAGING_DATADIR}/sgml/openjade-${PV} + install -m 644 dsssl/*.{dtd,dsl,sgm} ${STAGING_DATADIR}/sgml/openjade-${PV} install-catalog --add ${sysconfdir}/sgml/openjade-${PV}.cat \ ${STAGING_DATADIR}/sgml/openjade-${PV}/catalog diff --git a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb index 1526cbab55..7533f81958 100644 --- a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb +++ b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb @@ -1,15 +1,14 @@ DESCRIPTION = "Convenient scripts to be used with openmoko toolchain." -PACKAGE_ARCH = "all" +PR = "r1" SRC_URI = "svn://svn.openmoko.org/developers/john_lee;module=toolkit;proto=http" -SRC_URI += "svn://svn.openmoko.org/trunk/src/target/OM-2007.2/applications;module=openmoko-sample2;proto=http" -SRCREV="3630" +S = "${WORKDIR}/toolkit" + FILES_${PN} = "/" do_install () { - (find ${WORKDIR} -type d -name ".svn" | xargs rm -rf) || true - install -m 755 -d ${D}/share - cp -dr ${WORKDIR}/toolkit/* ${D} - cp -dr ${WORKDIR}/openmoko-sample2 ${D}/share + cp -dr ${S}/* ${D} + find ${D} -name ".svn" | xargs rm -rf + rm -r ${D}/patches } diff --git a/packages/openmoko2/openmoko-sample2_svn.bb b/packages/openmoko2/openmoko-sample2_svn.bb index 4c2c5aad46..9118f89e8a 100644 --- a/packages/openmoko2/openmoko-sample2_svn.bb +++ b/packages/openmoko2/openmoko-sample2_svn.bb @@ -9,7 +9,7 @@ inherit openmoko2 PACKAGES += "${PN}-src" # path should match the toolchain path FILES_${PN}-src = "/usr/local/openmoko" -PACKAGE_ARCH_${PN}-src = "all" +PACKAGE_ARCH_${PN}-src = "${BUILD_ARCH}-all-sdk" do_configure_prepend() { install -d ${WORKDIR}/source diff --git a/packages/openmoko2/settingsgui_0.7+0.8-beta.bb b/packages/openmoko2/settingsgui_0.7+0.8-beta.bb new file mode 100644 index 0000000000..502fad7309 --- /dev/null +++ b/packages/openmoko2/settingsgui_0.7+0.8-beta.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "OpenMoko Settings GUI" +AUTHOR = "Kristian M." +SECTION = "openmoko/applications" +RDEPENDS = "python-pygtk python-subprocess python-threading" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://mput.de/~kristian/.openmoko/settingsgui-0.8-beta.tar.bz2" +S = "${WORKDIR}/settingsgui-0.8-beta" + +inherit distutils diff --git a/packages/openprotium-init/files/boot/disk b/packages/openprotium-init/files/boot/disk index b4bbaf1f3c..e1096e225a 100644 --- a/packages/openprotium-init/files/boot/disk +++ b/packages/openprotium-init/files/boot/disk @@ -25,9 +25,6 @@ then sleep=6 test "$sleep" -gt 0 && sleep "$sleep" else - # make the device links so turnup can use short disk names. - # probably only necessary on devfs based systems. - /etc/init.d/devices start scc -l redflash -f auto fi # diff --git a/packages/openprotium-init/files/functions b/packages/openprotium-init/files/functions index 25832cf3f9..2700551cc4 100644 --- a/packages/openprotium-init/files/functions +++ b/packages/openprotium-init/files/functions @@ -65,21 +65,13 @@ load_functions(){ # use this rather than hard-wiring the device because the partition # table can change - looking in /proc/mtd is more reliable. mtdev(){ - if test $(machine) = storcenter ; then - sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtd/\1!p' /proc/mtd - else sed -n 's!^\(mtd[0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/\1!p' /proc/mtd - fi } # # mtblockdev "name" # as mtdev but output the name of the block (not character) device mtblockdev(){ - if test "$(machine)" = storcenter ; then - sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtdblock/\1!p' /proc/mtd - else sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtdblock\1!p' /proc/mtd - fi } # # mtsize "name" diff --git a/packages/openprotium-init/files/initscripts/zleds b/packages/openprotium-init/files/initscripts/zleds new file mode 100644 index 0000000000..37adb8490e --- /dev/null +++ b/packages/openprotium-init/files/initscripts/zleds @@ -0,0 +1,29 @@ +#!/bin/sh +# +# This script is executed at the start and end of each run-level +# transition. It is the first 'stop' script and the last 'start' +# script. +# +# 'stop' indicates the start of a runlevel change +# 'start' at the end of the runlevel change - we are in the new +# runlevel. +# +# state outputs 'system', 'user' etc according the the nature of +# the runlevel it is passed (the *new* runlevel is used). +state(){ + case "$1" in + S|N) echo system;; + 0|6) echo shutdown;; + 1) echo singleuser;; + 2|3|4|5) echo user;; + *) echo "led change: $runlevel: runlevel unknown" >&2 + echo system;; + esac +} + +case "$1" in +start) scc -l blue -f auto;; +stop) scc -l redflash;; +*) echo "led change: $1: command ignored" >&2 + ;; +esac diff --git a/packages/openprotium-init/openprotium-init_0.10.bb b/packages/openprotium-init/openprotium-init_0.10.bb index 92c9d789cb..f8facbb36f 100644 --- a/packages/openprotium-init/openprotium-init_0.10.bb +++ b/packages/openprotium-init/openprotium-init_0.10.bb @@ -19,6 +19,7 @@ SRC_URI = "file://boot/flash \ file://initscripts/sysconfsetup \ file://initscripts/umountinitrd.sh \ file://initscripts/loadmodules.sh \ + file://initscripts/zleds \ file://functions \ file://modulefunctions \ file://conffiles \ @@ -35,7 +36,7 @@ SCRIPTS = "turnup reflash sysconf" BOOTSCRIPTS = "flash disk nfs network udhcpc.script" INITSCRIPTS = "syslog.buffer syslog.file syslog.network \ rmrecovery sysconfsetup umountinitrd.sh \ - fixfstab loadmodules.sh" + fixfstab loadmodules.sh zleds" # This just makes things easier... @@ -129,6 +130,8 @@ pkg_postinst_openprotium-init() { update-rc.d $opt syslog.file start 39 S . start 47 0 6 . update-rc.d $opt syslog.network start 44 S . start 39 0 6 . update-rc.d $opt rmrecovery start 99 1 2 3 4 5 . + update-rc.d $opt zleds start 99 1 2 3 4 5 . stop 5 0 1 2 3 4 5 6 . + } pkg_postrm_openprotium-init() { diff --git a/packages/orinoco/orinoco-modules.inc b/packages/orinoco/orinoco-modules.inc new file mode 100644 index 0000000000..fc14eb3ee5 --- /dev/null +++ b/packages/orinoco/orinoco-modules.inc @@ -0,0 +1,21 @@ +DESCRIPTION = "A driver for wireless LAN cards based on Hermes(Orinoco) cards. \ +Also contains support for cards using downloadable firmware, i.e. the Symbol/Socket family." +SECTION = "kernel/modules" +PRIORITY = "optional" +PROVIDES = "spectrum-modules" +LICENSE = "GPL" + +SRC_URI = "http://ozlabs.org/people/dgibson/dldwd/orinoco-${PV}.tar.gz" +S = "${WORKDIR}/orinoco-${PV}" + +inherit module + +PACKAGES = "orinoco-modules-cs orinoco-modules-pci orinoco-modules-usb orinoco-modules-nortel orinoco-modules" +FILES_orinoco-modules-pci = "/lib/modules/${KERNEL_VERSION}/net/orinoco_p*${KERNEL_OBJECT_SUFFIX}" +FILES_orinoco-modules-usb = "/lib/modules/${KERNEL_VERSION}/net/*_usb${KERNEL_OBJECT_SUFFIX}" +FILES_orinoco-modules-nortel = "/lib/modules/${KERNEL_VERSION}/net/orinoco_tmd${KERNEL_OBJECT_SUFFIX} \ + /lib/modules/${KERNEL_VERSION}/net/orinoco_nortel${KERNEL_OBJECT_SUFFIX}" +FILES_orinoco-modules = "/lib/modules/" +RDEPENDS_orinoco-modules-pci = "orinoco-modules" +RDEPENDS_orinoco-modules-usb = "orinoco-modules" +RDEPENDS_orinoco-modules-nortel = "orinoco-modules" diff --git a/packages/orinoco/orinoco-modules_0.13e.bb b/packages/orinoco/orinoco-modules_0.13e.bb index 9c5cc2f776..f8f8e446a9 100644 --- a/packages/orinoco/orinoco-modules_0.13e.bb +++ b/packages/orinoco/orinoco-modules_0.13e.bb @@ -1,11 +1,8 @@ -DESCRIPTION = "A driver for wireless LAN cards based on Hermes(Orinoco) cards. \ -Also contains support for cards using downloadable firmware, i.e. the Symbol/Socket family." -SECTION = "kernel/modules" -PRIORITY = "optional" -LICENSE = "GPL" +require orinoco-modules.inc + PR = "r4" -SRC_URI = "http://ozlabs.org/people/dgibson/dldwd/orinoco-${PV}.tar.gz; \ +SRC_URI += "\ file://crosscompile.patch;patch=1 \ file://monitor-${PV}.patch;patch=1 \ file://spectrum.conf \ @@ -14,8 +11,6 @@ SRC_URI = "http://ozlabs.org/people/dgibson/dldwd/orinoco-${PV}.tar.gz; \ file://orinoco_cs.conf" S = "${WORKDIR}/orinoco-${PV}" -inherit module - do_compile_prepend() { cp -f ${WORKDIR}/spectrum* ${S}/ } @@ -30,14 +25,5 @@ do_install() { install -m 0644 ${WORKDIR}/orinoco_cs.conf ${D}${sysconfdir}/modutils/ } -PACKAGES = "orinoco-modules-cs orinoco-modules-pci orinoco-modules-usb orinoco-modules-nortel orinoco-modules" FILES_orinoco-modules-cs = "/lib/modules/${KERNEL_VERSION}/net/*_cs${KERNEL_OBJECT_SUFFIX} /${sysconfdir}" -FILES_orinoco-modules-pci = "/lib/modules/${KERNEL_VERSION}/net/orinoco_p*${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-usb = "/lib/modules/${KERNEL_VERSION}/net/*_usb${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-nortel = "/lib/modules/${KERNEL_VERSION}/net/orinoco_tmd${KERNEL_OBJECT_SUFFIX} \ - /lib/modules/${KERNEL_VERSION}/net/orinoco_nortel${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules = "/lib/modules/" RDEPENDS_orinoco-modules-cs = "orinoco-modules" -RDEPENDS_orinoco-modules-pci = "orinoco-modules" -RDEPENDS_orinoco-modules-usb = "orinoco-modules" -RDEPENDS_orinoco-modules-nortel = "orinoco-modules" diff --git a/packages/orinoco/orinoco-modules_0.15rc1.bb b/packages/orinoco/orinoco-modules_0.15rc1.bb index ebf0f03bbf..7289b6eaf8 100644 --- a/packages/orinoco/orinoco-modules_0.15rc1.bb +++ b/packages/orinoco/orinoco-modules_0.15rc1.bb @@ -1,10 +1,7 @@ -DESCRIPTION = "A driver for wireless LAN cards based on Hermes(Orinoco) cards. \ -Also contains support for cards using downloadable firmware, i.e. the Symbol/Socket family." -SECTION = "kernel/modules" -PRIORITY = "optional" +require orinoco-modules.inc + DEPENDS = "orinoco-conf spectrum-fw" RDEPENDS = "orinoco-conf" -LICENSE = "GPL" PR = "r7" SRC_URI = "${SOURCEFORGE_MIRROR}/orinoco/orinoco-${PV}.tar.gz \ @@ -13,23 +10,11 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/orinoco/orinoco-${PV}.tar.gz \ file://add_event.patch;patch=1 \ file://add_utsname.patch;patch=1 \ file://spectrum_cs_ids.patch;patch=1" -S = "${WORKDIR}/orinoco-${PV}" - -inherit module do_install() { install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ } -PACKAGES = "orinoco-modules-cs orinoco-modules-pci orinoco-modules-usb orinoco-modules-nortel orinoco-modules" FILES_orinoco-modules-cs = "/lib/modules/${KERNEL_VERSION}/net/*_cs${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-pci = "/lib/modules/${KERNEL_VERSION}/net/orinoco_p*${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-usb = "/lib/modules/${KERNEL_VERSION}/net/*_usb${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-nortel = "/lib/modules/${KERNEL_VERSION}/net/orinoco_tmd${KERNEL_OBJECT_SUFFIX} \ - /lib/modules/${KERNEL_VERSION}/net/orinoco_nortel${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules = "/lib/modules/" RDEPENDS_orinoco-modules-cs = "orinoco-modules spectrum-fw" -RDEPENDS_orinoco-modules-pci = "orinoco-modules" -RDEPENDS_orinoco-modules-usb = "orinoco-modules" -RDEPENDS_orinoco-modules-nortel = "orinoco-modules" diff --git a/packages/orinoco/orinoco-modules_0.15rc2.bb b/packages/orinoco/orinoco-modules_0.15rc2.bb index 4153e8c4fc..da223fca7d 100644 --- a/packages/orinoco/orinoco-modules_0.15rc2.bb +++ b/packages/orinoco/orinoco-modules_0.15rc2.bb @@ -1,37 +1,21 @@ -DESCRIPTION = "A driver for wireless LAN cards based on Hermes(Orinoco) cards. \ -Also contains support for cards using downloadable firmware, i.e. the Symbol/Socket family." -SECTION = "kernel/modules" -PRIORITY = "optional" -PROVIDES = "spectrum-modules" +require orinoco-modules.inc + DEPENDS = "orinoco-conf spectrum-fw" RDEPENDS = "orinoco-conf" -LICENSE = "GPL" PR = "r9" -SRC_URI = "http://ozlabs.org/people/dgibson/dldwd/orinoco-${PV}.tar.gz \ +SRC_URI += "\ file://makefile_fix.patch;patch=1 \ file://list-move.patch;patch=1 \ file://add_utsname.patch;patch=1 \ file://add_event.patch;patch=1 \ file://spectrum_cs_ids.patch;patch=1 \ file://catch-up-with-kernel-changes.patch;patch=1" -S = "${WORKDIR}/orinoco-${PV}" - -inherit module do_install() { install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ } -PACKAGES = "orinoco-modules-cs orinoco-modules-pci orinoco-modules-usb orinoco-modules-nortel orinoco-modules" FILES_orinoco-modules-cs = "/lib/modules/${KERNEL_VERSION}/net/*_cs${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-pci = "/lib/modules/${KERNEL_VERSION}/net/orinoco_p*${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-usb = "/lib/modules/${KERNEL_VERSION}/net/*_usb${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-nortel = "/lib/modules/${KERNEL_VERSION}/net/orinoco_tmd${KERNEL_OBJECT_SUFFIX} \ - /lib/modules/${KERNEL_VERSION}/net/orinoco_nortel${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules = "/lib/modules/" RDEPENDS_orinoco-modules-cs = "orinoco-modules spectrum-fw" -RDEPENDS_orinoco-modules-pci = "orinoco-modules" -RDEPENDS_orinoco-modules-usb = "orinoco-modules" -RDEPENDS_orinoco-modules-nortel = "orinoco-modules" diff --git a/packages/orinoco/orinoco-modules_cvs.bb b/packages/orinoco/orinoco-modules_cvs.bb index 5d3efec80f..78bfd2ce0f 100644 --- a/packages/orinoco/orinoco-modules_cvs.bb +++ b/packages/orinoco/orinoco-modules_cvs.bb @@ -1,11 +1,7 @@ -DESCRIPTION = "A driver for wireless LAN cards based on Hermes(Orinoco) cards. \ -Also contains support for cards using downloadable firmware, i.e. the Symbol/Socket family." -SECTION = "kernel/modules" -PRIORITY = "optional" -PROVIDES = "spectrum-modules" +require orinoco-modules.inc + DEPENDS = "orinoco-conf spectrum-fw" RDEPENDS = "orinoco-conf" -LICENSE = "GPL" PR = "r2" PARALLEL_MAKE = "" @@ -18,21 +14,10 @@ SRC_URI = "cvs://anonymous@cvs.sv.gnu.org/cvsroot/orinoco;module=orinoco;method= file://list-move.patch;patch=1" S = "${WORKDIR}/orinoco" -inherit module - do_install() { install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/ } -PACKAGES = "orinoco-modules-cs orinoco-modules-pci orinoco-modules-usb orinoco-modules-nortel orinoco-modules" FILES_orinoco-modules-cs = "/lib/modules/${KERNEL_VERSION}/net/*_cs${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-pci = "/lib/modules/${KERNEL_VERSION}/net/orinoco_p*${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-usb = "/lib/modules/${KERNEL_VERSION}/net/*_usb${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules-nortel = "/lib/modules/${KERNEL_VERSION}/net/orinoco_tmd${KERNEL_OBJECT_SUFFIX} \ - /lib/modules/${KERNEL_VERSION}/net/orinoco_nortel${KERNEL_OBJECT_SUFFIX}" -FILES_orinoco-modules = "/lib/modules/" RDEPENDS_orinoco-modules-cs = "orinoco-modules spectrum-fw" -RDEPENDS_orinoco-modules-pci = "orinoco-modules" -RDEPENDS_orinoco-modules-usb = "orinoco-modules" -RDEPENDS_orinoco-modules-nortel = "orinoco-modules" diff --git a/packages/pngcrush/.mtn2git_empty b/packages/pngcrush/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pngcrush/.mtn2git_empty diff --git a/packages/pngcrush/pngcrush-native_1.6.4.bb b/packages/pngcrush/pngcrush-native_1.6.4.bb new file mode 100644 index 0000000000..4e119a167b --- /dev/null +++ b/packages/pngcrush/pngcrush-native_1.6.4.bb @@ -0,0 +1,9 @@ +require pngcrush_${PV}.bb + +inherit native + +S = "${WORKDIR}/pngcrush-${PV}" + +do_stage() { + install -m 755 ${S}/pngcrush ${STAGING_BINDIR}/ +} diff --git a/packages/pngcrush/pngcrush_1.6.4.bb b/packages/pngcrush/pngcrush_1.6.4.bb new file mode 100644 index 0000000000..9f0413a6cc --- /dev/null +++ b/packages/pngcrush/pngcrush_1.6.4.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Tool to optimize PNG images" +SECTION = "console/graphics" +HOMEPAGE = "http://pmt.sourceforge.net/pngcrush" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pmt/pngcrush-${PV}.tar.gz" + +#DEPENDS += "libsdl-net smpeg" + +EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LD='${CC}'" + +do_install () { + install -d ${D}${bindir} + install -m 755 ${PN} ${D}${bindir} +} diff --git a/packages/pointercal/files/fic-gta02/pointercal b/packages/pointercal/files/fic-gta02/pointercal Binary files differindex 198fd2a776..841ec7fab2 100644 --- a/packages/pointercal/files/fic-gta02/pointercal +++ b/packages/pointercal/files/fic-gta02/pointercal diff --git a/packages/pointercal/pointercal_0.0.bb b/packages/pointercal/pointercal_0.0.bb index e79ee0b889..42aae8c0c0 100644 --- a/packages/pointercal/pointercal_0.0.bb +++ b/packages/pointercal/pointercal_0.0.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Touchscreen calibration data" SECTION = "base" -PR = "r5" +PR = "r6" SRC_URI = "file://pointercal" S = "${WORKDIR}" diff --git a/packages/ppp-dialin/ppp-dialin_0.1.bb b/packages/ppp-dialin/ppp-dialin_0.1.bb index f0d410e455..6861d8ad44 100644 --- a/packages/ppp-dialin/ppp-dialin_0.1.bb +++ b/packages/ppp-dialin/ppp-dialin_0.1.bb @@ -2,7 +2,7 @@ SECTION = "console/network" DESCRIPTION = "Enables PPP dial-in through a serial connection" DEPENDS = "ppp" RDEPENDS = "ppp" -PR = "r4" +PR = "r5" LICENSE = "MIT" SRC_URI = "file://host-peer \ @@ -16,6 +16,7 @@ do_install() { install -m 0755 ${WORKDIR}/ppp-dialin ${D}${sbindir} } +PACKAGE_ARCH = "all" pkg_postinst() { if test "x$D" != "x"; then diff --git a/packages/ppp-dsl/files/.mtn2git_empty b/packages/ppp-dsl/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ppp-dsl/files/.mtn2git_empty diff --git a/packages/ppp-dsl/dsl-provider b/packages/ppp-dsl/files/dsl-provider index 6feaf55752..6feaf55752 100644 --- a/packages/ppp-dsl/dsl-provider +++ b/packages/ppp-dsl/files/dsl-provider diff --git a/packages/ppp-dsl/ppp_on_boot.dsl b/packages/ppp-dsl/files/ppp_on_boot.dsl index f1d5183b38..f1d5183b38 100755 --- a/packages/ppp-dsl/ppp_on_boot.dsl +++ b/packages/ppp-dsl/files/ppp_on_boot.dsl diff --git a/packages/ppp-dsl/ppp-dsl_0.1-monolithic.bb b/packages/ppp-dsl/ppp-dsl_0.1-monolithic.bb deleted file mode 100644 index 216c87fffd..0000000000 --- a/packages/ppp-dsl/ppp-dsl_0.1-monolithic.bb +++ /dev/null @@ -1,5 +0,0 @@ -include ppp-dsl_0.1.bb - -RDEPENDS = "ppp rp-pppoe" - -S = "${WORKDIR}/ppp-dsl-0.1" diff --git a/packages/ppp-dsl/ppp-dsl_0.1.bb b/packages/ppp-dsl/ppp-dsl_0.1.bb index 8796da86da..8d63e8fc47 100644 --- a/packages/ppp-dsl/ppp-dsl_0.1.bb +++ b/packages/ppp-dsl/ppp-dsl_0.1.bb @@ -4,7 +4,7 @@ LICENSE = "PD" DEPENDS = "ppp rp-pppoe" RDEPENDS = "ppp rp-pppoe" RRECOMMENDS = "kernel-module-ppp-async kernel-module-ppp-generic kernel-module-slhc" -PR = "r2" +PR = "r5" SRC_URI = "file://dsl-provider \ file://ppp_on_boot.dsl" @@ -25,4 +25,6 @@ else fi } -CONFFILES_${PN}_nylon = "${sysconfdir}/ppp/peers/dsl-provider" +PACKAGE_ARCH = "all" + +CONFFILES_${PN} = "${sysconfdir}/ppp/peers/dsl-provider" diff --git a/packages/ppp/ppp-gprs/.mtn2git_empty b/packages/ppp/ppp-gprs/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ppp/ppp-gprs/.mtn2git_empty diff --git a/packages/ppp/ppp-gprs/chats/.mtn2git_empty b/packages/ppp/ppp-gprs/chats/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ppp/ppp-gprs/chats/.mtn2git_empty diff --git a/packages/ppp/ppp-gprs/chats/chat-gprs b/packages/ppp/ppp-gprs/chats/chat-gprs new file mode 100644 index 0000000000..b90e5ff2cf --- /dev/null +++ b/packages/ppp/ppp-gprs/chats/chat-gprs @@ -0,0 +1,9 @@ +# GPRS AP (Access Point) name should be passed via -T switch + +'' ATZ +OK AT+CGDCONT=1,"IP","\T" +# We setup profile #1 in the above command, and then use it to call +# GPRS. This is correct, but some buggy phone may parse only "ATD*99#" +OK "ATD*99***1#" +# OK "ATD*99#" +CONNECT '' diff --git a/packages/ppp/ppp-gprs/peers/.mtn2git_empty b/packages/ppp/ppp-gprs/peers/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ppp/ppp-gprs/peers/.mtn2git_empty diff --git a/packages/ppp/ppp-gprs/peers/_gprs b/packages/ppp/ppp-gprs/peers/_gprs new file mode 100644 index 0000000000..cc316951a0 --- /dev/null +++ b/packages/ppp/ppp-gprs/peers/_gprs @@ -0,0 +1,68 @@ +# This is generic pppd config for GPRS connection +# To connect to specific provider, one +# more provider-specific config +# file is required, which will +# usually just set chat utility params +# to make connection and call this one. +# (And in most cases that will be symlink +# to a file with well-known settings). +# +# Usage: +# pppd <modem_device> call gprs call <country>-<provider> +# where /etc/ppp/peers/<country>-<provider> ends with line +# "call _gprs" +# Example: +# pppd /dev/rfcomm0 call ua-life +# Debugging PPP protocol problems: +# pppd /dev/rfcomm0 call ua-life debug nodetach +# +# By default, pppd will go to +# background once connection is +# established. 'nodetach' option will +# prevent this. If you want pppd to +# even establish connection in +# background, comment 'updetach' below. +# +# To finish connection, use Ctrl+C if +# 'nodetach' was used, or +# kill `head -1 /var/run/ppp-gprs.pid` +# otherwise. If you are sure there is +# only one pppd connection, you can use +# killall pppd + +## +## pppd options +## + +# create /var/run/ppp-gprs.pid +# with pid for this connection +linkname gprs +# Connect in foreground, but go +# to background after that +updetach + +# Treat port as a modem and use +# reasonable speed +modem +crtscts +115200 + +# Don't do CCP (compression) +# negotiation, some providers are +# rumored to be buggy with this, and +# most of the rest simply don't support. +noccp +# We don't request provider to auth +# to us +noauth +# Don't try to make up our IP address +noipdefault +# We want provider to supply us with +# IP addresses +ipcp-accept-remote +ipcp-accept-local +# Ask provider for DNS and use it +usepeerdns +# Route all Internet traffic thru +# this connection +defaultroute diff --git a/packages/ppp/ppp-gprs/peers/_gprs-ap-internet b/packages/ppp/ppp-gprs/peers/_gprs-ap-internet new file mode 100644 index 0000000000..d55eeb0266 --- /dev/null +++ b/packages/ppp/ppp-gprs/peers/_gprs-ap-internet @@ -0,0 +1,3 @@ +# -T options sets value of GPRS AP name. Change this for your cell provider +connect '/usr/sbin/chat -V -f /etc/ppp/chats/chat-gprs -T internet' +call gprs diff --git a/packages/ppp/ppp-gprs_1.0.bb b/packages/ppp/ppp-gprs_1.0.bb new file mode 100644 index 0000000000..2db6e808f4 --- /dev/null +++ b/packages/ppp/ppp-gprs_1.0.bb @@ -0,0 +1,22 @@ +SECTION = "console/network" +DESCRIPTION = "PPP scripts for easy GPRS connection" +LICENSE = "GPL" +RDEPENDS = "ppp" +PR = "r1" + +SRC_URI = "file://peers/* file://chats/*" + +do_install () { + install -d ${D}${sysconfdir}/ppp/peers/ + install -d ${D}${sysconfdir}/ppp/chats/ + install -m 0644 ${WORKDIR}/peers/* ${D}${sysconfdir}/ppp/peers/ + install -m 0644 ${WORKDIR}/chats/* ${D}${sysconfdir}/ppp/chats/ + + # Add links for providers sharing same well-known config + ln -sf _gprs-ap-internet ${D}${sysconfdir}/ppp/peers/ua-life +} + +PACKAGE_ARCH = "all" + +# In worst case, user may need to edit anything +CONFFILES_${PN} = "${sysconfdir}/ppp/peers/_gprs ${sysconfdir}/ppp/chats/chat-gprs" diff --git a/packages/pwsafe/.mtn2git_empty b/packages/pwsafe/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pwsafe/.mtn2git_empty diff --git a/packages/pwsafe/pwsafe_0.2.0.bb b/packages/pwsafe/pwsafe_0.2.0.bb new file mode 100644 index 0000000000..1d06326037 --- /dev/null +++ b/packages/pwsafe/pwsafe_0.2.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "pwsafe is a unix commandline program that manages encrypted password databases." +AUTHOR = "Nicolas S. Dade <ndade@nsd.dyndns.org>" +HOMEPAGE = "http://pwsafe.sf.net" +# SECTION +PRIORITY = "optional" +LICENSE = "GPLv2" +DEPENDS = "openssl readline" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz" + +inherit autotools + +# zecke-workaround ;-) Thanks. Should contact upstream to fix their stuff +EXTRA_OECONF = " --with-openssl-dir=/bla/bla" + +do_configure_prepend() { + rm ${S}/configure +} diff --git a/packages/python/python-2.5-manifest.inc b/packages/python/python-2.5-manifest.inc index f899eb2fea..165fd2ae60 100644 --- a/packages/python/python-2.5-manifest.inc +++ b/packages/python/python-2.5-manifest.inc @@ -1,5 +1,5 @@ ######################################################################################################################## -### AUTO-GENERATED by 'contrib/python/generate-manifest-2.5.py' [(C) 2002-2007 Michael 'Mickey' Lauer <mlauer@vanille-media.de>] on Fri Dec 7 11:51:27 2007 +### AUTO-GENERATED by '../../contrib/python/generate-manifest-2.5.py' [(C) 2002-2007 Michael 'Mickey' Lauer <mlauer@vanille-media.de>] on Sun Jan 13 16:02:57 2008 ### ### Visit THE Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy ### @@ -13,287 +13,287 @@ PROVIDES+="python-profile python-threading python-distutils python-textutils pyt PACKAGES="python-profile python-threading python-distutils python-textutils python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-core-dbg python-resource python-devel python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-debugger python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio " DESCRIPTION_python-profile="Python Basic Profiling Support" -PR_python-profile="ml5" +PR_python-profile="ml6" RDEPENDS_python-profile="python-core" FILES_python-profile="${libdir}/python2.5/profile.* ${libdir}/python2.5/pstats.* " DESCRIPTION_python-threading="Python Threading & Synchronization Support" -PR_python-threading="ml5" +PR_python-threading="ml6" RDEPENDS_python-threading="python-core python-lang" FILES_python-threading="${libdir}/python2.5/_threading_local.* ${libdir}/python2.5/dummy_thread.* ${libdir}/python2.5/dummy_threading.* ${libdir}/python2.5/mutex.* ${libdir}/python2.5/threading.* ${libdir}/python2.5/Queue.* " DESCRIPTION_python-distutils="Python Distribution Utilities" -PR_python-distutils="ml5" +PR_python-distutils="ml6" RDEPENDS_python-distutils="python-core" FILES_python-distutils="${libdir}/python2.5/config ${libdir}/python2.5/distutils " DESCRIPTION_python-textutils="Python Option Parsing, Text Wrapping and Comma-Separated-Value Support" -PR_python-textutils="ml5" +PR_python-textutils="ml6" RDEPENDS_python-textutils="python-core python-io python-re python-stringold" FILES_python-textutils="${libdir}/python2.5/lib-dynload/_csv.so ${libdir}/python2.5/csv.* ${libdir}/python2.5/optparse.* ${libdir}/python2.5/textwrap.* " DESCRIPTION_python-codecs="Python Codecs, Encodings & i18n Support" -PR_python-codecs="ml5" +PR_python-codecs="ml6" RDEPENDS_python-codecs="python-core python-lang" FILES_python-codecs="${libdir}/python2.5/codecs.* ${libdir}/python2.5/encodings ${libdir}/python2.5/gettext.* ${libdir}/python2.5/locale.* ${libdir}/python2.5/lib-dynload/_locale.so ${libdir}/python2.5/lib-dynload/unicodedata.so ${libdir}/python2.5/stringprep.* ${libdir}/python2.5/xdrlib.* " DESCRIPTION_python-ctypes="Python C Types Support" -PR_python-ctypes="ml5" +PR_python-ctypes="ml6" RDEPENDS_python-ctypes="python-core" FILES_python-ctypes="${libdir}/python2.5/ctypes ${libdir}/python2.5/lib-dynload/_ctypes.so " DESCRIPTION_python-pickle="Python Persistence Support" -PR_python-pickle="ml5" +PR_python-pickle="ml6" RDEPENDS_python-pickle="python-core python-codecs python-io python-re" FILES_python-pickle="${libdir}/python2.5/pickle.* ${libdir}/python2.5/shelve.* ${libdir}/python2.5/lib-dynload/cPickle.so " DESCRIPTION_python-datetime="Python Calendar and Time support" -PR_python-datetime="ml5" +PR_python-datetime="ml6" RDEPENDS_python-datetime="python-core python-codecs" FILES_python-datetime="${libdir}/python2.5/_strptime.* ${libdir}/python2.5/calendar.* ${libdir}/python2.5/lib-dynload/datetime.so " DESCRIPTION_python-core="Python Interpreter and core modules (needed!)" -PR_python-core="ml5" +PR_python-core="ml6" RDEPENDS_python-core="" FILES_python-core="${libdir}/python2.5/__future__.* ${libdir}/python2.5/copy.* ${libdir}/python2.5/copy_reg.* ${libdir}/python2.5/ConfigParser.* ${libdir}/python2.5/getopt.* ${libdir}/python2.5/linecache.* ${libdir}/python2.5/new.* ${libdir}/python2.5/os.* ${libdir}/python2.5/posixpath.* ${libdir}/python2.5/struct.* ${libdir}/python2.5/warnings.* ${libdir}/python2.5/site.* ${libdir}/python2.5/stat.* ${libdir}/python2.5/UserDict.* ${libdir}/python2.5/UserList.* ${libdir}/python2.5/UserString.* ${libdir}/python2.5/lib-dynload/binascii.so ${libdir}/python2.5/lib-dynload/_struct.so ${libdir}/python2.5/lib-dynload/time.so ${libdir}/python2.5/lib-dynload/xreadlines.so ${libdir}/python2.5/types.* ${bindir}/python* " DESCRIPTION_python-io="Python Low-Level I/O" -PR_python-io="ml5" +PR_python-io="ml6" RDEPENDS_python-io="python-core python-math" FILES_python-io="${libdir}/python2.5/lib-dynload/_socket.so ${libdir}/python2.5/lib-dynload/_ssl.so ${libdir}/python2.5/lib-dynload/select.so ${libdir}/python2.5/lib-dynload/termios.so ${libdir}/python2.5/lib-dynload/cStringIO.so ${libdir}/python2.5/pipes.* ${libdir}/python2.5/socket.* ${libdir}/python2.5/tempfile.* ${libdir}/python2.5/StringIO.* " DESCRIPTION_python-compiler="Python Compiler Support" -PR_python-compiler="ml5" +PR_python-compiler="ml6" RDEPENDS_python-compiler="python-core" FILES_python-compiler="${libdir}/python2.5/compiler " DESCRIPTION_python-compression="Python High Level Compression Support" -PR_python-compression="ml5" +PR_python-compression="ml6" RDEPENDS_python-compression="python-core python-zlib" FILES_python-compression="${libdir}/python2.5/gzip.* ${libdir}/python2.5/zipfile.* " DESCRIPTION_python-re="Python Regular Expression APIs" -PR_python-re="ml5" +PR_python-re="ml6" RDEPENDS_python-re="python-core" FILES_python-re="${libdir}/python2.5/re.* ${libdir}/python2.5/sre.* ${libdir}/python2.5/sre_compile.* ${libdir}/python2.5/sre_constants* ${libdir}/python2.5/sre_parse.* " DESCRIPTION_python-xmlrpc="Python XMLRPC Support" -PR_python-xmlrpc="ml5" +PR_python-xmlrpc="ml6" RDEPENDS_python-xmlrpc="python-core python-xml python-netserver python-lang" FILES_python-xmlrpc="${libdir}/python2.5/xmlrpclib.* ${libdir}/python2.5/SimpleXMLRPCServer.* " DESCRIPTION_python-terminal="Python Terminal Controlling Support" -PR_python-terminal="ml5" +PR_python-terminal="ml6" RDEPENDS_python-terminal="python-core python-io" FILES_python-terminal="${libdir}/python2.5/pty.* ${libdir}/python2.5/tty.* " DESCRIPTION_python-email="Python Email Support" -PR_python-email="ml5" +PR_python-email="ml6" RDEPENDS_python-email="python-core python-io python-re python-mime python-audio python-image" FILES_python-email="${libdir}/python2.5/email " DESCRIPTION_python-image="Python Graphical Image Handling" -PR_python-image="ml5" +PR_python-image="ml6" RDEPENDS_python-image="python-core" FILES_python-image="${libdir}/python2.5/colorsys.* ${libdir}/python2.5/imghdr.* ${libdir}/python2.5/lib-dynload/imageop.so ${libdir}/python2.5/lib-dynload/rgbimg.so " DESCRIPTION_python-core-dbg="Python core module debug information" -PR_python-core-dbg="ml5" +PR_python-core-dbg="ml6" RDEPENDS_python-core-dbg="python-core" FILES_python-core-dbg="${libdir}/python2.5/lib-dynload/.debug ${bindir}/.debug ${libdir}/.debug " DESCRIPTION_python-resource="Python Resource Control Interface" -PR_python-resource="ml5" +PR_python-resource="ml6" RDEPENDS_python-resource="python-core" FILES_python-resource="${libdir}/python2.5/lib-dynload/resource.so " DESCRIPTION_python-devel="Python Development Package" -PR_python-devel="ml5" +PR_python-devel="ml6" RDEPENDS_python-devel="python-core" FILES_python-devel="${includedir} ${libdir}/python2.5/config " DESCRIPTION_python-math="Python Math Support" -PR_python-math="ml5" +PR_python-math="ml6" RDEPENDS_python-math="python-core" FILES_python-math="${libdir}/python2.5/lib-dynload/cmath.so ${libdir}/python2.5/lib-dynload/math.so ${libdir}/python2.5/lib-dynload/_random.so ${libdir}/python2.5/random.* ${libdir}/python2.5/sets.* " DESCRIPTION_python-hotshot="Python Hotshot Profiler" -PR_python-hotshot="ml5" +PR_python-hotshot="ml6" RDEPENDS_python-hotshot="python-core" FILES_python-hotshot="${libdir}/python2.5/hotshot ${libdir}/python2.5/lib-dynload/_hotshot.so " DESCRIPTION_python-unixadmin="Python Unix Administration Support" -PR_python-unixadmin="ml5" +PR_python-unixadmin="ml6" RDEPENDS_python-unixadmin="python-core" FILES_python-unixadmin="${libdir}/python2.5/lib-dynload/nis.so ${libdir}/python2.5/lib-dynload/grp.so ${libdir}/python2.5/lib-dynload/pwd.so ${libdir}/python2.5/getpass.* " DESCRIPTION_python-syslog="Python's syslog Interface" -PR_python-syslog="ml5" +PR_python-syslog="ml6" RDEPENDS_python-syslog="python-core" FILES_python-syslog="${libdir}/python2.5/lib-dynload/syslog.so " DESCRIPTION_python-tkinter="Python Tcl/Tk Bindings" -PR_python-tkinter="ml5" +PR_python-tkinter="ml6" RDEPENDS_python-tkinter="python-core" FILES_python-tkinter="${libdir}/python2.5/lib-dynload/_tkinter.so ${libdir}/python2.5/lib-tk " DESCRIPTION_python-gdbm="Python GNU Database Support" -PR_python-gdbm="ml5" +PR_python-gdbm="ml6" RDEPENDS_python-gdbm="python-core" FILES_python-gdbm="${libdir}/python2.5/lib-dynload/gdbm.so " DESCRIPTION_python-fcntl="Python's fcntl Interface" -PR_python-fcntl="ml5" +PR_python-fcntl="ml6" RDEPENDS_python-fcntl="python-core" FILES_python-fcntl="${libdir}/python2.5/lib-dynload/fcntl.so " DESCRIPTION_python-netclient="Python Internet Protocol Clients" -PR_python-netclient="ml5" +PR_python-netclient="ml6" RDEPENDS_python-netclient="python-core python-crypt python-datetime python-io python-lang python-logging python-mime" FILES_python-netclient="${libdir}/python2.5/*Cookie*.* ${libdir}/python2.5/base64.* ${libdir}/python2.5/cookielib.* ${libdir}/python2.5/ftplib.* ${libdir}/python2.5/gopherlib.* ${libdir}/python2.5/hmac.* ${libdir}/python2.5/httplib.* ${libdir}/python2.5/mimetypes.* ${libdir}/python2.5/nntplib.* ${libdir}/python2.5/poplib.* ${libdir}/python2.5/smtplib.* ${libdir}/python2.5/telnetlib.* ${libdir}/python2.5/urllib.* ${libdir}/python2.5/urllib2.* ${libdir}/python2.5/urlparse.* " DESCRIPTION_python-pprint="Python Pretty-Print Support" -PR_python-pprint="ml5" +PR_python-pprint="ml6" RDEPENDS_python-pprint="python-core" FILES_python-pprint="${libdir}/python2.5/pprint.* " DESCRIPTION_python-netserver="Python Internet Protocol Servers" -PR_python-netserver="ml5" +PR_python-netserver="ml6" RDEPENDS_python-netserver="python-core python-netclient" FILES_python-netserver="${libdir}/python2.5/cgi.* ${libdir}/python2.5/BaseHTTPServer.* ${libdir}/python2.5/SimpleHTTPServer.* ${libdir}/python2.5/SocketServer.* " DESCRIPTION_python-curses="Python Curses Support" -PR_python-curses="ml5" +PR_python-curses="ml6" RDEPENDS_python-curses="python-core" FILES_python-curses="${libdir}/python2.5/curses ${libdir}/python2.5/lib-dynload/_curses.so ${libdir}/python2.5/lib-dynload/_curses_panel.so " DESCRIPTION_python-smtpd="Python Simple Mail Transport Daemon" -PR_python-smtpd="ml5" +PR_python-smtpd="ml6" RDEPENDS_python-smtpd="python-core python-netserver python-email python-mime" FILES_python-smtpd="${bindir}/smtpd.* " DESCRIPTION_python-html="Python HTML Processing" -PR_python-html="ml5" +PR_python-html="ml6" RDEPENDS_python-html="python-core" FILES_python-html="${libdir}/python2.5/formatter.* ${libdir}/python2.5/htmlentitydefs.* ${libdir}/python2.5/htmllib.* ${libdir}/python2.5/markupbase.* ${libdir}/python2.5/sgmllib.* " DESCRIPTION_python-readline="Python Readline Support" -PR_python-readline="ml5" +PR_python-readline="ml6" RDEPENDS_python-readline="python-core" FILES_python-readline="${libdir}/python2.5/lib-dynload/readline.so ${libdir}/python2.5/rlcompleter.* " DESCRIPTION_python-subprocess="Python Subprocess Support" -PR_python-subprocess="ml5" +PR_python-subprocess="ml6" RDEPENDS_python-subprocess="python-core python-io python-re python-fcntl python-pickle" FILES_python-subprocess="${libdir}/python2.5/subprocess.* " DESCRIPTION_python-pydoc="Python Interactive Help Support" -PR_python-pydoc="ml5" +PR_python-pydoc="ml6" RDEPENDS_python-pydoc="python-core python-lang python-stringold python-re" FILES_python-pydoc="${bindir}/pydoc ${libdir}/python2.5/pydoc.* " DESCRIPTION_python-logging="Python Logging Support" -PR_python-logging="ml5" +PR_python-logging="ml6" RDEPENDS_python-logging="python-core python-io python-lang python-stringold" FILES_python-logging="${libdir}/python2.5/logging " DESCRIPTION_python-mailbox="Python Mailbox Format Support" -PR_python-mailbox="ml5" +PR_python-mailbox="ml6" RDEPENDS_python-mailbox="python-core python-mime" FILES_python-mailbox="${libdir}/python2.5/mailbox.* " DESCRIPTION_python-xml="Python basic XML support." -PR_python-xml="ml5" +PR_python-xml="ml6" RDEPENDS_python-xml="python-core python-re python-netclient" FILES_python-xml="${libdir}/python2.5/lib-dynload/pyexpat.so ${libdir}/python2.5/xml ${libdir}/python2.5/xmllib.* " DESCRIPTION_python-mime="Python MIME Handling APIs" -PR_python-mime="ml5" +PR_python-mime="ml6" RDEPENDS_python-mime="python-core python-io" FILES_python-mime="${libdir}/python2.5/mimetools.* ${libdir}/python2.5/uu.* ${libdir}/python2.5/quopri.* ${libdir}/python2.5/rfc822.* " DESCRIPTION_python-sqlite3="Python Sqlite3 Database Support" -PR_python-sqlite3="ml5" +PR_python-sqlite3="ml6" RDEPENDS_python-sqlite3="python-core" FILES_python-sqlite3="${libdir}/python2.5/sqlite3 " DESCRIPTION_python-tests="Python Tests" -PR_python-tests="ml5" +PR_python-tests="ml6" RDEPENDS_python-tests="python-core" FILES_python-tests="${libdir}/python2.5/test " DESCRIPTION_python-unittest="Python Unit Testing Framework" -PR_python-unittest="ml5" +PR_python-unittest="ml6" RDEPENDS_python-unittest="python-core python-stringold python-lang" FILES_python-unittest="${libdir}/python2.5/unittest.* " DESCRIPTION_python-stringold="Python String APIs [deprecated]" -PR_python-stringold="ml5" +PR_python-stringold="ml6" RDEPENDS_python-stringold="python-core python-re" FILES_python-stringold="${libdir}/python2.5/lib-dynload/strop.so ${libdir}/python2.5/string.* " DESCRIPTION_python-robotparser="Python robots.txt parser" -PR_python-robotparser="ml5" +PR_python-robotparser="ml6" RDEPENDS_python-robotparser="python-core python-netclient" FILES_python-robotparser="${libdir}/python2.5/robotparser.* " DESCRIPTION_python-lib-old-and-deprecated="Python Deprecated Libraries" -PR_python-lib-old-and-deprecated="ml5" +PR_python-lib-old-and-deprecated="ml6" RDEPENDS_python-lib-old-and-deprecated="python-core" FILES_python-lib-old-and-deprecated="${libdir}/python2.5/lib-old " DESCRIPTION_python-compile="Python Bytecode Compilation Support" -PR_python-compile="ml5" +PR_python-compile="ml6" RDEPENDS_python-compile="python-core" FILES_python-compile="${libdir}/python2.5/py_compile.* ${libdir}/python2.5/compileall.* " DESCRIPTION_python-debugger="Python Debugger" -PR_python-debugger="ml5" +PR_python-debugger="ml6" RDEPENDS_python-debugger="python-core python-io python-lang python-re python-stringold python-shell" FILES_python-debugger="${libdir}/python2.5/bdb.* ${libdir}/python2.5/pdb.* " DESCRIPTION_python-shell="Python Shell-Like Functionality" -PR_python-shell="ml5" +PR_python-shell="ml6" RDEPENDS_python-shell="python-core python-re" FILES_python-shell="${libdir}/python2.5/cmd.* ${libdir}/python2.5/commands.* ${libdir}/python2.5/dircache.* ${libdir}/python2.5/fnmatch.* ${libdir}/python2.5/glob.* ${libdir}/python2.5/popen2.* ${libdir}/python2.5/shutil.* " DESCRIPTION_python-bsddb="Python Berkeley Database Bindings" -PR_python-bsddb="ml5" +PR_python-bsddb="ml6" RDEPENDS_python-bsddb="python-core" FILES_python-bsddb="${libdir}/python2.5/bsddb " DESCRIPTION_python-mmap="Python Memory-Mapped-File Support" -PR_python-mmap="ml5" +PR_python-mmap="ml6" RDEPENDS_python-mmap="python-core python-io" FILES_python-mmap="${libdir}/python2.5/lib-dynload/mmap.so " DESCRIPTION_python-zlib="Python zlib Support." -PR_python-zlib="ml5" +PR_python-zlib="ml6" RDEPENDS_python-zlib="python-core" FILES_python-zlib="${libdir}/python2.5/lib-dynload/zlib.so " DESCRIPTION_python-db="Python File-Based Database Support" -PR_python-db="ml5" +PR_python-db="ml6" RDEPENDS_python-db="python-core" FILES_python-db="${libdir}/python2.5/anydbm.* ${libdir}/python2.5/dumbdbm.* ${libdir}/python2.5/whichdb.* " DESCRIPTION_python-crypt="Python Basic Cryptographic and Hashing Support" -PR_python-crypt="ml5" +PR_python-crypt="ml6" RDEPENDS_python-crypt="python-core" FILES_python-crypt="${libdir}/python2.5/hashlib.* ${libdir}/python2.5/md5.* ${libdir}/python2.5/sha.* ${libdir}/python2.5/lib-dynload/crypt.so ${libdir}/python2.5/lib-dynload/_hashlib.so ${libdir}/python2.5/lib-dynload/_sha256.so ${libdir}/python2.5/lib-dynload/_sha512.so " DESCRIPTION_python-idle="Python Integrated Development Environment" -PR_python-idle="ml5" +PR_python-idle="ml6" RDEPENDS_python-idle="python-core python-tkinter" FILES_python-idle="${bindir}/idle ${libdir}/python2.5/idlelib " DESCRIPTION_python-lang="Python Low-Level Language Support" -PR_python-lang="ml5" +PR_python-lang="ml6" RDEPENDS_python-lang="python-core" FILES_python-lang="${libdir}/python2.5/lib-dynload/array.so ${libdir}/python2.5/lib-dynload/parser.so ${libdir}/python2.5/lib-dynload/operator.so ${libdir}/python2.5/lib-dynload/_weakref.so ${libdir}/python2.5/lib-dynload/itertools.so ${libdir}/python2.5/lib-dynload/collections.so ${libdir}/python2.5/lib-dynload/_bisect.so ${libdir}/python2.5/lib-dynload/_heapq.so ${libdir}/python2.5/atexit.* ${libdir}/python2.5/bisect.* ${libdir}/python2.5/code.* ${libdir}/python2.5/codeop.* ${libdir}/python2.5/dis.* ${libdir}/python2.5/heapq.* ${libdir}/python2.5/inspect.* ${libdir}/python2.5/keyword.* ${libdir}/python2.5/opcode.* ${libdir}/python2.5/repr.* ${libdir}/python2.5/token.* ${libdir}/python2.5/tokenize.* ${libdir}/python2.5/traceback.* ${libdir}/python2.5/linecache.* ${libdir}/python2.5/weakref.* " DESCRIPTION_python-audio="Python Audio Handling" -PR_python-audio="ml5" +PR_python-audio="ml6" RDEPENDS_python-audio="python-core" FILES_python-audio="${libdir}/python2.5/wave.* ${libdir}/python2.5/chunk.* ${libdir}/python2.5/sndhdr.* ${libdir}/python2.5/lib-dynload/ossaudiodev.so ${libdir}/python2.5/lib-dynload/audioop.so " diff --git a/packages/python/python-ecore_cvs.bb b/packages/python/python-ecore_cvs.bb index 8f4db6382e..0ec598f5a0 100644 --- a/packages/python/python-ecore_cvs.bb +++ b/packages/python/python-ecore_cvs.bb @@ -1,7 +1,6 @@ require python-efl.inc DEPENDS += "ecore" - -PR = "r2" +PR = "r5" do_stage() { distutils_stage_all diff --git a/packages/python/python-edbus_cvs.bb b/packages/python/python-edbus_cvs.bb new file mode 100644 index 0000000000..7a4d53762f --- /dev/null +++ b/packages/python/python-edbus_cvs.bb @@ -0,0 +1,9 @@ +require python-efl.inc +# broken until someone adds dbus 1.1.x +DEPENDS += "edbus dbus-1.1" + +PR = "r0" + +SRC_URI = "${E_CVS};module=e17/proto/python-efl/python-e_dbus" +S = "${WORKDIR}/python-e_dbus" + diff --git a/packages/python/python-edje_cvs.bb b/packages/python/python-edje_cvs.bb index dfd9722f32..1205e7ec84 100644 --- a/packages/python/python-edje_cvs.bb +++ b/packages/python/python-edje_cvs.bb @@ -1,5 +1,4 @@ require python-efl.inc DEPENDS += "edje python-evas" - -PR = "r1" +PR = "r5" diff --git a/packages/python/python-efl-examples.bb b/packages/python/python-efl-examples.bb new file mode 100644 index 0000000000..0a4e32097f --- /dev/null +++ b/packages/python/python-efl-examples.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python Examples for the Enlightenment Foundation Libraries" +LICENSE = "MIT" +SECTION = "devel/python" +RDEPENDS = "\ + python-efl python-ecore-examples python-emotion-examples python-edje-examples python-epsilon-examples \ + python-math python-textutils \ +" +PR = "ml2" + +ALLOW_EMPTY = "1" diff --git a/packages/python/python-efl.bb b/packages/python/python-efl.bb index c667ceff11..ec5e9cd7e2 100644 --- a/packages/python/python-efl.bb +++ b/packages/python/python-efl.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Python Bindings to the Enlightenment Foundation Libraries" LICENSE = "MIT" SECTION = "devel/python" -DEPENDS = "python-evas python-ecore python-emotion python-edje python-epsilon" +RDEPENDS = "python-evas python-ecore python-emotion python-edje python-epsilon" +PR = "ml1" ALLOW_EMPTY = "1" - diff --git a/packages/python/python-efl.inc b/packages/python/python-efl.inc index 727c718bd2..e6cc62df5e 100644 --- a/packages/python/python-efl.inc +++ b/packages/python/python-efl.inc @@ -5,6 +5,7 @@ HOMEPAGE = "http://www.enlightenment.org" # somewhere is a bug. cython should be self-contained, but somehow this # does not compile unless pyrex has been built DEPENDS = "python-cython-native python-pyrex-native python-numeric" +RDEPENDS += "python-lang" PV = "0.1.1+cvs${SRCDATE}" inherit setuptools @@ -12,5 +13,25 @@ inherit setuptools SRC_URI = "${E_CVS};module=e17/proto/python-efl/${PN}" S = "${WORKDIR}/${PN}" +do_install_append() { + if [ -e examples ]; then + for i in `find examples -name "*.edc"`; do + pushd `dirname $i` + echo "Generating .edj file for $i..." + edje_cc `basename $i` + echo "Removing sources in this directory..." + rm -f *.edc *.png *.ttf *.jpeg + popd + done + install -d ${D}${datadir}/${PN}/ + cp -a examples ${D}${datadir}/${PN}/ + find ${D}${datadir}/${PN}/examples -name "CVS" | xargs rm -rf + find ${D}${datadir}/${PN}/examples -name ".cvsignore" | xargs rm -f + fi +} + FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" +PACKAGES += "${PN}-examples" +FILES_${PN}-examples = "${datadir}/${PN}/examples" + diff --git a/packages/python/python-emotion_cvs.bb b/packages/python/python-emotion_cvs.bb index 79c7f9633b..d3f5109d86 100644 --- a/packages/python/python-emotion_cvs.bb +++ b/packages/python/python-emotion_cvs.bb @@ -1,4 +1,3 @@ require python-efl.inc DEPENDS += "emotion python-evas" - -PR = "r1" +PR = "r4" diff --git a/packages/python/python-epsilon_cvs.bb b/packages/python/python-epsilon_cvs.bb index 81ebfcb0c7..204dd95610 100644 --- a/packages/python/python-epsilon_cvs.bb +++ b/packages/python/python-epsilon_cvs.bb @@ -1,4 +1,3 @@ require python-efl.inc DEPENDS += "epsilon python-ecore" - -PR = "r0" +PR = "r4" diff --git a/packages/python/python-evas_cvs.bb b/packages/python/python-evas_cvs.bb index ff14d95667..e0de4569bd 100644 --- a/packages/python/python-evas_cvs.bb +++ b/packages/python/python-evas_cvs.bb @@ -1,7 +1,6 @@ require python-efl.inc DEPENDS += "evas" - -PR = "r2" +PR = "r4" do_stage() { distutils_stage_all diff --git a/packages/python/python_2.5.1.bb b/packages/python/python_2.5.1.bb index 8ad4e797c0..37f7bdefb8 100644 --- a/packages/python/python_2.5.1.bb +++ b/packages/python/python_2.5.1.bb @@ -7,7 +7,7 @@ DEPENDS = "python-native readline zlib gdbm openssl sqlite3 tcl tk" DEPENDS_sharprom = "python-native readline zlib gdbm openssl" # NOTE: Keep the digit in sync with BASEREV in contrib/generate-manifest-2.5.py -PR = "ml5" +PR = "ml6" PYTHON_MAJMIN = "2.5" @@ -79,7 +79,7 @@ do_install() { require python-${PYTHON_MAJMIN}-manifest.inc RPROVIDES_python-core = "python" -RPROVIDES_python-curses = "python" +RRECOMMENDS_python-core = "python-readline" PACKAGES =+ "libpython2" FILES_libpython2 = "${libdir}/libpython*" diff --git a/packages/qpf-fonts/qpf-unismall_1.0.0.bb b/packages/qpf-fonts/qpf-unismall_1.0.0.bb index 20f47f9665..7dd724d306 100644 --- a/packages/qpf-fonts/qpf-unismall_1.0.0.bb +++ b/packages/qpf-fonts/qpf-unismall_1.0.0.bb @@ -4,7 +4,7 @@ PRIORITY = "optional" LICENSE = "GPL" HOMEPAGE = "http://sourceforge.jp/projects/zaurus-ja/" RPROVIDES = "virtual/japanese-font" -PR = "r2" +PR = "r3" SRC_URI = "http://osdn.dl.sourceforge.jp/zaurus-ja/773/unismall-${PV}.tar.gz" @@ -22,3 +22,5 @@ do_install () { } inherit qpf + +PACKAGE_ARCH = "all" diff --git a/packages/quilt/quilt-0.45/non-gnu.patch b/packages/quilt/files/non-gnu.patch index c1cbfb3983..c1cbfb3983 100644 --- a/packages/quilt/quilt-0.45/non-gnu.patch +++ b/packages/quilt/files/non-gnu.patch diff --git a/packages/quilt/files/install.patch b/packages/quilt/quilt-0.45/install.patch index 4122370d6a..4122370d6a 100644 --- a/packages/quilt/files/install.patch +++ b/packages/quilt/quilt-0.45/install.patch diff --git a/packages/quilt/quilt-0.46/.mtn2git_empty b/packages/quilt/quilt-0.46/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/quilt/quilt-0.46/.mtn2git_empty diff --git a/packages/quilt/quilt-0.46/aclocal.patch b/packages/quilt/quilt-0.46/aclocal.patch new file mode 100644 index 0000000000..1245f74922 --- /dev/null +++ b/packages/quilt/quilt-0.46/aclocal.patch @@ -0,0 +1,126 @@ +Add the aclocal.m4 as acinclude.m4 + +Index: quilt-0.46/acinclude.m4 +=================================================================== +--- /dev/null ++++ quilt-0.46/acinclude.m4 +@@ -0,0 +1,119 @@ ++dnl Allow configure to specify a specific binary ++dnl 1: Environment variable ++dnl 2: binary name ++dnl 3: optional list of alternative binary names ++dnl 4: optional list of additional search directories ++AC_DEFUN([QUILT_COMPAT_PROG_PATH],[ ++ m4_define([internal_$2_cmd],[esyscmd(ls compat/$2.in 2>/dev/null)]) ++ ++ AC_ARG_WITH($2, AC_HELP_STRING( ++ [--with-$2], [name of the $2 executable to use] ++ m4_if(internal_$2_cmd,[],[],[ (use --without-$2 ++ to use an internal mechanism)])), ++ [ ++ if test x"$withval" = xnone; then ++ AC_MSG_ERROR([Invalid configure argument. use --without-$2]) ++ fi ++ if test x"$withval" != xno; then ++ AC_MSG_CHECKING(for $2) ++ $1="$withval" ++ if test -e "$$1"; then ++ if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then ++ AC_MSG_ERROR([$$1 is not an executable file]) ++ fi ++ fi ++ AC_MSG_RESULT([$$1]) ++ if test ! -e "$$1"; then ++ AC_MSG_WARN([$$1 does not exist]) ++ fi ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ fi ++ ],[ ++ m4_if([$3],[],[ ++ AC_PATH_PROG($1,$2,,$PATH:$4) ++ ],[ ++ AC_PATH_PROGS($1,$3,,$PATH:$4) ++ if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ fi ++ ]) ++ m4_if([$4],[],[],[ ++ if test -n "$$1"; then ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++ for dir in "$4"; do ++ if test "`dirname $$1`" = "$dir"; then ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ break ++ fi ++ done ++ IFS="$as_save_IFS" ++ fi ++ ]) ++ ]) ++ if test -z "$$1"; then ++ m4_if(internal_$2_cmd,[],[ ++ AC_MSG_ERROR([Please specify the location of $2 with the option '--with-$2']) ++ ],[ ++ AC_MSG_WARN([Using internal $2 mechanism. Use option '--with-$2' to override]) ++ COMPAT_PROGRAMS="$COMPAT_PROGRAMS $2" ++ $1=$2 ++ INTERNAL_$1=1 ++ ]) ++ fi ++ AC_SUBST($1) ++]) ++ ++dnl Allow configure to specify a specific binary ++dnl This variant is for optional binaries. ++dnl 1: Environment variable ++dnl 2: binary name ++dnl 3: optional list of alternative binary names ++dnl 4: optional list of additional search directories ++AC_DEFUN([QUILT_COMPAT_PROG_PATH_OPT],[ ++ AC_ARG_WITH($2, AC_HELP_STRING( ++ [--with-$2], [name of the $2 executable to use]), ++ [ ++ if test x"$withval" != xno; then ++ AC_MSG_CHECKING(for $2) ++ $1="$withval" ++ if test -e "$$1"; then ++ if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then ++ AC_MSG_ERROR([$$1 is not an executable file]) ++ fi ++ fi ++ AC_MSG_RESULT([$$1]) ++ if test ! -e "$$1"; then ++ AC_MSG_WARN([$$1 does not exist]) ++ fi ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ fi ++ ],[ ++ m4_if([$3],[],[ ++ AC_PATH_PROG($1,$2,,$PATH:$4) ++ ],[ ++ AC_PATH_PROGS($1,$3,,$PATH:$4) ++ if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ fi ++ ]) ++ m4_if([$4],[],[],[ ++ if test -n "$$1"; then ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++ for dir in "$4"; do ++ if test "`dirname $$1`" = "$dir"; then ++ COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" ++ break ++ fi ++ done ++ IFS="$as_save_IFS" ++ fi ++ ]) ++ if test -z "$$1"; then ++ AC_MSG_WARN([$2 not found, some optional functionalities will be missing]) ++ fi ++ ]) ++ if test -z "$$1"; then ++ $1=$2 ++ fi ++ AC_SUBST($1) ++]) diff --git a/packages/quilt/quilt-0.46/install.patch b/packages/quilt/quilt-0.46/install.patch new file mode 100644 index 0000000000..3c9030d377 --- /dev/null +++ b/packages/quilt/quilt-0.46/install.patch @@ -0,0 +1,13 @@ +Index: quilt-0.46/Makefile.in +=================================================================== +--- quilt-0.46.orig/Makefile.in ++++ quilt-0.46/Makefile.in +@@ -12,7 +12,7 @@ datadir := @datadir@ + docdir := @docdir@ + mandir := @mandir@ + localedir := $(datadir)/locale +-etcdir := $(subst /usr/etc,/etc,$(prefix)/etc) ++etcdir := @sysconfdir@ + + INSTALL := @INSTALL@ + POD2MAN := @POD2MAN@ diff --git a/packages/quilt/quilt-native.inc b/packages/quilt/quilt-native.inc index 5861b2229c..f815969344 100644 --- a/packages/quilt/quilt-native.inc +++ b/packages/quilt/quilt-native.inc @@ -1,4 +1,4 @@ -require quilt_${PV}.inc +require quilt.inc SRC_URI_append_build-darwin = "? file://non-gnu.patch;patch=1 " RDEPENDS_${PN} = "diffstat-native patch-native bzip2-native util-linux-native" diff --git a/packages/quilt/quilt-native_0.45.bb b/packages/quilt/quilt-native_0.45.bb index 033f323a13..302df25afd 100644 --- a/packages/quilt/quilt-native_0.45.bb +++ b/packages/quilt/quilt-native_0.45.bb @@ -1,2 +1 @@ -PV="0.45" require quilt-native.inc diff --git a/packages/quilt/quilt-native_0.46.bb b/packages/quilt/quilt-native_0.46.bb new file mode 100644 index 0000000000..302df25afd --- /dev/null +++ b/packages/quilt/quilt-native_0.46.bb @@ -0,0 +1 @@ +require quilt-native.inc diff --git a/packages/quilt/quilt-package.inc b/packages/quilt/quilt-package.inc index bcdbcf026a..900884b917 100644 --- a/packages/quilt/quilt-package.inc +++ b/packages/quilt/quilt-package.inc @@ -1,10 +1,21 @@ +require quilt.inc + +RDEPENDS_${PN} += "patch diffstat bzip2 util-linux" + +SRC_URI += "file://aclocal.patch;patch=1" + +inherit autotools gettext + +do_install () { + oe_runmake 'BUILD_ROOT=${D}' install + + # Remove the compat symlinks + rm -rf "${D}"/usr/share/quilt/compat +} + PACKAGES += "guards guards-doc" FILES_${PN} = "${sysconfdir} ${datadir}/quilt \ ${bindir}/quilt ${libdir}/quilt" FILES_guards = "${bindir}/guards" FILES_${PN}-doc = "${mandir}/man1/quilt.1 ${docdir}/${P}" FILES_guards-doc = "${mandir}/man1/guards.1" - -do_install () { - oe_runmake 'BUILD_ROOT=${D}' install -} diff --git a/packages/quilt/quilt.inc b/packages/quilt/quilt.inc index ee90455fca..33bc0f62ea 100644 --- a/packages/quilt/quilt.inc +++ b/packages/quilt/quilt.inc @@ -2,8 +2,9 @@ DESCRIPTION = "Tool to work with series of patches." HOMEPAGE = "http://savannah.nongnu.org/projects/quilt/" SECTION = "devel" LICENSE = "GPL" -PR = "r1" +PR = "r2" -SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz " +SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz \ + file://install.patch;patch=1" S = "${WORKDIR}/quilt-${PV}" diff --git a/packages/quilt/quilt_0.45.bb b/packages/quilt/quilt_0.45.bb index d809c83518..de38f64782 100644 --- a/packages/quilt/quilt_0.45.bb +++ b/packages/quilt/quilt_0.45.bb @@ -1,9 +1 @@ -RDEPENDS_${PN} += "patch diffstat bzip2 util-linux" - -require quilt_${PV}.inc - -SRC_URI += "file://aclocal.patch;patch=1" - -inherit autotools gettext - require quilt-package.inc diff --git a/packages/quilt/quilt_0.45.inc b/packages/quilt/quilt_0.45.inc deleted file mode 100644 index bf6267b56c..0000000000 --- a/packages/quilt/quilt_0.45.inc +++ /dev/null @@ -1,3 +0,0 @@ -require quilt.inc - -SRC_URI += "file://install.patch;patch=1" diff --git a/packages/quilt/quilt_0.46.bb b/packages/quilt/quilt_0.46.bb new file mode 100644 index 0000000000..de38f64782 --- /dev/null +++ b/packages/quilt/quilt_0.46.bb @@ -0,0 +1 @@ +require quilt-package.inc diff --git a/packages/roadmap/files/options.mk.patch b/packages/roadmap/files/options.mk.patch new file mode 100644 index 0000000000..196f16e31d --- /dev/null +++ b/packages/roadmap/files/options.mk.patch @@ -0,0 +1,34 @@ +--- roadmap-1.1.0/src/options.mk.old 2008-01-09 22:08:00.000000000 -0600 ++++ roadmap-1.1.0/src/options.mk 2008-01-09 23:06:29.000000000 -0600 +@@ -177,10 +177,7 @@ ifeq ($(strip $(AGG)),NO) + else + LIBS += -laggfontfreetype -lagg -lfreetype + CFLAGS += -DAGG_PIXFMT=pixfmt_$(AGG) \ +- -I$(TOP)/agg_support \ +- -I/usr/include/agg2 \ +- -I/usr/local/include/agg2 \ +- -I/usr/include/freetype2 ++ -I$(TOP)/agg_support + CANVAS_OBJS = roadmap_canvas_agg.o \ + $(TOP)/agg_support/roadmap_canvas.o + endif +@@ -188,7 +185,7 @@ endif + # bidirectional text lib + ifneq ($(strip $(BIDI)),NO) + LIBS += -lfribidi +- CFLAGS += -DUSE_FRIBIDI -I/usr/include/fribidi ++ CFLAGS += -DUSE_FRIBIDI + endif + + # RoadMap internal profiling +@@ -205,8 +202,8 @@ else + endif + + +-CFLAGS += -I$(TOP) -I/usr/local/include -DNDEBUG ++CFLAGS += -I$(TOP) -DNDEBUG + +-LIBS := -L/usr/local/lib $(LIBS) -lm ++LIBS := $(LIBS) -lm + + CXXFLAGS = $(CFLAGS) diff --git a/packages/roadmap/files/roadmap_path.patch b/packages/roadmap/files/roadmap_path.patch new file mode 100644 index 0000000000..7a7ab74261 --- /dev/null +++ b/packages/roadmap/files/roadmap_path.patch @@ -0,0 +1,57 @@ +--- src/unix/roadmap_path.c.old 2008-01-12 21:08:03.000000000 -0600 ++++ src/unix/roadmap_path.c 2008-01-12 21:29:40.000000000 -0600 +@@ -93,23 +93,18 @@ static const char *RoadMapPathConfig[] = + "/opt/QtPalmtop/share/roadmap", + "/mnt/cf/QtPalmtop/share/roadmap", + "/mnt/card/QtPalmtop/share/roadmap", +-#else ++#endif + /* This is for standard Unix configurations. */ + "/etc/roadmap", + "/usr/local/share/roadmap", + "/usr/share/roadmap", +-#endif + NULL + }; + static const char *RoadMapPathConfigPreferred = + #ifdef ROADMAP_CONFIG_DIR + ROADMAP_CONFIG_DIR; + #else +-#ifdef QWS +- "/mnt/cf/QtPalmtop/share/roadmap"; +-#else +- "/usr/local/share/roadmap"; +-#endif ++ "/usr/share/roadmap"; + #endif + + +@@ -123,7 +118,7 @@ static const char *RoadMapPathMaps[] = { + "/opt/QtPalmtop/share/roadmap/...", + "/mnt/cf/QtPalmtop/share/roadmap/...", + "/mnt/card/QtPalmtop/share/roadmap/...", +-#else ++#endif + /* This is for standard Unix configurations. */ + "&/maps/...", + "/var/lib/roadmap/...", +@@ -134,19 +129,14 @@ static const char *RoadMapPathMaps[] = { + */ + "/usr/local/share/roadmap/...", + "/usr/share/roadmap/...", +-#endif + NULL + }; + static const char *RoadMapPathMapsPreferred = + #ifdef ROADMAP_MAP_DIR + ROADMAP_MAP_DIR; + #else +-#ifdef QWS +- "/mnt/cf/QtPalmtop/share/roadmap"; +-#else + "/var/lib/roadmap"; + #endif +-#endif + + /* The default path for the icon files (the "icons" path): */ + static const char *RoadMapPathIcons[] = { diff --git a/packages/roadmap/roadmap-gtk2-1.0.12/roadgps.desktop.patch b/packages/roadmap/roadmap-gtk2-1.0.12/roadgps.desktop.patch deleted file mode 100644 index 8f79b5503f..0000000000 --- a/packages/roadmap/roadmap-gtk2-1.0.12/roadgps.desktop.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/qt/ipkg/zroadgps.desktop.old 2007-12-24 19:35:34.000000000 -0600 -+++ src/qt/ipkg/zroadgps.desktop 2007-12-24 19:37:12.000000000 -0600 -@@ -1,6 +1,7 @@ - [Desktop Entry] - Comment=RoadMap - Exec=roadgps --Icon=zroadgps -+Icon=roadgps - Type=Application - Name=RoadMapGPS -+Categories=Graphics;Viewer;GTK; diff --git a/packages/roadmap/roadmap-gtk2.inc b/packages/roadmap/roadmap-gtk2.inc new file mode 100644 index 0000000000..6d0db5099b --- /dev/null +++ b/packages/roadmap/roadmap-gtk2.inc @@ -0,0 +1,11 @@ +require roadmap.inc + +SECTION = "x11/applications" + +DEPENDS += "agg gtk+" + +EXTRA_OEMAKE = "DESKTOP=GTK2 AGG=rgb565 \ + POPT=NO SCRIPTS= BUILD= INSTALLDIR=/usr DESTDIR=${D} \ + desktopdir=${D}${datadir}/applications" + +CFLAGS += " -I${STAGING_INCDIR}/agg2 " diff --git a/packages/roadmap/roadmap-gtk2_1.0.12.bb b/packages/roadmap/roadmap-gtk2_1.0.12.bb deleted file mode 100644 index e2ce5f2316..0000000000 --- a/packages/roadmap/roadmap-gtk2_1.0.12.bb +++ /dev/null @@ -1,44 +0,0 @@ -require roadmap.inc - -DEPENDS = "gtk+" -PR = "r0" - -SRC_URI = "http://www.roadmap.digitalomaha.net/roadmap/roadmap_1_0_12p2_src.tar.gz \ - file://roadmap.desktop.patch;patch=1 \ - file://roadgps.desktop.patch;patch=1 \ - http://www.roadmap.digitalomaha.net/maps-1.0.12/usdir.rdm.tgz \ - file://zroadgps.png " - -S = "${WORKDIR}/roadmap-${PV}/src" - -DESKTOP = "GTK2" -CFLAGS += " -I${STAGING_INCDIR}/atk-1.0 -I${STAGING_INCDIR}/cairo -I${STAGING_INCDIR}/pango-1.0 \ - -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_INCDIR}/gtk-2.0 -I${STAGING_LIBDIR}/gtk-2.0/include -I${S} " - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a unix/libosroadmap.a - cd gtk2 && oe_runmake -} - -do_install() { - install -d ${D}${bindir} - install -d ${D}${datadir}/applications - install -d ${D}${datadir}/pixmaps - install -d ${D}${datadir}/roadmap - - install -m 0755 gtk2/gtkroadmap ${D}${bindir}/roadmap - install -m 0755 gtk2/gtkroadgps ${D}${bindir}/roadgps - - install -m 0644 icons/*png ${D}${datadir}/pixmaps/ - install -m 0644 roadmap.png ${D}${datadir}/pixmaps/ - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${datadir}/pixmaps/roadgps.png - - install -m 0644 roadmap.desktop ${D}${datadir}/applications/ - install -m 0644 qt/ipkg/zroadgps.desktop ${D}${datadir}/applications/roadgps.desktop - - install -m 0644 sprites schema preferences ${D}${datadir}/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${datadir}/roadmap/ -} - -FILES_${PN} += "${datadir}/roadmap" - diff --git a/packages/roadmap/roadmap-gtk2_1.1.0.bb b/packages/roadmap/roadmap-gtk2_1.1.0.bb index f638cf1fdd..1e34238106 100644 --- a/packages/roadmap/roadmap-gtk2_1.1.0.bb +++ b/packages/roadmap/roadmap-gtk2_1.1.0.bb @@ -1,46 +1,12 @@ -require roadmap.inc +require roadmap-gtk2.inc -DEPENDS = "agg expat gtk+" -PR = "r0" +PR = "r2" SRC_URI = "${SOURCEFORGE_MIRROR}/roadmap/roadmap-${PV}-src.tar.gz \ file://cross.patch;patch=1;pnum=2 \ + file://options.mk.patch;patch=1;pnum=2 \ + file://roadmap_path.patch;patch=1 \ file://roadmap.desktop.patch;patch=1 \ - http://roadmap.digitalomaha.net/maps/usdir.rdm.tgz \ - file://zroadgps.png" + http://roadmap.digitalomaha.net/maps/usdir.rdm.tgz " S = "${WORKDIR}/roadmap-${PV}/src" - -DESKTOP = "GTK2" -POPT = "NO" -AGG = "rgba32" -CFLAGS += " -I${STAGING_INCDIR}/atk-1.0 -I${STAGING_INCDIR}/cairo -I${STAGING_INCDIR}/pango-1.0 \ - -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_INCDIR}/gtk-2.0 -I${STAGING_LIBDIR}/gtk-2.0/include -I${S} " - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a - oe_runmake -C gpx libgpx.a - oe_runmake -C unix libosroadmap.a - oe_runmake -C gtk2 gtkroadmap gtkroadgps -} - -do_install() { - install -d ${D}${bindir} - install -d ${D}${datadir}/applications - install -d ${D}${datadir}/pixmaps - install -d ${D}${datadir}/roadmap - - install -m 0755 gtk2/gtkroadmap ${D}${bindir}/roadmap - install -m 0755 gtk2/gtkroadgps ${D}${bindir}/roadgps - - install -m 0644 icons/*png ${D}${datadir}/pixmaps/ - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${datadir}/pixmaps/roadgps.png - - install -m 0644 roadmap.desktop ${D}${datadir}/applications/ - - install -m 0644 sprites preferences ${D}${datadir}/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${datadir}/roadmap/ -} - -FILES_${PN} += "${datadir}/roadmap" - diff --git a/packages/roadmap/roadmap-gtk2_cvs.bb b/packages/roadmap/roadmap-gtk2_cvs.bb index 2ece0de929..9d7adbaa3e 100644 --- a/packages/roadmap/roadmap-gtk2_cvs.bb +++ b/packages/roadmap/roadmap-gtk2_cvs.bb @@ -1,45 +1,13 @@ -require roadmap.inc +require roadmap-gtk2.inc -DEPENDS = "agg expat gtk+" -PV = "1.1.0+cvs${SRCDATE}" -PR = "r0" +PV = "0.0+cvs${SRCDATE}" +PR = "r1" SRC_URI = "cvs://anonymous:@roadmap.cvs.sf.net/cvsroot/roadmap;module=roadmap \ file://cross.patch;patch=1;pnum=2 \ - http://roadmap.digitalomaha.net/maps/usdir.rdm.tgz \ - file://zroadgps.png" + file://options.mk.patch;patch=1;pnum=2 \ + file://roadmap_path.patch;patch=1 \ + http://roadmap.digitalomaha.net/maps/usdir.rdm.tgz " S = "${WORKDIR}/roadmap/src" -DESKTOP = "GTK2" -AGG = "rgba32" -CFLAGS += " -I${STAGING_INCDIR}/atk-1.0 -I${STAGING_INCDIR}/cairo -I${STAGING_INCDIR}/pango-1.0 \ - -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_INCDIR}/gtk-2.0 -I${STAGING_LIBDIR}/gtk-2.0/include -I${S} " - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a - oe_runmake -C gpx libgpx.a - oe_runmake -C unix libosroadmap.a - oe_runmake -C gtk2 gtkroadmap gtkroadgps -} - -do_install() { - install -d ${D}${bindir} - install -d ${D}${datadir}/applications - install -d ${D}${datadir}/pixmaps - install -d ${D}${datadir}/roadmap - - install -m 0755 gtk2/gtkroadmap ${D}${bindir}/roadmap - install -m 0755 gtk2/gtkroadgps ${D}${bindir}/roadgps - - install -m 0644 icons/*png ${D}${datadir}/pixmaps/ - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${datadir}/pixmaps/roadgps.png - - install -m 0644 roadmap.desktop ${D}${datadir}/applications/ - - install -m 0644 sprites preferences ${D}${datadir}/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${datadir}/roadmap/ -} - -FILES_${PN} += "${datadir}/roadmap" - diff --git a/packages/roadmap/roadmap.inc b/packages/roadmap/roadmap.inc index e9598df178..43b4b1cd3d 100644 --- a/packages/roadmap/roadmap.inc +++ b/packages/roadmap/roadmap.inc @@ -4,5 +4,15 @@ AUTHOR = "Pascal Martin <pascal.martin@iname.com>" HOMEPAGE = "http://roadmap.digitalomaha.net/maps.html" LICENSE = "GPL" RRECOMMENDS = "gpsd flite" +DEPENDS = "expat" -PARALLEL_MAKE = "" +FILES_${PN} += "${datadir}/roadmap" + +do_compile() { + oe_runmake runtime ${TOOLS} icons +} + +do_install() { + oe_runmake install + install -m 0644 ${WORKDIR}/usdir.rdm ${D}${datadir}/roadmap/ +} diff --git a/packages/roadmap/zroadmap-1.0.12/qt2-fixes.patch b/packages/roadmap/zroadmap-1.0.12/qt2-fixes.patch deleted file mode 100644 index 46b17b8cfb..0000000000 --- a/packages/roadmap/zroadmap-1.0.12/qt2-fixes.patch +++ /dev/null @@ -1,25 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- roadmap-1.0.12/src/qt/qt_main.cc~qt2-fixes -+++ roadmap-1.0.12/src/qt/qt_main.cc -@@ -123,7 +123,7 @@ - switch (orientation[0]) { - case 't': - case 'T': break; -- -+#ifndef QWS - case 'b': - case 'B': moveDockWindow (toolBar, DockBottom); break; - -@@ -132,7 +132,7 @@ - - case 'r': - case 'R': moveDockWindow (toolBar, DockRight); break; -- -+#endif - default: roadmap_log (ROADMAP_FATAL, - "Invalid toolbar orientation %s", orientation); - } diff --git a/packages/roadmap/zroadmap.inc b/packages/roadmap/zroadmap.inc index acee708837..3c99f9d234 100644 --- a/packages/roadmap/zroadmap.inc +++ b/packages/roadmap/zroadmap.inc @@ -1,5 +1,7 @@ require roadmap.inc +PARALLEL_MAKE = "" + SECTION = "opie/applications" inherit palmtop @@ -7,7 +9,15 @@ inherit palmtop QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}' QT_LIBRARY_append_c7x0 = " -laticore" +EXTRA_OEMAKE = "DESKTOP=QPE MOC=${OE_QMAKE_MOC} UIC=${OE_QMAKE_UIC} QTDIR=${QTDIR} \ + POPT=NO SCRIPTS= BUILD= INSTALLDIR=/usr DESTDIR=${D} \ + icondir=${D}${palmtopdir}/pics \ + desktopdir=${D}${palmtopdir}/apps/Applications \ + CFLAGS="-DQWS -I${S} ${OE_QMAKE_CFLAGS} -I${OE_QMAKE_INCDIR_QT}" \ + LDFLAGS="${OE_QMAKE_LDFLAGS} -L${OE_QMAKE_LIBDIR_QT} -Wl,-rpath-link,${OE_QMAKE_LIBDIR_QT}"" + do_configure() { echo removing pregenerated stuff find . -name "moc*"|xargs rm -f } + diff --git a/packages/roadmap/zroadmap_1.0.12.bb b/packages/roadmap/zroadmap_1.0.12.bb deleted file mode 100644 index c7fc851d0d..0000000000 --- a/packages/roadmap/zroadmap_1.0.12.bb +++ /dev/null @@ -1,38 +0,0 @@ -require zroadmap.inc - -PR = "r1" - -SRC_URI = "http://www.roadmap.digitalomaha.net/roadmap/roadmap_1_0_12p2_src.tar.gz \ - file://qt2-fixes.patch;pnum=2;patch=1 \ - http://www.roadmap.digitalomaha.net/maps-1.0.12/usdir.rdm.tgz \ - file://zroadgps.png" - -S = "${WORKDIR}/roadmap-${PV}/src" - -EXTRA_OEMAKE = 'DESKTOP=QPE MOC=${OE_QMAKE_MOC} UIC=${OE_QMAKE_UIC} \ - GUICFLAGS="-I${OE_QMAKE_INCDIR_QT} -I${S} -DQWS" \ - GUILDFLAGS="-lz -lpng -ljpeg -lts -l${QT_LIBRARY} -lqpe -Wl,-rpath-link,${STAGING_LIBDIR} -L${STAGING_LIBDIR} -L${QTDIR}/lib"' - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a unix/libosroadmap.a - cd qt && oe_runmake -} - -do_install() { - install -d ${D}${palmtopdir}/bin - install -d ${D}${palmtopdir}/apps/Applications - install -d ${D}${palmtopdir}/pics - install -d ${D}${palmtopdir}/share/roadmap - - install -m 0755 qt/qtroadmap ${D}${palmtopdir}/bin/roadmap - install -m 0755 qt/qtroadgps ${D}${palmtopdir}/bin/roadgps - - install -m 0644 icons/*.png ${D}${palmtopdir}/pics/ - install -m 0644 roadmap.png ${D}${palmtopdir}/pics/zroadmap.png - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${palmtopdir}/pics/zroadgps.png - - install -m 0644 qt/ipkg/*.desktop ${D}${palmtopdir}/apps/Applications/ - - install -m 0644 sprites schema preferences ${D}${palmtopdir}/share/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${palmtopdir}/share/roadmap/ -} diff --git a/packages/roadmap/zroadmap_1.1.0.bb b/packages/roadmap/zroadmap_1.1.0.bb index bafcc7c27d..b06e4e7ad0 100644 --- a/packages/roadmap/zroadmap_1.1.0.bb +++ b/packages/roadmap/zroadmap_1.1.0.bb @@ -1,45 +1,16 @@ require zroadmap.inc -DEPENDS = "expat" -PR = "r1" +PR = "r2" SRC_URI = "${SOURCEFORGE_MIRROR}/roadmap/roadmap-${PV}-src.tar.gz \ file://cross.patch;patch=1;pnum=2 \ + file://options.mk.patch;patch=1;pnum=2 \ file://qt/qt2-fixes.patch;patch=1 \ file://qt/qt_canvas.patch;patch=1 \ file://qt/qt_main.patch;patch=1 \ file://qt/roadmap_main.patch;patch=1 \ + file://roadmap_path.patch;patch=1 \ file://roadmap.desktop.patch;patch=1 \ - http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz \ - file://zroadgps.png" + http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz" S = "${WORKDIR}/roadmap-${PV}/src" - -EXTRA_OEMAKE = 'DESKTOP=QPE MOC=${OE_QMAKE_MOC} UIC=${OE_QMAKE_UIC} QTDIR=${QTDIR} POPT=NO \ - CFLAGS="-DQWS -I${S} ${OE_QMAKE_CFLAGS} -I${OE_QMAKE_INCDIR_QT}" \ - LDFLAGS="${OE_QMAKE_LDFLAGS} -L${OE_QMAKE_LIBDIR_QT} -Wl,-rpath-link,${OE_QMAKE_LIBDIR_QT}" ' - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a - oe_runmake -C gpx libgpx.a - oe_runmake -C unix libosroadmap.a - oe_runmake -C qt qtroadmap qtroadgps -} - -do_install() { - install -d ${D}${palmtopdir}/bin - install -d ${D}${palmtopdir}/apps/Applications - install -d ${D}${palmtopdir}/pics - install -d ${D}${palmtopdir}/share/roadmap - - install -m 0755 qt/qtroadmap ${D}${palmtopdir}/bin/roadmap - install -m 0755 qt/qtroadgps ${D}${palmtopdir}/bin/roadgps - - install -m 0644 icons/*.png ${D}${palmtopdir}/pics/ - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${palmtopdir}/pics/zroadgps.png - - install -m 0644 *.desktop ${D}${palmtopdir}/apps/Applications/ - - install -m 0644 sprites preferences ${D}${palmtopdir}/share/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${palmtopdir}/share/roadmap/ -} diff --git a/packages/roadmap/zroadmap_cvs.bb b/packages/roadmap/zroadmap_cvs.bb index cb81756041..383ffe8f69 100644 --- a/packages/roadmap/zroadmap_cvs.bb +++ b/packages/roadmap/zroadmap_cvs.bb @@ -1,42 +1,13 @@ require zroadmap.inc -DEPENDS = "expat" -PV = "1.1.0+cvs${SRCDATE}" -PR = "r1" +PV = "0.0+cvs${SRCDATE}" +PR = "r0" SRC_URI = "cvs://anonymous:@roadmap.cvs.sf.net/cvsroot/roadmap;module=roadmap \ file://cross.patch;patch=1;pnum=2 \ + file://options.mk.patch;patch=1;pnum=2 \ file://qt/qt2-fixes.patch;patch=1 \ - http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz \ - file://zroadgps.png" + file://roadmap_path.patch;patch=1 \ + http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz" S = "${WORKDIR}/roadmap/src" - -EXTRA_OEMAKE = 'DESKTOP=QPE MOC=${OE_QMAKE_MOC} UIC=${OE_QMAKE_UIC} QTDIR=${QTDIR} \ - CFLAGS="-DQWS -DQT_NO_ROTATE -I${S} ${OE_QMAKE_CFLAGS} -I${OE_QMAKE_INCDIR_QT}" \ - LDFLAGS="${OE_QMAKE_LDFLAGS} -L${OE_QMAKE_LIBDIR_QT} -Wl,-rpath-link,${OE_QMAKE_LIBDIR_QT}" ' - -do_compile() { - oe_runmake libguiroadmap.a libguiroadgps.a libroadmap.a - oe_runmake -C gpx libgpx.a - oe_runmake -C unix libosroadmap.a - oe_runmake -C qt qtroadmap qtroadgps -} - -do_install() { - install -d ${D}${palmtopdir}/bin - install -d ${D}${palmtopdir}/apps/Applications - install -d ${D}${palmtopdir}/pics - install -d ${D}${palmtopdir}/share/roadmap - - install -m 0755 qt/qtroadmap ${D}${palmtopdir}/bin/roadmap - install -m 0755 qt/qtroadgps ${D}${palmtopdir}/bin/roadgps - - install -m 0644 icons/*.png ${D}${palmtopdir}/pics/ - install -m 0644 ${WORKDIR}/zroadgps.png ${D}${palmtopdir}/pics/zroadgps.png - - install -m 0644 *.desktop ${D}${palmtopdir}/apps/Applications/ - - install -m 0644 sprites preferences ${D}${palmtopdir}/share/roadmap/ - install -m 0644 ${WORKDIR}/usdir.rdm ${D}${palmtopdir}/share/roadmap/ -} diff --git a/packages/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch b/packages/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch new file mode 100644 index 0000000000..81ce2db335 --- /dev/null +++ b/packages/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch @@ -0,0 +1,11 @@ +--- a/src/configure.in.org 2008-01-14 21:08:38.000000000 +0200 ++++ a/src/configure.in 2008-01-14 21:20:09.000000000 +0200 +@@ -208,7 +208,7 @@ + return 2; + } + }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, +-$ECHO "no defaults for cross-compiling"; exit 0) ++$ECHO "no defaults for cross-compiling"; exit 1) + ]) + + if test "$rpppoe_cv_pack_bitfields" = "rev" ; then diff --git a/packages/rp-pppoe/rp-pppoe_3.8.bb b/packages/rp-pppoe/rp-pppoe_3.8.bb index 35faf8839b..9852522da1 100644 --- a/packages/rp-pppoe/rp-pppoe_3.8.bb +++ b/packages/rp-pppoe/rp-pppoe_3.8.bb @@ -5,13 +5,14 @@ LICENSE = "GPLv2" RDEPENDS_${PN} = "ppp" RDEPENDS_${PN}-server = "${PN}" RRECOMMENDS_${PN} = "ppp-oe" -PR = "r5" +PR = "r6" SRC_URI = "http://www.roaringpenguin.com/files/download/${P}.tar.gz \ file://top-autoconf.patch;patch=1 \ file://configure_in_cross.patch;patch=1 \ file://pppoe-src-restrictions.patch;patch=1 \ file://update-config.patch;patch=1 \ + file://dont-swallow-errors.patch;patch=1 \ file://pppoe-server.default \ file://pppoe-server.init" diff --git a/packages/sablevm/sablevm-classpath_1.1.9.bb b/packages/sablevm/sablevm-classpath_1.1.9.bb index cda269c70a..c222572009 100644 --- a/packages/sablevm/sablevm-classpath_1.1.9.bb +++ b/packages/sablevm/sablevm-classpath_1.1.9.bb @@ -5,7 +5,7 @@ PRIORITY = "optional" SECTION = "libs" PR = "r1" -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native fastjar-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native fastjar-native" RDEPENDS_${PN} = "${PN}-native" SRC_URI = "http://sablevm.org/download/release/${PV}/${PN}-${PV}.tar.gz \ diff --git a/packages/sablevm/sablevm-classpath_1.11.3.bb b/packages/sablevm/sablevm-classpath_1.11.3.bb index 90de4e3ac8..0546dcacd6 100644 --- a/packages/sablevm/sablevm-classpath_1.11.3.bb +++ b/packages/sablevm/sablevm-classpath_1.11.3.bb @@ -4,7 +4,7 @@ LICENSE = "Classpath" PRIORITY = "optional" SECTION = "libs" -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-native (>= ${PV})" SRC_URI = "http://sablevm.org/download/release/${PV}/${PN}-${PV}.tar.gz \ diff --git a/packages/sablevm/sablevm-classpath_1.12.bb b/packages/sablevm/sablevm-classpath_1.12.bb index 90de4e3ac8..0546dcacd6 100644 --- a/packages/sablevm/sablevm-classpath_1.12.bb +++ b/packages/sablevm/sablevm-classpath_1.12.bb @@ -4,7 +4,7 @@ LICENSE = "Classpath" PRIORITY = "optional" SECTION = "libs" -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" +DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst virtual/javac-native zip-native" RDEPENDS_${PN} = "${PN}-native (>= ${PV})" SRC_URI = "http://sablevm.org/download/release/${PV}/${PN}-${PV}.tar.gz \ diff --git a/packages/sccd/files/scc.h b/packages/sccd/files/scc.h index 611092fd9c..b920791f66 100644 --- a/packages/sccd/files/scc.h +++ b/packages/sccd/files/scc.h @@ -33,7 +33,7 @@ */ #define SCC_PIDFILE "/var/run/sccd.pid" -#define SCC_DEVICE "/dev/tts/1" +#define SCC_DEVICE "/dev/ttyS1" #define SCC_SOCKET "/dev/sccd" #define SCC_PACKETLEN 8 diff --git a/packages/sccd/sccd_1.0.bb b/packages/sccd/sccd_1.0.bb index 5eeaeef343..bf25fbe90c 100644 --- a/packages/sccd/sccd_1.0.bb +++ b/packages/sccd/sccd_1.0.bb @@ -1,7 +1,7 @@ -DECSCRIPTION = "StorCenter Control Daemon - controls the leds, fans, softpower" +DECSCRIPTION = "StorCenter Control Daemon controls leds, fans, softpower" SECTION = "utils" LICENSE = "BSD" -PR = "r3" +PR = "r4" SRC_URI = "file://scc.h \ file://scc.c \ @@ -14,7 +14,7 @@ SRC_URI = "file://scc.h \ inherit autotools update-rc.d -INITSCRIPT_PARAMS = "defaults 91 20" +INITSCRIPT_PARAMS = "defaults 9 9" INITSCRIPT_NAME = "sccd" do_unpack() { diff --git a/packages/screen/screen_4.0.2.bb b/packages/screen/screen_4.0.2.bb index b915a5f72b..29681304ec 100644 --- a/packages/screen/screen_4.0.2.bb +++ b/packages/screen/screen_4.0.2.bb @@ -4,10 +4,10 @@ processes, typically interactive shells." LICENSE = "GPL" SECTION = "console/utils" DEPENDS = "ncurses" -PR = "r1" +PR = "r2" SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \ - ${DEBIAN_MIRROR}/main/s/screen/screen_4.0.2-4.1.diff.gz;patch=1 \ + ${DEBIAN_MIRROR}/main/s/screen/screen_4.0.2-4.1sarge1.diff.gz;patch=1 \ file://configure.patch;patch=1" inherit autotools diff --git a/packages/speech-dispatcher/speech-dispatcher_0.6.5.bb b/packages/speech-dispatcher/speech-dispatcher_0.6.5.bb index f1321096c9..3857a1577a 100644 --- a/packages/speech-dispatcher/speech-dispatcher_0.6.5.bb +++ b/packages/speech-dispatcher/speech-dispatcher_0.6.5.bb @@ -5,7 +5,7 @@ LICENSE = "GPLv2" DEPENDS = "espeak flite pulseaudio libdotconf glib-2.0" RPROVIDES_${PN} += "speechd" -PR = "r6" +PR = "r7" inherit autotools update-rc.d @@ -47,4 +47,10 @@ do_stage() { oe_libinstall -so -C src/c/api libspeechd ${STAGING_LIBDIR} } +PACKAGES =+ "libspeechd-dbg libspeechd libspeechd-dev" + FILES_${PN} += "${libdir}/${PN}-modules/*" +FILES_${PN}-dbg += "${libdir}/${PN}-modules/.debug" +FILES_libspeechd += "${libdir}/libspeechd.so.*" +FILES_libspeechd-dev += "${libdir}/libspeechd* ${includedir}" +FILES_libspeechd-dbg += "${libdir}/.debug/libspeechd*" diff --git a/packages/supertux/files/.mtn2git_empty b/packages/supertux/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/supertux/files/.mtn2git_empty diff --git a/packages/supertux/files/gp2x.patch b/packages/supertux/files/gp2x.patch new file mode 100644 index 0000000000..9d5d9a6d02 --- /dev/null +++ b/packages/supertux/files/gp2x.patch @@ -0,0 +1,2614 @@ +Only in supertux-0.1.3: aclocal.m4 +diff -ur supertux-0.1.3/AUTHORS supertux-0.1.3-gp2x/AUTHORS +--- supertux-0.1.3/AUTHORS 2005-07-02 14:37:30.000000000 +0300 ++++ supertux-0.1.3-gp2x/AUTHORS 2006-04-13 06:11:02.000000000 +0300 +@@ -91,6 +91,12 @@ + + Royalty free CDROMs and FTP sites sounds + ++Port to GP2X ++----------- ++ Ingo Arndt ++ scachi@gmx.de ++ http://www.bitmage.de ++ + More information and contacts + ============================= + +Only in supertux-0.1.3: autom4te.cache +Only in supertux-0.1.3-gp2x: autoscan.log +Only in supertux-0.1.3-gp2x: COMPILE4GP2X +Only in supertux-0.1.3: config.guess +Only in supertux-0.1.3: config.log +Only in supertux-0.1.3: config.status +Only in supertux-0.1.3: config.sub +Only in supertux-0.1.3: configure +diff -ur supertux-0.1.3/configure.ac supertux-0.1.3-gp2x/configure.ac +--- supertux-0.1.3/configure.ac 2005-07-06 12:26:15.000000000 +0300 ++++ supertux-0.1.3-gp2x/configure.ac 2006-04-19 22:29:05.000000000 +0300 +@@ -76,13 +76,33 @@ + CFLAGS="$CFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + ++AM_PATH_LIBMIKMOD(, ++ :, ++ AC_MSG_ERROR([*** mikmod not found!])) ++CXXFLAGS="$CXXFLAGS $LIBMIKMOD_CFLAGS" ++CFLAGS="$CFLAGS $LIBMIKMOD_CFLAGS" ++LIBS="$LIBS $LIBMIKMOD_LIBS" ++ + dnl Checks for additional libraries. ++AC_CHECK_LIB(smpeg, SMPEG_status) ++ ++AC_CHECK_LIB(mikmod, MikMod_Init) ++ + AC_CHECK_LIB(SDL_mixer, Mix_OpenAudio,, + AC_MSG_ERROR([SDL_mixer library required])) + ++AC_CHECK_LIB(jpeg,jpeg_abort) ++ ++AC_CHECK_LIB(z,compress) ++ ++AC_CHECK_LIB(png,png_free) ++ + AC_CHECK_LIB(SDL_image, IMG_Load,, + AC_MSG_ERROR([SDL_image library required])) + ++AC_CHECK_LIB(SDL_gfx, rotozoomSurface,, ++ AC_MSG_ERROR([SDL_gfx library required])) ++ + if test "x${enable_opengl}" != "xno"; then + AX_CHECK_GL + fi +@@ -95,7 +115,30 @@ + LIBS="$LIBS $GL_LIBS" + fi + +-AC_CHECK_LIB(z, gzopen,, AC_MSG_ERROR([*** zlib is missing])) ++# compile for the testing the 320x240 resolution ++# compile for the gp2x ++AC_ARG_ENABLE(gp2x, ++[ --enable-gp2x Build the gp2x version [default=no]], ++ , enable_gp2x=no) ++if test x$enable_gp2x = xyes; then ++ CXXFLAGS="$CXXFLAGS -DGP2X" ++fi ++ ++AC_ARG_ENABLE(320x240, ++[ --enable-320x240 Test the 320x240 resolution [default=no]], ++ , enable_320x240=no) ++if test x$enable_320x240 = xyes; then ++ CXXFLAGS="$CXXFLAGS -DRES320X240" ++fi ++ ++# compile static ++AC_ARG_ENABLE(static, ++[ --enable-static Build the static version [default=no]], ++ , enable_static=no) ++if test x$enable_static = xyes; then ++ CXXFLAGS="$CXXFLAGS -static" ++fi ++ + + CXXFLAGS="$CXXFLAGS -DDATA_PREFIX='\"$datadir/supertux\"'" + +@@ -110,6 +153,9 @@ + echo " Profile Mode: $enable_gprof" + echo " Debug Mode: $enable_debug" + echo " OpenGL Support: $enable_opengl" ++echo " 320x240 Resolution: $enable_320x240" ++echo " GP2X Build (+320x240): $enable_gp2x" ++echo " Static Build: $enable_static" + echo "" + + # EOF # +Only in supertux-0.1.3/data: CREDITS +Only in supertux-0.1.3/data: extro-bonus2.txt +Only in supertux-0.1.3/data: extro-bonus.txt +Only in supertux-0.1.3/data: extro.txt +Only in supertux-0.1.3/data: images +Only in supertux-0.1.3/data: intro.txt +Only in supertux-0.1.3/data: levels +Only in supertux-0.1.3/data: Makefile +Only in supertux-0.1.3/data: Makefile.in +Only in supertux-0.1.3/data: music +Only in supertux-0.1.3/data: sounds +Only in supertux-0.1.3/data: supertux.strf +Only in supertux-0.1.3: depcomp +Only in supertux-0.1.3: install-sh +Only in supertux-0.1.3: m4 +Only in supertux-0.1.3: Makefile +Only in supertux-0.1.3: Makefile.in +Only in supertux-0.1.3: missing +Only in supertux-0.1.3: mkinstalldirs +Only in supertux-0.1.3: patches +diff -ur supertux-0.1.3/src/badguy.cpp supertux-0.1.3-gp2x/src/badguy.cpp +--- supertux-0.1.3/src/badguy.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/badguy.cpp 2006-04-20 21:32:23.000000000 +0300 +@@ -250,7 +250,11 @@ + tux.kick_timer.start(KICKING_TIME); + set_sprite(img_mriceblock_flat_left, img_mriceblock_flat_right); + physic.set_velocity_x((dir == LEFT) ? -3.5 : 3.5); ++#ifndef GP2X + play_sound(sounds[SND_KICK],SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_KICK); ++#endif + } + } + +@@ -260,6 +264,7 @@ + check_horizontal_bump(); + if(mode == KICK && changed != dir) + { ++#ifndef GP2X + /* handle stereo sound (number 10 should be tweaked...)*/ + if (base.x < scroll_x + screen->w/2 - 10) + play_sound(sounds[SND_RICOCHET], SOUND_LEFT_SPEAKER); +@@ -267,6 +272,9 @@ + play_sound(sounds[SND_RICOCHET], SOUND_RIGHT_SPEAKER); + else + play_sound(sounds[SND_RICOCHET], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_RICOCHET); ++#endif + } + } + +@@ -455,11 +463,15 @@ + + /* play explosion sound */ // FIXME: is the stereo all right? maybe we should use player cordinates... + if (base.x < scroll_x + screen->w/2 - 10) ++#ifndef GP2X + play_sound(sounds[SND_EXPLODE], SOUND_LEFT_SPEAKER); + else if (base.x > scroll_x + screen->w/2 + 10) + play_sound(sounds[SND_EXPLODE], SOUND_RIGHT_SPEAKER); + else + play_sound(sounds[SND_EXPLODE], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_EXPLODE); ++#endif + + } else if(mode == BOMB_EXPLODE) { + remove_me(); +@@ -677,13 +689,21 @@ + } + + // BadGuy fall below the ground ++#ifndef RES320X240 + if (base.y > screen->h) { ++#else ++ if (base.y > 640) { ++#endif + remove_me(); + return; + } + + // Once it's on screen, it's activated! ++#ifndef RES320X240 + if (base.x <= scroll_x + screen->w + OFFSCREEN_DISTANCE) ++#else ++ if (base.x <= scroll_x + 640 + OFFSCREEN_DISTANCE) ++#endif + seen = true; + + if(!seen) +@@ -743,7 +763,11 @@ + BadGuy::draw() + { + // Don't try to draw stuff that is outside of the screen ++#ifndef RES320X240 + if(base.x <= scroll_x - base.width || base.x >= scroll_x + screen->w) ++#else ++ if(base.x <= scroll_x - base.width || base.x >= scroll_x + 640) ++#endif + return; + + if(sprite_left == 0 || sprite_right == 0) +@@ -811,7 +835,11 @@ + + World::current()->add_score(base.x - scroll_x, + base.y, 50 * player_status.score_multiplier); ++#ifndef GP2X + play_sound(sounds[SND_SQUISH], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_SQUISH); ++#endif + player_status.score_multiplier++; + + dying = DYING_SQUISHED; +@@ -830,7 +858,11 @@ + + player->jump_of_badguy(this); + World::current()->add_score(base.x - scroll_x, base.y, 50 * player_status.score_multiplier); ++#ifndef GP2X + play_sound(sounds[SND_SQUISH], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_SQUISH); ++#endif + player_status.score_multiplier++; + remove_me(); + return; +@@ -839,7 +871,11 @@ + if (mode == NORMAL || mode == KICK) + { + /* Flatten! */ ++#ifndef GP2X + play_sound(sounds[SND_STOMP], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_STOMP); ++#endif + mode = FLAT; + set_sprite(img_mriceblock_flat_left, img_mriceblock_flat_right); + physic.set_velocity_x(0); +@@ -847,7 +883,11 @@ + timer.start(4000); + } else if (mode == FLAT) { + /* Kick! */ ++#ifndef GP2X + play_sound(sounds[SND_KICK], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_KICK); ++#endif + + if (player->base.x < base.x + (base.width/2)) { + physic.set_velocity_x(5); +@@ -925,7 +965,11 @@ + score * player_status.score_multiplier); + + /* Play death sound: */ ++#ifndef GP2X + play_sound(sounds[SND_FALL], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_FALL); ++#endif + } + + void BadGuy::explode(BadGuy *badguy) +@@ -1053,7 +1097,11 @@ + /* Get kicked if were flat */ + if (mode == FLAT && !dying) + { ++#ifndef GP2X + play_sound(sounds[SND_KICK], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_KICK); ++#endif + + // Hit from left side + if (player->base.x < base.x) { +diff -ur supertux-0.1.3/src/configfile.cpp supertux-0.1.3-gp2x/src/configfile.cpp +--- supertux-0.1.3/src/configfile.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/configfile.cpp 2006-04-10 13:32:19.000000000 +0300 +@@ -92,12 +92,22 @@ + else + use_joystick = true; + ++#ifndef GP2X + reader.read_int ("joystick-x", &joystick_keymap.x_axis); + reader.read_int ("joystick-y", &joystick_keymap.y_axis); + reader.read_int ("joystick-a", &joystick_keymap.a_button); + reader.read_int ("joystick-b", &joystick_keymap.b_button); + reader.read_int ("joystick-start", &joystick_keymap.start_button); + reader.read_int ("joystick-deadzone", &joystick_keymap.dead_zone); ++#else ++ reader.read_int ("joystick-up", &joystick_keymap.up_button); ++ reader.read_int ("joystick-down", &joystick_keymap.down_button); ++ reader.read_int ("joystick-right", &joystick_keymap.right_button); ++ reader.read_int ("joystick-left", &joystick_keymap.left_button); ++ reader.read_int ("joystick-a", &joystick_keymap.a_button); ++ reader.read_int ("joystick-b", &joystick_keymap.b_button); ++ reader.read_int ("joystick-start", &joystick_keymap.start_button); ++#endif + + reader.read_int ("keyboard-jump", &keymap.jump); + reader.read_int ("keyboard-duck", &keymap.duck); +@@ -130,12 +140,22 @@ + fprintf(config, "\n\t;; joystick number (-1 means no joystick):\n"); + fprintf(config, "\t(joystick %d)\n", use_joystick ? joystick_num : -1); + ++#ifndef GP2X + fprintf(config, "\t(joystick-x %d)\n", joystick_keymap.x_axis); + fprintf(config, "\t(joystick-y %d)\n", joystick_keymap.y_axis); + fprintf(config, "\t(joystick-a %d)\n", joystick_keymap.a_button); + fprintf(config, "\t(joystick-b %d)\n", joystick_keymap.b_button); + fprintf(config, "\t(joystick-start %d)\n", joystick_keymap.start_button); + fprintf(config, "\t(joystick-deadzone %d)\n", joystick_keymap.dead_zone); ++#else ++ fprintf(config, "\t(joystick-up %d)\n", joystick_keymap.up_button); ++ fprintf(config, "\t(joystick-down %d)\n", joystick_keymap.down_button); ++ fprintf(config, "\t(joystick-right %d)\n", joystick_keymap.right_button); ++ fprintf(config, "\t(joystick-left %d)\n", joystick_keymap.left_button); ++ fprintf(config, "\t(joystick-a %d)\n", joystick_keymap.a_button); ++ fprintf(config, "\t(joystick-b %d)\n", joystick_keymap.b_button); ++ fprintf(config, "\t(joystick-start %d)\n", joystick_keymap.start_button); ++#endif + + fprintf(config, "\t(keyboard-jump %d)\n", keymap.jump); + fprintf(config, "\t(keyboard-duck %d)\n", keymap.duck); +diff -ur supertux-0.1.3/src/defines.h supertux-0.1.3-gp2x/src/defines.h +--- supertux-0.1.3/src/defines.h 2005-07-07 02:05:03.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/defines.h 2006-04-11 22:02:05.000000000 +0300 +@@ -91,7 +91,11 @@ + + /* Scrolling text speed */ + ++#ifndef RES320X240 + #define SCROLL_SPEED_CREDITS 1.2 ++#else ++#define SCROLL_SPEED_CREDITS 2.4 ++#endif + #define SCROLL_SPEED_MESSAGE 1.0 + + /* Debugging */ +Only in supertux-0.1.3/src: .deps +diff -ur supertux-0.1.3/src/gameloop.cpp supertux-0.1.3-gp2x/src/gameloop.cpp +--- supertux-0.1.3/src/gameloop.cpp 2005-07-02 15:16:08.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/gameloop.cpp 2006-05-05 23:22:58.000000000 +0300 +@@ -288,6 +288,7 @@ + + switch(event.type) + { ++#ifndef GP2X + case SDL_QUIT: /* Quit event - quit: */ + st_abort("Received window close", ""); + break; +@@ -434,22 +435,60 @@ + tux.input.down = UP; + } + break; +- ++#endif + case SDL_JOYBUTTONDOWN: ++#ifndef GP2X ++ if (event.jbutton.button == joystick_keymap.a_button) ++ tux.input.up = DOWN; ++ else if (event.jbutton.button == joystick_keymap.b_button) ++ tux.input.fire = DOWN; ++ else if (event.jbutton.button == joystick_keymap.start_button) ++ on_escape_press(); ++ break; ++#else + if (event.jbutton.button == joystick_keymap.a_button) + tux.input.up = DOWN; + else if (event.jbutton.button == joystick_keymap.b_button) + tux.input.fire = DOWN; + else if (event.jbutton.button == joystick_keymap.start_button) + on_escape_press(); ++ else if (event.jbutton.button == joystick_keymap.up_button) ++ tux.input.up = DOWN; ++ else if (event.jbutton.button == joystick_keymap.down_button) ++ tux.input.down = DOWN; ++ else if (event.jbutton.button == joystick_keymap.right_button) ++ tux.input.right = DOWN; ++ else if (event.jbutton.button == joystick_keymap.left_button) ++ tux.input.left = DOWN; ++ else if (event.jbutton.button == joystick_keymap.voldown_button) ++ decreaseSoundVolume(); ++ else if (event.jbutton.button == joystick_keymap.volup_button) ++ increaseSoundVolume(); + break; ++#endif ++ + case SDL_JOYBUTTONUP: ++#ifndef GP2X + if (event.jbutton.button == joystick_keymap.a_button) + tux.input.up = UP; + else if (event.jbutton.button == joystick_keymap.b_button) + tux.input.fire = UP; + break; +- ++#else ++ if (event.jbutton.button == joystick_keymap.a_button) ++ tux.input.up = UP; ++ else if (event.jbutton.button == joystick_keymap.b_button) ++ tux.input.fire = UP; ++ else if (event.jbutton.button == joystick_keymap.up_button) ++ tux.input.up = UP; ++ else if (event.jbutton.button == joystick_keymap.down_button) ++ tux.input.down = UP; ++ else if (event.jbutton.button == joystick_keymap.right_button) ++ tux.input.right = UP; ++ else if (event.jbutton.button == joystick_keymap.left_button) ++ tux.input.left = UP; ++ break; ++#endif + default: + break; + } /* switch */ +@@ -464,7 +503,7 @@ + Player* tux = world->get_tux(); + + /* End of level? */ +- int endpos = (World::current()->get_level()->width-5) * 32; ++ int endpos = (World::current()->get_level()->width-5) * (32); + Tile* endtile = collision_goal(tux->base); + + // fallback in case the other endpositions don't trigger +@@ -545,7 +584,7 @@ + Menu::current()->draw(); + mouse_cursor->draw(); + } +- ++ //updateSound(); + updatescreen(); + } + +@@ -599,6 +638,7 @@ + + while (exit_status == ES_NONE) + { ++ SDL_Delay(10); + /* Calculate the movement-factor */ + double frame_ratio = ((double)(update_time-last_update_time))/((double)FRAME_RATE); + +@@ -686,6 +726,7 @@ + fps_cnt = 0; + } + } ++ //updateSound(); + } + + return exit_status; +@@ -694,21 +735,32 @@ + /* Bounce a brick: */ + void bumpbrick(float x, float y) + { +- World::current()->add_bouncy_brick(((int)(x + 1) / 32) * 32, +- (int)(y / 32) * 32); ++ World::current()->add_bouncy_brick(((int)(x + 1) / (32)) * (32), ++ (int)(y / (32)) * (32)); + ++#ifndef GP2X + play_sound(sounds[SND_BRICK], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_BRICK); ++#endif + } + + /* (Status): */ + void + GameSession::drawstatus() + { ++ int xdiv; ++#ifdef RES320X240 ++ xdiv=2; ++#else ++ xdiv=1; ++#endif ++ + char str[60]; + + sprintf(str, "%d", player_status.score); + white_text->draw("SCORE", 0, 0, 1); +- gold_text->draw(str, 96, 0, 1); ++ gold_text->draw(str, 96/xdiv, 0, 1); + + if(st_gl_mode == ST_GL_TEST) + { +@@ -716,28 +768,33 @@ + } + + if(!time_left.check()) { +- white_text->draw("TIME'S UP", 224, 0, 1); ++ white_text->draw("TIME'S UP", 224/xdiv, 0, 1); + } else if (time_left.get_left() > TIME_WARNING || (global_frame_counter % 10) < 5) { + sprintf(str, "%d", time_left.get_left() / 1000 ); +- white_text->draw("TIME", 224, 0, 1); +- gold_text->draw(str, 304, 0, 1); ++ white_text->draw("TIME", 224/xdiv, 0, 1); ++ gold_text->draw(str, 304/xdiv, 0, 1); + } + + sprintf(str, "%d", player_status.distros); + white_text->draw("COINS", screen->h, 0, 1); +- gold_text->draw(str, 608, 0, 1); ++ gold_text->draw(str, 608/xdiv, 0, 1); + +- white_text->draw("LIVES", 480, 20); ++ white_text->draw("LIVES", 480/xdiv, 20); + if (player_status.lives >= 5) + { + sprintf(str, "%dx", player_status.lives); ++#ifdef RES320X240 ++ gold_text->draw_align(str, 617/xdiv-5, 20, A_RIGHT, A_TOP); ++ tux_life->draw(565+(18*3)/xdiv+10, 20); ++#else + gold_text->draw_align(str, 617, 20, A_RIGHT, A_TOP); + tux_life->draw(565+(18*3), 20); ++#endif + } + else + { + for(int i= 0; i < player_status.lives; ++i) +- tux_life->draw(565+(18*i),20); ++ tux_life->draw(565+(18*i)/xdiv,20); + } + + if(show_fps) +@@ -746,6 +803,7 @@ + white_text->draw("FPS", screen->h, 40, 1); + gold_text->draw(str, screen->h + 60, 40, 1); + } ++// updateSound(); + } + + void +@@ -824,4 +882,3 @@ + return tmp; + } + +- +diff -ur supertux-0.1.3/src/gameobjs.cpp supertux-0.1.3-gp2x/src/gameobjs.cpp +--- supertux-0.1.3/src/gameobjs.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/gameobjs.cpp 2006-04-11 21:52:52.000000000 +0300 +@@ -98,6 +98,9 @@ + src.h = 16; + + dest.x = (int)(base.x - scroll_x); ++#ifdef RES320X240 ++ dest.x=dest.x/2; ++#endif + dest.y = (int)base.y; + dest.w = 16; + dest.h = 16; +@@ -143,8 +146,13 @@ + { + SDL_Rect dest; + ++#ifndef RES320X240 + if (base.x >= scroll_x - 32 && + base.x <= scroll_x + screen->w) ++#else ++ if (base.x >= scroll_x - 32 && ++ base.x <= scroll_x + 640) ++#endif + { + dest.x = (int)(base.x - scroll_x); + dest.y = (int)base.y; +@@ -165,8 +173,14 @@ + else + { + int s = ((int)scroll_x / 2)%640; ++ ++#ifdef RES320X240 ++ plevel->img_bkgd->draw_part(dest.x/2 + s/2, dest.y/2, ++ dest.x/2, dest.y,dest.w/2,dest.h/2); ++#else + plevel->img_bkgd->draw_part(dest.x + s, dest.y, + dest.x, dest.y,dest.w,dest.h); ++#endif + } + + Tile::draw(base.x - scroll_x, +diff -ur supertux-0.1.3/src/globals.cpp supertux-0.1.3-gp2x/src/globals.cpp +--- supertux-0.1.3/src/globals.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/globals.cpp 2006-04-11 22:39:03.000000000 +0300 +@@ -25,6 +25,7 @@ + + JoystickKeymap::JoystickKeymap() + { ++#ifndef GP2X + a_button = 0; + b_button = 1; + start_button = 2; +@@ -33,6 +34,17 @@ + y_axis = 1; + + dead_zone = 4096; ++#else ++ a_button = GP2X_BUTTON_A; ++ b_button = GP2X_BUTTON_X; ++ start_button = GP2X_BUTTON_START; ++ up_button = GP2X_BUTTON_UP; ++ down_button = GP2X_BUTTON_DOWN; ++ left_button = GP2X_BUTTON_LEFT; ++ right_button = GP2X_BUTTON_RIGHT; ++ volup_button = GP2X_BUTTON_VOLUP; ++ voldown_button = GP2X_BUTTON_VOLDOWN; ++#endif + } + + JoystickKeymap joystick_keymap; +diff -ur supertux-0.1.3/src/globals.h supertux-0.1.3-gp2x/src/globals.h +--- supertux-0.1.3/src/globals.h 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/globals.h 2006-04-11 23:45:27.000000000 +0300 +@@ -28,10 +28,33 @@ + #include "menu.h" + #include "mousecursor.h" + ++#ifdef GP2X ++#define GP2X_BUTTON_UP (0) ++#define GP2X_BUTTON_DOWN (4) ++#define GP2X_BUTTON_LEFT (2) ++#define GP2X_BUTTON_RIGHT (6) ++#define GP2X_BUTTON_UPLEFT (1) ++#define GP2X_BUTTON_UPRIGHT (7) ++#define GP2X_BUTTON_DOWNLEFT (3) ++#define GP2X_BUTTON_DOWNRIGHT (5) ++#define GP2X_BUTTON_CLICK (18) ++#define GP2X_BUTTON_A (12) ++#define GP2X_BUTTON_B (13) ++#define GP2X_BUTTON_X (15) ++#define GP2X_BUTTON_Y (14) ++#define GP2X_BUTTON_L (10) ++#define GP2X_BUTTON_R (11) ++#define GP2X_BUTTON_START (8) ++#define GP2X_BUTTON_SELECT (9) ++#define GP2X_BUTTON_VOLUP (16) ++#define GP2X_BUTTON_VOLDOWN (17) ++#endif ++ + extern std::string datadir; + + struct JoystickKeymap + { ++#ifndef GP2X + int a_button; + int b_button; + int start_button; +@@ -42,6 +65,19 @@ + int dead_zone; + + JoystickKeymap(); ++#else ++ int a_button; ++ int b_button; ++ int start_button; ++ int up_button; ++ int down_button; ++ int left_button; ++ int right_button; ++ int volup_button; ++ int voldown_button; ++ ++ JoystickKeymap(); ++#endif + }; + + extern JoystickKeymap joystick_keymap; +diff -ur supertux-0.1.3/src/lispreader.h supertux-0.1.3-gp2x/src/lispreader.h +Only in supertux-0.1.3/src: Makefile +diff -ur supertux-0.1.3/src/Makefile.am supertux-0.1.3-gp2x/src/Makefile.am +--- supertux-0.1.3/src/Makefile.am 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/Makefile.am 2006-04-19 21:55:54.000000000 +0300 +@@ -77,3 +77,5 @@ + musicref.h + + # EOF # ++ ++#supertux_LDADD = libmikmod +Only in supertux-0.1.3/src: Makefile.in +diff -ur supertux-0.1.3/src/menu.cpp supertux-0.1.3-gp2x/src/menu.cpp +--- supertux-0.1.3/src/menu.cpp 2005-06-29 15:44:13.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/menu.cpp 2006-05-04 23:59:29.000000000 +0300 +@@ -53,6 +53,8 @@ + Menu* options_menu = 0; + Menu* options_keys_menu = 0; + Menu* options_joystick_menu = 0; ++Menu* options_joystick_axis_menu = 0; ++Menu* options_joystick_button_menu = 0; + Menu* highscore_menu = 0; + Menu* load_game_menu = 0; + Menu* save_game_menu = 0; +@@ -240,8 +242,10 @@ + } + + /* Set ControlField a key */ ++//TODO: get joystick in here somehow + void Menu::get_controlfield_key_into_input(MenuItem *item) + { ++#ifndef GP2X + switch(*item->int_p) + { + case SDLK_UP: +@@ -288,6 +292,11 @@ + } + break; + } ++#else ++ char tmp[64]; ++ snprintf(tmp, 64, "%d", *item->int_p); ++ item->change_input(tmp); ++#endif + } + + /* Free a menu and all its items */ +@@ -497,8 +506,13 @@ + int menu_height) + { + MenuItem& pitem = item[index]; +- ++ ++#ifndef RES320X240 + int font_width = 16; ++#else ++ int font_width = 16/2; ++#endif ++ + int effect_offset = 0; + { + int effect_time = 0; +@@ -510,7 +524,7 @@ + } + + int x_pos = pos_x; +- int y_pos = pos_y + 24*index - menu_height/2 + 12 + effect_offset; ++ int y_pos = pos_y + (int)(24)*index - menu_height/2 + 12 + effect_offset; + int shadow_size = 2; + int text_width = strlen(pitem.text) * font_width; + int input_width = (strlen(pitem.input)+ 1) * font_width; +@@ -518,7 +532,7 @@ + Text* text_font = white_text; + + if (arrange_left) +- x_pos += 24 - menu_width/2 + (text_width + input_width + list_width)/2; ++ x_pos += (int)(24) - menu_width/2 + (text_width + input_width + list_width)/2; + + if(index == active_item) + { +@@ -538,7 +552,11 @@ + + case MN_HL: + { ++#ifndef RES320X240 + int x = pos_x - menu_width/2; ++#else ++ int x = pos_x - menu_width/4; ++#endif + int y = y_pos - 12 - effect_offset; + /* Draw a horizontal line with a little 3d effect */ + fillrect(x, y + 6, +@@ -551,9 +569,15 @@ + } + case MN_LABEL: + { ++#ifndef RES320X240 + white_big_text->draw_align(pitem.text, + x_pos, y_pos, + A_HMIDDLE, A_VMIDDLE, 2); ++#else ++ white_text->draw_align(pitem.text, ++ x_pos, y_pos, ++ A_HMIDDLE, A_VMIDDLE, 2); ++#endif + break; + } + case MN_TEXTFIELD: +@@ -570,8 +594,9 @@ + input_width + font_width, 18, + 0,0,0,128); + +- if(pitem.kind == MN_CONTROLFIELD) ++ if(pitem.kind == MN_CONTROLFIELD) { + get_controlfield_key_into_input(&pitem); ++ } + + if(pitem.kind == MN_TEXTFIELD || pitem.kind == MN_NUMFIELD) + { +@@ -663,7 +688,7 @@ + menu_width += 2; + } + } +- ++ + return (menu_width * 16 + 24); + } + +@@ -680,10 +705,17 @@ + int menu_width = get_width(); + + /* Draw a transparent background */ ++#ifndef RES320X240 + fillrect(pos_x - menu_width/2, + pos_y - 24*item.size()/2 - 10, + menu_width,menu_height + 20, + 150,180,200,125); ++#else ++ fillrect(pos_x - menu_width/4, ++ pos_y - 24*item.size()/2 - 10, ++ menu_width,menu_height + 20, ++ 150,180,200,125); ++#endif + + for(unsigned int i = 0; i < item.size(); ++i) + { +@@ -723,6 +755,8 @@ + SDLKey key; + switch(event.type) + { ++ ++#ifndef GP2X + case SDL_KEYDOWN: + key = event.key.keysym.sym; + SDLMod keymod; +@@ -754,7 +788,6 @@ + return; + } + +- + switch(key) + { + case SDLK_UP: /* Menu Up */ +@@ -800,12 +833,14 @@ + break; + } + break; ++ + case SDL_JOYHATMOTION: + if(event.jhat.value == SDL_HAT_UP) + menuaction = MENU_ACTION_UP; + if(event.jhat.value == SDL_HAT_DOWN) + menuaction = MENU_ACTION_DOWN; + break; ++ + case SDL_JOYAXISMOTION: + if(event.jaxis.axis == joystick_keymap.y_axis) + { +@@ -815,9 +850,88 @@ + menuaction = MENU_ACTION_UP; + } + break; ++#endif ++ + case SDL_JOYBUTTONDOWN: ++#ifndef GP2X + menuaction = MENU_ACTION_HIT; + break; ++#else ++ ++ if(item[active_item].kind == MN_CONTROLFIELD) ++ { ++ if( event.jbutton.button == joystick_keymap.start_button ) ++ { ++ Menu::pop_current(); ++ return; ++ } ++ ++ static int save[8]={-1,-1,-1,-1,-1,-1,-1,-1}; ++ int itemid=get_active_item_id(); ++ int inputkey; ++ switch ( itemid ) { ++ case 11 : inputkey=joystick_keymap.up_button; ++ break; ++ case 12 : inputkey=joystick_keymap.down_button; ++ break; ++ case 13 : inputkey=joystick_keymap.left_button; ++ break; ++ case 14 : inputkey=joystick_keymap.right_button; ++ break; ++ case 15 : inputkey=joystick_keymap.a_button; ++ break; ++ case 16 : inputkey=joystick_keymap.b_button; ++ break; ++ default : break; ++ } ++ ++ *item[active_item].int_p = event.jbutton.button; ++ ++ bool okay=true; ++ ++ save[itemid-11]=event.jbutton.button; ++ ++ int i; ++ for ( i=0;i<itemid-11;i++ ) { ++ if ( save[i] == event.jbutton.button ) okay=false; ++ } ++ if ( okay == true ) menuaction = MENU_ACTION_DOWN; ++ else menuaction = MENU_ACTION_NONE; ++ ++ return; ++ } ++ ++ if (event.jbutton.button == joystick_keymap.a_button) ++ menuaction = MENU_ACTION_HIT; ++ else if (event.jbutton.button == joystick_keymap.b_button) ++ menuaction = MENU_ACTION_HIT; ++ else if (event.jbutton.button == joystick_keymap.start_button) ++ menuaction = MENU_ACTION_HIT; ++ else if (event.jbutton.button == joystick_keymap.up_button) ++ menuaction = MENU_ACTION_UP; ++ else if (event.jbutton.button == joystick_keymap.down_button) ++ menuaction = MENU_ACTION_DOWN; ++ else if (event.jbutton.button == joystick_keymap.right_button) ++ menuaction = MENU_ACTION_RIGHT; ++ else if (event.jbutton.button == joystick_keymap.left_button) ++ menuaction = MENU_ACTION_LEFT; ++ else if (event.jbutton.button == joystick_keymap.volup_button) ++#ifdef GP2X ++ increaseSoundVolume(); ++#else ++ sound_volume(2); ++#endif ++ else if (event.jbutton.button == joystick_keymap.voldown_button) ++#ifdef GP2X ++ decreaseSoundVolume(); ++#else ++ sound_volume(1); ++#endif ++ break; ++ ++#endif ++ ++#ifndef GP2X + case SDL_MOUSEBUTTONDOWN: + x = event.motion.x; + y = event.motion.y; +@@ -847,6 +961,7 @@ + break; + default: + break; ++#endif + } + } + +diff -ur supertux-0.1.3/src/menu.h supertux-0.1.3-gp2x/src/menu.h +--- supertux-0.1.3/src/menu.h 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/menu.h 2006-05-04 23:48:30.000000000 +0300 +@@ -236,6 +236,8 @@ + extern Menu* options_menu; + extern Menu* options_keys_menu; + extern Menu* options_joystick_menu; ++extern Menu* options_joystick_axis_menu; ++extern Menu* options_joystick_button_menu; + extern Menu* highscore_menu; + extern Menu* load_game_menu; + extern Menu* save_game_menu; +diff -ur supertux-0.1.3/src/music_manager.cpp supertux-0.1.3-gp2x/src/music_manager.cpp +--- supertux-0.1.3/src/music_manager.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/music_manager.cpp 2006-04-22 13:16:32.000000000 +0300 +@@ -59,7 +59,14 @@ + return true; + } + ++#ifndef GP2X + Mix_Music* song = Mix_LoadMUS(file.c_str()); ++#else ++ char mfile[100]; ++ snprintf(mfile,sizeof(mfile),"%s",file.c_str()); ++ MODULE *song=Player_Load(mfile, 64, 0); ++#endif ++ + if(song == 0) + return false; + +@@ -84,6 +91,8 @@ + void + MusicManager::play_music(const MusicRef& musicref, int loops) + { ++// printf("loop: %d, musicref: %d\n",loops,musicref.music); ++ + if(!audio_device) + return; + +@@ -97,7 +106,16 @@ + current_music->refcount++; + + if(music_enabled) ++#ifndef GP2X + Mix_PlayMusic(current_music->music, loops); ++#else ++ { ++ if ( loops == -1 ) current_music->music->wrap=1; ++ Player_Stop(); ++ Player_Start(current_music->music); ++ Player_SetPosition(0); ++ } ++#endif + } + + void +@@ -106,13 +124,17 @@ + if(!audio_device) + return; + ++#ifndef GP2X + Mix_HaltMusic(); ++#else ++ Player_Stop(); ++#endif + + if(current_music) { + current_music->refcount--; + if(current_music->refcount == 0) + free_music(current_music); +- current_music = 0; ++ current_music = 0; + } + } + +@@ -127,9 +149,17 @@ + + music_enabled = enable; + if(music_enabled == false) { ++#ifndef GP2X + Mix_HaltMusic(); ++#else ++ Player_Stop(); ++#endif + } else { ++#ifndef GP2X + Mix_PlayMusic(current_music->music, -1); ++#else ++ Player_Start(current_music->music); ++#endif + } + } + +diff -ur supertux-0.1.3/src/music_manager.h supertux-0.1.3-gp2x/src/music_manager.h +--- supertux-0.1.3/src/music_manager.h 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/music_manager.h 2006-04-22 04:51:32.000000000 +0300 +@@ -20,6 +20,10 @@ + #ifndef HEADER_MUSIC_MANAGER_H + #define HEADER_MUSIC_MANAGER_H + ++#ifdef GP2X ++#include "mikmod.h" ++#endif ++ + #include <SDL_mixer.h> + #include <string> + #include <map> +@@ -51,7 +55,12 @@ + ~MusicResource(); + + MusicManager* manager; ++#ifndef GP2X + Mix_Music* music; ++#else ++ MODULE *music; ++#endif ++ + int refcount; + }; + +diff -ur supertux-0.1.3/src/particlesystem.cpp supertux-0.1.3-gp2x/src/particlesystem.cpp +--- supertux-0.1.3/src/particlesystem.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/particlesystem.cpp 2006-04-12 22:20:41.000000000 +0300 +@@ -28,8 +28,13 @@ + + ParticleSystem::ParticleSystem() + { ++#ifndef RES320X240 + virtual_width = screen->w; + virtual_height = screen->h; ++#else ++ virtual_width = 640; ++ virtual_height = 480; ++#endif + } + + ParticleSystem::~ParticleSystem() +@@ -57,13 +62,24 @@ + float ymax = fmodf(y + particle->texture->h, virtual_height); + + // particle on screen ++#ifndef RES320X240 + if(x >= screen->w && xmax >= screen->w) + continue; + if(y >= screen->h && ymax >= screen->h) + continue; +- ++ + if(x > screen->w) x -= virtual_width; + if(y > screen->h) y -= virtual_height; ++#else ++ if(x >= 640 && xmax >= 640) ++ continue; ++ if(y >= 480 && ymax >= 480) ++ continue; ++ ++ if(x > 640) x -= virtual_width; ++ if(y > 480) y -= virtual_height; ++#endif ++ + particle->texture->draw(x, y); + } + } +@@ -74,14 +90,21 @@ + snowimages[1] = new Surface(datadir+"/images/shared/snow1.png", USE_ALPHA); + snowimages[2] = new Surface(datadir+"/images/shared/snow2.png", USE_ALPHA); + ++#ifndef RES320X240 + virtual_width = screen->w * 2; +- ++#else ++ virtual_width = 640 * 2; ++#endif + // create some random snowflakes + size_t snowflakecount = size_t(virtual_width/10.0); + for(size_t i=0; i<snowflakecount; ++i) { + SnowParticle* particle = new SnowParticle; + particle->x = rand() % int(virtual_width); ++#ifndef RES320X240 + particle->y = rand() % screen->h; ++#else ++ particle->y = rand() % 480; ++#endif + particle->layer = i % 2; + int snowsize = rand() % 3; + particle->texture = snowimages[snowsize]; +@@ -106,7 +129,11 @@ + for(i = particles.begin(); i != particles.end(); ++i) { + SnowParticle* particle = (SnowParticle*) *i; + particle->y += particle->speed * elapsed_time; ++#ifndef RES320X240 + if(particle->y > screen->h) { ++#else ++ if(particle->y > 480) { ++#endif + particle->y = fmodf(particle->y , virtual_height); + particle->x = rand() % int(virtual_width); + } +diff -ur supertux-0.1.3/src/player.cpp supertux-0.1.3-gp2x/src/player.cpp +--- supertux-0.1.3/src/player.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/player.cpp 2006-05-05 22:59:52.000000000 +0300 +@@ -261,6 +261,7 @@ + } + } + } ++// updateSound(); + + /* ---- DONE HANDLING TUX! --- */ + +@@ -337,7 +338,11 @@ + if(on_ground() && ((vx < 0 && dirsign >0) || (vx>0 && dirsign<0))) { + if(fabs(vx)>SKID_XM && !skidding_timer.check()) { + skidding_timer.start(SKID_TIME); ++#ifndef GP2X + play_sound(sounds[SND_SKID], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_SKID); ++#endif + ax *= 2.5; + } else { + ax *= 2; +@@ -391,9 +396,17 @@ + jumping = true; + can_jump = false; + if (size == SMALL) ++#ifndef GP2X + play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_JUMP); ++#endif + else ++#ifndef GP2X + play_sound(sounds[SND_BIGJUMP], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_BIGJUMP); ++#endif + } + } + // Let go of jump key +@@ -533,7 +546,11 @@ + if(player_status.lives < MAX_LIVES) + ++player_status.lives; + /*We want to hear the sound even, if MAX_LIVES is reached*/ ++#ifndef GP2X + play_sound(sounds[SND_LIFEUP], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_LIFEUP); ++#endif + } + } + +@@ -665,7 +682,11 @@ + else + { + pbad_c->dying = DYING_FALLING; ++#ifndef GP2X + play_sound(sounds[SND_FALL], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_FALL); ++#endif + World::current()->add_score(pbad_c->base.x - scroll_x, + pbad_c->base.y, + 25 * player_status.score_multiplier); +@@ -696,7 +717,12 @@ + void + Player::kill(HurtMode mode) + { ++#ifndef GP2X + play_sound(sounds[SND_HURT], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_HURT); ++ updateSound(); ++#endif + + physic.set_velocity_x(0); + +@@ -734,7 +760,11 @@ + + bool Player::is_dead() + { ++#ifndef RES320X240 + if(base.y > screen->h || base.x < scroll_x - AUTOSCROLL_DEAD_INTERVAL) // last condition can happen in auto-scrolling ++#else ++ if(base.y > 640 || base.x < scroll_x - AUTOSCROLL_DEAD_INTERVAL) // last condition can happen in auto-scrolling ++#endif + return true; + else + return false; +@@ -760,9 +790,20 @@ + } + + /* Keep in-bounds, vertically: */ ++#ifndef RES320X240 + if (base.y > screen->h) ++#else ++ if (base.y > 640) ++#endif + { + kill(KILL); ++#ifdef GP2X ++ float wait=SDL_GetTicks()+800; ++ while ( wait > SDL_GetTicks()) { ++ updateSound(); ++ } ++#endif ++ + } + + if(base.x < scroll_x && (!back_scrolling || hor_autoscroll)) // can happen if back scrolling is disabled +@@ -777,7 +818,6 @@ + if(base.x + base.width > scroll_x + screen->w) + base.x = scroll_x + screen->w - base.width; + } +- + } + + // EOF // +diff -ur supertux-0.1.3/src/resources.cpp supertux-0.1.3-gp2x/src/resources.cpp +--- supertux-0.1.3/src/resources.cpp 2005-07-02 15:20:14.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/resources.cpp 2006-04-22 13:14:01.000000000 +0300 +@@ -18,6 +18,7 @@ + // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + #include "globals.h" ++#include "sound.h" + #include "scene.h" + #include "player.h" + #include "badguy.h" +@@ -187,11 +188,13 @@ + // This is also true with if (use_music) + Send a mail to me: neoneurone@users.sf.net, if you have another opinion. :) + */ ++#ifndef GP2X + for (i = 0; i < NUM_SOUNDS; i++) + sounds[i] = load_sound(datadir + soundfilenames[i]); ++#endif + + /* Herring song */ +- herring_song = music_manager->load_music(datadir + "/music/SALCON.MOD"); ++ herring_song = music_manager->load_music(datadir + "/music/SALCON.MOD"); + level_end_song = music_manager->load_music(datadir + "/music/leveldone.mod"); + } + +@@ -223,8 +226,10 @@ + + delete tux_life; + ++#ifndef GP2X + for (i = 0; i < NUM_SOUNDS; i++) + free_chunk(sounds[i]); ++#endif + + delete sprite_manager; + sprite_manager = 0; +diff -ur supertux-0.1.3/src/screen.cpp supertux-0.1.3-gp2x/src/screen.cpp +--- supertux-0.1.3/src/screen.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/screen.cpp 2006-04-14 18:18:47.000000000 +0300 +@@ -81,7 +81,6 @@ + else + { + #endif +- + for(float y = 0; y < 480; y += 2) + fillrect(0, (int)y, 640, 2, + (int)(((float)(top_clr.red-bot_clr.red)/(0-480)) * y + top_clr.red), +@@ -199,11 +198,23 @@ + SDL_UnlockSurface(screen); + } + /* Update just the part of the display that we've changed */ ++#ifndef RES320X240 + SDL_UpdateRect(screen, x, y, 1, 1); ++#else ++ SDL_UpdateRect(screen, x/2, y/2, 1, 1); ++#endif + } + + void drawline(int x1, int y1, int x2, int y2, int r, int g, int b, int a) + { ++ ++#ifdef RES320X240 ++ x1=x1/2; ++ x2=x2/2; ++ y1=y1/2; ++ y2=y2/2; ++#endif ++ + #ifndef NOOPENGL + if(use_gl) + { +@@ -280,6 +291,13 @@ + y += h; + h = -h; + } ++ ++#ifdef RES320X240 ++ x=x; ++ y=y/2; ++ w=w/2; ++ h=h/2; ++#endif + + #ifndef NOOPENGL + if(use_gl) +@@ -367,6 +385,9 @@ + void update_rect(SDL_Surface *scr, Sint32 x, Sint32 y, Sint32 w, Sint32 h) + { + if(!use_gl) ++#ifndef RES320X240 ++ SDL_UpdateRect(scr, x, y, w, h); ++#else + SDL_UpdateRect(scr, x, y, w, h); ++#endif + } +- +diff -ur supertux-0.1.3/src/setup.cpp supertux-0.1.3-gp2x/src/setup.cpp +--- supertux-0.1.3/src/setup.cpp 2005-07-08 15:19:17.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/setup.cpp 2006-05-03 23:32:49.000000000 +0300 +@@ -62,10 +62,19 @@ + #define DATA_PREFIX "./data/" + #endif + +-/* Screen proprities: */ ++/* Screen properties: */ + /* Don't use this to test for the actual screen sizes. Use screen->w/h instead! */ ++#ifndef RES320X240 + #define SCREEN_W 640 + #define SCREEN_H 480 ++#else ++#define SCREEN_W 320 ++#define SCREEN_H 240 ++#endif ++ ++#ifdef GP2X ++#define DATA_PREFIX "data/" ++#endif + + /* Local function prototypes: */ + +@@ -308,10 +317,14 @@ + char str[1024]; + /* Get home directory (from $HOME variable)... if we can't determine it, + use the current directory ("."): */ ++#ifndef GP2X + if (getenv("HOME") != NULL) + home = getenv("HOME"); + else + home = "."; ++#else ++ home = "."; ++#endif + + st_dir = (char *) malloc(sizeof(char) * (strlen(home) + + strlen("/.supertux") + 1)); +@@ -340,9 +353,10 @@ + // User has not that a datadir, so we try some magic + if (datadir.empty()) + { +-#ifndef WIN32 + // Detect datadir + char exe_file[PATH_MAX]; ++ ++#ifndef WIN32 + if (readlink("/proc/self/exe", exe_file, PATH_MAX) < 0) + { + puts("Couldn't read /proc/self/exe, using default path: " DATA_PREFIX); +@@ -358,7 +372,12 @@ + datadir = exedir + "../share/supertux"; // SuperTux run from PATH + if (access(datadir.c_str(), F_OK) != 0) + { // If all fails, fall back to compiled path +- datadir = DATA_PREFIX; ++ datadir = exedir + "./data"; // SuperTux run with data in same path as executable ++ if (access(datadir.c_str(), F_OK) != 0) ++ { ++ // If all fails, fall back to compiled path ++ datadir = DATA_PREFIX; ++ } + } + } + } +@@ -375,7 +394,8 @@ + main_menu = new Menu(); + options_menu = new Menu(); + options_keys_menu = new Menu(); +- options_joystick_menu = new Menu(); ++ options_joystick_axis_menu = new Menu(); ++ options_joystick_button_menu = new Menu(); + load_game_menu = new Menu(); + save_game_menu = new Menu(); + game_menu = new Menu(); +@@ -384,22 +404,27 @@ + contrib_subset_menu = new Menu(); + worldmap_menu = new Menu(); + +- main_menu->set_pos(screen->w/2, 335); ++ main_menu->set_pos(screen->w/2, (int)(335)+20); + main_menu->additem(MN_GOTO, "Start Game",0,load_game_menu, MNID_STARTGAME); + main_menu->additem(MN_GOTO, "Bonus Levels",0,contrib_menu, MNID_CONTRIB); + main_menu->additem(MN_GOTO, "Options",0,options_menu, MNID_OPTIONMENU); ++ ++#ifndef GP2X + main_menu->additem(MN_ACTION,"Level Editor",0,0, MNID_LEVELEDITOR); ++#endif + main_menu->additem(MN_ACTION,"Credits",0,0, MNID_CREDITS); + main_menu->additem(MN_ACTION,"Quit",0,0, MNID_QUITMAINMENU); + + options_menu->additem(MN_LABEL,"Options",0,0); + options_menu->additem(MN_HL,"",0,0); ++#ifndef GP2X + #ifndef NOOPENGL + options_menu->additem(MN_TOGGLE,"OpenGL",use_gl,0, MNID_OPENGL); + #else + options_menu->additem(MN_DEACTIVE,"OpenGL (not supported)",use_gl, 0, MNID_OPENGL); + #endif + options_menu->additem(MN_TOGGLE,"Fullscreen",use_fullscreen,0, MNID_FULLSCREEN); ++#endif + if(audio_device) + { + options_menu->additem(MN_TOGGLE,"Sound ", use_sound,0, MNID_SOUND); +@@ -411,10 +436,15 @@ + options_menu->additem(MN_DEACTIVE,"Music ", false,0, MNID_MUSIC); + } + options_menu->additem(MN_TOGGLE,"Show FPS ",show_fps,0, MNID_SHOWFPS); ++#ifndef GP2X + options_menu->additem(MN_GOTO,"Keyboard Setup",0,options_keys_menu); ++#endif + + //if(use_joystick) +- // options_menu->additem(MN_GOTO,"Joystick Setup",0,options_joystick_menu); ++#ifdef GP2X ++ options_menu->additem(MN_GOTO,"Joystick Move Setup",0,options_joystick_axis_menu); ++ options_menu->additem(MN_GOTO,"Joystick Action Setup",0,options_joystick_button_menu); ++#endif + + options_menu->additem(MN_HL,"",0,0); + options_menu->additem(MN_BACK,"Back",0,0); +@@ -429,6 +459,7 @@ + options_keys_menu->additem(MN_HL,"",0,0); + options_keys_menu->additem(MN_BACK,"Back",0,0); + ++#ifndef GP2X + if(use_joystick) + { + options_joystick_menu->additem(MN_LABEL,"Joystick Setup",0,0); +@@ -442,6 +473,20 @@ + options_joystick_menu->additem(MN_HL,"",0,0); + options_joystick_menu->additem(MN_BACK,"Back",0,0); + } ++#else ++ options_joystick_axis_menu->additem(MN_LABEL,"Joystick Move Setup",0,0); ++ options_joystick_axis_menu->additem(MN_CONTROLFIELD,"Up", 0,0, 11,&joystick_keymap.up_button); ++ options_joystick_axis_menu->additem(MN_CONTROLFIELD,"Down", 0,0, 12,&joystick_keymap.down_button); ++ options_joystick_axis_menu->additem(MN_CONTROLFIELD,"Left", 0,0, 13,&joystick_keymap.left_button); ++ options_joystick_axis_menu->additem(MN_CONTROLFIELD,"Right", 0,0, 14,&joystick_keymap.right_button); ++ options_joystick_axis_menu->additem(MN_BACK,"Back",0,0); ++ ++ options_joystick_button_menu->additem(MN_LABEL,"Joystick Action Setup",0,0); ++ options_joystick_button_menu->additem(MN_CONTROLFIELD,"Jump", 0,0, 15,&joystick_keymap.a_button); ++ options_joystick_button_menu->additem(MN_CONTROLFIELD,"Shoot/Run", 0,0, 16,&joystick_keymap.b_button); ++ options_joystick_button_menu->additem(MN_BACK,"Back",0,0); ++#endif ++ + + load_game_menu->additem(MN_LABEL,"Start Game",0,0); + load_game_menu->additem(MN_HL,"",0,0); +@@ -576,9 +621,10 @@ + + srand(SDL_GetTicks()); + ++#ifndef GP2X + /* Set icon image: */ +- + seticon(); ++#endif + + /* Unicode needed for input handling: */ + +@@ -586,13 +632,32 @@ + + /* Load global images: */ + ++#ifndef RES320X240 ++ white_text = new Text(datadir + "/images/status/letters-white.png", TEXT_TEXT, 16,18); ++#else ++ white_text = new Text(datadir + "/images/status/letters-white-small.png", TEXT_TEXT, 8,9); ++ fadeout(); ++#endif ++ ++ ++#ifndef RES320X240 + black_text = new Text(datadir + "/images/status/letters-black.png", TEXT_TEXT, 16,18); ++#else ++ black_text = new Text(datadir + "/images/status/letters-black.png", TEXT_TEXT, 8,9); ++#endif ++#ifndef RES320X240 + gold_text = new Text(datadir + "/images/status/letters-gold.png", TEXT_TEXT, 16,18); ++#else ++ gold_text = new Text(datadir + "/images/status/letters-gold.png", TEXT_TEXT, 8,9); ++#endif + silver_text = new Text(datadir + "/images/status/letters-silver.png", TEXT_TEXT, 16,18); ++#ifndef RES320X240 + blue_text = new Text(datadir + "/images/status/letters-blue.png", TEXT_TEXT, 16,18); ++#else ++ blue_text = new Text(datadir + "/images/status/letters-blue.png", TEXT_TEXT, 8,9); ++#endif + red_text = new Text(datadir + "/images/status/letters-red.png", TEXT_TEXT, 16,18); + green_text = new Text(datadir + "/images/status/letters-green.png", TEXT_TEXT, 16,18); +- white_text = new Text(datadir + "/images/status/letters-white.png", TEXT_TEXT, 16,18); + white_small_text = new Text(datadir + "/images/status/letters-white-small.png", TEXT_TEXT, 8,9); + white_big_text = new Text(datadir + "/images/status/letters-white-big.png", TEXT_TEXT, 20,22); + yellow_nums = new Text(datadir + "/images/status/numbers.png", TEXT_NUM, 32,32); +@@ -665,14 +736,22 @@ + Surface::reload_all(); + + /* Set window manager stuff: */ ++#ifndef GP2X_VERSION
+ SDL_WM_SetCaption("SuperTux " VERSION, "SuperTux"); ++#endif
+ } + + void st_video_setup_sdl(void) + { + if (use_fullscreen) + { ++#ifndef GP2X + screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 0, SDL_FULLSCREEN ) ; /* | SDL_HWSURFACE); */ ++#else ++// screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 16, SDL_HWSURFACE | SDL_DOUBLEBUF ) ; /* GP2X */ ++ printf("screen width: %d, height: %d\n",SCREEN_W, SCREEN_H); ++ screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 16, SDL_SWSURFACE ) ; /* GP2X */ ++#endif + if (screen == NULL) + { + fprintf(stderr, +@@ -685,14 +764,22 @@ + } + else + { ++#ifndef GP2X + screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 0, SDL_HWSURFACE | SDL_DOUBLEBUF ); +- ++#else ++// screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 16, SDL_HWSURFACE | SDL_DOUBLEBUF ) ; /* GP2X */ ++ screen = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 16, SDL_SWSURFACE ) ; /* GP2X */ ++#endif + if (screen == NULL) + { + fprintf(stderr, + "\nError: I could not set up video for 640x480 mode.\n" + "The Simple DirectMedia error that occured was:\n" + "%s\n\n", SDL_GetError()); ++#ifdef GP2X_VERSION
++ chdir("/usr/gp2x");
++ execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
++#endif
+ exit(1); + } + } +@@ -790,6 +877,7 @@ + + use_joystick = false; + } ++#ifndef GP2X + else + { + if (SDL_JoystickNumAxes(js) < 2) +@@ -811,6 +899,7 @@ + } + } + } ++#endif + } + } + } +@@ -844,12 +933,17 @@ + } + } + +- ++ audio_device = true; ++ + /* Open sound silently regarless the value of "use_sound": */ + + if (audio_device) + { ++#ifndef GP2X + if (open_audio(44100, AUDIO_S16, 2, 2048) < 0) ++#else ++ if (open_audio(44100, AUDIO_S16, 1, 1024) < 0) ++#endif + { + /* only print out message if sound or music + was not disabled at command-line +@@ -878,6 +972,12 @@ + close_audio(); + SDL_Quit(); + saveconfig(); ++ ++#ifdef GP2X
++ chdir("/usr/gp2x");
++ execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
++#endif
++ + } + + /* --- ABORT! --- */ +@@ -893,6 +993,7 @@ + + void seticon(void) + { ++#ifndef GP2X + // int masklen; + // Uint8 * mask; + SDL_Surface * icon; +@@ -927,6 +1028,7 @@ + + // free(mask); + SDL_FreeSurface(icon); ++#endif + } + + +@@ -956,6 +1058,7 @@ + } + else if (strcmp(argv[i], "--joymap") == 0) + { ++#ifndef GP2X + assert(i+1 < argc); + if (sscanf(argv[++i], + "%d:%d:%d:%d:%d", +@@ -976,6 +1079,7 @@ + << " B-Button: " << joystick_keymap.b_button << "\n" + << " Start-Button: " << joystick_keymap.start_button << std::endl; + } ++#endif + } + else if (strcmp(argv[i], "--leveleditor") == 0) + { +diff -ur supertux-0.1.3/src/sound.cpp supertux-0.1.3-gp2x/src/sound.cpp +--- supertux-0.1.3/src/sound.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/sound.cpp 2006-04-22 02:07:57.000000000 +0300 +@@ -22,6 +22,9 @@ + #include "globals.h" + #include "sound.h" + #include "setup.h" ++#ifdef GP2X ++#include <string.h> ++#endif + + /*global variable*/ + bool use_sound = true; /* handle sound on/off menu and command-line option */ +@@ -54,12 +57,21 @@ + + #include <SDL_mixer.h> + ++#ifndef GP2X + Mix_Chunk * sounds[NUM_SOUNDS]; ++#else + +-/* --- OPEN THE AUDIO DEVICE --- */ ++#include <mikmod.h> ++static MODULE *music=NULL; ++static SAMPLE *chunk[NUM_SOUNDS]; ++static int chunkFlag[NUM_SOUNDS]; ++#endif + ++/* --- OPEN THE AUDIO DEVICE --- */ + int open_audio (int frequency, Uint16 format, int channels, int chunksize) + { ++// close_audio(); ++#ifndef GP2X + if (Mix_OpenAudio( frequency, format, channels, chunksize ) < 0) + return -1; + +@@ -74,20 +86,93 @@ + /* prepare the spanning effects */ + Mix_SetPanning( SOUND_LEFT_SPEAKER, 230, 24 ); + Mix_SetPanning( SOUND_RIGHT_SPEAKER, 24, 230 ); ++#else ++ if (drv_oss.Name) // Valid OSS driver ++ { ++ if (drv_oss.CommandLine) // Valid Commandline ++ { ++ drv_oss.CommandLine("buffer=14,count=2"); ++ } ++ MikMod_RegisterDriver(&drv_oss); ++ } ++ if (drv_alsa.Name) // Valid ALSA driver ++ { ++ if (drv_alsa.CommandLine) // Valid Commandline ++ { ++ drv_alsa.CommandLine("buffer=14"); ++ } ++ MikMod_RegisterDriver(&drv_alsa); ++ } ++ MikMod_RegisterDriver(&drv_nos); ++ ++ // register standard tracker ++ MikMod_RegisterAllLoaders(); ++ ++ // Note, the md_mode flags are already set by default ++ md_mode |= DMODE_SOFT_SNDFX | DMODE_SOFT_MUSIC; ++ ++ if (MikMod_Init("")) // Command paramenters are ignored as all drivers are registered ++ { ++ printf("mikmod init war fürn arsch\n"); ++ return 1; ++ } ++ ++ load_sounds(); ++ ++ // get ready to play ++ MikMod_EnableOutput(); ++ md_volume =64; ++ md_sndfxvolume = 64; ++ //md_musicvolume = md_sndfxvolume = 64; ++ ++ use_sound = true; ++ audio_device=true; ++ ++#endif + return 0; +-} + ++} + + /* --- CLOSE THE AUDIO DEVICE --- */ + + void close_audio( void ) + { ++#ifndef GP2X + if (audio_device) { + Mix_UnregisterAllEffects( SOUND_LEFT_SPEAKER ); + Mix_UnregisterAllEffects( SOUND_RIGHT_SPEAKER ); + Mix_CloseAudio(); + } ++#else ++ int i; ++ if (! audio_device) return; ++ ++ MikMod_DisableOutput(); ++ Player_Stop(); ++ MikMod_Update(); ++ ++ if (music) { ++ Player_Free(music); ++ music = NULL; ++ } ++ ++ for ( i=0 ; i<NUM_SOUNDS ; i++ ) { ++ if ( chunk[i] ) { ++ Sample_Free(chunk[i]); ++ } ++ } ++ ++ MikMod_Update(); ++ MikMod_Exit(); ++#endif ++} ++ ++#ifdef GP2X ++void updateSound ( void ) { ++ if (! audio_device) return; ++ MikMod_Update(); + } ++#endif + + + /* --- LOAD A SOUND --- */ +@@ -105,6 +190,30 @@ + return(snd); + } + ++#ifdef GP2X ++static void load_sounds() { ++ int i; ++ std::string name; ++ char file[100]; ++ ++ for ( i=0 ; i<NUM_SOUNDS ; i++ ) { ++ name = datadir + soundfilenames[i]; ++ printf("loading: %s\n",name.c_str()); ++ snprintf(file,sizeof(file),"%s",name.c_str()); ++ if ( NULL == (chunk[i] = Sample_Load(file)) ) { ++ fprintf(stderr, "Couldn't load: %s\n", file); ++ use_sound = 0; ++ return; ++ } ++ chunkFlag[i] = 0; ++ } ++ ++ // reserve voices for sound effects ++ MikMod_SetNumVoices(-1, 4); ++} ++#endif ++ ++ + /* --- PLAY A SOUND ON LEFT OR RIGHT OR CENTER SPEAKER --- */ + + void play_sound(Mix_Chunk * snd, enum Sound_Speaker whichSpeaker) +@@ -130,8 +239,45 @@ + } + } + ++ ++#ifdef GP2X ++void play_chunk(int idx) ++{ ++ int cid; ++// if (use_sound) return; ++ cid = Sample_Play (chunk[idx], 0, 0); ++ Voice_SetPanning(cid, PAN_CENTER); ++ Voice_SetVolume(cid, 1000); ++} ++#endif ++ ++ + void free_chunk(Mix_Chunk *chunk) + { + Mix_FreeChunk( chunk ); + } + ++void sound_volume ( int vol ) ++{ ++#ifndef GP2X ++ static int volume = 10; ++ ++ if ( vol == 1 ) volume-=5; ++ else if ( vol == 2 ) volume+=5; ++ Mix_Volume(-1,volume); ++#endif ++} ++ ++#ifdef GP2X ++void increaseSoundVolume(void) ++{ ++ if (md_volume > (256 - 13)) md_volume = 256; ++ else md_volume += 13; ++} ++ ++void decreaseSoundVolume(void) ++{ ++ if (md_volume < 13) md_volume = 0; ++ else md_volume -= 13; ++} ++#endif +diff -ur supertux-0.1.3/src/sound.h supertux-0.1.3-gp2x/src/sound.h +--- supertux-0.1.3/src/sound.h 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/sound.h 2006-04-21 00:17:09.000000000 +0300 +@@ -75,14 +75,27 @@ + #include <SDL_mixer.h> + + /* variables for stocking the sound and music */ ++#ifndef GP2X + extern Mix_Chunk* sounds[NUM_SOUNDS]; ++#endif + + /* functions handling the sound and music */ + int open_audio(int frequency, Uint16 format, int channels, int chunksize); + void close_audio( void ); + ++#ifndef GP2X + Mix_Chunk * load_sound(const std::string& file); ++#endif + void free_chunk(Mix_Chunk*chunk); + void play_sound(Mix_Chunk * snd, enum Sound_Speaker whichSpeaker); ++void sound_volume ( int vol ); + + #endif /*SUPERTUX_SOUND_H*/ ++ ++#ifdef GP2X ++void play_chunk(int idx); ++static void load_sounds(); ++void updateSound ( void ); ++void increaseSoundVolume(void); ++void decreaseSoundVolume(void); ++#endif +diff -ur supertux-0.1.3/src/special.cpp supertux-0.1.3-gp2x/src/special.cpp +--- supertux-0.1.3/src/special.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/special.cpp 2006-04-20 21:39:41.000000000 +0300 +@@ -105,12 +105,21 @@ + + base.ym = base.ym + 0.5 * frame_ratio; + ++#ifndef RES320X240 + if (base.x < scroll_x || + base.x > scroll_x + screen->w || + base.y > screen->h || + issolid(base.x + 4, base.y + 2) || + issolid(base.x, base.y + 2) || + life_count <= 0) ++#else ++ if (base.x < scroll_x || ++ base.x > scroll_x + 640 || ++ base.y > 480 || ++ issolid(base.x + 4, base.y + 2) || ++ issolid(base.x, base.y + 2) || ++ life_count <= 0) ++#endif + { + remove_me(); + } +@@ -120,8 +129,13 @@ + void + Bullet::draw() + { ++#ifndef RES320X240 + if (base.x >= scroll_x - base.width && + base.x <= scroll_x + screen->w) ++#else ++ if (base.x >= scroll_x - base.width && ++ base.x <= scroll_x + 640) ++#endif + { + img_bullet->draw(base.x - scroll_x, base.y); + } +@@ -140,7 +154,7 @@ + { + kind = kind_; + dir = dir_; +- ++ + base.width = 32; + base.height = 0; + base.x = x_; +@@ -197,7 +211,11 @@ + remove_me(); + return; + } ++#ifndef RES320X240 + if(base.y > screen->h) { ++#else ++ if(base.y > 640) { ++#endif + remove_me(); + return; + } +@@ -252,7 +270,12 @@ + { + /* Rising up... */ + ++ ++#ifndef RES320X240 + dest.x = (int)(base.x - scroll_x); ++#else ++ dest.x = (int)(base.x - scroll_x)/2; ++#endif + dest.y = (int)(base.y + 32 - base.height); + dest.w = 32; + dest.h = (int)base.height; +@@ -297,7 +320,11 @@ + if(kind != UPGRADE_GROWUP) + return; + ++#ifndef GP2X + play_sound(sounds[SND_BUMP_UPGRADE], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_BUMP_UPGRADE); ++#endif + + // do a little jump and change direction + physic.set_velocity(-physic.get_velocity_x(), 3); +@@ -329,18 +356,30 @@ + + if (kind == UPGRADE_GROWUP) + { ++#ifndef GP2X + play_sound(sounds[SND_EXCELLENT], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_EXCELLENT); ++#endif + pplayer->grow(); + } + else if (kind == UPGRADE_ICEFLOWER) + { ++#ifndef GP2X + play_sound(sounds[SND_COFFEE], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_COFFEE); ++#endif + pplayer->grow(); + pplayer->got_coffee = true; + } + else if (kind == UPGRADE_HERRING) + { ++#ifndef GP2X + play_sound(sounds[SND_HERRING], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_HERRING); ++#endif + pplayer->invincible_timer.start(TUX_INVINCIBLE_TIME); + World::current()->play_music(HERRING_MUSIC); + } +@@ -348,7 +387,11 @@ + { + if(player_status.lives < MAX_LIVES) { + player_status.lives++; ++#ifndef GP2X + play_sound(sounds[SND_LIFEUP], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_LIFEUP); ++#endif + } + } + +diff -ur supertux-0.1.3/src/text.cpp supertux-0.1.3-gp2x/src/text.cpp +--- supertux-0.1.3/src/text.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/text.cpp 2006-04-22 01:59:36.000000000 +0300 +@@ -24,6 +24,7 @@ + #include "defines.h" + #include "screen.h" + #include "text.h" ++#include "sound.h" + + Text::Text(const std::string& file, int kind_, int w_, int h_) + { +@@ -79,6 +80,7 @@ + void + Text::draw(const char* text, int x, int y, int shadowsize, int update) + { ++ + if(text != NULL) + { + if(shadowsize != 0) +@@ -116,6 +118,9 @@ + else if ( text[i] == '\n') + { + y += h + 2; ++#ifdef RES320X240 ++ y+=6; ++#endif + j = 0; + } + } +@@ -129,6 +134,9 @@ + else if ( text[i] == '\n') + { + y += h + 2; ++#ifdef RES320X240 ++ y+=6; ++#endif + j = 0; + } + } +@@ -306,6 +314,24 @@ + break; + } + break; ++ ++#ifdef GP2X ++ case SDL_JOYBUTTONDOWN: ++ if ( event.jbutton.button == joystick_keymap.down_button ) { ++ speed += SPEED_INC; ++ } ++ if ( event.jbutton.button == joystick_keymap.up_button ) { ++ speed -= SPEED_INC; ++ } ++ if ( event.jbutton.button == joystick_keymap.b_button ) { ++ done = 1; ++ } ++ if ( event.jbutton.button == joystick_keymap.a_button ) { ++ scroll += SCROLL; ++ } ++ break; ++#endif ++ + case SDL_QUIT: + done = 1; + break; +@@ -330,21 +356,36 @@ + white_small_text->drawf(names.item[i]+1, 0, screen->h+y-int(scroll), + A_HMIDDLE, A_TOP, 1); + y += white_small_text->h+ITEMS_SPACE; ++#ifdef RES320X240 ++ y += 6; ++#endif + break; + case ' ': + white_text->drawf(names.item[i]+1, 0, screen->h+y-int(scroll), + A_HMIDDLE, A_TOP, 1); + y += white_text->h+ITEMS_SPACE; ++#ifdef RES320X240 ++ y += 6; ++#endif + break; + case '-': +- white_big_text->drawf(names.item[i]+1, 0, screen->h+y-int(scroll), +- A_HMIDDLE, A_TOP, 3); ++#ifdef RES320X240 ++ white_text->drawf(names.item[i]+1, 0, screen->h+y-int(scroll), A_HMIDDLE, A_TOP, 3); ++#else ++ white_big_text->drawf(names.item[i]+1, 0, screen->h+y-int(scroll), A_HMIDDLE, A_TOP, 3); ++#endif + y += white_big_text->h+ITEMS_SPACE; ++#ifdef RES320X240 ++ y += 6; ++#endif + break; + default: + blue_text->drawf(names.item[i], 0, screen->h+y-int(scroll), + A_HMIDDLE, A_TOP, 1); + y += blue_text->h+ITEMS_SPACE; ++#ifdef RES320X240 ++ y += 6; ++#endif + break; + } + } +@@ -360,7 +401,13 @@ + if(scroll < 0) + scroll = 0; + +- SDL_Delay(10); ++#ifndef GP2X ++ SDL_Delay(10); ++#else ++ SDL_Delay(2); ++ updateSound(); ++#endif ++ + } + string_list_free(&names); + +diff -ur supertux-0.1.3/src/texture.cpp supertux-0.1.3-gp2x/src/texture.cpp +--- supertux-0.1.3/src/texture.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/texture.cpp 2006-04-10 14:29:03.000000000 +0300 +@@ -211,7 +211,8 @@ + { + if (impl) + { +- if (impl->draw(x, y, alpha, update) == -2) ++// if (impl->draw(x, y, alpha, update) == -2) ++ if (impl->draw(x/2, y/2, alpha, update) == -2) + reload(); + } + } +@@ -231,7 +232,8 @@ + { + if (impl) + { +- if (impl->draw_part(sx, sy, x, y, w, h, alpha, update) == -2) ++// if (impl->draw_part(sx, sy, x, y, w, h, alpha, update) == -2) ++ if (impl->draw_part(sx, sy, x, y/2, w, h, alpha, update) == -2) + reload(); + } + } +@@ -241,7 +243,8 @@ + { + if (impl) + { +- if (impl->draw_stretched(x, y, w, h, alpha, update) == -2) ++// if (impl->draw_stretched(x, y, w, h, alpha, update) == -2) ++ if (impl->draw_stretched(x/2, y/2, w, h, alpha, update) == -2) + reload(); + } + } +diff -ur supertux-0.1.3/src/title.cpp supertux-0.1.3-gp2x/src/title.cpp +--- supertux-0.1.3/src/title.cpp 2005-07-08 15:19:17.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/title.cpp 2006-04-22 01:29:08.000000000 +0300 +@@ -51,6 +51,7 @@ + #include "tile.h" + #include "resources.h" + #include "worldmap.h" ++#include "sound.h" + + static Surface* bkg_title; + static Surface* logo; +@@ -80,6 +81,10 @@ + + void generate_contrib_menu() + { ++#ifdef RES320X240 ++ fadeout(); ++#endif ++ + string_list_type level_subsets = dsubdirs("/levels", "info"); + + free_contrib_menu(); +@@ -208,7 +213,7 @@ + } + + // Wrap around at the end of the level back to the beginnig +- if(plevel->width * 32 - 320 < tux->base.x) ++ if((plevel->width * 32) - 320 < tux->base.x) + { + tux->level_begin(); + scroll_x = 0; +@@ -226,7 +231,6 @@ + { + walking = false; + } +- + world->draw(); + } + +@@ -301,13 +305,26 @@ + + if (Menu::current() == main_menu) + logo->draw( 160, 30); +- ++ ++#ifndef RES320X240 + white_small_text->draw(" SuperTux " VERSION "\n" + "Copyright (c) 2003 SuperTux Devel Team\n" + "This game comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n" + "are welcome to redistribute it under certain conditions; see the file COPYING\n" + "for details.\n", + 0, 420, 0); ++#else ++ white_small_text->draw(" SuperTux " VERSION "\n" ++ "Copyright (c) 2003 SuperTux Devel Team\n" ++ "This game comes with ABSOLUTELY NO \n" ++ "WARRANTY. This is free software, and\n" ++ "you are welcome to redistribute it\n" ++ "under certain conditions; see the file\n" ++ "COPYING for details.\n", ++ 0, 360, 0); ++#endif ++ ++ //updateSound(); + + /* Don't draw menu, if quit is true */ + Menu* menu = Menu::current(); +@@ -337,10 +354,10 @@ + break; + case MNID_CREDITS: + music_manager = new MusicManager(); +- menu_song = music_manager->load_music(datadir + "/music/credits.ogg"); ++ menu_song = music_manager->load_music(datadir + "/music/credits.mod"); + music_manager->halt_music(); + music_manager->play_music(menu_song,0); +- display_text_file("CREDITS", bkg_title, SCROLL_SPEED_CREDITS); ++ display_text_file("CREDITS", bkg_title, SCROLL_SPEED_CREDITS); + music_manager->halt_music(); + menu_song = music_manager->load_music(datadir + "/music/theme.mod"); + music_manager->play_music(menu_song); +diff -ur supertux-0.1.3/src/world.cpp supertux-0.1.3-gp2x/src/world.cpp +--- supertux-0.1.3/src/world.cpp 2005-06-22 00:16:07.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/world.cpp 2006-05-05 23:16:47.000000000 +0300 +@@ -206,6 +206,7 @@ + } + } + ++ + /* Draw interactive tiles: */ + for (y = 0; y < 15; ++y) + { +@@ -255,6 +256,8 @@ + { + (*p)->draw(scroll_x, 0, 1); + } ++ ++ //updateSound(); + } + + void +@@ -312,7 +315,12 @@ + + // the space that it takes for the screen to start scrolling, regarding + // screen bounds (in pixels) ++#ifndef RES320X240 + #define X_SPACE (400-16) ++#else ++#define X_SPACE (80-16) ++#endif ++ + // the time it takes to move the camera (in ms) + #define CHANGE_DIR_SCROLL_SPEED 2000 + +@@ -388,8 +396,13 @@ + // this code prevent the screen to scroll before the start or after the level's end + if(scroll_x < 0) + scroll_x = 0; ++#ifndef RES320X240 + if(scroll_x > level->width * 32 - screen->w) + scroll_x = level->width * 32 - screen->w; ++#else ++ if(scroll_x > level->width * 32 - 640) ++ scroll_x = level->width * 32 - 640; ++#endif + } + + void +@@ -481,6 +494,10 @@ + void + World::add_score(float x, float y, int s) + { ++#ifdef RES320X240 ++ x=x/2; ++#endif ++ + player_status.score += s; + + FloatingScore* new_floating_score = new FloatingScore(); +@@ -547,8 +564,11 @@ + Bullet new_bullet; + new_bullet.init(x,y,xm,dir); + bullets.push_back(new_bullet); +- ++#ifndef GP2X + play_sound(sounds[SND_SHOOT], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_SHOOT); ++#endif + } + + void +@@ -608,8 +628,11 @@ + counting_distros = false; + plevel->change(x, y, TM_IA, tile->next_tile); + } +- ++#ifndef GP2X + play_sound(sounds[SND_DISTRO], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_DISTRO); ++#endif + player_status.score = player_status.score + SCORE_DISTRO; + player_status.distros++; + } +@@ -622,9 +645,13 @@ + add_broken_brick(tile, + ((int)(x + 1) / 32) * 32, + (int)(y / 32) * 32); +- ++ + /* Get some score: */ ++#ifndef GP2X + play_sound(sounds[SND_BRICK], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_BRICK); ++#endif + player_status.score = player_status.score + SCORE_BRICK; + } + } +@@ -652,7 +679,11 @@ + { + case 1: // Box with a distro! + add_bouncy_distro(posx, posy); ++#ifndef GP2X + play_sound(sounds[SND_DISTRO], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_DISTRO); ++#endif + player_status.score = player_status.score + SCORE_DISTRO; + player_status.distros++; + break; +@@ -662,7 +693,11 @@ + add_upgrade(posx, posy, col_side, UPGRADE_GROWUP); + else /* Tux is big, add an iceflower: */ + add_upgrade(posx, posy, col_side, UPGRADE_ICEFLOWER); ++#ifndef GP2X + play_sound(sounds[SND_UPGRADE], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_UPGRADE); ++#endif + break; + + case 3: // Add a golden herring +@@ -688,7 +723,11 @@ + if (tile && tile->distro) + { + level->change(x, y, TM_IA, tile->next_tile); ++#ifndef GP2X + play_sound(sounds[SND_DISTRO], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_DISTRO); ++#endif + + if (bounciness == BOUNCE) + { +diff -ur supertux-0.1.3/src/worldmap.cpp supertux-0.1.3-gp2x/src/worldmap.cpp +--- supertux-0.1.3/src/worldmap.cpp 2005-07-08 15:19:17.000000000 +0300 ++++ supertux-0.1.3-gp2x/src/worldmap.cpp 2006-05-05 22:54:04.000000000 +0300 +@@ -376,11 +376,11 @@ + { + tile_manager = new TileManager(); + +- width = 20; +- height = 15; ++ width = (int)(20); ++ height = (int)(15); + +- start_x = 4; +- start_y = 5; ++ start_x = int(4); ++ start_y = int(5); + + passive_message_timer.init(true); + +@@ -395,7 +395,7 @@ + enter_level = false; + + name = "<no file>"; +- music = "SALCON.MOD"; ++ music = "salcon.mod"; + } + + WorldMap::~WorldMap() +@@ -589,7 +589,8 @@ + break; + } + break; +- ++ ++#ifndef GP2X + case SDL_JOYAXISMOTION: + if (event.jaxis.axis == joystick_keymap.x_axis) + { +@@ -617,13 +618,29 @@ + if (event.jhat.value == SDL_HAT_RIGHT) + input_direction = D_EAST; + break; +- ++#endif + case SDL_JOYBUTTONDOWN: ++#ifndef GP2X + if (event.jbutton.button == joystick_keymap.b_button) + enter_level = true; + else if (event.jbutton.button == joystick_keymap.start_button) + on_escape_press(); + break; ++#else ++ if (event.jbutton.button == joystick_keymap.a_button) ++ enter_level = true; ++ else if (event.jbutton.button == joystick_keymap.start_button) ++ on_escape_press(); ++ else if (event.jbutton.button == joystick_keymap.up_button) ++ input_direction = D_NORTH; ++ else if (event.jbutton.button == joystick_keymap.down_button) ++ input_direction = D_SOUTH; ++ else if (event.jbutton.button == joystick_keymap.right_button) ++ input_direction = D_EAST; ++ else if (event.jbutton.button == joystick_keymap.left_button) ++ input_direction = D_WEST; ++ break; ++#endif + + default: + break; +@@ -769,13 +786,13 @@ + { + MusicRef theme = + music_manager->load_music(datadir + "/music/theme.mod"); +- MusicRef credits = music_manager->load_music(datadir + "/music/credits.ogg"); ++ MusicRef credits = music_manager->load_music(datadir + "/music/credits.xm"); + music_manager->play_music(theme); + // Display final credits and go back to the main menu + display_text_file(level->extro_filename, + "/images/background/extro.jpg", SCROLL_SPEED_MESSAGE); + music_manager->play_music(credits,0); +- display_text_file("CREDITS", ++ display_text_file("CREDITS", + "/images/background/oiltux.jpg", SCROLL_SPEED_CREDITS); + music_manager->play_music(theme); + quit = true; +@@ -812,7 +829,12 @@ + if (level->x == tux->get_tile_pos().x && + level->y == tux->get_tile_pos().y) + { ++#ifndef GP2X + play_sound(sounds[SND_TELEPORT], SOUND_CENTER_SPEAKER); ++#else ++ play_chunk(SND_TELEPORT); ++ updateSound(); ++#endif + tux->back_direction = D_NONE; + tux->set_tile_pos(Point(level->teleport_dest_x, level->teleport_dest_y)); + SDL_Delay(1000); +@@ -914,26 +936,39 @@ + void + WorldMap::draw_status() + { ++ int xdiv; ++ ++#ifdef RES320X240 ++ xdiv=2; ++#else ++ xdiv=1; ++#endif ++ + char str[80]; + sprintf(str, "%d", player_status.score); + white_text->draw("SCORE", 0, 0); +- gold_text->draw(str, 96, 0); ++ gold_text->draw(str, (int)(96)/xdiv, 0); + + sprintf(str, "%d", player_status.distros); +- white_text->draw_align("COINS", 320-64, 0, A_LEFT, A_TOP); +- gold_text->draw_align(str, 320+64, 0, A_RIGHT, A_TOP); ++ white_text->draw_align("COINS", (int)(320-64)/xdiv, 0, A_LEFT, A_TOP); ++ gold_text->draw_align(str, (int)(320+64)/xdiv, 0, A_RIGHT, A_TOP); + +- white_text->draw("LIVES", 480, 0); ++ white_text->draw("LIVES", (int)(480)/xdiv, 0); + if (player_status.lives >= 5) + { + sprintf(str, "%dx", player_status.lives); +- gold_text->draw_align(str, 617, 0, A_RIGHT, A_TOP); +- tux_life->draw(565+(18*3), 0); ++#ifdef RES320X240 ++ gold_text->draw_align(str, (int)(617)/xdiv-5, 0, A_RIGHT, A_TOP); ++ tux_life->draw((int)((565-12+(18*3))), 0); ++#else ++ gold_text->draw_align(str, (int)(617), 0, A_RIGHT, A_TOP); ++ tux_life->draw((int)((565+(18*3))), 0); ++#endif + } + else + { + for(int i= 0; i < player_status.lives; ++i) +- tux_life->draw(565+(18*i),0); ++ tux_life->draw((565+(18/xdiv*i)),0); + } + + if (!tux->is_moving()) +@@ -945,7 +980,11 @@ + { + if(!i->name.empty()) + { ++#ifndef RES320X240 + white_text->draw_align(i->title.c_str(), screen->w/2, screen->h, A_HMIDDLE, A_BOTTOM); ++#else ++ white_text->draw_align(i->title.c_str(), screen->w/2, 470, A_HMIDDLE, A_BOTTOM); ++#endif + } + else if (i->teleport_dest_x != -1) { + if(!i->teleport_message.empty()) +@@ -955,7 +994,7 @@ + /* Display a message in the map, if any as been selected */ + if(!i->display_map_message.empty() && !i->passive_message) + gold_text->draw_align(i->display_map_message.c_str(), +- screen->w/2, screen->h - 30,A_HMIDDLE, A_BOTTOM); ++ screen->w/2, screen->h - (int)(30),A_HMIDDLE, A_BOTTOM); + break; + } + } +@@ -964,7 +1003,7 @@ + /* Display a passive message in the map, if needed */ + if(passive_message_timer.check()) + gold_text->draw_align(passive_message.c_str(), +- screen->w/2, screen->h - 30,A_HMIDDLE, A_BOTTOM); ++ screen->w/2, screen->h - (int)(30),A_HMIDDLE, A_BOTTOM); + } + + void +@@ -997,6 +1036,7 @@ + Point tux_pos = tux->get_pos(); + if (1) + { ++#ifndef GP2X + offset.x = -tux_pos.x + screen->w/2; + offset.y = -tux_pos.y + screen->h/2; + +@@ -1005,6 +1045,16 @@ + + if (offset.x < screen->w - width*32) offset.x = screen->w - width*32; + if (offset.y < screen->h - height*32) offset.y = screen->h - height*32; ++#else ++ offset.x = -tux_pos.x + 640/2; ++ offset.y = -tux_pos.y + 480/2; ++ ++ if (offset.x > 0) offset.x = 0; ++ if (offset.y > 0) offset.y = 0; ++ ++ if (offset.x < 640 - width*32) offset.x = 640 - width*32; ++ if (offset.y < 480 - height*32) offset.y = 480 - height*32; ++#endif + } + + draw(offset); diff --git a/packages/supertux/files/img-resize.sh b/packages/supertux/files/img-resize.sh new file mode 100644 index 0000000000..0197964193 --- /dev/null +++ b/packages/supertux/files/img-resize.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +conv() { + +if [ ! -d org ]; then + mkdir org + mv *.jpg *.png org/ +fi + +for i in org/*; do + b=`basename $i` + ext=`expr "x$b" : 'x.*\.\(.*\)'` + if [ "$ext" == "png" ]; then + if [ $b == "tux-life.png" ]; then + cp $i _.png + else + convert $i -resize 50% -colors 64 _.png + fi + pngcrush -q _.png $b + elif [ "$ext" == "jpg" ]; then + convert $i -resize 50% -quality 60 $b + fi +done +rm _.png + +} + +conv diff --git a/packages/supertux/files/supertux-smallsize-data.tar.bz2 b/packages/supertux/files/supertux-smallsize-data.tar.bz2 Binary files differnew file mode 100644 index 0000000000..740e4f4473 --- /dev/null +++ b/packages/supertux/files/supertux-smallsize-data.tar.bz2 diff --git a/packages/supertux/files/supertux.desktop b/packages/supertux/files/supertux.desktop new file mode 100644 index 0000000000..8677a71301 --- /dev/null +++ b/packages/supertux/files/supertux.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=SuperTux +Name[en]=SuperTux +Name[de]=SuperTux +Name[cs]=SuperTux +GenericName=A Platform Game +GenericName[en]=A Platform Game +GenericName[de]=Ein Jump&Run Spiel +GenericName[cs]=PloÅ¡inová hra +Comment=A Super Mario inspired penguin platform game +Comment[en]=A Super Mario inspired penguin platform game +Comment[de]=Ein von Super Mario inspiriertes Pinguin Jump&Run Spiel +Comment[cs]=PloÅ¡inovka inspirovaná SuperMariem s tuÄňákem Tuxem v hlavnà roli +Icon=supertux +Exec=supertux +Terminal=false +StartupNotify=false +Categories=Application;Game;ArcadeGame; diff --git a/packages/supertux/files/supertux.png b/packages/supertux/files/supertux.png Binary files differnew file mode 100644 index 0000000000..82ac69642c --- /dev/null +++ b/packages/supertux/files/supertux.png diff --git a/packages/supertux/supertux-qvga_0.1.3.bb b/packages/supertux/supertux-qvga_0.1.3.bb new file mode 100644 index 0000000000..a38b8efbec --- /dev/null +++ b/packages/supertux/supertux-qvga_0.1.3.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "SuperTux is a classic 2D jump'n'run sidescroller game \ +in a style similar to the original SuperMario games (QVGA, size-optimized version)" +SECTION = "games" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "libsdl-gfx imagemagick-native pngcrush-native" +PR = "r0.20" + +APPIMAGE = "${WORKDIR}/supertux.png" +APPDESKTOP = "${WORKDIR}/supertux.desktop" + +PACKAGES_prepend = " ${PN}-levels-bonus1 ${PN}-levels-bonus2 " + +SRC_URI = "${SOURCEFORGE_MIRROR}/super-tux/supertux-${PV}.tar.bz2 \ +# file://supertux-qvga-gfx.tar.bz2 \ + file://supertux-smallsize-data.tar.bz2 \ + file://gp2x.patch;patch=1 \ + file://img-resize.sh \ + file://supertux.png \ + file://supertux.desktop \ +# file://letters-black.png \ +# file://letters-blue.png \ +# file://letters-gold.png \ +# file://mousecursor.png \ +# file://credits.mod \ + " +S = "${WORKDIR}/supertux-${PV}" + +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" +EXTRA_OECONF = "--enable-320x240 --disable-opengl" + +inherit autotools sdl + +do_compile_prepend() { +# for f in letters-black.png letters-blue.png letters-gold.png mousecursor.png; do +# cp ${WORKDIR}/$f ${S}/data/images/status/ +# done + for d in background shared tilesets title worldmap; do + cd ${S}/data/images/$d + sh ${WORKDIR}/img-resize.sh + done +} + +do_install_prepend() { + # *-fast.* music plays when time for a level is running out + # byte-wise, it's the same file with few bytes changes (for .mod's). + # Well, seller feature, what to say, but we won't waste megabytes on + # that. Folks should learn to control tempo in there player lib. + rm -f ${S}/data/music/*-fast.* + # ogg is too heavy for embedded systems + rm -f ${S}/data/music/*.ogg +# cp ${WORKDIR}/*.mod ${S}/data/music/ +} + +FILES_${PN}-levels-bonus1 = "${datadir}/supertux/levels/bonus1 ${datadir}/supertux/levels/worldmaps/bonusisland1.stwm" +FILES_${PN}-levels-bonus2 = "${datadir}/supertux/levels/bonus2 ${datadir}/supertux/levels/worldmaps/bonusisland2.stwm" +FILES_${PN} += "${datadir}/supertux" diff --git a/packages/supertux/supertux_0.1.2.bb b/packages/supertux/supertux_0.1.2.bb index 42ea6039fa..3afa425f1a 100644 --- a/packages/supertux/supertux_0.1.2.bb +++ b/packages/supertux/supertux_0.1.2.bb @@ -1,16 +1,18 @@ -DESCRIPTION = "SuperTux is a classic 2D jump'n run sidescroller game \ +DESCRIPTION = "SuperTux is a classic 2D jump'n'run sidescroller game \ in a style similar to the original SuperMario games." SECTION = "games" PRIORITY = "optional" -DEPENDS = "virtual/libsdl libsdl-mixer libsdl-image" LICENSE = "GPL" -PR = "r1" +PR = "r4" + +APPIMAGE = "${WORKDIR}/supertux.png" +APPDESKTOP = "${WORKDIR}/supertux.desktop" SRC_URI = "${SOURCEFORGE_MIRROR}/super-tux/supertux-${PV}.tar.bz2 \ - http://ssel.vub.ac.be/Members/DennisWagelaar/download/zaurus/supertux-0.1.2-fp.patch.gz;patch=1" + http://ssel.vub.ac.be/Members/DennisWagelaar/download/zaurus/supertux-0.1.2-fp.patch.gz;patch=1 \ + file://supertux.png" export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" +EXTRA_OECONF = "--disable-opengl" -inherit autotools - -# FIXME: Add .desktop file for Opie/Qtopia +inherit autotools sdl diff --git a/packages/supertux/supertux_0.1.3.bb b/packages/supertux/supertux_0.1.3.bb new file mode 100644 index 0000000000..f90670738a --- /dev/null +++ b/packages/supertux/supertux_0.1.3.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "SuperTux is a classic 2D jump'n'run sidescroller game \ +in a style similar to the original SuperMario games." +SECTION = "games" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r1" + +APPIMAGE = "${WORKDIR}/supertux.png" +APPDESKTOP = "${WORKDIR}/supertux.desktop" + +SRC_URI = "${SOURCEFORGE_MIRROR}/super-tux/supertux-${PV}.tar.bz2 \ +# http://ssel.vub.ac.be/Members/DennisWagelaar/download/zaurus/supertux-0.1.2-fp.patch.gz;patch=1 \ + file://supertux.png \ + file://supertux.desktop \ + " + +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" +EXTRA_OECONF = "--disable-opengl" + +inherit autotools sdl + +DEFAULT_PREFERENCE = "-1" diff --git a/packages/swt/.mtn2git_empty b/packages/swt/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/swt/.mtn2git_empty diff --git a/packages/swt/files/.mtn2git_empty b/packages/swt/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/swt/files/.mtn2git_empty diff --git a/packages/swt/files/Makefile b/packages/swt/files/Makefile new file mode 100644 index 0000000000..2eb3557cdd --- /dev/null +++ b/packages/swt/files/Makefile @@ -0,0 +1,78 @@ +JAVA=swt-gtk-$(RELEASE).jar +LIBRARIES=libswt.so libswt-pi.so libswt-mozilla.so +CLEANFILES=*.files *.jar *.so* *-stamp + +RELEASE=OE_SWT_RELEASE +SONAME_VERSION=OE_SWT_API_VERSION + +GCJ=gcj +JAR=gjar +JAVAC=javac -classpath . +LDCONFIG=/sbin/ldconfig +LN_S=ln -s +RM=rm -f + +GCJFLAGS=-O2 -fPIC -fjni -shared + +LINK=$(GCJ) $(GCJFLAGS) -o $@ -Wl,-soname=lib$*.so.$(SONAME_VERSION) + +# Build without Jars +#all: +# $(MAKE) -f make_linux.mak make_swt make_atk make_cairo + +# Build with Jars +all: $(JAVA) + $(MAKE) -f make_linux.mak make_swt make_atk make_cairo + +# all: $(JAVA) $(LIBRARIES) +# $(MAKE) -f make_linux.mak make_swt make_atk make_gnome make_mozilla + +clean distclean: + $(RM) $(CLEANFILES) + $(RM) -r swt swt-pi swt-mozilla + -$(MAKE) -f make_linux.mak clean + +.PHONY: all clean distclean + +swt.files: + find org -name *.java \ + -not -path org/eclipse/swt/internal\* \ + -not -path org/eclipse/swt/browser\* | sort > $@ + +swt-mozilla.files: + find org/eclipse/swt/browser org/eclipse/swt/internal/mozilla \ + -name *.java | sort > $@ + +swt-pi.files: + find org/eclipse/swt/internal -name *.java \ + -not -path org/eclipse/swt/internal/mozilla\* | sort > $@ + +%-stamp: %.files + mkdir -p $* + for i in `cat $<`; do \ + if [ -e $*/$${i%java}class ]; then \ + echo SKIPPING $$i; \ + else \ + echo $(JAVAC) -d $* $$i; \ + $(JAVAC) -d $* $$i || exit $$?; \ + fi \ + done + touch $@ + +%.jar: %-stamp + $(JAR) -C $* -cf $@ . + +lib%.so.$(RELEASE): %.jar + $(LINK) $< + $(LDCONFIG) -n . + +%.so: %.so.$(RELEASE) + $(LN_S) -f $< $@ + +swt-gtk-$(RELEASE).jar: swt.jar swt-pi.jar swt-mozilla.jar + mkdir _jar + cd _jar && for i in $^; do $(JAR) -xf ../$$i || exit $$?; done + $(JAR) -C _jar -cf $@ org + rm -rf _jar + +.SECONDARY: diff --git a/packages/swt/files/swt-hildon.patch b/packages/swt/files/swt-hildon.patch new file mode 100644 index 0000000000..728dd3070c --- /dev/null +++ b/packages/swt/files/swt-hildon.patch @@ -0,0 +1,128 @@ +Index: swt-hildon/swt-source/make_linux.mak +=================================================================== +--- swt-hildon.orig/swt-source/make_linux.mak 2008-01-08 09:35:29.000000000 +0100 ++++ swt-hildon/swt-source/make_linux.mak 2008-01-08 11:35:01.000000000 +0100 +@@ -45,8 +45,8 @@ + CAIROLIBS = `pkg-config --libs-only-L cairo` -lcairo + + # Do not use pkg-config to get libs because it includes unnecessary dependencies (i.e. pangoxft-1.0) +-GTKCFLAGS = `pkg-config --cflags gtk+-2.0` +-GTKLIBS = `pkg-config --libs-only-L gtk+-2.0 gthread-2.0` -lgtk-x11-2.0 -lgthread-2.0 -L/usr/X11R6/lib $(XLIB64) -lXtst ++GTKCFLAGS = `pkg-config --cflags gtk+-2.0 hildon-1` ++GTKLIBS = -lhildon-1 `pkg-config --libs-only-L gtk+-2.0 gthread-2.0` -lgtk-x11-2.0 -lgthread-2.0 -L/usr/X11R6/lib $(XLIB64) -lXtst + + CDE_LIBS = -L$(CDE_HOME)/lib -R$(CDE_HOME)/lib -lXt -lX11 -lDtSvc + +@@ -74,8 +74,6 @@ + -Wno-non-virtual-dtor \ + -fPIC \ + -I. \ +- -I$(JAVA_HOME)/include \ +- -I$(JAVA_HOME)/include/linux \ + ${SWT_PTR_CFLAGS} + MOZILLALIBS = -shared -Wl,--version-script=mozilla_exports -Bsymbolic + MOZILLAEXCLUDES = -DNO_XPCOMGlueShutdown -DNO_XPCOMGlueStartup +@@ -96,8 +94,6 @@ + -DSWT_VERSION=$(SWT_VERSION) \ + $(NATIVE_STATS) \ + -DLINUX -DGTK \ +- -I$(JAVA_HOME)/include \ +- -I$(JAVA_HOME)/include/linux \ + -fPIC \ + ${SWT_PTR_CFLAGS} + LIBS = -shared -fPIC +Index: swt-hildon/swt-source/os.c +=================================================================== +--- swt-hildon.orig/swt-source/os.c 2008-01-08 09:35:29.000000000 +0100 ++++ swt-hildon/swt-source/os.c 2008-01-08 09:37:00.000000000 +0100 +@@ -17,6 +17,9 @@ + #include "os_structs.h" + #include "os_stats.h" + ++#include <hildon/hildon-program.h> ++#include <hildon/hildon-window.h> ++ + #define OS_NATIVE(func) Java_org_eclipse_swt_internal_gtk_OS_##func + + #ifndef NO_Call +@@ -7015,9 +7018,18 @@ + JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1container_1add) + (JNIEnv *env, jclass that, jint arg0, jint arg1) + { ++ GtkContainer *container = (GtkContainer *) arg0; ++ GtkWidget *widget = (GtkWidget *) arg1; + OS_NATIVE_ENTER(env, that, _1gtk_1container_1add_FUNC); +- gtk_container_add((GtkContainer *)arg0, (GtkWidget *)arg1); +- OS_NATIVE_EXIT(env, that, _1gtk_1container_1add_FUNC); ++ if (GTK_CHECK_TYPE (widget, GTK_TYPE_MENU) ++ && !strcmp(gtk_menu_get_title(GTK_MENU(widget)), "__main_menu__")) ++ { ++ hildon_window_set_menu(HILDON_WINDOW(container), GTK_MENU(widget)); ++ } ++ else ++ gtk_container_add((GtkContainer *)arg0, (GtkWidget *)arg1); ++ ++ OS_NATIVE_EXIT(env, that, _1gtk_1container_1add_FUNC); + } + #endif + +@@ -9121,9 +9133,12 @@ + JNIEXPORT jint JNICALL OS_NATIVE(_1gtk_1menu_1bar_1new) + (JNIEnv *env, jclass that) + { ++ GtkWidget *menu; + jint rc = 0; + OS_NATIVE_ENTER(env, that, _1gtk_1menu_1bar_1new_FUNC); +- rc = (jint)gtk_menu_bar_new(); ++ menu = gtk_menu_new(); ++ gtk_menu_set_title(menu, "__main_menu__"); ++ rc = (jint) menu; + OS_NATIVE_EXIT(env, that, _1gtk_1menu_1bar_1new_FUNC); + return rc; + } +@@ -15464,8 +15479,22 @@ + (JNIEnv *env, jclass that, jint arg0) + { + jint rc = 0; ++ HildonProgram *p; ++ GtkWidget *w; + OS_NATIVE_ENTER(env, that, _1gtk_1window_1new_FUNC); +- rc = (jint)gtk_window_new((GtkWindowType)arg0); ++/* ++ if (GTK_WINDOW_TOPLEVEL == (GtkWindowType) arg0) ++ { ++*/ ++ p = hildon_program_get_instance(); ++ w = hildon_window_new(); ++ hildon_program_add_window(p, HILDON_WINDOW(w)); ++/* ++ } ++ else ++ w = gtk_window_new(GTK_WINDOW_POPUP); ++*/ ++ rc = (jint) w; + OS_NATIVE_EXIT(env, that, _1gtk_1window_1new_FUNC); + return rc; + } +Index: swt-hildon/swt-source/org/eclipse/swt/widgets/Menu.java +=================================================================== +--- swt-hildon.orig/swt-source/org/eclipse/swt/widgets/Menu.java 2008-01-08 09:34:55.000000000 +0100 ++++ swt-hildon/swt-source/org/eclipse/swt/widgets/Menu.java 2008-01-08 09:36:01.000000000 +0100 +@@ -259,9 +259,17 @@ + if ((style & SWT.BAR) != 0) { + handle = OS.gtk_menu_bar_new (); + if (handle == 0) error (SWT.ERROR_NO_HANDLES); ++ if (parent instanceof Shell) ++ { ++ int /*long*/ shellHandle = ((Shell) parent).shellHandle; ++ OS.gtk_container_add (shellHandle, handle); ++ } ++ else ++ { + int /*long*/ vboxHandle = parent.vboxHandle; + OS.gtk_container_add (vboxHandle, handle); + OS.gtk_box_set_child_packing (vboxHandle, handle, false, true, 0, OS.GTK_PACK_START); ++ } + } else { + handle = OS.gtk_menu_new (); + if (handle == 0) error (SWT.ERROR_NO_HANDLES); diff --git a/packages/swt/swt-gtk.inc b/packages/swt/swt-gtk.inc new file mode 100644 index 0000000000..6afadf1cab --- /dev/null +++ b/packages/swt/swt-gtk.inc @@ -0,0 +1,58 @@ +DESCRIPTION = "SWT is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities" +LICENSE = "CPL MPL LGPL" + +inherit java-library + +DEPENDS = "cairo gtk+ atk libxtst" + +S = "${WORKDIR}/swt-source" + +# A number which is used by SWT to mark the shared libraries. It can be found +# in the version.txt file inside the source directory. +SWTVERSION = ${@bb.fatal('SWTVERSION is not defined in this swt-gtk recipe!')} +SWT_API_VERSION = ${@bb.fatal('SWT_API_VERSION is not defined in this swt-gtk recipe!')} + +do_unpackpost() { + if [ ! -d ${S} ]; then + mkdir ${S} + cd ${S} + fi + + unzip -o ../src.zip + cp ../Makefile . + + sed -i -e "s|RELEASE=OE_SWT_RELEASE|RELEASE=${PV}|" Makefile + sed -i -e "s|SONAME_VERSION=OE_SWT_API_VERSION|SONAME_VERSION=${SWT_API_VERSION}|" Makefile +} + +do_compile() { + oe_runmake NATIVE_STATS="-I${STAGING_INCDIR}/classpath" +} + +addtask unpackpost after do_unpack before do_patch + +do_install() { + oe_jarinstall swt-pi.jar + oe_jarinstall swt.jar + oe_jarinstall swt-gtk-${PV}.jar swt-gtk.jar + + install -d ${D}${libdir_jni} + oe_libinstall -so libswt-atk-gtk-${SWTVERSION} ${D}/${libdir_jni} + oe_libinstall -so libswt-cairo-gtk-${SWTVERSION} ${D}/${libdir_jni} + oe_libinstall -so libswt-pi-gtk-${SWTVERSION} ${D}/${libdir_jni} + oe_libinstall -so libswt-gtk-${SWTVERSION} ${D}/${libdir_jni} +} + +do_stage() { + oe_jarinstall -s swt-pi.jar + oe_jarinstall -s swt.jar + oe_jarinstall -s swt-gtk-${PV}.jar swt-gtk.jar +} + +PACKAGES += "lib${PN}-jni" + +FILES_lib${PN}-jni = "${libdir_jni}/lib*.so*" + +RDEPENDS_${JPN} = "lib${PN}-jni" +RPROVIDES_${JPN} = "libswt${SWT_API_VERSION}-gtk-java" + diff --git a/packages/swt/swt3.3-gtk_3.3.1.bb b/packages/swt/swt3.3-gtk_3.3.1.bb new file mode 100644 index 0000000000..5b17853725 --- /dev/null +++ b/packages/swt/swt3.3-gtk_3.3.1.bb @@ -0,0 +1,10 @@ +require swt-gtk.inc + +SRC_URI = "http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops/R-${PV}-200710231652/swt-${PV}-gtk-linux-x86.zip \ + file://Makefile" + +# A number which is used by SWT to mark the shared libraries. +SWTVERSION = "3347" +SWT_API_VERSION = "3.3" + +RCONFLICTS = "libswt3.4-gtk-java" diff --git a/packages/swt/swt3.4-gtk-hildon_3.3+3.4M3.bb b/packages/swt/swt3.4-gtk-hildon_3.3+3.4M3.bb new file mode 100644 index 0000000000..628dcdd810 --- /dev/null +++ b/packages/swt/swt3.4-gtk-hildon_3.3+3.4M3.bb @@ -0,0 +1,7 @@ +require swt3.4-gtk_${PV}.bb + +PR = "r1" + +DEPENDS += "hildon-1" + +SRC_URI += "file://swt-hildon.patch;patch=1;pnum=2" diff --git a/packages/swt/swt3.4-gtk_3.3+3.4M3.bb b/packages/swt/swt3.4-gtk_3.3+3.4M3.bb new file mode 100644 index 0000000000..5d411f1be6 --- /dev/null +++ b/packages/swt/swt3.4-gtk_3.3+3.4M3.bb @@ -0,0 +1,12 @@ +require swt-gtk.inc + +SRC_URI = "http://ftp.wh2.tu-dresden.de/pub/mirrors/eclipse/eclipse/downloads/drops/S-3.4M3-200711012000/swt-3.4M3-gtk-linux-x86.zip \ + file://Makefile" + +# A number which is used by SWT to mark the shared libraries. +SWTVERSION = "3416" +SWT_API_VERSION = "3.4" + +PROVIDES = "swt3.4-gtk" + +RCONFLICTS = "libswt3.3-gtk-java" diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index 40ef6ddce8..8f2f7935eb 100644 --- a/packages/tasks/task-base.bb +++ b/packages/tasks/task-base.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Merge machine and distro options to create a basic machine task/package" -PR = "r56" +PR = "r57" inherit task diff --git a/packages/tasks/task-openmoko-debug.bb b/packages/tasks/task-openmoko-debug.bb index 8486aa01cf..0c2342183e 100644 --- a/packages/tasks/task-openmoko-debug.bb +++ b/packages/tasks/task-openmoko-debug.bb @@ -1,7 +1,7 @@ DESCRIPTION = "OpenMoko: Debugging and Benchmarking Tools" SECTION = "openmoko/base" LICENSE = "MIT" -PR = "r58" +PR = "r59" inherit task @@ -15,6 +15,7 @@ RDEPENDS_task-openmoko-debug = "\ cu \ dbench \ fbgrab \ + fbset \ fstests \ gdb \ gdbserver \ diff --git a/packages/tasks/task-openmoko-feed.bb b/packages/tasks/task-openmoko-feed.bb index e1fbbabfde..97f24a7624 100644 --- a/packages/tasks/task-openmoko-feed.bb +++ b/packages/tasks/task-openmoko-feed.bb @@ -1,7 +1,7 @@ DESCRIPTION = "OpenMoko: Misc. Feed Items" SECTION = "openmoko/base" LICENSE = "MIT" -PR = "r17" +PR = "r20" inherit task @@ -24,9 +24,10 @@ RDEPENDS_task-openmoko-feed = "\ nano \ ntpclient ntp \ openssh openssh-scp openssh-ssh openssh-sshd openssh-sftp openssh-misc \ - python python-pygtk python-pyserial \ + python python-pygtk python-pyserial python-efl \ ruby \ libsdl-x11 libsdl-mixer libsdl-net libsdl-ttf \ + settingsgui \ synergy \ tzdata \ tor \ diff --git a/packages/tasks/task-openmoko-python-devel.bb b/packages/tasks/task-openmoko-python-devel.bb new file mode 100644 index 0000000000..37d64847f6 --- /dev/null +++ b/packages/tasks/task-openmoko-python-devel.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "OpenMoko: Python Development Tools" +SECTION = "openmoko/devel" +LICENSE = "MIT" +PR = "r1" + +inherit task + +RDEPENDS_task-openmoko-python-devel = "\ + python-efl \ + python-pygtk \ +" diff --git a/packages/tasks/task-openmoko-toolchain-host.bb b/packages/tasks/task-openmoko-toolchain-host.bb new file mode 100644 index 0000000000..31ac3bb746 --- /dev/null +++ b/packages/tasks/task-openmoko-toolchain-host.bb @@ -0,0 +1,26 @@ +require task-sdk-host.bb + +DESCRIPTION = "Packages for a standalone OpenMoko SDK or external toolchain" +LICENSE = "MIT" +ALLOW_EMPTY = "1" + +PR = "r0" + +PACKAGES = "${PN}" + +RDEPENDS_${PN} += "\ + openmoko-sample2-src \ +" +require task-sdk-host.bb + +DESCRIPTION = "Packages for a standalone OpenMoko SDK or external toolchain" +LICENSE = "MIT" +ALLOW_EMPTY = "1" + +PR = "r0" + +PACKAGES = "${PN}" + +RDEPENDS_${PN} += "\ + openmoko-sample2-src \ +" diff --git a/packages/tasks/task-toolchain-openmoko-sdk.bb b/packages/tasks/task-openmoko-toolchain-target.bb index bcb2d370a6..281884d051 100644 --- a/packages/tasks/task-toolchain-openmoko-sdk.bb +++ b/packages/tasks/task-openmoko-toolchain-target.bb @@ -26,6 +26,5 @@ RDEPENDS_${PN} = "\ libmokoui2-dev \ libmokopanelui2-dev \ libmokojournal2-dev \ - openmoko-sample2-src \ openmoko-toolchain-scripts \ " diff --git a/packages/tasks/task-openprotium.bb b/packages/tasks/task-openprotium.bb new file mode 100644 index 0000000000..4c5d762f8f --- /dev/null +++ b/packages/tasks/task-openprotium.bb @@ -0,0 +1,52 @@ +DESCRIPTION = "Basic image for openprotium" +HOMEPAGE = "http://www.openprotium.org" +PACKAGE_ARCH = "${MACHINE_ARCH}" +ALLOW_EMPTY = "1" +PR = "r1" + +inherit task + +# be sure to build the kernel: +DEPENDS = "virtual/kernel" + +# always make this one for testing. +DISTRO_KERNEL_MODULES = "kernel-module-dummy" +# do we still need this? +DISTRO_KERNEL_MODULES += "kernel-module-af-packet" +# unused for now +#DISTRO_KERNEL_MODULES += "kernel-module-netconsole" + +# these are listed separately because the are not needed +# for boot, but are needed by reflash, etc. +DISTRO_EXTRA_RDEPENDS += "diffutils cpio findutils" + +# pick up the fw_set/get env utils. +DISTRO_EXTRA_RDEPENDS += "u-boot-utils" + +RDEPENDS = " kernel \ + base-files \ + base-passwd \ + netbase \ + busybox \ + openprotium-init \ + initscripts-openprotium \ + update-modules \ + module-init-tools \ + modutils-initscripts \ + ipkg-collateral ipkg ipkg-link \ + portmap \ + e2fsprogs-blkid \ + mdadm \ + hdparm \ + mtd-utils \ + ${DISTRO_SSH_DAEMON} \ + ${DISTRO_DEV_MANAGER} \ + ${DISTRO_INIT_MANAGER} \ + ${DISTRO_LOGIN_MANAGER} \ + ${DISTRO_KERNEL_MODULES} \ + ${MACHINE_EXTRA_RDEPENDS} \ + ${DISTRO_EXTRA_RDEPENDS} " + +RRECOMMENDS += " \ + ${DISTRO_EXTRA_RRECOMMENDS} \ + ${MACHINE_EXTRA_RRECOMMENDS}" diff --git a/packages/tasks/task-python-everything.bb b/packages/tasks/task-python-everything.bb index ab33153057..61daa7e089 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 = "ml23" +PR = "ml24" RDEPENDS = "\ python-ao \ @@ -11,6 +11,7 @@ RDEPENDS = "\ python-dialog \ python-pydirectfb \ python-efl \ + python-efl-examples \ python-pycurl \ python-fam \ python-fnorb \ diff --git a/packages/tea/tea_17.3.5.bb b/packages/tea/tea_17.3.5.bb index 7adf2a5136..c8dac8c94f 100644 --- a/packages/tea/tea_17.3.5.bb +++ b/packages/tea/tea_17.3.5.bb @@ -1,7 +1,8 @@ -DESCRIPTION = "Tea - a GTK based text editor tith highlighting and a lot of processing features" +DESCRIPTION = "Tea - a GTK based text editor with highlighting and a lot of processing features" SECTION = "gpe" LICENSE = "GPL" DEPENDS = "gtk+ gtksourceview" +PR = "r1" inherit autotools diff --git a/packages/ttf-fonts/ttf.inc b/packages/ttf-fonts/ttf.inc index 3f0eca3d5d..e0d1dd6a54 100644 --- a/packages/ttf-fonts/ttf.inc +++ b/packages/ttf-fonts/ttf.inc @@ -1,4 +1,4 @@ -SECTION = "x11/fonts" +SECTION = "fonts" PRIORITY = "optional" PACKAGE_ARCH = "all" #DEPENDS = "fontconfig opie-ttf-support" diff --git a/packages/u-boot/files/fix-data-abort-from-sd-ombug799.patch b/packages/u-boot/files/fix-data-abort-from-sd-ombug799.patch new file mode 100644 index 0000000000..98b84430ad --- /dev/null +++ b/packages/u-boot/files/fix-data-abort-from-sd-ombug799.patch @@ -0,0 +1,11 @@ +--- git.orig/fs/ext2/ext2fs.c 2007-12-13 23:16:13.000000000 -0800 ++++ git/fs/ext2/ext2fs.c 2007-12-13 23:16:41.000000000 -0800 +@@ -472,7 +472,7 @@ + return (0); + } + if (dirent.namelen != 0) { +- char filename[dirent.namelen + 1]; ++ char filename[256]; + ext2fs_node_t fdiro; + int type = FILETYPE_UNKNOWN; + diff --git a/packages/u-boot/u-boot-openmoko_1.2.0+gitf34024d4a328e6edd906456da98d2c537155c4f7+svn2943.bb b/packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb index 1cee1edf37..8c7ff5b94a 100644 --- a/packages/u-boot/u-boot-openmoko_1.2.0+gitf34024d4a328e6edd906456da98d2c537155c4f7+svn2943.bb +++ b/packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb @@ -1,5 +1,5 @@ DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) support" -AUTHOR = "Harald Welte <laforge@openmoko.org>" +AUTHOR = "Harald Welte <laforge@openmoko.org>, OpenMoko <openmoko-kernel@lists.openmoko.org>" LICENSE = "GPL" SECTION = "bootloader" PRIORITY = "optional" @@ -8,8 +8,9 @@ UBOOT_UPSTREAM_REV = "f34024d4a328e6edd906456da98d2c537155c4f7" UBOOT_OPENMOKO_REV = "2943" UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4" -PV = "1.2.0+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_REV}" -PR = "r1" +LOCALVERSION = "+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_REV}" +PV = "1.2.0${LOCALVERSION}" +PR = "r2" PROVIDES = "virtual/bootloader" S = "${WORKDIR}/git" @@ -32,8 +33,7 @@ do_quilt() { do_svnrev() { mv -f tools/setlocalversion tools/setlocalversion.old - echo -n "echo " >>tools/setlocalversion - echo ${PV} >>tools/setlocalversion + echo "echo ${LOCALVERSION}" >>tools/setlocalversion } do_configure_prepend() { diff --git a/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb b/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb new file mode 100644 index 0000000000..7a9800f94a --- /dev/null +++ b/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb @@ -0,0 +1,85 @@ +DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) and Neo FreeRunner (GTA02) support" +AUTHOR = "Harald Welte <laforge@openmoko.org>, OpenMoko <openmoko-kernel@lists.openmoko.org>" +LICENSE = "GPL" +SECTION = "bootloader" +PRIORITY = "optional" + +UBOOT_UPSTREAM_REV = "0ec595243dc99edcd248bbcfbfd5a1dc860bde89" +UBOOT_OPENMOKO_REV = "3817" +UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v3 gta02v4" +LOCALVERSION = "+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_REV}" +PV = "1.3.1${LOCALVERSION}" +PR = "r1" + +PROVIDES = "virtual/bootloader" +S = "${WORKDIR}/git" + +SRC_URI = "\ + git://www.denx.de/git/u-boot.git;protocol=git;tag=${UBOOT_UPSTREAM_REV} \ + svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;rev=${UBOOT_OPENMOKO_REV};proto=http \ + file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \ + file://makefile-no-dirafter.patch;patch=1 \ + file://fix-data-abort-from-sd-ombug799.patch;patch=1 \ +" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" +TARGET_LDFLAGS = "" + +do_quilt() { + mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av + rm -Rf patches .pc +} + +do_svnrev() { + mv -f tools/setlocalversion tools/setlocalversion.old + echo "echo ${LOCALVERSION}" >>tools/setlocalversion +} + +do_configure_prepend() { + find . -name "*.mk" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; + find . -name "Makefile" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; + cat ${WORKDIR}/uboot-eabi-fix-HACK.patch |patch -p1 +} + +do_compile () { + chmod +x board/neo1973/gta*/split_by_variant.sh + for mach in ${UBOOT_MACHINES} + do + oe_runmake ${mach}_config + oe_runmake clean + find board -name lowlevel_foo.bin -exec rm '{}' \; + oe_runmake all + oe_runmake u-boot.udfu + if [ -f u-boot.udfu ]; then + mv u-boot.udfu u-boot_${mach}.bin + else + mv u-boot.bin u-boot_${mach}.bin + fi + if [ -f board/${mach}/lowlevel_foo.bin ]; then + mv board/${mach}/lowlevel_foo.bin \ + lowlevel_foo_${mach}.bin + else + find board -name lowlevel_foo.bin \ + -exec mv '{}' lowlevel_foo_${mach}.bin \; + fi + done +} + +do_deploy () { + install -d ${DEPLOY_DIR_IMAGE} + for mach in ${UBOOT_MACHINES} + do + install -m 0644 ${S}/u-boot_${mach}.bin ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin + ln -sf ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/uboot-${mach}-latest.bin + if [ -f ${S}/lowlevel_foo_${mach}.bin ]; then + install -m 0644 ${S}/lowlevel_foo_${mach}.bin ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin + ln -sf ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/lowlevel-foo-${mach}-latest.bin + fi + done + install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage +} + +do_deploy[dirs] = "${S}" +addtask deploy before do_package after do_install +addtask quilt before do_patch after do_unpack +addtask svnrev before do_patch after do_quilt diff --git a/packages/u-boot/u-boot-openmoko_svn.bb b/packages/u-boot/u-boot-openmoko_svn.bb index 61e4516e1f..3ec97f2a77 100644 --- a/packages/u-boot/u-boot-openmoko_svn.bb +++ b/packages/u-boot/u-boot-openmoko_svn.bb @@ -1,4 +1,4 @@ -DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) support" +DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) and Neo FreeRunner (GTA02) support" AUTHOR = "Harald Welte <laforge@openmoko.org>" LICENSE = "GPL" SECTION = "bootloader" @@ -6,21 +6,21 @@ PRIORITY = "optional" PROVIDES = "virtual/bootloader" LOCALVERSION = "+git${SRCDATE}+svnr${SRCREV}" PV = "1.3.1${LOCALVERSION}" -PR = "r3" +PR = "r0" SRCREV_FORMAT = "patches" -UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 smdk2440 hxd8 qt2410 gta02v1 gta02v2 gta02v3 gta02v4" +UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v1 gta02v2 gta02v3 gta02v4" DEFAULT_PREFERENCE = "-1" SRC_URI = "\ - git://www.denx.de/git/u-boot.git/;protocol=git;name=upstream \ + git://www.denx.de/git/u-boot.git/;protocol=git;name=upstream;tag=3afac79ec27b91df185f090b31dad9620779f440 \ svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http;name=patches \ file://uboot-eabi-fix-HACK.patch;patch=1;maxrev=3773 \ file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \ file://makefile-no-dirafter.patch;patch=1 \ - file://boot-menu-gfx-fix-openmoko-bug-1140.patch;patch=1 \ + file://boot-menu-gfx-fix-openmoko-bug-1140.patch;patch=1;maxrev=3775 \ " S = "${WORKDIR}/git" @@ -37,12 +37,6 @@ do_svnrev() { echo "echo ${LOCALVERSION}" >>tools/setlocalversion } -do_configure_prepend() { - find . -name "*.mk" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; - find . -name "Makefile" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; - cat ${WORKDIR}/uboot-eabi-fix-HACK.patch |patch -p1 -} - do_compile () { chmod +x board/neo1973/gta*/split_by_variant.sh for mach in ${UBOOT_MACHINES} diff --git a/packages/uicmoc/files/.mtn2git_empty b/packages/uicmoc/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uicmoc/files/.mtn2git_empty diff --git a/packages/uicmoc/files/configure-fix.patch b/packages/uicmoc/files/configure-fix.patch new file mode 100644 index 0000000000..df195494ee --- /dev/null +++ b/packages/uicmoc/files/configure-fix.patch @@ -0,0 +1,13 @@ +Index: qtopia-core-opensource-src-4.3.3/configure +=================================================================== +--- qtopia-core-opensource-src-4.3.3.orig/configure 2008-01-14 08:53:51.000000000 +0000 ++++ qtopia-core-opensource-src-4.3.3/configure 2008-01-14 08:54:07.000000000 +0000 +@@ -447,7 +447,7 @@ + # initalize variables + #------------------------------------------------------------------------------- + +-SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS" ++SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS LFLAGS" + for varname in $SYSTEM_VARIABLES; do + cmd=`echo \ + 'if [ -n "\$'${varname}'" ]; then diff --git a/packages/uicmoc/uicmoc4-native.inc b/packages/uicmoc/uicmoc4-native.inc index 298c103fb1..5313b90ee9 100644 --- a/packages/uicmoc/uicmoc4-native.inc +++ b/packages/uicmoc/uicmoc4-native.inc @@ -6,7 +6,8 @@ PRIORITY = "optional" LICENSE = "GPL" PR = "r0" -SRC_URI = "ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-${PV}.tar.gz" +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-${PV}.tar.gz \ + file://configure-fix.patch;patch=1" S = "${WORKDIR}/qtopia-core-opensource-src-${PV}" inherit native @@ -26,6 +27,8 @@ EXTRA_OECONF = "-prefix ${STAGING_DIR_NATIVE}/qt4 \ # yank default -e EXTRA_OEMAKE = " " +export LFLAGS="${LDFLAGS}" + do_configure() { sed -i 's:^QT += xml qt3support$:QT += xml qt3support network:' "${S}"/src/tools/uic3/uic3.pro echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" diff --git a/packages/vsftpd/vsftpd-charconv-2.0.5/.mtn2git_empty b/packages/vsftpd/vsftpd-charconv-2.0.5/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/vsftpd/vsftpd-charconv-2.0.5/.mtn2git_empty diff --git a/packages/vsftpd/vsftpd-charconv-2.0.5/vsftpd-charconv.patch b/packages/vsftpd/vsftpd-charconv-2.0.5/vsftpd-charconv.patch new file mode 100644 index 0000000000..affdd32075 --- /dev/null +++ b/packages/vsftpd/vsftpd-charconv-2.0.5/vsftpd-charconv.patch @@ -0,0 +1,4365 @@ +This patch is extracted and cleaned up version of filename character +set conversion patches for vsftpd by Dmitriy Balashov, +http://vsftpd.devnet.ru/eng/ . It provides dirty-pragmatics approach +towards serving Windows codepages encoded filenames to Windows clients +out of normal utf-8 filesystem. + +These patches will never be accepted upstream, they should never be merged +to main vsftpd package, and they for sure void "vs" in "vsftpd". So again, +they are for users to prefer stone-dead pragmatics. Use at you own risk. + +- Paul Sokolovsky, pmiscml@gmail.com + +diff -urN vsftpd-2.0.5.org/charconv.c vsftpd-2.0.5/charconv.c +--- vsftpd-2.0.5.org/charconv.c 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/charconv.c 2008-01-13 20:39:49.000000000 +0200 +@@ -0,0 +1,462 @@ ++/* ++ * Part of Very Secure FTPd ++ * Licence: GPL v2 ++ * Author: Dmitriy Balashov ++ * charconv.c ++ */ ++ ++#include "charconv.h" ++#include "tunables.h" ++#include "session.h" ++#include "str.h" ++#include "sysutil.h" ++ ++#include "char_maps/utf8.map" ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++#include "char_maps/cyrillic.map" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++#include "char_maps/western.map" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++#include "char_maps/central.map" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++#include "char_maps/soutern.map" ++#endif ++ ++/* Tables mapping supported codepage names to runtime variables */ ++static struct available_charsets ++{ ++ const char* p_charset_name; ++ int p_variable; ++} ++available_charsets_array[] = ++{ ++ { VSFTP_CP_NONE , VSFTP_C_NONE }, ++ // Cyrillic ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++ { VSFTP_CP_UTF_8 , VSFTP_C_UTF8 }, ++ { VSFTP_CP_UTF8 , VSFTP_C_UTF8 }, ++ { VSFTP_CP_WIN_1251 , VSFTP_C_1251 }, ++ { VSFTP_CP_WIN1251 , VSFTP_C_1251 }, ++ { VSFTP_CP_CP1251 , VSFTP_C_1251 }, ++ { VSFTP_CP_1251 , VSFTP_C_1251 }, ++ { VSFTP_CP_KOI8_R , VSFTP_C_878R }, ++ { VSFTP_CP_KOI8R , VSFTP_C_878R }, ++ { VSFTP_CP_CP878 , VSFTP_C_878R }, ++ { VSFTP_CP_878 , VSFTP_C_878R }, ++ { VSFTP_CP_CP878R , VSFTP_C_878R }, ++ { VSFTP_CP_878R , VSFTP_C_878R }, ++ { VSFTP_CP_KOI8_U , VSFTP_C_878U }, ++ { VSFTP_CP_KOI8U , VSFTP_C_878U }, ++ { VSFTP_CP_CP878U , VSFTP_C_878U }, ++ { VSFTP_CP_878U , VSFTP_C_878U }, ++ { VSFTP_CP_IBM866 , VSFTP_C_866 }, ++ { VSFTP_CP_CP866 , VSFTP_C_866 }, ++ { VSFTP_CP_866 , VSFTP_C_866 }, ++ { VSFTP_CP_ISO8859_5 , VSFTP_C_ISO5 }, ++ { VSFTP_CP_ISO5 , VSFTP_C_ISO5 }, ++#endif ++ // Western European ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++ { VSFTP_CP_ISO8859_1 , VSFTP_C_ISO1 }, ++ { VSFTP_CP_ISO1 , VSFTP_C_ISO1 }, ++ { VSFTP_CP_LATIN1 , VSFTP_C_ISO1 }, ++ { VSFTP_CP_ISO8859_15, VSFTP_C_ISO15 }, ++ { VSFTP_CP_ISO15 , VSFTP_C_ISO15 }, ++ { VSFTP_CP_LATIN9 , VSFTP_C_ISO15 }, ++ { VSFTP_CP_WIN_1252 , VSFTP_C_1252 }, ++ { VSFTP_CP_WIN1252 , VSFTP_C_1252 }, ++ { VSFTP_CP_CP1252 , VSFTP_C_1252 }, ++ { VSFTP_CP_1252 , VSFTP_C_1252 }, ++#endif ++ // Central European ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++ { VSFTP_CP_ISO8859_2 , VSFTP_C_ISO2 }, ++ { VSFTP_CP_ISO2 , VSFTP_C_ISO2 }, ++ { VSFTP_CP_LATIN2 , VSFTP_C_ISO2 }, ++ { VSFTP_CP_ISO8859_16, VSFTP_C_ISO16 }, ++ { VSFTP_CP_ISO16 , VSFTP_C_ISO16 }, ++ { VSFTP_CP_WIN_1250 , VSFTP_C_1250 }, ++ { VSFTP_CP_WIN1250 , VSFTP_C_1250 }, ++ { VSFTP_CP_CP1250 , VSFTP_C_1250 }, ++ { VSFTP_CP_1250 , VSFTP_C_1250 }, ++#endif ++ // Soutern European ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++ { VSFTP_CP_ISO8859_3 , VSFTP_C_ISO3 }, ++ { VSFTP_CP_ISO3 , VSFTP_C_ISO3 }, ++ { VSFTP_CP_LATIN3 , VSFTP_C_ISO3 }, ++#endif ++ { 0, 0 } ++}; ++ ++/* Available convertions */ ++static struct available_convertions ++{ ++ int local; ++ int remote; ++ int localCharset; ++ int remoteCharset; ++} ++available_convertions_array[] = ++{ // Cyrillic ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++ { VSFTP_C_UTF8 , VSFTP_C_1251 , VSFTP_CS_UTF8CYR , VSFTP_CS_1251 }, ++ { VSFTP_C_UTF8 , VSFTP_C_878R , VSFTP_CS_UTF8CYR , VSFTP_CS_878R }, ++ { VSFTP_C_UTF8 , VSFTP_C_878U , VSFTP_CS_UTF8CYR , VSFTP_CS_878U }, ++ { VSFTP_C_UTF8 , VSFTP_C_866 , VSFTP_CS_UTF8CYR , VSFTP_CS_866 }, ++ { VSFTP_C_UTF8 , VSFTP_C_ISO5 , VSFTP_CS_UTF8CYR , VSFTP_CS_ISO5 }, ++ { VSFTP_C_1251 , VSFTP_C_UTF8 , VSFTP_CS_1251 , VSFTP_CS_UTF8CYR }, ++ { VSFTP_C_1251 , VSFTP_C_878R , VSFTP_CS_1251 , VSFTP_CS_878R }, ++ { VSFTP_C_1251 , VSFTP_C_878U , VSFTP_CS_1251 , VSFTP_CS_878U }, ++ { VSFTP_C_1251 , VSFTP_C_866 , VSFTP_CS_1251 , VSFTP_CS_866 }, ++ { VSFTP_C_1251 , VSFTP_C_ISO5 , VSFTP_CS_1251 , VSFTP_CS_ISO5 }, ++ { VSFTP_C_878R , VSFTP_C_UTF8 , VSFTP_CS_878R , VSFTP_CS_UTF8CYR }, ++ { VSFTP_C_878R , VSFTP_C_1251 , VSFTP_CS_878R , VSFTP_CS_1251 }, ++ { VSFTP_C_878R , VSFTP_C_878U , VSFTP_CS_878R , VSFTP_CS_878U }, ++ { VSFTP_C_878R , VSFTP_C_866 , VSFTP_CS_878R , VSFTP_CS_866 }, ++ { VSFTP_C_878R , VSFTP_C_ISO5 , VSFTP_CS_878R , VSFTP_CS_ISO5 }, ++ { VSFTP_C_866 , VSFTP_C_UTF8 , VSFTP_CS_866 , VSFTP_CS_UTF8CYR }, ++ { VSFTP_C_866 , VSFTP_C_1251 , VSFTP_CS_866 , VSFTP_CS_1251 }, ++ { VSFTP_C_866 , VSFTP_C_878R , VSFTP_CS_866 , VSFTP_CS_878R }, ++ { VSFTP_C_866 , VSFTP_C_878U , VSFTP_CS_866 , VSFTP_CS_878U }, ++ { VSFTP_C_866 , VSFTP_C_ISO5 , VSFTP_CS_866 , VSFTP_CS_ISO5 }, ++ { VSFTP_C_ISO5 , VSFTP_C_UTF8 , VSFTP_CS_ISO5 , VSFTP_CS_UTF8CYR }, ++ { VSFTP_C_ISO5 , VSFTP_C_1251 , VSFTP_CS_ISO5 , VSFTP_CS_1251 }, ++ { VSFTP_C_ISO5 , VSFTP_C_878R , VSFTP_CS_ISO5 , VSFTP_CS_878R }, ++ { VSFTP_C_ISO5 , VSFTP_C_878U , VSFTP_CS_ISO5 , VSFTP_CS_878U }, ++ { VSFTP_C_ISO5 , VSFTP_C_866 , VSFTP_CS_ISO5 , VSFTP_CS_866 }, ++#endif ++ // Western European ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++ { VSFTP_C_UTF8 , VSFTP_C_ISO1 , VSFTP_CS_UTF8WEST , VSFTP_CS_ISO1 }, ++ { VSFTP_C_UTF8 , VSFTP_C_ISO15 , VSFTP_CS_UTF8WEST , VSFTP_CS_ISO15 }, ++ { VSFTP_C_UTF8 , VSFTP_C_1252 , VSFTP_CS_UTF8WEST , VSFTP_CS_1252 }, ++ { VSFTP_C_ISO1 , VSFTP_C_UTF8 , VSFTP_CS_ISO1 , VSFTP_CS_UTF8WEST }, ++ { VSFTP_C_ISO1 , VSFTP_C_ISO15 , VSFTP_CS_ISO1 , VSFTP_CS_ISO15 }, ++ { VSFTP_C_ISO1 , VSFTP_C_1252 , VSFTP_CS_ISO1 , VSFTP_CS_1252 }, ++ { VSFTP_C_ISO15 , VSFTP_C_UTF8 , VSFTP_CS_ISO15 , VSFTP_CS_UTF8WEST }, ++ { VSFTP_C_ISO15 , VSFTP_C_ISO1 , VSFTP_CS_ISO15 , VSFTP_CS_ISO1 }, ++ { VSFTP_C_ISO15 , VSFTP_C_1252 , VSFTP_CS_ISO15 , VSFTP_CS_1252 }, ++ { VSFTP_C_1252 , VSFTP_C_UTF8 , VSFTP_CS_1252 , VSFTP_CS_UTF8WEST }, ++ { VSFTP_C_1252 , VSFTP_C_ISO1 , VSFTP_CS_1252 , VSFTP_CS_ISO1 }, ++ { VSFTP_C_1252 , VSFTP_C_ISO15 , VSFTP_CS_1252 , VSFTP_CS_ISO15 }, ++#endif ++ // Central European ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++ { VSFTP_C_UTF8 , VSFTP_C_ISO2 , VSFTP_CS_UTF8CENT , VSFTP_CS_ISO2 }, ++ { VSFTP_C_UTF8 , VSFTP_C_ISO16 , VSFTP_CS_UTF8CENT , VSFTP_CS_ISO16 }, ++ { VSFTP_C_UTF8 , VSFTP_C_1250 , VSFTP_CS_UTF8CENT , VSFTP_CS_1250 }, ++ { VSFTP_C_ISO2 , VSFTP_C_UTF8 , VSFTP_CS_ISO2 , VSFTP_CS_UTF8CENT }, ++ { VSFTP_C_ISO2 , VSFTP_C_ISO16 , VSFTP_CS_ISO2 , VSFTP_CS_ISO16 }, ++ { VSFTP_C_ISO2 , VSFTP_C_1250 , VSFTP_CS_ISO2 , VSFTP_CS_1250 }, ++ { VSFTP_C_ISO16 , VSFTP_C_UTF8 , VSFTP_CS_ISO16 , VSFTP_CS_UTF8CENT }, ++ { VSFTP_C_ISO16 , VSFTP_C_ISO2 , VSFTP_CS_ISO16 , VSFTP_CS_ISO2 }, ++ { VSFTP_C_ISO16 , VSFTP_C_1250 , VSFTP_CS_ISO16 , VSFTP_CS_1250 }, ++ { VSFTP_C_1250 , VSFTP_C_UTF8 , VSFTP_CS_1250 , VSFTP_CS_UTF8CENT }, ++ { VSFTP_C_1250 , VSFTP_C_ISO2 , VSFTP_CS_1250 , VSFTP_CS_ISO2 }, ++ { VSFTP_C_1250 , VSFTP_C_ISO16 , VSFTP_CS_1250 , VSFTP_CS_ISO16 }, ++#endif ++ // Soutern European ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++ { VSFTP_C_UTF8 , VSFTP_C_ISO3 , VSFTP_CS_UTF8SOUT , VSFTP_CS_ISO3 }, ++ { VSFTP_C_ISO3 , VSFTP_C_UTF8 , VSFTP_CS_ISO3 , VSFTP_CS_UTF8SOUT }, ++#endif ++ ++ { 0, 0, 0, 0 } ++}; ++ ++map_ptr map_array[] = ++{ ++ 0, ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++ codepage_utf8cyr_array, codepage_win1251_array, codepage_koi8r_array, ++ codepage_ibm866_array, codepage_iso5_array, codepage_koi8u_array, ++#else ++ 0, 0, 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++ codepage_utf8west_array, codepage_iso1_array, codepage_iso15_array, ++ codepage_win1252_array, ++#else ++ 0, 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++ codepage_utf8cent_array, codepage_iso2_array, codepage_iso16_array, ++ codepage_win1250_array, ++#else ++ 0, 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++ codepage_utf8sout_array, codepage_iso3_array, ++#else ++ 0, 0, ++#endif ++ ++ 0 ++}; ++ ++/* Initial table for work with unprintable chars */ ++map_ptr init_array[] = ++{ ++ 0, ++ codepage_utf8_array, ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++ codepage_win1251_array, codepage_koi8r_array, codepage_ibm866_array, ++ codepage_iso5_array, codepage_koi8u_array, ++#else ++ 0, 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++ codepage_iso1_array, codepage_iso15_array, codepage_win1252_array, ++#else ++ 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++ codepage_iso2_array, codepage_iso16_array, codepage_win1250_array, ++#else ++ 0, 0, 0, ++#endif ++ ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++ codepage_iso3_array, ++#else ++ 0, ++#endif ++ ++ 0 ++}; ++ ++map_ptr localMap = 0, remoteMap = 0; ++map_ptr localTbl = 0, remoteTbl = 0; ++ ++void char_convertion(struct mystr* p_str, int direction, char unprintable); ++void InitTables(map_ptr* map, map_ptr* table, int indexx); ++static int char_len(unsigned int s); ++static unsigned int bsearch_index(map_ptr map, unsigned int low, unsigned int high, unsigned int char_code); ++ ++const char* vsf_charconv_charset_name(int code) ++{ ++ int i = 0; ++ while (available_charsets_array [i].p_charset_name && available_charsets_array [i].p_variable != code) i++; ++ return available_charsets_array [i].p_charset_name; ++} ++ ++int vsf_charconv_codepage(const char* p_str) ++{ ++ const struct available_charsets* charsets = available_charsets_array; ++ ++ while (charsets->p_charset_name != 0) ++ { ++ if (!vsf_sysutil_strcmp(charsets->p_charset_name, p_str)) ++ { ++ return charsets->p_variable; ++ } ++ charsets++; ++ } ++ ++ return 0; ++} ++ ++int vsf_charconv_avail_convertion(int localCode, int remoteCode) ++{ ++ const struct available_convertions* aconv = available_convertions_array; ++ ++ while (aconv->local != 0) ++ { ++ if (localCode == aconv->local && remoteCode == aconv->remote) ++ { ++ InitTables(&localMap, &localTbl, aconv->localCharset); ++ InitTables(&remoteMap, &remoteTbl, aconv->remoteCharset); ++ return 1; ++ } ++ aconv++; ++ } ++ ++ return 0; ++} ++ ++void vsf_charconv_init_local_codepage(int localCode) ++{ ++ if (!localCode) ++ { ++ return; ++ } ++ ++ localTbl = init_array [localCode]; ++ localMap = vsf_sysutil_malloc((localTbl [0].order + 1) * sizeof(_codepage_map)); ++ localMap [0].char_code = localTbl [0].char_code; ++ localMap [0].order = localTbl [0].order; ++ ++ int indexx = 1; ++ while (localTbl [indexx].char_code) ++ { ++ if (localTbl [indexx].order) ++ { ++ localMap [localTbl [indexx].order].char_code = localTbl [indexx].char_code; ++ localMap [localTbl [indexx].order].order = indexx; ++ } ++ indexx++; ++ } ++ ++ return; ++} ++ ++void vsf_charconv_convert(struct vsf_session* p_sess, struct mystr* p_str, int direction) ++{ ++ if (!p_sess->enable_conversion || !p_sess->remote_charset || !tunable_local_codepage) return; ++ ++ char_convertion(p_str, direction, '?'); ++} ++ ++void vsf_charconv_replace_unprintable(struct mystr* p_str, char new_char) ++{ ++ if (localMap) char_convertion(p_str, VSFTP_CONVDIRECT_UNPRINTABLE, new_char); ++} ++ ++void InitTables(map_ptr* map, map_ptr* table, int indexx) ++{ ++ *table = map_array [indexx]; ++ ++ if (*map) vsf_sysutil_free(*map); ++ ++ *map = vsf_sysutil_malloc(((*table) [0].order + 1) * sizeof(_codepage_map)); ++ (*map) [0].char_code = (*table) [0].char_code; ++ (*map) [0].order = (*table) [0].order; ++ ++ indexx = 1; ++ while ((*table) [indexx].char_code) ++ { ++ if ((*table) [indexx].order) ++ { ++ (*map) [(*table) [indexx].order].char_code = (*table) [indexx].char_code; ++ (*map) [(*table) [indexx].order].order = indexx; ++ } ++ indexx++; ++ } ++ ++ return; ++} ++ ++static int char_len(unsigned int s) ++{ ++ int len = 1; ++ if ((s & 0x80) == 0x00) len = 1; ++ else if ((s & 0xe0) == 0xc0) len = 2; ++ else if ((s & 0xf0) == 0xe0) len = 3; ++ else if ((s & 0xf8) == 0xf0) len = 4; ++// else if ((s & 0xfc) == 0xf8) len = 5; ++// else if ((s & 0xfe) == 0xce) len = 6; ++ return (len); ++} ++ ++static unsigned int bsearch_index(map_ptr map, unsigned int low, unsigned int high, unsigned int char_code) ++{ ++ unsigned int m, l = low, r = high; ++ ++ m = (l + r) >> 1; ++ while ((m != 0) && (map [m].char_code != char_code)) ++ { ++ if (map [m].char_code < char_code) l = m + 1; ++ else ++ if (map [m].char_code > char_code) r = m - 1; ++ if (l > r) ++ return 0; ++ else ++ m = (l + r) >> 1; ++ } ++ ++ if (m) m = map [m].order; ++ return m; ++} ++ ++void char_convertion(struct mystr* p_str, int direction, char unprintable) ++{ ++ const char* srcbuf; ++ unsigned int srclen; ++ char* dstbuf; ++ map_ptr src, dst; ++ unsigned int sl; ++ unsigned int srcpos = 0, dstpos = 0; ++ unsigned int char_code = 0; ++ ++ srclen = str_getlen(p_str); // Len of source string ++ srcbuf = str_getbuf(p_str); ++ ++ if (direction == VSFTP_CONVDIRECT_FORWARD) ++ { ++ src = localMap; ++ dst = remoteTbl; ++ } ++ else ++ if (direction == VSFTP_CONVDIRECT_BACKWARD) ++ { ++ src = remoteMap; ++ dst = localTbl; ++ } ++ else ++ { ++ src = localMap; ++ dst = localTbl; ++ } ++ ++ if (!src || !dst) ++ { ++ return; ++ } ++ ++ dstbuf = vsf_sysutil_malloc(srclen * dst [0].char_code + dst [0].char_code); ++ ++ while (srcpos < srclen) ++ { ++ char_code = (unsigned char)srcbuf [srcpos++]; ++ if (src [0].char_code > 1) ++ { ++ sl = char_len (char_code); ++ while (sl-- > 1) ++ { ++ char_code = (char_code << 8) | (unsigned char)srcbuf [srcpos++]; ++ } ++ } ++ ++ if (char_code > 127) ++ { ++ sl = bsearch_index (src, 1, src [0].order, char_code); ++ char_code = 0; ++ if (sl) char_code = dst [sl].char_code; ++ } ++ ++ if (char_code == 13 || char_code == 10) ++ { ++ char_code = 0; ++ } ++ else ++ if (char_code < 32 && char_code != 9) ++ { ++ char_code = (unsigned int)unprintable; ++ } ++ ++ if (char_code > 0 || direction != VSFTP_CONVDIRECT_UNPRINTABLE) ++ { ++ if (char_code & 0xff000000) dstbuf [dstpos++] = (char)((char_code >> 24) & 0xff); ++ if (char_code & 0x00ff0000) dstbuf [dstpos++] = (char)((char_code >> 16) & 0xff); ++ if (char_code & 0x0000ff00) dstbuf [dstpos++] = (char)((char_code >> 8) & 0xff); ++ if (char_code & 0x000000ff) dstbuf [dstpos++] = (char)((char_code ) & 0xff); ++ } ++ } ++ ++ dstbuf [dstpos] = '\0'; ++ ++ str_empty(p_str); ++ str_append_text(p_str, dstbuf); ++ ++ vsf_sysutil_free(dstbuf); ++} ++ +diff -urN vsftpd-2.0.5.org/charconv.h vsftpd-2.0.5/charconv.h +--- vsftpd-2.0.5.org/charconv.h 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/charconv.h 2008-01-13 19:32:11.000000000 +0200 +@@ -0,0 +1,182 @@ ++#ifndef VSF_CHARCONV_H ++#define VSF_CHARCONV_H ++ ++struct mystr; ++struct vsf_session; ++ ++#define VSFTP_CHARCONV_SUPPORT_CYRILLIC ++#define VSFTP_CHARCONV_SUPPORT_WESTERN ++#define VSFTP_CHARCONV_SUPPORT_CENTRAL ++#define VSFTP_CHARCONV_SUPPORT_SOUTERN ++ ++#define VSFTP_CONVDIRECT_FORWARD 1 ++#define VSFTP_CONVDIRECT_UNPRINTABLE 0 ++#define VSFTP_CONVDIRECT_BACKWARD -1 ++ ++/* Supported charset for convertion */ ++#define VSFTP_CP_NONE "NONE" ++#define VSFTP_CP_UTF_8 "UTF-8" ++#define VSFTP_CP_UTF8 "UTF8" ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++#define VSFTP_CP_WIN_1251 "Win-1251" ++#define VSFTP_CP_WIN1251 "WIN1251" ++#define VSFTP_CP_CP1251 "CP1251" ++#define VSFTP_CP_1251 "1251" ++#define VSFTP_CP_KOI8_R "Koi8-R" ++#define VSFTP_CP_KOI8R "KOI8R" ++#define VSFTP_CP_KOI8_U "Koi8-U" ++#define VSFTP_CP_KOI8U "KOI8U" ++#define VSFTP_CP_CP878 "CP878" ++#define VSFTP_CP_878 "878" ++#define VSFTP_CP_CP878R "CP878R" ++#define VSFTP_CP_878R "878R" ++#define VSFTP_CP_CP878U "CP878U" ++#define VSFTP_CP_878U "878U" ++#define VSFTP_CP_IBM866 "IBM866" ++#define VSFTP_CP_CP866 "CP866" ++#define VSFTP_CP_866 "866" ++#define VSFTP_CP_ISO8859_5 "ISO-8859-5" ++#define VSFTP_CP_ISO5 "ISO5" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++#define VSFTP_CP_ISO8859_1 "ISO-8859-1" ++#define VSFTP_CP_ISO1 "ISO1" ++#define VSFTP_CP_LATIN1 "LATIN1" ++#define VSFTP_CP_ISO8859_15 "ISO-8859-15" ++#define VSFTP_CP_ISO15 "ISO15" ++#define VSFTP_CP_LATIN9 "LATIN9" ++#define VSFTP_CP_WIN_1252 "Win-1252" ++#define VSFTP_CP_WIN1252 "WIN1252" ++#define VSFTP_CP_CP1252 "CP1252" ++#define VSFTP_CP_1252 "1252" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++#define VSFTP_CP_ISO8859_2 "ISO-8859-2" ++#define VSFTP_CP_ISO2 "ISO2" ++#define VSFTP_CP_LATIN2 "LATIN2" ++#define VSFTP_CP_ISO8859_16 "ISO-8859-16" ++#define VSFTP_CP_ISO16 "ISO16" ++#define VSFTP_CP_WIN_1250 "Win-1250" ++#define VSFTP_CP_WIN1250 "WIN1250" ++#define VSFTP_CP_CP1250 "CP1250" ++#define VSFTP_CP_1250 "1250" ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++#define VSFTP_CP_ISO8859_3 "ISO-8859-3" ++#define VSFTP_CP_ISO3 "ISO3" ++#define VSFTP_CP_LATIN3 "LATIN3" ++#endif ++ ++#define VSFTP_C_NONE 0 ++#define VSFTP_C_UTF8 1 ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++#define VSFTP_C_1251 2 ++#define VSFTP_C_878R 3 ++#define VSFTP_C_866 4 ++#define VSFTP_C_ISO5 5 ++#define VSFTP_C_878U 6 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++#define VSFTP_C_ISO1 7 ++#define VSFTP_C_ISO15 8 ++#define VSFTP_C_1252 9 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++#define VSFTP_C_ISO2 10 ++#define VSFTP_C_ISO16 11 ++#define VSFTP_C_1250 12 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++#define VSFTP_C_ISO3 13 ++#endif ++ ++#define VSFTP_CS_NONE 0 ++#ifdef VSFTP_CHARCONV_SUPPORT_CYRILLIC ++#define VSFTP_CS_UTF8CYR 1 ++#define VSFTP_CS_1251 2 ++#define VSFTP_CS_878R 3 ++#define VSFTP_CS_866 4 ++#define VSFTP_CS_ISO5 5 ++#define VSFTP_CS_878U 6 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_WESTERN ++#define VSFTP_CS_UTF8WEST 7 ++#define VSFTP_CS_ISO1 8 ++#define VSFTP_CS_ISO15 9 ++#define VSFTP_CS_1252 10 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_CENTRAL ++#define VSFTP_CS_UTF8CENT 11 ++#define VSFTP_CS_ISO2 12 ++#define VSFTP_CS_ISO16 13 ++#define VSFTP_CS_1250 14 ++#endif ++#ifdef VSFTP_CHARCONV_SUPPORT_SOUTERN ++#define VSFTP_CS_UTF8SOUT 15 ++#define VSFTP_CS_ISO3 16 ++#endif ++ ++struct codepage_map ++{ ++ unsigned int char_code; // The first element is count bytes of char. ++ unsigned int order; ++} _codepage_map; ++ ++typedef struct codepage_map * map_ptr; ++ ++extern map_ptr localMap; ++ ++/* vsf_charconv_charset_name() ++ * PURPOSE ++ * Get charset name by code; ++ * PARAMETERS ++ * code - Internal charset code ++ * RETURNS ++ * Charset name ++ */ ++const char* vsf_charconv_charset_name(int code); ++ ++/* vsf_charconv_codepage() ++ * PURPOSE ++ * Get internal charset code ++ * PARAMETERS ++ * p_str - String value with code page ++ * RETURNS ++ * Internal charset code ++ */ ++int vsf_charconv_codepage(const char* p_str); ++ ++/* vsf_charconv_init_local_codepage(int localCode) ++ * PURPOSE ++ * Init local codepage for work with unprintable chars ++ * PARAMETERS ++ * localCode - source internal code page ++ */ ++void vsf_charconv_init_local_codepage(int localCode); ++ ++/* vsf_charconv_avail_convertion() ++ * PURPOS ++ * Checking for available convertion characters ++ * PARAMETERS ++ * localCode - source internal code page ++ * remoteCode - destination internal code page ++ * RETURNS ++ * Available ot not converion ++ */ ++int vsf_charconv_avail_convertion(int localCode, int remoteCode); ++ ++/* vsf_charconv_convert() ++ * PURPOSE ++ * Converting string via charsets ++ * PARAMETERS ++ * p_sess - the current session object ++ * p_str - string for convertin ++ * direction - converting from host to remoute charsetr or otherwise ++ */ ++void vsf_charconv_convert(struct vsf_session* p_sess, struct mystr* p_str, int direction); ++ ++/* vsf_charconv_replace_unprintable ++ */ ++void vsf_charconv_replace_unprintable(struct mystr* p_str, char new_char); ++ ++#endif +diff -urN vsftpd-2.0.5.org/char_maps/central.map vsftpd-2.0.5/char_maps/central.map +--- vsftpd-2.0.5.org/char_maps/central.map 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/char_maps/central.map 2008-01-13 20:09:59.000000000 +0200 +@@ -0,0 +1,738 @@ ++/* ++ !!! WARNING !!! ++ DON'T CHANGE ORDER OF CHARS ++*/ ++ ++struct codepage_map codepage_utf8cent_array[] = ++ { ++ { 0x000003, 178 }, // max size , char count ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00c280, 1 }, ++ { 0x00c281, 2 }, ++ { 0x00c282, 3 }, ++ { 0x00c283, 4 }, ++ { 0x00c284, 5 }, ++ { 0x00c285, 6 }, ++ { 0x00c286, 7 }, ++ { 0x00c287, 8 }, ++ { 0x00c288, 9 }, ++ { 0x00c289, 10 }, ++ { 0x00c28a, 11 }, ++ { 0x00c28b, 12 }, ++ { 0x00c28c, 13 }, ++ { 0x00c28d, 14 }, ++ { 0x00c28e, 15 }, ++ { 0x00c28f, 16 }, ++ { 0x00c290, 17 }, ++ { 0x00c291, 18 }, ++ { 0x00c292, 19 }, ++ { 0x00c293, 20 }, ++ { 0x00c294, 21 }, ++ { 0x00c295, 22 }, ++ { 0x00c296, 23 }, ++ { 0x00c297, 24 }, ++ { 0x00c298, 25 }, ++ { 0x00c299, 26 }, ++ { 0x00c29a, 27 }, ++ { 0x00c29b, 28 }, ++ { 0x00c29c, 29 }, ++ { 0x00c29d, 30 }, ++ { 0x00c29e, 31 }, ++ { 0x00c29f, 32 }, ++ { 0x00c2a0, 33 }, ++ { 0x00c2a4, 34 }, ++ { 0x00c2a6, 35 }, ++ { 0x00c2a7, 36 }, ++ { 0x00c2a8, 37 }, ++ { 0x00c2a9, 38 }, ++ { 0x00c2ab, 39 }, ++ { 0x00c2ad, 40 }, ++ { 0x00c2ad, 41 }, ++ { 0x00c2ae, 42 }, ++ { 0x00c2b0, 43 }, ++ { 0x00c2b1, 44 }, ++ { 0x00c2b4, 45 }, ++ { 0x00c2b5, 46 }, ++ { 0x00c2b6, 47 }, ++ { 0x00c2b7, 48 }, ++ { 0x00c2b8, 49 }, ++ { 0x00c2bb, 50 }, ++ { 0x00c380, 51 }, ++ { 0x00c381, 52 }, ++ { 0x00c382, 53 }, ++ { 0x00c384, 54 }, ++ { 0x00c386, 55 }, ++ { 0x00c387, 56 }, ++ { 0x00c388, 57 }, ++ { 0x00c389, 58 }, ++ { 0x00c38a, 59 }, ++ { 0x00c38b, 60 }, ++ { 0x00c38c, 61 }, ++ { 0x00c38d, 62 }, ++ { 0x00c38e, 63 }, ++ { 0x00c38f, 64 }, ++ { 0x00c392, 65 }, ++ { 0x00c393, 66 }, ++ { 0x00c394, 67 }, ++ { 0x00c396, 68 }, ++ { 0x00c397, 69 }, ++ { 0x00c399, 70 }, ++ { 0x00c39a, 71 }, ++ { 0x00c39b, 72 }, ++ { 0x00c39c, 73 }, ++ { 0x00c39d, 74 }, ++ { 0x00c39f, 75 }, ++ { 0x00c3a0, 76 }, ++ { 0x00c3a1, 77 }, ++ { 0x00c3a2, 78 }, ++ { 0x00c3a4, 79 }, ++ { 0x00c3a6, 80 }, ++ { 0x00c3a7, 81 }, ++ { 0x00c3a8, 82 }, ++ { 0x00c3a9, 83 }, ++ { 0x00c3aa, 84 }, ++ { 0x00c3ab, 85 }, ++ { 0x00c3ac, 86 }, ++ { 0x00c3ad, 87 }, ++ { 0x00c3ae, 88 }, ++ { 0x00c3af, 89 }, ++ { 0x00c3b2, 90 }, ++ { 0x00c3b3, 91 }, ++ { 0x00c3b4, 92 }, ++ { 0x00c3b6, 93 }, ++ { 0x00c3b7, 94 }, ++ { 0x00c3b9, 95 }, ++ { 0x00c3ba, 96 }, ++ { 0x00c3bb, 97 }, ++ { 0x00c3bc, 98 }, ++ { 0x00c3bd, 99 }, ++ { 0x00c3bf, 100 }, ++ { 0x00c482, 101 }, ++ { 0x00c483, 102 }, ++ { 0x00c484, 103 }, ++ { 0x00c485, 104 }, ++ { 0x00c486, 105 }, ++ { 0x00c487, 106 }, ++ { 0x00c48c, 107 }, ++ { 0x00c48d, 108 }, ++ { 0x00c48e, 109 }, ++ { 0x00c48f, 110 }, ++ { 0x00c490, 111 }, ++ { 0x00c491, 112 }, ++ { 0x00c498, 113 }, ++ { 0x00c499, 114 }, ++ { 0x00c49a, 115 }, ++ { 0x00c49b, 116 }, ++ { 0x00c4b9, 117 }, ++ { 0x00c4ba, 118 }, ++ { 0x00c4bd, 119 }, ++ { 0x00c4be, 120 }, ++ { 0x00c581, 121 }, ++ { 0x00c582, 122 }, ++ { 0x00c583, 123 }, ++ { 0x00c584, 124 }, ++ { 0x00c587, 125 }, ++ { 0x00c588, 126 }, ++ { 0x00c590, 127 }, ++ { 0x00c591, 128 }, ++ { 0x00c592, 129 }, ++ { 0x00c593, 130 }, ++ { 0x00c594, 131 }, ++ { 0x00c595, 132 }, ++ { 0x00c598, 133 }, ++ { 0x00c599, 134 }, ++ { 0x00c59a, 135 }, ++ { 0x00c59b, 136 }, ++ { 0x00c59e, 137 }, ++ { 0x00c59f, 138 }, ++ { 0x00c5a0, 139 }, ++ { 0x00c5a1, 140 }, ++ { 0x00c5a2, 141 }, ++ { 0x00c5a3, 142 }, ++ { 0x00c5a4, 143 }, ++ { 0x00c5a5, 144 }, ++ { 0x00c5ae, 145 }, ++ { 0x00c5af, 146 }, ++ { 0x00c5b0, 147 }, ++ { 0x00c5b1, 148 }, ++ { 0x00c5b8, 149 }, ++ { 0x00c5b9, 150 }, ++ { 0x00c5ba, 151 }, ++ { 0x00c5bb, 152 }, ++ { 0x00c5bc, 153 }, ++ { 0x00c5bd, 154 }, ++ { 0x00c5be, 155 }, ++ { 0x00cb87, 156 }, ++ { 0x00cb98, 157 }, ++ { 0x00cb99, 158 }, ++ { 0x00c89a, 159 }, ++ { 0x00cb9b, 160 }, ++ { 0x00cb9d, 161 }, ++ { 0xe28093, 162 }, ++ { 0xe28094, 163 }, ++ { 0xe28098, 164 }, ++ { 0xe28099, 165 }, ++ { 0xe2809a, 166 }, ++ { 0xe2809c, 167 }, ++ { 0xe2809d, 168 }, ++ { 0xe2809e, 169 }, ++ { 0xe280a0, 170 }, ++ { 0xe280a1, 171 }, ++ { 0xe280a2, 172 }, ++ { 0xe280a6, 173 }, ++ { 0xe280b0, 174 }, ++ { 0xe280b9, 175 }, ++ { 0xe280ba, 176 }, ++ { 0xe282ac, 177 }, ++ { 0xe284a2, 178 }, ++ { 0x000000, 0 } ++ }; ++ ++struct codepage_map codepage_iso2_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b3, 52 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x0000, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_iso16_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a7, 40 }, ++ { 0x003f, 0 }, ++ { 0x00a9, 42 }, ++ { 0x00ab, 44 }, ++ { 0x00ad, 46 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x003f, 0 }, ++ { 0x00bb, 60 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c4, 69 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d6, 87 }, ++ { 0x003f, 0 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x003f, 0 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e4, 101 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f6, 119 }, ++ { 0x003f, 0 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x003f, 0 }, ++ { 0x00ff, 128 }, ++ { 0x00c3, 68 }, ++ { 0x00e3, 100 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00c5, 70 }, ++ { 0x00e5, 102 }, ++ { 0x00b2, 51 }, ++ { 0x00b9, 58 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00d0, 81 }, ++ { 0x00f0, 113 }, ++ { 0x00dd, 94 }, ++ { 0x00fd, 126 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a3, 36 }, ++ { 0x00b3, 52 }, ++ { 0x00d1, 82 }, ++ { 0x00f1, 114 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00d5, 86 }, ++ { 0x00f5, 118 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00d7, 88 }, ++ { 0x00f7, 120 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a6, 39 }, ++ { 0x00a8, 41 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00d8, 89 }, ++ { 0x00f8, 121 }, ++ { 0x00be, 63 }, ++ { 0x00ac, 45 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00bf, 64 }, ++ { 0x00b4, 53 }, ++ { 0x00b8, 57 }, ++ { 0x003f, 0 }, ++ { 0x00aa, 43 }, ++ { 0x00ba, 59 }, ++ { 0x00de, 95 }, ++ { 0x00fe, 127 }, ++ { 0x00b5, 54 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a5, 38 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a4, 37 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_win1250_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x0081, 2 }, ++ { 0x0083, 4 }, ++ { 0x0088, 9 }, ++ { 0x0090, 17 }, ++ { 0x0098, 25 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a0, 33 }, ++ { 0x00a4, 37 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00bb, 60 }, ++ { 0x003f, 0 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c4, 69 }, ++ { 0x003f, 0 }, ++ { 0x00c7, 72 }, ++ { 0x003f, 0 }, ++ { 0x00c9, 74 }, ++ { 0x003f, 0 }, ++ { 0x00cb, 76 }, ++ { 0x003f, 0 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x003f, 0 }, ++ { 0x00da, 91 }, ++ { 0x003f, 0 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00df, 96 }, ++ { 0x003f, 0 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e4, 101 }, ++ { 0x003f, 0 }, ++ { 0x00e7, 104 }, ++ { 0x003f, 0 }, ++ { 0x00e9, 106 }, ++ { 0x003f, 0 }, ++ { 0x00eb, 108 }, ++ { 0x003f, 0 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x003f, 0 }, ++ { 0x00fa, 123 }, ++ { 0x003f, 0 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x003f, 0 }, ++ { 0x00c3, 68 }, ++ { 0x00e3, 100 }, ++ { 0x00a5, 38 }, ++ { 0x00b9, 58 }, ++ { 0x00c6, 71 }, ++ { 0x00e6, 103 }, ++ { 0x00c8, 73 }, ++ { 0x00e8, 105 }, ++ { 0x00cf, 80 }, ++ { 0x00ef, 112 }, ++ { 0x00d0, 81 }, ++ { 0x00f0, 113 }, ++ { 0x00ca, 75 }, ++ { 0x00ea, 107 }, ++ { 0x00cc, 77 }, ++ { 0x00ec, 109 }, ++ { 0x00c5, 70 }, ++ { 0x00e5, 102 }, ++ { 0x00bc, 61 }, ++ { 0x00be, 63 }, ++ { 0x00a3, 36 }, ++ { 0x00b3, 52 }, ++ { 0x00d1, 82 }, ++ { 0x00f1, 114 }, ++ { 0x00d2, 83 }, ++ { 0x00f2, 115 }, ++ { 0x00d5, 86 }, ++ { 0x00f5, 118 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00c0, 65 }, ++ { 0x00e0, 97 }, ++ { 0x00d8, 89 }, ++ { 0x00f8, 121 }, ++ { 0x008c, 13 }, ++ { 0x009c, 29 }, ++ { 0x00aa, 43 }, ++ { 0x00ba, 59 }, ++ { 0x008a, 11 }, ++ { 0x009a, 27 }, ++ { 0x00de, 95 }, ++ { 0x00fe, 127 }, ++ { 0x008d, 14 }, ++ { 0x009d, 30 }, ++ { 0x00d9, 90 }, ++ { 0x00f9, 122 }, ++ { 0x00db, 92 }, ++ { 0x00fb, 124 }, ++ { 0x003f, 0 }, ++ { 0x008f, 16 }, ++ { 0x009f, 32 }, ++ { 0x00af, 48 }, ++ { 0x00bf, 64 }, ++ { 0x008e, 15 }, ++ { 0x009e, 31 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00ff, 128 }, ++ { 0x003f, 0 }, ++ { 0x00b2, 51 }, ++ { 0x00bd, 62 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0082, 3 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0084, 5 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0095, 22 }, ++ { 0x0085, 6 }, ++ { 0x0089, 10 }, ++ { 0x008b, 12 }, ++ { 0x009b, 28 }, ++ { 0x0080, 1 }, ++ { 0x0099, 26 }, ++ { 0x0000, 0 } ++ }; ++ +diff -urN vsftpd-2.0.5.org/char_maps/cyrillic.map vsftpd-2.0.5/char_maps/cyrillic.map +--- vsftpd-2.0.5.org/char_maps/cyrillic.map 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/char_maps/cyrillic.map 2008-01-13 20:09:59.000000000 +0200 +@@ -0,0 +1,1349 @@ ++/* ++ !!! WARNING !!! ++ DON'T CHANGE ORDER OF CHARS ++*/ ++ ++struct codepage_map codepage_utf8cyr_array[] = ++ { ++ { 0x000003, 216 }, // max size , char count ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00c280, 1 }, ++ { 0x00c281, 2 }, ++ { 0x00c282, 3 }, ++ { 0x00c283, 4 }, ++ { 0x00c284, 5 }, ++ { 0x00c285, 6 }, ++ { 0x00c286, 7 }, ++ { 0x00c287, 8 }, ++ { 0x00c288, 9 }, ++ { 0x00c289, 10 }, ++ { 0x00c28a, 11 }, ++ { 0x00c28b, 12 }, ++ { 0x00c28c, 13 }, ++ { 0x00c28d, 14 }, ++ { 0x00c28e, 15 }, ++ { 0x00c28f, 16 }, ++ { 0x00c290, 17 }, ++ { 0x00c291, 18 }, ++ { 0x00c292, 19 }, ++ { 0x00c293, 20 }, ++ { 0x00c294, 21 }, ++ { 0x00c295, 22 }, ++ { 0x00c296, 23 }, ++ { 0x00c297, 24 }, ++ { 0x00c298, 25 }, ++ { 0x00c299, 26 }, ++ { 0x00c29a, 27 }, ++ { 0x00c29b, 28 }, ++ { 0x00c29c, 29 }, ++ { 0x00c29d, 30 }, ++ { 0x00c29e, 31 }, ++ { 0x00c29f, 32 }, ++ { 0x00c2a0, 33 }, ++ { 0x00c2a4, 34 }, ++ { 0x00c2a6, 35 }, ++ { 0x00c2a7, 36 }, ++ { 0x00c2a9, 37 }, ++ { 0x00c2ab, 38 }, ++ { 0x00c2ac, 39 }, ++ { 0x00c2ad, 40 }, ++ { 0x00c2ae, 41 }, ++ { 0x00c2b0, 42 }, ++ { 0x00c2b1, 43 }, ++ { 0x00c2b2, 44 }, ++ { 0x00c2b5, 45 }, ++ { 0x00c2b6, 46 }, ++ { 0x00c2b7, 47 }, ++ { 0x00c2bb, 48 }, ++ { 0x00c3b7, 49 }, ++ { 0x00d081, 50 }, ++ { 0x00d082, 51 }, ++ { 0x00d083, 52 }, ++ { 0x00d084, 53 }, ++ { 0x00d085, 54 }, ++ { 0x00d086, 55 }, ++ { 0x00d087, 56 }, ++ { 0x00d088, 57 }, ++ { 0x00d089, 58 }, ++ { 0x00d08a, 59 }, ++ { 0x00d08b, 60 }, ++ { 0x00d08c, 61 }, ++ { 0x00d08e, 62 }, ++ { 0x00d08f, 63 }, ++ { 0x00d090, 64 }, ++ { 0x00d091, 65 }, ++ { 0x00d092, 66 }, ++ { 0x00d093, 67 }, ++ { 0x00d094, 68 }, ++ { 0x00d095, 69 }, ++ { 0x00d096, 70 }, ++ { 0x00d097, 71 }, ++ { 0x00d098, 72 }, ++ { 0x00d099, 73 }, ++ { 0x00d09a, 74 }, ++ { 0x00d09b, 75 }, ++ { 0x00d09c, 76 }, ++ { 0x00d09d, 77 }, ++ { 0x00d09e, 78 }, ++ { 0x00d09f, 79 }, ++ { 0x00d0a0, 80 }, ++ { 0x00d0a1, 81 }, ++ { 0x00d0a2, 82 }, ++ { 0x00d0a3, 83 }, ++ { 0x00d0a4, 84 }, ++ { 0x00d0a5, 85 }, ++ { 0x00d0a6, 86 }, ++ { 0x00d0a7, 87 }, ++ { 0x00d0a8, 88 }, ++ { 0x00d0a9, 89 }, ++ { 0x00d0aa, 90 }, ++ { 0x00d0ab, 91 }, ++ { 0x00d0ac, 92 }, ++ { 0x00d0ad, 93 }, ++ { 0x00d0ae, 94 }, ++ { 0x00d0af, 95 }, ++ { 0x00d0b0, 96 }, ++ { 0x00d0b1, 97 }, ++ { 0x00d0b2, 98 }, ++ { 0x00d0b3, 99 }, ++ { 0x00d0b4, 100 }, ++ { 0x00d0b5, 101 }, ++ { 0x00d0b6, 102 }, ++ { 0x00d0b7, 103 }, ++ { 0x00d0b8, 104 }, ++ { 0x00d0b9, 105 }, ++ { 0x00d0ba, 106 }, ++ { 0x00d0bb, 107 }, ++ { 0x00d0bc, 108 }, ++ { 0x00d0bd, 109 }, ++ { 0x00d0be, 110 }, ++ { 0x00d0bf, 111 }, ++ { 0x00d180, 112 }, ++ { 0x00d181, 113 }, ++ { 0x00d182, 114 }, ++ { 0x00d183, 115 }, ++ { 0x00d184, 116 }, ++ { 0x00d185, 117 }, ++ { 0x00d186, 118 }, ++ { 0x00d187, 119 }, ++ { 0x00d188, 120 }, ++ { 0x00d189, 121 }, ++ { 0x00d18a, 122 }, ++ { 0x00d18b, 123 }, ++ { 0x00d18c, 124 }, ++ { 0x00d18d, 125 }, ++ { 0x00d18e, 126 }, ++ { 0x00d18f, 127 }, ++ { 0x00d191, 128 }, ++ { 0x00d192, 129 }, ++ { 0x00d193, 130 }, ++ { 0x00d194, 131 }, ++ { 0x00d195, 132 }, ++ { 0x00d196, 133 }, ++ { 0x00d197, 134 }, ++ { 0x00d198, 135 }, ++ { 0x00d199, 136 }, ++ { 0x00d19a, 137 }, ++ { 0x00d19b, 138 }, ++ { 0x00d19c, 139 }, ++ { 0x00d19e, 140 }, ++ { 0x00d19f, 141 }, ++ { 0x00d290, 142 }, ++ { 0x00d291, 143 }, ++ { 0xe28093, 144 }, ++ { 0xe28094, 145 }, ++ { 0xe28098, 146 }, ++ { 0xe28099, 147 }, ++ { 0xe2809a, 148 }, ++ { 0xe2809c, 149 }, ++ { 0xe2809d, 150 }, ++ { 0xe2809e, 151 }, ++ { 0xe280a0, 152 }, ++ { 0xe280a1, 153 }, ++ { 0xe280a2, 154 }, ++ { 0xe280a6, 155 }, ++ { 0xe280b0, 156 }, ++ { 0xe280b9, 157 }, ++ { 0xe280ba, 158 }, ++ { 0xe28496, 159 }, ++ { 0xe284a2, 160 }, ++ { 0xe28899, 161 }, ++ { 0xe2889a, 162 }, ++ { 0xe28988, 163 }, ++ { 0xe289a4, 164 }, ++ { 0xe289a5, 165 }, ++ { 0xe28ca0, 166 }, ++ { 0xe28ca1, 167 }, ++ { 0xe29480, 168 }, ++ { 0xe29482, 169 }, ++ { 0xe2948c, 170 }, ++ { 0xe29490, 171 }, ++ { 0xe29494, 172 }, ++ { 0xe29498, 173 }, ++ { 0xe2949c, 174 }, ++ { 0xe294a4, 175 }, ++ { 0xe294ac, 176 }, ++ { 0xe294b4, 177 }, ++ { 0xe294bc, 178 }, ++ { 0xe29590, 179 }, ++ { 0xe29591, 180 }, ++ { 0xe29592, 181 }, ++ { 0xe29593, 182 }, ++ { 0xe29594, 183 }, ++ { 0xe29595, 184 }, ++ { 0xe29596, 185 }, ++ { 0xe29597, 186 }, ++ { 0xe29598, 187 }, ++ { 0xe29599, 188 }, ++ { 0xe2959a, 189 }, ++ { 0xe2959b, 190 }, ++ { 0xe2959c, 191 }, ++ { 0xe2959d, 192 }, ++ { 0xe2959e, 193 }, ++ { 0xe2959f, 194 }, ++ { 0xe295a0, 195 }, ++ { 0xe295a1, 196 }, ++ { 0xe295a2, 197 }, ++ { 0xe295a3, 198 }, ++ { 0xe295a4, 199 }, ++ { 0xe295a5, 200 }, ++ { 0xe295a6, 201 }, ++ { 0xe295a7, 202 }, ++ { 0xe295a8, 203 }, ++ { 0xe295a9, 204 }, ++ { 0xe295aa, 205 }, ++ { 0xe295ab, 206 }, ++ { 0xe295ac, 207 }, ++ { 0xe29680, 208 }, ++ { 0xe29684, 209 }, ++ { 0xe29688, 210 }, ++ { 0xe2968c, 211 }, ++ { 0xe29690, 212 }, ++ { 0xe29691, 213 }, ++ { 0xe29692, 214 }, ++ { 0xe29693, 215 }, ++ { 0xe296a0, 216 }, ++ { 0x000000, 0 } ++ }; ++ ++struct codepage_map codepage_win1251_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x0088, 9 }, ++ { 0x0098, 25 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a0, 33 }, ++ { 0x00a4, 37 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a9, 42 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x003f, 0 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00bb, 60 }, ++ { 0x003f, 0 }, ++ { 0x00a8, 41 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x00aa, 43 }, ++ { 0x00bd, 62 }, ++ { 0x00b2, 51 }, ++ { 0x00af, 48 }, ++ { 0x00a3, 36 }, ++ { 0x008a, 11 }, ++ { 0x008c, 13 }, ++ { 0x008e, 15 }, ++ { 0x008d, 14 }, ++ { 0x00a1, 34 }, ++ { 0x008f, 16 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x00b8, 57 }, ++ { 0x0090, 17 }, ++ { 0x0083, 4 }, ++ { 0x00ba, 59 }, ++ { 0x00be, 63 }, ++ { 0x00b3, 52 }, ++ { 0x00bf, 64 }, ++ { 0x00bc, 61 }, ++ { 0x009a, 27 }, ++ { 0x009c, 29 }, ++ { 0x009e, 31 }, ++ { 0x009d, 30 }, ++ { 0x00a2, 35 }, ++ { 0x009f, 32 }, ++ { 0x00a5, 38 }, ++ { 0x00b4, 53 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0082, 3 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0084, 5 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0095, 22 }, ++ { 0x0085, 6 }, ++ { 0x0089, 10 }, ++ { 0x008b, 12 }, ++ { 0x009b, 28 }, ++ { 0x00b9, 58 }, ++ { 0x0099, 26 }, ++ { 0x0000, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_koi8u_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x009a, 27 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00bf, 64 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x009c, 29 }, ++ { 0x003f, 0 }, ++ { 0x009d, 30 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x009e, 31 }, ++ { 0x003f, 0 }, ++ { 0x009f, 32 }, ++ { 0x00b3, 52 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00b4, 53 }, ++ { 0x003f, 0 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00f7, 120 }, ++ { 0x00e7, 104 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00f6, 119 }, ++ { 0x00fa, 123 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00e6, 103 }, ++ { 0x00e8, 105 }, ++ { 0x00e3, 100 }, ++ { 0x00fe, 127 }, ++ { 0x00fb, 124 }, ++ { 0x00fd, 126 }, ++ { 0x00ff, 128 }, ++ { 0x00f9, 122 }, ++ { 0x00f8, 121 }, ++ { 0x00fc, 125 }, ++ { 0x00e0, 97 }, ++ { 0x00f1, 114 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00d7, 88 }, ++ { 0x00c7, 72 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00d6, 87 }, ++ { 0x00da, 91 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00c6, 71 }, ++ { 0x00c8, 73 }, ++ { 0x00c3, 68 }, ++ { 0x00de, 95 }, ++ { 0x00db, 92 }, ++ { 0x00dd, 94 }, ++ { 0x00df, 96 }, ++ { 0x00d9, 90 }, ++ { 0x00d8, 89 }, ++ { 0x00dc, 93 }, ++ { 0x00c0, 65 }, ++ { 0x00d1, 82 }, ++ { 0x00a3, 36 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a4, 37 }, ++ { 0x003f, 0 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00bd, 62 }, ++ { 0x00ad, 46 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x0093, 20 }, ++ { 0x009b, 28 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x003f, 0 }, ++ { 0x00a5, 38 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x003f, 0 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x003f, 0 }, ++ { 0x00b5, 54 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x003f, 0 }, ++ { 0x00be, 63 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0094, 21 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_ibm866_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00ff, 128 }, ++ { 0x00fd, 126 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f8, 121 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00fa, 123 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f0, 113 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f2, 115 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f4, 117 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f6, 119 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f1, 114 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f3, 116 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f5, 118 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f7, 120 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00fc, 125 }, ++ { 0x003f, 0 }, ++ { 0x00f9, 122 }, ++ { 0x00fb, 124 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00c4, 69 }, ++ { 0x00b3, 52 }, ++ { 0x00da, 91 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00d9, 90 }, ++ { 0x00c3, 68 }, ++ { 0x00b4, 53 }, ++ { 0x00c2, 67 }, ++ { 0x00c1, 66 }, ++ { 0x00c5, 70 }, ++ { 0x00cd, 78 }, ++ { 0x00ba, 59 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00c9, 74 }, ++ { 0x00b8, 57 }, ++ { 0x00b7, 56 }, ++ { 0x00bb, 60 }, ++ { 0x00d4, 85 }, ++ { 0x00d3, 84 }, ++ { 0x00c8, 73 }, ++ { 0x00be, 63 }, ++ { 0x00bd, 62 }, ++ { 0x00bc, 61 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00cc, 77 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b9, 58 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00cb, 76 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00ca, 75 }, ++ { 0x00d8, 89 }, ++ { 0x00d7, 88 }, ++ { 0x00ce, 79 }, ++ { 0x00df, 96 }, ++ { 0x00dc, 93 }, ++ { 0x00db, 92 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00fe, 127 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_iso5_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00fd, 126 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00ad, 46 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b3, 52 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00f0, 113 }, ++ { 0x0000, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_koi8r_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x009a, 27 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x00bf, 64 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x009c, 29 }, ++ { 0x005f, 0 }, ++ { 0x009d, 30 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x009e, 31 }, ++ { 0x005f, 0 }, ++ { 0x009f, 32 }, ++ { 0x00b3, 52 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00f7, 120 }, ++ { 0x00e7, 104 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00f6, 119 }, ++ { 0x00fa, 123 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00e6, 103 }, ++ { 0x00e8, 105 }, ++ { 0x00e3, 100 }, ++ { 0x00fe, 127 }, ++ { 0x00fb, 124 }, ++ { 0x00fd, 126 }, ++ { 0x00ff, 128 }, ++ { 0x00f9, 122 }, ++ { 0x00f8, 121 }, ++ { 0x00fc, 125 }, ++ { 0x00e0, 97 }, ++ { 0x00f1, 114 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00d7, 88 }, ++ { 0x00c7, 72 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00d6, 87 }, ++ { 0x00da, 91 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00c6, 71 }, ++ { 0x00c8, 73 }, ++ { 0x00c3, 68 }, ++ { 0x00de, 95 }, ++ { 0x00db, 92 }, ++ { 0x00dd, 94 }, ++ { 0x00df, 96 }, ++ { 0x00d9, 90 }, ++ { 0x00d8, 89 }, ++ { 0x00dc, 93 }, ++ { 0x00c0, 65 }, ++ { 0x00d1, 82 }, ++ { 0x00a3, 36 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x005f, 0 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x0093, 20 }, ++ { 0x009b, 28 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0094, 21 }, ++ { 0x0000, 0 } ++ }; ++ +diff -urN vsftpd-2.0.5.org/char_maps/soutern.map vsftpd-2.0.5/char_maps/soutern.map +--- vsftpd-2.0.5.org/char_maps/soutern.map 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/char_maps/soutern.map 2008-01-13 20:09:59.000000000 +0200 +@@ -0,0 +1,259 @@ ++/* ++ !!! WARNING !!! ++ DON'T CHANGE ORDER OF CHARS ++*/ ++ ++struct codepage_map codepage_utf8sout_array[] = ++ { ++ { 0x000003, 121 }, // max size , char count ++ { 0x00c280, 1 }, ++ { 0x00c281, 2 }, ++ { 0x00c282, 3 }, ++ { 0x00c283, 4 }, ++ { 0x00c284, 5 }, ++ { 0x00c285, 6 }, ++ { 0x00c286, 7 }, ++ { 0x00c287, 8 }, ++ { 0x00c288, 9 }, ++ { 0x00c289, 10 }, ++ { 0x00c28a, 11 }, ++ { 0x00c28b, 12 }, ++ { 0x00c28c, 13 }, ++ { 0x00c28d, 14 }, ++ { 0x00c28e, 15 }, ++ { 0x00c28f, 16 }, ++ { 0x00c290, 17 }, ++ { 0x00c291, 18 }, ++ { 0x00c292, 19 }, ++ { 0x00c293, 20 }, ++ { 0x00c294, 21 }, ++ { 0x00c295, 22 }, ++ { 0x00c296, 23 }, ++ { 0x00c297, 24 }, ++ { 0x00c298, 25 }, ++ { 0x00c299, 26 }, ++ { 0x00c29a, 27 }, ++ { 0x00c29b, 28 }, ++ { 0x00c29c, 29 }, ++ { 0x00c29d, 30 }, ++ { 0x00c29e, 31 }, ++ { 0x00c29f, 32 }, ++ { 0x00c2a0, 33 }, ++ { 0x00c2a3, 34 }, ++ { 0x00c2a4, 35 }, ++ { 0x00c2a7, 36 }, ++ { 0x00c2a8, 37 }, ++ { 0x00c2ad, 38 }, ++ { 0x00c2b0, 39 }, ++ { 0x00c2b2, 40 }, ++ { 0x00c2b3, 41 }, ++ { 0x00c2b4, 42 }, ++ { 0x00c2b5, 43 }, ++ { 0x00c2b7, 44 }, ++ { 0x00c2b8, 45 }, ++ { 0x00c2bd, 46 }, ++ { 0x00c380, 47 }, ++ { 0x00c381, 48 }, ++ { 0x00c382, 49 }, ++ { 0x00c384, 50 }, ++ { 0x00c387, 51 }, ++ { 0x00c388, 52 }, ++ { 0x00c389, 53 }, ++ { 0x00c38a, 54 }, ++ { 0x00c38b, 55 }, ++ { 0x00c38c, 56 }, ++ { 0x00c38d, 57 }, ++ { 0x00c38e, 58 }, ++ { 0x00c38f, 59 }, ++ { 0x00c391, 60 }, ++ { 0x00c392, 61 }, ++ { 0x00c393, 62 }, ++ { 0x00c394, 63 }, ++ { 0x00c396, 64 }, ++ { 0x00c397, 65 }, ++ { 0x00c399, 66 }, ++ { 0x00c39a, 67 }, ++ { 0x00c39b, 68 }, ++ { 0x00c39c, 69 }, ++ { 0x00c39f, 70 }, ++ { 0x00c3a0, 71 }, ++ { 0x00c3a1, 72 }, ++ { 0x00c3a2, 73 }, ++ { 0x00c3a4, 74 }, ++ { 0x00c3a7, 75 }, ++ { 0x00c3a8, 76 }, ++ { 0x00c3a9, 77 }, ++ { 0x00c3aa, 78 }, ++ { 0x00c3ab, 79 }, ++ { 0x00c3ac, 80 }, ++ { 0x00c3ad, 81 }, ++ { 0x00c3ae, 82 }, ++ { 0x00c3af, 83 }, ++ { 0x00c3b1, 84 }, ++ { 0x00c3b2, 85 }, ++ { 0x00c3b3, 86 }, ++ { 0x00c3b4, 87 }, ++ { 0x00c3b6, 88 }, ++ { 0x00c3b7, 89 }, ++ { 0x00c3b9, 90 }, ++ { 0x00c3ba, 91 }, ++ { 0x00c3bb, 92 }, ++ { 0x00c3bc, 93 }, ++ { 0x00c488, 94 }, ++ { 0x00c489, 95 }, ++ { 0x00c48a, 96 }, ++ { 0x00c48b, 97 }, ++ { 0x00c49c, 98 }, ++ { 0x00c49d, 99 }, ++ { 0x00c49e, 100 }, ++ { 0x00c49f, 101 }, ++ { 0x00c4a0, 102 }, ++ { 0x00c4a1, 103 }, ++ { 0x00c4a4, 104 }, ++ { 0x00c4a5, 105 }, ++ { 0x00c4a6, 106 }, ++ { 0x00c4a7, 107 }, ++ { 0x00c4b0, 108 }, ++ { 0x00c4b1, 109 }, ++ { 0x00c4b4, 110 }, ++ { 0x00c4b5, 111 }, ++ { 0x00c59c, 112 }, ++ { 0x00c59d, 113 }, ++ { 0x00c59e, 114 }, ++ { 0x00c59f, 115 }, ++ { 0x00c5ac, 116 }, ++ { 0x00c5ad, 117 }, ++ { 0x00c5bb, 118 }, ++ { 0x00c5bc, 119 }, ++ { 0x00cb98, 120 }, ++ { 0x00cb99, 121 }, ++ { 0x000000, 0 } ++ }; ++ ++struct codepage_map codepage_iso3_array[] = ++ { ++ { 0x0001, 121 }, // max size , char count for control ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a7, 39 }, ++ { 0x00a8, 40 }, ++ { 0x00ad, 45 }, ++ { 0x00b0, 47 }, ++ { 0x00b2, 49 }, ++ { 0x00b3, 50 }, ++ { 0x00b4, 51 }, ++ { 0x00b5, 52 }, ++ { 0x00b7, 54 }, ++ { 0x00b8, 55 }, ++ { 0x00bd, 60 }, ++ { 0x00c0, 62 }, ++ { 0x00c1, 63 }, ++ { 0x00c2, 64 }, ++ { 0x00c4, 65 }, ++ { 0x00c7, 68 }, ++ { 0x00c8, 69 }, ++ { 0x00c9, 70 }, ++ { 0x00ca, 71 }, ++ { 0x00cb, 72 }, ++ { 0x00cc, 73 }, ++ { 0x00cd, 74 }, ++ { 0x00ce, 75 }, ++ { 0x00cf, 76 }, ++ { 0x00d1, 77 }, ++ { 0x00d2, 78 }, ++ { 0x00d3, 79 }, ++ { 0x00d4, 80 }, ++ { 0x00d6, 82 }, ++ { 0x00d7, 83 }, ++ { 0x00d9, 85 }, ++ { 0x00da, 86 }, ++ { 0x00db, 87 }, ++ { 0x00dc, 88 }, ++ { 0x00df, 91 }, ++ { 0x00e0, 92 }, ++ { 0x00e1, 93 }, ++ { 0x00e2, 94 }, ++ { 0x00e4, 95 }, ++ { 0x00e7, 98 }, ++ { 0x00e8, 99 }, ++ { 0x00e9, 100 }, ++ { 0x00ea, 101 }, ++ { 0x00eb, 102 }, ++ { 0x00ec, 103 }, ++ { 0x00ed, 104 }, ++ { 0x00ee, 105 }, ++ { 0x00ef, 106 }, ++ { 0x00f1, 107 }, ++ { 0x00f2, 108 }, ++ { 0x00f3, 109 }, ++ { 0x00f4, 110 }, ++ { 0x00f6, 112 }, ++ { 0x00f7, 113 }, ++ { 0x00f9, 115 }, ++ { 0x00fa, 116 }, ++ { 0x00fb, 117 }, ++ { 0x00fc, 118 }, ++ { 0x00c6, 67 }, ++ { 0x00e6, 97 }, ++ { 0x00c5, 66 }, ++ { 0x00e5, 96 }, ++ { 0x00d8, 84 }, ++ { 0x00f8, 114 }, ++ { 0x00ab, 43 }, ++ { 0x00bb, 58 }, ++ { 0x00d5, 81 }, ++ { 0x00f5, 111 }, ++ { 0x00a6, 38 }, ++ { 0x00b6, 53 }, ++ { 0x00a1, 34 }, ++ { 0x00b1, 48 }, ++ { 0x00a9, 41 }, ++ { 0x00b9, 56 }, ++ { 0x00ac, 44 }, ++ { 0x00bc, 59 }, ++ { 0x00de, 90 }, ++ { 0x00fe, 120 }, ++ { 0x00aa, 42 }, ++ { 0x00ba, 57 }, ++ { 0x00dd, 89 }, ++ { 0x00fd, 119 }, ++ { 0x00af, 46 }, ++ { 0x00bf, 61 }, ++ { 0x00a2, 35 }, ++ { 0x00ff, 121 }, ++ { 0x0000, 0 } ++ }; ++ +diff -urN vsftpd-2.0.5.org/char_maps/utf8.map vsftpd-2.0.5/char_maps/utf8.map +--- vsftpd-2.0.5.org/char_maps/utf8.map 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/char_maps/utf8.map 2008-01-13 20:09:59.000000000 +0200 +@@ -0,0 +1,393 @@ ++/* ++ !!! WARNING !!! ++ DON'T CHANGE ORDER OF CHARS ++*/ ++ ++struct codepage_map codepage_utf8_array[] = ++ { ++ { 0x000003, 382 }, // max size , char count ++ { 0x00c280, 1 }, ++ { 0x00c281, 2 }, ++ { 0x00c282, 3 }, ++ { 0x00c283, 4 }, ++ { 0x00c284, 5 }, ++ { 0x00c285, 6 }, ++ { 0x00c286, 7 }, ++ { 0x00c287, 8 }, ++ { 0x00c288, 9 }, ++ { 0x00c289, 10 }, ++ { 0x00c28a, 11 }, ++ { 0x00c28b, 12 }, ++ { 0x00c28c, 13 }, ++ { 0x00c28d, 14 }, ++ { 0x00c28e, 15 }, ++ { 0x00c28f, 16 }, ++ { 0x00c290, 17 }, ++ { 0x00c291, 18 }, ++ { 0x00c292, 19 }, ++ { 0x00c293, 20 }, ++ { 0x00c294, 21 }, ++ { 0x00c295, 22 }, ++ { 0x00c296, 23 }, ++ { 0x00c297, 24 }, ++ { 0x00c298, 25 }, ++ { 0x00c299, 26 }, ++ { 0x00c29a, 27 }, ++ { 0x00c29b, 28 }, ++ { 0x00c29c, 29 }, ++ { 0x00c29d, 30 }, ++ { 0x00c29e, 31 }, ++ { 0x00c29f, 32 }, ++ { 0x00c2a0, 33 }, ++ { 0x00c2a1, 34 }, ++ { 0x00c2a2, 35 }, ++ { 0x00c2a3, 36 }, ++ { 0x00c2a4, 37 }, ++ { 0x00c2a5, 38 }, ++ { 0x00c2a6, 39 }, ++ { 0x00c2a7, 40 }, ++ { 0x00c2a8, 41 }, ++ { 0x00c2a9, 42 }, ++ { 0x00c2aa, 43 }, ++ { 0x00c2ab, 44 }, ++ { 0x00c2ac, 45 }, ++ { 0x00c2ad, 46 }, ++ { 0x00c2ae, 47 }, ++ { 0x00c2af, 48 }, ++ { 0x00c2b0, 49 }, ++ { 0x00c2b1, 50 }, ++ { 0x00c2b2, 51 }, ++ { 0x00c2b3, 52 }, ++ { 0x00c2b4, 53 }, ++ { 0x00c2b5, 54 }, ++ { 0x00c2b6, 55 }, ++ { 0x00c2b7, 56 }, ++ { 0x00c2b8, 57 }, ++ { 0x00c2b9, 58 }, ++ { 0x00c2ba, 59 }, ++ { 0x00c2bb, 60 }, ++ { 0x00c2bc, 61 }, ++ { 0x00c2bd, 62 }, ++ { 0x00c2be, 63 }, ++ { 0x00c2bf, 64 }, ++ { 0x00c380, 65 }, ++ { 0x00c381, 66 }, ++ { 0x00c382, 67 }, ++ { 0x00c383, 68 }, ++ { 0x00c384, 69 }, ++ { 0x00c385, 70 }, ++ { 0x00c386, 71 }, ++ { 0x00c387, 72 }, ++ { 0x00c388, 73 }, ++ { 0x00c389, 74 }, ++ { 0x00c38a, 75 }, ++ { 0x00c38b, 76 }, ++ { 0x00c38c, 77 }, ++ { 0x00c38d, 78 }, ++ { 0x00c38e, 79 }, ++ { 0x00c38f, 80 }, ++ { 0x00c390, 81 }, ++ { 0x00c391, 82 }, ++ { 0x00c392, 83 }, ++ { 0x00c393, 84 }, ++ { 0x00c394, 85 }, ++ { 0x00c395, 86 }, ++ { 0x00c396, 87 }, ++ { 0x00c397, 88 }, ++ { 0x00c398, 89 }, ++ { 0x00c399, 90 }, ++ { 0x00c39a, 91 }, ++ { 0x00c39b, 92 }, ++ { 0x00c39c, 93 }, ++ { 0x00c39d, 94 }, ++ { 0x00c39e, 95 }, ++ { 0x00c39f, 96 }, ++ { 0x00c3a0, 97 }, ++ { 0x00c3a1, 98 }, ++ { 0x00c3a2, 99 }, ++ { 0x00c3a3, 100 }, ++ { 0x00c3a4, 101 }, ++ { 0x00c3a5, 102 }, ++ { 0x00c3a6, 103 }, ++ { 0x00c3a7, 104 }, ++ { 0x00c3a8, 105 }, ++ { 0x00c3a9, 106 }, ++ { 0x00c3aa, 107 }, ++ { 0x00c3ab, 108 }, ++ { 0x00c3ac, 109 }, ++ { 0x00c3ad, 110 }, ++ { 0x00c3ae, 111 }, ++ { 0x00c3af, 112 }, ++ { 0x00c3b0, 113 }, ++ { 0x00c3b1, 114 }, ++ { 0x00c3b2, 115 }, ++ { 0x00c3b3, 116 }, ++ { 0x00c3b4, 117 }, ++ { 0x00c3b5, 118 }, ++ { 0x00c3b6, 119 }, ++ { 0x00c3b7, 120 }, ++ { 0x00c3b8, 121 }, ++ { 0x00c3b9, 122 }, ++ { 0x00c3ba, 123 }, ++ { 0x00c3bb, 124 }, ++ { 0x00c3bc, 125 }, ++ { 0x00c3bd, 126 }, ++ { 0x00c3be, 127 }, ++ { 0x00c3bf, 128 }, ++ { 0x00c482, 129 }, ++ { 0x00c483, 130 }, ++ { 0x00c484, 131 }, ++ { 0x00c485, 132 }, ++ { 0x00c486, 133 }, ++ { 0x00c487, 134 }, ++ { 0x00c488, 135 }, ++ { 0x00c489, 136 }, ++ { 0x00c48a, 137 }, ++ { 0x00c48b, 138 }, ++ { 0x00c48c, 139 }, ++ { 0x00c48d, 140 }, ++ { 0x00c48e, 141 }, ++ { 0x00c48f, 142 }, ++ { 0x00c490, 143 }, ++ { 0x00c491, 144 }, ++ { 0x00c498, 145 }, ++ { 0x00c499, 146 }, ++ { 0x00c49a, 147 }, ++ { 0x00c49b, 148 }, ++ { 0x00c49c, 149 }, ++ { 0x00c49d, 150 }, ++ { 0x00c49e, 151 }, ++ { 0x00c49f, 152 }, ++ { 0x00c4a0, 153 }, ++ { 0x00c4a1, 154 }, ++ { 0x00c4a4, 155 }, ++ { 0x00c4a5, 156 }, ++ { 0x00c4a6, 157 }, ++ { 0x00c4a7, 158 }, ++ { 0x00c4b0, 159 }, ++ { 0x00c4b1, 160 }, ++ { 0x00c4b4, 161 }, ++ { 0x00c4b5, 162 }, ++ { 0x00c4b9, 163 }, ++ { 0x00c4ba, 164 }, ++ { 0x00c4bd, 165 }, ++ { 0x00c4be, 166 }, ++ { 0x00c581, 167 }, ++ { 0x00c582, 168 }, ++ { 0x00c583, 169 }, ++ { 0x00c584, 170 }, ++ { 0x00c587, 171 }, ++ { 0x00c588, 172 }, ++ { 0x00c590, 173 }, ++ { 0x00c591, 174 }, ++ { 0x00c592, 175 }, ++ { 0x00c593, 176 }, ++ { 0x00c594, 177 }, ++ { 0x00c595, 178 }, ++ { 0x00c598, 179 }, ++ { 0x00c599, 180 }, ++ { 0x00c59a, 181 }, ++ { 0x00c59b, 182 }, ++ { 0x00c59c, 183 }, ++ { 0x00c59d, 184 }, ++ { 0x00c59e, 185 }, ++ { 0x00c59f, 186 }, ++ { 0x00c5a0, 187 }, ++ { 0x00c5a1, 188 }, ++ { 0x00c5a2, 189 }, ++ { 0x00c5a3, 190 }, ++ { 0x00c5a4, 191 }, ++ { 0x00c5a5, 192 }, ++ { 0x00c5ac, 193 }, ++ { 0x00c5ad, 194 }, ++ { 0x00c5ae, 195 }, ++ { 0x00c5af, 196 }, ++ { 0x00c5b0, 197 }, ++ { 0x00c5b1, 198 }, ++ { 0x00c5b8, 199 }, ++ { 0x00c5b9, 200 }, ++ { 0x00c5ba, 201 }, ++ { 0x00c5bb, 202 }, ++ { 0x00c5bc, 203 }, ++ { 0x00c5bd, 204 }, ++ { 0x00c5be, 205 }, ++ { 0x00c692, 206 }, ++ { 0x00c89a, 207 }, ++ { 0x00cb86, 208 }, ++ { 0x00cb87, 209 }, ++ { 0x00cb98, 210 }, ++ { 0x00cb99, 211 }, ++ { 0x00cb9b, 212 }, ++ { 0x00cb9c, 213 }, ++ { 0x00cb9d, 214 }, ++ { 0x00d081, 215 }, ++ { 0x00d082, 216 }, ++ { 0x00d083, 217 }, ++ { 0x00d084, 218 }, ++ { 0x00d085, 219 }, ++ { 0x00d086, 220 }, ++ { 0x00d087, 221 }, ++ { 0x00d088, 222 }, ++ { 0x00d089, 223 }, ++ { 0x00d08a, 224 }, ++ { 0x00d08b, 225 }, ++ { 0x00d08c, 226 }, ++ { 0x00d08e, 227 }, ++ { 0x00d08f, 228 }, ++ { 0x00d090, 229 }, ++ { 0x00d091, 230 }, ++ { 0x00d092, 231 }, ++ { 0x00d093, 232 }, ++ { 0x00d094, 233 }, ++ { 0x00d095, 234 }, ++ { 0x00d096, 235 }, ++ { 0x00d097, 236 }, ++ { 0x00d098, 237 }, ++ { 0x00d099, 238 }, ++ { 0x00d09a, 239 }, ++ { 0x00d09b, 240 }, ++ { 0x00d09c, 241 }, ++ { 0x00d09d, 242 }, ++ { 0x00d09e, 243 }, ++ { 0x00d09f, 244 }, ++ { 0x00d0a0, 245 }, ++ { 0x00d0a1, 246 }, ++ { 0x00d0a2, 247 }, ++ { 0x00d0a3, 248 }, ++ { 0x00d0a4, 249 }, ++ { 0x00d0a5, 250 }, ++ { 0x00d0a6, 251 }, ++ { 0x00d0a7, 252 }, ++ { 0x00d0a8, 253 }, ++ { 0x00d0a9, 254 }, ++ { 0x00d0aa, 255 }, ++ { 0x00d0ab, 256 }, ++ { 0x00d0ac, 257 }, ++ { 0x00d0ad, 258 }, ++ { 0x00d0ae, 259 }, ++ { 0x00d0af, 260 }, ++ { 0x00d0b0, 261 }, ++ { 0x00d0b1, 262 }, ++ { 0x00d0b2, 263 }, ++ { 0x00d0b3, 264 }, ++ { 0x00d0b4, 265 }, ++ { 0x00d0b5, 266 }, ++ { 0x00d0b6, 267 }, ++ { 0x00d0b7, 268 }, ++ { 0x00d0b8, 269 }, ++ { 0x00d0b9, 270 }, ++ { 0x00d0ba, 271 }, ++ { 0x00d0bb, 272 }, ++ { 0x00d0bc, 273 }, ++ { 0x00d0bd, 274 }, ++ { 0x00d0be, 275 }, ++ { 0x00d0bf, 276 }, ++ { 0x00d180, 277 }, ++ { 0x00d181, 278 }, ++ { 0x00d182, 279 }, ++ { 0x00d183, 280 }, ++ { 0x00d184, 281 }, ++ { 0x00d185, 282 }, ++ { 0x00d186, 283 }, ++ { 0x00d187, 284 }, ++ { 0x00d188, 285 }, ++ { 0x00d189, 286 }, ++ { 0x00d18a, 287 }, ++ { 0x00d18b, 288 }, ++ { 0x00d18c, 289 }, ++ { 0x00d18d, 290 }, ++ { 0x00d18e, 291 }, ++ { 0x00d18f, 292 }, ++ { 0x00d191, 293 }, ++ { 0x00d192, 294 }, ++ { 0x00d193, 295 }, ++ { 0x00d194, 296 }, ++ { 0x00d195, 297 }, ++ { 0x00d196, 298 }, ++ { 0x00d197, 299 }, ++ { 0x00d198, 300 }, ++ { 0x00d199, 301 }, ++ { 0x00d19a, 302 }, ++ { 0x00d19b, 303 }, ++ { 0x00d19c, 304 }, ++ { 0x00d19e, 305 }, ++ { 0x00d19f, 306 }, ++ { 0x00d290, 307 }, ++ { 0x00d291, 308 }, ++ { 0xe28093, 309 }, ++ { 0xe28094, 310 }, ++ { 0xe28098, 311 }, ++ { 0xe28099, 312 }, ++ { 0xe2809a, 313 }, ++ { 0xe2809c, 314 }, ++ { 0xe2809d, 315 }, ++ { 0xe2809e, 316 }, ++ { 0xe280a0, 317 }, ++ { 0xe280a1, 318 }, ++ { 0xe280a2, 319 }, ++ { 0xe280a6, 320 }, ++ { 0xe280b0, 321 }, ++ { 0xe280b9, 322 }, ++ { 0xe280ba, 323 }, ++ { 0xe282ac, 324 }, ++ { 0xe28496, 325 }, ++ { 0xe284a2, 326 }, ++ { 0xe28899, 327 }, ++ { 0xe2889a, 328 }, ++ { 0xe28988, 329 }, ++ { 0xe289a4, 330 }, ++ { 0xe289a5, 331 }, ++ { 0xe28ca0, 332 }, ++ { 0xe28ca1, 333 }, ++ { 0xe29480, 334 }, ++ { 0xe29482, 335 }, ++ { 0xe2948c, 336 }, ++ { 0xe29490, 337 }, ++ { 0xe29494, 338 }, ++ { 0xe29498, 339 }, ++ { 0xe2949c, 340 }, ++ { 0xe294a4, 341 }, ++ { 0xe294ac, 342 }, ++ { 0xe294b4, 343 }, ++ { 0xe294bc, 344 }, ++ { 0xe29590, 345 }, ++ { 0xe29591, 346 }, ++ { 0xe29592, 347 }, ++ { 0xe29593, 348 }, ++ { 0xe29594, 349 }, ++ { 0xe29595, 350 }, ++ { 0xe29596, 351 }, ++ { 0xe29597, 352 }, ++ { 0xe29598, 353 }, ++ { 0xe29599, 354 }, ++ { 0xe2959a, 355 }, ++ { 0xe2959b, 356 }, ++ { 0xe2959c, 357 }, ++ { 0xe2959d, 358 }, ++ { 0xe2959e, 359 }, ++ { 0xe2959f, 360 }, ++ { 0xe295a0, 361 }, ++ { 0xe295a1, 362 }, ++ { 0xe295a2, 363 }, ++ { 0xe295a3, 364 }, ++ { 0xe295a4, 365 }, ++ { 0xe295a5, 366 }, ++ { 0xe295a6, 367 }, ++ { 0xe295a7, 368 }, ++ { 0xe295a8, 369 }, ++ { 0xe295a9, 370 }, ++ { 0xe295aa, 371 }, ++ { 0xe295ab, 372 }, ++ { 0xe295ac, 373 }, ++ { 0xe29680, 374 }, ++ { 0xe29684, 375 }, ++ { 0xe29688, 376 }, ++ { 0xe2968c, 377 }, ++ { 0xe29690, 378 }, ++ { 0xe29691, 379 }, ++ { 0xe29692, 380 }, ++ { 0xe29693, 381 }, ++ { 0xe296a0, 382 }, ++ { 0x000000, 0 } ++ }; ++ +diff -urN vsftpd-2.0.5.org/char_maps/western.map vsftpd-2.0.5/char_maps/western.map +--- vsftpd-2.0.5.org/char_maps/western.map 1970-01-01 03:00:00.000000000 +0300 ++++ vsftpd-2.0.5/char_maps/western.map 2008-01-13 20:09:59.000000000 +0200 +@@ -0,0 +1,669 @@ ++/* ++ !!! WARNING !!! ++ DON'T CHANGE ORDER OF CHARS ++*/ ++ ++struct codepage_map codepage_utf8west_array[] = ++ { ++ { 0x000003, 155 }, // max size , char count ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00003f, 0 }, ++ { 0x00c280, 1 }, ++ { 0x00c281, 2 }, ++ { 0x00c282, 3 }, ++ { 0x00c283, 4 }, ++ { 0x00c284, 5 }, ++ { 0x00c285, 6 }, ++ { 0x00c286, 7 }, ++ { 0x00c287, 8 }, ++ { 0x00c288, 9 }, ++ { 0x00c289, 10 }, ++ { 0x00c28a, 11 }, ++ { 0x00c28b, 12 }, ++ { 0x00c28c, 13 }, ++ { 0x00c28d, 14 }, ++ { 0x00c28e, 15 }, ++ { 0x00c28f, 16 }, ++ { 0x00c290, 17 }, ++ { 0x00c291, 18 }, ++ { 0x00c292, 19 }, ++ { 0x00c293, 20 }, ++ { 0x00c294, 21 }, ++ { 0x00c295, 22 }, ++ { 0x00c296, 23 }, ++ { 0x00c297, 24 }, ++ { 0x00c298, 25 }, ++ { 0x00c299, 26 }, ++ { 0x00c29a, 27 }, ++ { 0x00c29b, 28 }, ++ { 0x00c29c, 29 }, ++ { 0x00c29d, 30 }, ++ { 0x00c29e, 31 }, ++ { 0x00c29f, 32 }, ++ { 0x00c2a0, 33 }, ++ { 0x00c2a1, 34 }, ++ { 0x00c2a2, 35 }, ++ { 0x00c2a3, 36 }, ++ { 0x00c2a4, 37 }, ++ { 0x00c2a5, 38 }, ++ { 0x00c2a6, 39 }, ++ { 0x00c2a7, 40 }, ++ { 0x00c2a8, 41 }, ++ { 0x00c2a9, 42 }, ++ { 0x00c2aa, 43 }, ++ { 0x00c2ab, 44 }, ++ { 0x00c2ac, 45 }, ++ { 0x00c2ad, 46 }, ++ { 0x00c2ae, 47 }, ++ { 0x00c2af, 48 }, ++ { 0x00c2b0, 49 }, ++ { 0x00c2b1, 50 }, ++ { 0x00c2b2, 51 }, ++ { 0x00c2b3, 52 }, ++ { 0x00c2b4, 53 }, ++ { 0x00c2b5, 54 }, ++ { 0x00c2b6, 55 }, ++ { 0x00c2b7, 56 }, ++ { 0x00c2b8, 57 }, ++ { 0x00c2b9, 58 }, ++ { 0x00c2ba, 59 }, ++ { 0x00c2bb, 60 }, ++ { 0x00c2bc, 61 }, ++ { 0x00c2bd, 62 }, ++ { 0x00c2be, 63 }, ++ { 0x00c2bf, 64 }, ++ { 0x00c380, 65 }, ++ { 0x00c381, 66 }, ++ { 0x00c382, 67 }, ++ { 0x00c383, 68 }, ++ { 0x00c384, 69 }, ++ { 0x00c385, 70 }, ++ { 0x00c386, 71 }, ++ { 0x00c387, 72 }, ++ { 0x00c388, 73 }, ++ { 0x00c389, 74 }, ++ { 0x00c38a, 75 }, ++ { 0x00c38b, 76 }, ++ { 0x00c38c, 77 }, ++ { 0x00c38d, 78 }, ++ { 0x00c38e, 79 }, ++ { 0x00c38f, 80 }, ++ { 0x00c390, 81 }, ++ { 0x00c391, 82 }, ++ { 0x00c392, 83 }, ++ { 0x00c393, 84 }, ++ { 0x00c394, 85 }, ++ { 0x00c395, 86 }, ++ { 0x00c396, 87 }, ++ { 0x00c397, 88 }, ++ { 0x00c398, 89 }, ++ { 0x00c399, 90 }, ++ { 0x00c39a, 91 }, ++ { 0x00c39b, 92 }, ++ { 0x00c39c, 93 }, ++ { 0x00c39d, 94 }, ++ { 0x00c39e, 95 }, ++ { 0x00c39f, 96 }, ++ { 0x00c3a0, 97 }, ++ { 0x00c3a1, 98 }, ++ { 0x00c3a2, 99 }, ++ { 0x00c3a3, 100 }, ++ { 0x00c3a4, 101 }, ++ { 0x00c3a5, 102 }, ++ { 0x00c3a6, 103 }, ++ { 0x00c3a7, 104 }, ++ { 0x00c3a8, 105 }, ++ { 0x00c3a9, 106 }, ++ { 0x00c3aa, 107 }, ++ { 0x00c3ab, 108 }, ++ { 0x00c3ac, 109 }, ++ { 0x00c3ad, 110 }, ++ { 0x00c3ae, 111 }, ++ { 0x00c3af, 112 }, ++ { 0x00c3b0, 113 }, ++ { 0x00c3b1, 114 }, ++ { 0x00c3b2, 115 }, ++ { 0x00c3b3, 116 }, ++ { 0x00c3b4, 117 }, ++ { 0x00c3b5, 118 }, ++ { 0x00c3b6, 119 }, ++ { 0x00c3b7, 120 }, ++ { 0x00c3b8, 121 }, ++ { 0x00c3b9, 122 }, ++ { 0x00c3ba, 123 }, ++ { 0x00c3bb, 124 }, ++ { 0x00c3bc, 125 }, ++ { 0x00c3bd, 126 }, ++ { 0x00c3be, 127 }, ++ { 0x00c3bf, 128 }, ++ { 0x00c592, 129 }, ++ { 0x00c593, 130 }, ++ { 0x00c5a0, 131 }, ++ { 0x00c5a1, 132 }, ++ { 0x00c5b8, 133 }, ++ { 0x00c5bd, 134 }, ++ { 0x00c5be, 135 }, ++ { 0x00c692, 136 }, ++ { 0x00cb86, 137 }, ++ { 0x00cb9c, 138 }, ++ { 0xe28093, 139 }, ++ { 0xe28094, 140 }, ++ { 0xe28098, 141 }, ++ { 0xe28099, 142 }, ++ { 0xe2809a, 143 }, ++ { 0xe2809c, 144 }, ++ { 0xe2809d, 145 }, ++ { 0xe2809e, 146 }, ++ { 0xe280a0, 147 }, ++ { 0xe280a1, 148 }, ++ { 0xe280a2, 149 }, ++ { 0xe280a6, 150 }, ++ { 0xe280b0, 151 }, ++ { 0xe280b9, 152 }, ++ { 0xe280ba, 153 }, ++ { 0xe282ac, 154 }, ++ { 0xe284a2, 155 }, ++ { 0x000000, 0 } ++ }; ++ ++struct codepage_map codepage_iso1_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b3, 52 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x0000, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_iso15_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x0080, 1 }, ++ { 0x0081, 2 }, ++ { 0x0082, 3 }, ++ { 0x0083, 4 }, ++ { 0x0084, 5 }, ++ { 0x0085, 6 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0088, 9 }, ++ { 0x0089, 10 }, ++ { 0x008a, 11 }, ++ { 0x008b, 12 }, ++ { 0x008c, 13 }, ++ { 0x008d, 14 }, ++ { 0x008e, 15 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0095, 22 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0098, 25 }, ++ { 0x0099, 26 }, ++ { 0x009a, 27 }, ++ { 0x009b, 28 }, ++ { 0x009c, 29 }, ++ { 0x009d, 30 }, ++ { 0x009e, 31 }, ++ { 0x009f, 32 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x003f, 0 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b3, 52 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a4, 37 }, ++ { 0x003f, 0 }, ++ { 0x0000, 0 } ++ }; ++ ++struct codepage_map codepage_win1252_array[] = ++ { ++ { 0x0001, 128 }, // max size , char count for control ++ { 0x0081, 2 }, ++ { 0x008d, 14 }, ++ { 0x008f, 16 }, ++ { 0x0090, 17 }, ++ { 0x009d, 30 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x003f, 0 }, ++ { 0x00a0, 33 }, ++ { 0x00a1, 34 }, ++ { 0x00a2, 35 }, ++ { 0x00a3, 36 }, ++ { 0x00a4, 37 }, ++ { 0x00a5, 38 }, ++ { 0x00a6, 39 }, ++ { 0x00a7, 40 }, ++ { 0x00a8, 41 }, ++ { 0x00a9, 42 }, ++ { 0x00aa, 43 }, ++ { 0x00ab, 44 }, ++ { 0x00ac, 45 }, ++ { 0x00ad, 46 }, ++ { 0x00ae, 47 }, ++ { 0x00af, 48 }, ++ { 0x00b0, 49 }, ++ { 0x00b1, 50 }, ++ { 0x00b2, 51 }, ++ { 0x00b3, 52 }, ++ { 0x00b4, 53 }, ++ { 0x00b5, 54 }, ++ { 0x00b6, 55 }, ++ { 0x00b7, 56 }, ++ { 0x00b8, 57 }, ++ { 0x00b9, 58 }, ++ { 0x00ba, 59 }, ++ { 0x00bb, 60 }, ++ { 0x00bc, 61 }, ++ { 0x00bd, 62 }, ++ { 0x00be, 63 }, ++ { 0x00bf, 64 }, ++ { 0x00c0, 65 }, ++ { 0x00c1, 66 }, ++ { 0x00c2, 67 }, ++ { 0x00c3, 68 }, ++ { 0x00c4, 69 }, ++ { 0x00c5, 70 }, ++ { 0x00c6, 71 }, ++ { 0x00c7, 72 }, ++ { 0x00c8, 73 }, ++ { 0x00c9, 74 }, ++ { 0x00ca, 75 }, ++ { 0x00cb, 76 }, ++ { 0x00cc, 77 }, ++ { 0x00cd, 78 }, ++ { 0x00ce, 79 }, ++ { 0x00cf, 80 }, ++ { 0x00d0, 81 }, ++ { 0x00d1, 82 }, ++ { 0x00d2, 83 }, ++ { 0x00d3, 84 }, ++ { 0x00d4, 85 }, ++ { 0x00d5, 86 }, ++ { 0x00d6, 87 }, ++ { 0x00d7, 88 }, ++ { 0x00d8, 89 }, ++ { 0x00d9, 90 }, ++ { 0x00da, 91 }, ++ { 0x00db, 92 }, ++ { 0x00dc, 93 }, ++ { 0x00dd, 94 }, ++ { 0x00de, 95 }, ++ { 0x00df, 96 }, ++ { 0x00e0, 97 }, ++ { 0x00e1, 98 }, ++ { 0x00e2, 99 }, ++ { 0x00e3, 100 }, ++ { 0x00e4, 101 }, ++ { 0x00e5, 102 }, ++ { 0x00e6, 103 }, ++ { 0x00e7, 104 }, ++ { 0x00e8, 105 }, ++ { 0x00e9, 106 }, ++ { 0x00ea, 107 }, ++ { 0x00eb, 108 }, ++ { 0x00ec, 109 }, ++ { 0x00ed, 110 }, ++ { 0x00ee, 111 }, ++ { 0x00ef, 112 }, ++ { 0x00f0, 113 }, ++ { 0x00f1, 114 }, ++ { 0x00f2, 115 }, ++ { 0x00f3, 116 }, ++ { 0x00f4, 117 }, ++ { 0x00f5, 118 }, ++ { 0x00f6, 119 }, ++ { 0x00f7, 120 }, ++ { 0x00f8, 121 }, ++ { 0x00f9, 122 }, ++ { 0x00fa, 123 }, ++ { 0x00fb, 124 }, ++ { 0x00fc, 125 }, ++ { 0x00fd, 126 }, ++ { 0x00fe, 127 }, ++ { 0x00ff, 128 }, ++ { 0x008c, 13 }, ++ { 0x009c, 29 }, ++ { 0x008a, 11 }, ++ { 0x009a, 27 }, ++ { 0x009f, 32 }, ++ { 0x008e, 15 }, ++ { 0x009e, 31 }, ++ { 0x0083, 4 }, ++ { 0x0088, 9 }, ++ { 0x0098, 25 }, ++ { 0x0096, 23 }, ++ { 0x0097, 24 }, ++ { 0x0091, 18 }, ++ { 0x0092, 19 }, ++ { 0x0082, 3 }, ++ { 0x0093, 20 }, ++ { 0x0094, 21 }, ++ { 0x0084, 5 }, ++ { 0x0086, 7 }, ++ { 0x0087, 8 }, ++ { 0x0095, 22 }, ++ { 0x0085, 6 }, ++ { 0x0089, 10 }, ++ { 0x008b, 12 }, ++ { 0x009b, 28 }, ++ { 0x0080, 1 }, ++ { 0x0099, 26 }, ++ { 0x0000, 0 } ++ }; ++ +diff -urN vsftpd-2.0.5.org/ftpcmdio.c vsftpd-2.0.5/ftpcmdio.c +--- vsftpd-2.0.5.org/ftpcmdio.c 2005-03-04 02:42:34.000000000 +0200 ++++ vsftpd-2.0.5/ftpcmdio.c 2008-01-13 19:34:50.000000000 +0200 +@@ -19,6 +19,7 @@ + #include "logging.h" + #include "session.h" + #include "readwrite.h" ++#include "charconv.h" + + /* Internal functions */ + static void control_getline(struct mystr* p_str, struct vsf_session* p_sess); +@@ -125,9 +126,13 @@ + vsf_log_line(p_sess, kVSFLogEntryFTPOutput, &s_write_buf_str); + } + str_copy(&s_text_mangle_str, p_str); ++ vsf_charconv_convert(p_sess, &s_text_mangle_str, VSFTP_CONVDIRECT_FORWARD); + /* Process the output response according to the specifications.. */ + /* Escape telnet characters properly */ +- str_replace_text(&s_text_mangle_str, "\377", "\377\377"); ++// if (tunable_double_377) ++ { ++ str_replace_text(&s_text_mangle_str, "\377", "\377\377");
++ } + /* Change \n for \0 in response */ + str_replace_char(&s_text_mangle_str, '\n', '\0'); + /* Build string to squirt down network */ +@@ -213,5 +218,6 @@ + --len; + } + } ++ vsf_charconv_convert(p_sess, p_str, VSFTP_CONVDIRECT_BACKWARD); + } + +diff -urN vsftpd-2.0.5.org/ftpdataio.c vsftpd-2.0.5/ftpdataio.c +--- vsftpd-2.0.5.org/ftpdataio.c 2005-03-12 04:00:00.000000000 +0200 ++++ vsftpd-2.0.5/ftpdataio.c 2008-01-13 19:35:59.000000000 +0200 +@@ -296,7 +296,7 @@ + { + p_subdir_list = &subdir_list; + } +- vsf_ls_populate_dir_list(&dir_list, p_subdir_list, p_dir, p_base_dir_str, ++ vsf_ls_populate_dir_list(p_sess, &dir_list, p_subdir_list, p_dir, p_base_dir_str, + p_option_str, p_filter_str, is_verbose); + if (p_subdir_list) + { +diff -urN vsftpd-2.0.5.org/ls.c vsftpd-2.0.5/ls.c +--- vsftpd-2.0.5.org/ls.c 2005-05-24 00:55:00.000000000 +0300 ++++ vsftpd-2.0.5/ls.c 2008-01-13 19:32:28.000000000 +0200 +@@ -14,13 +14,16 @@ + #include "sysstr.h" + #include "sysutil.h" + #include "tunables.h" ++#include "charconv.h" + +-static void build_dir_line(struct mystr* p_str, ++static void build_dir_line(struct vsf_session* p_sess, ++ struct mystr* p_str, + const struct mystr* p_filename_str, + const struct vsf_sysutil_statbuf* p_stat); + + void +-vsf_ls_populate_dir_list(struct mystr_list* p_list, ++vsf_ls_populate_dir_list(struct vsf_session* p_sess, ++ struct mystr_list* p_list, + struct mystr_list* p_subdir_list, + struct vsf_sysutil_dir* p_dir, + const struct mystr* p_base_dir_str, +@@ -157,7 +160,7 @@ + { + str_append_char(&s_final_file_str, '/'); + } +- build_dir_line(&dirline_str, &s_final_file_str, s_p_statbuf); ++ build_dir_line(p_sess, &dirline_str, &s_final_file_str, s_p_statbuf); + } + else + { +@@ -176,6 +179,7 @@ + str_append_char(&dirline_str, '@'); + } + } ++ vsf_charconv_convert(p_sess, &dirline_str, VSFTP_CONVDIRECT_FORWARD); + str_append_text(&dirline_str, "\r\n"); + } + /* Add filename into our sorted list - sorting by filename or time. Also, +@@ -357,7 +361,7 @@ + } + + static void +-build_dir_line(struct mystr* p_str, const struct mystr* p_filename_str, ++build_dir_line(struct vsf_session* p_sess, struct mystr* p_str, const struct mystr* p_filename_str, + const struct vsf_sysutil_statbuf* p_stat) + { + static struct mystr s_tmp_str; +@@ -431,6 +435,7 @@ + str_append_char(p_str, ' '); + /* Filename */ + str_append_str(p_str, p_filename_str); ++ vsf_charconv_convert(p_sess, p_str, VSFTP_CONVDIRECT_FORWARD); + str_append_text(p_str, "\r\n"); + } + +diff -urN vsftpd-2.0.5.org/ls.h vsftpd-2.0.5/ls.h +--- vsftpd-2.0.5.org/ls.h 2003-09-15 13:43:40.000000000 +0300 ++++ vsftpd-2.0.5/ls.h 2008-01-13 19:32:30.000000000 +0200 +@@ -4,12 +4,14 @@ + struct mystr; + struct mystr_list; + struct vsf_sysutil_dir; ++struct vsf_session; + + /* vsf_ls_populate_dir_list() + * PURPOSE + * Given a directory handle, populate a formatted directory entry list (/bin/ls + * format). Also optionally populate a list of subdirectories. + * PARAMETERS ++ * p_sess - the current FTP session object + * p_list - the string list object for the result list of entries + * p_subdir_list - the string list object for the result list of + * subdirectories. May be 0 if client is not interested. +@@ -19,7 +21,8 @@ + * p_filter_str - the filter string given to LIST/NLST - e.g. "*.mp3" + * is_verbose - set to 1 for LIST, 0 for NLST + */ +-void vsf_ls_populate_dir_list(struct mystr_list* p_list, ++void vsf_ls_populate_dir_list(struct vsf_session* p_sess, ++ struct mystr_list* p_list, + struct mystr_list* p_subdir_list, + struct vsf_sysutil_dir* p_dir, + const struct mystr* p_base_dir_str, +diff -urN vsftpd-2.0.5.org/main.c vsftpd-2.0.5/main.c +--- vsftpd-2.0.5.org/main.c 2006-07-03 15:26:08.000000000 +0300 ++++ vsftpd-2.0.5/main.c 2008-01-13 20:51:11.000000000 +0200 +@@ -63,7 +63,9 @@ + /* Secure connection state */ + 0, 0, 0, 0, 0, 0, -1, -1, + /* Login fails */ +- 0 ++ 0, ++ /* Filename charset conv */ ++ 0, 0, + }; + int config_specified = 0; + const char* p_config_name = VSFTP_DEFAULT_CONFIG; +@@ -106,6 +108,12 @@ + } + vsf_sysutil_free(p_statbuf); + } ++ /* Init local codepage */ ++ if (tunable_convert_charset_enable) ++ { ++ tunable_local_codepage = vsf_charconv_codepage(tunable_local_charset); ++ tunable_convert_charset_enable = (tunable_local_codepage) ? 1 : 0; ++ } + /* Resolve pasv_address if required */ + if (tunable_pasv_address && tunable_pasv_addr_resolve) + { +diff -urN vsftpd-2.0.5.org/Makefile vsftpd-2.0.5/Makefile +--- vsftpd-2.0.5.org/Makefile 2006-07-03 15:25:41.000000000 +0300 ++++ vsftpd-2.0.5/Makefile 2008-01-13 19:39:58.000000000 +0200 +@@ -14,7 +14,7 @@ + banner.o filestr.o parseconf.o secutil.o \ + ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \ + tcpwrap.o ipaddrparse.o access.o features.o readwrite.o \ +- ssl.o sysutil.o sysdeputil.o ++ ssl.o sysutil.o sysdeputil.o charconv.o + + + .c.o: +diff -urN vsftpd-2.0.5.org/parseconf.c vsftpd-2.0.5/parseconf.c +--- vsftpd-2.0.5.org/parseconf.c 2006-07-02 02:05:10.000000000 +0300 ++++ vsftpd-2.0.5/parseconf.c 2008-01-13 20:21:57.000000000 +0200 +@@ -99,6 +99,7 @@ + { "mdtm_write", &tunable_mdtm_write }, + { "lock_upload_files", &tunable_lock_upload_files }, + { "pasv_addr_resolve", &tunable_pasv_addr_resolve }, ++ { "convert_charset_enable", &tunable_convert_charset_enable }, + { 0, 0 } + }; + +@@ -168,6 +169,8 @@ + { "ssl_ciphers", &tunable_ssl_ciphers }, + { "rsa_private_key_file", &tunable_rsa_private_key_file }, + { "dsa_private_key_file", &tunable_dsa_private_key_file }, ++ { "local_charset", &tunable_local_charset }, ++ { "remote_charset", &tunable_remote_charset }, + { 0, 0 } + }; + +diff -urN vsftpd-2.0.5.org/postlogin.c vsftpd-2.0.5/postlogin.c +--- vsftpd-2.0.5.org/postlogin.c 2006-06-12 01:45:25.000000000 +0300 ++++ vsftpd-2.0.5/postlogin.c 2008-01-13 20:58:37.000000000 +0200 +@@ -25,6 +25,7 @@ + #include "access.h" + #include "features.h" + #include "ssl.h" ++#include "charconv.h" + #include "vsftpver.h" + + /* Private local functions */ +@@ -98,6 +99,17 @@ + /* Handle any login message */ + vsf_banner_dir_changed(p_sess, FTP_LOGINOK); + vsf_cmdio_write(p_sess, FTP_LOGINOK, "Login successful."); ++ if (tunable_convert_charset_enable) ++ { ++ vsf_charconv_init_local_codepage(tunable_local_codepage); ++ tunable_remote_codepage = vsf_charconv_codepage(tunable_remote_charset); ++ p_sess->remote_charset = tunable_remote_codepage; ++ p_sess->enable_conversion = vsf_charconv_avail_convertion(tunable_local_codepage, p_sess->remote_charset); ++ } ++ else ++ { ++ p_sess->enable_conversion = 0; ++ } + while(1) + { + int cmd_ok = 1; +diff -urN vsftpd-2.0.5.org/session.h vsftpd-2.0.5/session.h +--- vsftpd-2.0.5.org/session.h 2006-07-02 03:34:48.000000000 +0300 ++++ vsftpd-2.0.5/session.h 2008-01-13 20:39:41.000000000 +0200 +@@ -91,6 +91,10 @@ + int ssl_slave_fd; + int ssl_consumer_fd; + unsigned int login_fails; ++ ++ /* Filename charset conv */ ++ int enable_conversion; ++ int remote_charset; + }; + + #endif /* VSF_SESSION_H */ +diff -urN vsftpd-2.0.5.org/tunables.c vsftpd-2.0.5/tunables.c +--- vsftpd-2.0.5.org/tunables.c 2006-07-02 02:06:56.000000000 +0300 ++++ vsftpd-2.0.5/tunables.c 2008-01-13 20:24:57.000000000 +0200 +@@ -71,6 +71,9 @@ + int tunable_mdtm_write = 1; + int tunable_lock_upload_files = 1; + int tunable_pasv_addr_resolve = 0; ++int tunable_convert_charset_enable = 0; ++int tunable_local_codepage = 0; ++int tunable_remote_codepage = 0; + + unsigned int tunable_accept_timeout = 60; + unsigned int tunable_connect_timeout = 60; +@@ -125,4 +128,6 @@ + const char* tunable_ssl_ciphers = "DES-CBC3-SHA"; + const char* tunable_rsa_private_key_file = 0; + const char* tunable_dsa_private_key_file = 0; ++const char* tunable_local_charset = "NONE"; ++const char* tunable_remote_charset = "NONE"; + +diff -urN vsftpd-2.0.5.org/tunables.h vsftpd-2.0.5/tunables.h +--- vsftpd-2.0.5.org/tunables.h 2006-07-02 02:07:00.000000000 +0300 ++++ vsftpd-2.0.5/tunables.h 2008-01-13 20:28:11.000000000 +0200 +@@ -67,6 +67,9 @@ + extern int tunable_mdtm_write; /* Allow MDTM to set timestamps */ + extern int tunable_lock_upload_files; /* Lock uploading files */ + extern int tunable_pasv_addr_resolve; /* DNS resolve pasv_addr */ ++extern int tunable_convert_charset_enable; /* Allow converting charsets for file names */ ++extern int tunable_local_codepage; /* Code of local charset */ ++extern int tunable_remote_codepage; /* Code of remote charset */ + + /* Integer/numeric defines */ + extern unsigned int tunable_accept_timeout; +@@ -120,6 +123,8 @@ + extern const char* tunable_ssl_ciphers; + extern const char* tunable_rsa_private_key_file; + extern const char* tunable_dsa_private_key_file; ++extern const char* tunable_local_charset; ++extern const char* tunable_remote_charset; + + #endif /* VSF_TUNABLES_H */ + diff --git a/packages/vsftpd/vsftpd-charconv_2.0.5.bb b/packages/vsftpd/vsftpd-charconv_2.0.5.bb new file mode 100644 index 0000000000..cc559c6259 --- /dev/null +++ b/packages/vsftpd/vsftpd-charconv_2.0.5.bb @@ -0,0 +1,50 @@ +DESCRIPTION = "Secure ftp daemon with filename charconv" +SECTION = "console/network" +LICENSE = "GPL" +PR = "r1" + +FILESPATH_append = ":${@os.path.dirname(bb.data.getVar('FILE',d,1))}/vsftpd-2.0.5" + +SRC_URI = "ftp://vsftpd.beasts.org/users/cevans/vsftpd-${PV}.tar.gz \ + file://vsftpd-charconv.patch;patch=1 \ + file://makefile.patch;patch=1 \ + file://nopam.patch;patch=1 \ + file://syscall.patch;patch=1 \ + file://init \ + file://vsftpd.conf" + +S = "${WORKDIR}/vsftpd-2.0.5" + +inherit update-rc.d + +do_configure() { + # Fix hardcoded /usr, /etc, /var mess. + cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \ + |sed s:\"${prefix}/share/empty:\"${localstatedir}/share/empty:g |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new + mv tunables.c.new tunables.c +} + +do_compile() { + oe_runmake "LIBS=-lcrypt -L${STAGING_LIBDIR}" +} + +do_install() { + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${mandir}/man5 + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${sysconfdir} + install -m 0755 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd +} + +pkg_postinst() { + addgroup ftp + adduser --system --home /var/tmp/ftp --no-create-home --ingroup ftp --disabled-password -s /bin/false ftp + mkdir -p ${localstatedir}/share/empty +} + +INITSCRIPT_NAME = "vsftpd" + +INITSCRIPT_PARAMS = "defaults" diff --git a/packages/wifistix/wifistix-modules/sk_buff.patch b/packages/wifistix/wifistix-modules/sk_buff.patch new file mode 100644 index 0000000000..4ee602f42b --- /dev/null +++ b/packages/wifistix/wifistix-modules/sk_buff.patch @@ -0,0 +1,18 @@ +--- src_cf8385/wlan/wlan_wmm.c 2007-06-22 11:23:39.000000000 -0700 ++++ src_cf8385/wlan/wlan_wmm-orig.c 2007-10-28 13:27:46.000000000 -0700 +@@ -701,9 +701,15 @@ + switch (eth->h_proto) + { + case __constant_htons(ETH_P_IP): ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) ++ PRINTM(INFO, "packet type ETH_P_IP: %04x, tos=%#x prio=%#x\n", ++ eth->h_proto,ip_hdr(skb)->tos,skb->priority); ++ tos = IPTOS_PREC(ip_hdr(skb)->tos) >> IPTOS_OFFSET; ++#else + PRINTM(INFO, "packet type ETH_P_IP: %04x, tos=%#x prio=%#x\n", + eth->h_proto,skb->nh.iph->tos,skb->priority); + tos = IPTOS_PREC(skb->nh.iph->tos) >> IPTOS_OFFSET; ++#endif + break; + case __constant_htons(ETH_P_ARP): + PRINTM(INFO, "ARP packet %04x\n",eth->h_proto); diff --git a/packages/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb b/packages/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb index ca048155c9..8d4ede20af 100644 --- a/packages/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb +++ b/packages/xcursor-transparent-theme/xcursor-transparent-theme_0.1.1.bb @@ -1,7 +1,7 @@ LICENSE = "GPL" DESCRIPTION = "Transparent xcursor theme for handheld systems" SECTION = "x11/base" -PR="r1" +PR="r2" SRC_URI = "http://projects.o-hand.com/matchbox/sources/utils/xcursor-transparent-theme-${PV}.tar.gz \ file://use-relative-symlinks.patch;patch=1 \ @@ -9,3 +9,5 @@ SRC_URI = "http://projects.o-hand.com/matchbox/sources/utils/xcursor-transparent FILES_${PN} = "${datadir}/icons/xcursor-transparent/cursors/*" inherit autotools + +PACKAGE_ARCH = "all" diff --git a/packages/xcursor-transparent-theme/xcursor-watchonly-theme/.mtn2git_empty b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/.mtn2git_empty diff --git a/packages/xcursor-transparent-theme/xcursor-watchonly-theme/20xcursor-transparent b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/20xcursor-transparent new file mode 100755 index 0000000000..6fa068214e --- /dev/null +++ b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/20xcursor-transparent @@ -0,0 +1,7 @@ +#!/bin/sh + +# Only if there's no mouse at all, we use use transparent cursors +# for stylus use comfort. +if ! ls /dev/input/mouse* >/dev/null 2>&1; then + echo "Xcursor.theme: xcursor-transparent" | xrdb -merge -nocpp +fi diff --git a/packages/xcursor-transparent-theme/xcursor-watchonly-theme/skip_watch_cursor.patch b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/skip_watch_cursor.patch new file mode 100644 index 0000000000..5c13fa885a --- /dev/null +++ b/packages/xcursor-transparent-theme/xcursor-watchonly-theme/skip_watch_cursor.patch @@ -0,0 +1,23 @@ +diff -NurP xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.am xcursor-transparent-theme-0.1.1/cursors/Makefile.am +--- xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.am 2003-10-30 13:13:59.000000000 +0100 ++++ xcursor-transparent-theme-0.1.1/cursors/Makefile.am 2005-12-20 23:35:17.000000000 +0100 +@@ -79,7 +79,6 @@ + ul_angle \ + ur_angle \ + v_double_arrow \ +- watcha \ + xterm + + CURSOR_DIR = $(datadir)/icons/xcursor-transparent/cursors +diff -NurP xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.in xcursor-transparent-theme-0.1.1/cursors/Makefile.in +--- xcursor-transparent-theme-0.1.1-orig/cursors/Makefile.in 2003-10-31 15:31:13.000000000 +0100 ++++ xcursor-transparent-theme-0.1.1/cursors/Makefile.in 2005-12-20 23:35:36.000000000 +0100 +@@ -67,7 +67,7 @@ + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ + +-CURSOR_NAMES = 00008160000006810000408080010102 028006030e0e7ebffc7f7070c0600140 03b6e0fcb3499374a867c041f52298f0 08e8e1c95fe2fc01f976f1e063a24ccd 14fef782d02440884392942c11205230 2870a09082c103050810ffdffffe0204 3ecb610c1bf2410f44200f48c40d3599 4498f0e0c1937ffe01fd06f973665830 9d800788f1b08800ae810202380a0822 c7088f0f3e6c8088236ef8e1e3e70000 d9ce0ab605698f320427677b458ad60b e29285e634086352946a0e7090d73106 fcf1c3c7cd4491d801f1e1c78f100000 X_cursor arrow base_arrow_down base_arrow_up based_arrow_down based_arrow_up bd_double_arrow boat bottom_left_corner bottom_right_corner bottom_side bottom_tee center_ptr circle cross cross_reverse crossed_circle crosshair dot dot_box_mask dotbox double_arrow draft_large draft_small draped_box exchange fd_double_arrow fleur gumby h_double_arrow hand hand1 hand2 left_ptr left_ptr_watch left_side left_tee ll_angle lr_angle move pencil pirate plus question_arrow right_ptr right_side right_tee sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle sizing target tcross top_left_arrow top_left_corner top_right_corner top_side top_tee trek ul_angle ur_angle v_double_arrow watcha xterm ++CURSOR_NAMES = 00008160000006810000408080010102 028006030e0e7ebffc7f7070c0600140 03b6e0fcb3499374a867c041f52298f0 08e8e1c95fe2fc01f976f1e063a24ccd 14fef782d02440884392942c11205230 2870a09082c103050810ffdffffe0204 3ecb610c1bf2410f44200f48c40d3599 4498f0e0c1937ffe01fd06f973665830 9d800788f1b08800ae810202380a0822 c7088f0f3e6c8088236ef8e1e3e70000 d9ce0ab605698f320427677b458ad60b e29285e634086352946a0e7090d73106 fcf1c3c7cd4491d801f1e1c78f100000 X_cursor arrow base_arrow_down base_arrow_up based_arrow_down based_arrow_up bd_double_arrow boat bottom_left_corner bottom_right_corner bottom_side bottom_tee center_ptr circle cross cross_reverse crossed_circle crosshair dot dot_box_mask dotbox double_arrow draft_large draft_small draped_box exchange fd_double_arrow fleur gumby h_double_arrow hand hand1 hand2 left_ptr left_ptr_watch left_side left_tee ll_angle lr_angle move pencil pirate plus question_arrow right_ptr right_side right_tee sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle sizing target tcross top_left_arrow top_left_corner top_right_corner top_side top_tee trek ul_angle ur_angle v_double_arrow xterm + + + CURSOR_DIR = $(datadir)/icons/xcursor-transparent/cursors diff --git a/packages/xcursor-transparent-theme/xcursor-watchonly-theme_0.1.1.bb b/packages/xcursor-transparent-theme/xcursor-watchonly-theme_0.1.1.bb index e9e6479daf..094b303409 100644 --- a/packages/xcursor-transparent-theme/xcursor-watchonly-theme_0.1.1.bb +++ b/packages/xcursor-transparent-theme/xcursor-watchonly-theme_0.1.1.bb @@ -3,13 +3,21 @@ DESCRIPTION = "Transparent xcursor theme for handheld systems with visible watch SECTION = "x11/base" RREPLACES = "xcursor-transparent-theme" RPROVIDES = "xcursor-transparent-theme" -PR="r2" +PR="r4" SRC_URI = "http://projects.o-hand.com/matchbox/sources/utils/xcursor-transparent-theme-${PV}.tar.gz \ file://use-relative-symlinks.patch;patch=1 \ - file://skip_watch_cursor.patch;patch=1" + file://skip_watch_cursor.patch;patch=1 \ + file://20xcursor-transparent" S = "${WORKDIR}/xcursor-transparent-theme-${PV}" -FILES_${PN} = "${datadir}/icons/xcursor-transparent/cursors/*" +FILES_${PN} += "${datadir}/icons/xcursor-transparent/cursors/*" inherit autotools + +do_install_append () { + install -d ${D}${sysconfdir}/X11/Xsession.d + install -m 0755 ${WORKDIR}/20xcursor-transparent ${D}${sysconfdir}/X11/Xsession.d +} + +PACKAGE_ARCH = "all" diff --git a/packages/xerces-c/xerces-c_2.6.0.bb b/packages/xerces-c/xerces-c_2.6.0.bb deleted file mode 100644 index fe0677f54f..0000000000 --- a/packages/xerces-c/xerces-c_2.6.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "Xerces-c xml" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "MIT" - -S = "${WORKDIR}/xerces-c-src_2_6_0" - -SRC_URI = "http://www.axint.net/apache/xml/xerces-c/xerces-c-src_2_6_0.tar.gz" - -inherit pkgconfig - - -# -# Warning: BITSTOBUILD will default to 32 bits -# -export TRANSCODER="NATIVE" -export MESSAGELOADER="INMEM" -export NETACCESSOR="Socket" -export THREADS="pthread" -export BITSTOBUILD="32" -export LIBS = " -lpthread " -CFLAGS_append = " -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET " -CXXFLAGS_append = " -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET " - -do_configure() { - export XERCESCROOT=${S} - cd src/xercesc - ./configure -} - -do_compile () { - export XERCESCROOT=${S} - cd src/xercesc - oe_runmake -} - -do_stage () { - oe_libinstall -C lib libxerces-c ${STAGING_LIBDIR} - oe_libinstall -C lib libxerces-depdom ${STAGING_LIBDIR} - - cp -pPR include/xercesc ${STAGING_INCDIR} -} - -do_install () { - oe_libinstall -C lib libxerces-c ${D}${libdir} - oe_libinstall -C lib libxerces-depdom ${D}${libdir} -} diff --git a/packages/xerces-c/xerces-c_2.7.0.bb b/packages/xerces-c/xerces-c_2.7.0.bb deleted file mode 100644 index 8fdab80180..0000000000 --- a/packages/xerces-c/xerces-c_2.7.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "Xerces-c xml" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "MIT" - -S = "${WORKDIR}/xerces-c-src_2_7_0" - -SRC_URI = "http://www.axint.net/apache/xml/xerces-c/source/xerces-c-src_2_7_0.tar.gz" - -inherit pkgconfig - - -# -# Warning: BITSTOBUILD will default to 32 bits -# -export TRANSCODER="NATIVE" -export MESSAGELOADER="INMEM" -export NETACCESSOR="Socket" -export THREADS="pthread" -export BITSTOBUILD="32" -export LIBS = " -lpthread " -CFLAGS_append = " -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET " -CXXFLAGS_append = " -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET " - -do_configure() { - export XERCESCROOT=${S} - cd src/xercesc - ./configure -} - -do_compile () { - export XERCESCROOT=${S} - cd src/xercesc - oe_runmake -} - -do_stage () { - oe_libinstall -C lib libxerces-c ${STAGING_LIBDIR} - oe_libinstall -C lib libxerces-depdom ${STAGING_LIBDIR} - - cp -pPR include/xercesc ${STAGING_INCDIR} -} - -do_install () { - oe_libinstall -C lib libxerces-c ${D}${libdir} - oe_libinstall -C lib libxerces-depdom ${D}${libdir} -} diff --git a/packages/xerces-c/xerces-c_2.8.0.bb b/packages/xerces-c/xerces-c_2.8.0.bb new file mode 100644 index 0000000000..4f72e9dc77 --- /dev/null +++ b/packages/xerces-c/xerces-c_2.8.0.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "Xerces-c is a validating xml parser written in C++" +HOMEPAGE = "http://xerces.apache.org/xerces-c/" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "r1" + +SRC_URI = "http://mirror.serversupportforum.de/apache/xerces/c/sources/xerces-c-src_2_8_0.tar.gz" +S = "${WORKDIR}/xerces-c-src_2_8_0/src/xercesc" + +inherit autotools pkgconfig + +CCACHE = "" +export XERCESCROOT="${WORKDIR}/xerces-c-src_2_8_0" +export cross_compiling = "yes" + +do_configure() { + ./runConfigure -plinux -c"${CC}" -x"${CXX}" -minmem -nsocket -tnative -rpthread -P${D}${prefix} \ + -C--build=${BUILD_SYS} \ + -C--host=${HOST_SYS} \ + -C--target=${TARGET_SYS} \ +} + +do_compile() { + ${MAKE} +} + +do_stage () { + oe_libinstall -C ${XERCESCROOT}/lib libxerces-c ${STAGING_LIBDIR} + oe_libinstall -C ${XERCESCROOT}/lib libxerces-depdom ${STAGING_LIBDIR} + cp -pPR ${XERCESCROOT}/include/xercesc ${STAGING_INCDIR} +} + +do_install () { + ${MAKE} install +} diff --git a/site/arm-linux b/site/arm-linux index 868d982ec4..033366a93c 100644 --- a/site/arm-linux +++ b/site/arm-linux @@ -176,3 +176,6 @@ ac_cv_func_pthread_attr_getstack=${ac_cv_func_pthread_attr_getstack=yes} ac_cv_member_struct_sockaddr_sa_len=${ac_cv_member_struct_sockaddr_sa_len=no} ac_cv_gnet_have_abstract_sockets=${ac_cv_gnet_have_abstract_sockets=no} gnet_sockaddr_family_field_name=${gnet_sockaddr_family_field_name=ss_family} + +# rp-pppoe +rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=rev} |