summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2000-06-02 03:16:06 +0000
committerMatt Wilson <msw@redhat.com>2000-06-02 03:16:06 +0000
commitdad831920698dbca09f67868f16776227c253ffc (patch)
treee7aad8061f107ade5edaeb9155719991afd327a0 /scripts
parente8225fe02ada8ff3cada3f28caa678da1f544a15 (diff)
alpha boot disks (if the kernel would fit) are created
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/buildinstall8
-rwxr-xr-xscripts/mk-images173
-rw-r--r--scripts/mk-images.alpha20
-rw-r--r--scripts/mk-images.i38652
-rwxr-xr-xscripts/upd-instroot31
5 files changed, 196 insertions, 88 deletions
diff --git a/scripts/buildinstall b/scripts/buildinstall
index 722145d18..db481172c 100755
--- a/scripts/buildinstall
+++ b/scripts/buildinstall
@@ -15,6 +15,8 @@ mkdir -p $BUILDINSTDIR
UPD_INSTROOT=./upd-instroot
MK_IMAGES=./mk-images
+BUILDARCH=`rpm -qp --qf "%{ARCH}" $p/RedHat/RPMS/anaconda-runtime-[0-9]*`
+
if [ ! -f $UPD_INSTROOT ]; then
cd $BUILDINSTDIR
rpm2cpio $p/RedHat/RPMS/anaconda-runtime-[0-9]* | cpio --quiet -iumd usr/lib/anaconda-runtime/upd-instroot
@@ -31,8 +33,8 @@ if [ ! -f $MK_IMAGES ]; then
MK_IMAGES=$BUILDINSTDIR/mk-images
fi
-$UPD_INSTROOT $p/RedHat/RPMS $p/image-template $p/RedHat/instimage
-$MK_IMAGES $p/RedHat/RPMS $p $p/image-template
+$UPD_INSTROOT $p/RedHat/RPMS $p/image-template $p/RedHat/instimage $BUILDARCH
+$MK_IMAGES $p/RedHat/RPMS $p $p/image-template $BUILDARCH
rm -rf $BUILDINSTDIR
-rm -rf $p/image-template $p/RedHat/instimage/usr/lib/anaconda-runtime
+#rm -rf $p/image-template $p/RedHat/instimage/usr/lib/anaconda-runtime
diff --git a/scripts/mk-images b/scripts/mk-images
index bc09b0965..68a264e69 100755
--- a/scripts/mk-images
+++ b/scripts/mk-images
@@ -1,11 +1,11 @@
#!/bin/bash
usage () {
- echo "usage: mk-images <kernelpath> <imagepath> <fullmodpath> <imgpath> <temlpatepath>"
+ echo "usage: mk-images <pkgsrc> <toplevel> <template> <buildarch>"
exit 0
}
-if [ -z "$1" -o -z "$2" -o -z "$3" ]; then usage; fi
+if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ]; then usage; fi
TOPDIR=$(echo $0 | sed "s,/[^/]*$,,")
if [ $TOPDIR = $0 ]; then
@@ -25,9 +25,10 @@ TOPDIR=$(cd $TOPDIR; pwd)
KERNELROOT=/tmp/updboot.kernel.$$
MODDEPS=$KERNELROOT/moddeps
ARCH=$(uname -m | sed 's/i.86/i386/')
+ BUILDARCH=$4
if [ ! -d "$1" ]; then
- LATEST=latest --arch $ARCH
+ LATEST=latest --arch $BUILDARCH
else
LATEST=findPackage
fi
@@ -42,8 +43,8 @@ TOPDIR=$(cd $TOPDIR; pwd)
# Stuff that we need
TRIMPCITABLE=$IMGPATH/usr/lib/anaconda-runtime/trimpcitable
- KEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/keymaps-${ARCH}
- FONTS=$IMGPATH/usr/lib/anaconda-runtime/fonts-${ARCH}
+ KEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/keymaps-${BUILDARCH}
+ FONTS=$IMGPATH/usr/lib/anaconda-runtime/fonts-${BUILDARCH}
GETMODDEPS=$IMGPATH/usr/lib/anaconda-runtime/moddeps
MODLIST=$IMGPATH/usr/lib/anaconda-runtime/modlist
MODINFO=$IMGPATH/usr/lib/anaconda-runtime/loader/module-info
@@ -58,9 +59,15 @@ TOPDIR=$(cd $TOPDIR; pwd)
touch $MODULESUSED
+ REQUIREMENTS="$TRIMPCITABLE $PCITABLE $GETMODDEPS $MODINFO
+ $FILTERMODDEPS $LANGTABLE $KEYMAPS"
+
+ if [ $BUILDARCH = i386 ]; then
+ REQUIREMENTS="$REQUIREMENTS $SYSLINUX"
+ fi
+
dieLater=
- for n in $TRIMPCITABLE $PCITABLE $GETMODDEPS $MODINFO $FILTERMODDEPS \
- $LANGTABLE $SYSLINUX $KEYMAPS; do
+ for n in $REQUIREMENTS; do
if [ ! -f $n ]; then
echo "$n doesn't exist"
dieLater=1
@@ -82,6 +89,9 @@ findPackage() {
for n in $dir/$name*; do
thisName=$(rpm --qf '%{NAME}' -qp $n)
+ if [ -z "$thisName" ]; then
+ return
+ fi
if [ $thisName = $name ]; then
echo $n
return
@@ -227,25 +237,53 @@ makemainmodules() {
makemoduleball $FULLMODPATH "$modlist"
}
-makebootdisk() {
+makeinitrd() {
EXTRAKERNELPATH=""
EXTRAINITRDPATH=""
PCMCIA=""
- while [ $(echo $1 | cut -c1-2) = "--" ]; do
- if [ $1 = "--kernelto" ]; then
- EXTRAKERNELPATH=$2
- shift; shift
- elif [ $1 = "--initrdto" ]; then
+ INITRDSIZE=""
+ KEEP=""
+ PADSIZE=""
+ LOADERBIN=""
+ INITRDMODULES=""
+ while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
+ if [ $1 = "--initrdto" ]; then
EXTRAINITRDPATH=$2
shift; shift
elif [ $1 = "--pcmcia" ]; then
PCMCIA=yes
shift
+ elif [ $1 = "--keep" ]; then
+ KEEP=yes
+ shift
+ elif [ $1 = "--initrdsize" ]; then
+ INITRDSIZE=$2
+ shift; shift
+ elif [ $1 = "--padsize" ]; then
+ PADSIZE=$2
+ shift; shift
+ elif [ $1 = "--loaderbin" ]; then
+ LOADERBIN=$2
+ shift; shift
+ elif [ $1 = "--modules" ]; then
+ LOADERMODULES=$2
+ shift; shift
fi
done
- MBD_FILENAME=$IMAGEPATH/$1
- LOADERBIN=$2
- MODSET=`expandModuleSet "$3"`
+ if [ -z "$LOADERBIN" ]; then
+ echo "no loader binary specified!" >&2
+ exit 1
+ fi
+ if [ -z "$LOADERMODULES" ]; then
+ echo "no loader modules specified!" >&2
+ exit 1
+ fi
+ if [ -z "$INITRDSIZE" ]; then
+ echo "I don't know how big to make the initrd image!" >&2
+ exit 1
+ fi
+
+ MODSET=`expandModuleSet "$LOADERMODULES"`
MBD_DIR=/tmp/makebootdisk.dir.$$
MBD_FSIMAGE=/tmp/makebootdisk.initrdimage.$$
MBD_MNTPOINT=/tmp/makebootdisk.mount.$$
@@ -283,7 +321,6 @@ EOF
cp -a $KERNELROOT/etc/pcmcia $MBD_DIR/etc
fi
-
for n in insmod rmmod modprobe; do
ln -s loader $MBD_DIR/sbin/$n
done
@@ -327,14 +364,6 @@ PATH=/bin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mn
export PATH
EOF
- if [ $ARCH = "i386" ]; then
- INITRDSIZE=2000
- FLOPPYSIZE=1440
- else
- echo "I don't know how big to make the image!" >&2
- exit 1
- fi
-
rm -f $MBD_FSIMAGE
dd if=/dev/zero of=$MBD_FSIMAGE bs=1k count=$INITRDSIZE 2> /dev/null
echo y | mke2fs -i 8096 -q $MBD_FSIMAGE $INITRDSIZE > /dev/null 2>/dev/null
@@ -343,8 +372,14 @@ EOF
mkdir $MBD_MNTPOINT
mount -o loop -t ext2 $MBD_FSIMAGE $MBD_MNTPOINT
(cd $MBD_DIR; find . | cpio --quiet -p $MBD_MNTPOINT)
+
+ left=$(df $MBD_MNTPOINT | tail +2)
+ left=$(echo $left | awk '{print $4'})
+
umount $MBD_MNTPOINT
+ echo "Wrote initrd.img (${left}k free)"
+
mv -f $MBD_FSIMAGE $MBD_FSIMAGE.uncompressed
gzip -9 < $MBD_FSIMAGE.uncompressed > $MBD_FSIMAGE
rm -rf $MBD_FSIMAGE.uncompressed $MBD_DIR
@@ -352,41 +387,73 @@ EOF
rm -rf $MBD_TMPIMAGE $MBD_BOOTTREE
dd if=/dev/zero bs=1k count=$FLOPPYSIZE of=/$MBD_TMPIMAGE 2>/dev/null
- # Create the bootdisk image as $MBD_TMPIMAGE, mount it, copy
- # $MBD_FSIMAGE (the initrd) to it, add a kernel, umount it. It should be
- # left as $MBD_TMPIMAGE, with no side affects.
- if [ $ARCH = "i386" ]; then
- gunzip < $BOOTDISKDIR/template.img.gz |
- dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null
- $SYSLINUX $MBD_TMPIMAGE
- mkdir -p $MBD_BOOTTREE
- mount -o loop -t msdos $MBD_TMPIMAGE $MBD_BOOTTREE
+ if [ -n "$PADSIZE" ]; then
+ size=`cat $MBD_FSIMAGE | wc -c`
+ filler=`expr $PADSIZE "*" 1024 - $size`
+ dd if=/dev/zero bs=$filler count=1 >> $MBD_FSIMAGE 2> /dev/null
+ fi
- (cd $BOOTDISKDIR; find . ! -name "*.msg" -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE)
+ if [ -n "$EXTRAINITRDPATH" ]; then
+ mkdir -p `dirname $EXTRAINITRDPATH`
+ cp -a $MBD_FSIMAGE $EXTRAINITRDPATH
+ fi
- cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img
- cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz
- cp $BOOTDISKDIR/*.msg $MBD_BOOTTREE
+ if [ -z "$KEEP" ]; then
+ rm -rf $MBD_TMPIMAGE $MBD_FSIMAGE $MBD_MNTPOINT $MBD_BOOTTREE
+ fi
+}
- left=$(df $MBD_BOOTTREE | tail +2)
- left=$(echo $left | awk '{print $4'})
+makebootdisk() {
+ BOOTDISKSIZE=""
+ EXTRAKERNELPATH=""
+ INITRDFLAGS=""
+ MBD_FILENAME=""
+ while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
+ if [ $1 = "--bootdisksize" ]; then
+ BOOTDISKSIZE=$2
+ shift; shift
+ continue
+ elif [ $1 = "--kernelto" ]; then
+ EXTRAKERNELPATH=$2
+ shift; shift
+ continue
+ elif [ $1 = "--initrdflags" ]; then
+ INITRDFLAGS=$2
+ shift; shift
+ continue
+ elif [ $1 = "--imagename" ]; then
+ MBD_FILENAME=$IMAGEPATH/$2
+ shift; shift
+ continue
+ fi
+ echo "Unknown option passed to makebootdisk"
+ exit 1
+ done
- umount $MBD_BOOTTREE
- else
- echo "I don't know how big to make the image!" >&2
+ if [ -z "$MBD_FILENAME" ]; then
+ echo "No imagename passed"
exit 1
fi
- if [ -n "$EXTRAKERNELPATH" ]; then
- mkdir -p $EXTRAKERNELPATH
- cp -a $KERNELROOT/boot/vmlinuz-* $EXTRAKERNELPATH/vmlinuz
+ if [ ! -z "$INITRDFLAGS" ]; then
+ eval makeinitrd --keep $INITRDFLAGS
fi
- if [ -n "$EXTRAINITRDPATH" ]; then
- mkdir -p $EXTRAINITRDPATH
- cp -a $MBD_FSIMAGE $EXTRAINITRDPATH/initrd.img
+ mkdir -p $MBD_BOOTTREE
+
+ # provided by the mk-image.$ARCH file
+ prepareBootImage
+
+ left=$(df $MBD_BOOTTREE | tail +2)
+ left=$(echo $left | awk '{print $4'})
+
+ umount $MBD_BOOTTREE
+
+ if [ -n "$EXTRAKERNELPATH" ]; then
+ mkdir -p `dirname $EXTRAKERNELPATH`
+ cp -a $KERNELROOT/boot/vmlinuz-* $EXTRAKERNELPATH
fi
-
+
rm -f $MBD_FILENAME
mv -f $MBD_TMPIMAGE $MBD_FILENAME
rm -rf $MBD_TMPIMAGE $MBD_FSIMAGE $MBD_MNTPOINT $MBD_BOOTTREE
@@ -535,7 +602,9 @@ makedriverdisk () {
version=$(rpm --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)BOOT
rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd)
- rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/*)
+ if [ ! -z $ppackage ]; then
+ rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/*)
+ fi
if [ ! -d "$KERNELROOT/lib/modules/$version/scsi" ]; then
echo "$1 is not a valid modules directory" 2>&1
@@ -555,6 +624,6 @@ makedriverdisk () {
rundepmod "$KERNELROOT/lib/modules/$version/*/*.o" $MODDEPS
rm -f $MODDEPS.foo
-. $TOPDIR/mk-images.${ARCH}
+. $TOPDIR/mk-images.${BUILDARCH}
rm -rf $KERNELROOT
diff --git a/scripts/mk-images.alpha b/scripts/mk-images.alpha
new file mode 100644
index 000000000..47116a15a
--- /dev/null
+++ b/scripts/mk-images.alpha
@@ -0,0 +1,20 @@
+SECSTAGE="vfat raid0 raid1 raid5"
+
+prepareBootImage() {
+ gunzip < $BOOTDISKDIR/generic.img.gz |
+ dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null
+ mount -o loop -t ext2 $MBD_TMPIMAGE $MBD_BOOTTREE
+
+ zcat $KERNELROOT/boot/vmlinuz-* | gzip -9 > $MBD_BOOTTREE/vmlinux.gz
+}
+
+makeinitrd --initrdto $TOPDESTPATH/images/ramdisk.img \
+ --initrdsize 2000 \
+ --padsize 1440 \
+ --loaderbinary loader \
+ --modules "3c59x de4x5 depca eepro100 ibmtr old_tulip tulip ne vfat"
+
+makebootdisk --bootdisksize 1440 --kernelto $TOPDESTPATH/kernels/vmlinux.gz \
+ --imagename generic.img
+
+makemainmodules "$SECSTAGE"
diff --git a/scripts/mk-images.i386 b/scripts/mk-images.i386
index 8aefc17d3..a6b9afff5 100644
--- a/scripts/mk-images.i386
+++ b/scripts/mk-images.i386
@@ -1,18 +1,44 @@
SECSTAGE="vfat raid0 raid1 raid5"
-makebootdisk --kernelto $TOPDESTPATH/dosutils/autorun \
- --initrdto $TOPDESTPATH/dosutils/autorun \
- boot.img loader-local "vfat
- AM53C974 ips DAC960 megaraid ncr53c8xx cpqarray aic7xxx
- BusLogic qlogicisp advansys eata_dma"
-
-makebootdisk --kernelto $TOPDESTPATH/images/pxeboot \
- --initrdto $TOPDESTPATH/images/pxeboot \
- bootnet.img loader-network "3c59x ac3200 at1700 de4x5
- de600 de620 depca dgrs eepro100 eepro hp-plus hp
- hp100 ibmtr ni52 old_tulip tulip ne nfs vfat"
-
-makebootdisk --pcmcia pcmcia.img loader-pcmcia "$PCMCIAMODULES nfs vfat"
+prepareBootImage() {
+ gunzip < $BOOTDISKDIR/template.img.gz |
+ dd of=$MBD_TMPIMAGE conv=notrunc > /dev/null 2> /dev/null
+ $SYSLINUX $MBD_TMPIMAGE
+ mount -o loop -t msdos $MBD_TMPIMAGE $MBD_BOOTTREE
+
+ (cd $BOOTDISKDIR; find . ! -name "*.msg" -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE)
+
+ cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img
+ cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz
+ cp $BOOTDISKDIR/*.msg $MBD_BOOTTREE
+}
+
+makebootdisk --kernelto $TOPDESTPATH/dosutils/autorun/vmlinuz \
+ --bootdisksize 1440 \
+ --imagename boot.img \
+ --initrdflags '--initrdto $TOPDESTPATH/dosutils/autorun/initrd.img \
+ --initrdsize 2000 \
+ --loaderbin loader-local \
+ --modules "vfat AM53C974 ips DAC960
+ megaraid ncr53c8xx cpqarray aic7xxx
+ BusLogic qlogicisp advansys eata_dma"'
+
+makebootdisk --kernelto $TOPDESTPATH/images/pxeboot/vmlinuz \
+ --bootdisksize 1440 \
+ --imagename bootnet.img \
+ --initrdflags '--initrdto $TOPDESTPATH/images/pxeboot/initrd.img \
+ --initrdsize 2000 \
+ --loaderbin loader-network \
+ --modules "3c59x ac3200 at1700 de4x5 de600
+ de620 depca dgrs eepro100 eepro hp-plus hp
+ hp100 ibmtr ni52 old_tulip tulip ne nfs
+ vfat"'
+
+makebootdisk --imagename pcmcia.img \
+ --initrdflags '--pcmcia \
+ --initrdsize 2000 \
+ --loaderbin loader-pcmcia \
+ --modules "$PCMCIAMODULES nfs vfat"'
makedriverdisk "Supplemental Drivers" "drivers" "+scsi +net"
diff --git a/scripts/upd-instroot b/scripts/upd-instroot
index 231b6e846..75d78fb29 100755
--- a/scripts/upd-instroot
+++ b/scripts/upd-instroot
@@ -1,19 +1,7 @@
#!/bin/bash
ORIGDIR=`pwd`
-STRIP=strip
-ARCH=`uname -m | sed -e 's/i.86/i386/'`
-
-if [ "$ARCH" = sparc64 ]; then
- exec sparc32 $0 $*
-fi
-
-NEEDGR=yes
-if [ $(uname -m) = ia64 ]; then
- NEEDGR=""
- STRIP=echo
-fi
if [ -z "$1" ]; then
echo "upd-instroot: updates instimage from a Red Hat RPMS directory"
@@ -25,6 +13,15 @@ if [ ! -d $1 ]; then
LATEST="latest --arch $ARCH"
fi
+PACKAGEDIR=$1
+
+ARCH=`rpm -qp --qf "%{ARCH}" $PACKAGEDIR/anaconda-runtime*.rpm`
+
+NEEDGR=yes
+if [ $ARCH = ia64 ]; then
+ NEEDGR=""
+fi
+
prunePackageList() {
PACKAGEPATH=$1
PACKAGES="$2"
@@ -64,8 +61,6 @@ expandPackageSet() {
done
}
-PACKAGEDIR=$1
-
if [ -z "$2" ]; then
DEST=/tmp/upd-instroot
else
@@ -86,10 +81,10 @@ mkdir -p $DESTGR
PACKAGES="glibc setup python newt libtermcap zlib ash
e2fsprogs util-linux raidtools locale-ja popt mount procps
rpm XFree86 Xconfigurator anaconda anaconda-runtime
- kudzu-devel kudzu db1 db2 db3 rpm-python syslinux bzip2"
+ kudzu-devel kudzu db1 db2 db3 rpm-python bzip2"
if [ $ARCH = i386 ]; then
- PACKAGES="$PACKAGES kernel-pcmcia-cs"
+ PACKAGES="$PACKAGES kernel-pcmcia-cs syslinux"
fi
# xpm is missing
@@ -114,8 +109,6 @@ fi
if [ $ARCH = sparc ]; then
PACKAGESGR="$PACKAGESGR XFree86-Sun"
-elif [ $ARCH = alpha ]; then
- PACKAGESGR="$PACKAGESGR XFree86-TGA"
fi
KEEPFILE=/tmp/keepfile.$$
@@ -487,8 +480,6 @@ if [ -d $DEST/usr/share/locale ]; then
done
fi
-echo -e "\rScrubbing trees..."
-
echo "Patching python library..."
# always use passive mode for ftp installs