diff options
25 files changed, 195 insertions, 32 deletions
diff --git a/classes/package.bbclass b/classes/package.bbclass index 53e1b936b7..fd8d1b7b09 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -110,7 +110,7 @@ runstrip() { if test $st -ne 0 then oewarn "runstrip: ${STRIP} $1: strip failed" >&2 - if [ x${IGNORE_STRIP_ERRORS} != x1 ] + if [ x${IGNORE_STRIP_ERRORS} == x1 ] then #FIXME: remove this, it's for error detection if file "$1" 2>/dev/null >&2 diff --git a/conf/distro/debianslug.conf b/conf/distro/debianslug.conf index e496398c33..16c54c77da 100644 --- a/conf/distro/debianslug.conf +++ b/conf/distro/debianslug.conf @@ -6,7 +6,7 @@ # STANDARD DebianSlug DEFINITIONS #---------------------------------------------------------------------------------- DISTRO_NAME = "DebianSlug" -DISTRO_VERSION = "3.1-beta" +DISTRO_VERSION = "3.2-beta" DISTRO_FEED = "unstable" DISTRO_TYPE = "beta" SLUGOS_IMAGENAME = "debianslug" diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf index f5b5e75a60..8c1a16c77f 100644 --- a/conf/distro/openslug.conf +++ b/conf/distro/openslug.conf @@ -6,7 +6,7 @@ # STANDARD OpenSlug DEFINITIONS #---------------------------------------------------------------------------------- DISTRO_NAME = "OpenSlug" -DISTRO_VERSION = "3.1-beta" +DISTRO_VERSION = "3.2-beta" DISTRO_FEED = "unstable" DISTRO_TYPE = "beta" SLUGOS_IMAGENAME = "openslug" diff --git a/conf/distro/slugos-bag.conf b/conf/distro/slugos-bag.conf index c1f5ef8d03..3710243dab 100644 --- a/conf/distro/slugos-bag.conf +++ b/conf/distro/slugos-bag.conf @@ -6,7 +6,7 @@ # This slugos variant corresponds to OpenSlug DISTRO_NAME ?= "slugos-bag" -DISTRO_VERSION ?= "3.0-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "beta" diff --git a/conf/distro/slugos-bau.conf b/conf/distro/slugos-bau.conf index 72bafc1c1c..9a025d1bbd 100644 --- a/conf/distro/slugos-bau.conf +++ b/conf/distro/slugos-bau.conf @@ -7,7 +7,7 @@ # This slugos variant is not supported - there are no nslu2-linux.org # regular builds and there is no feed. DISTRO_NAME ?= "slugos-bau" -DISTRO_VERSION ?= "0-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "alpha" diff --git a/conf/distro/slugos-btu.conf b/conf/distro/slugos-btu.conf index 8c06605bc7..33f5d0a952 100644 --- a/conf/distro/slugos-btu.conf +++ b/conf/distro/slugos-btu.conf @@ -6,7 +6,7 @@ # This slugos variant corresponds to UcSlugC DISTRO_NAME ?= "slugos-btu" -DISTRO_VERSION ?= "3-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "beta" diff --git a/conf/distro/slugos-lag.conf b/conf/distro/slugos-lag.conf index c29958439b..ddfeba3c59 100644 --- a/conf/distro/slugos-lag.conf +++ b/conf/distro/slugos-lag.conf @@ -5,7 +5,7 @@ # This slugos variant is not supported - there are no nslu2-linux.org # regular builds and there is no feed. DISTRO_NAME ?= "slugos-lag" -DISTRO_VERSION ?= "0-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "alpha" diff --git a/conf/distro/slugos-lau.conf b/conf/distro/slugos-lau.conf index 3233f76364..6dc2c1f77b 100644 --- a/conf/distro/slugos-lau.conf +++ b/conf/distro/slugos-lau.conf @@ -5,7 +5,7 @@ # This slugos variant is not supported - there are no nslu2-linux.org # regular builds and there is no feed. DISTRO_NAME ?= "slugos-lau" -DISTRO_VERSION ?= "0-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "alpha" diff --git a/conf/distro/slugos-ltu.conf b/conf/distro/slugos-ltu.conf index 6d99e629ee..9e02bd1bb9 100644 --- a/conf/distro/slugos-ltu.conf +++ b/conf/distro/slugos-ltu.conf @@ -5,7 +5,7 @@ # This slugos variant is not supported - there are no nslu2-linux.org # regular builds and there is no feed. DISTRO_NAME ?= "slugos-ltu" -DISTRO_VERSION ?= "0-beta" +DISTRO_VERSION ?= "3.2-beta" DISTRO_FEED ?= "unstable" DISTRO_TYPE ?= "alpha" diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf index 572e20e730..16a5999738 100644 --- a/conf/distro/slugos.conf +++ b/conf/distro/slugos.conf @@ -166,7 +166,7 @@ PREFERRED_VERSION_glibc ?= "2.3.5+cvs20050627" # Select the correct versions of the kernel and modules (these are the # defaults, override in the conf/distro top-level distro file). PREFERRED_PROVIDER_virtual/kernel ?= "ixp4xx-kernel" -PREFERRED_VERSION_ixp4xx-kernel ?= "2.6.15.1" +PREFERRED_VERSION_ixp4xx-kernel ?= "2.6.15.2" # Built-in ethernet modules PREFERRED_PROVIDER_virtual/ixp-eth ?= "ixp400-eth" diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf index c9c70ca544..45daeb6632 100644 --- a/conf/distro/ucslugc.conf +++ b/conf/distro/ucslugc.conf @@ -4,7 +4,7 @@ # This is SLUGOS-BTU with a different name... DISTRO_NAME = "UcSlugC" -DISTRO_VERSION = "3-beta" +DISTRO_VERSION = "3.2-beta" DISTRO_FEED = "unstable" DISTRO_TYPE = "beta" SLUGOS_IMAGENAME = "ucslugc" diff --git a/conf/machine/h3900.conf b/conf/machine/h3900.conf index 59c29551f9..cab50dbdf6 100644 --- a/conf/machine/h3900.conf +++ b/conf/machine/h3900.conf @@ -35,4 +35,4 @@ include conf/machine/include/handheld-common.conf GUI_MACHINE_CLASS = "smallscreen" # not using tune-xscale so as to retain backwards compatibility -include conf/machine/tune-strongarm.conf +include conf/machine/tune-xscale.conf diff --git a/packages/altboot/altboot.bb b/packages/altboot/altboot.bb index 46a95ac5d6..a6b2bcb524 100644 --- a/packages/altboot/altboot.bb +++ b/packages/altboot/altboot.bb @@ -6,7 +6,7 @@ MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" LICENSE = "GPL" IGNORE_STRIP_ERRORS = "1" -PR = "r15" +PR = "r16" SRC_URI = "file://altboot-menu \ @@ -30,6 +30,8 @@ do_install() { install -m 0755 ${WORKDIR}/init.altboot ${D}/sbin install -m 0755 ${WORKDIR}/altboot-menu/*-* ${D}/etc/altboot-menu install -m 0755 ${WORKDIR}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced + install -m 0755 ${WORKDIR}/altboot.rc/*.sh ${D}/etc/altboot.rc + install -m 0644 ${WORKDIR}/altboot.rc/*.txt ${D}/etc/altboot.rc } diff --git a/packages/altboot/files/altboot-menu/15-bootSD b/packages/altboot/files/altboot-menu/15-bootSD index 6ce0cdc9b3..d086cde344 100644 --- a/packages/altboot/files/altboot-menu/15-bootSD +++ b/packages/altboot/files/altboot-menu/15-bootSD @@ -24,23 +24,24 @@ run_module() { /etc/init.d/devices start && echo ok >/dev/tty0|| die "FAILED" # We can't trust that the SD device file is there when running kernel 2.6 w/ udev - # Starting udev at this point may not be the best idea... -# echo "*1*" + # and starting udev at this point may not be the best idea... + if `uname -r | grep -q "2.6"` then - #echo "***" + #Let's just assume the device file name never changes... dev_no="`echo "$SD_DEVICE" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\1/p"`" part_no="`echo "/dev/mmcblk0p1" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\2/p"`" ! test -e /dev/mmcblk${dev_no} && mknod /dev/mmcblk${dev_no} b 254 0 - ! test -e /dev/mmcblk${dev_no}p${part_no} && mknod /dev/mmcblk${dev_no}p${part_no} b 254 $part_no - - #echo "[mknod /dev/mmcblk${dev_no}p${part_no}]" + ! test -e /dev/mmcblk${dev_no}p${part_no} && mknod /dev/mmcblk${dev_no}p${part_no} b 254 $part_no fi - if test -n "$SD_KERNEL_MODULE" + # Kernel 2.6 has the SD driver compiled into the kernel + if test -n "$SD_KERNEL_MODULE" then echo -n "Loading SD kernel module..." /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed" + else + echo "No SD kernel module, configured, assuming it's build-in" fi echo -n "Mounting $SD_MOUNTPOINT..." >/dev/tty0 diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func index e1196ecc7f..ceee6abae2 100644 --- a/packages/altboot/files/altboot.func +++ b/packages/altboot/files/altboot.func @@ -205,14 +205,14 @@ set_password() { then crypt_pw="`echo "$junk1" | md5sum | awk '{print $1}'`" - if test -e /etc/altboot.cfg + if test -e "${ALTBOOT_CFG_FILE}" then - sed "/^MASTER_PASSWORD/s/\(.*\=\).*/\1\"$crypt_pw\"/" /etc/altboot.cfg > /etc/altboot.cfg_ - mv /etc/altboot.cfg_ /etc/altboot.cfg + sed "/^MASTER_PASSWORD/s/\(.*\=\).*/\1\"$crypt_pw\"/" "${ALTBOOT_CFG_FILE}" > ${ALTBOOT_CFG_FILE}_ + mv ${ALTBOOT_CFG_FILE}_ ${ALTBOOT_CFG_FILE} MASTER_PASSWORD="$crypt_pw" echo "Password changed." else - echo "/etc/altboot.cfg is missing, no password saved" + echo "${ALTBOOT_CFG_FILE} is missing, no password saved" fi break diff --git a/packages/altboot/files/altboot.rc/disable_printk.sh b/packages/altboot/files/altboot.rc/disable_printk.sh new file mode 100644 index 0000000000..9d5f918c1e --- /dev/null +++ b/packages/altboot/files/altboot.rc/disable_printk.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +echo 0 > /proc/sys/kernel/printk + diff --git a/packages/altboot/files/altboot.rc/loadkeymap.sh b/packages/altboot/files/altboot.rc/loadkeymap.sh new file mode 100644 index 0000000000..f9a7774549 --- /dev/null +++ b/packages/altboot/files/altboot.rc/loadkeymap.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Note: With kernel 2.6 the standard keymap is unusable +test -x /etc/init.d/keymap && /etc/init.d/keymap start >/dev/null 2>&1 + diff --git a/packages/altboot/files/init.altboot b/packages/altboot/files/init.altboot index 2de4ba247c..cd8b6b8929 100644 --- a/packages/altboot/files/init.altboot +++ b/packages/altboot/files/init.altboot @@ -18,11 +18,15 @@ INIT_RUNLEVEL="`cat /etc/inittab | sed -n "/^id\:/s/id\:\([0-9]\)\:.*$/\1/p"`" test -z "$INIT_RUNLEVEL" && INIT_RUNLEVEL=5 case "`uname -r`" in -2.6*) test -e /etc/altboot-2.6.cfg && . /etc/altboot-2.6.cfg || echo "WARNING: No altboot-2.6.cfg found! Check your installation of Altboot!" > /dev/tty1;; -2.4*) test -e /etc/altboot-2.4.cfg && . /etc/altboot-2.4.cfg || echo "WARNING: No altboot-2.4.cfg found! Check your installation of Altboot!" > /dev/tty1;; -*) die "Unknown kernel [uname -r], no configuration found.";; +2.6*) ALTBOOT_CFG_FILE="/etc/altboot-2.6.cfg";; +2.4*) ALTBOOT_CFG_FILE="/etc/altboot-2.4.cfg";; +*) echo "Warning: Unknown kernel [`uname -r`], using kernel 2.6 configuration!" + ALTBOOT_CFG_FILE="/etc/altboot-2.6.cfg";; esac +echo "Using [${ALTBOOT_CFG_FILE}]" +test -e "$ALTBOOT_CFG_FILE" && . "$ALTBOOT_CFG_FILE" || echo "WARNING: No $ALTBOOT_CFG_FILE found! Check your installation of Altboot!" > /dev/tty1 + C_RED="\033[31m" C_BLUE="\033[34m" C_WHITE="\033[37m" diff --git a/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch new file mode 100644 index 0000000000..e4372de88f --- /dev/null +++ b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch @@ -0,0 +1,29 @@ +# strip (and objcopy) fail to set the error code if there is no +# output file name and the rename of the stripped (or copied) file +# fails, yet the command fails to do anything. This fixes both +# objcopy and strip. +# +#Signed-off-by: John Bowler <jbowler@acm.org> + +--- binutils-2.16/binutils/objcopy.c.orig 2006-01-31 11:15:38.797318519 -0800 ++++ binutils-2.16/binutils/objcopy.c 2006-01-31 11:15:40.463318516 -0800 +@@ -2434,7 +2434,8 @@ strip_main (int argc, char *argv[]) + if (preserve_dates) + set_times (tmpname, &statbuf); + if (output_file == NULL) +- smart_rename (tmpname, argv[i], preserve_dates); ++ if (smart_rename (tmpname, argv[i], preserve_dates)) ++ hold_status = 1; + status = hold_status; + } + else +@@ -3013,7 +3014,8 @@ copy_main (int argc, char *argv[]) + { + if (preserve_dates) + set_times (tmpname, &statbuf); +- smart_rename (tmpname, input_filename, preserve_dates); ++ if (smart_rename (tmpname, input_filename, preserve_dates)) ++ status = 1; + } + else + unlink (tmpname); diff --git a/packages/binutils/binutils_2.16.bb b/packages/binutils/binutils_2.16.bb index 994c2d4db8..9cca585cae 100644 --- a/packages/binutils/binutils_2.16.bb +++ b/packages/binutils/binutils_2.16.bb @@ -3,13 +3,14 @@ HOMEPAGE = "http://www.gnu.org/software/binutils/" SECTION = "devel" LICENSE = "GPL" MAINTAINER = "Gerald Britton <gbritton@doomcom.org>" -PR = "r5" +PR = "r6" SRC_URI = \ "http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2 \ file://ld_makefile.patch;patch=1 \ file://better_file_error.patch;patch=1 \ file://signed_char_fix.patch;patch=1 \ + file://binutils-2.16-objcopy-rename-errorcode.patch;patch=1 \ file://binutils-100_cflags_for_build.patch;patch=1" # uclibc patches diff --git a/packages/linux/ixp4xx-kernel_2.6.15.1.bb b/packages/linux/ixp4xx-kernel_2.6.15.2.bb index f7b919052b..86eec02957 100644 --- a/packages/linux/ixp4xx-kernel_2.6.15.1.bb +++ b/packages/linux/ixp4xx-kernel_2.6.15.2.bb @@ -8,7 +8,7 @@ PR_CONFIG = "0" # Increment the number below (i.e. the digits after PR) when # making changes within this file or for changes to the patches # applied to the kernel. -PR = "r17.${PR_CONFIG}" +PR = "r0.${PR_CONFIG}" include ixp4xx-kernel.inc diff --git a/packages/slugos-init/files/functions b/packages/slugos-init/files/functions index d631579966..ef10d65fb2 100644 --- a/packages/slugos-init/files/functions +++ b/packages/slugos-init/files/functions @@ -372,3 +372,17 @@ umountflash(){ return 0 } + +# +# uuid_by_partition +# output a list of partitions and their UUIDs +uuid_by_partition() { + blkid -c /dev/null -s UUID | sed -n 's/^\([^:]*\): .*UUID="\([^"]*\)".*$/\1 \2/p' +} + +# +# partition_of uuid +# return the partition corresponding to the UUID +partition_of() { + sed -n 's/^\([^ ]*\) '"$1"'$/\1/p' +} diff --git a/packages/slugos-init/files/initscripts/fixfstab b/packages/slugos-init/files/initscripts/fixfstab new file mode 100644 index 0000000000..67116a12fd --- /dev/null +++ b/packages/slugos-init/files/initscripts/fixfstab @@ -0,0 +1,91 @@ +#!/bin/sh +# validate /etc/fstab against the current UUID list in +# /etc/uuid_by_partition +# +. /etc/default/functions +pfile=/etc/uuid_by_partition + +# +# use debug to find out what is going on +test "$1" = start -o "$1" = debug || exit 0 + +# +# obtain the current list of parititions with UUIDs +newlist="$(uuid_by_partition)" + +if test -r "$pfile" +then + # read the old list + oldlist="$(cat "$pfile")" + # + # if it hasn't changed nothing need be done + test "$newlist" = "$oldlist" && exit 0 + # + # it has changed, but this only matters if + # a previously existing uuid has moved, build + # a list of old device vs new device for every + # uuid which has moved + changedlist="$( + { echo "$oldlist" + echo "$newlist" + } | awk 'device[$2] == ""{device[$2] = $1} + device[$2] != $1{print device[$2], $1}')" + + if test -n "$changedlist" + then + # at least one partition has moved, scan the + # current fstab to see if it has a reference + # to this partition + changedfstab="$( + { echo "$changedlist" + echo '#fstab' + cat /etc/fstab + } | awk 'BEGIN{list=1} + list==1 && $0=="#fstab"{list=0; continue} + list==1{new[$1] = $2; continue} + new[$1] != ""{print $1, new[$1]}')" + + # if this list is not empty edit the fstab + if test -n "$changedfstab" + then + rm -f /tmp/fstab.$$ + # if the edit fails then do not overwrite the old + # partition list - just exit with an error + { echo "$changedlist" + echo '#fstab' + cat /etc/fstab + } | awk 'BEGIN{list=1} + list==1 && $0=="#fstab"{list=0; continue} + list==1{new[$1] = $2; continue} + new[$1] != ""{$1 = new[$1]} + {print}' >/tmp/fstab.$$ || { + if test "$1" = start + then + logger -s "/etc/init.d/fixfstab: /tmp/fstab.$$: awk failed" + else + echo "debug: awk script failed with:" >&2 + echo "$changedlist" >&2 + echo "output in /tmp/fstab.$$" >&2 + fi + exit 1 + } + + if test "$1" = start + then + mv /tmp/fstab.$$ /etc/fstab || { + logger -s "/etc/init.d/fixfstab: /tmp/fstab.$$: update failed" + exit 1 + } + else + echo "debug: fstab changed:" + diff -u /etc/fstab /tmp/fstab.$$ + fi + fi + fi +fi + +# write the new list to the file, only if we +# are doing something... +test "$1" = start && echo "$newlist" >"$pfile" + +exit 0 diff --git a/packages/slugos-init/files/turnup b/packages/slugos-init/files/turnup index d27648680f..f7fe0e7960 100644 --- a/packages/slugos-init/files/turnup +++ b/packages/slugos-init/files/turnup @@ -17,6 +17,10 @@ INRAM_DISK="" force= # +# pfile: the uuid/partition file +pfile=/etc/uuid_by_partition + +# # fstype new # The type of the file system mounted on "new" Outputs the last # piece of information found, which should be the one for the @@ -312,7 +316,7 @@ setup_rootfs() { # setup_fstab new fsdev fstype fsoptions # Alters the /etc/fstab entry for / to refer to the correct device and # have the correct type and options. Essential for checkroot to remount -# / with the correct options. +# / with the correct options. Writes the initial uuid file. # bad, since sed won't fail even if it changes nothing. setup_fstab() { sed -i '\@^[^ ]*[ ][ ]*/[ ]@s@^.*$@'"$2 / $3 $4 1 1"'@' "$1"/etc/fstab @@ -322,6 +326,11 @@ setup_fstab() { echo " to ensure that the root partition is mounted correctly" >&2 return 1 } + # + # build $pfile + uuid_by_partition >"$1""$pfile" || + echo "turnup: $pfile: blkid failed (ignored)" >&2 + return 0 } # diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb index 179e5a735e..6a31fca367 100644 --- a/packages/slugos-init/slugos-init_0.10.bb +++ b/packages/slugos-init/slugos-init_0.10.bb @@ -4,7 +4,7 @@ PRIORITY = "required" LICENSE = "GPL" DEPENDS = "base-files devio" RDEPENDS = "busybox devio" -PR = "r51" +PR = "r52" SRC_URI = "file://boot/flash \ file://boot/disk \ @@ -12,6 +12,7 @@ SRC_URI = "file://boot/flash \ file://boot/ram \ file://boot/network \ file://boot/udhcpc.script \ + file://initscripts/fixfstab \ file://initscripts/syslog.buffer \ file://initscripts/syslog.file \ file://initscripts/syslog.network \ @@ -35,7 +36,8 @@ CPROGS = "${USRSBINPROGS} ${SBINPROGS}" SCRIPTS = "turnup reflash leds sysconf" BOOTSCRIPTS = "flash disk nfs ram network udhcpc.script" INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\ - leds_startup rmrecovery sysconfsetup umountinitrd.sh" + leds_startup rmrecovery sysconfsetup umountinitrd.sh\ + fixfstab" # This just makes things easier... S="${WORKDIR}" @@ -120,6 +122,7 @@ pkg_postinst_slugos-init() { test -n "$D" && opt="-r $D" update-rc.d $opt hwclock.sh start 8 S . start 45 0 6 . update-rc.d $opt umountinitrd.sh start 9 S . + update-rc.d $opt fixfstab start 10 S . update-rc.d $opt syslog.buffer start 11 S . start 49 0 6 . update-rc.d $opt sysconfsetup start 12 S . update-rc.d $opt syslog.file start 39 S . start 47 0 6 . |