rpms/anaconda/F-9 anaconda-11.4.0.82-sparc-fixes.patch, NONE, 1.1 keymaps-sparc, NONE, 1.1 screenfont-sparc.gz, NONE, 1.1 anaconda.spec, 1.681, 1.682

Tom Callaway spot at fedoraproject.org
Wed Oct 1 13:09:39 UTC 2008


Author: spot

Update of /cvs/pkgs/rpms/anaconda/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30402

Modified Files:
	anaconda.spec 
Added Files:
	anaconda-11.4.0.82-sparc-fixes.patch keymaps-sparc 
	screenfont-sparc.gz 
Log Message:
sparc support

anaconda-11.4.0.82-sparc-fixes.patch:

--- NEW FILE anaconda-11.4.0.82-sparc-fixes.patch ---
diff -up anaconda-11.4.0.82/autopart.py.BAD anaconda-11.4.0.82/autopart.py
diff -up anaconda-11.4.0.82/bootdisk/sparc/boot.msg.BAD anaconda-11.4.0.82/bootdisk/sparc/boot.msg
--- anaconda-11.4.0.82/bootdisk/sparc/boot.msg.BAD	2008-09-28 09:43:05.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/boot.msg	2008-09-28 09:40:50.000000000 -0400
@@ -0,0 +1,10 @@
+
+                   Welcome to Fedora SPARC Linux!
+
+ -  To install or upgrade in graphical mode, press the <ENTER> key.
+
+ -  To install or upgrade in text mode, type: linux text <ENTER>.
+
+ -  Use the function keys listed below for more information.
+
+[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]
diff -up anaconda-11.4.0.82/bootdisk/sparc/general.msg.BAD anaconda-11.4.0.82/bootdisk/sparc/general.msg
--- anaconda-11.4.0.82/bootdisk/sparc/general.msg.BAD	2008-09-28 09:43:05.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/general.msg	2008-09-28 09:41:00.000000000 -0400
@@ -0,0 +1,22 @@
+
+                        General Boot Help
+
+You are now ready to begin the installation process.  In most cases, 
+the best way to get started is to simply press the <ENTER> key.
+
+If you are having problems with the graphical installer, you can use the 
+'resolution=<width>x<height>' option to try and force a
+particular resolution. For example, boot with 
+'linux resolution=1024x768'.  
+
+Certain hardware configurations may have trouble with the automatic hardware
+detection done during the installation.  If you experience problems during the 
+installation, restart the installation adding the 'noprobe' option.  The
+'skipddc' option will also skip monitor probing which hangs some systems.
+
+There are a number of parameters that can be passed to the Linux kernel
+at boot time.  Press <F4> for more information. 
+
+
+[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]
+
diff -up anaconda-11.4.0.82/bootdisk/sparc/options.msg.BAD anaconda-11.4.0.82/bootdisk/sparc/options.msg
--- anaconda-11.4.0.82/bootdisk/sparc/options.msg.BAD	2008-09-28 09:43:05.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/options.msg	2008-09-28 09:41:08.000000000 -0400
@@ -0,0 +1,18 @@
+
+                       Installer Boot Options
+
+ -  To disable hardware probing, type: linux noprobe <ENTER>.  
+
+ -  To test the install media you are using, type: linux mediacheck <ENTER>.  
+
+ -  To enable rescue mode, type: linux rescue <ENTER>.  
+    Press <F5> for more information about rescue mode.
+
+ -  If you have a driver disk, type: linux dd <ENTER>.
+
+ -  To prompt for the use of other install methods such as network
+    install when booting from a CD, type linux askmethod <ENTER>.
+
+ -  If you have an installer update disk, type: linux updates <ENTER>.
+
+[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]
diff -up anaconda-11.4.0.82/bootdisk/sparc/param.msg.BAD anaconda-11.4.0.82/bootdisk/sparc/param.msg
--- anaconda-11.4.0.82/bootdisk/sparc/param.msg.BAD	2008-09-28 09:43:05.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/param.msg	2008-09-28 09:41:15.000000000 -0400
@@ -0,0 +1,19 @@
+
+                        Kernel Parameter Help
+
+Some kernel parameters can be specified on the command line and will be
+passed to the kernel.
+
+To pass an option to the kernel, use the following format:
+
+     linux <options>
+
+If a different installation mode is desired, enter it after the option(s).
+
+For example, to install on a system with 256MB of RAM using noprobe mode, 
+type the following:
+
+     linux mem=256M noprobe
+
+
+[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]
diff -up anaconda-11.4.0.82/bootdisk/sparc/rescue.msg.BAD anaconda-11.4.0.82/bootdisk/sparc/rescue.msg
--- anaconda-11.4.0.82/bootdisk/sparc/rescue.msg.BAD	2008-09-28 09:43:05.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/rescue.msg	2008-09-28 09:41:21.000000000 -0400
@@ -0,0 +1,17 @@
+
+                        Rescue Mode Help
+
+The installer includes a rescue mode which can be used when a system
+does not boot properly.  The rescue mode includes many useful
+utilities (editor, hard drive and RAID tools, etc.) which will allow
+one to restore a system to a working state.
+
+To enter the rescue mode, boot your system from the installation
+CDROM or floppy and type linux rescue <ENTER>.
+
+
+
+
+
+[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]
+
diff -up anaconda-11.4.0.82/bootdisk/sparc/silo.conf.BAD anaconda-11.4.0.82/bootdisk/sparc/silo.conf
--- anaconda-11.4.0.82/bootdisk/sparc/silo.conf.BAD	2008-09-28 09:43:11.000000000 -0400
+++ anaconda-11.4.0.82/bootdisk/sparc/silo.conf	2008-09-28 09:42:09.000000000 -0400
@@ -0,0 +1,32 @@
+partition=1
+default=linux
+read-write
+timeout=100
+message=/etc/boot.msg
+image="cat /etc/boot.msg"
+        label=1
+        single-key
+image="cat /etc/options.msg"
+        label=2
+        single-key
+image="cat /etc/general.msg"
+        label=3
+        single-key
+image="cat /etc/param.msg"
+        label=4
+        single-key
+image="cat /etc/rescue.msg"
+        label=5
+        single-key
+image[sun4u]=/boot/vmlinux
+        label=linux
+        alias=install
+        initrd=/boot/initrd.img
+image[sun4u]=/boot/vmlinux
+        label=text
+        append=text
+        initrd=/boot/initrd.img
+image[sun4u]=/boot/vmlinux
+        label=ks
+        append=ks
+        initrd=/boot/initrd.img
diff -up anaconda-11.4.0.82/isys/isys.c.BAD anaconda-11.4.0.82/isys/isys.c
diff -up anaconda-11.4.0.82/isys/Makefile.BAD anaconda-11.4.0.82/isys/Makefile
--- anaconda-11.4.0.82/isys/Makefile.BAD	2008-09-28 09:54:57.000000000 -0400
+++ anaconda-11.4.0.82/isys/Makefile	2008-09-28 09:55:20.000000000 -0400
@@ -69,7 +69,7 @@ _isys.so: isys.lo $(SOBJECTS)
 	gcc -shared -g -fPIC -o $@ isys.lo $(SOBJECTS) $(LOADLIBES) $(LDFLAGS)
 
 _silo.so: silo.c
-	gcc -shared $(CFLAGS) -fpic -o $@ silo.c ../balkan/libbalkan.a
+	gcc -shared $(CFLAGS) -fpic -o $@ silo.c
 
 libisys.a: libisys.a($(OBJECTS))
 
diff -up anaconda-11.4.0.82/isys/silo.c.BAD anaconda-11.4.0.82/isys/silo.c
--- anaconda-11.4.0.82/isys/silo.c.BAD	2008-09-28 09:45:38.000000000 -0400
+++ anaconda-11.4.0.82/isys/silo.c	2008-09-28 09:54:49.000000000 -0400
@@ -20,10 +20,10 @@
  * Author(s): Jakub Jelinek <jakub at redhat.com>
  */
 
-#define _GNU_SOURCE
 #include <fcntl.h>
 #include <stdio.h>
 #include <unistd.h>
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/ioctl.h>
@@ -55,6 +55,7 @@ static char buf[4096];
 static char regstr[40];
 #define DECL_OP(size) struct openpromio *op = (struct openpromio *)buf; op->oprom_size = (size)
 
