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