OK, here it is... Hard to get, I got it only after multiple looped tries with wget. :/ Cheers, -- ((__,-"""-,__)) Aurélien GÉRÔME .---. `--)~ ~(--` Free Software Developer / \ .-'( )`-. Unix Sys & Net Admin \.@-@./ `~~`@) (@`~~` /`\_/`\ | | .''`. // _ \\ | | : :' : | \ )|_ (8___8) `. `'` /`\_`> <_/ \ `---` `- \__/'---'\__/ BOFH excuse #9: doppler effect
diff -pruN 1.3.13-4.1/debian/changelog 1.3.13-4.1ubuntu5/debian/changelog --- 1.3.13-4.1/debian/changelog 2006-06-22 01:31:45.000000000 +0100 +++ 1.3.13-4.1ubuntu5/debian/changelog 2006-06-22 01:31:47.000000000 +0100 @@ -1,3 +1,36 @@ +yaboot (1.3.13-4.1ubuntu5) dapper; urgency=low + + * Sort k2-sata host list (closes: Malone #40692). + + -- Colin Watson <cjwatson@ubuntu.com> Mon, 22 May 2006 13:40:07 +0100 + +yaboot (1.3.13-4.1ubuntu4) dapper; urgency=low + + * Fix ofpath's handling of disks on k2-sata controllers (thanks, Eirik + Fuller; closes: #294081, Malone #18474). + * Attempt to support FireWire-connected disks (closes: Malone #7939). + + -- Colin Watson <cjwatson@ubuntu.com> Sat, 1 Apr 2006 09:54:10 +0100 + +yaboot (1.3.13-4.1ubuntu3) dapper; urgency=low + + * Drop gcc-3.3 build dependency and build with gcc 4.0. + + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 3 Feb 2006 12:25:00 +0000 + +yaboot (1.3.13-4.1ubuntu2) dapper; urgency=low + + * Reapply mising patch for cfg to accept image[<mach>]= stanzas in + yaboot.conf. + + -- Ben Collins <bcollins@ubuntu.com> Fri, 13 Jan 2006 15:33:58 -0500 + +yaboot (1.3.13-4.1ubuntu1) dapper; urgency=low + + * Resynchronise with Debian. + + -- Colin Watson <cjwatson@ubuntu.com> Sun, 8 Jan 2006 15:15:30 +0000 + yaboot (1.3.13-4.1) unstable; urgency=low * NMU @@ -6,18 +39,72 @@ yaboot (1.3.13-4.1) unstable; urgency=lo -- Don Armstrong <don@debian.org> Sat, 31 Dec 2005 00:04:32 -0800 +yaboot (1.3.13-4ubuntu1) dapper; urgency=low + + * Resynchronise with Debian. + + -- Colin Watson <cjwatson@ubuntu.com> Mon, 28 Nov 2005 16:57:37 +0000 + yaboot (1.3.13-4) unstable; urgency=low * Apply upstream patch to ofpath (Closes: #321962) -- Warren A. Layton <zeevon@debian.org> Wed, 10 Aug 2005 07:31:37 -0400 +yaboot (1.3.13-3ubuntu4) breezy; urgency=low + + * Build-Depends: gcc-3.3. Closes: #15266 + + -- LaMont Jones <lamont@ubuntu.com> Mon, 12 Sep 2005 10:45:48 -0600 + +yaboot (1.3.13-3ubuntu3) breezy; urgency=low + + * Fix lib/strstr.c FTBFS with gcc-4.0. + + * ofpath: fix checks of /proc/device-tree: + + According to commit 5f64f73957f6cae3222f97f2599199ee562f7f3f + in 2.6.12: + + [PATCH] ppc32/ppc64: cleanup /proc/device-tree + [....] + - Do not create symlinks for the short name and unit address parts of a + node. These were never really used, bloated the memory footprint of + the device-tree with useless struct proc_dir_entry and their matching + dentry and inode cache bloat. + + ofpath always assumed the presence of symlinks to verify a valide + /proc/device-tree. Change them to verify presence of directories instead. + + Patches and tests kindly done by Ryan Lortie. + + -- Fabio M. Di Nitto <fabbione@ubuntu.com> Fri, 01 Jul 2005 07:46:39 +0200 + +yaboot (1.3.13-3ubuntu2) hoary; urgency=low + + * ofpath: Support Pegasos (treat it like NewWorld for now). + * ofpath: Add support for IDE devices with spi device_type. + + -- Colin Watson <cjwatson@ubuntu.com> Tue, 15 Mar 2005 20:04:38 +0000 + +yaboot (1.3.13-3ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + + -- Colin Watson <cjwatson@canonical.com> Mon, 29 Nov 2004 11:49:03 +0000 + yaboot (1.3.13-3) unstable; urgency=low * Add Amiga support courtesy of Sven Luther (Closes: #267812) -- Warren A. Layton <zeevon@debian.org> Thu, 25 Nov 2004 21:19:22 -0500 +yaboot (1.3.13-2ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + + -- Scott James Remnant <scott@canonical.com> Wed, 27 Oct 2004 15:33:04 +0100 + yaboot (1.3.13-2) unstable; urgency=low * postinst script doesn't redirect to /dev/tty anymore @@ -27,6 +114,14 @@ yaboot (1.3.13-2) unstable; urgency=low -- Warren A. Layton <zeevon@debian.org> Sat, 24 Jul 2004 12:04:13 -0400 +yaboot (1.3.13-1ubuntu1) warty; urgency=low + + * Apply Ubuntu branding to the first-stage bootstrap script. If nothing + else, this means I can tell the Debian and Ubuntu boot menus apart while + testing. + + -- Colin Watson <cjwatson@canonical.com> Thu, 9 Sep 2004 17:28:25 +0100 + yaboot (1.3.13-1) unstable; urgency=low * New upstream release (all bugfixes below are a result of upstream work) diff -pruN 1.3.13-4.1/first/ofboot 1.3.13-4.1ubuntu5/first/ofboot --- 1.3.13-4.1/first/ofboot 2003-10-05 00:58:00.000000000 +0100 +++ 1.3.13-4.1ubuntu5/first/ofboot 2006-06-22 01:31:47.000000000 +0100 @@ -336,7 +336,7 @@ $FGCOLOR to foreground-color $BGCOLOR to background-color \" \"(0C)\" .printf -\" First Stage GNU/Linux Bootstrap\"(0d 0a)\" .printf +\" First Stage Ubuntu Bootstrap\"(0d 0a)\" .printf \" \"(0d 0a)\" .printf $MENUOPTS \" \"(0d 0a)\" .printf diff -pruN 1.3.13-4.1/lib/ctype.c 1.3.13-4.1ubuntu5/lib/ctype.c --- 1.3.13-4.1/lib/ctype.c 2001-09-20 14:15:31.000000000 +0100 +++ 1.3.13-4.1ubuntu5/lib/ctype.c 2006-06-22 01:31:47.000000000 +0100 @@ -44,3 +44,11 @@ int strcasecmp(const char *s1, const cha } } +int strncasecmp(const char *cs,const char *ct,size_t n) +{ + signed char __res = 0; + while (n--) + if ((__res = tolower(*cs) - tolower(*ct++)) != 0 || !*cs++) + break; + return __res; +} diff -pruN 1.3.13-4.1/second/cfg.c 1.3.13-4.1ubuntu5/second/cfg.c --- 1.3.13-4.1/second/cfg.c 2001-12-01 09:58:10.000000000 +0000 +++ 1.3.13-4.1ubuntu5/second/cfg.c 2006-06-22 01:31:47.000000000 +0100 @@ -28,6 +28,7 @@ /* Imported functions */ extern int strcasecmp(const char *s1, const char *s2); +extern int strncasecmp(const char *cs, const char *ct, size_t n); typedef enum { cft_strg, cft_flag, cft_end @@ -101,10 +102,12 @@ static char *currp = NULL; static char *endp = NULL; static char *file_name = NULL; static CONFIG *curr_table = cf_options; +static int ignore_entry; static jmp_buf env; static struct IMAGES { CONFIG table[sizeof (cf_image) / sizeof (cf_image[0])]; + int obsolete; struct IMAGES *next; } *images = NULL; @@ -277,6 +280,16 @@ static int cfg_next (char **item, char * return 1; } +static char *cfg_get_strg_i (CONFIG * table, char *item) +{ + CONFIG *walk; + + for (walk = table; walk->type != cft_end; walk++) + if (walk->name && !strcasecmp (walk->name, item)) + return walk->data; + return 0; +} + #if 0 // The one and only call to this procedure is commented out // below, so we don't need this unless we decide to use it again. @@ -287,13 +300,85 @@ static void cfg_return (char *item, char } #endif +static int match_arch(const char *name) +{ + static prom_handle root; + static char model[256], *p; + + if (!root) { + if (!(root = prom_finddevice("/"))) + return 0; + } + + if (!model[0]) { + if (!prom_getprop(root, "compatible", model, sizeof(model))) + return 0; + } + + for (p = model; *p; p += strlen(p) + 1) { + if (!strcasecmp(p, name)) + return 1; + } + + return 0; +} + +static void check_for_obsolete(const char *label) +{ + struct IMAGES *p; + char *cur_label; + + /* Make sure our current entry isn't obsolete (ignored) */ + for (p = images; p; p = p->next) { + if (curr_table == p->table && p->obsolete) + return; + } + + for (p = images; p; p = p->next) { + if (curr_table == p->table) + continue; + + cur_label = cfg_get_strg_i (p->table, "label"); + if (!cur_label) + cur_label = cfg_get_strg_i (p->table, "image"); + + if (!cur_label) + continue; + + if (!strcasecmp(cur_label, label)) + p->obsolete = 1; + } +} + static int cfg_set (char *item, char *value) { CONFIG *walk; - if (!strcasecmp (item, "image")) { + if (!strncasecmp (item, "image", 5)) { struct IMAGES **p = &images; + int ignore = 0; + + if (item[5] == '[' && item[strlen(item) - 1] == ']') { + char *s, *q = item; + + /* Get rid of braces */ + item[strlen(item) - 1] = 0; + item[5] = 0; + + for (s = item + 6; q; s = q) { + q = strchr(s, '|'); + if (q) + *q++ = 0; + + if (match_arch(s)) + goto cfg_set_cont; + } + /* This just creates an unused table. It will get ignored */ + ignore = 1; + } else if (item[5]) + goto cfg_set_redo; +cfg_set_cont: while (*p) p = &((*p)->next); *p = (struct IMAGES *)malloc (sizeof (struct IMAGES)); @@ -302,9 +387,12 @@ static int cfg_set (char *item, char *va return -1; } (*p)->next = 0; + (*p)->obsolete = ignore; curr_table = ((*p)->table); memcpy (curr_table, cf_image, sizeof (cf_image)); } + +cfg_set_redo: for (walk = curr_table; walk->type != cft_end; walk++) { if (walk->name && !strcasecmp (walk->name, item)) { if (value && walk->type != cft_strg) @@ -312,6 +400,8 @@ static int cfg_set (char *item, char *va else if (!value && walk->type == cft_strg) cfg_warn ("Value expected for '%s'", walk->name); else { + if (!strcasecmp (item, "label")) + check_for_obsolete(value); if (walk->data) cfg_warn ("Duplicate entry '%s'", walk->name); if (walk->type == cft_flag) @@ -322,9 +412,12 @@ static int cfg_set (char *item, char *va break; } } + if (walk->type != cft_end) return 1; -// cfg_return (item, value); + + //cfg_return (item, value); + return 0; } @@ -343,23 +436,13 @@ int cfg_parse (char *cfg_file, char *buf return 0; if (!cfg_set (item, value)) { #if DEBUG - prom_printf("Can't set item %s to value %s\n", item, value); -#endif + prom_printf("Can't set item %s to value %s\n", item, value); +#endif } free (item); } } -static char *cfg_get_strg_i (CONFIG * table, char *item) -{ - CONFIG *walk; - - for (walk = table; walk->type != cft_end; walk++) - if (walk->name && !strcasecmp (walk->name, item)) - return walk->data; - return 0; -} - char *cfg_get_strg (char *image, char *item) { struct IMAGES *p; @@ -369,6 +452,9 @@ char *cfg_get_strg (char *image, char *i if (!image) return cfg_get_strg_i (cf_options, item); for (p = images; p; p = p->next) { + if (p->obsolete) + continue; + label = cfg_get_strg_i (p->table, "label"); if (!label) { label = cfg_get_strg_i (p->table, "image"); @@ -417,6 +503,9 @@ void cfg_print_images (void) printl_count = 0; for (p = images; p; p = p->next) { + if (p->obsolete) + continue; + label = cfg_get_strg_i (p->table, "label"); if (!label) { label = cfg_get_strg_i (p->table, "image"); @@ -439,15 +528,21 @@ void cfg_print_images (void) char *cfg_get_default (void) { char *label; + struct IMAGES *p; char *ret = cfg_get_strg_i (cf_options, "default"); if (ret) return ret; if (!images) return 0; - ret = cfg_get_strg_i (images->table, "label"); + + for (p = images; p && p->obsolete; p = p->next); + if (!p) + return 0; + + ret = cfg_get_strg_i (p->table, "label"); if (!ret) { - ret = cfg_get_strg_i (images->table, "image"); + ret = cfg_get_strg_i (p->table, "image"); label = strrchr (ret, '/'); if (label) ret = label + 1; diff -pruN 1.3.13-4.1/ybin/ofpath 1.3.13-4.1ubuntu5/ybin/ofpath --- 1.3.13-4.1/ybin/ofpath 2006-06-22 01:31:45.000000000 +0100 +++ 1.3.13-4.1ubuntu5/ybin/ofpath 2006-06-22 01:31:47.000000000 +0100 @@ -299,9 +299,15 @@ scsi_ofpath() ;; ata_k2|sata_svw) HOST_LIST="$(for i in `find /proc/device-tree -name compatible` ; do - lgrep "$i" "k2-s-ata" ; done)" + lgrep "$i" "k2-sata" ; done | sort)" DEVICE_PATH="$(printhost $SCSI_HOSTNUMBER $HOST_LIST)" - echo "${DEVICE_PATH##*device-tree}/k2-sata@$DEVICE_ID/disk@0:$PARTITION" + echo "${DEVICE_PATH##*device-tree}/disk@0:$PARTITION" + ;; + sbp2) + HOST_LIST="$(for i in `find /proc/device-tree -name name` ; do + lgrep "$i" "sbp-2" ; done)" + DEVICE_PATH="$(printhost $SCSI_HOSTNUMBER $HOST_LIST)" + echo "${DEVICE_PATH##*device-tree}/disk@0:$PARTITION" ;; *) echo 1>&2 "$PRG: Driver: $SCSI_DRIVER is not supported" @@ -396,6 +402,10 @@ ide_ofpath() local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))" local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))" ;; + spi) + local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0" + local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1" + ;; *) echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\"" return 1 @@ -659,7 +669,7 @@ chrp() { case "$DEVNODE" in sd*) - if ls -l /proc/device-tree | grep -q ^lr ; then + if ls -l /proc/device-tree | grep -q ^d ; then true else echo 1>&2 "$PRG: /proc/device-tree is broken." @@ -906,6 +916,8 @@ elif (cat /proc/cpuinfo 2>/dev/null | gr SUBARCH=OldWorld elif (cat /proc/cpuinfo 2> /dev/null | grep ^machine | grep -q 'CHRP IBM') ; then SUBARCH=CHRP +elif (cat /proc/cpuinfo 2>/dev/null | grep ^machine | grep -q 'CHRP Pegasos') ; then + SUBARCH=Pegasos else echo 1>&2 "$PRG: This machine is not yet supported" exit 1 @@ -928,7 +940,8 @@ PARTITION="${DEVICE##*[a-z]}" ## use appropriate search for right sub arch. case "$SUBARCH" in - NewWorld) + # Pegasos OF seems to be NewWorld-ish enough to cope with this. + NewWorld|Pegasos) newworld || exit 1 ;; OldWorld)
Attachment:
signature.asc
Description: Digital signature