+/*
 static int
 prom_setcur(int node) {
     DECL_OP(sizeof(int));
@@ -66,6 +67,7 @@ prom_setcur(int node) {
     prom_current_node = *(int *)op->oprom_array;
     return *(int *)op->oprom_array;
 }
+*/
 
 static int
 prom_getsibling(int node) {
@@ -122,6 +124,7 @@ prom_setopt(char *var, char *value) {
     ioctl (promfd, OPROMSETOPT, op);
 }
 
+/*
 static int
 prom_getbool(char *prop) {
     DECL_OP(0);
@@ -137,6 +140,7 @@ prom_getbool(char *prop) {
                 return 1;
     }
 }
+*/
 
 static int
 prom_pci2node(int bus, int devfn) {
@@ -150,6 +154,7 @@ prom_pci2node(int bus, int devfn) {
     return *(int *)op->oprom_array;
 }
 
+/*
 static int
 prom_path2node(char *path) {
     DECL_OP(MAX_VAL);
@@ -160,6 +165,7 @@ prom_path2node(char *path) {
     prom_current_node = *(int *)op->oprom_array;
     return *(int *)op->oprom_array;
 }
+*/
 
 #define PW_TYPE_SBUS	1
 #define PW_TYPE_PCI	2
@@ -253,7 +259,7 @@ prom_init(int mode) {    
 static struct sdsk_disk {
     unsigned int prom_node;
     unsigned int type, host, hi, mid, lo;
-    unsigned char *prom_name;
+    char *prom_name;
 } *hd = NULL, *sd = NULL;
 static int hdlen, sdlen;
 
@@ -745,8 +751,8 @@ int main(void) {
 
 static PyObject *disk2PromPath (PyObject *, PyObject *);
 static PyObject *zeroBasedPart (PyObject *, PyObject *);
-static PyObject *hasAliases (void);
-static PyObject *promRootName (void);
+static PyObject *hasAliases (PyObject *, PyObject *);
+static PyObject *promRootName (PyObject *, PyObject *);
 static PyObject *setPromVars (PyObject *, PyObject *);
 
 static PyMethodDef _siloMethods[] = {
@@ -773,7 +779,7 @@ init_silo ()
 static PyObject *
 disk2PromPath (PyObject *self, PyObject *args)
 {
-    unsigned char *disk, prompath[1024];
+    char *disk, prompath[1024];
     int diskno = -1, part;
 
     if (!PyArg_ParseTuple (args, "s", &disk))
@@ -818,13 +824,130 @@ disk2PromPath (PyObject *self, PyObject 
     return Py_BuildValue ("s", prompath);
 }
 
-#include "../balkan/balkan.h"
-#include "../balkan/sun.h"
+#define SUN_DISK_MAGIC		0xDABE	/* Disk magic number */
+#define WHOLE_DISK		5
+#define UFS_SUPER_MAGIC		0x00011954
+
+#define be16_to_cpu(x) x
+#define be32_to_cpu(x) x
+#define be64_to_cpu(x) x
+
+#define swab32(x) \
+	((uint32_t)( \
+		(((uint32_t)(x) & (uint32_t)0x000000ffUL) << 24) | \
+		(((uint32_t)(x) & (uint32_t)0x0000ff00UL) <<  8) | \
+		(((uint32_t)(x) & (uint32_t)0x00ff0000UL) >>  8) | \
+		(((uint32_t)(x) & (uint32_t)0xff000000UL) >> 24) ))
+
+struct partition {
+    long startSector;
+    long size;		/* in sectors */
+    int type;		/* -1 for "not used" */
+};
+
+struct partitionTable {
+    int allocationUnit;		/* in sectors */
+    int maxNumPartitions;
+    int sectorSize;
+    struct partition parts[50];
+};
+
+struct singlePartitionTable {
+    unsigned char info[128];	/* Informative text string */
+    unsigned char spare0[14];
+    struct sun_info {
+	unsigned char spare1;
+	unsigned char id;
+	unsigned char spare2;
+	unsigned char flags;
+    } infos[8];
+    unsigned char spare1[246];	/* Boot information etc. */
+    unsigned short rspeed;	/* Disk rotational speed */
+    unsigned short pcylcount;	/* Physical cylinder count */
+    unsigned short sparecyl;	/* extra sects per cylinder */
+    unsigned char spare2[4];	/* More magic... */
+    unsigned short ilfact;	/* Interleave factor */
+    unsigned short ncyl;	/* Data cylinder count */
+    unsigned short nacyl;	/* Alt. cylinder count */
+    unsigned short ntrks;	/* Tracks per cylinder */
+    unsigned short nsect;	/* Sectors per track */
+    unsigned char spare3[4];	/* Even more magic... */
+    struct sun_partition {
+	unsigned int start_cylinder;
+	unsigned int num_sectors;
+    } parts[8];
+    unsigned short magic;	/* Magic number */
+    unsigned short csum;	/* Label xor'd checksum */
+};
+
+long long llseek(int fd, long long offset, int whence);
+
+int sunpReadTable(int fd, struct partitionTable * table) {
+    struct singlePartitionTable singleTable;
+    int i, magic;
+    unsigned short *p, csum;
+
+    table->maxNumPartitions = 8;
+
+    for (i = 0; i < table->maxNumPartitions; i++)
+       table->parts[i].type = -1;
+
+    table->sectorSize = 512;
+
+    if (lseek(fd, 0, SEEK_SET) < 0)
+        return 1;
+    
+    if (read(fd, &singleTable, sizeof(singleTable)) != sizeof(singleTable))
+       return 1;
+
+    if (be16_to_cpu(singleTable.magic) != SUN_DISK_MAGIC)
+       return 2;
+    
+    for (p = (unsigned short *)&singleTable, csum = 0; p < (unsigned short *)(&singleTable+1);)
+       csum ^= *p++;
+
+    if (csum)
+	return 2;
+       
+    for (i = 0; i < 8; i++) {
+       if (!singleTable.parts[i].num_sectors) continue;
+
+       table->parts[i].startSector =
+           be32_to_cpu(singleTable.parts[i].start_cylinder) * be16_to_cpu(singleTable.nsect) * be16_to_cpu(singleTable.ntrks);
+       table->parts[i].size =
+	    be32_to_cpu(singleTable.parts[i].num_sectors);
+       table->parts[i].type = singleTable.infos[i].id;
+    }
+       
+    for (i = 0; i < 8; i++) {
+ 	if (table->parts[i].type == -1) continue;
+       
+       switch (table->parts[i].type) {
+         case 0x83:
+	    table->parts[i].type = 2;
+           break;
+       
+         case 0x82:
+           table->parts[i].type = 5;
+	    break;
+       
+         default:
+           if (table->parts[i].type != WHOLE_DISK && llseek(fd, (8192 + 0x55c + 512 * (unsigned long long)table->parts[i].startSector), SEEK_SET) >= 0 && read(fd, &magic, 4) && (magic == UFS_SUPER_MAGIC || swab32(magic) == UFS_SUPER_MAGIC))
+               table->parts[i].type = 6;
+           else
+               table->parts[i].type = 3;
+           break;
+       }
+    }
+
+    return 0;
+}
+
 
 static PyObject *
 zeroBasedPart (PyObject *self, PyObject *args)
 {
-    unsigned char *disk;
+    char *disk;
     int part = 3, fd, i;
     struct partitionTable table;
 
@@ -851,13 +974,13 @@ zeroBasedPart (PyObject *self, PyObject 
 }
 
 static PyObject *
-hasAliases (void)
+hasAliases (PyObject *self, PyObject *args)
 {
     return Py_BuildValue ("i", hasaliases);
 }
 
 static PyObject *
-promRootName (void)
+promRootName (PyObject *self, PyObject *args)
 {
     return Py_BuildValue ("s", prom_root_name ? prom_root_name : "");
 }
diff -up anaconda-11.4.0.82/loader2/hardware.c.BAD anaconda-11.4.0.82/loader2/hardware.c
--- anaconda-11.4.0.82/loader2/hardware.c.BAD	2008-09-28 10:40:17.000000000 -0400
+++ anaconda-11.4.0.82/loader2/hardware.c	2008-09-28 10:45:38.000000000 -0400
@@ -140,6 +140,10 @@ int earlyModuleLoad(int justProbe) {
 }
 
 int busProbe(int justProbe) {
+    /* this is a hack since we can't really probe for the old Sun mouse */
+#ifdef __sparc__
+    mlLoadModuleSet("sermouse");
+#endif
     /* autodetect whatever we can */
     if (justProbe)
         return 0;
diff -up anaconda-11.4.0.82/loader2/init.c.BAD anaconda-11.4.0.82/loader2/init.c
--- anaconda-11.4.0.82/loader2/init.c.BAD	2008-09-28 10:08:50.000000000 -0400
+++ anaconda-11.4.0.82/loader2/init.c	2008-09-28 10:18:24.000000000 -0400
@@ -371,7 +371,16 @@ static int setupTerminal(int fd) {
     return 0;
 }
 
-#if !defined(__s390__) && !defined(__s390x__)
+#if defined(__sparc__)
+static int termcmp(struct termios *a, struct termios *b) {
+    if (a->c_iflag != b->c_iflag || a->c_oflag != b->c_oflag ||
+	a->c_cflag != b->c_cflag || a->c_lflag != b->c_lflag)
+	return 1;
+    return memcmp(a->c_cc, b->c_cc, sizeof(a->c_cc));
+}
+#endif
+
+#if !defined(__s390__) && !defined(__s390x__) && !defined(__sparc__)
 static int termcmp(struct termios *a, struct termios *b) {
     if (a->c_iflag != b->c_iflag || a->c_oflag != b->c_oflag ||
         a->c_cflag != b->c_cflag || a->c_lflag != b->c_lflag ||
diff -up anaconda-11.4.0.82/loader2/kbd.c.BAD anaconda-11.4.0.82/loader2/kbd.c
--- anaconda-11.4.0.82/loader2/kbd.c.BAD	2008-09-28 09:58:04.000000000 -0400
+++ anaconda-11.4.0.82/loader2/kbd.c	2008-09-28 09:58:35.000000000 -0400
@@ -61,20 +61,6 @@ int chooseKeyboard(struct loaderData_s *
 
     if (FL_SERIAL (flags) || FL_VIRTPCONSOLE(flags)) return LOADER_NOOP;
 
-#ifdef __sparc__
-    {
-        int fd;
-        
-	fd = open("/dev/kbd", O_RDWR);
-	if (fd < 0)
-	    kbdtype = KBDTYPE_PC; /* if PC keyboard, then there is no driver for /dev/kbd */
-	else {
-	    close(fd);
-	    kbdtype = KBDTYPE_SUN;
-	}
-    }
-#endif /* sparc */
-
     numLanguages = getLangInfo(&languages);
 
     lang = getenv("LANG");
@@ -91,12 +77,7 @@ int chooseKeyboard(struct loaderData_s *
     }
 
     if (!defkbd)
-#ifdef __sparc__
-	if (kbdtype == KBDTYPE_SUN)
-	    defkbd = "sunkeymap";
-	else
-#endif /* sparc drain bamage */
-	    defkbd = "us";
+	defkbd = "us";
 
     f = gunzip_open("/etc/keymaps.gz");
     if (!f) {
@@ -168,10 +149,6 @@ int chooseKeyboard(struct loaderData_s *
 
     loaderData->kbd = strdup(infoTable[num].name);
 
-#ifdef __sparc__
-    if (kbdtypep) *kbdtypep = (kbdtype == KBDTYPE_SUN) ? "sun" : "pc";
-#endif
-
     return rc;
 }
 
diff -up anaconda-11.4.0.82/scripts/getkeymaps.BAD anaconda-11.4.0.82/scripts/getkeymaps
--- anaconda-11.4.0.82/scripts/getkeymaps.BAD	2008-09-28 09:37:28.000000000 -0400
+++ anaconda-11.4.0.82/scripts/getkeymaps	2008-09-28 09:37:44.000000000 -0400
@@ -45,11 +45,7 @@ TMP=${TMPDIR:-/tmp}/keymaps.$$
 rm -rf $TMP
 mkdir -p $TMP
 
-if [ $ARCH = "sparc" ]; then
-    PATTERN={i386,sun}
-else
-    PATTERN=i386
-fi
+PATTERN=i386
 
 MAPS=$(python -c "import rhpl.keyboard_models ; rhpl.keyboard_models.get_supported_models()")
 
diff -up anaconda-11.4.0.82/scripts/mk-images.sparc.BAD anaconda-11.4.0.82/scripts/mk-images.sparc
--- anaconda-11.4.0.82/scripts/mk-images.sparc.BAD	2008-09-28 09:37:07.000000000 -0400
+++ anaconda-11.4.0.82/scripts/mk-images.sparc	2008-09-28 09:36:29.000000000 -0400
@@ -0,0 +1,115 @@
+#
+# mk-images.sparc
+#
+# Copyright (C) 2008 Tom "spot" Callaway <tcallawa at redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that 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, see <http://www.gnu.org/licenses/>.
+#
+
+SPARCMODS="openpromfs sermouse qlogicpti pluto fcal soc socal esp fc4 aic7xxx sym53c8xx qlogicisp mptbase mptscsih mptfc mptsas qla2xxx qla2100 qla2200 qla2300"
+TILO=$IMGPATH/usr/bin/tilo
+SILO=$IMGPATH/usr/sbin/silo
+
+maketftp() {
+    while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
+       if [ $1 = "--kernel" ]; then
+           TFTPKERNEL=$2
+           shift; shift
+           continue
+       elif [ $1 = "--initrdfrom" ]; then
+           TFTPINITRD=$2
+           shift; shift
+           continue
+       elif [ $1 = "--imagename" ]; then
+           TFTPIMAGE=$2
+           shift; shift
+           continue
+       elif [ $1 = "--systemmap" ]; then
+           TFTPSYSMAP=$2
+           shift; shift
+           continue
+       fi
+       echo "bad argument $1 passed to maketftp"
+       exit 1
+    done
+
+    elftoaout $TFTPKERNEL -o $TFTPIMAGE
+    if [ "$KERNELARCH" = "sparc" ]; then
+       piggyback $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD
+    elif [ "$KERNELARCH" = "sparc64" ]; then
+       piggyback64 $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD
+    fi
+}
+
+prepareBootImage() {
+	echo "sparc: prepareBootImage() is called"
+
+        dd if=/dev/zero of=$MBD_TMPIMAGE bs=1k count=$BOOTDISKSIZE 2>/dev/null
+        echo y | /sbin/mke2fs -b 1024 -r 0 -O none $MBD_TMPIMAGE  > /dev/null 2>/dev/null
+	LODEV=`findloopdevice $MBD_TMPIMAGE`
+	mount $LODEV -t ext2 $MBD_BOOTTREE
+	cp $BOOTDISKDIR/fd.b $MBD_BOOTTREE
+	cp $BOOTDISKDIR/second.b $MBD_BOOTTREE
+	cp $BOOTDISKDIR/*.msg $stagedir
+        mkdir -p $MBD_BOOTTREE/etc
+	cp $BOOTDISKDIR/silo.conf $MBD_BOOTTREE/etc
+	zcat $KERNELROOT/boot/vmlinuz-* | gzip -9 > $MBD_BOOTTREE/vmlinux.gz
+	umount $LODEV
+	losetup -d $LODEV
+	mount -o loop -t ext2 $MBD_TMPIMAGE $MBD_BOOTTREE
+	$SILO -r $MBD_BOOTTREE -i /fd.b -b /second.b -C /etc/silo.conf -F
+}
+
+makeBootImages() {
+    echo "Building boot images for kernel $kernelvers.$KERNELARCH"
+
+    mkdir -p $TOPDESTPATH/boot
+    cp $BOOTDISKDIR/isofs.b $TOPDESTPATH/boot
+    cp $BOOTDISKDIR/second.b $TOPDESTPATH/boot
+    cp $BOOTDISKDIR/etc/silo.conf $TOPDESTPATH/boot    
+
+    mkdir -p $TOPDESTPATH/etc
+    cp $BOOTDISKDIR/*.msg $TOPDESTPATH/etc
+
+    mkdir -p $TOPDESTPATH/kernels
+    cp $KERNELROOT/boot/vmlinuz-* $TOPDESTPATH/kernels/vmlinux
+    cp $KERNELROOT/boot/System.map-* $TOPDESTPATH/boot/System.map
+
+    echo "List of init modules: $INITRDMODS $SPARCMODS"
+
+    makeinitrd --initrdto $TOPDESTPATH/boot/initrd.img \
+	--initrdsize 8192 \
+	--loaderbin loader \
+	--modules "$INITRDMODS $SPARCMODS"
+
+    maketftp --kernel $TOPDESTPATH/boot/vmlinux \
+	--imagename $TOPDESTPATH/images/tftp.img \
+	--initrdfrom $TOPDESTPATH/boot/initrd.img \
+	--systemmap $TOPDESTPATH/boot/System.map
+
+}
+
+doPostImages() {
+	if [ -n "$BOOTISO" ]; then
+		echo "Making $BOOTISO"
+		mkisofs -R -J -T \
+			-G /boot/isofs.b \
+			-B ... \
+			-s /boot/silo.conf \
+			-r -V "PBOOT" -A "$PRODUCT $VERSION" \
+			-x Fedora \
+			-x repodata \
+			-sparc-label "$PRODUCT $VERSION Boot Disc" -o $TOPDESTPATH/images/$BOOTISO $TOPDESTPATH
+	fi
+}
diff -up anaconda-11.4.0.82/scripts/pkgorder.BAD anaconda-11.4.0.82/scripts/pkgorder
--- anaconda-11.4.0.82/scripts/pkgorder.BAD	2008-09-28 10:30:13.000000000 -0400
+++ anaconda-11.4.0.82/scripts/pkgorder	2008-09-28 10:31:42.000000000 -0400
@@ -70,6 +70,9 @@ class PackageOrderer(yum.YumBase):
         self.repos.setCache(0) 
         self.doRepoSetup()
 
+# We have to hack this in here, otherwise, we won't get sparc64v, sparcv9v
+        if arch.startswith("sparc64"):
+            self.arch = "sparc64v" 
         self.doSackSetup(rpmUtils.arch.getArchList(self.arch))
         self.doTsSetup()
         self.doGroupSetup()
diff -up anaconda-11.4.0.82/scripts/upd-instroot.BAD anaconda-11.4.0.82/scripts/upd-instroot
--- anaconda-11.4.0.82/scripts/upd-instroot.BAD	2008-09-28 09:38:19.000000000 -0400
+++ anaconda-11.4.0.82/scripts/upd-instroot	2008-09-28 09:39:14.000000000 -0400
@@ -198,6 +198,10 @@ if [ $ARCH = ppc -o $ARCH = ppc64 ]; the
     PACKAGES="$PACKAGES pcmciautils pdisk yaboot hfsutils"
 fi
 
+if [ $ARCH = sparc -o $ARCH = sparc64 ]; then
+    PACKAGES="$PACKAGES silo"
+fi
+
 # xpm is missing
 
 # Some packages are listed twice, but that's okay
diff -up anaconda-11.4.0.82/yuminstall.py.BAD anaconda-11.4.0.82/yuminstall.py
--- anaconda-11.4.0.82/yuminstall.py.BAD	2008-09-28 09:44:33.000000000 -0400
+++ anaconda-11.4.0.82/yuminstall.py	2008-09-28 09:45:04.000000000 -0400
@@ -1205,6 +1205,8 @@ class YumBackend(AnacondaBackend):
         # XXX this needs to become grub, and we need an upgrade path...
         elif rhpl.getArch() == "ia64":
             self.selectPackage("elilo")
+        elif rhpl.getArch() in ("sparc", "sparc64"):
+            self.selectPackage("silo")
 
     def selectFSPackages(self, fsset, diskset):
         for entry in fsset.entries:


--- NEW FILE keymaps-sparc ---
‹
$ØNB›p%$ÙWÕ=w×LÍLÕ£©’%YšžÑüúõñû¾ªzõý‹~t
lܲiß°|[ÕýPcmÜ¢úm«¾7îÙ14°Eí=lV}ÝFkÓˆê¶
Öí›UµñmÕ÷ÙíCý—^¡ôÒζJ¯Ëh[Õ÷[ßö"mCªÚÄ{Ø9¨´íTëŽ!õãáÎÝË–.SÞV=›‡Õ÷Ùf¥sØyÝ‘ÎͶ©n«¾ïÚ¹léJÛÖ[[Tµ5ZÛ¶tîQºþÕYÛ·ª¿ßí;Ôc¼sërå×Ý9¢ª-b
íèß»y»Ú>Ú½Lñ=ðm—+kÚÝ9¸sÙòóU®%CÊÇ/Û†•·UÝ5Öðê÷Øá;Ô¯¿Ã[ì›Û>…}6¼uÇžMÛ7)íßá¡ÎÁ}ŠçæðõûæÈÐ.Em­ÝªçP­µ;{!‚ÁMÛGv«l«öªß·ý”‘ô	Y¾ƒägÝtÓ­L›	0Àh…v8ž€ÓЧà}Xp
X‚@M(
ýBÿÅl»œ]ÏndkÙ÷Ø·Ù5ìZË‚EBÿuìvû&û»‚}‡}—]É®‚ùð鿏ÝÌna—²›Ø%ìjè†%ÐIúù{ª3"F½Ñ`L2&³9¤?Cÿc®Ñ’]¿ÉbúÍj%ýQÒ?=0ÿúÄ×{`¿ø.‰?Ü
·ÉâoôÊ`Arüí¿gBžjëÖkƒuÁH°>ØœœlN	7šf¸!<)<9<-\Ž„ëÃÓÃ,\®
W;ú{ƒSƒÓRõ‡›BfxJqñ7ù‰0fÂ,˜
sà€Ð>ÇÖOw»fÂ$h„&˜B?G ž¶ÅõCL&©U$¡Ô@-„¸~zî4˜˜Jÿ­³ÿpâÿVcžÑfÌ7íÆ9ÆBc‘ÑAñ·²Çßc±Ñé˜Y°þ(×ïþ!Ó/•è¯ìªŸÿ>Çù2ýf£?Ïó߬ÉœËp9ž‹çáùx^ˆßÀ‹p).ÄN<€aÀQÜ„C8‚ûp7nƸoÅÛ°6dâ.ƍx;ށwâ]¸·â6lç:q=îÅ»q÷àÜŽ‹q%®@çú‡üø‡ 4ƒ «‚¡ Åõ/
c˜ô‡­p0Lúô[°\¬2÷ø›u\¿9ɘnÖ›
ùÿ(¿Ðo`3q6bN¡Ÿ#?6àd´°
CˆXk0œ†Ó1€SÑÄ´ø#Hõ猿L?Î,4þY<°¡=°nºUˆv󀝰Zx ]äfÒ=°·
4áNYh'x9§¸"g¼˜\àÊ"<pÄö@ü]Åyà@½ó\fVӝƒëoáÚ`>¹Û°ˆX`!9à¡ÿ:r³é˜\¢Ðq†~™ø •ôï'ç÷ÀäŒWÁX‘ÃO–{`X,ôqÝÅy`X’¢Ÿ{à§à<÷ÁAx˜ü/9\îáp"þðHrüé±Ýã»×ÁÓÉñ‡Çc¿Ïæ)þrqîäáhq83þ¦}Ì´½o’Fò|
äæ2<°ãt(žÉõÏ"ç÷€ÂÖÅ=`!8’ðÀöû+ܧéÏå]ôÇ=°‹~˜íxàtý)Øõïeñ@1ý™Ú¯ÙÎÿÔ­K¯?Î
{	ŽþGˆ’ë÷f,T	ú¢púˆÿ­‡Áq"À#ð¤ð€½0–øÞNÄŸ!¿èIê…÷D?Ð!;þÄ–÷À~8Ìû° «X,]?„f¦xàf5¶nJ÷À~e y?Hœ²ê[þ¤Q&qý©TåOr×o÷
:Ç€'úËŽ:Òh4ÑDÏÊÚD_÷e0P§?(ûñ½ôé¢_0€Ð/¶"ý©ñ·õËâï'Ê}þ;ÔìÎ@NYÚñOÄD$Óïk*äS7Ýt« ~°,ý +‰è½.cáºJ8T<` ¡Úp»$ÆÂ	(ôƒ‰ù’~0¢©(ésם…lý¹(§þl䪟3Püž‚Óð%<ÿ€ßÂÇpV[†4þƒ…’ø‡¥ñÏÍÀfýc%ˆTrüϧ›»,þÄÉ’ø·Ò±´Ò%þÝ®œøÈ5ª>‡.<þYPÖâA?˜{ü­Bõ'Є¸~PÿÙíƒRx`(V¿/âïÅñ¯ãŸŸþ²ëÌuþÇX5þ¤¿%‹~·~@ÒïÞÈõ;˜ÑˆÝ	ý~:ÿ}ÿœú¥EÅ™‡ñoqwÒXع~;ÿÅ×sÏf?p¾úc9|õ§æ@dñ?ûýàþ:ÿµþÊÕ¯s€ºé¦s€Š9 Ñ¼r@ûÊ$Ê9 uyå€Ö–I(ªœÍ+¼¯LrÀQåðº¼rÀkË$¬žlÎ+Ô4ár€Íy倚&\°ôñ÷wpbÆ_=8šWh_å
%ñÏ:*"Ëç3Ê=þ±z9ë¨Î…š;PLM¼ÂëBËã¯T¡ÈHQs¡"…Î)D?ÌJš^ç€Æo.”ûñïž ß—Ï…Âù\(QažÇs¡"^ÔÅv¿È´Ò«óz°ÏÁ…Äÿݸ^– må¨Ñž–àuÁû‹ÈØú×”þøÇ{D†g?:×ìqŸ—˜æÿô¹pÅÎ…rôå;JõúÒêèù3 ÎÎ΀ãWÑM¿f@ÝtÓè΀Ð^BßÄ`@X¯PÆ€˜È«zkÔ¨P3 f@Í€š5ê¦[…2`¯œ¡GÆ€‚Ê“ç©3 í	Š
€Ñ2d@Š*Æ÷Nþ¸^÷V.r~ÒXþˆ½Ä1²±À=2üÐWŽèÔ…Wb@Ú7äã1Z~ÈãŸÊ€ñ£Ã•1ª°â0¹iÔM·‰Î€òš€ìCgm°Ì~ÀØ—pR0ÐhÙ1à¡cAã5Ù‹–)é|‰½‡Iÿ¢´š€~g@¾6Z[*˜ÛÚh¹Ç‚:kƒ¥Ä?y}d™V`ÀÞR2`‰kâWß8žkƒEJV¼‚ÖË‹ýU°tXAkcåÉ
ùcîŒ/#|#¹Ý ß®‹	+È=s_|¹à«ÈGßÄÖy³>¬×XÔì¡Ïtåúí­R㻺ƿ׾
÷œ±Põ¥%©I>WÄ_älÉ÷6	¯ 7X#¶°=`„ü!w†¹ÀFr{“éùÂ÷È}átzz-ùÈ©ÐìÍú°^{`÷º¶kÅ?U’vÑ‹¿Tÿ\_­™e}ÐBôÇ<`výeÀ
¼¯Æ°_Œ…Ãxu^‚WáÍx®+¶.b!c¡r¯ËG!ÿ.FÿátÖŸÆY\¿óÿz" Î:¢¡š$Šq2²ˆ‚‰v&cüü'zâ\4(¨–8j*6—ÙX Ð¤›nÌ@íp¯¬ÀiM€O-ž;åq?@}ÉûNdÌy^Ö`™Òš
p²¼r€¤ÿ^;F{àÉkÄâO¿„ý3x"¥&È')ñÿ’}ÏÚóámx@ÄÿSxÜ
Â	ø÷"Æ”0HúŸâk#ÀAx„Gá!xŽÂófjü“ˆ|,8ÿë)ñ‡½Ï	ýëà8(âÿÏÂÃðC'þÿVpðþR0@–qòÁ_+{Ìo9ÀBÆAÀìüÇAÄõÏõ—NŸÈ)Œy¯ÌǁdɁ5däÀ2êb&å@°oâäÀÄXpא<ªPsT–+BÿXirÀÒ¹À\¿çã`|5¾.ÛñÞêå€Ðg×ÿ³ÿ¹:¢›nºéˆßr ô?or ‡'z„Œç@Ž¸ä@‹À“7žÇÿ~—ˆ­ÿ¸÷9ÒŒƒÐ9os vü+7"Ó¯s •‘áñ¯äˆ}üWn+<âÄ¿bs 2ýe“ÐkÃ覛΁´[¦t}ÐÓ²œ÷E ÍëƒÂ£)×@òŠâUg@´Â"8•#’Xôkh‘¬ú9|
R–p^ŽµaÖ%ÆË IÙ1
a€p†\p;¹ßN8
ýp
Þ>˜{àò~éu¡MhpWÆXÈmðc÷&< 
ò¾²±0
éãñ'ç÷À™ñ÷µ–ya½6ŠnºMPÌ°3¬•µ³sX';ÍúÙ)ö>[Ȳx`&õÀì+v2„,ųÅl%[ÁZB‹²{`ǁv:~´Ãq§Ka‰!_åâÅ½¸«8Ì–±åì\v;Ÿ]À.dß`±¥ì(ë ;»Ä3©fóÙ³¤?ųn¶„u±Ã!7rýÕâ^žîƒÍÉfÀñ€S85æa±Ð¿&·þTL·°œfXD“=0ôÅ<0yžßÁ‡pˆ¨èŸðø;ü	þ
Oc>Õôw_ÂOàQø>_ÃÏà—bfÍCçÇĬšàx†çámøî%ýÓø|˜j#‡žîèoJòÀw\tüù| ð*<	ÇáܯÀáeøüžú?€áô›ßÀÿÀ×ðgøœXq=ü^üÝàø)</Áëð.üÞ‚§Ù¯àÒÿ7?¢»|–ù Ù?"’ßgÕO®Qáø—3
b‰(éK«¾
Ö@7×_]åìèwjЧȃ&×FO«	ì£ÙkBðõád5DÐ8¹L™Þ”WM€fOk”À§Ä?ÓûfÖDhÊ«.VÖÚØyçë½Ï&ëWªæ¡~?0@ìøW®	 ÜV]E0êiM€0@"þØ‚=8Ûp>_á=\úÁðÜŸc}´±´~°U¼Ë—Ç¿z]4ú
ìòœbñÏîÈÑüû}ÊþÊ>c§ÙögöIÜÿü–ý…}À>gÿËN±?±ß³?XmoûŸØìKöûû˜ýqüüOîë_vÿCŽæ{‘½Á~ÉÞd¯°WÙÏÙëqÿóììöûOö2ûû	û©eÑö¶ÿy‰½ÍÞa¿b?f¯±ÿÊð?nã TüONýéþGíú¶üOüøwñ?¤ßÌ¡ßÅÿxsÿóÊÿX¦¢ÿq?þsûIüåþGU¿ö?gÓÿä«?výÏW¿Y“[ÿÄð?	ý©þG%þí¢ÛÿäÒŸg]XCç@uÓ­rÀÄ5_³¿H×ÇüŒýM²>æ⢏CÀþ^Šõ1ÙÇ%Ê·C+O1P‘qÍ»ìÒõ1ßdÿ-YóUâ¢×Hÿ¯ÓrÀÝ^Ô…e¯•"Lú£p‚èï …c°þ¿½+“ªºÒçUWWNҍ™ÉÌm`hÀ–nY’˜
”îÙ2ë73™]ièάffL4‰™º‹Ù÷$³ï›à
‰\ˆ¸Ä
Œ‰\À¸°(Kc” TT˜ûî{U]¯êÞ÷î{ïÞª÷ªÎå+ºé8ý¿ªwþsþÿœ3pÜ`«Ë`˜ó9?ÿ÷¯‚‡DàUØãáÇa§Ë™ð2x¶ˆ›û`ç
ØŸl£â…`&sà¬Í…Ä_í…ðߊøùÛwòG þÊWÀSä[Ƽáñ{û!ý·ñóëF#þÜÕ€ÔZxþ]o£…73V§©óøKÂÝàåü£ÕZè‚«hóâçï_Å~üž@|•Ë/ó¿c,ñ/å¬ê<έ8_âh	ÿsj/ÀEæ"‡íGô¯jñ·üúr Ú¯Ô¹þ›·Q†?q :tˆir UzÈ́9ZÙrèR=äj¾9º¤8Ïù+ÈÅ_‡‰VH€qü—ðŸs9PÀ¬¹Tûárȁ¼™H“ñ'ã@Ùôƒëp Žw©øsρVéq Ÿ¬”øÁsǁxüäƯÁ|X́.güõ/ˆ5ɁÜÝ É8PVvÄà@¤…§C§M¼
þa[*/@wˆ Ãs‘³áã@¶876Z¸0Ôaƒٍß(ê°ÁøÇç‡ÌDêïqþT×JåÛØ‘Š…p
ø$|VÂUð1ø\0 OÁ¯ÃoÂoÁeðÛð;ð»pöÃ0ρ^‡UðûðkðøUø8dßÜ+jøÁábG:|~~~~._„‡ŸŸ…£Ð/âÿøyøaø0ü(üüü$ü¬…Q‘ß—¯ÀÁ/ÁÂOCúá–ýÀ"ßñü0Ë„zk9Œ†dF¾Jò×WTRhægÒ\Š¿§€ÿ„J¡»"µ@YÐÃ"ÒÙ‘ÞÂ~è¿RáßÚ~`1(W~`¯‡Áæú“aÅ4°zoL4þÂW3fëù/›‹kæùßèë?;~àsA‰Ñ¡Ó–H2é¨Ç$3‘*È°¦‰H2iÂã@Š™Hc’™H™ç@0»’ß/+ÏõXM’™
/ªæ‚…ÌÅr¹ÿT¾8€¤°Æ}?n
{žØ=•8(‰øe³aGÙjyÌX¿ˆ¼~6,Lá	®ÊÙH}üññŸÜ·î	Ž?–Ûˆ8?S<ÿz‚ÃþL‡Ö«ƒß¥Ê‹Ž²þ¬uàq{upEìʁ'ëàW«ràbQYßËà6Á¬ÕÁ9°“0VÍ…ösÀ˜ZÎœ6Ekadÿ¢N\ò]uðè0$fIràÈ:°àd…ˆ>Èô>€ÿ¨¹H1ã‡yُÁúüXî	Py‚Ùj·Î9€µ>€œÅí(9ß`ƒþ\$i€õ«ú
Èý%®*e
¨ R‰_¥…4ø‡ÆÿÓ~ÀŒáå4^)ØÐ×Ä_x‡¬–;ñççùOø·4þ5@ÒÂÓ¡ÓŽ5À…°Y©*ë`êk€E†¦
–Jt@§Ö-Kç‡UÖÀªw¬N€ábç$þpKÿ×ð
XáÝñ£°O²`“àÀa¬õð‡›ùŸo­ÖÉðטzm=þqü°ªøÃt0uø?PÿdÄ¿Îjº˜êú¯òB̨ž	¤ôBœꅐ×@ºLé L×
°â‡VÕ
°>Æïì"+:¨åéüÐrüktP#BÕÇÕ^¡"
¯-•è .®Š?bË”¨+M
Ô°¤	~h=&ˆÞ‰MVç€0¬ÔŒ«¼
ÿG«ú Wãµü×UõAnÀM¸]à¿ë´PÆýP ç‡’f:Jàæ€*àæ€)8€üùÝQ\ÿ>ø”s¹s•s…ó	çÓÎǝÏ8Ÿt®l
Z¸©
Ä\P|3¾Çñkx?>Œ;ð)|ŸÄüýˆÛñ›¸ïƝø~¿Ž÷án|ÚÇîÅGñ!ü*>†OpNø»sAã_ªôÝ^{ñž3þïà·ðÃ#ø¾…§p¿þãëø*Àãx¿/àA<‰oúø¿„§ñe|â+ø>‹û5ð‡¤Z°ø‡õÁ˜ºS³¥…KƒöãÚ®Š¿v7ˆ´ÛÓ}°©
-œþ*˜|.`»R¼þµþñŸÿmÄn,ósñìh!¿þEÔ
Àÿ/ñŸñð¯ðOñ³øÇø¯øoøçøOþõÿøøGøøyü[üþ5þ	þþþ»Àÿð_ðïðoð/ðïñ?ññ¿S0é‡ãÀ)û๯46þ¨@Š˜j
 ¿ñÀQ<‰/ãóxˆ³ûçð5|sûïà)ÿ+ø†Ûáæ|ÿ8ÃoáA<ŒoÁ<ÿ|_âìOà›x
 ýõŸï€¿ZŸ&L¿Ž6.(ç€2†ú€ô;ü€ä3Xóq‹5€Züã×
?`b-4ÿ¯d†MƟЬÄ?Ù=†%wÔ©ñ³€µz.Ço0ˆ¿:~õ~aIü4?0Ç?Àþ3=üãiùϐ?Õ©å@âù¿†ÿOSq +Ïò›ÆÔ<þ^ÿœÍD*4c.ªº(æ‚Jú€åû}°|ÿê6îþ¯énYüužÿ탿¢’ÿÈú •øëú “ùo°Z›ÿÆÕ”_ÿtðùúWjíøIN‡êS8qXêÇ}j?8®SøÁdº,«0•ϨýฅǿPâ¿ }àöóƒ›èçÙ;hÁÓâ¯ÞbGlº–öõðoküs¯O©ƒ‰Øf>~Ó3á¬é ¨@‡Õ
à(ì‡Í<þuxI6öGk!]níÖ@ÄÏb­û^Ñ)vˆÝ`2ü•5 w·˜ðŒñ¯Þ\Pp ÝhÃõøGíF‹Æ_Ä­³ìœXð]ÙØ
¦ƒ¿æn¬sbyê㟙M/@£âì3=®K/–ïFÒ䀫bÕ
þƒüÊ™Œ?[ÏÿU ‡Mg3ØLV¹ÿ‹ø%ZHþµÓU5þ¾O½’ù÷f¡Â4ýðrü•=`Eüé´ ,[¯ÿM‰ß¼–ðO†L
¬;¢Öe:~è1@³VѨj`6t
À­ñß󢈸þUñËý°U Z@ùú«Ð}ý‰¿ý´Ð´—â@4©Ýg"õùñ¿Ž§ðq܏Ïâ|ŸÀ½¸'`™ˆ'ÀÇð >Š‡ð5|Ÿr'üçã	<ƒ‡ñÜ…ÏàÓ.þ¸;ãs‘ë9°ÿux=ÞŒ_Á{ðV¼·rv>à_ÿ›ñn¼	ïÃ-x?nÀÛpîÀÿ\‹7àvüÞˆwàí.Æ[²9I[Þ¢3‘´ý†öã&Ñ‚Ó~\{3‘â:$Óî‡Mā,îÇmFü™ÞK~P:tˆ-‚µ©fÂàIôfÂô%Ò7·5¦Âð~X¡èíÆûÄL˜þ”é>ðƒ®ƒ9b&Ìj—ḻáV…?ÿLIí†;Ü{`ÿê>

?èXƒû@k¬ÍÍEȬ¶ÜJ4±Ûæ~Øk¿ßlØ0?h3µÀý áøçd.¤M?(H|ŸÄèÐiuÐó%9à[‚Ç7à4~zytA0äÜàˆÆ~ÀfÍ…œ%&àÔÔÁG”`'>­à
6Àæ²ó\¯›Çùß ÷¿ Žÿôv#,	úáDü‹Ó^ÿl©­×?]Èÿ­ÏA“¶Œ/ÅOñ;-Ïó£…û.±eŠüàœ#øÖ¹N3­ãl%ÌñL `üµ02~.(ÔqÀš¹ š} ŸIû@-ˆ|&B¤N6!-þj-0ƒZ0k3qÜø¡'qüþR¤Ò‚%ì­Iá
™‰“ÿZ¸tȸ($þÂÛ¢¯)š—£ý€5אéà_?†,d?\²™0iðÝoàõÏô~4ÙLk;ÒÓ]ÿ¥fÄŸ!ü#öÇ×BBŸ›ÿ©µ!ù_2-xúø=ÐÙ~àñN©LWWÆop& ÝûŸ<ÿ‹Ú0ÿ‹Ö›ÏÿJ
Êÿ¬ÍÄËeüÊÿXvöã&Ó§ƿñ3ñ²tÿKrÿWÏD³“ÿØÅ¿ññSþCùå?”ÿPþCùå?”ÿPþCùå?”ÿPþCùå?”ÿPþCùOcðO¡¤C‡N«k “ïEœmE9ߧ©ìugAÑ@Á&ÉŠr,¾N‡ª4	gaŒEϐq \=ŠòÁéà¯ä

--- NEW FILE screenfont-sparc.gz ---
‹ @screenfont-sparc
þÖ0`Sâ€ˆ¨ø[[Z
F¨còDS‡à¯Úú£h[+Õ¶þ¢õ׶ÚjŶڑ°SڝeÙ]—Ý¤‘mmd-’ .›Îôœ÷Þd|ç>t?ûÙþq¾ÃK2ï¼sœó½çž{ï
#•ÝIùýweS\„ِE#IJw@áŽÖ~¡:@,Û‚p—£ÀúC<RŒÄu&4Øè9âMÞ?±5øüd¿L§»ɹ¹wOÇO0ÂIÃBšÓ·‹ÏX¹?â÷û¹ò
‘D®€ndÈ‹ÑoH£Ž¡œ_PÀúm³ýϦ4ú)khùÙÁåX^ã`Gι×2²Ì¯ó¾†
Cºù‹&0wù`ÂŽ®‰AÆñ+—'—Ç®Œ´òXl at So6?É]N=³ºÇÍ¿†¦ýVtÀøÃ𣻖Lb'ûÜåVòãû×õN±ØÝE`Ú_š¾³¼5óí¿o?Gko*PÃê“ûXýX8àgë/v¯ÕÚ7ëÑþ.˜BhäÝÝEfþ;ûˆÄ9û–Ò®}Å®»hð½ÑUdørÀ% ™mf¸¡Æïcô"ÜèÜ塚è6=ÞzÚük[,–´†pŠÕOe3|~Õ€=Kätù>?^@°úV~•
¸Ql¢#ÎóãfXÇO¿jüâ®!Ë·
ºÖ$ÿÖ°‰Ÿaý`ÚOºT†a²ëº<ÖW)ýú×wZ9-ŸJ0­ÓçÙr‚á>ºÃÚòæbð(?6{ÍßF¨Ñ%u//°¹å›ný<2?q+úõ9zäINŽëãˆ.> oK¸û7¢×·ó¯=šü«œ_¸¦À)ýúdþã¦o/¿y}䏾ü¬Wý–“
~}–În¦õO_vÈ+ÿÅ"nãC›ŸPÿ<Ú¯Õ§ý­~ÊCn™'G	\Oç§Zÿ—óW~[.ÖÍoåü0d¸OÙT"‘ʲÑ̓¿åüÙpå'Î=؁7yì_`ø±XÞþÚñ=rýáÚ>+ÿmŒ$ùõŬX¬€ŸØ¬F÷ö»hõ·Ô=ÿ,z¹—¶Oö3ÿcý_Ê%cm~àêÃc{ÆšAtþ/çO®öõîÇþ‹Å
jÒWÃ3Ã+íneÜçŽîîî[ê	Zq9¯
%=ók>t@&³!‹é[|óCs]MäÈc›ñ¦¹š'ß ý©§¸›8±;>b)Û>ìú*Åob©µúý™¬v~Áõ³vÿʼn¿l|Æè¡×·ã«oxÕoÇgVë`¹ïŸ ¼´ÁÝÁ¥]9ÝÙq2”¤ùøFÙ¿µÅža¿4óKC‹Õþ|Œì§Y¿t¥=ôÉÿ}Çþývýdo¯ðçwØ¿Ò?³?/ÆãiÍþù¶Ø€Fßð<íúÛר??¬©×Ÿ/ìIèÏûl9·?_¿SþX’³ûû­‰¤¹m[xjcƒN.qï?íŸéÞ?²Æ¿æ|ù¯×§'4ú-	¯ýÃm~‚­+mpõñíçÏG°uz}«ý¼¾uûSöZìþ…}iôíø©Ùÿ(ï¦\ßOÞƒC}÷ô±|þë¾?V>r“ã(a¬ç྿’õÜ?Åq©É¯hy¢ÕOêõ[^õã}ô¿vÿÏâŸfã¯^ß:¡Ðì/i–ENóó:qÂóýò]¤…ඁ0
YëýG¾LfHsþ¬?Á0ôû[ñ¸×þ´×û!Z–·]sÍŸ˜ó«<b¨“Ô^&·¶»ûiû??˜câc¢6ë¼ßÄ®¯J(ÔÖêÏÿeœ÷³†4çš÷‡¼ü)m
ÜàÅ/´lÚHóç둸þý5êšý{üܪ—{¾4·Ãž½ú}Ï÷ƒ<Þoòz?¨0L
[ã—±:ö»I7·€Ìä©ýƒœý~ÝøÞŒEÿ™Êgâ->Ò-<ÿ¼ö÷ü
ÉÌ`Ž´ûË
±ñìW@Ùñ?
Yý9V¿;1"énÍþž¿Á¯Ñw¸»ð¨°^Núv€fåVÐéï,lÍjôÑøCxiú§??/èÆ?x¿?¤}ÿ«4öµ¡>¤Ù"¼Þï)?_Z·¥ÿe¹ûø·B@„ÿVØ͏+euãùÛ¨ãïf+læýC€å_Âs|Ñ'“¿Yë¯ñüÐï¿ëÎgaÈ^>³þÛJأѷçß>]üicó7+…ë)°ù›•âF¸ü
É™ÏèポÂñã£4~˜ü
ÝÛýZñµî´føÅ;z4ñiÐ~?µÀۏªçãÿN˾Ç
êü§‹?C³Ù>¿¿ )¿Ùø=ÚÇ—ŸÛºU±}ñÖDå@lûmÕèø9Än’øøè´Ÿí_O‡õ
œœÒè
-ìø(8/0³üYœËíÐØÇô8»ÞI´µEe²+HC󞉩ý¿7¥Ón}‡+@Ããý`¿nÿŽP]«?¦A9p̝
ÖVW[ÿ­“CMí¤jfð7ƪj»£3VØà
EýcÇŽS¾î1•þÊÊæ3¢lë**}•Xrï®MSKÐÙÇ7ouÚúO­.¨Ã)¦nüøVyFIß}ýæ!w(6=Úywç¼¹:y''¯õC¥Oʍêz¹e ¥Xÿs´r?pFG4Úé*Â"­ÜâßKÓ¼<¨•M³e£[p†^Žµ¯­žä\é!/mSr5cO»çGýÀêÛܨ;~ì¼Õ<¿”|â¶ßÁ±«:;£Ñ`õ¯V_?>(†éÆ·%¯^¨«`X¾èãu‡cøO·ØRWçñ?LµéK§ø^]]û·¢;£ÅSÏ?v|;û¡ð~¾¢èþš‘çž­]»uKñ…Ö¬@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Áß:ú‹;7„£¦qß›¦ñroùú‹;¶÷ß‹š¾ú°é;ÎÄ{øÜ þ®Äû`‘Þ"ÎÝ4²,zžžµŸ/ºí¦oúzü:d•×nñý<ún)ÖuâukƺlTÁü9!†×ÙoRû¬ï
&
Úý߳ѱØåL]C4m}TÕ§l®ïYRеiQ'ùcwЄ#Þ¶mdù$fÿbg=Mıÿ/°Ë¡!=\N¶{³SNxÓp²ä%;3Xþz´ÏöÑ<
Rs}Ã6Ò3¦oÊr»>ªçÈZ§ü’]”ÿ>è4UõÛ¥rѾ©ÿç)Xý_>sÙ
WÍL´6]ßÞd®\–h_ÚúI´+Ag¾ ¹šmûNYnB½iZvÄûöÃcú‹{ÐOók÷¯çU©Å+ÚnLþo:xsûŠÖ+—­¼šíW-M´¶_»tEÛ')`vSKSóñ³šfÏ	_o6ŠLŸ\¸rEpž¹28;8{ÖI³Â'0'xê…g‡BûSàõæÒ•Wµ4zÕÖÞ¶ì迉|Ò“š¸ÿQ´?Fç
¢b=Æ´`~ÿꙺæÙgŸ©ÿtqï¶Ñõ¸å»{1¾[ói)ŽŽŠëÃåƒãϸE^cÕ,·çã4V·B¼ª”oqqbìÝNœ•ká½Çœ¶`¾œöìÛßõ#þƸ5uÀ}Lù—ÆãÈþŒÐÝNs^ƒŽ­ª½m]oqìÃKV¼T”Ø™±3G.·c¶oñhñýÙo>U½;£4OyòË0+íÜõ£x-væ¼ó"æ${;Mø§}¢þì½cDüW×sÌJÌ¥ü˜Vcfz
õÐ
ÇÀ±pM0B0fÃ	˜Ùž-0Âð8	N†|æÂ)8ÁÏÃ,øTX
—ÁåpÄ`)\	WA+,ƒ8\
Ëa|	®\mÐŽ„½VÂõpÜp$áËp3Ü)¸Ò°
:a5Ü·Ãp'Ü_»á«ð5¸î…ûà~ø:¬àAø|¾Á·áaX߁GàQø.|¾Áãð<|Ö©üP-…gàYxž‡¿ƒÁqeô"ü~ªn…—ágðŠJëðsø…º@]¨’ð+ÈÀ°º`#ü=dá×°	~¿…€ü#lFn†…7áß`+ü;äá?à?¡zàwÐoÁ6ø/ø=üÞ†?B¼Ûá¿á]øì€÷`'ôc&¿Þ‡ÝðüìaöÂGðg‚¿@Š¾ÃЃäCò"ù‘<I¾$o’?É£äSò*ù•<K¾%ï’ÉÃäcò2ù™<M¾&o“¿Éãäsò:ù<O¾'ï“ÿ‰Äbñ€˜@\ 6ˆÄ	bñ‚˜AÜ v?ˆ!Äb	ñ„˜B\!¶_ˆ1Äb
ñ†˜CÜ!öˆAÄ!bñˆ˜D\"6ŸˆQÄ)bñŠ˜EÜ"v¿ˆaÄ1bñŒ˜F\#¶߈qÄ9bñŽ˜GÜ#ö¥‘=È„Oà(|ÇàSøY‡œø®f~ˆŸ§ñóŽÌg•9å‡çUòêxdÖä±ù¥*á'ª
9懗ðó²?SÕȵ±°?¯ªàçê@øŽí_ª
üJÃšÈ¿ÕÈÀېƒ·#ï@Þ‰L¼¹x²±ùøUdä8ää=ÈÊ7—÷!3ïGnn at v®A~Ö"CÇ#G됥ßDž~™úrõÛÈÖ‡‘¯±ßAÎ>‚¬}y;zU-r÷ûÈÞƒ‘¿Ä`â0±˜xLL&.OB6OF>£
ä4±z#òš˜MÜÞêä÷døTäx=²œxNL'®Û‰ï
Èxâ<±žxÔx(B#Z¾-½
WíuªBM at K>Ž–|QùÕD5F¬ªÕ$5VMV(C¨¦ õîFëmW5jª§ê±k°¤U‡š€Vž÷ªÉ°Cð55Þŧñ©iªAÕ!êPüv~›Žßfà·ÃÕa𜚎Ñ`†:¿‰?ÂŸG«£0šž<¾®Ž…~Õ_Q3áRǨYêXÕ¬ŽS'ªãU|ĆÝ*O¨Ï¨&u’š©NFöDŸÅ§çâÓóÔl5_ NE­¨u< Â.uºjQ‹Ôu&2â,dÃbxP
ï«óTX¥]
gi4gk[æk;ÎÑÎÕXh{ÎÓœ¯q,Ôx.ÐŽ\¨X¤	\¤¹X»p‰våRíÆep¹&r…&q¥&s•¦pµz®Ñî\«©\§=¸^{rƒ¦q£¦s“f°X3¹Y{±D{s‹öáVíËmڏ¥ÚŸešÅí:€;t Ëuwj6wiwk.÷è`îÕ<îÓ3¸_‡ð€žÉ
ÊJÆ*΃:‚‡t$ë(ÑÑ<ªcxLÇò¸Žã	Ï“šÏS:§u"Ïè$VëdžÕžÓ©<¯ÓxAyQ§ó’Î`‹±Ug²MgñšóºÎæ
ÃÇ›ZÂZ·›·]ë\9_¹
6¸JÞs{Øèö²ÙUñ¡«æ#WÃ7®–O\Ÿºz>s
|îùÂ5±ÞíãK·ŸwÜÞuùÚâ}w˜M|ìŽñ²kæwœW-Ší–ÀëÆNKd—%±Û’)³ÊÍSaÝ©´TöXöZOª,jK§Æ2¨µLê¬õÖ›ëC£õ¥Éú±Ïú³ß²8`8h9dƒ8lÙ±ŽZ.Çl(Í6Œã6œomßÙH¾·Qü`£ùÑÆð“ågÇ/6ž_-Ÿßl¿ÛDþ°Iüi“9aSøË
øÛ¦òO-™AÛ01abiÚ‡‰ãdÏ¿AGI
:IF ¥Ag)ºHRÐUvá’I´r$/È•!ÁþŸÇšÄœJL’‰i’Ÿ˜.Ë’ÚIfJ²¬ö"[=Rë#d£”=>J6ù6²×GËv#õ>V6ø8©ðñ²Å'Hï,›}²TùÙáÓ¥ÁgÈNß_}–lóƒ¥ÎçÉ.Ÿ/M~Jè,}…¡«(ô‡Ž¹!_²óCnAÈ,û‹Âî)÷K¥Ò/—j¿BZú•Òʯ’Öݳy+¼äkO¨”œ:)ò?Ei¿¼¢


Index: anaconda.spec
===================================================================
RCS file: /cvs/pkgs/rpms/anaconda/F-9/anaconda.spec,v
retrieving revision 1.681
retrieving revision 1.682
diff -u -r1.681 -r1.682
--- anaconda.spec	6 May 2008 21:07:34 -0000	1.681
+++ anaconda.spec	1 Oct 2008 13:09:08 -0000	1.682
@@ -3,12 +3,15 @@
 Summary: Graphical system installer
 Name:    anaconda
 Version: 11.4.0.82
-Release: 1
+Release: 2
 License: GPLv2+
 Group:   Applications/System
 URL:     http://fedoraproject.org/wiki/Anaconda
 
 Source0: anaconda-%{version}.tar.bz2
+Source1: screenfont-sparc.gz
+Source2: keymaps-sparc
+Patch0:  anaconda-11.4.0.82-sparc-fixes.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -88,6 +91,9 @@
 %ifarch %{ix86} x86_64 ia64
 Requires: dmidecode
 %endif
+%ifarch sparc sparcv9
+Requires: elftoaout, piggyback
+%endif
 Requires: python-pyblock >= %{pythonpyblockver}
 Requires: libbdevid >= %{libbdevidver}
 Requires: libbdevid-python
@@ -145,14 +151,19 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .sparc
+cp %{SOURCE2} loader2/
 
 %build
+cp %{SOURCE1} fonts/
+cp loader2/keymaps-sparc loader2/keymaps-sparc64
 %{__make} depend
 %{__make} %{?_smp_mflags}
 
 %install
 %{__rm} -rf %{buildroot}
 %{__make} install DESTDIR=%{buildroot}
+cp %{buildroot}%{_prefix}/lib/anaconda-runtime/keymaps-override-sparc %{buildroot}%{_prefix}/lib/anaconda-runtime/keymaps-override-sparc64
 
 %ifarch %livearches
 desktop-file-install --vendor="" --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/liveinst.desktop
@@ -207,6 +218,9 @@
 /sbin/chkconfig --del reconfig >/dev/null 2>&1 || :
 
 %changelog
+* Sun Sep 28 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 11.4.0.82-2
+- fix sparc support (merge relevant changes from old Aurora)
+
 * Tue May 06 2008 Chris Lumens <clumens at redhat.com> - 11.4.0.82-1
 - Look in the right place when ISO images are in a subdirectory
   (#443580). (clumens)




More information about the scm-commits mailing list