long live mk-images. Long live buildinstall. --- scripts/Makefile.am | 6 +- scripts/buildinstall | 254 -------- scripts/buildinstall.functions | 151 ----- scripts/getkeymaps | 75 --- scripts/mk-images | 553 ---------------- scripts/mk-images.alpha | 119 ---- scripts/mk-images.efi | 258 -------- scripts/mk-images.ia64 | 160 ----- scripts/mk-images.ppc | 174 ----- scripts/mk-images.s390 | 61 -- scripts/mk-images.sparc | 172 ----- scripts/mk-images.x86 | 162 ----- scripts/scrubtree | 56 -- scripts/upd-instroot | 1362 ---------------------------------------- 14 files changed, 2 insertions(+), 3561 deletions(-) delete mode 100755 scripts/buildinstall delete mode 100755 scripts/buildinstall.functions delete mode 100755 scripts/getkeymaps delete mode 100755 scripts/mk-images delete mode 100644 scripts/mk-images.alpha delete mode 100644 scripts/mk-images.efi delete mode 100644 scripts/mk-images.ia64 delete mode 100644 scripts/mk-images.ppc delete mode 100644 scripts/mk-images.s390 delete mode 100644 scripts/mk-images.sparc delete mode 100644 scripts/mk-images.x86 delete mode 100755 scripts/scrubtree delete mode 100755 scripts/upd-instroot diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 329a2fc..cf4901e 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -18,10 +18,8 @@ # Author: David Cantrell <dcantrell@xxxxxxxxxx> scriptsdir = $(libexecdir)/$(PACKAGE_NAME) -dist_scripts_SCRIPTS = upd-instroot mk-images buildinstall \ - buildinstall.functions scrubtree getkeymaps \ - makestamp.py maketreeinfo.py upd-updates -dist_scripts_DATA = mk-images.* pyrc.py +dist_scripts_SCRIPTS = makestamp.py maketreeinfo.py upd-updates +dist_scripts_DATA = pyrc.py dist_noinst_SCRIPTS = getlangnames.py upd-bootimage upd-initrd upd-kernel \ makeupdates diff --git a/scripts/buildinstall b/scripts/buildinstall deleted file mode 100755 index 65e5fb3..0000000 --- a/scripts/buildinstall +++ /dev/null @@ -1,254 +0,0 @@ -#!/bin/bash -# -# buildinstall -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -die() { - [ -n "$TREEDIR" ] && rm -rf $TREEDIR - [ -n "$BUILDINSTDIR" ] && rm -rf $BUILDINSTDIR - [ -n "$yumconf" ] && rm -rf $yumconf - echo "Aborting buildinstall" - echo "$@" - exit 1 -} - -usage() { - echo "Usage: buildinstall --version <version> --brand <brand> --product <product> --release <comment> [--output outputdir] <root>" >&2 - exit 1 -} - -CWD="$(pwd)" -ISBETA="false" - -while [ $# -gt 0 ]; do - case $1 in - # general options affecting how we build things - --nogr) - NOGRSTR="--nogr" - shift - ;; - --debug) - DEBUGSTR="--debug" - shift - ;; - --localscripts) - LOCALSCRIPTS="yes" - shift - ;; - - # release information - --version) - VERSION=$2 - shift; shift - ;; - --release) - RELEASESTR=$2 - shift; shift - ;; - --product) - PRODUCTSTR=$2 - shift; shift - ;; - --brand) - BRANDSTR=$2 - shift; shift - ;; - --variant) - VARIANT=$2 - shift; shift - ;; - --bugurl) - BUGURL=$2 - shift; shift - ;; - --output) - OUTPUT=$2 - shift; shift - ;; - --updates) - UPDATES=$2 - shift; shift - ;; - --mirrorlist) - MIRRORLIST="$MIRRORLIST $2" - shift; shift - ;; - --isbeta) - ISBETA="true" - shift - ;; - - *) - if [ -z "$REPO" ]; then - REPO=$1 - else - EXTRA_REPOS="$EXTRA_REPOS $1" - fi - shift - ;; - esac -done - -if [ -z "$PRODUCTSTR" ]; then - usage -fi - -if [ -z "$VERSION" ]; then - usage -fi - -if [ -z "$REPO" ]; then - usage -fi - -if [ -z "$RELEASESTR" ]; then - usage -fi - -if [ -z "$BUGURL" ]; then - BUGURL="your distribution provided bug reporting tool." -fi - -if [[ "$REPO" =~ ^/ ]]; then - [ -n "$OUTPUT" ] || OUTPUT=$REPO - REPO="file://$REPO" -fi - -if [ -z "$OUTPUT" ]; then - usage -fi - -if [ ! -d "$OUTPUT" ]; then - mkdir -p $OUTPUT -fi - -# The first -release and -logos package we are going to look for is the lowercase -if [ -z "$BRANDSTR" ]; then - BRANDSTR="`echo $PRODUCTSTR | tr '[:upper:]' '[:lower:]'`" -fi -export brandpkgname="$BRANDSTR" - -BUILDINSTDIR=$(mktemp -d ${TMPDIR:-/tmp}/buildinstall.tree.XXXXXX) -TREEDIR=$(mktemp -d ${TMPDIR:-/tmp}/treedir.XXXXXX) -CACHEDIR=$(mktemp -d ${TMPDIR:-/tmp}/yumcache.XXXXXX) - -yumconf=$(mktemp ${TMPDIR:-/tmp}/yum.conf.XXXXXX) -cat > $yumconf <<EOF -[main] -cachedir=$CACHEDIR -keepcache=0 -gpgcheck=0 -plugins=0 -reposdir= -tsflags=nodocs - -[anacondarepo] -name=anaconda repo -baseurl=$REPO -enabled=1 -EOF - -n=1 -for r in $EXTRA_REPOS; do - if [[ $r =~ ^/ ]]; then - r="file://$r" - fi - cat >> $yumconf <<EOF - -[anaconda-extrarepo-$n] -name=anaconda extra repo $n -baseurl=$r -enabled=1 -EOF - let n++ -done - -n=1 -for l in $MIRRORLIST; do - cat >> $yumconf <<EOF - -[anaconda-mirrorlistrepo-$n] -name=anaconda mirrorlist repo $n -mirrorlist=$l -enabled=1 -EOF - let n++ -done - -echo "Running buildinstall..." - -if [ "$LOCALSCRIPTS" = "yes" ]; then - UPD_INSTROOT="$CWD/upd-instroot" - MK_IMAGES="$CWD/mk-images" - MK_TREEINFO="$CWD/maketreeinfo.py" - MK_STAMP="$CWD/makestamp.py" - BUILDINSTALL="$CWD/buildinstall" -else - pushd $BUILDINSTDIR - BUILDARCH=`repoquery -c $yumconf --qf "%{ARCH}\n" anaconda` - # lets use rpmutils to make sure we have the canonical basearch - # BUILDARCH != BASEARCH (e.g. i586 != i386, sparcv9 != sparc) - BASEARCH=`python -c "import rpmUtils.arch; \ - print rpmUtils.arch.getBaseArch(myarch=rpmUtils.arch.getCanonArch(skipRpmPlatform = True));"` - yumdownloader -c $yumconf anaconda || exit 1 - rpm2cpio anaconda*rpm | cpio --quiet -iumd './usr*' - rm -f anaconda*rpm - popd - - UPD_INSTROOT=./upd-instroot - MK_IMAGES=./mk-images - MK_TREEINFO=./maketreeinfo.py - MK_STAMP=./makestamp.py - BUILDINSTALL=./buildinstall - - for f in $UPD_INSTROOT $MK_IMAGES $MK_STAMP $MK_TREEINFO $BUILDINSTALL; do - if [ -n "$UPDATES" -a -f $UPDATES/usr/libexec/anaconda/$f ]; then - cp -a $UPDATES/usr/libexec/anaconda/$f* $BUILDINSTDIR/ - elif [ ! -f $f ]; then - cp -a $BUILDINSTDIR/usr/libexec/anaconda/$f* $BUILDINSTDIR/ - else - cp -a $f* $BUILDINSTDIR/ - fi - done - - UPD_INSTROOT=$BUILDINSTDIR/upd-instroot - MK_IMAGES=$BUILDINSTDIR/mk-images - MK_TREEINFO=$BUILDINSTDIR/maketreeinfo.py - MK_STAMP=$BUILDINSTDIR/makestamp.py - BUILDINSTALL=$BUILDINSTDIR/buildinstall -fi - -if [ -n "$UPDATES" ]; then UPDATES="--updates $UPDATES"; fi - -echo "Building images..." -$UPD_INSTROOT $DEBUGSTR $NOGRSTR --arch $BUILDARCH $UPDATES --imgdir $TREEDIR/install $yumconf || die "upd-instroot failed" - -echo "Writing .treeinfo file..." -# NOTE --arch must match MK_IMAGES or the resulting treeinfo will be invalid -$MK_TREEINFO --family="$PRODUCTSTR" ${VARIANT:+--variant="$VARIANT"} --version=$VERSION --arch=$BASEARCH --outfile=$OUTPUT/.treeinfo - -# FIXME: need to update mk-images to take the yumconf -echo "Making images: $PWD" -echo $MK_IMAGES $DEBUGSTR $NOGRSTR --isbeta=$ISBETA --imgdir $TREEDIR/install --arch $BASEARCH --product "$PRODUCTSTR" --version $VERSION --bugurl "$BUGURL" --output $OUTPUT $yumconf -$MK_IMAGES $DEBUGSTR $NOGRSTR --isbeta=$ISBETA --imgdir $TREEDIR/install --arch $BASEARCH --product "$PRODUCTSTR" --version $VERSION --bugurl "$BUGURL" --output $OUTPUT $yumconf || die "image creation failed" - -echo "Writing .discinfo file" -$MK_STAMP --releasestr="$RELEASESTR" --arch=$BASEARCH --outfile=$OUTPUT/.discinfo - -rm -rf $TREEDIR $BUILDINSTDIR -rm -f $yumconf diff --git a/scripts/buildinstall.functions b/scripts/buildinstall.functions deleted file mode 100755 index 6c142ce..0000000 --- a/scripts/buildinstall.functions +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/bash - -# pulled right out of mkinitrd.... -export LD_HWCAP_MASK=0 -DSO_DEPS="" -LDSO="" -get_dso_deps() { - root="$1" ; shift - bin="$1" ; shift - LDSODIR="$1" ; shift - DSO_DEPS="" - - declare -a FILES - declare -a NAMES - [ -z "$LDSODIR" ] && LDSODIR=$LIBDIR - - # this is a hack, but the only better way requires binutils or elfutils - # be installed. i.e., we need readelf to find the interpretter. - if [ -n "$LDSO" ]; then - $LDSO --verify $root/$bin >/dev/null 2>&1 - case $? in - [02]) ;; - *) unset LDSO ;; - esac - fi - if [ -z "$LDSO" ]; then - for ldso in $root/$LDSODIR/ld*.so* ; do - [ -L $ldso ] && continue - [ -x $ldso ] || continue - $ldso --verify $root/$bin >/dev/null 2>&1 - case $? in - [02]) LDSO=$(echo $ldso |sed -e "s,$root,,") ; break ;; - esac - done - fi - - # I still hate shell. - declare -i n=0 - while read NAME I0 FILE ADDR I1 ; do - [ "$FILE" == "not" ] && FILE="$FILE $ADDR" - NAMES[$n]="$NAME" - FILES[$n]="$FILE" - let n++ - - # try to find a generic version - local basedir=$(dirname $(dirname "$FILE")) - local basefile=$(basename "$FILE") - if [ -f "$basedir/$basefile" ]; then - NAMES[$n]="$NAME" - FILES[$n]="$basedir/$basefile" - let n++ - fi - done << EOF - $(/usr/sbin/chroot $root env --unset=LD_LIBRARY_PATH \ - LD_TRACE_PRELINKING=1 LD_WARN= \ - LD_TRACE_LOADED_OBJECTS=1 $LDSO $bin) -EOF - - [ ${#FILES[*]} -eq 0 ] && return 1 - - # we don't want the name of the binary in the list - if [ "${FILES[0]}" == "$bin" ]; then - FILES[0]="" - NAMES[0]="" - [ ${#FILES[*]} -eq 1 ] && return 1 - fi - - declare -i n=0 - while [ $n -lt ${#FILES[*]} ]; do - FILE="${FILES[$n]}" - if [ "$FILE" == "not found" ]; then - echo "WARNING: The dynamic object $bin requires ${NAMES[$n]} n order to properly function." - continue - fi - case "$FILE" in - /lib*) - TLIBDIR=`echo "$FILE" | sed 's,\(/lib[^/]*\)/.*$,\1,'` - BASE=`basename "$FILE"` - # Prefer nosegneg libs over direct segment accesses on i686. - if [ -f "$TLIBDIR/i686/nosegneg/$BASE" ]; then - FILE="$TLIBDIR/i686/nosegneg/$BASE" - # Otherwise, prefer base libraries rather than their optimized - # variants. - elif [ -f "$TLIBDIR/$BASE" ]; then - FILE="$TLIBDIR/$BASE" - fi - ;; - esac - dynamic="yes" - let n++ - done - - DSO_DEPS="${FILES[@]}" - - for l in $(/usr/sbin/chroot $root find /$LDSODIR -maxdepth 1 -type l -name ld*.so*); do - [ "$(/usr/sbin/chroot $root readlink -f $l)" == "$LDSO" ] && DSO_DEPS="$DSO_DEPS $l" - done - if [ "$(uname -m)" == "s390x" ]; then - for l in $(/usr/sbin/chroot $root find /lib -maxdepth 1 -type l -name ld*.so*); do - [ "$(/usr/sbin/chroot $root readlink -f $l)" == "$LDSO" ] && DSO_DEPS="$DSO_DEPS $l" - done - fi - - [ -n "$DEBUG" ] && echo "DSO_DEPS for $bin are $DSO_DEPS" -} - -instFile() { - FILE=$1 - DESTROOT=$2 - - [ -n "$DEBUG" ] && echo "Installing $FILE" - if [ -e $DESTROOT/$FILE -o -L $DESTROOT/$FILE ]; then - return - elif [ ! -d $DESTROOT/`dirname $FILE` ]; then - mkdir -p $DESTROOT/`dirname $FILE` - fi - if [ -L $FILE ]; then - cp -al $FILE $DESTROOT/`dirname $FILE` - instFile ./`dirname $FILE`/`readlink $FILE` $DESTROOT - return - else - cp -aL $FILE $DESTROOT/`dirname $FILE` - fi - - f=$(file $FILE) - echo $f | egrep -q ": (setuid )?ELF" && - echo $f | egrep -qv "statically linked" && { - if echo $f | grep -q " 64-bit " ; then - get_dso_deps $(pwd) "$FILE" lib64 - else - get_dso_deps $(pwd) "$FILE" lib - fi - local DEPS="$DSO_DEPS" - for x in $DEPS ; do - instFile ./$x $DESTROOT - done - } - unset f -} - -instDir() { - DIR=$1 - DESTROOT=$2 - - [ -n "$DEBUG" ] && echo "Installing $DIR" - if [ -d $DESTROOT/$DIR -o -h $DESTROOT/$DIR ]; then - return - fi - cp -a --parents $DIR $DESTROOT/ -} - diff --git a/scripts/getkeymaps b/scripts/getkeymaps deleted file mode 100755 index 137ae5e..0000000 --- a/scripts/getkeymaps +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# getkeymaps -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -ARCH=$1 -if [ -z "$ARCH" ]; then - echo "usage: $0 <arch>" - exit 1 -fi - -if [ "$ARCH" = "x86_64" -o "$ARCH" = "s390x" -o "$ARCH" = "ppc64" ]; then - LIBDIR=lib64 -else - LIBDIR=lib -fi - -TOPDIR=`pwd` -OUTPUT=$2 -if [ -z "$OUTPUT" ]; then - echo "No output specified, using ${TMPDIR:-/tmp}/keymaps-$ARCH.$$" - OUTPUT=${TMPDIR:-/tmp}/keymaps-$ARCH.$$ -fi - -UTILDIR=$3 -if [ -z "$UTILDIR" ]; then - READMAP=../utils/readmap - MAPSHDR=$TOPDIR/../utils/mapshdr -else - READMAP=$UTILDIR/usr/libexec/anaconda/readmap - MAPSHDR=$UTILDIR/usr/libexec/anaconda/mapshdr -fi - -TMP=${TMPDIR:-/tmp}/keymaps.$$ - -rm -rf $TMP -mkdir -p $TMP - -if [ $ARCH = "sparc" ]; then - PATTERN={i386,sun} -else - PATTERN=i386 -fi - -MAPS=$(python -c "import system_config_keyboard.keyboard_models ; system_config_keyboard.keyboard_models.get_supported_models()") - -for map in $MAPS ; do - eval find /lib/kbd/keymaps/$PATTERN -name "$map.map*.gz" | while read n; do - /bin/loadkeys `basename $n .gz` >/dev/null - $READMAP $TMP/`basename $n .map.gz`.map - done -done - -loadkeys us - -rm -f $TMP/defkeymap* $TMP/ANSI* $TMP/lt.map - -(cd $TMP; $MAPSHDR *.map) > $TMP/hdr -cat $TMP/hdr $TMP/*.map | gzip -9 > $OUTPUT -rm -rf $TMP diff --git a/scripts/mk-images b/scripts/mk-images deleted file mode 100755 index 7d842f4..0000000 --- a/scripts/mk-images +++ /dev/null @@ -1,553 +0,0 @@ -#!/bin/bash -# -# mk-images -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -LANG=C - -PATH=$PATH:/sbin:/usr/sbin -IMAGEUUID=$(date +%Y%m%d%H%M).$(uname -i) -TMPDIR=${TMPDIR:-/tmp} - -usage () { - echo "usage: mk-images <pkgsrc> <toplevel> <template> <imgdir> <buildarch> <productname> <version>" - exit 0 -} - -DEBUG="" -BUILDARCH=`uname -m` -BOOTISO="boot.iso" -ISBETA="false" - -while [ $# -gt 0 ]; do - case $1 in - --debug) - DEBUG="--debug" - shift - ;; - --noiso) - BOOTISO="" - shift - ;; - --isbeta) - ISBETA="true" - shift - ;; - --arch) - BUILDARCH=$2 - shift; shift - ;; - --imgdir) - IMGPATH=$2 - shift; shift - ;; - --product) - PRODUCT=$2 - shift; shift - ;; - --version) - VERSION=$2 - shift; shift - ;; - --bugurl) - BUGURL=$2 - shift; shift - ;; - --output) - TOPDESTPATH=$2 - shift; shift - ;; - --nogr) - echo "*** DeprecationWarning: ignoring --nogr option." >&2 - shift - ;; - --mindir) - echo "*** DeprecationWarning: ignoring --mindir option." >&2 - shift; shift - ;; - --stg2dir) - echo "*** DeprecationWarning: please use --imgdir instead of --stg2dir." >&2 - shift; shift - ;; - *) - yumconf=$1 - shift - ;; - esac -done - -if [ -z "$TOPDESTPATH" -o -z "$IMGPATH" -o -z "$PRODUCT" -o -z "$VERSION" ]; then usage; fi - -TOPDIR=$(echo $0 | sed "s,/[^/]*$,,") -if [ $TOPDIR = $0 ]; then - $TOPDIR="." -fi -TOPDIR=$(cd $TOPDIR; pwd) - -# modules that are needed. this is the generic "needed for every arch" stuff -COMMONMODS="fat vfat nfs sunrpc lockd floppy cramfs loop edd pcspkr squashfs ipv6 8021q virtio_pci netconsole" -UMSMODS="ums-jumpshot ums-datafab ums-freecom ums-usbat ums-sddr55 ums-onetouch ums-alauda ums-karma ums-sddr09 ums-cypress" -USBMODS="$UMSMODS ohci-hcd uhci-hcd ehci-hcd usbhid mousedev usb-storage sd_mod sr_mod ub appletouch bcm5974" -FIREWIREMODS="ohci1394 sbp2 fw-ohci fw-sbp2 firewire-sbp2 firewire-ohci" -SDMODS="mmc-block sdhci sdhci-pci" -IDEMODS="ide-cd ide-cd_mod" -SCSIMODS="sr_mod sg st sd_mod scsi_mod iscsi_tcp iscsi_ibft scsi_wait_scan cxgb3i bnx2i be2iscsi" -FSMODS="fat msdos vfat ext2 ext3 ext4 reiserfs jfs xfs gfs2 cifs fuse btrfs hfsplus" -LVMMODS="dm-mod dm-zero dm-snapshot dm-mirror dm-multipath dm-round-robin dm-crypt" -RAIDMODS="raid0 raid1 raid5 raid6 raid456 raid10 linear" -CRYPTOMODS="sha256_generic cbc xts lrw aes_generic crypto_blkcipher crc32c ecb arc4" -PCMCIASOCKMODS="yenta_socket i82365 tcic pcmcia" -INITRDMODS="$USBMODS $FIREWIREMODS $IDEMODS $SCSIMODS $FSMODS $LVMMODS $RAIDMODS $CRYPTOMODS $COMMONMODS $PCMCIASOCKMODS $SDMODS =scsi =net =drm" - -. $(dirname $0)/buildinstall.functions - -# Set, verify, and create paths -IMAGEPATH=$TOPDESTPATH/images -FULLMODPATH=$TMPDIR/instimagemods.$$ -FINALFULLMODPATH=$IMGPATH/modules -INSTIMGPATH=$TOPDESTPATH/images -KERNELBASE=$TMPDIR/updboot.kernel.$$ - -KERNELNAME=vmlinuz -if [ "$BUILDARCH" = "ia64" ]; then - KERNELDIR="/boot/efi/EFI/redhat" -else - KERNELDIR="/boot" -fi - -if [ "$BUILDARCH" = "sparc64" ]; then - BASEARCH=sparc -elif [ "$BUILDARCH" = "ppc64" ]; then - BASEARCH=ppc -else - BASEARCH=$BUILDARCH -fi - -# explicit block size setting for some arches (FIXME: we compose -# ppc64-ish trees as ppc, so we have to set the "wrong" block size) -if [ "$BUILDARCH" = "sparc64" ]; then - CRAMBS="--blocksize 8192" -elif [ "$BUILDARCH" = "sparc" ]; then - CRAMBS="--blocksize 4096" -else - CRAMBS="" -fi - -if [ "$BUILDARCH" = "x86_64" -o "$BUILDARCH" = "s390x" -o "$BUILDARCH" = "ppc64" ]; then - LIBDIR=lib64 -else - LIBDIR=lib -fi - -rm -rf $IMAGEPATH -rm -rf $FULLMODPATH -rm -rf $FINALFULLMODPATH -rm -rf $KERNELBASE -mkdir -p $IMAGEPATH -mkdir -p $FULLMODPATH -mkdir -p $FINALFULLMODPATH -mkdir -p $KERNELBASE -mkdir -p $INSTIMGPATH - -# Stuff that we need -TRIMPCIIDS=$IMGPATH/usr/libexec/anaconda/trimpciids -GETKEYMAPS=$IMGPATH/usr/libexec/anaconda/getkeymaps -LIBEXECBINDIR=$IMGPATH/usr/libexec/anaconda -ADDRSIZE=$IMGPATH/usr/$LIBDIR/anaconda/addrsize -MKS390CDBOOT=$IMGPATH/usr/$LIBDIR/anaconda/mk-s390-cdboot -GENMODINFO=$IMGPATH/usr/libexec/anaconda/genmodinfo -SCREENFONT=$IMGPATH/usr/share/anaconda/screenfont-${BASEARCH}.gz -MODLIST=$IMGPATH/usr/libexec/anaconda/modlist -MODINFO=$TMPDIR/modinfo-$BUILDARCH.$$ -LOADERBINDIR=$IMGPATH/usr/$LIBDIR/anaconda -BOOTDISKDIR=$IMGPATH/usr/share/anaconda/boot -LANGTABLE=$IMGPATH/usr/share/anaconda/lang-table -PCIIDS=$IMGPATH/usr/share/hwdata/pci.ids -XDRIVERS=$IMGPATH/usr/share/hwdata/videoaliases -XDRIVERDESCS=$IMGPATH/usr/share/hwdata/videodrivers - -REQUIREMENTS="$TRIMPCIIDS $PCIIDS $XDRIVERDESCS $GENMODINFO - $LANGTABLE $GETKEYMAPS" - -dieLater= -for n in $REQUIREMENTS; do - if [ ! -f $n ]; then - echo "$n doesn't exist" - dieLater=1 - fi -done - -for n in $BOOTDISKDIR; do - if [ ! -d $n ]; then - echo "$n doesn't exist" - dieLater=1 - fi -done - -if [ -n "$dieLater" ]; then exit 1; fi - -if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then - # go ahead and create the keymaps so we only have to do it once - if [ -f $IMGPATH/usr/share/anaconda/keymaps-override-$BASEARCH ]; then - echo "Found keymap override, using it" - cp $IMGPATH/usr/share/anaconda/keymaps-override-$BASEARCH $IMGPATH/etc/keymaps.gz - else - echo "Running: $GETKEYMAPS $BUILDARCH $KEYMAPS $IMGPATH" - $GETKEYMAPS $BUILDARCH $IMGPATH/etc/keymaps.gz $IMGPATH - if [ $? != 0 ]; then - echo "Unable to create keymaps and thus can't create initrd." - exit 1 - fi - fi -fi - -findPackage() { - name=$1 - - pkg=$(repoquery --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}" -c $yumconf --archlist=$KERNELARCH $name.$KERNELARCH) - if [ -n "$pkg" ]; then - echo $pkg - return - fi - echo "cannot find package $name" >&2 -} - -rundepmod () { - where=$1 - - $FAKEARCH /sbin/depmod -a -F $KERNELROOT/boot/System.map-$version \ - -b $where $version -} - -# This loops to make sure it resolves dependencies of dependencies of... -resdeps () { - items="$*" - - deplist="" - for item in $items ; do - deps=$(awk -F ':' "/$item.ko: / { print gensub(\".*/$item.ko: \",\"\",\"g\") }" $KERNELROOT/lib/modules/$version/modules.dep) - for dep in $deps ; do - depfile=${dep##*/} - depname=${dep%%.ko} - deplist="$deplist $depname" - done - done - items=$(for n in $items $deplist; do echo $n; done | sort -u) - echo $items -} - -expandModuleSet() { - SET="" - for name in $1; do - char=$(echo $name | cut -c1) - if [ $char = '=' ]; then - NAME=$(echo $name | cut -c2-) - if [ "$NAME" = "ata" ]; then - SET="$SET $(egrep '(ata|ahci)' $KERNELROOT/lib/modules/$version/modules.block |sed -e 's/.ko//')" - elif [ "$NAME" = "scsi" ]; then - SET="$SET $(sed -e 's/.ko//' $KERNELROOT/lib/modules/$version/modules.block)" - elif [ "$NAME" = "net" ]; then - SET="$SET $(sed -e 's/.ko//' $KERNELROOT/lib/modules/$version/modules.networking)" - else - # Ignore if group list does not exist - if [ -e $KERNELROOT/lib/modules/$version/modules.$NAME ]; then - SET="$SET $(sed -e 's/.ko//' $KERNELROOT/lib/modules/$version/modules.$NAME)" - fi - fi - else - SET="$SET $name" - fi - done - - echo $SET -} - -makemoduletree() { - MMB_DIR=$1 - MMB_MODULESET=$(resdeps $2) - - mkdir -p $MMB_DIR/lib - mkdir -p $MMB_DIR/modules - mkdir -p $MMB_DIR/firmware - ln -snf ../modules $MMB_DIR/lib/modules - ln -snf ../firmware $MMB_DIR/lib/firmware - - echo "Copying kernel modules..." - # might not be the first kernel we are building the image for, remove the target dir's contents - rm -rf $MMB_DIR/lib/modules/* - cp -a $KERNELROOT/lib/modules/* $MMB_DIR/lib/modules/ - echo "Removing extraneous modules..." - find $MMB_DIR/lib/modules/ -name *.ko | while read module ; do - m=${module##*/} - modname=${m%%.ko} - echo $MMB_MODULESET | grep -wq $modname || { - rm -f $module - } - done - - echo "Copying required firmware..." - find $MMB_DIR/lib/modules/ -name *.ko | while read module ; do - for fw in $(modinfo -F firmware $module); do - dest=$MMB_DIR/firmware/$fw - destdir=$(dirname $dest) - - # Some firmware files are expected to be in their own directories. - if [ ! -d $destdir ]; then - mkdir -p $destdir - fi - - cp $KERNELROOT/lib/firmware/$fw $dest - done - done - - # Copy in driver firmware we know we'll want during installation. This is - # required for modules which still don't (or can't) export information - # about what firmware files they require. - for module in $MODSET ; do - case $module in - ipw2100) - cp $KERNELROOT/lib/firmware/ipw2100* $MMB_DIR/firmware - ;; - ipw2200) - cp $KERNELROOT/lib/firmware/ipw2200* $MMB_DIR/firmware - ;; - iwl3945) - cp $KERNELROOT/lib/firmware/iwlwifi-3945* $MMB_DIR/firmware - ;; - atmel) - cp $KERNELROOT/lib/firmware/atmel_*.bin $MMB_DIR/firmware - ;; - zd1211rw) - cp -r $KERNELROOT/lib/firmware/zd1211 $MMB_DIR/firmware - ;; - esac - done - - # create depmod.conf to support DDs - mkdir -p $MMB_DIR/etc/depmod.d - cat > $MMB_DIR/etc/depmod.d/dd.conf << EOF -search updates built-in -EOF - - # clean up leftover cruft - find -H $MMB_DIR/lib/modules -type d -exec rmdir -f {} \; 2>/dev/null - $MODLIST --modinfo-file $MODINFO --ignore-missing --modinfo \ - $MMB_MODULESET > $MMB_DIR/lib/modules/module-info - # compress modules - find -H $MMB_DIR/lib/modules -type f -name *.ko -exec gzip -9 {} \; - rundepmod $MMB_DIR - rm -f $MMB_DIR/lib/modules/*/modules.*map - rm -f $MMB_DIR/lib/modules/*/{build,source} - - # create the pci.ids, from modules.alias and the X driver aliases - awk '!/^(\t\t|#)/ { print ;if ($0 == "ffff Illegal Vendor ID") nextfile; }' < $PCIIDS | \ - $TRIMPCIIDS $MMB_DIR/lib/modules/*/modules.alias $XDRIVERS/* > ../pci.ids -} - - -makeproductfile() { - root=$1 - - rm -f $root/.buildstamp - cat > $root/.buildstamp << EOF -[Main] -BugURL=$BUGURL -IsBeta=$ISBETA -Product=$PRODUCT -UUID=$IMAGEUUID -Version=$VERSION -EOF -} - -makeinitrd() { - INITRDMODULES="" - KEEP="" - OUTFILE="" - - while [ x$(echo $1 | cut -c1-2) = x"--" ]; do - if [ $1 = "--dest" ]; then - OUTFILE=$2 - shift; shift - continue - elif [ $1 = "--keep" ]; then - KEEP=yes - shift - continue - elif [ $1 = "--modules" ]; then - INITRDMODULES=$2 - shift; shift - continue - fi - echo "Unknown option passed to makeinitrd" - exit 1 - done - - if [ -z "$INITRDMODULES" ]; then - echo "warning: no loader modules specified!" >&2 - fi - - MBD_FSIMAGE=$TMPDIR/makebootdisk.initrdimage.$$ - MBD_BOOTTREE=$TMPDIR/makebootdisk.tree.$$ - - if [ -n "$INITRDMODULES" ]; then - MODSET=`expandModuleSet "$INITRDMODULES"` - makemoduletree $IMGPATH "$MODSET" - fi - - makeproductfile $IMGPATH - - rm -f $MBD_FSIMAGE - (cd $IMGPATH; find . |cpio --quiet -c -o) |gzip -9 > $MBD_FSIMAGE - - size=$(du $MBD_FSIMAGE | awk '{ print $1 }') - - echo "Wrote $MBD_FSIMAGE (${size}k compressed)" - - if [ -n "$OUTFILE" ]; then - mkdir -p `dirname $OUTFILE` - cp -a $MBD_FSIMAGE $OUTFILE - fi - - if [ -z "$KEEP" ]; then - rm -rf $MBD_FSIMAGE $MBD_BOOTTREE - fi -} - -doPostImages() { - /bin/true -} - -# this gets overloaded if we're on an EFI-capable arch (... with grub) -makeEfiImages() -{ - echo "Not on an EFI capable machine; skipping EFI images." - /bin/true -} - -# source the architecture specific mk-images file so we can call functions -# in it -if [ ${BUILDARCH} = s390x ]; then - # FIXME: this is a bad hack for s390, but better than copying for now - source $TOPDIR/mk-images.s390 -elif [ ${BUILDARCH} = ppc64 ]; then - # ... and similar for ppc64 - source $TOPDIR/mk-images.ppc -elif [ ${BUILDARCH} = "x86_64" ]; then - export UEFI_BOOT_ISO="no" - source $TOPDIR/mk-images.x86 - source $TOPDIR/mk-images.efi -elif [ ${BUILDARCH} = "i386" ]; then - source $TOPDIR/mk-images.x86 -elif [ ${BUILDARCH} = "sparc64" -o ${BUILDARCH} = "sparcv9" ]; then - source $TOPDIR/mk-images.sparc -else - source $TOPDIR/mk-images.${BUILDARCH} -fi - -# Find the kernel, unpack it, and verify it -kerneltags="kernel" -efiarch="" -arches="$BUILDARCH" -if [ "$BUILDARCH" = "ppc" ]; then - arches="ppc64 ppc" -elif [ "$BUILDARCH" = "i386" ]; then - arches="i586" - efiarch="ia32" - kerneltags="kernel kernel-PAE" - kernelxen="kernel-PAE" -elif [ "$BUILDARCH" = "x86_64" ]; then - kerneltags="kernel" - efiarch="x64" -elif [ "$BUILDARCH" = "ia64" ]; then - kerneltags="kernel" - efiarch="ia64" -elif [ "$BUILDARCH" = "sparc" -o "$BUILDARCH" = "sparcv9" -o "$BUILDARCH" = "sparc64" ]; then - arches="sparc64" -fi - -foundakernel="" -for KERNELARCH in $arches; do - for kernelvers in $kerneltags; do - kpackage=$(findPackage $kernelvers) - if [ "$KERNELARCH" = "i586" -a -z "$kpackage" ]; then - echo "No i586 kernel, trying i686..." - KERNELARCH="i686" - kpackage=$(findPackage $kernelvers) - fi - - if [ -z "$kpackage" ]; then - echo "Unable to find kernel package $kernelvers" - continue - fi - - yumdownloader -c $yumconf --archlist=$KERNELARCH $kpackage - kpackage="$kpackage.rpm" - if [ ! -f "$kpackage" ]; then - echo "kernel ($kernelvers) doesn't exist for $KERNELARCH. skipping" - continue - fi - - KERNELROOT=$KERNELBASE/$KERNELARCH - mkdir -p $KERNELROOT - rm -rf $KERNELROOT/* # in case we already populated the dir for a previous kernel tag - - foundakernel="yes" - - if [ "$BUILDARCH" = "ia64" ]; then - vmlinuz=$(rpm --nodigest --nosignature -qpl $kpackage |grep ^/boot/efi/EFI/redhat/vmlinuz | head -n 1) - version=${vmlinuz##/boot/efi/EFI/redhat/vmlinuz-} - else - vmlinuz=$(rpm --nodigest --nosignature -qpl $kpackage |grep ^/boot/vmlinuz | head -n 1) - version=${vmlinuz##/boot/vmlinuz-} - fi - arch=$(rpm --nodigest --nosignature --qf '%{ARCH}\n' -qp $kpackage) - - rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd) - rm -f $kpackage - # expand out any available firmware too - for p in $(repoquery -c $yumconf '*firmware*') ; do - yumdownloader -c $yumconf $p - rpm2cpio *firmware*.rpm | (cd $KERNELROOT; cpio --quiet -iumd) - rm -f *firmware*.rpm - done - - if [ ! -d "$KERNELROOT/lib/modules/$version" ]; then - echo "$KERNELROOT/lib/modules/$version is not a valid modules directory" 2>&1 - exit 1 - fi - - if [ ! -f "$KERNELROOT/$KERNELDIR/${KERNELNAME}-$version" ]; then - echo "$KERNELROOT/$KERNELDIR/${KERNELNAME}-$version does not exist" - exit 1 - fi - - allmods=$(find $KERNELROOT/lib/modules/$version -name *.ko) - - rundepmod $KERNELROOT - $GENMODINFO $KERNELROOT/lib/modules/$version > $MODINFO - - # make the boot images - makeBootImages - - makeEfiImages $yumconf - done -done - -doPostImages - -cd $TOPDIR diff --git a/scripts/mk-images.alpha b/scripts/mk-images.alpha deleted file mode 100644 index 7bb6696..0000000 --- a/scripts/mk-images.alpha +++ /dev/null @@ -1,119 +0,0 @@ -# -# mk-images.alpha -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -INITRDMODS="tgafb crc32 $INITRDMODS" - -###FSMODS="msdos vfat ext3 reiserfs jfs xfs" -###IDEMODS="cdrom ide-cd" -###SCSIMODS="cdrom scsi_mod sd_mod sg sr_mod st" -###USBMODS="ohci-hcd uhci-hcd hid usb-storage sd_mod sr_mod" -###LATEUSBMODS="mousedev usb-storage" -###SECSTAGE="md raid0 raid1 raid5 dm-mod srm_env $FSMODS $IDEMODS $SCSIMODS $LATEUSBMODS" -NETMODULES="e100 tulip 8139too tulip 3c509 3c59x dl2k eepro epic100 ewrk3 hamachi natsemi ne2k-pci ns83820 starfire yellowfin de4x5 depca acenic tg3" - -SCSIMODULES="$SCSIMODS qlogicisp DAC960 cpqfc BusLogic 3w-xxxx dmx3191d dpt_i2o megaraid ncr53c8xx sym53c8xx qlogicfc qla2x00 qla1280 cciss cpqarray aic7xxx aha1740 megaraid" - -###ISOMODULES="ehci-hcd ieee1394 ohci1394 sbp2" - -prepareBootImage() { - echo "ALPHA: 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` - e2writeboot $LODEV $BOOTDISKDIR/bootlx - mount $LODEV -t ext2 $MBD_BOOTTREE - mkdir -p $MBD_BOOTTREE/etc - cat > $MBD_BOOTTREE/etc/aboot.conf <<EOF -# -# Fedora Linux aboot configuration options: -# -# 0 - Boot the Fedora Linux installer using a 2.6 kernel -# 1 - Boot the Fedora Linux installer in non graphical mode -# 2 - Boot the Fedora Linux installer in text only mode on ttyS0 -# for installation control via the serial port -# 3 - Boot in rescue mode -# -0:vmlinux.gz load_ramdisk=1 prompt_ramdisk=1 console=tty0 root=/dev/fd0 -1:vmlinux.gz load_ramdisk=1 prompt_ramdisk=1 console=tty0 text root=/dev/fd0 -2:vmlinux.gz load_ramdisk=1 prompt_ramdisk=1 console=ttyS0 text root=/dev/fd0 -3:vmlinux.gz load_ramdisk=1 prompt_ramdisk=1 console=tty0 rescue root=/dev/fd0 - -EOF - cat > $MBD_BOOTTREE/etc/milo.conf <<EOF -image=/vmlinux.gz - label=linux - root=/dev/fd0 - append="load_ramdisk=1 prompt_ramdisk=1" -EOF - zcat $KERNELROOT/boot/vmlinuz-* | gzip -9 > $MBD_BOOTTREE/vmlinux.gz - umount $LODEV - losetup -d $LODEV - mount -o loop -t ext2 $MBD_TMPIMAGE $MBD_BOOTTREE -} - -makeBootImages() { - echo "Building boot images for kernel $kernelvers" - - mkdir -p $TOPDESTPATH/boot - cp $BOOTDISKDIR/bootlx $TOPDESTPATH/boot - - mkdir -p $TOPDESTPATH/etc - cat > $TOPDESTPATH/etc/aboot.conf <<EOF -# -# Fedora Linux aboot configuration options: -# -# 0 - Boot the Fedora Linux installer using a 2.6 kernel -# 1 - Boot the Fedora Linux installer with kernel messages sent to ttyS0 -# 2 - Boot the Fedora Linux installer in text only mode -# 3 - Boot the Fedora Linux installer in text only rescue mode -# -0:/kernels/vmlinux.gz initrd=/images/initrd.img -1:/kernels/vmlinux.gz initrd=/images/initrd.img console=ttyS0 -2:/kernels/vmlinux.gz initrd=/images/initrd.img text -3:/kernels/vmlinux.gz initrd=/images/initrd.img rescue - -EOF - - mkdir -p $TOPDESTPATH/kernels - cp $KERNELROOT/boot/vmlinuz-* $TOPDESTPATH/kernels/vmlinux.gz - - makeinitrd --initrdto $TOPDESTPATH/images/ramdisk.img \ - --modules "$NETMODULES $SCSIMODULES" - - echo "List of init modules: $INITRDMODS" - - makeinitrd --dest $TOPDESTPATH/images/initrd.img \ - --modules "$INITRDMODS" - -# makebootdisk --bootdisksize 4096 --kernelto $TOPDESTPATH/kernels/vmlinux.gz \ -# --imagename generic.img - - - if [ -f $KERNELPATH/kernel-jensen-*.rpm ]; then - KJ_PKG=$KERNELPATH/kernel-jensen-*.rpm - KJ_DIR=/tmp/kernelj.dir.$$ - mkdir -p $KJ_DIR - rpm2cpio $KJ_PKG | (cd $KJ_DIR; cpio --quiet -iumd ./boot/vmlinuz-*) - cp $KJ_DIR/boot/vmlinuz-* $TOPDESTPATH/kernels/vmlinuz.j - rm -rf $KJ_DIR - fi - -# makedriverdisk --padsize 1440 "Supplemental Block Device Drivers" "drvblock" "$SCSIMODULES $EXTRASCSI +scsi" -# makedriverdisk --padsize 1440 "Supplemental Network Device Drivers" "drvnet" "$NETMODULES $EXTRANET +net" -} diff --git a/scripts/mk-images.efi b/scripts/mk-images.efi deleted file mode 100644 index 025f34f..0000000 --- a/scripts/mk-images.efi +++ /dev/null @@ -1,258 +0,0 @@ -# -# mk-images.efi -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -makeefibootdisk() -{ - partimg=$1 && shift - target=$1 && shift - - if [ ! -f $1 ]; then - return - fi - - local partsize=$(/bin/ls -l $partimg | awk '{ print $5; }') - local disksize=$((17408 + $partsize + 17408)) - disksize=$(($disksize + $(($disksize % 512)))) - local diskimg=$(mktemp /tmp/efidisk.img.XXXXXX) - dd if=/dev/zero of=$diskimg count=1 bs=$disksize - MAKEDEV /dev/loop - local loop=$(losetup -v -f $diskimg | awk '{ print $4 }') - echo "loop is $loop" - ls -l $loop - dmsetup create efiboot$$ --table "0 $(($disksize / 512)) linear $loop 0" - dmsetup mknodes efiboot$$ - echo "efiboot$$ should exist" - ls -l /dev/mapper/efiboot$$* - parted --script /dev/mapper/efiboot$$ mklabel gpt unit b mkpart '"EFI System Partition"' fat32 17408 $((17408 + $partsize)) set 1 boot on - dmsetup mknodes efiboot$$p1 || : - echo "efiboot$$p1 should exist" - ls -l /dev/mapper/efiboot$$* - dmsetup ls - dmsetup table - dd if=$partimg of=/dev/mapper/efiboot$$p1 - echo "dd-ing $partimg to /dev/mapper/efiboot$$p1" - # the next two lines seem to depend on the exact version of parted :/ - dmsetup remove -f /dev/mapper/efiboot$$p1 || : - dmsetup remove -f /dev/mapper/efiboot$$ - losetup -d $loop - - mv -v $diskimg $target - chmod a+r $target -} - -#makeefibootimage required for EFI bootloader dosfs image -makeefibootimage() { - echo "in makeefibootimage: makeefibootimage $@" - MBD_FILENAME="" - KERNELFILE="" - INITRDFILE="" - grubpkg="" - MBD_TMPIMAGE=${TMPDIR:-/tmp}/makebootdisk.image.$$ - MBD_BOOTTREE=${TMPDIR:-/tmp}/makebootdisk.tree.$$ - MBD_BOOTTREE_TMP=$MBD_BOOTTREE'_tmp' - while [ x$(echo $1 | cut -c1-2) = x"--" ]; do - if [ $1 = "--kernel" ]; then - KERNELFILE=$2 - shift; shift - continue - elif [ $1 = "--kernelpath" ]; then - KERNELPATH=$2 - shift; shift - continue - elif [ $1 = "--initrd" ]; then - INITRDFILE=$2 - shift; shift - continue - elif [ $1 = "--initrdpath" ]; then - INITRDPATH=$2 - shift; shift - continue - elif [ $1 = "--imagename" ]; then - MBD_FILENAME=$IMAGEPATH/$2 - shift; shift - continue - elif [ $1 = "--grubpkg" ]; then - grubpkg=$2 - echo "grubpkg=$grubpkg" - shift; shift - continue - fi - echo "Unknown option passed to makebootdisk: \"$1\"" - exit 1 - done - - if [ -z "$MBD_FILENAME" ]; then - echo "No imagename passed" - exit 1 - fi - - MBD_FSIMAGE="$INITRDFILE" - - mkdir -p $MBD_BOOTTREE - mkdir -p $MBD_BOOTTREE_TMP - rm -rf $MBD_BOOTTREE_TMP - mkdir -p $MBD_TMPIMAGE - - # provided by the mk-image.$ARCH file - prepareEfiImage - - left=$(df $MBD_BOOTTREE | tail -n1) - left=$(echo $left | awk '{print $4'}) - - umount $MBD_BOOTTREE - - if [ -n "$EXTRAKERNELPATH" ]; then - mkdir -p `dirname $EXTRAKERNELPATH` - cp -f $KERNELROOT/$KERNELDIR/${KERNELNAME}-* $EXTRAKERNELPATH - fi - - mkdir -p `dirname $MBD_FILENAME` - rm -rf $MBD_TMPIMAGE $MBD_MNTPOINT $MBD_BOOTTREE - if [ -z "$INITRDFILE" -a -n "$MBD_FSIMAGE" ]; then - rm -f $MBD_FSIMAGE - fi - - chmod a+r $MBD_FILENAME - echo "Wrote $MBD_FILENAME (${left}k free)" -} - -# prepare and build an efiboot.img. -prepareEfiImage() { - echo "in prepareEfiImage" - prepareEfiTree || return 1 - - # dynamically calculate the size of the dosfs - BOOTDISKSIZE=$(du -kcs $MBD_BOOTTREE_TMP | tail -n1 | awk '{print $1}') - BOOTDISKSIZE=$(expr $BOOTDISKSIZE + 100) - echo "The size of the efiboot.img dosfs is ${BOOTDISKSIZE}k" - mkdosfs -n ANACONDA -C $MBD_FILENAME $BOOTDISKSIZE >/dev/null - mount -o loop,shortname=winnt,umask=0077 -t vfat $MBD_FILENAME $MBD_BOOTTREE - cp -R $MBD_BOOTTREE_TMP/* $MBD_BOOTTREE -} - -# prepare a directory with the kernel, initrd, and various message files -# used to populate the efi boot image -prepareEfiTree() { - echo "in prepareEfiTree" - mkdir -p $MBD_BOOTTREE_TMP/EFI/BOOT - - cp -av $BOOTDISKDIR/*.conf $MBD_BOOTTREE_TMP/EFI/BOOT/ - [ -n "$KERNELFILE" ] && cp -av $KERNELFILE $MBD_BOOTTREE_TMP/EFI/BOOT/vmlinuz - [ -n "$INITRDFILE" ] && cp -av $INITRDFILE $MBD_BOOTTREE_TMP/EFI/BOOT/initrd.img - [ -z "$KERNELPATH" ] && KERNELPATH="/EFI/BOOT/vmlinuz" - [ -z "$INITRDPATH" ] && INITRDPATH="/EFI/BOOT/initrd.img" - - SPLASHPATH="/EFI/BOOT/splash.xpm.gz" - sed -e "s/@PRODUCT@/$PRODUCT/g" \ - -e "s/@VERSION@/$VERSION/g" \ - -e "s,@KERNELPATH@,$KERNELPATH,g" \ - -e "s,@INITRDPATH@,$INITRDPATH,g" \ - -e "s,@SPLASHPATH@,$SPLASHPATH,g" \ - -i $MBD_BOOTTREE_TMP/EFI/BOOT/grub.conf - - ydcmd="yumdownloader -c $yumconf $grubpkg" - echo "(grubpkg) $ydcmd" - $ydcmd - rpm2cpio $grubpkg.rpm | (cd $KERNELROOT; cpio --quiet -iumd) - cp -av $KERNELROOT/boot/efi/EFI/redhat/grub.efi $MBD_BOOTTREE_TMP/EFI/BOOT/grub.efi - - # The first generation Mactel machines get the bootloader name wrong - # as per the spec. Awesome, guys. - if [ "$efiarch" == "ia32" ]; then - cp -av $MBD_BOOTTREE_TMP/EFI/BOOT/grub.efi $MBD_BOOTTREE_TMP/EFI/BOOT/BOOT.efi - cp -av $MBD_BOOTTREE_TMP/EFI/BOOT/grub.conf $MBD_BOOTTREE_TMP/EFI/BOOT/BOOT.conf - fi - - local tmpefiarch=${efiarch} - case ${efiarch} in - x64) tmpefiarch="X64" ;; - ia32) tmpefiarch="IA32" ;; - esac - mv -v $MBD_BOOTTREE_TMP/EFI/BOOT/grub.efi $MBD_BOOTTREE_TMP/EFI/BOOT/BOOT${tmpefiarch}.efi - mv -v $MBD_BOOTTREE_TMP/EFI/BOOT/grub.conf $MBD_BOOTTREE_TMP/EFI/BOOT/BOOT${tmpefiarch}.conf - - artpkg=$(repoquery --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}" -c $yumconf --whatprovides ${brandpkgname}-logos | grep -v generic-logos | head -1) - if [ -z "$artpkg" ]; then - argpkg="generic-logos" - fi - - ydcmd="yumdownloader -c ${yumconf} ${artpkg}" - echo "(artpkg) $ydcmd" - $ydcmd - rpm2cpio ${artpkg}.rpm | (cd $KERNELROOT; cpio --quiet -iumd) - cp -av $KERNELROOT/boot/grub/splash.xpm.gz $MBD_BOOTTREE_TMP/$SPLASHPATH - - # if we don't have a kernel or initrd, we're making a CD image and we need - # to mirror EFI/ to the cd. - if [ -z "$KERNELFILE" -a -z "$INITRDFILE" ]; then - cp -av $MBD_BOOTTREE_TMP/EFI/ $TOPDESTPATH/EFI/ - rm -f $TOPDESTPATH/EFI/BOOT/*.efi - fi -} - -makeEfiImages() { - echo "in makeEfiImages" - yumconf="$1" - echo "Making EFI images ($PWD)" - if [ "$kernelvers" != "$kernelxen" ]; then - local grubarch=${efiarch} - case ${efiarch} in - ia32) grubarch=i?86 ;; - x64) grubarch=x86_64 ;; - esac - - grubpkg=$(repoquery --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}" -c $yumconf grub.$grubarch) - - if [ -z "$grubpkg" ]; then - echo "cannot find package grub.$grubarch" >&2 - return 1 - fi - echo "Building efiboot.img for ${efiarch}/$KERNELARCH at $TOPDESTPATH/images/efiboot.img" - echo "grubpkg: ${grubpkg}" - - makeefibootimage \ - --imagename efiboot.img \ - --kernel $TOPDESTPATH/images/pxeboot/vmlinuz \ - --initrd $TOPDESTPATH/images/pxeboot/initrd.img \ - --grubpkg ${grubpkg} - local ret=$? - if [ $ret -ne 0 ]; then - echo "makeefibootimage (1) failed" >&2 - return $ret - fi - - makeefibootdisk $TOPDESTPATH/images/efiboot.img $TOPDESTPATH/images/efidisk.img - local ret=$? - [ $ret -eq 0 ] || return $ret - rm -vf $TOPDESTPATH/images/efiboot.img - - # make a boot image with just boot*.efi in it... - makeefibootimage \ - --imagename efiboot.img \ - --kernelpath /images/pxeboot/vmlinuz \ - --initrdpath /images/pxeboot/initrd.img \ - --grubpkg ${grubpkg} - local ret=$? - if [ $ret -ne 0 ]; then - echo "makeefibootimage (2) failed" >&2 - fi - return $ret - fi - return 0 -} diff --git a/scripts/mk-images.ia64 b/scripts/mk-images.ia64 deleted file mode 100644 index d11083b..0000000 --- a/scripts/mk-images.ia64 +++ /dev/null @@ -1,160 +0,0 @@ -# -# mk-images.ia64 -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -#makebootdisk required for EFI bootloader dosfs image -makebootdisk() { - EXTRAKERNELPATH="" - INITRDFLAGS="" - MBD_FILENAME="" - INITRDFILE="" - MBD_TMPIMAGE=${TMPDIR:-/tmp}/makebootdisk.image.$$ - MBD_BOOTTREE=${TMPDIR:-/tmp}/makebootdisk.tree.$$ - MBD_BOOTTREE_TMP=$MBD_BOOTTREE'_tmp' - while [ x$(echo $1 | cut -c1-2) = x"--" ]; do - if [ $1 = "--kernelto" ]; then - EXTRAKERNELPATH=$2 - shift; shift - continue - elif [ $1 = "--initrdflags" ]; then - INITRDFLAGS=$2 - shift; shift - continue - elif [ $1 = "--initrd" ]; then - INITRDFILE=$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 - - if [ -z "$MBD_FILENAME" ]; then - echo "No imagename passed" - exit 1 - fi - - if [ -n "$INITRDFILE" ]; then - MBD_FSIMAGE="$INITRDFILE" - elif [ -n "$INITRDFLAGS" ]; then - eval makeinitrd --keep $INITRDFLAGS - fi - - mkdir -p $MBD_BOOTTREE - mkdir -p $MBD_BOOTTREE_TMP - rm -rf $MBD_BOOTTREE_TMP - mkdir -p $MBD_TMPIMAGE - - # provided by the mk-image.$ARCH file - prepareBootImage - - left=$(df $MBD_BOOTTREE | tail -n1) - left=$(echo $left | awk '{print $4'}) - - umount $MBD_BOOTTREE - - if [ -n "$EXTRAKERNELPATH" ]; then - mkdir -p `dirname $EXTRAKERNELPATH` - cp -f $KERNELROOT/$KERNELDIR/${KERNELNAME}-* $EXTRAKERNELPATH - fi - - mkdir -p `dirname $MBD_FILENAME` - rm -rf $MBD_TMPIMAGE $MBD_MNTPOINT $MBD_BOOTTREE - if [ -z "$INITRDFILE" ]; then - rm -f $MBD_FSIMAGE - fi - - echo "Wrote $MBD_FILENAME (${left}k free)" -} - -prepareBootImage() { - - prepareBootTree - - # dynamically calculate the size of the dosfs - BOOTDISKSIZE=$(du -kcs $MBD_BOOTTREE_TMP | tail -n1 | awk '{print $1}') - BOOTDISKSIZE=$(expr $BOOTDISKSIZE + 100) - echo "The size of the boot.img dosfs is $BOOTDISKSIZE" - mkdosfs -n ANACONDA -C $MBD_FILENAME $BOOTDISKSIZE >/dev/null - mount -o loop -t vfat $MBD_FILENAME $MBD_BOOTTREE - cp -R $MBD_BOOTTREE_TMP/* $MBD_BOOTTREE -} - -prepareBootTree() { - mkdir -p $MBD_BOOTTREE_TMP/EFI/boot - cp $MBD_FSIMAGE $MBD_BOOTTREE_TMP/EFI/boot/initrd.img - - cp -a $BOOTDISKDIR/* $MBD_BOOTTREE_TMP/EFI/boot/ - cp $KERNELROOT/boot/efi/EFI/redhat/vmlinuz-* $MBD_BOOTTREE_TMP/EFI/boot/vmlinuz - - cp $MBD_BOOTTREE_TMP/EFI/boot/elilo.efi $MBD_BOOTTREE_TMP/EFI/boot/bootia64.efi - cat > $MBD_BOOTTREE_TMP/EFI/boot/elilo.conf << EOF -prompt -timeout=50 -relocatable - -image=vmlinuz - label=linux - read-only - initrd=initrd.img -EOF - - # make a copy in the root of the image - cp $MBD_BOOTTREE_TMP/EFI/boot/* $MBD_BOOTTREE_TMP -} - -makeBootImages() { - # Because ia64 boxes use EFI there needs to be a boot.img dosfs. - echo "making boot.img for EFI bootloader" - makebootdisk --kernelto $TOPDESTPATH/kernels/vmlinuz \ - --imagename boot.img \ - --initrdflags '--dest $TOPDESTPATH/images/ramdisk.img \ - --modules "$INITRDMODS sgiioc4" ' - - - mkdir -p $TOPDESTPATH/images/pxeboot - makeinitrd --dest $TOPDESTPATH/images/pxeboot/initrd.img \ - --modules "$INITRDMODS sgiioc4" - [ $? = 0 ] || exit 1 - mv $TOPDESTPATH/kernels/vmlinuz $TOPDESTPATH/images/pxeboot/vmlinuz - rmdir $TOPDESTPATH/kernels - - # make a pxe dir with kernel + initrd - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-$KERNELARCH] -kernel = images/pxeboot/vmlinuz -initrd = images/pxeboot/initrd.img -boot.img = images/boot.img - -[images-xen] -kernel = images/pxeboot/vmlinuz -initrd = images/pxeboot/initrd.img - -__EOT__ -} - -doPostImages() { - if [ -n "$BOOTISO" ]; then - mkisofs -quiet -o $TOPDESTPATH/images/$BOOTISO -b boot.img -no-emul-boot -R -J -V "$PRODUCT" -T -graft-points boot.img=$TOPDESTPATH/images/boot.img - implantisomd5 $TOPDESTPATH/images/$BOOTISO - fi -} diff --git a/scripts/mk-images.ppc b/scripts/mk-images.ppc deleted file mode 100644 index a17af3c..0000000 --- a/scripts/mk-images.ppc +++ /dev/null @@ -1,174 +0,0 @@ -# -# mk-images.ppc -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -makeBootImages() { - echo "Building boot images for kernel $kernelvers" - FAKEARCH="" - - if [ "$KERNELARCH" = "ppc64" ]; then - mkdir -p $TOPDESTPATH/ppc/ppc64 - echo "Building $KERNELARCH initrd" - makeinitrd --dest $TOPDESTPATH/ppc/ppc64/ramdisk.image.gz \ - --modules "$INITRDMODS spufs viocd gpio_mdio" - - cp $KERNELROOT/boot/vmlinuz-* $TOPDESTPATH/ppc/ppc64/vmlinuz - sed -e "s/%BITS%/64/" -e "s/%PRODUCT%/$PRODUCT/" -e "s/%VERSION%/$VERSION/" \ - $BOOTDISKDIR/yaboot.conf.in > $TOPDESTPATH/ppc/ppc64/yaboot.conf - - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-$KERNELARCH] -kernel = ppc/ppc64/vmlinuz -initrd = ppc/ppc64/ramdisk.image.gz -__EOT__ - - if [ -x $IMGPATH/usr/bin/mkzimage -a -r $IMGPATH/usr/share/ppc64-utils/zImage.stub ]; then - mkdir -p $TOPDESTPATH/images/netboot - pushd $TOPDESTPATH/ppc/ppc64 - cp $IMGPATH/usr/share/ppc64-utils/zImage.lds $TOPDESTPATH/ppc/ppc64/zImage.lds - $IMGPATH/usr/bin/mkzimage $TOPDESTPATH/ppc/ppc64/vmlinuz no no $TOPDESTPATH/ppc/ppc64/ramdisk.image.gz $IMGPATH/usr/share/ppc64-utils/zImage.stub $TOPDESTPATH/images/netboot/ppc64.img - rmdir $TOPDESTPATH/images/netboot || : - rm -f $TOPDESTPATH/ppc/ppc64/zImage.lds - popd - if [ -f $TOPDESTPATH/images/netboot/ppc64.img ]; then - echo "zimage = images/netboot/ppc64.img" >> $TOPDESTPATH/.treeinfo - fi - elif [ -x $IMGPATH/usr/sbin/wrapper -a -r $IMGPATH/usr/$LIBDIR/kernel-wrapper/wrapper.a ]; then - mkdir -p $TOPDESTPATH/images/netboot - $IMGPATH/usr/sbin/wrapper -o $TOPDESTPATH/images/netboot/ppc64.img \ - -i $TOPDESTPATH/ppc/ppc64/ramdisk.image.gz \ - -D $IMGPATH/usr/$LIBDIR/kernel-wrapper \ - $TOPDESTPATH/ppc/ppc64/vmlinuz - rmdir $TOPDESTPATH/images/netboot || : - if [ -f $TOPDESTPATH/images/netboot/ppc64.img ]; then - echo "zimage = images/netboot/ppc64.img" >> $TOPDESTPATH/.treeinfo - fi - fi - - echo >> $TOPDESTPATH/.treeinfo - - - elif [ "$KERNELARCH" = "ppc" ]; then - FAKEARCH="ppc" - mkdir -p $TOPDESTPATH/ppc/ppc32 - mkdir -p $TOPDESTPATH/ppc/mac - - echo "Building ppc initrd" - makeinitrd --dest $TOPDESTPATH/ppc/ppc32/ramdisk.image.gz \ - --modules "$INITRDMODS" - - cp $KERNELROOT/boot/vmlinuz-* $TOPDESTPATH/ppc/ppc32/vmlinuz - sed -e "s/%BITS%/32/" -e "s/%PRODUCT%/$PRODUCT/" -e "s/%VERSION%/$VERSION/" \ - $BOOTDISKDIR/yaboot.conf.in > $TOPDESTPATH/ppc/ppc32/yaboot.conf - - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-$KERNELARCH] -kernel = ppc/ppc32/vmlinuz -initrd = ppc/ppc32/ramdisk.image.gz -__EOT__ - if [ -x $IMGPATH/usr/bin/mkzimage -a -r $IMGPATH/usr/share/ppc64-utils/zImage.stub ]; then - mkdir -p $TOPDESTPATH/images/netboot - pushd $TOPDESTPATH/ppc/ppc32 - cp $IMGPATH/usr/share/ppc64-utils/zImage.lds $TOPDESTPATH/ppc/ppc32/zImage.lds - $IMGPATH/usr/bin/mkzimage $TOPDESTPATH/ppc/ppc32/vmlinuz no no $TOPDESTPATH/ppc/ppc32/ramdisk.image.gz $IMGPATH/usr/share/ppc64-utils/zImage.stub $TOPDESTPATH/images/netboot/ppc32.img - rmdir $TOPDESTPATH/images/netboot || : - rm -f $TOPDESTPATH/ppc/ppc32/zImage.lds - popd - if [ -f $TOPDESTPATH/images/netboot/ppc32.img ]; then - echo "zimage = images/netboot/ppc32.img" >> $TOPDESTPATH/.treeinfo - fi - elif [ -x $IMGPATH/usr/sbin/wrapper -a -r $IMGPATH/usr/$LIBDIR/kernel-wrapper/wrapper.a ]; then - mkdir -p $TOPDESTPATH/images/netboot - $IMGPATH/usr/sbin/wrapper -o $TOPDESTPATH/images/netboot/ppc32.img \ - -i $TOPDESTPATH/ppc/ppc32/ramdisk.image.gz \ - -D $IMGPATH/usr/$LIBDIR/kernel-wrapper \ - $TOPDESTPATH/ppc/ppc32/vmlinuz - rmdir $TOPDESTPATH/images/netboot || : - if [ -f $TOPDESTPATH/images/netboot/ppc32.img ]; then - echo "zimage = images/netboot/ppc32.img" >> $TOPDESTPATH/.treeinfo - fi - fi - echo >> $TOPDESTPATH/.treeinfo - - else - echo "Unknown kernel arch: $KERNELARCH" - fi -} - -doPostImages() { - mkdir -p $TOPDESTPATH/etc - mkdir -p $TOPDESTPATH/ppc/chrp - - # Create ofboot.b and bootinfo.txt files, and yaboot binaries for Mac and CHRP - cp $BOOTDISKDIR/bootinfo.txt $TOPDESTPATH/ppc/bootinfo.txt - cp $IMGPATH/usr/share/anaconda/boot/efika.forth $TOPDESTPATH/ppc/efika.forth - - if [ -d $TOPDESTPATH/ppc/mac ]; then - cp $BOOTDISKDIR/ofboot.b $TOPDESTPATH/ppc/mac/ofboot.b - cp $IMGPATH/usr/lib/yaboot/yaboot $TOPDESTPATH/ppc/mac/yaboot - fi - - if [ -d $TOPDESTPATH/ppc/chrp ]; then - cp $IMGPATH/usr/lib/yaboot/yaboot $TOPDESTPATH/ppc/chrp/yaboot - $IMGPATH/usr/lib/yaboot/addnote $TOPDESTPATH/ppc/chrp/yaboot - fi - - # IBM firmware can't handle boot scripts properly, so for biarch installs - # we use a yaboot.conf which asks the user to select 32-bit or 64-bit kernel. - if [ -r $TOPDESTPATH/ppc/ppc32/yaboot.conf -a -r $TOPDESTPATH/ppc/ppc64/yaboot.conf ]; then - # Both kernels exist. Copy the biarch yaboot.conf into place. - sed -e "s/%BITS%/32/" -e "s/%PRODUCT%/$PRODUCT/" -e "s/%VERSION%/$VERSION/" \ - $BOOTDISKDIR/yaboot.conf.3264 > $TOPDESTPATH/etc/yaboot.conf - else - # Copy the one that exists, assuming one does exist - cp $TOPDESTPATH/ppc/ppc??/yaboot.conf $TOPDESTPATH/etc - fi - - if [ -z "$BOOTISO" ]; then - return - fi - - # Copy it all into the isopath for the boot CD - mkdir -p $TOPDESTPATH/isopath - cp -r $TOPDESTPATH/{ppc,etc} $TOPDESTPATH/isopath - - # We want the ppc32 prep image in the boot.iso too. - if [ -d $TOPDESTPATH/images/netboot ]; then - mkdir -p $TOPDESTPATH/isopath/images - cp -r $TOPDESTPATH/images/netboot $TOPDESTPATH/isopath/images - rm -f $TOPDESTPATH/isopath/images/ppc64.img - fi - - if [ -r $TOPDESTPATH/isopath/images/netboot/ppc32.img ]; then - PREPBOOT="-prep-boot images/netboot/ppc32.img" - fi - - if [ -d $TOPDESTPATH/isopath/ppc/mac ]; then - MACBOOT="-hfs-volid $VERSION -hfs-bless $TOPDESTPATH/isopath/ppc/mac" - fi - - # Create the boot.iso - mkisofs -o $TOPDESTPATH/images/$BOOTISO -chrp-boot -U $PREPBOOT \ - -part -hfs -T -r -l -J -A "$PRODUCT $VERSION" -sysid PPC \ - -V "PBOOT" -volset "$VERSION" -volset-size 1 -volset-seqno 1 \ - $MACBOOT \ - -map $BOOTDISKDIR/mapping -magic $BOOTDISKDIR/magic \ - -no-desktop -allow-multidot -graft-points $TOPDESTPATH/isopath - implantisomd5 $TOPDESTPATH/images/$BOOTISO - rm -rf $TOPDESTPATH/isopath -} diff --git a/scripts/mk-images.s390 b/scripts/mk-images.s390 deleted file mode 100644 index 50cd717..0000000 --- a/scripts/mk-images.s390 +++ /dev/null @@ -1,61 +0,0 @@ -# -# mk-images.s390 -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -# initrd.img load address for generic.ins LPAR booting -# See https://bugzilla.redhat.com/show_bug.cgi?id=546422 for details. -INITRD_ADDRESS=0x02000000 - -getAllS390ModuleNames() { - s390dir="${KERNELROOT}/lib/modules/${version}/kernel/drivers/s390" - if [ -d "${s390dir}" ]; then - find ${s390dir} -type f -name "*.ko" | while read line ; do - echo "$(basename ${line} .ko)" - done | sort | uniq | tr '\n' ' ' - else - echo "*** ERROR: ${s390dir} is missing, this tree probably won't have a working initrd.img" >&2 - fi -} - -makeBootImages() { - makeinitrd --dest $TOPDESTPATH/images/initrd.img \ - --modules "$INITRDMODS $(getAllS390ModuleNames)" - $ADDRSIZE $INITRD_ADDRESS $TOPDESTPATH/images/initrd.img $TOPDESTPATH/images/initrd.addrsize - cp -vf $KERNELROOT/boot/${KERNELNAME}-${version} $TOPDESTPATH/images/kernel.img - - cp -v $BOOTDISKDIR/redhat.exec $TOPDESTPATH/images/redhat.exec - cp -v $BOOTDISKDIR/generic.prm $TOPDESTPATH/images/generic.prm - sed -e "s|@INITRD_LOAD_ADDRESS@|$INITRD_ADDRESS|g" < $BOOTDISKDIR/generic.ins > $TOPDESTPATH/generic.ins - - $MKS390CDBOOT \ - -i $TOPDESTPATH/images/kernel.img \ - -r $TOPDESTPATH/images/initrd.img \ - -p $TOPDESTPATH/images/generic.prm \ - -o $TOPDESTPATH/images/cdboot.img - - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-$KERNELARCH] -kernel = images/kernel.img -initrd = images/initrd.img -initrd.addrsize = images/initrd.addrsize -generic.prm = images/generic.prm -generic.ins = generic.ins -cdboot.img = images/cdboot.img - -__EOT__ -} diff --git a/scripts/mk-images.sparc b/scripts/mk-images.sparc deleted file mode 100644 index 1955329..0000000 --- a/scripts/mk-images.sparc +++ /dev/null @@ -1,172 +0,0 @@ -# -# mk-images.sparc -# -# Copyright (C) 2008 Tom "spot" Callaway <tcallawa@xxxxxxxxxx> -# -# 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/>. -# - -# modules that are needed. this is the generic "needed for every arch" stuff -TFTPCOMMONMODS="nfs sunrpc lockd cramfs loop squashfs ipv6" -TFTPUSBMODS="ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage" -TFTPFSMODS="ext2 ext3 ext4dev lock_nolock cifs" -INITRDMODS="$USBMODS $FIREWIREMODS $IDEMODS $SCSIMODS $FSMODS $LVMMODS $RAIDMODS $CRYPTOMODS $COMMONMODS $PCMCIASOCKMODS =scsi =net" -TFTPINITRDMODS="$TFTPCOMMONMODS $TFTPUSBMODS $IDEMODS $SCSIMODS $TFTPFSMODS $LVMMODS $CRYPTOMODS" -SPARCCOMMONMODS="openpromfs sermouse" -SPARCSCSIMODS="qlogicpti esp sym53c8xx qlogicisp mptbase mptscsih mptfc mptsas qla2xxx pata_cmd64x pata_ali" -SPARCNETMODS="cassini e1000 e1000e sunbmac sungem sunhme sunlance sunqe sunvnet tg3 tulip" -SPARCMODS="$SPARCCOMMONMODS $SPARCSCSIMODS $SPARCNETMODS" - -TILO=$IMGPATH/usr/bin/tilo -SILO=$IMGPATH/usr/sbin/silo - -# This is a disgusting hack. Unfortunately, it's the only way we can get files out of the tftpinitrd without worse hacks. - -makeproductfile() { - root=$1 - - rm -f $root/.buildstamp - cat > $root/.buildstamp << EOF -[Main] -BugURL=$BUGURL -IsBeta=$ISBETA -Product=$PRODUCT -UUID=$IMAGEUUID -Version=$VERSION -EOF - - if [ "$AMITFTP" = "1" ]; then - rm -rf $root/modules/*/kernel/drivers/isdn/i4l/isdn.ko* - rm -rf $root/modules/*/kernel/drivers/isdn/isdnloop/isdnloop.ko* - rm -rf $root/modules/*/kernel/drivers/media/common/ir-common.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/bt8xx/bttv.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/btcx-risc.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/v4l1-compat.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/videodev.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/videobuf-core.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/compat_ioctl32.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/videobuf-dma-sg.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/v4l2-common.ko* - rm -rf $root/modules/*/kernel/drivers/media/video/tveeprom.ko* - rm -rf $root/modules/*/kernel/drivers/media/common/ir-common.ko* - rm -rf $root/modules/*/kernel/drivers/media/dvb/bt8xx/bt878.ko* - rm -rf $root/modules/*/kernel/drivers/media/dvb/bt8xx/dst.ko* - rm -rf $root/modules/*/kernel/drivers/media/dvb/dvb-core/dvb-core.ko* - rm -rf $root/firmware/ql2100_fw.bin - rm -rf $root/firmware/ql2300_fw.bin - rm -rf $root/firmware/ql2322_fw.bin - rm -rf $root/firmware/ql2400_fw.bin - rm -rf $root/firmware/ql2400_fw.bin_mid - fi -} - - -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 - - echo "Making a $KERNELARCH tftp image: $TFTPIMAGE" - - elftoaout $TFTPKERNEL -o $TFTPIMAGE - if [ "$KERNELARCH" = "sparc" ]; then - piggyback $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD - elif [ "$KERNELARCH" = "sparc64" ]; then - piggyback64 $TFTPIMAGE $TFTPSYSMAP $TFTPINITRD - fi -} - -prepareBootTree() { - echo "sparc: prepareBootTree() is called" - (cd $BOOTDISKDIR; find . -maxdepth 1 ! -type d | cpio --quiet -p $MBD_BOOTTREE) - - cp $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img - cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz - cp $KERNELROOT/boot/System.map-* $MBD_BOOTTREE/System.map - -} - -makeBootImages() { - echo "Building boot images for kernel $kernelvers.$KERNELARCH" - - echo "Building initrd.img" - - export AMITFTP=0 - - makeinitrd --dest $TOPDESTPATH/images/initrd.img \ - --modules "$INITRDMODS $SPARCMODS" - [ $? = 0 ] || exit 1 - echo "Building special tftpinitrd.img" - - export AMITFTP=1 - - makeinitrd --dest $TOPDESTPATH/images/tftpinitrd.img \ - --modules "$TFTPINITRDMODS $SPARCMODS" - [ $? = 0 ] || exit 1 - if [ -f $IMGPATH/usr/share/anaconda/boot/second.b ]; then - echo "Building boot dir for silo" - MBD_BOOTTREE=$TOPDESTPATH/boot - MBD_FSIMAGE=$TOPDESTPATH/images/initrd.img - mkdir $MBD_BOOTTREE - cp $IMGPATH/usr/share/anaconda/boot/*.b $MBD_BOOTTREE/ - - prepareBootTree - - maketftp --kernel $MBD_BOOTTREE/vmlinuz \ - --imagename $TOPDESTPATH/images/tftp.img \ - --initrdfrom $TOPDESTPATH/images/tftpinitrd.img \ - --systemmap $MBD_BOOTTREE/System.map - echo "Deleting $TOPDESTPATH/images/tftpinitrd.img , we only want this for the tftp image creation" - # rm -rf $TOPDESTPATH/images/tftpinitrd.img - else - echo "I can't find SILO in $IMGPATH/usr/share/anaconda/boot ?!?" - exit 1 - fi - -} - -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 -graft-points \ - boot=$TOPDESTPATH/boot - implantisomd5 $TOPDESTPATH/images/$BOOTISO - fi -} diff --git a/scripts/mk-images.x86 b/scripts/mk-images.x86 deleted file mode 100644 index 20aef71..0000000 --- a/scripts/mk-images.x86 +++ /dev/null @@ -1,162 +0,0 @@ -# -# mk-images.x86 -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -SYSLINUX=$IMGPATH/usr/share/syslinux/syslinux-nomtools -CDLABEL=$PRODUCT - -if [ ! -f $SYSLINUX ]; then - echo "Warning: nomtools syslinux doesn't exist" - SYSLINUX=$IMGPATH/usr/bin/syslinux - if [ ! -f $SYSLINUX ]; then - echo "$SYSLINUX doesn't exist" - exit 1 - fi -fi - -# prepare a directory with the kernel, initrd, and various message files -# used to populate a boot image -prepareBootTree() { - (cd $BOOTDISKDIR; find . -maxdepth 1 ! -name "*.msg" ! -type d | cpio --quiet -p $MBD_BOOTTREE) - - ln $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img - cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz - - if [ -f $IMGPATH/usr/share/anaconda/boot/syslinux-vesa-splash.jpg ]; then - cp $IMGPATH/usr/share/anaconda/boot/syslinux-vesa-splash.jpg $MBD_BOOTTREE/splash.jpg - cp $IMGPATH/usr/share/syslinux/vesamenu.c32 $MBD_BOOTTREE/vesamenu.c32 - sed -i s'/default linux/default vesamenu.c32/g' $MBD_BOOTTREE/syslinux.cfg - sed -i 's/prompt 1/#prompt 1/g' $MBD_BOOTTREE/syslinux.cfg - elif [ -x $IMGPATH/usr/share/anaconda/splashtolss.sh ]; then - $IMGPATH/usr/share/anaconda/splashtolss.sh $BOOTDISKDIR/syslinux-splash.png $BOOTDISKDIR/splash.lss - if [ $? != 0 ]; then - echo $0: Failed to create splash.lss - exit 1 - fi - cp $BOOTDISKDIR/splash.lss $MBD_BOOTTREE/splash.lss - elif [ -f $IMGPATH/usr/share/anaconda/boot/splash.lss ]; then - cp $IMGPATH/usr/share/anaconda/boot/splash.lss $MBD_BOOTTREE/splash.lss - else - echo Failed to find or create splash image - exit 1 - fi - - rm -f $MBD_BOOTTREE/syslinux-splash.png - sed -i "s/@PRODUCT@/$PRODUCT/g" $MBD_BOOTTREE/syslinux.cfg - sed -i "s/@VERSION@/$VERSION/g" $MBD_BOOTTREE/syslinux.cfg - - rm -f $MBD_BOOTTREE/memtest* - for file in $BOOTDISKDIR/*.msg; do - filename=`basename $file` - sed -e "s/@VERSION@/$VERSION/g" $file > $MBD_BOOTTREE/$filename - done - if [ $? != 0 ]; then - echo $0: Failed to copy messages from $BOOTDISKDIR to $MBD_BOOTTREE. - umount $MBD_BOOTTREE - rm -rf $MBD_BOOTTREE $MBD_TMPIMAGE - exit 1 - fi -} - -mkdir -p $TOPDESTPATH/images/pxeboot - -makeBootImages() { - local initrd="initrd.img" - local kernelimage="vmlinuz" - - if [ "$kernelvers" = "$kernelxen" ] ; then - local tag="${kernelvers#kernel}" - if [ -n "$tag" -a "$tag" != "$kernelvers" ] ; then - initrd="initrd${tag}.img" - kernelimage="vmlinuz${tag}" - fi - fi - - echo "Building $initrd" - makeinitrd --dest $TOPDESTPATH/images/pxeboot/$initrd \ - --modules "$INITRDMODS" - [ $? = 0 ] || exit 1 - - if [ "$kernelvers" != "$kernelxen" ] ; then - if [ -f $IMGPATH/usr/share/syslinux/isolinux.bin ]; then - echo "Building isolinux directory" - MBD_BOOTTREE=$TOPDESTPATH/isolinux - MBD_FSIMAGE=$TOPDESTPATH/images/pxeboot/initrd.img - mkdir $MBD_BOOTTREE - cp $IMGPATH/usr/share/syslinux/isolinux.bin $MBD_BOOTTREE/isolinux.bin - - prepareBootTree - - # isolinux needs the config file to be isolinux.cfg - mv $MBD_BOOTTREE/syslinux.cfg $MBD_BOOTTREE/isolinux.cfg - - # copy in memtest if present - if [ -f $IMGPATH/usr/share/anaconda/boot/memtest* ]; then - cp $IMGPATH/usr/share/anaconda/boot/memtest* $MBD_BOOTTREE/memtest - echo -e "label memtest86\n menu label ^Memory test\n kernel memtest\n append -\n" >> $MBD_BOOTTREE/isolinux.cfg - fi - else - echo "No isolinux binaries. Skipping isolinux creation" - fi - - # symlink the kernel for pxe dir - ln $TOPDESTPATH/isolinux/vmlinuz $TOPDESTPATH/images/pxeboot/vmlinuz - - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-$BASEARCH] -kernel = images/pxeboot/vmlinuz -initrd = images/pxeboot/initrd.img -__EOT__ - if [ -n "$BOOTISO" ]; then echo "boot.iso = images/$BOOTISO" >> $TOPDESTPATH/.treeinfo ; fi - fi - - # set up the boot stuff for the xen guest kernel - if [ -z "$kernelxen" -o "$kernelvers" = "$kernelxen" ] ; then - cp $KERNELROOT/boot/vmlinuz-$version $TOPDESTPATH/images/pxeboot/$kernelimage - cat << __EOT__ >> $TOPDESTPATH/.treeinfo -[images-xen] -kernel = images/pxeboot/$kernelimage -initrd = images/pxeboot/$initrd - -__EOT__ - fi -} - - -doPostImages() { - if [ -n "$BOOTISO" ]; then - EFIARGS="" - EFIGRAFT="" - if [ $UEFI_BOOT_ISO = "yes" -a \ - -f $TOPDESTPATH/images/efiboot.img ]; then - echo "Found efiboot.img, making an EFI-capable boot.iso" - EFIARGS="-eltorito-alt-boot -e images/efiboot.img -no-emul-boot" - EFIGRAFT="EFI/BOOT=$TOPDESTPATH/EFI/BOOT" - else - echo "No efiboot.img found, making BIOS-only boot.iso" - fi - BIOSARGS="-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table" - mkisocmd="mkisofs -v -o $TOPDESTPATH/images/$BOOTISO $BIOSARGS $EFIARGS -R -J -V '$CDLABEL' -T -graft-points isolinux=$TOPDESTPATH/isolinux images=$TOPDESTPATH/images $EFIGRAFT" - echo $PWD:\$ $mkisocmd - eval $mkisocmd - if [ -x /usr/bin/isohybrid ]; then - isohybrid $TOPDESTPATH/images/$BOOTISO || echo "Unable to make hybrid boot.iso" - fi - implantisomd5 $TOPDESTPATH/images/$BOOTISO - fi -} diff --git a/scripts/scrubtree b/scripts/scrubtree deleted file mode 100755 index 66cf2e9..0000000 --- a/scripts/scrubtree +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# -# scrubtree -# -# Copyright (C) 2007 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -DEBUG="" - -if [ "$1" == "--debug" ]; then - DEBUG="--debug" - shift -fi - -if [ -z "$1" ]; then - echo "Usage: $0 /path/to/tree" - exit 1 -fi - -p=$1 - -ARCH=`uname -m | sed -e 's/i.86/i386/'` - -if [ $ARCH = x86_64 -o $ARCH = s390x -o $ARCH = ppc64 ]; then - LIBDIR=lib64 -else - LIBDIR=lib -fi - -# Must create ld.so.conf, because ldconfig does not cache -# dirs specified on the command line. -touch $p/etc/ld.so.conf -mkdir $p/proc -mount -t proc proc $p/proc -echo /usr/kerberos/$LIBDIR > $p/etc/ld.so.conf -(cd $p; /usr/sbin/chroot $p /sbin/ldconfig ) - -if [ $ARCH != s390 -a $ARCH != s390x ]; then - rm -f $p/sbin/ldconfig -fi -rm $p/etc/ld.so.conf - -umount $p/proc diff --git a/scripts/upd-instroot b/scripts/upd-instroot deleted file mode 100755 index 0cf987d..0000000 --- a/scripts/upd-instroot +++ /dev/null @@ -1,1362 +0,0 @@ -#!/bin/bash -# -# upd-instroot -# -# Copyright (C) 2007, 2008 Red Hat, Inc. All rights reserved. -# -# 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/>. -# - -ORIGDIR=`pwd` -DEBUG="" -ARCH=`uname -m` - -while [ $# -gt 0 ]; do - case $1 in - --debug) - DEBUG="--debug" - shift - ;; - - --arch) - ARCH=$2 - shift; shift - ;; - - --imgdir) - DEST=$2 - shift; shift - ;; - - # a filesystem tree to use as updates. could be the output - # of 'make install' from anaconda... - --updates) - UPDATES=$2 - shift; shift - ;; - - --nogr) - echo "*** DeprecationWarning: ignoring --nogr option." >&2 - shift - ;; - - --mindir) - echo "*** DeprecationWarning: ignoring --mindir option." >&2 - shift; shift - ;; - - --stg2dir) - echo "*** DeprecationWarning: please use --imgdir instead of --stg2dir." >&2 - shift; shift - ;; - - *) - yumconf=$1 - shift - ;; - esac -done - -if [ -z "$yumconf" ]; then - echo "upd-instroot: updates instimage from a Red Hat RPMS directory" - echo "usage: $0 [--debug] [--arch arch] [--imgdir imgdir] [yumconf]" - exit 1 -fi - -if [ $ARCH = x86_64 -o $ARCH = s390x -o $ARCH = ppc64 ]; then - LIBDIR=lib64 -else - LIBDIR=lib -fi - -if [ -z "$DEST" ]; then - DEST=`mktemp -d ${TMPDIR:-/tmp}/dest.XXXXXX` -fi - -if [ ! -f $yumconf ]; then - echo "Unable to find yum repo information!" - exit 1 -fi - -. $(dirname $0)/buildinstall.functions - -expandPackageSet() { - YUMCONF=$1 - YUMDIR=$2 - RPMS=$3 - PKGDEST=$4 - KEEPFILES=$5 - - [ -d $PKGDEST ] || die "ERROR: directory missing: $PKGDEST" - - [ -z "$DEBUG" ] && outlvl="--quiet" || outlvl="--verbose" - - yum $outlvl -c $YUMCONF -y --installroot=$YUMDIR install $RPMS 2>&1 || die "ERROR: could not install packages" - - if [ -n "$UPDATES" ]; then - (cd $UPDATES; find) | (cd $UPDATES ; /bin/cpio --quiet -pmdu $YUMDIR) - fi - - # figure out the theme to keep - if [ -f $YUMDIR/etc/gtk-2.0/gtkrc ]; then - gtktheme=$(grep "gtk-theme-name" $YUMDIR/etc/gtk-2.0/gtkrc | awk {'print $3;'} | sed -e 's/"//g') - echo "usr/share/themes/$gtktheme" >> $KEEPFILES - # find gtk engine needed - for engine in `grep engine $YUMDIR/usr/share/themes/$gtktheme/gtk-2.0/gtkrc | grep -v ^# | awk {'print $2;'} | sed -e 's/"//g' | sort -u` ; do - echo "usr/$LIBDIR/gtk-2.0/*/engines/*$engine*" >> $KEEPFILES - done - - theme=$(grep "gtk-icon-theme-name" $YUMDIR/etc/gtk-2.0/gtkrc | awk {'print $3;'} | sed -e 's/"//g') - while [ -n "$theme" ]; do - echo "usr/share/icons/$theme" >> $KEEPFILES - theme=$(grep Inherits $YUMDIR/usr/share/icons/$theme/index.theme | cut -d = -f 2) - done - - cursortheme=$(grep "gtk-cursor-theme-name" $YUMDIR/etc/gtk-2.0/gtkrc | awk {'print $3;'} | sed -e 's/"//g') - if [ -n "$cursortheme" ]; then - echo "usr/share/icons/$cursortheme" >> $KEEPFILES - fi - fi - - echo `date` "Installing files" - pushd $YUMDIR >/dev/null - cat $KEEPFILES | while read spec ; do - #Pull off path - path=`echo "$spec" | sed 's,\([^[*\?]*\)/.*,\1,'` - for filespec in `find ./$path -path "./$spec" 2> /dev/null` ; do - if [ ! -e $filespec ]; then - continue - elif [ ! -d $filespec ]; then - instFile $filespec $PKGDEST - else - for i in `find $filespec -type f 2> /dev/null` ; do instFile $i $PKGDEST ; done - for i in `find $filespec -type l 2> /dev/null` ; do instFile $i $PKGDEST ; done - for d in `find $filespec -type d 2> /dev/null` ; do instDir $d $PKGDEST ; done - fi - done - done - popd >/dev/null -} - -die () { - echo "$@" - echo "Aborting instroot creation..." - exit 1 -} - -setupSshd() { - echo "sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin" \ - >> $DEST/etc/passwd - - # enable root shell logins - echo "root::14438:0:99999:7:::" >> $DEST/etc/shadow - - # enable 'install' account that starts anaconda on login - echo "install:x:0:0:root:/root:/sbin/loader" >> $DEST/etc/passwd - echo "install::14438:0:99999:7:::" >> $DEST/etc/shadow - - chmod 0400 $DEST/etc/shadow - - cat > $DEST/etc/pam.d/login << EOF -#%PAM-1.0 -auth required pam_env.so -auth sufficient pam_unix.so likeauth nullok -auth required pam_deny.so -account required pam_unix.so -password sufficient pam_unix.so nullok use_authtok md5 shadow -password required pam_deny.so -session required pam_limits.so -session required pam_unix.so -EOF - cp -f $DEST/etc/pam.d/login $DEST/etc/pam.d/sshd - cp -f $DEST/etc/pam.d/login $DEST/etc/pam.d/remote - - mkdir -m 0700 -p $DEST/etc/ssh - if [ "$ARCH" = "s390" -o "$ARCH" = "s390x" ]; then - # key generation takes ages on s390, you really don't want this - # for every installation attempt. These are NOT the keys of the - # installed system! - echo -n "Generating SSH1 RSA host key: " - /usr/bin/ssh-keygen -q -t rsa1 -f $DEST/etc/ssh/ssh_host_key \ - -C '' -N '' >&/dev/null - echo - echo -n "Generating SSH2 RSA host key: " - /usr/bin/ssh-keygen -q -t rsa -f $DEST/etc/ssh/ssh_host_rsa_key \ - -C '' -N '' >&/dev/null - echo - echo -n "Generating SSH2 DSA host key: " - /usr/bin/ssh-keygen -q -t dsa -f $DEST/etc/ssh/ssh_host_dsa_key \ - -C '' -N '' >&/dev/null - echo - (cd $DEST/etc/ssh; \ - chmod 600 ssh_host_key ssh_host_rsa_key ssh_host_dsa_key; \ - chmod 644 ssh_host_key.pub ssh_host_rsa_key.pub ssh_host_dsa_key.pub; ) - fi - - cat > $DEST/etc/ssh/sshd_config.anaconda <<EOF -Port 22 -HostKey /etc/ssh/ssh_host_key -HostKey /etc/ssh/ssh_host_rsa_key -HostKey /etc/ssh/ssh_host_dsa_key -PermitRootLogin yes -IgnoreRhosts yes -StrictModes yes -X11Forwarding yes -X11DisplayOffset 10 -PrintMotd yes -XAuthLocation /sbin/xauth -KeepAlive yes -SyslogFacility AUTHPRIV -RSAAuthentication yes -PasswordAuthentication yes -PermitEmptyPasswords yes -PermitUserEnvironment yes -EOF - chmod 600 $DEST/etc/ssh/sshd_config.anaconda -} - -PACKAGES="GConf2 NetworkManager NetworkManager-gnome ORBit2 acl anaconda - anaconda-yum-plugins at-spi atk attr audit-libs bash bind-utils - biosdevname bitmap-fonts-cjk - btrfs-progs bzip2 bzip2-libs ca-certificates cairo cjkuni-uming-fonts - comps-extras coreutils cpio cracklib cracklib-dicts cracklib-python - cryptsetup-luks cyrus-sasl-lib db4 dbus dbus-python dbus-x11 dejavu-sans-fonts - dejavu-sans-mono-fonts device-mapper device-mapper-libs - device-mapper-multipath device-mapper-multipath-libs - dhclient dmraid dmraid-libs - dogtail dosfstools e2fsprogs e2fsprogs-libs echo-icon-theme ethtool - elfutils-libelf expat fcoe-utils - firstboot fontconfig fonts-ISO8859-2 freetype gail gawk gdb-gdbserver - gdk-pixbuf gfs2-utils glib2 glibc-common gnome-python2-canvas gnome-python2-gconf - gnome-themes gnome-themes-standard - gobject-introspection gpm grep gtk2 gtk2-engines - hdparm hwdata initscripts iproute iputils iscsi-initiator-utils - jfsutils kbd kacst-farsi-fonts kacst-qurn-fonts kpartx keyutils-libs - krb5-libs libICE libSM libX11 libXau - libXaw libXcursor libXdmcp libXevie libXext libXfixes libXfont libXft - libXi libXinerama libXmu libXpm libXrandr libXrender libXt libXtst - libXxf86misc libacl libaio libart_lgpl libattr - libbonobo libcanberra libcanberra-gtk2 libcurl libfontenc libidn libgcc - libglade2 libgnomecanvas libgcrypt libgpg-error libjpeg libmlx4 libnl libogg - libpng libselinux libselinux-python libsemanage - libsemanage-python libsepol libssh2 libstdc++ libtdb libthai libtirpc - libtool-ltdl libuser - libuser-python libvolume_id libvorbis libxcb libxkbfile libxml2 lklug-fonts - lldpad - lohit-assamese-fonts lohit-bengali-fonts lohit-gujarati-fonts lohit-hindi-fonts - lohit-kashmiri-fonts lohit-kannada-fonts lohit-maithili-fonts lohit-marathi-fonts - lohit-oriya-fonts lohit-punjabi-fonts lohit-sindhi-fonts lohit-tamil-fonts - lohit-telugu-fonts lsof lvm2 madan-fonts mdadm - metacity module-init-tools ncurses neon net-tools - newt newt-python nfs-utils nspr nss nss-softokn ntfs-3g ntpdate - openldap openssh openssh-server - pam pango parted pciutils pcre psmisc - pygtk2-libglade pykickstart pyparted python python-bugzilla python-decorator - python-libs python-nss python-pyblock python-sqlite python-epdb - python-urlgrabber python-volume_key pyxf86config rdate readline redhat-artwork - reiserfs-utils report-config-default report-gtk report-newt rpm rpm-libs - rpm-python rsyslog sed selinux-policy-targeted - setup slang shared-mime-info smc-meera-fonts - specspo sqlite startup-notification strace - synaptics system-config-date - system-config-keyboard ${brandpkgname}-logos ${brandpkgname}-release - sysvinit-tools taipeifonts tcp_wrappers tcp_wrappers-libs - tigervnc-server-minimal tigervnc-server-module tzdata - udev un-core-dotum-fonts urw-fonts usbutils util-linux-ng - vconfig vlgothic-fonts vim-minimal - wget which wpa_supplicant xcb-util xkeyboard-config xfsprogs xorg-x11-xauth - xorg-x11-drivers xorg-x11-font-utils xorg-x11-fonts-ethiopic - xorg-x11-fonts-misc xorg-x11-server-utils - xorg-x11-server-Xorg xorg-x11-xkb-utils xorg-x11-xfs yum - yum-metadata-parser zenity zlib /etc/gtk-2.0/gtkrc" - -if [ $ARCH = i386 ]; then - PACKAGES="$PACKAGES glibc.i386 openssl.i386" -elif [ $ARCH = i586 ]; then - PACKAGES="$PACKAGES glibc.i586 openssl.i586" -elif [ $ARCH = sparc -o $ARCH = sparcv9 -o $ARCH = sparc64 ]; then - PACKAGES="$PACKAGES glibc.sparcv9 openssl.sparcv9" -else - PACKAGES="$PACKAGES glibc openssl" -fi - -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 ]; then - PACKAGES="$PACKAGES pcmciautils grub" -fi - -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 -o $ARCH = ia64 ]; then - PACKAGES="$PACKAGES dmidecode efibootmgr" -fi - -if [ $ARCH = ia64 ]; then - # XXX this needs to switch to grub at some point... - PACKAGES="$PACKAGES elilo" -fi - -if [ $ARCH = s390 -o $ARCH = s390x ]; then - PACKAGES="$PACKAGES bind-utils binutils coreutils findutils gzip - initscripts iputils less libgcc login lsscsi modutils mount - net-tools openssh-clients pam portmap - s390utils sed strace tar xorg-x11-libs - xorg-x11-xauth" -fi - -if [ $ARCH = ppc -o $ARCH = ppc64 ]; then - PACKAGES="$PACKAGES pcmciautils pdisk yaboot hfsutils kernel-bootwrapper" -fi - -# -# stuff ONLY included for rescue mode -# -# these packages are combined with the PACKAGES for big stage 2 -# -PACKAGESRESCUE="bzip2 bzip2-libs dump - findutils ftp gzip iputils krb5-libs less man-db - modutils mtools mt-st mtr net-tools smartmontools - openssh openssh-clients pciutils rsh traceroute tar rsync - device-mapper device-mapper-libs dmraid ntfsprogs samba-client - firstaidkit firstaidkit-engine firstaidkit-plugin-passwd - firstaidkit-plugin-xserver firstaidkit-gui - firstaidkit-plugin-mdadm-conf firstaidkit-plugin-key-recovery - volume_key" - -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 ]; then - PACKAGESRESCUE="$PACKAGESRESCUE gpart grub firstaidkit-plugin-grub" -fi - -# -# add bootloader for particular arch -# -if [ $ARCH = sparc -o $ARCH = sparcv9 -o $ARCH = sparc64 ]; then - PACKAGES="$PACKAGES tilo silo" -fi - -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 ]; then - PACKAGES="$PACKAGES syslinux memtest86+ grub" -fi - -if [ $ARCH = alpha ]; then - PACKAGES="$PACKAGES aboot" -fi - -if [ $ARCH = ppc ]; then - PACKAGES="$PACKAGES fbset yaboot ppc64-utils" -fi - -# -# KEEPFILE is all files to keep from the packages in PACKAGES -# -# The files in this list define the install image used for all installation -# methods. -# -# The rescue mode of anaconda uses these files as well as those defined -# by KEEPFILERESCUE below. The total size of this image should be -# under the size of the miniature CD used for the rescue CD (around 68MB). -# -KEEPFILE=${TMPDIR:-/tmp}/keepfile.$$ -cat > $KEEPFILE <<EOF -$LIBDIR/dbus-1 -$LIBDIR/libaio.so* -$LIBDIR/libfreebl3.so -$LIBDIR/libfreebl3.chk -$LIBDIR/libgcc_s* -$LIBDIR/libmultipath.so* -$LIBDIR/libnss_dns* -$LIBDIR/libnss_files* -$LIBDIR/libnssdbm3.so -$LIBDIR/libnssdbm3.chk -$LIBDIR/libsoftokn3.so -$LIBDIR/libsoftokn3.chk -$LIBDIR/libwrap*.so* -$LIBDIR/multipath/* -$LIBDIR/rsyslog/* -$LIBDIR/security/pam_* -bin/arch -bin/basename -bin/bash -bin/cat -bin/chgrp -bin/chmod -bin/chown -bin/cp -bin/cpio -bin/cut -bin/date -bin/dbus-daemon -bin/dbus-uuidgen -bin/dd -bin/df -bin/dmesg -bin/du -bin/echo -bin/env -bin/false -bin/fdisk* -bin/gawk -bin/*grep -bin/hostname -bin/ipcalc -bin/kill -bin/ln -bin/login -bin/ls -bin/mkdir -bin/mknod -bin/mktemp -bin/more -bin/mount -bin/mv -bin/ntfs-3g -bin/ps -bin/pwd -bin/rm -bin/rmdir -bin/rpm -bin/sed -bin/sleep -bin/sort -bin/sync -bin/touch -bin/true -bin/umount -bin/uname -bin/vi -boot/*.b -boot/bootlx -boot/efi/EFI/redhat/elilo.efi -boot/efi/EFI/redhat/grub.efi -boot/efika.forth -boot/memtest86* -etc/NetworkManager/VPN -etc/NetworkManager/NetworkManager.conf -etc/NetworkManager/dispatcher.d -etc/dbus-1/* -etc/dbus-1/system.d/* -etc/fb.modes -etc/fcoe -etc/fonts -etc/gconf -etc/group -etc/gtk-2.0/gtkrc* -etc/hosts -etc/im_palette.pal -etc/imrc -etc/iscsid.conf -etc/man_db.conf -etc/mke2fs.conf -etc/modprobe.d/libmlx4.conf -etc/netconfig -etc/nsswitch.conf -etc/pam.d/other -etc/pam.d/sshd -etc/pango -etc/passwd -etc/pcmcia -etc/pki/tls/certs/ca-bundle.crt -etc/polkit-1/localauthority.conf.d/* -etc/polkit-1/nullbackend.conf.d/* -etc/prelink.conf -etc/protocols -etc/rc.d/init.d/functions -etc/report.conf -etc/report.d/* -etc/rpm/macros.prelink -etc/security/limits.conf -etc/security/pam_env.conf -etc/selinux/targeted/policy/policy* -etc/selinux/targeted/contexts -etc/selinux/targeted/*conf -etc/selinux/targeted/seusers -etc/services -etc/shells -etc/sysconfig/network-scripts/network-functions* -etc/udev -etc/wpa_supplicant/wpa_supplicant.conf -etc/yum.repos.d/* -etc/yum/pluginconf.d/blacklist.conf -etc/yum/pluginconf.d/fedorakmod.conf -etc/yum/pluginconf.d/whiteout.conf -lib/terminfo -lib/udev -sbin/*gfs* -sbin/arping -sbin/badblocks -sbin/biosdevname -sbin/brcm_iscsiuio -sbin/blockdev -sbin/btrfsctl -sbin/btrfsck -sbin/cciss_id -sbin/clock -sbin/consoletype -sbin/cryptsetup -sbin/debugfs -sbin/debugreiserfs -sbin/dhclient -sbin/dhclient-script -sbin/dhcp6c -sbin/dosfslabel -sbin/dumpe2fs -sbin/fsadm -sbin/e2fsck -sbin/e2label -sbin/ethtool -sbin/fdisk -sbin/fsck -sbin/fsck.ext* -sbin/fsck.jfs -sbin/fsck.reiserfs -sbin/fsck.xfs -sbin/hdparm -sbin/hwclock -sbin/ifconfig -sbin/ip -sbin/iscsiadm -sbin/iscsid -sbin/iscsistart -sbin/jfs_tune -sbin/killall5 -sbin/kpartx -sbin/ldconfig -sbin/load_policy -sbin/losetup -sbin/lspci -sbin/lvm* -sbin/mdadm -sbin/mdmon -sbin/mkdosfs -sbin/mke2fs -sbin/mkfs.btrfs -sbin/mkfs.ext* -sbin/mkfs.gfs2 -sbin/mkfs.jfs -sbin/mkfs.msdos -sbin/mkfs.reiserfs -sbin/mkfs.vfat -sbin/mkfs.xfs -sbin/mkofboot -sbin/mkraid -sbin/mkreiserfs -sbin/mkswap -sbin/mount* -sbin/multipath -sbin/nologin -sbin/ofpath -sbin/parted -sbin/pcmcia-socket-startup -sbin/pdisk -sbin/probe -sbin/pidof -sbin/reiserfsck -sbin/reiserfstune -sbin/resize_reiserfs -sbin/resize2fs -sbin/rmmod -sbin/route -sbin/rsyslogd -sbin/setfiles -sbin/sfdisk -sbin/silo -sbin/swapoff -sbin/swapon -sbin/tune2fs -sbin/udev* -sbin/umount* -sbin/vconfig -sbin/wipefs -sbin/xfs_repair -sbin/xfsrestore -sbin/ybin -usr/include/python?.?/pyconfig*.h -usr/$LIBDIR/NetworkManager -usr/$LIBDIR/gconv -usr/$LIBDIR/gdk-pixbuf/loaders/*la* -usr/$LIBDIR/gdk-pixbuf/loaders/*png* -usr/$LIBDIR/gdk-pixbuf/loaders/*xpm* -usr/$LIBDIR/girepository-1.0 -usr/$LIBDIR/gtk-2.0/*/engines/libclearlooks.so -usr/$LIBDIR/gtk-2.0/*/loaders/*la* -usr/$LIBDIR/gtk-2.0/*/loaders/*png* -usr/$LIBDIR/gtk-2.0/*/loaders/*xpm* -usr/$LIBDIR/gtk-2.0/immodules -usr/$LIBDIR/libuser/* -usr/$LIBDIR/pango -usr/$LIBDIR/python?.? -usr/$LIBDIR/libiscsi.so* -usr/$LIBDIR/libmetacity-private.so* -usr/$LIBDIR/libsqlite3.so* -usr/$LIBDIR/xorg/modules -usr/$LIBDIR/libfreebl3.so -usr/$LIBDIR/libfreebl3.chk -usr/$LIBDIR/libnss3.so -usr/$LIBDIR/libnssckbi.so -usr/$LIBDIR/libnssdbm3.so -usr/$LIBDIR/libnssdbm3.chk -usr/$LIBDIR/libnsspem.so -usr/$LIBDIR/libpolkit-backend-1.so.0.* -usr/$LIBDIR/libsmime3.so -usr/$LIBDIR/libsoftokn3.so -usr/$LIBDIR/libsoftokn3.chk -usr/$LIBDIR/libssl3.so -usr/$LIBDIR/.*.hmac -$LIBDIR/.libgcrypt*.hmac -usr/bin/[ -usr/bin/Xorg -usr/bin/Xvnc -usr/bin/chattr* -usr/bin/chvt -usr/bin/clear -usr/bin/dbus-launch -usr/bin/du -usr/bin/eject -usr/bin/expr -usr/bin/gdbserver -usr/bin/gdialog -usr/bin/gdk-pixbuf-query-loaders* -usr/bin/gtk-query* -usr/bin/gtk-update-icon-cache* -usr/bin/hattrib -usr/bin/hcopy -usr/bin/head -usr/bin/hformat -usr/bin/hmount -usr/bin/humount -usr/bin/killall -usr/bin/logger -usr/bin/lsattr* -usr/bin/maketilo -usr/bin/md5sum -usr/bin/metacity -usr/bin/mkzimage -usr/bin/nm-connection-editor -usr/bin/nslookup -usr/bin/pango* -usr/bin/python -usr/bin/python?.? -usr/bin/rdate -usr/bin/readlink -usr/bin/reduce-font -usr/bin/setxkbmap -usr/bin/sha1sum -usr/bin/split -usr/bin/ssh-keygen -usr/bin/strace -usr/bin/syslinux -usr/bin/tac -usr/bin/tail -usr/bin/tee -usr/bin/tilo -usr/bin/top -usr/bin/tty -usr/bin/wc -usr/bin/udev* -usr/bin/uniq -usr/bin/vncconfig -usr/bin/vncpasswd -usr/bin/wget -usr/bin/which -usr/bin/xkbcomp -usr/bin/xrandr -usr/bin/zenity -usr/$LIBDIR/anaconda -usr/lib/kernel-wrapper -usr/lib/locale -usr/lib/python?.? -usr/lib/rpm/macros -usr/lib/rpm/rpmpopt -usr/lib/rpm/rpmrc -usr/share/X11/xorg.conf.d/* -usr/share/syslinux -usr/lib/yaboot -usr/lib/yum-plugins/blacklist.py* -usr/lib/yum-plugins/fedorakmod.py* -usr/lib/yum-plugins/whiteout.py* -usr/libexec/anaconda -usr/libexec/convertdb1 -usr/libexec/fcoe/fcoe_edd.sh -usr/libexec/nm-crash-logger -usr/libexec/nm-dhcp-client.action -usr/libexec/nm-dispatcher.action -usr/libexec/polkit* -usr/sbin/NetworkManager -usr/sbin/addRamDisk -usr/sbin/anaconda -usr/sbin/build-locale-archive -usr/sbin/chroot -usr/sbin/dcbtool -usr/sbin/ddcprobe -usr/sbin/dmidecode -usr/sbin/efibootmgr -usr/sbin/fcoemon -usr/sbin/fbset -usr/sbin/fipvlan -usr/sbin/genhomedircon -usr/sbin/gptsync -usr/sbin/lldpad -usr/sbin/logpicker -usr/sbin/lsof -usr/sbin/lvm -usr/sbin/ntpdate -usr/sbin/prelink -usr/sbin/semodule -usr/sbin/showpart -usr/sbin/smartctl -usr/sbin/sshd -usr/sbin/.sshd.hmac -usr/sbin/wpa_passphrase -usr/sbin/wpa_supplicant -usr/sbin/wrapper -usr/sbin/xfs_admin -usr/sbin/xfs_check -usr/sbin/xfs_copy -usr/sbin/xfs_db -usr/share/polkit-1/actions/* -usr/share/X11/XKeysymDB -usr/share/X11/fonts/TTF/GohaTibebZemen.ttf -usr/share/X11/fonts/misc/6x13* -usr/share/X11/fonts/misc/cursor* -usr/share/X11/fonts/misc/fonts* -usr/share/X11/fonts/misc/olcursor* -usr/share/X11/locale -usr/share/X11/rgb* -usr/share/X11/xkb -usr/share/anaconda -usr/share/anaconda/anaconda.conf -usr/share/cracklib -usr/share/dbus-1 -usr/share/fontconfig -usr/share/fonts/*/lklug.ttf -usr/share/fonts/lohit*/* -usr/share/fonts/*/lklug.ttf -usr/share/fonts/cjkuni*/uming*.ttc -usr/share/fonts/dejavu/DejaVuSans-Bold.ttf -usr/share/fonts/dejavu/DejaVuSans.ttf -usr/share/fonts/dejavu/DejaVuSansMono.ttf -usr/share/fonts/kacst/KacstFarsi.ttf -usr/share/fonts/kacst/KacstQurn.ttf -usr/share/fonts/madan/Madan.ttf -usr/share/fonts/un-core/UnDotum.ttf -usr/share/fonts/*/VL-Gothic-Regular.ttf -usr/share/fonts/smc/Meera*.ttf -usr/share/hwdata/MonitorsDB -usr/share/hwdata/pci.ids -usr/share/hwdata/usb.ids -usr/share/hwdata/videoaliases -usr/share/hwdata/videodrivers -usr/share/icons/hicolor/*/apps/nm-* -usr/share/icons/hicolor/index.theme -usr/share/locale/*/LC_MESSAGES/anaconda.mo -usr/share/locale/*/LC_MESSAGES/cracklib.mo -usr/share/locale/*/LC_MESSAGES/gtk20.mo -usr/share/locale/*/LC_MESSAGES/libc.mo -usr/share/locale/*/LC_MESSAGES/nm-applet.mo -usr/share/locale/*/LC_MESSAGES/parted.mo -usr/share/locale/*/LC_MESSAGES/redhat-dist.mo -usr/share/locale/*/LC_MESSAGES/system-config-date.mo -usr/share/locale/*/LC_MESSAGES/system-config-keyboard.mo -usr/share/locale/*/LC_MESSAGES/zenity.mo -usr/share/locale/locale.alias -usr/share/mime/mime.cache -usr/share/nm-applet/* -usr/share/pixmaps/comps/*.png -usr/share/pixmaps/gnome-default-dlg.png -usr/share/pixmaps/gnome-error.png -usr/share/pixmaps/gnome-info.png -usr/share/pixmaps/gnome-question.png -usr/share/pixmaps/gnome-warning.png -usr/share/pixmaps/no.xpm -usr/share/pixmaps/yes.xpm -usr/share/ppc64-utils -usr/share/python-meh/* -usr/share/system-config-date -usr/share/system-config-date/zonetab.py* -usr/share/system-config-keyboard -usr/share/terminfo/a/ansi -usr/share/terminfo/d/dumb -usr/share/terminfo/g/gnome -usr/share/terminfo/l/linux -usr/share/terminfo/s/screen -usr/share/terminfo/v/vt100 -usr/share/terminfo/v/vt100-nav -usr/share/terminfo/v/vt102 -usr/share/terminfo/v/vt320 -usr/share/terminfo/v/vt320-w -usr/share/terminfo/x/xterm -usr/share/terminfo/x/xterm-color -usr/share/themes/Atlanta/metacity-1 -usr/share/themes/Adwaita/* -usr/share/xorg/extramodes -usr/share/xorg/vesamodes -usr/share/zenity -usr/share/zoneinfo -var/lib/polkit-1 -var/lib/dbus -var/lib/lldpad -var/run/dbus -EOF - -if [ $ARCH = ppc -o $ARCH = ppc64 ]; then - cat >> $KEEPFILE <<EOF -usr/$LIBDIR/kernel-wrapper/* -EOF -fi - -if [ $ARCH = s390 -o $ARCH = s390x ]; then - cat >> $KEEPFILE <<EOF -bin/basename -bin/cat -bin/chmod -bin/chown -bin/cp -bin/cut -bin/date -bin/dmesg -bin/echo -bin/find -bin/gzip -bin/ls -bin/mknod -bin/ping -bin/ping6 -bin/ps -bin/sort -bin/tar -bin/vi -lib/modules/ibm -lib/s390-tools/lsznet.raw -lib/s390-tools/znetcontrolunits -lib/security -sbin/*_cio_free -sbin/arp -sbin/cio_ignore -sbin/cmsfscat -sbin/cmsfslst -sbin/dasdfmt -sbin/dasdinfo -sbin/dasdview -sbin/fdasd -sbin/lschp -sbin/lscss -sbin/lsdasd -sbin/lsqeth -sbin/lszfcp -sbin/portmap -sbin/qetharp -sbin/qetharp-2.6 -sbin/qethconf -sbin/sysctl -usr/bin/dirname -usr/bin/expr -usr/bin/getopt -usr/bin/head -usr/bin/ldd -usr/bin/less -usr/bin/lsscsi -usr/bin/nslookup -usr/bin/printf -usr/bin/seq -usr/bin/scp -usr/bin/strace -usr/bin/tr -usr/bin/wc -usr/bin/xauth -usr/sbin/chreipl -usr/sbin/glibc_post_upgrade -usr/sbin/lsreipl -EOF -fi - -# more dogtail stuff... -cat >> $KEEPFILE <<EOF -usr/$LIBDIR/gtk-2.0/modules/libatk-bridge.so -usr/$LIBDIR/gtk-2.0/modules/libgail.so -usr/libexec/bonobo-activation-server -usr/libexec/at-spi-registryd -usr/$LIBDIR/bonobo/servers -usr/libexec/gconfd-2 -usr/$LIBDIR/GConf/2/libgconfbackend-xml.so -EOF - -# -# KEEPFILERESCUE is all files to keep from the packages in PACKAGESRESCUE -# -# This defines the files in addition to KEEPFILE that make up -# the install images for NFS and CD/DVD based rescue mode installs. This -# image is not loaded into memory so it can be considerably larger. -# -# NOTE: hd, ftp, and http rescue mode use and image based on KEEPFILE since -# it has to be much smaller due to memory usage. -# -KEEPFILERESCUE=${TMPDIR:-/tmp}/keepfilerescue.$$ -cat > $KEEPFILERESCUE <<EOF -bin/find -bin/gunzip -bin/gzip -bin/mt -bin/ping -bin/sync -bin/tar -bin/zcat -sbin/arp -sbin/blkid -sbin/depmod -sbin/dmraid -sbin/dmsetup -sbin/dump -sbin/ifconfig -sbin/insmod -sbin/lsmod -sbin/modinfo -sbin/modprobe -sbin/depmod -sbin/netstat -sbin/restore -sbin/rrestore -sbin/route -sbin/mount.cifs -sbin/umount.cifs -usr/bin/bunzip2 -usr/bin/bzcat -usr/bin/bzip2 -usr/bin/emacs -usr/bin/find -usr/bin/ftp -usr/bin/less -usr/bin/mattrib -usr/bin/mbadblocks -usr/bin/mcd -usr/bin/mcopy -usr/bin/mdel -usr/bin/mdeltree -usr/bin/mdir -usr/bin/mdu -usr/bin/mformat -usr/bin/minfo -usr/bin/mlabel -usr/bin/mmd -usr/bin/mmount -usr/bin/mmove -usr/bin/mpartition -usr/bin/mrd -usr/bin/mread -usr/bin/mren -usr/bin/mshowfat -usr/bin/mtools -usr/bin/mtype -usr/bin/mzip -usr/bin/open -usr/bin/rcp -usr/bin/rlogin -usr/bin/rsh -usr/bin/rsync -usr/bin/scp -usr/bin/sftp -usr/bin/shred -usr/bin/ssh -usr/bin/termidx -usr/bin/volume_key -usr/bin/xargs -usr/bin/ntfscat -usr/bin/ntfscluster -usr/bin/ntfscmp -usr/bin/ntfsdecrypt -usr/bin/ntfsdump_logfile -usr/bin/ntfsfix -usr/bin/ntfsinfo -usr/bin/ntfsls -usr/bin/ntfsmftalloc -usr/bin/ntfsmove -usr/bin/ntfstruncate -usr/bin/ntfswipe -usr/bin/firstaidkit -usr/sbin/lsusb -usr/sbin/mkntfs -usr/sbin/ntfsclone -usr/sbin/ntfscp -usr/sbin/ntfslabel -usr/sbin/ntfsresize -usr/sbin/ntfsundelete -usr/sbin/mtr -usr/sbin/smartctl -usr/sbin/traceroute -usr/$LIBDIR/firstaidkit/plugins/* -usr/bin/whiptail -usr/bin/firstaidkit-qs -EOF - -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 ]; then - cat >> $KEEPFILERESCUE <<-EOF -sbin/grub -usr/bin/gpart -usr/share/grub -EOF -fi - -echo "Assembling package list..." -RPMS="$PACKAGES $PACKAGESRESCUE" -[ -n "$DEBUG" ] && echo "RPMS are $RPMS" - -rm -rf $DEST - -# Create a bunch of empty directories that are important for a running system. -mkdir -p $DEST/boot -mkdir -p $DEST/dev -mkdir -p $DEST/etc/dhcp -mkdir -p $DEST/etc/modprobe.d -mkdir -p $DEST/firmware -mkdir -p $DEST/lib -mkdir -p $DEST/modules -mkdir -p $DEST/proc -mkdir -m 0700 $DEST/root -mkdir -p $DEST/selinux -mkdir -p $DEST/sys -mkdir -p $DEST/tmp -mkdir -p $DEST/usr/lib/rpm -mkdir -p $DEST/usr/sbin -mkdir -m 111 -p $DEST/var/empty/sshd -mkdir -p $DEST/var/lib/dbus -mkdir -p $DEST/var/lib/dhclient -mkdir -p $DEST/var/lib/rpm -mkdir -p $DEST/var/lock/rpm -mkdir -p $DEST/var/run -mkdir -p $DEST/var/run/dbus -mkdir -p $DEST/var/run/NetworkManager -mkdir -p $DEST/var/run/wpa_supplicant -mkdir -p $DEST/var/state - -ln -s /tmp $DEST/var/lib/xkb -ln -s /tmp $DEST/var/state/xkb - -# -# concat KEEPFILE and KEEPFILERESCUE lists -# -cat $KEEPFILERESCUE >> $KEEPFILE - -echo `date` "Expanding packages..." -YUMDIR=${TMPDIR:-/tmp}/yumdir.$$ -mkdir -p $YUMDIR/var/log -mkdir -p $YUMDIR/var/lib/yum - -expandPackageSet $yumconf $YUMDIR "$RPMS" $DEST $KEEPFILE -echo `date` "Done Expanding packages..." - -# Install the anaconda portions. -install -m 755 $DEST/usr/libexec/anaconda/auditd $DEST/sbin/auditd -install -m 755 $DEST/usr/$LIBDIR/anaconda/loader $DEST/sbin/loader -install -m 644 $DEST/usr/share/anaconda/loader.tr $DEST/etc/loader.tr - -cp $DEST/usr/share/anaconda/raidstart-stub $DEST/usr/bin/raidstart -cp $DEST/usr/share/anaconda/raidstop-stub $DEST/usr/bin/raidstop -cp $DEST/usr/share/anaconda/list-harddrives-stub $DEST/usr/bin/list-harddrives -cp $DEST/usr/share/anaconda/loadkeys-stub $DEST/usr/bin/loadkeys -cp $DEST/usr/share/anaconda/restart-anaconda $DEST/usr/bin/restart-anaconda -mv $DEST/usr/$LIBDIR/python?.?/site-packages/pyanaconda/sitecustomize.py $DEST/usr/$LIBDIR/python?.?/site-packages - -if [ $ARCH = "s390" -o $ARCH = "s390x" ]; then - mv $DEST/usr/libexec/anaconda/shutdown $DEST/sbin - mv $DEST/usr/share/anaconda/linuxrc.s390 $DEST/sbin/init - ( cd $DEST/sbin && ln -sf init reboot && ln -sf init halt ) -else - mv $DEST/usr/$LIBDIR/anaconda/init $DEST/sbin/init - ( cd $DEST/sbin && ln -s init reboot && ln -s init halt && ln -s init poweroff ) - - install -m 644 $DEST/usr/share/anaconda/screenfont-$ARCH.gz $DEST/etc/screenfont.gz -fi - -# Dogtail will check this -echo "Creating customized GConf2 settings for root" -mkdir -p $DEST/.gconf/desktop/gnome/interface -touch $DEST/.gconf/desktop/%gconf.xml -touch $DEST/.gconf/desktop/gnome/%gconf.xml -cat > $DEST/.gconf/desktop/gnome/interface/%gconf.xml <<EOF -<?xml version="1.0"?> -<gconf> - <entry name="accessibility" mtime="1176200664" type="bool" value="true"> - </entry> -</gconf> -EOF - -# anaconda needs to change a couple of the default gconf entries -GCONF_CONFIG_SOURCE="xml:readwrite:$DEST/etc/gconf/gconf.xml.defaults" -echo "Updating gconf at $GCONF_CONFIG_SOURCE" -gconf_update() { - path=$1 - entry_type=$2 - value=$3 - CMD="gconftool-2 --direct --config-source=$GCONF_CONFIG_SOURCE -s -t $entry_type $path $value" - $($CMD) -} -gconf_update /apps/metacity/general/button_layout string : -gconf_update /apps/metacity/general/action_right_click_titlebar string none -gconf_update /apps/metacity/window_keybindings/close string disabled -gconf_update /apps/metacity/global_keybindings/run_command_window_screenshot string disabled -gconf_update /apps/metacity/global_keybindings/run_command_screenshot string disabled - -rm -rf $YUMDIR - -chown -R root:root $DEST -chmod -R a+rX-w $DEST - -# Some files need very particular permissions. -chmod 04755 $DEST/usr/libexec/polkit-1/polkit-agent-helper-1 -chown root:dbus $DEST/$LIBDIR/dbus-1/dbus-daemon-launch-helper -chmod 04750 $DEST/$LIBDIR/dbus-1/dbus-daemon-launch-helper - -# Remove locales unused during the install -install -m 644 $DEST/usr/share/anaconda/lang-table $DEST/etc/lang-table -localedef -c -i en_US -f UTF-8 --prefix $DEST en_US - -cat $DEST/usr/share/anaconda/lang-table* | awk ' -{ gsub("-", "", $4); - print $4; - print gensub(/\..*$/,"","",$4); - print gensub(/_.*$/,"","",$4); - if (split ($4, a, ".") > 1) { - print gensub(/\..*$/,tolower("." a[2]),"",$4); - }; - print $2; -} -' | grep -v Sotho | grep -v latarcyrhebsun16 | sed -e 's/latn/Latn/g' | LC_ALL=C sort -u > $DEST/locales -for p in lib share; do ( - cd $DEST/usr/$p/locale && { - ls | grep -v locale.alias | grep -v locale-archive | LC_ALL=C sort > $DEST/locales.list - LC_ALL=C comm -13 $DEST/locales $DEST/locales.list | xargs rm -rf - } -); done - -# Now shrink the locale-archive to contain just the minimum. -localedef --prefix $DEST --list-archive > $DEST/locales.glibc -LC_ALL=C unsupported="$(comm -13 $DEST/locales $DEST/locales.glibc)" -localedef --prefix $DEST --delete-from-archive $unsupported -mv $DEST/usr/lib/locale/locale-archive $DEST/usr/lib/locale/locale-archive.tmpl -/usr/sbin/chroot $DEST /usr/sbin/build-locale-archive - -rm -f $DEST/locales $DEST/locales.list $DEST/locales.glibc - -# fix up some links for man page related stuff -for file in nroff groff iconv geqn gtbl gpic grefer ; do - ln -fs /mnt/sysimage/usr/bin/$file $DEST/usr/bin/$file -done - -# create selinux config -if [ -e $DEST/etc/selinux/targeted ]; then - cat > $DEST/etc/selinux/config <<EOF -SELINUX=permissive -SELINUXTYPE=targeted -EOF -fi - -echo "Creating config files" -touch $DEST/etc/resolv.conf - -# \EOF has a quote in the first character on purpose; see man bash on here documents -cat > $DEST/etc/rsyslog.conf <<\EOF -#### MODULES #### -$ModLoad imuxsock.so # provides support for local system logging -$ModLoad imklog.so # provides kernel logging support - -$ModLoad imfile -$InputFileName /tmp/X.log -$InputFileTag xserver: -$InputFileStateFile xserver-statefile -$InputFileFacility local1 -$InputRunFileMonitor -$InputFileName /tmp/anaconda-tb-all.log -$InputFileTag anaconda-tb: -$InputFileStateFile anaconda-tb-statefile -$InputFileFacility local1 -$InputRunFileMonitor - -#### GLOBAL DIRECTIVES #### -# Use default timestamp format -$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat - -#### TEMPLATES #### - -$template anaconda_tty4, "%syslogseverity-text:::uppercase% %programname%:%msg%\n" -$template anaconda_syslog, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" -$template virtio_ForwardFormat, "<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\n" - -#### RULES #### -# log everything except anaconda-specific records from local1 (those are stored -# directly into files via python logging) -*.*;\ -authpriv.none;\ -local1.none /tmp/syslog;anaconda_syslog - & /dev/tty4;anaconda_tty4 - -# ### begin forwarding rule ### -# The statement between the begin ... end define a SINGLE forwarding -# rule. They belong together, do NOT split them. If you create multiple -# forwarding rules, duplicate the whole block! -# -# An on-disk queue is created for this action. If the remote host is -# down, messages are spooled to disk and sent when it is up again. -$ActionQueueMaxDiskSpace 1m # space limit (use as much as possible) -$ActionQueueSaveOnShutdown off # do not save messages to disk on shutdown -$ActionQueueType LinkedList # run asynchronously -$ActionResumeRetryCount -1 # infinite retries if host is down -# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional -# ### end of the forwarding rule ### - -EOF - -cat > $DEST/etc/libuser.conf <<EOF -[defaults] -skeleton = /mnt/sysimage/etc/skel -mailspooldir = /mnt/sysimage/var/mail -crypt_style = md5 -modules = files shadow -create_modules = files shadow -[files] -directory = /mnt/sysimage/etc -[shadow] -directory = /mnt/sysimage/etc -EOF - -cat > $DEST/root/.profile <<EOF -PS1="[anaconda \u@\h \W]\\\\$ " -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin -export PATH PS1 -EOF - -cat > $DEST/root/.bash_history <<EOF -kill -USR2 \`cat /var/run/anaconda.pid\` -kill -HUP \`cat /var/run/anaconda.pid\` -udevadm info --export-db | less -tail -f /tmp/storage.log -echo b > /proc/sysrq-trigger -dmsetup table -multipath -d -HOME=/root chroot /mnt/sysimage bash -l -i -EOF - -echo "Creating /etc/skel" -# libuser needs this when it creates sshpw users -mkdir -p $DEST/etc/skel - -echo "Creating empty /etc/gshadow" -# libuser needs this when it creates sshpw users -touch $DEST/etc/gshadow - -setupSshd - -sed -i 's|\(installforallkernels\) = 0|\1 = 1|' $DEST/etc/yum/pluginconf.d/fedorakmod.conf - -# -# Manual pages in rescue: We dont have man pages in the image, so we point everything (The pages -# and the man scripts to the /mnt/sysimage. We want the man command to depend only on the -# man_db.conf file, so we don't use the $MANPATH env variable. The executables stay unchanged as -# they will be soft links to /mnt/sysimage. -# -echo "Fixing up /etc/man_db.conf to point into /mnt/sysimage" - -# -# Lets avoid the lines with MANPATH_MAP for now -# -sed -i "s,^MANPATH[^_MAP][ \t]*,&/mnt/sysimage," $DEST/etc/man_db.conf - -# -# Lets change the lines with MANPATH_MAP. Don't know how much of a difference this will make. -# -sed -i "s,^MANPATH_MAP[ \t]*[a-zA-Z0-9/]*[ \t]*,&/mnt/sysimage," $DEST/etc/man_db.conf - -echo "Scrubbing tree..." "$DEST" - -mv $DEST/etc/yum.repos.d $DEST/etc/anaconda.repos.d - -rm -f $DEST/usr/$LIBDIR/libunicode-lite* -rm -f $DEST/usr/share/icons/*/icon-theme.cache -rm -f $DEST/usr/sbin/build-locale-archive - -find $DEST -type d | xargs chmod 755 - -cp $DEST/usr/share/doc/python-devel-*/gdbinit $DEST/.gdbinit - -if [ -f $DEST/bin/bash ]; then - rm -f $DEST/bin/ash - ln -s bash $DEST/bin/sh -fi - -if [ -f $DEST/bin/gawk ]; then - ln -sf $DEST/bin/gawk awk -fi - -( cd $DEST/etc && ln -sf /etc/rc.d/init.d init.d ) -ln -sf /sbin/init $DEST/init -ln -sf /proc/mounts $DEST/etc/mtab - -# copy bootloader files for sparc -if [ $ARCH = sparc -o $ARCH = sparcv9 -o $ARCH = sparc64 ]; then - mkdir -p $DEST/usr/share/anaconda/boot - [ -d $DEST/boot ] || die "ERROR: directory missing: $DEST/boot" - (cd $DEST/boot; find -name "*.b") | (cd $DEST/boot; /bin/cpio --quiet -pdmu $DEST/usr/share/anaconda/boot) -fi - -# copy bootloader file for ppc -if [ $ARCH = ppc -o $ARCH = ppc64 ]; then - mkdir -p $DEST/usr/share/anaconda/boot - cp -af $DEST/boot/efika.forth $DEST/usr/share/anaconda/boot -fi - -# copy bootloader file for alpha -if [ $ARCH = alpha ]; then - mkdir -p $DEST/usr/share/anaconda/boot - cp -af $DEST/boot/bootlx $DEST/usr/share/anaconda/boot -fi - -# copy bootloader files for ia64 -if [ $ARCH = ia64 ]; then - mkdir -p $DEST/usr/share/anaconda/boot - cp -af $DEST/boot/efi/EFI/redhat//* $DEST/usr/share/anaconda/boot -fi - -# copy bootloader files for i386/x86_64 -if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = i686 -o $ARCH = x86_64 ]; then - mkdir -p $DEST/usr/share/anaconda/boot - cp -af $DEST/boot/memtest* $DEST/usr/share/anaconda/boot -fi - -rm -rf $DEST/boot $DEST/home - -# Remove a bunch of stuff we don't want in the final image. -find $DEST -name "*.a" | grep -v kernel-wrapper/wrapper.a | xargs rm -rf -find $DEST -name "lib*.la" |grep -v "usr/$LIBDIR/gtk-2.0" | xargs rm -rf -rm -f $DEST/lib/udev/rules.d/*generator* - -# nuke some python stuff we don't need -for d in idle distutils bsddb lib-old hotshot doctest.py pydoc.py site-packages/japanese site-packages/japanese.pth ; do - rm -rf $DEST/$d -done - -$DEST/usr/libexec/anaconda/scrubtree $DEST - -echo "Creating debug dir" -mkdir -p $DEST/usr/lib/debug -mkdir -p $DEST/usr/src/debug - -find $DEST -name "*.py" | while read fn; do - rm -f ${fn}o - rm -f ${fn}c - ln -sf /dev/null ${fn}c -done - -# some python stuff we don't need for install image -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/distutils/ -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/lib-dynload/japanese -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/encodings/ -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/compiler/ -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/email/test/ -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/curses/ -rm -rf $DEST/usr/$LIBDIR/python?.?/site-packages/pydoc.py -- 1.7.3.4 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list