From 87ec8f1c58cfe1712d4699481179df0e8fa011e1 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Mon, 21 Nov 2005 22:33:46 +0000 Subject: [PATCH] - bump version number - check for bootmanager-* directories as well (automated build appends version strings to exported build directories) - generate yum.conf on the fly - solve the bootstrap problem by also including any just built packages in yum.conf - retrieve yumgroups.xml from the configured boot server - add /sbin and /usr/sbin to su programs, in case we're running under sudo and they're not in build's PATH --- build.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/build.sh b/build.sh index 398c335..b76019c 100755 --- a/build.sh +++ b/build.sh @@ -8,7 +8,7 @@ CONFIGURATIONS_DIR=configurations/ # where built files are stored BUILD_DIR=build/ -BOOTCD_VERSION="3.1" +BOOTCD_VERSION="3.2" FULL_VERSION_STRING="PlanetLab BootCD" OUTPUT_IMAGE_NAME='PlanetLab-BootCD' @@ -29,7 +29,9 @@ INITRD_BYTES_PER_INODE=1024 # make sure the boot manager source is checked out in the same directory # as the bootcd_v3 repository -BOOTMANAGER_DIR=../bootmanager/ +for BOOTMANAGER_DIR in ../bootmanager-* ../bootmanager ; do + [ -d $BOOTMANAGER_DIR ] && break +done if [ ! -d $BOOTMANAGER_DIR ]; then echo "the bootmanager repository needs to be checked out at the same" @@ -75,16 +77,55 @@ function build_cdroot() echo "initialize rpm db" mkdir -p $CD_ROOT/var/lib/rpm rpm --root $CD_ROOT --initdb + + # XXX Should download yum.conf from the boot server? + echo "generate yum.conf" +cat >yum.conf <>yum.conf <##g'` + packages=$(curl $yumgroups | sed -n -e '/BootCD<\/name>/,//{ s/.*\(.*\)<\/packagereq>/\1/p }') set +e for package in $packages; do echo "checking for package $package" - chroot $CD_ROOT /bin/rpm -qi $package > /dev/null + /usr/sbin/chroot $CD_ROOT /bin/rpm -qi $package > /dev/null if [[ "$?" -ne 0 ]]; then echo "package $package was not installed in the cd root." echo "make sure it exists in the yum repository." @@ -99,7 +140,7 @@ function build_cdroot() echo "setting up non-ssh authentication" mkdir -p $CD_ROOT/etc/samba - chroot $CD_ROOT /usr/sbin/authconfig --nostart --kickstart \ + /usr/sbin/chroot $CD_ROOT /usr/sbin/authconfig --nostart --kickstart \ --enablemd5 --enableshadow echo "setting root password" @@ -237,7 +278,7 @@ function build_initrd() $module_dep_file $pci_map_file $pci_table $CD_ROOT/etc/pl_pcitable dd if=/dev/zero of=$INITRD bs=1M count=$RAMDISK_SIZE - mkfs.ext2 -F -m 0 -i $INITRD_BYTES_PER_INODE $INITRD + /sbin/mkfs.ext2 -F -m 0 -i $INITRD_BYTES_PER_INODE $INITRD mkdir -p $INITRD_MOUNT mount -o loop,rw $INITRD $INITRD_MOUNT @@ -272,7 +313,7 @@ function build() USB_IMAGE=${ISO%*.iso}.usb # leave 1 MB of free space on the filesystem USB_KB=$(du -kc $ISO $CD_ROOT/usr/isolinux | awk '$2 == "total" { print $1 + 1024 }') - mkfs.vfat -C $USB_IMAGE $USB_KB + /sbin/mkfs.vfat -C $USB_IMAGE $USB_KB mkdir -p $INITRD_MOUNT mount -o loop,rw $USB_IMAGE $INITRD_MOUNT -- 2.43.0