Oh well, seems reportbug killed the patch when i got into mutt :/
Index: debian/postinst =================================================================== --- debian/postinst (revision 40788) +++ debian/postinst (working copy) @@ -29,6 +29,25 @@ case "`archdetect`" in powerpc/chrp_pegasos) kernel=`ls /target/boot/vmlinuz-2.* | sed -e 's%/target/boot/%%'` + if [ -d /proc/device-tree/openprom/firmware-version ]; then + firmware_version=`cat /proc/device-tree/openprom/firmware-version` + fv1=host="$(echo "$firmware_version" | cut -d. -f1)" + fv2=host="$(echo "$firmware_version" | cut -d. -f2)" + fv3=host="$(echo "$firmware_version" | cut -d. -f3)" + if [ "$fv1" -eq 1 ] && [ "$fv2" -eq 2 ] && [ "$fv3" -ge 99 ]; then + partitions_start=1 + else if [ "$fv1" -eq 1 ] && [ "$fv2" -ge 3 ]; then + partitions_start=1 + else if [ "$fv1" -ge 2 ]; then + partitions_start=1 + else + partitions_start=0 + fi + fi + fi + else + partitions_start=0 + fi if [ -d /sys/block ] && type udevinfo >/dev/null 2>&1; then bootfs_disk_syspath="$(dirname "$(udevinfo -q path -n "$bootfs_devfs")")" @@ -55,14 +74,22 @@ lun="$(echo "$bootfs_disk" | cut -d: -f4)" ;; esac - part="$(echo "$bootfs_devfs" | sed 's/[^0-9]*//')" + if [ "$partitions_start" -eq 0 ]; then + part=$(( "$(echo "$bootfs_devfs" | sed 's/[^0-9]*//')" - 1 )) + else + part="$(echo "$bootfs_devfs" | sed 's/[^0-9]*//')" + fi else kind=`echo $bootfs_devfs | sed -e 's%/dev/%%' -e 's%/host.*$%%'` host=`echo $bootfs_devfs | sed -e 's%^.*host%%' -e 's%/bus.*$%%'` bus=`echo $bootfs_devfs | sed -e 's%^.*bus%%' -e 's%/target.*$%%'` target=`echo $bootfs_devfs | sed -e 's%^.*target%%' -e 's%/lun.*$%%'` lun=`echo $bootfs_devfs | sed -e 's%^.*lun%%' -e 's%/part.*$%%'` - part=$((`echo $bootfs_devfs | sed -e 's%^.*part%%'`-1)) + if [ "$partitions_start" -eq 0 ]; then + part=$((s "$(`echo $bootfs_devfs | sed -e 's%^.*part%%')" -1)) + else + part="$(echo $bootfs_devfs | sed -e 's%^.*part%%')" + fi fi # We don't know how to map non ide or scsi disks @@ -76,7 +103,7 @@ ;; esac - # map theidevice to the OF aliases from /proc/device-tree/aliases. + # map the device to the OF aliases from /proc/device-tree/aliases. if [ -d /proc/device-tree/aliases ]; then for alias in `ls /proc/device-tree/aliases/*`; do device=`grep disk $alias | sed -e '[EMAIL PROTECTED]/]*/%/%g'` Index: debian/changelog =================================================================== --- debian/changelog (revision 40788) +++ debian/changelog (working copy) @@ -1,9 +1,14 @@ nobootloader (1.11) UNRELEASED; urgency=low + [ Colin Watson ] * Mark Open Firmware commands as untranslatable. - -- Colin Watson <[EMAIL PROTECTED]> Wed, 30 Aug 2006 10:12:20 +0100 + [ Sven Luther ] + * Check the pegasos firmware for versions older than 1.2.99, and substract + one from the partition number since those start counting partitions at 0. + -- Sven Luther <[EMAIL PROTECTED]> Tue, 19 Sep 2006 19:30:56 +0200 + nobootloader (1.10) unstable; urgency=low * If /sys/block and udevinfo are available, use them instead of devfs