diff -urN anaconda-7.2/bootdisk/i386/boot.msg anaconda-7.2-xfs/bootdisk/i386/boot.msg
--- anaconda-7.2/bootdisk/i386/boot.msg	Mon Jul  9 15:14:27 2001
+++ anaconda-7.2-xfs/bootdisk/i386/boot.msg	Wed Oct 24 23:20:02 2001
@@ -1,10 +1,10 @@
  
-                09Welcome to 0cRed Hat09 Linux @VERSION@!07
+         09SGI XFS 1.0.2 for 0cRed Hat09 Linux 7.2!07
 
- -  To install or upgrade 0cRed Hat07 Linux in graphical mode, 
-    press the 0f<ENTER>07 key.
+ -  To install or upgrade XFS for 0cRed Hat07 Linux in 
+    graphical mode, press the 0f<ENTER>07 key.
 
- -  To install or upgrade 0cRed Hat07 Linux in text mode, type: 0ftext <ENTER>07.
+ -  To install or upgrade in text mode, type: 0ftext <ENTER>07.
 
  -  To enable low resolution mode, type: 0flowres <ENTER>07.  
     Press 05<F2>07 for more information about low resolution mode.
diff -urN anaconda-7.2/bootdisk/i386/syslinux.cfg anaconda-7.2-xfs/bootdisk/i386/syslinux.cfg
--- anaconda-7.2/bootdisk/i386/syslinux.cfg	Fri Jul 27 14:12:37 2001
+++ anaconda-7.2-xfs/bootdisk/i386/syslinux.cfg	Fri Oct 12 18:53:15 2001
@@ -9,19 +9,19 @@
 F5 rescue.msg
 label linux
   kernel vmlinuz
-  append initrd=initrd.img devfs=nomount ramdisk_size=7168 vga=788
+  append initrd=initrd.img devfs=nomount ramdisk_size=8192 vga=788
 label text
   kernel vmlinuz
-  append initrd=initrd.img text devfs=nomount ramdisk_size=7168
+  append initrd=initrd.img text devfs=nomount ramdisk_size=8192
 label expert
   kernel vmlinuz
-  append expert initrd=initrd.img devfs=nomount ramdisk_size=7168
+  append expert initrd=initrd.img devfs=nomount ramdisk_size=8192
 label ks
   kernel vmlinuz
-  append ks initrd=initrd.img devfs=nomount ramdisk_size=7168
+  append ks initrd=initrd.img devfs=nomount ramdisk_size=8192
 label nofb
   kernel vmlinuz
-  append initrd=initrd.img devfs=nomount nofb ramdisk_size=7168
+  append initrd=initrd.img devfs=nomount nofb ramdisk_size=8192
 label lowres
   kernel vmlinuz
-  append initrd=initrd.img lowres devfs=nomount ramdisk_size=7168
+  append initrd=initrd.img lowres devfs=nomount ramdisk_size=8192
diff -urN anaconda-7.2/bootloader.py anaconda-7.2-xfs/bootloader.py
--- anaconda-7.2/bootloader.py	Wed Aug 29 18:08:35 2001
+++ anaconda-7.2-xfs/bootloader.py	Sun Nov 11 21:13:04 2001
@@ -22,6 +22,7 @@
 import language
 import iutil
 import string
+import time
 if iutil.getArch() == "i386":
     import edd
 from flags import flags
@@ -479,6 +480,10 @@
 
         f.write('default=%s\n' % (default))
         f.write('timeout=10\n')
+        f.write('shade 0\n')
+        f.write('border 000000\n')
+        f.write('foreground ffffff\n')
+        f.write('background 000000\n')
         f.write('splashimage=%s%sgrub/splash.xpm.gz\n'
                 % (grubbyPartitionName(bootDev), cfPath))
 
@@ -566,6 +571,13 @@
                                     root = instRoot)
 
 
+            # wait for xfs(!)
+            isys.sync()
+            time.sleep(30)
+            isys.sync()
+            time.sleep(30)
+            isys.sync()
+
             # really install the bootloader
 	    p = os.pipe()
 	    os.write(p[1], cmd + '\n')
diff -urN anaconda-7.2/dispatch.py anaconda-7.2-xfs/dispatch.py
--- anaconda-7.2/dispatch.py	Fri Aug 17 14:39:48 2001
+++ anaconda-7.2-xfs/dispatch.py	Fri Oct 26 16:32:05 2001
@@ -46,6 +46,7 @@
 # in the second case, the function is called directly from the dispatcher
 
 installSteps = [
+    ("sgiwelcome", ()),
     ("language", ("intf", "id.instLanguage")),
     ("keyboard", ("id.instLanguage", "id.keyboard", "id.xconfig")),
     ("mouse", ("id.mouse",)),
diff -urN anaconda-7.2/fsset.py anaconda-7.2-xfs/fsset.py
--- anaconda-7.2/fsset.py	Fri Aug 24 18:08:04 2001
+++ anaconda-7.2-xfs/fsset.py	Sun Nov 11 21:13:04 2001
@@ -38,12 +38,14 @@
 availRaidLevels = ['RAID0', 'RAID1', 'RAID5']
 
 def fileSystemTypeGetDefault():
-    if fileSystemTypeGet('ext3').isSupported():
+    if fileSystemTypeGet('xfs').isSupported():
+        return fileSystemTypeGet('xfs')
+    elif fileSystemTypeGet('ext3').isSupported():
         return fileSystemTypeGet('ext3')
     elif fileSystemTypeGet('ext2').isSupported():
         return fileSystemTypeGet('ext2')
     else:
-        raise ValueError, "You have neither ext3 or ext2 support in your kernel!"
+        raise ValueError, "You have neither xfs, ext3, nor ext2 support in your kernel!"
 
 
 def fileSystemTypeGet(key):
@@ -73,7 +75,7 @@
     def __init__(self):
         self.labels = None
 
-    def createLabel(self, mountpoint):
+    def createLabel(self, mountpoint, maxLabelChars):
         if self.labels == None:
 
             self.labels = {}
@@ -85,16 +87,16 @@
             del diskset
             self.reserveLabels(labels)
         
-        if len(mountpoint) > 16:
-            mountpoint = mountpoint[0:16]
+        if len(mountpoint) > maxLabelChars:
+            mountpoint = mountpoint[0:maxLabelChars]
         count = 0
         while self.labels.has_key(mountpoint):
             count = count + 1
             s = "%s" % count
-            if (len(mountpoint) + len(s)) <= 16:
+            if (len(mountpoint) + len(s)) <= maxLabelChars:
                 mountpoint = mountpoint + s
             else:
-                strip = len(mountpoint) + len(s) - 16
+                strip = len(mountpoint) + len(s) - maxLabelChars
                 mountpoint = mountpoint[0:len(mountpoint) - strip] + s
         self.labels[mountpoint] = 1
 
@@ -123,6 +125,7 @@
         self.defaultOptions = "defaults"
         self.migratetofs = None
         self.extraFormatArgs = []
+        self.maxLabelChars = 16
 
     def mount(self, device, mountpoint, readOnly=0):
         if not self.isMountable():
@@ -240,6 +243,49 @@
         else:
             return 0
 
+class xfsFileSystem(FileSystemType):
+    def __init__(self):
+        FileSystemType.__init__(self)
+        self.partedFileSystemType = parted.file_system_type_get("xfs")
+        self.formattable = 1
+        self.checked = 1
+        self.linuxnativefs = 1
+        self.name = "xfs"
+        self.maxSize = 2 * 1024 * 1024
+        self.supported = 1
+        self.maxLabelChars = 12
+
+    # FIXME - HACK! mkp
+    def isMountable(self):
+        return 1
+
+    def formatDevice(self, entry, progress, chroot='/'):
+        devicePath = entry.device.setupDevice(chroot)
+
+        rc = iutil.execWithRedirect("/usr/sbin/mkfs.xfs",
+                                    ["mkfs.xfs", "-f", "-l", "internal",
+                                     devicePath ],
+                                    stdout = "/dev/tty5",
+                                    stderr = "/dev/tty5")
+
+        if rc:
+            raise SystemError
+
+    def labelDevice(self, entry, chroot):
+        devicePath = entry.device.setupDevice(chroot)
+        label = labelFactory.createLabel(entry.mountpoint, self.maxLabelChars)
+        db_cmd = "label " + label
+        rc = iutil.execWithRedirect("/usr/sbin/xfs_db",
+                                    ["xfs_db", "-x", "-c", db_cmd, devicePath],
+                                    stdout = "/dev/tty5",
+                                    stderr = "/dev/tty5")
+        if rc:
+            raise SystemError
+        entry.setLabel(label)
+        
+                                  
+fileSystemTypeRegister(xfsFileSystem())
+
 class reiserfsFileSystem(FileSystemType):
     def __init__(self):
         FileSystemType.__init__(self)
@@ -295,7 +341,7 @@
 
     def labelDevice(self, entry, chroot):
         devicePath = entry.device.setupDevice(chroot)
-        label = labelFactory.createLabel(entry.mountpoint)
+        label = labelFactory.createLabel(entry.mountpoint, self.maxLabelChars)
         rc = iutil.execWithRedirect("/usr/sbin/e2label",
                                     ["e2label", devicePath, label],
                                     stdout = "/dev/tty5",
@@ -708,9 +754,11 @@
 
     def bootloaderChoices(self, diskSet):
 	mntDict = {}
+	fstypeDict = {}
 
         for entry in self.entries:
 	    mntDict[entry.mountpoint] = entry.device
+	    fstypeDict[entry.device] = entry.fsystem.getName()
 
         if iutil.getArch() == "ia64" and mntDict.has_key("/boot/efi"):
             bootDev = mntDict['/boot/efi']
@@ -723,6 +771,10 @@
 	    return None
 	elif bootDev.getName() == "RAIDDevice":
 	    return [ ( bootDev.device, "RAID Device" ) ]
+
+	# HACK - multifsify ;) -ERS
+	if fstypeDict[bootDev] == "xfs":
+		return [(diskSet.driveList()[0], N_("Master Boot Record (MBR)"))]
 	
 	return [ (diskSet.driveList()[0], N_("Master Boot Record (MBR)") ),
 		 (bootDev.device,	  N_("First sector of boot partition"))
@@ -1441,6 +1493,25 @@
         fsset.add(entry)
     return fsset
 
+def isValidXFS(device):
+    file = '/tmp/' + device
+    isys.makeDevInode(device, file)
+    try:
+        fd = os.open(file, os.O_RDONLY)
+    except:
+        return 0
+    
+    buf = os.read(fd, 4)
+    os.close(fd)
+    
+    if len(buf) != 4:
+        return 0
+    
+    if buf == "XFSB":
+        return 1
+    
+    return 0
+
 def isValidExt2(device):
     file = '/tmp/' + device
     isys.makeDevInode(device, file)
diff -urN anaconda-7.2/gui.py anaconda-7.2-xfs/gui.py
--- anaconda-7.2/gui.py	Thu Aug 30 12:19:55 2001
+++ anaconda-7.2-xfs/gui.py	Fri Oct 26 16:31:05 2001
@@ -36,6 +36,7 @@
 StayOnScreen = "stayOnScreen"
 
 stepToClass = {
+    "sgiwelcome" : ("welcome_gui", "SGIWelcomeWindow"),
     "language" : ("language_gui", "LanguageWindow"),
     "keyboard" : ("keyboard_gui", "KeyboardWindow"),
     "mouse" : ("mouse_gui", "MouseWindow"),
diff -urN anaconda-7.2/image.py anaconda-7.2-xfs/image.py
--- anaconda-7.2/image.py	Wed Jun 20 22:42:21 2001
+++ anaconda-7.2-xfs/image.py	Fri Oct 26 15:39:02 2001
@@ -116,8 +116,12 @@
 		isys.ejectCdrom(self.device)
 
 	    while not done:
-		self.messageWindow(_("Change CDROM"), 
-		    _("Please insert disc %d to continue.") % self.currentDisc)
+                if self.currentDisc == 3:
+                    self.messageWindow(_("Change CDROM"),
+                                       "Please insert the SGI disc to continue.")
+                else:
+                    self.messageWindow(_("Change CDROM"), 
+                                       _("Please insert Red Hat disc %d to continue.") % self.currentDisc)
 
 		try:
 		    if isys.mount(self.device, "/mnt/source", 
@@ -135,7 +139,7 @@
 
 		    if not done:
 			self.messageWindow(_("Wrong CDROM"),
-				_("That's not the correct Red Hat CDROM."))
+				_("That's not the correct CDROM."))
 			isys.umount("/mnt/source")
 			isys.ejectCdrom(self.device)
 		except:
@@ -167,7 +171,7 @@
 	(self.device, tree) = string.split(url, "/", 1)
 	self.messageWindow = messageWindow
 	self.progressWindow = progressWindow
-	self.currentDisc = 1
+	self.currentDisc = 3
         self.loopbackFile = None
 	ImageInstallMethod.__init__(self, "/" + tree)
 
diff -urN anaconda-7.2/installclass.py anaconda-7.2-xfs/installclass.py
--- anaconda-7.2/installclass.py	Thu Aug 30 12:22:11 2001
+++ anaconda-7.2-xfs/installclass.py	Fri Oct 26 15:41:08 2001
@@ -66,6 +66,7 @@
 
     def setSteps(self, dispatch):
 	dispatch.setStepList(
+                 "sgiwelcome",
 		 "language",
 		 "keyboard",
 		 "mouse",
diff -urN anaconda-7.2/iw/bootloader_gui.py anaconda-7.2-xfs/iw/bootloader_gui.py
--- anaconda-7.2/iw/bootloader_gui.py	Tue Aug  7 11:28:36 2001
+++ anaconda-7.2-xfs/iw/bootloader_gui.py	Sun Nov 11 21:13:04 2001
@@ -179,7 +179,7 @@
             cur = text[i]
 # lilo did not allow ' '!, grub does
 #            if cur == ' ' or cur == '#' or cur == '$' or cur == '=':
-            if cur == '#' or cur == '$' or cur == '=':
+            if cur == '#' or cur == '$' or cur == '=' or (self.lilo_radio.get_active() and cur == " "):
                 entry.emit_stop_by_name ("insert_text")
                 return
             i = i + 1
diff -urN anaconda-7.2/iw/progress_gui.py anaconda-7.2-xfs/iw/progress_gui.py
--- anaconda-7.2/iw/progress_gui.py	Wed Aug 29 16:37:44 2001
+++ anaconda-7.2-xfs/iw/progress_gui.py	Fri Oct 26 13:33:22 2001
@@ -164,8 +164,8 @@
         else:
             shortlang = ''
                 
-        pixmaps1 = glob.glob("/usr/share/anaconda/pixmaps/rnotes/%s/*.png" % shortlang)
-        pixmaps2 = glob.glob("pixmaps/rnotes/%s/*.png" % shortlang)
+        pixmaps1 = glob.glob("/usr/share/anaconda/pixmaps/sginotes/*.png")
+        pixmaps2 = glob.glob("pixmaps/sginotes/*.png")
 
         if len(pixmaps1) > 0 or len(pixmaps2) > 0:
             if len(pixmaps1) < len(pixmaps2):
@@ -182,7 +182,7 @@
         pixmaps = []
         for pixmap in files:
             if string.find (pixmap, "progress_first.png") < 0:
-                pixmaps.append(pixmap[string.find(pixmap, "rnotes/"):])
+                pixmaps.append(pixmap[string.find(pixmap, "sginotes/"):])
 
         self.pixmaps = pixmaps
         self.pixtimer = timer.Timer()
diff -urN anaconda-7.2/iw/welcome_gui.py anaconda-7.2-xfs/iw/welcome_gui.py
--- anaconda-7.2/iw/welcome_gui.py	Tue Aug  7 11:42:06 2001
+++ anaconda-7.2-xfs/iw/welcome_gui.py	Sun Nov 11 21:13:04 2001
@@ -16,6 +16,86 @@
 from iw_gui import *
 from translate import _, N_
 
+class SGIWelcomeWindow (InstallWindow):
+
+    def __init__ (self, ics):
+        InstallWindow.__init__ (self, ics)
+        
+        ics.setTitle (_("Welcome"))
+        ics.setNextEnabled (1)
+        ics.setGrabNext (1)
+        self.beingDisplayed = 0
+        self.ics = ics
+        
+    def getNext (self):
+        if not self.beingDisplayed: return
+        
+        if self.cancelChoice.get_active():
+            import sys
+            
+            print "Exiting"
+            sys.exit(0)
+        else:
+            self.beingDisplay = 0
+            return None
+
+    def getScreen (self):
+
+        frame = GtkFrame ()
+        frame.set_shadow_type (SHADOW_IN)
+
+        box = GtkVBox (FALSE)
+        box.set_border_width (5)
+        frame.add (box)
+
+        text = GtkLabel ("Unofficial SGI Installer with XFS version 1.0.2!\n\n"
+                        "For information on the XFS filesystem "
+                         "please see http://oss.sgi.com/projects/xfs\n\n"
+                         "Official Red Hat 7.2 CDs are needed "
+                         "to complete this installation\n\n"
+                         "This installer is not a product of Red Hat\n"
+                         "Please DO NOT report problems with this installer "
+                         "to Red Hat\n\n"
+                         "Red Hat(r) is a registered trademark of Red Hat, Inc.\n\n ")
+        text.set_line_wrap(TRUE)
+        text.set_alignment(0.0, 0.0)
+        text.set_usize(400,-1)
+
+        box.pack_start (text, FALSE)
+
+	pix = self.ics.readPixmap ("sgi.png")
+
+        if pix:
+            ebox = GtkEventBox ()
+            style = box.get_style ().copy ()
+            ebox.set_style (style)
+            ebox.add (pix)
+            box.pack_start (ebox, FALSE)
+
+        label = GtkLabel("Would you like to continue?")
+        label.set_line_wrap(TRUE)
+        label.set_alignment(0.0, 0.0)
+        label.set_usize(400, -1)
+
+        box.pack_start(label)
+
+        radioBox = GtkVBox (FALSE)
+        self.continueChoice = GtkRadioButton (None, _("Yes"))
+        radioBox.pack_start(self.continueChoice, FALSE)
+        self.cancelChoice = GtkRadioButton(
+                self.continueChoice, _("No"))
+        radioBox.pack_start(self.cancelChoice, FALSE)
+
+        align = GtkAlignment()
+        align.add(radioBox)
+        align.set(0.5, 0.5, 0.0, 0.0)
+
+        box.pack_start(align, TRUE, TRUE)
+        box.set_border_width (5)
+        self.beingDisplayed = 1
+
+        return frame
+
 class WelcomeWindow (InstallWindow):		
 
     windowTitle = N_("Welcome")
diff -urN anaconda-7.2/kickstart.py anaconda-7.2-xfs/kickstart.py
--- anaconda-7.2/kickstart.py	Tue Sep  4 15:12:33 2001
+++ anaconda-7.2-xfs/kickstart.py	Sun Nov 11 21:13:04 2001
@@ -811,6 +811,7 @@
         
 	dispatch.skipStep("bootdisk")
         dispatch.skipStep("welcome")
+        dispatch.skipStep("sgiwelcome")
         dispatch.skipStep("package-selection")
         dispatch.skipStep("confirminstall")
         dispatch.skipStep("confirmupgrade")
Binary files anaconda-7.2/loader/kon-loader.tr and anaconda-7.2-xfs/loader/kon-loader.tr differ
diff -urN anaconda-7.2/loader/loader.c anaconda-7.2-xfs/loader/loader.c
--- anaconda-7.2/loader/loader.c	Thu Aug 30 20:19:12 2001
+++ anaconda-7.2-xfs/loader/loader.c	Fri Oct 26 15:49:42 2001
@@ -2880,6 +2880,7 @@
     mlLoadModule("vfat", NULL, modLoaded, modDeps, NULL, modInfo, flags);
     mlLoadModule("ext3", NULL, modLoaded, modDeps, NULL, modInfo, flags);
     mlLoadModule("reiserfs", NULL, modLoaded, modDeps, NULL, modInfo, flags);
+    mlLoadModule("xfs", NULL, modLoaded, modDeps, NULL, modInfo, flags);
 
     usbInitializeMouse(modLoaded, modDeps, modInfo, flags);
 
diff -urN anaconda-7.2/partitioning.py anaconda-7.2-xfs/partitioning.py
--- anaconda-7.2/partitioning.py	Tue Sep  4 15:11:52 2001
+++ anaconda-7.2-xfs/partitioning.py	Tue Oct 30 19:39:47 2001
@@ -1260,22 +1260,34 @@
         for dev, devices, level, numActive in self.mdList:
             # XXX multifsify.
             # XXX NOTE!  reiserfs isn't supported on software raid devices.
-            if not fsset.isValidExt2 (dev):
-                continue
-
-            try:
-                isys.mount(dev, '/mnt/sysimage', readOnly = 1)
-            except SystemError, (errno, msg):
+            if fsset.isValidExt2(dev):
+                #rootparts.append ((dev, "ext2"))
+                
+                try:
+                    isys.mount(dev, '/mnt/sysimage', readOnly = 1)
+                except SystemError, (errno, msg):
+                    try:
+                        isys.mount(dev, '/mnt/sysimage', "ext3", readOnly = 1)
+                    except SystemError, (errno, msg):
+                        intf.messageWindow(_("Error"),
+                                           _("Error mounting filesystem "
+                                             "on %s: %s") % (dev, msg))
+                        continue
+                if os.access ('/mnt/sysimage/etc/fstab', os.R_OK):
+                    rootparts.append ((dev, "ext2"))
+                isys.umount('/mnt/sysimage')
+                        
+            elif fsset.isValidXFS(dev):
                 try:
-                    isys.mount(dev, '/mnt/sysimage', "ext3", readOnly = 1)
+                    isys.mount(dev, '/mnt/sysimage', fstype="xfs", readOnly = 1)
                 except SystemError, (errno, msg):
                     intf.messageWindow(_("Error"),
-                                       _("Error mounting filesystem "
-                                         "on %s: %s") % (dev, msg))
+                                       _("Error mounting XFS filesystem on %s: %s")
+                                       % (dev, msg))
                     continue
-            if os.access ('/mnt/sysimage/etc/fstab', os.R_OK):
-                rootparts.append ((dev, "ext2"))
-            isys.umount('/mnt/sysimage')
+                if os.access ('/mnt/sysimage/etc/fstab', os.R_OK):
+                    rootparts.append ((dev, "xfs"))
+                isys.umount('/mnt/sysimage')
 
         self.stopAllRaid()
 
@@ -1293,9 +1305,7 @@
                     # XXX check for raid superblocks on non-autoraid partitions
                     #  (#32562)
                     pass
-                elif part.fs_type and (part.fs_type.name == "ext2"
-                                     or part.fs_type.name == "ext3"
-                                     or part.fs_type.name == "reiserfs"):
+		elif part.fs_type and part.fs_type.name in ["ext2", "ext3", "reiserfs", "xfs"]:
                     node = get_partition_name(part)
 		    try:
 			isys.mount(node, '/mnt/sysimage', part.fs_type.name)
diff -urN anaconda-7.2/pixmaps/Makefile anaconda-7.2-xfs/pixmaps/Makefile
--- anaconda-7.2/pixmaps/Makefile	Wed Aug 22 16:22:46 2001
+++ anaconda-7.2-xfs/pixmaps/Makefile	Fri Oct 26 15:50:50 2001
@@ -9,6 +9,9 @@
 	mkdir -p $(DESTDIR)/$(ANACONDADATADIR)/pixmaps
 	install *.png $(DESTDIR)/$(ANACONDADATADIR)/pixmaps
 
+	mkdir -p $(DESTDIR)/$(ANACONDADATADIR)/pixmaps/sginotes
+	install sginotes/*.png $(DESTDIR)/$(ANACONDADATADIR)/pixmaps/sginotes
+
 	for i in $(RNOTES_LANGS); do \
 	  mkdir -p $(DESTDIR)/$(ANACONDADATADIR)/pixmaps/rnotes/$$i; \
 	  install rnotes/$$i/*.png $(DESTDIR)/$(ANACONDADATADIR)/pixmaps/rnotes/$$i; \
diff -urN anaconda-7.2/scripts/mk-images anaconda-7.2-xfs/scripts/mk-images
--- anaconda-7.2/scripts/mk-images	Wed Sep  5 12:52:54 2001
+++ anaconda-7.2-xfs/scripts/mk-images	Fri Oct 26 15:20:16 2001
@@ -777,6 +777,7 @@
     version=$(rpm --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)${vertag}
 
     rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd)
+    find  $KERNELROOT/lib/modules -name \*.o -print | xargs strip --strip-unneeded
     if [ ! -z $ppackage ]; then 
 	rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/* ./etc/pcmcia/*)
     fi
diff -urN anaconda-7.2/scripts/mk-images.i386 anaconda-7.2-xfs/scripts/mk-images.i386
--- anaconda-7.2/scripts/mk-images.i386	Wed Sep  5 18:25:45 2001
+++ anaconda-7.2-xfs/scripts/mk-images.i386	Sat Nov  3 23:52:44 2001
@@ -80,7 +80,7 @@
 IDEMODS=""
 SCSIMODS="sd_mod sr_mod"
 
-SECSTAGE="agpgart msdos vfat raid0 raid1 raid5 ext3 reiserfs $IDEMODS $SCSIMODS $LATEUSBMODS"
+SECSTAGE="agpgart msdos vfat raid0 raid1 raid5 ext3 reiserfs xfs $IDEMODS $SCSIMODS $LATEUSBMODS"
 
 COMMONMODULES="vfat $USBMODS"
 LOCALMODULES="$COMMONMODULES BusLogic aic7xxx megaraid ncr53c8xx 
diff -urN anaconda-7.2/scripts/upd-instroot anaconda-7.2-xfs/scripts/upd-instroot
--- anaconda-7.2/scripts/upd-instroot	Wed Aug 22 12:33:26 2001
+++ anaconda-7.2-xfs/scripts/upd-instroot	Mon Nov 19 23:35:44 2001
@@ -95,7 +95,7 @@
 	 ash kon2 e2fsprogs util-linux raidtools popt mount procps rpm
 	 XFree86 Xconfigurator anaconda anaconda-runtime kudzu-devel
 	 kudzu db3 rpm-python bzip2 bzip2-libs dosfstools pciutils 
-	 reiserfs-utils parted busybox-anaconda"
+	 reiserfs-utils xfsprogs xfsdump parted busybox-anaconda"
 
 if [ $ARCH = i386 ]; then
     PACKAGES="$PACKAGES kernel-pcmcia-cs lilo"
@@ -121,7 +121,8 @@
            XFree86-cyrillic-fonts XFree86 Xconfigurator pygnome pygtk
            pygtk-libglade pygnome-libglade pygnome-applet
            pygnome-capplet gdk-pixbuf XFree86-KOI8-R
-           XFree86-KOI8-R-75dpi-fonts pciutils pam reiserfs-utils"
+           XFree86-KOI8-R-75dpi-fonts pciutils pam reiserfs-utils xfsprogs
+	   xfsdump"
 
 if [ -z "$NEEDGR" ]; then
     PACKAGESGR="bash"
@@ -202,11 +203,17 @@
 sbin/mkfs.msdos
 sbin/mkfs.vfat
 sbin/mkreiserfs
+sbin/mkfs.xfs
 sbin/mkraid
 sbin/mkswap
 sbin/parted
 sbin/probe
 sbin/tune2fs
+sbin/xfsdump
+sbin/xfsrestore
+sbin/xfs_repair
+usr/sbin/xfs_db
+usr/sbin/xfs_check
 usr/X11R6/lib/X11/Cards
 usr/X11R6/share/Xconfigurator/MonitorsDB
 usr/bin/python*
@@ -296,6 +303,7 @@
 sbin/fsck
 sbin/fsck.ext2
 sbin/fsck.ext3
+sbin/fsck.xfs
 sbin/ifconfig
 sbin/insmod
 sbin/lsmod
diff -urN anaconda-7.2/scripts/upd-modules anaconda-7.2-xfs/scripts/upd-modules
--- anaconda-7.2/scripts/upd-modules	Thu May  3 19:16:05 2001
+++ anaconda-7.2-xfs/scripts/upd-modules	Fri Oct 26 15:24:55 2001
@@ -86,6 +86,7 @@
 version=$(rpm --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)BOOT
 
 rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd)
+find  $KERNELROOT/lib/modules -name \*.o -print | xargs strip --strip-unneeded
 rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/* ./etc/pcmcia/*)
 
 if [ ! -d "$KERNELROOT/lib/modules/$version/scsi" ]; then
diff -urN anaconda-7.2/text-help/C/s1-help-screens-welcome.txt anaconda-7.2-xfs/text-help/C/s1-help-screens-welcome.txt
--- anaconda-7.2/text-help/C/s1-help-screens-welcome.txt	Fri Jul  6 14:34:18 2001
+++ anaconda-7.2-xfs/text-help/C/s1-help-screens-welcome.txt	Fri Oct 26 15:26:53 2001
@@ -1,6 +1,13 @@
 
 Welcome to Red Hat Linux
 
+   This is a MODIFIED version of the Red Hat
+   installer which includes support for the XFS
+   filesystem from SGI. Please do not direct
+   questions about XFS to Red Hat Inc. - informatino
+   about XFS can be found at
+   http://oss.sgi.com/projects/xfs
+
    Welcome! This installation process is outlined in
    detail in the Red Hat Linux Reference Guide
    available from Red Hat, Inc. on the Documentation
diff -urN anaconda-7.2/text-help/text-help-C.sgml anaconda-7.2-xfs/text-help/text-help-C.sgml
--- anaconda-7.2/text-help/text-help-C.sgml	Mon Aug 27 09:45:01 2001
+++ anaconda-7.2-xfs/text-help/text-help-C.sgml	Fri Oct 26 15:28:36 2001
@@ -146,6 +146,13 @@
  <sect1 id="s1-help-screens-welcome">
       <title>Welcome to &RHL;</title>
       <para>
+        This is a MODIFIED version of the Red Hat
+        installer which includes support for the XFS filesystem
+        from SGI.  Please do not direct questions about XFS
+        to Red Hat Inc. - informatino about XFS can be found
+        at http://oss.sgi.com/projects/xfs
+      </para>
+      <para>
 Welcome! This installation process is outlined in detail in the
 <citetitle>&RHLRGS;</citetitle> available from &RHI; on the Documentation
 CD. Please read through the guide before you being the installation process.
diff -urN anaconda-7.2/text.py anaconda-7.2-xfs/text.py
--- anaconda-7.2/text.py	Fri Sep  7 13:24:33 2001
+++ anaconda-7.2-xfs/text.py	Fri Oct 26 16:30:19 2001
@@ -31,6 +31,7 @@
 from constants_text import *
 
 stepToClasses = {
+    "sgiwelcome" : ("welcome_text", "SGIWelcomeWindow"),
     "language" : ("language_text", "LanguageWindow"),
     "keyboard" : ("keyboard_text", "KeyboardWindow"),
     "mouse" : ("mouse_text", ("MouseWindow", "MouseDeviceWindow")),
@@ -80,8 +81,6 @@
     stepToClasses["bootloader"] = ("silo_text", ("SiloAppendWindow",
                                                  "SiloWindow"
                                                  "SiloImagesWindow"))
-    
-
 class InstallWindow:
     def __call__ (self, screen, todo):
         if todo.doInstall ():
diff -urN anaconda-7.2/textw/welcome_text.py anaconda-7.2-xfs/textw/welcome_text.py
--- anaconda-7.2/textw/welcome_text.py	Sun Jul  8 22:25:41 2001
+++ anaconda-7.2-xfs/textw/welcome_text.py	Sun Nov 11 21:13:04 2001
@@ -16,6 +16,27 @@
 from translate import _
 import os
 
+class SGIWelcomeWindow:
+    def __call__(self, screen):
+        rc = ButtonChoiceWindow(screen, ("SGI XFS"),
+               ("Unofficial SGI Installer with XFS version 1.0.2!\n\n"
+               "For information on the XFS filesystem "
+               "please see http://oss.sgi.com/projects/xfs\n\n"
+               "Official Red Hat 7.2 CDs are needed "
+               "to complete this installation.\n\n"
+               "This installer is not a product of Red Hat\n"
+               "Please DO NOT report problems with this installer "
+               "to Red Hat.\n\n"
+               "Red Hat(r) is a registered trademark of Red Hat, Inc. "),
+
+        buttons = [_("OK"), _("Cancel")], width = 50)
+
+        if rc == string.lower(_("Cancel")):
+            screen.finish()
+            os._exit(0)
+
+        return INSTALL_OK
+    
 class WelcomeWindow:
     def __call__(self, screen, configFileData):
         rc = ButtonChoiceWindow(screen, _("Red Hat Linux"), 
diff -urN anaconda-7.2/upgrade.py anaconda-7.2-xfs/upgrade.py
--- anaconda-7.2/upgrade.py	Thu Aug 30 17:48:10 2001
+++ anaconda-7.2-xfs/upgrade.py	Fri Oct 12 19:18:49 2001
@@ -137,7 +137,8 @@
         for entry in id.fsset.entries:
             # XXX multifsify
             if (entry.fsystem.getName() == "ext2"
-                or entry.fsystem.getName() == "ext3"):
+                or entry.fsystem.getName() == "ext3"
+                or entry.fsystem.getName() == "xfs"):
                 if flags.setupFilesystems and not entry.isMounted():
                     continue
                 space = isys.pathSpaceAvailable(instPath + entry.mountpoint)
