LANG=C
PATH=$PATH:/sbin:/usr/sbin
-IMAGEUUID=$(date +%Y%m%d%H%M)
+IMAGEUUID=$(date +%Y%m%d%H%M).$(uname -i)
usage () {
echo "usage: mk-images <pkgsrc> <toplevel> <template> <imgdir> <buildarch> <productname> <version> [<productpath>]"
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"
+USBMODS="ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage sd_mod sr_mod ub"
+FIREWIREMODS="ieee1394 ohci1394 sbp2"
+IDEMODS="ide-cd"
+SCSIMODS="sr_mod sg st sd_mod scsi_mod iscsi_tcp"
+FSMODS="fat msdos vfat ext3 reiserfs jfs xfs"
+LVMMODS="dm-mod dm-zero dm-snapshot dm-mirror"
+RAIDMODS="md raid0 raid1 raid5 raid6"
+SECSTAGE="$RAIDMODS $LVMMODS $FSMODS $IDEMODS $SCSIMODS"
+BTERMMODS="vga16fb"
+PCMCIASOCKMODS="yenta_socket i82365 tcic pcmcia"
+INITRDMODS="$USBMODS $FIREWIREMODS $IDEMODS $SCSIMODS $FSMODS $LVMMODS $RAIDMODS $BTERMMODS $COMMONMODS $PCMCIASOCKMODS =scsi =net"
+
# Set, verify, and create paths
KERNELPATH=$1
TOPDESTPATH=$2
IMGPATH=$4
KERNELBASE=/tmp/updboot.kernel.$$
MODDEPS=$KERNELBASE/moddeps
- MODMAPS=$KERNELBASE/modules.pcimap
- USBMAPS=$KERNELBASE/modules.usbmap
+ MODALIAS=$KERNELBASE/modules.alias
BUILDARCH=$5
KERNELNAME=vmlinuz
CRAMBS=""
fi
- if [ ! -d "$1" ]; then
- LATEST="rsh porkchop latest --arch $BUILDARCH"
- else
- LATEST=findPackage
- fi
-
if [ $BUILDARCH = x86_64 -o $BUILDARCH = s390x ]; then
LIBDIR=lib64
else
mkdir -p $KERNELBASE
mkdir -p $INSTIMGPATH
- FONTARCH=${BASEARCH}
- if [ $FONTARCH = i686 ]
- then
- FONTARCH=i386
- fi
# Stuff that we need
- TRIMPCITABLE=$IMGPATH/usr/lib/anaconda-runtime/trimpcitable
- TRIMMODMAP=$IMGPATH/usr/lib/anaconda-runtime/trimmodmap
+ TRIMMODALIAS=$IMGPATH/usr/lib/anaconda-runtime/trimmodalias
TRIMPCIIDS=$IMGPATH/usr/lib/anaconda-runtime/trimpciids
- TRIMUSBMAP=$IMGPATH/usr/lib/anaconda-runtime/trimusbmap
GETKEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/getkeymaps
KEYMAPS=/tmp/keymaps-$BUILDARCH.$$
- SCREENFONT=$IMGPATH/usr/lib/anaconda-runtime/screenfont-${FONTARCH}.gz
+ SCREENFONT=$IMGPATH/usr/lib/anaconda-runtime/screenfont-${BASEARCH}.gz
GETMODDEPS=$IMGPATH/usr/lib/anaconda-runtime/moddeps
MODLIST=$IMGPATH/usr/lib/anaconda-runtime/modlist
MODINFO=$IMGPATH/usr/lib/anaconda-runtime/loader/module-info
LOADERBINDIR=$IMGPATH/usr/lib/anaconda-runtime/loader
BOOTDISKDIR=$IMGPATH/usr/lib/anaconda-runtime/boot
LANGTABLE=$IMGPATH/usr/lib/anaconda/lang-table
- PCITABLE=$IMGPATH/usr/share/hwdata/pcitable
PCIIDS=$IMGPATH/usr/share/hwdata/pci.ids
+ XDRIVERS=$IMGPATH/usr/share/hwdata/videoaliases
+ XDRIVERDESCS=$IMGPATH/usr/share/hwdata/videodrivers
CACHE=$KERNELBASE/.cache
MODULESUSED=$KERNELBASE/modules-used
touch $MODULESUSED
- REQUIREMENTS="$TRIMPCITABLE $TRIMMODMAP $TRIMPCIIDS $PCITABLE $PCIIDS $GETMODDEPS $MODINFO
- $FILTERMODDEPS $LANGTABLE $GETKEYMAPS $TRIMUSBMAP"
+ REQUIREMENTS="$TRIMMODALIAS $TRIMPCIIDS $PCIIDS $XDRIVERDESCS $GETMODDEPS $MODINFO
+ $FILTERMODDEPS $LANGTABLE $GETKEYMAPS"
dieLater=
for n in $REQUIREMENTS; do
$FAKEARCH /sbin/depmod -a -F $KERNELROOT/boot/System.map-$version \
-b $KERNELROOT $version
- mv $KERNELROOT/lib/modules/$version/modules.pcimap $MODMAPS
- mv $KERNELROOT/lib/modules/$version/modules.usbmap $USBMAPS
+ mv $KERNELROOT/lib/modules/$version/modules.alias $MODALIAS
cat $KERNELROOT/lib/modules/$version/modules.dep | $FILTERMODDEPS > $final
}
mv $final.foo $final
}
-padfile () {
- PS_FILE=$1
- PS_SIZE=$2
-
- size=`cat $PS_FILE | wc -c`
- filler=`expr $PS_SIZE "*" 1024 - $size`
- dd if=/dev/zero bs=$filler count=1 >> $PS_FILE 2> /dev/null
-}
-
intcopymodules () {
dir=$2
MMB_DIR=$1
MMB_MODULESET=$(resdeps $2)
- rm -rf $MMB_DIR/modules $MMB_DIR/$MMB_NAME $MMB_DIR/modules.dep \
+ rm -rf $MMB_DIR/modules $MMB_DIR/$MMB_NAME $MMB_DIR/modules.dep $MMB_DIR/modules.alias \
$MMB_DIR/modules.pcimap $MMB_DIR/pcitable $MMB_DIR/$MMB_MODINFO \
$MMB_DIR/pci.ids
mkdir -p $MMB_DIR/modules
getmoddeps "$(find . -name *.ko)" ../modules.dep
- # create the pcitable
- $TRIMPCITABLE ignore $(find . -name *.ko -exec basename {} \;) < $PCITABLE > ../pcitable
+ # create the modules.alias file
+ $TRIMMODALIAS $(find . -name *.ko -exec basename {} \;) < $MODALIAS > ../modules.alias
- # create the modules.pcimap
- $TRIMMODMAP $PCITABLE $(find . -name *.ko -exec basename {} \;) < $MODMAPS > ../modules.pcimap
-
- # create the modules.usbmap
- $TRIMUSBMAP $(find . -name *.ko -exec basename {} \;) < $USBMAPS > ../modules.usbmap
- # remove a zero-byte modules.usbmap
- if [ "$(ls -s ../modules.usbmap |cut -f 1 -d ' ')" = "0" ]; then
- rm -f ../modules.usbmap
- fi
- # create the pci.ids
+ # 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 ../pcitable ../modules.pcimap > ../pci.ids
+ $TRIMPCIIDS ../modules.alias $XDRIVERS/* > ../pci.ids
if [ -n "$MMB_DD" ]; then
echo $MMB_DD > $MMB_DIR/rhdd
popd > /dev/null
}
-makemainmodules() {
- modlist=`expandModuleSet "$1"`
-
- if [ -n "$2" ]; then
- extraargs="--name $2"
- fi
-
- rm -rf $FULLMODPATH
- rm -rf $FINALFULLMODPATH
-
- if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
- mkdir -p $KERNELROOT/lib/modules/misc
- find $KERNELROOT/lib/modules/*/kernel/drivers/s390/ -name "*.ko" \
- -exec cp -f {} $KERNELROOT/lib/modules/misc \;
- fi
- makemoduleball $extraargs $FULLMODPATH "$modlist"
- cp -ar $FULLMODPATH $FINALFULLMODPATH
- rm -rf $FULLMODPATH
-}
-
makeproductfile() {
root=$1
chmod 600 $MBD_DIR/etc/ssh/sshd_config
# copy in the binaries
- cp -f $IMGPATH/bin/login $MBD_DIR/sbin/login
+ cp -f $IMGPATH/usr/bin/login $MBD_DIR/sbin/login
cp -f $IMGPATH/usr/sbin/sshd $MBD_DIR/sbin/sshd
cp -f $IMGPATH/usr/sbin/xinetd $MBD_DIR/sbin/xinetd
cp -f $IMGPATH/usr/sbin/in.telnetd $MBD_DIR/sbin/in.telnetd
- cp -f $IMGPATH/bin/bash $MBD_DIR/sbin/bash
- cp -f $IMGPATH/bin/busybox $MBD_DIR/sbin/busybox
+ cp -f $IMGPATH/usr/bin/bash $MBD_DIR/sbin/bash
+ cp -f $IMGPATH/usr/bin/busybox $MBD_DIR/sbin/busybox
# make some symlinks
- ln -sf bash $MBD_DIR/bin/sh
+ ln -sf bash $MBD_DIR/sbin/sh
(cd $MBD_DIR/sbin;
set $(./busybox 2>&1| awk '/^\t([[:alnum:]_\[]+,)+/' | sed 's/,//g' | sed 's/ +//');
while [ -n "$1" ]; do
makeinitrd() {
EXTRAINITRDPATH=""
- PCMCIA=""
INITRDSIZE=""
KEEP=""
PADSIZE=""
MODULEBALLNAME="modules.cgz"
MYLANGTABLE=$LANGTABLE
MYLOADERTR=loader.tr
- BOGL=yes
while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
if [ $1 = "--initrdto" ]; then
EXTRAINITRDPATH=$2
shift; shift
continue
- elif [ $1 = "--pcmcia" ]; then
- PCMCIA=yes
- shift
- continue
elif [ $1 = "--keep" ]; then
KEEP=yes
shift
MODULEBALLNAME=$2
shift; shift
continue
- elif [ $1 = "--nobogl" ]; then
- BOGL=""
- shift
- continue
fi
echo "Unknown option passed to makeinitrd"
exit 1
echo $arch > $MBD_DIR/etc/arch
install -s -m 755 $LOADERBINDIR/$LOADERBIN $MBD_DIR/sbin/loader
+ strip $MBD_DIR/sbin/loader
if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then
install -s -m 755 $LOADERBINDIR/init $MBD_DIR/sbin
+ strip $MBD_DIR/sbin/init
ln -s ./init $MBD_DIR/sbin/shutdown
ln -s ./init $MBD_DIR/sbin/halt
ln -s ./init $MBD_DIR/sbin/poweroff
makeproductfile $MBD_DIR
- if [ -n "$BOGL" ]; then
- install -m 644 $LOADERBINDIR/font.bgf.gz $MBD_DIR/etc
- fi
-
- if [ -n "$PCMCIA" ]; then
- mkdir -p $MBD_BOOTTREE/etc
- cp -a $KERNELROOT/etc/pcmcia $MBD_DIR/etc
- fi
-
for n in insmod rmmod modprobe; do
ln -s loader $MBD_DIR/sbin/$n
done
ln -s /sbin/init $MBD_DIR/init
ln -s /proc/mounts $MBD_DIR/etc/mtab
ln -s sbin $MBD_DIR/bin
+ mkdir -p $MBD_DIR/var/lib
+ ln -s ../../tmp $MBD_DIR/var/lib/xkb
# s390/s390x need sshd/telnet setup
if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
fi
}
-makebootdisk() {
- BOOTDISKSIZE=""
- EXTRAKERNELPATH=""
- INITRDFLAGS=""
- MBD_FILENAME=""
- INITRDFILE=""
- while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
- if [ $1 = "--bootdisksize" ]; then
- BOOTDISKSIZE=$2
- shift; shift
- continue
- elif [ $1 = "--kernelto" ]; then
- EXTRAKERNELPATH=$2
- shift; shift
- continue
- elif [ $1 = "--initrdflags" ]; then
- INITRDFLAGS=$2
- shift; shift
- continue
- elif [ $1 = "--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
-
- # provided by the mk-image.$ARCH file
- prepareBootImage
-
- left=$(df $MBD_BOOTTREE | tail +2)
- left=$(echo $left | awk '{print $4'})
-
- umount $MBD_BOOTTREE
-
- if [ -n "$EXTRAKERNELPATH" ]; then
- mkdir -p `dirname $EXTRAKERNELPATH`
- cp -f $KERNELROOT/$KERNELDIR/${KERNELNAME}-* $EXTRAKERNELPATH
- fi
-
- mkdir -p `dirname $MBD_FILENAME`
- rm -f $MBD_FILENAME
- mv -f $MBD_TMPIMAGE $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)"
-}
-
makeinstimage () {
imagename=$1
- modlist=$(expandModuleSet "$2")
+ type=$2
tmpdir=/tmp/instimage.dir.$$
rm -rf $tmpimage $tmpdir
mkdir -p $tmpdir
(cd $INSTIMGTEMPLATE; find . | cpio --quiet -p $tmpdir)
- if [ "$BUILDARCH" = "s390" -o "$BUILDARCH" = "s390x" ]; then
- mkdir -p $KERNELROOT/lib/modules/misc
- find $KERNELROOT/lib/modules/*/kernel/drivers/s390/ -name "*.ko" \
- -exec cp -f {} $KERNELROOT/lib/modules/misc \;
- fi
- makemoduleball $tmpdir/modules "$modlist"
makeproductfile $tmpdir
- echo "Running mkcramfs $CRAMBS $tmpdir $INSTIMGPATH/${imagename}2.img"
- mkcramfs $CRAMBS $tmpdir /tmp/${imagename}2.img.$$
+ if [ -z "$type" -o "$type" = "cramfs" ]; then
+ echo "Running mkcramfs $CRAMBS $tmpdir $INSTIMGPATH/${imagename}2.img"
+ mkfs.cramfs $CRAMBS $tmpdir /tmp/${imagename}2.img.$$
+ elif [ "$type" = "squashfs" ]; then
+ echo "Running mksquashfs $tmpdir /tmp/${imagename}2.img -all-root"
+ mksquashfs $tmpdir /tmp/${imagename}2.img.$$ -all-root
+ chmod 0644 /tmp/${imagename}2.img.$$
+ fi
cp /tmp/${imagename}2.img.$$ $INSTIMGPATH/${imagename}2.img
size=$(ls -l $INSTIMGPATH/${imagename}2.img | awk '{print $5}')
size=$(expr $size / 1024)
rm -rf $tmpdir
}
-findloopdevice () {
- if [ -z "$1" ]; then
- echo "usage: findloopdevice image"
- exit 1
- fi
-
- for devnum in 0 1 2 3 4 5 6 7 8; do
- if losetup /dev/loop$devnum $1 2>/dev/null ; then break; fi
- done
- echo /dev/loop$devnum
-}
-
makemainimage () {
imagename=$1
type=$2
makeproductfile $mmi_mntpoint
umount $mmi_mntpoint
rmdir $mmi_mntpoint
+ elif [ $type = "squashfs" ]; then
+ makeproductfile $IMGPATH
+ echo "Running mksquashfs $IMGPATH $mmi_tmpimage -all-root"
+ mksquashfs $IMGPATH $mmi_tmpimage -all-root
+ chmod 0644 $mmi_tmpimage
+ SIZE=$(expr `cat $mmi_tmpimage | wc -c` / 1024)
elif [ $type = "cramfs" ]; then
makeproductfile $IMGPATH
echo "Running mkcramfs $CRAMBS $IMGPATH $mmi_tmpimage"
- mkcramfs $CRAMBS $IMGPATH $mmi_tmpimage
+ mkfs.cramfs $CRAMBS $IMGPATH $mmi_tmpimage
SIZE=$(expr `cat $mmi_tmpimage | wc -c` / 1024)
fi
rm $mmi_tmpimage
}
-makedriverdisk () {
- PADSIZE=""
-
- while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
- if [ $1 = "--padsize" ]; then
- PADSIZE=$2
- shift; shift
- continue
- fi
-
- echo "Unknown option passed to makedriverdisk"
- exit 1
- done
-
- modlabel=$1
- diskname=$2
- modlist=$(expandModuleSet "$3")
- diskpath=/tmp/makedriverdisk.$$
-
- rm -rf $diskpath
- mkdir -p $diskpath
-
- makemoduleball --dd "$modlabel" $diskpath "$modlist"
-
- size=$(expr 60 + $(du -sk $diskpath | awk '{print $1}'))
- if [ $size -lt 57 ]; then
- size=64
- fi
-
- dd if=/dev/zero of=/tmp/$diskname.img bs=1k count=$size 2> /dev/null
- /sbin/mke2fs -q -F -i 4096 /tmp/$diskname.img > /dev/null 2>/dev/null
- /sbin/tune2fs -c0 -i0 /tmp/$diskname.img >/dev/null
- mkdir -p /tmp/mkdd.$$
- mount -t ext2 -o loop /tmp/$diskname.img /tmp/mkdd.$$
- rmdir /tmp/mkdd.$$/lost+found
- (cd $diskpath; tar cSpf - .) | (cd /tmp/mkdd.$$; tar xSpf -)
- DIE=""
- diff -upr $diskpath /tmp/mkdd.$$ > /dev/null 2>&1
- if [ $? != 0 ]; then
- echo copy to disk image failed
- ls -l /tmp/mkdd.$$
- echo "disk size: $size"
- ls -l $diskpath
- DIE=1
- fi
- umount /tmp/mkdd.$$
- rm -rf /tmp/mkdd.$$
-
- if [ -n "$DIE" ]; then
- kill -9 $$
- fi
-
- cp /tmp/${diskname}.img $IMAGEPATH/${diskname}.img
- rm /tmp/${diskname}.img
- rm -rf $diskpath
-
- size=$(ls -l $IMAGEPATH/${diskname}.img | awk '{ print $5 }')
- size=$(expr $size / 1024)
-
- echo "Wrote $IMAGEPATH/${diskname}.img (${size}k)"
- echo "${diskname}.img - ${modlabel}" >> $IMAGEPATH/README
+makeSecondStage() {
+ echo "Building minstg.img"
+ makeinstimage "minstg" "squashfs"
+ [ $? = 0 ] || exit 1
+ echo "Building stage2.img"
+ makemainimage "stage2" "squashfs"
+ [ $? = 0 ] || exit 1
+}
- if [ -n "$PADSIZE" ]; then
- padfile $IMAGEPATH/${diskname}.img $PADSIZE
- fi
+doPostImages() {
+ /bin/true
}
# source the architecture specific mk-images file so we can call functions
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} = i686 ]; then
- source $TOPDIR/mk-images.i386
else
source $TOPDIR/mk-images.${BUILDARCH}
fi
# Find the kernel, unpack it, and verify it
-vertag="BOOT"
+kerneltags="kernel"
if [ "$BUILDARCH" = "ppc" -o "$BUILDARCH" = "ppc64" ]; then
arches="ppc64pseries ppc64 ppc64iseries ppc"
-elif [ "$BUILDARCH" = "i686" ]; then
- arches="i386 i586 i686"
+elif [ "$BUILDARCH" = "i386" ]; then
+ arches="i586"
+ kerneltags="kernel kernel-xenU"
+elif [ "$BUILDARCH" = "x86_64" ]; then
+ arches="x86_64"
+ kerneltags="kernel kernel-xenU"
else
arches="$BUILDARCH"
fi
+
foundakernel=""
for KERNELARCH in $arches; do
- for kernelvers in $vertag; do
- kpackage=$($LATEST $KERNELPATH kernel-$kernelvers)
- if [ ! -f "$kpackage" ]; then
- echo "kernel-$kernelvers does not exist for $KERNELARCH -- using kernel package"
- kpackage=$($LATEST $KERNELPATH kernel)
- kernelvers=""
- fi
-
+ for kernelvers in $kerneltags; do
+ kpackage=$(findPackage $KERNELPATH $kernelvers)
if [ "$KERNELARCH" = "i586" -a ! -f "$kpackage" ]; then
echo "No i586 kernel, trying i686..."
KERNELARCH="i686"
- kpackage=$($LATEST $KERNELPATH kernel)
+ kpackage=$(findPackage $KERNELPATH $kernelvers)
fi
if [ ! -f "$kpackage" ]; then
- echo "kernel doesn't exist for $KERNELARCH. skipping arch"
+ echo "kernel ($kernelvers) doesn't exist for $KERNELARCH. skipping"
continue
fi
KERNELROOT=$KERNELBASE/$KERNELARCH
- mkdir -p $KERNELROOT
+ mkdir -p $KERNELROOT/lib/modules/misc
foundakernel="yes"
- ppackage=$($LATEST $KERNELPATH hwdata)
- if [ ! -f "$ppackage" ]; then
- ppackage=""
- fi
+ if [ "${kernelvers}" = "kernel-xenU" ]; then kerneltag="xenU" ; fi
- version=$(rpm --nodigest --nosignature --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)${kernelvers}
+ version=$(rpm --nodigest --nosignature --qf '%{VERSION}-%{RELEASE}' -qp $kpackage)${kerneltag}
arch=$(rpm --nodigest --nosignature --qf '%{ARCH}\n' -qp $kpackage)
echo "unpacking $kpackage.$arch"
rpm2cpio $kpackage | (cd $KERNELROOT; cpio --quiet -iumd)
-# mv -f $KERNELROOT/usr/lib/bootdisk/lib $KERNELROOT/
-# mv -f $KERNELROOT/usr/lib/bootdisk/boot $KERNELROOT/
-# rm -rf $KERNELROOT/usr/lib/bootdisk
- mkdir -p $KERNELROOT/lib/modules/misc
- for kaddpackage in pcmcia
- do
- thepackage=$($LATEST $KERNELPATH kernel-${kaddpackage})
- if [ -f $thepackage ]; then
- echo "unpacking $thepackage.$arch"
- rpm2cpio $thepackage | (cd $KERNELROOT; cpio --quiet -iumd)
- fi
- done
- if [ ! -z $ppackage ]; then
- rpm2cpio $ppackage | (cd $KERNELROOT; cpio --quiet -iumd etc/pcmcia/* ./etc/pcmcia/*)
- fi
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/etc/pcmcia/config ]; then
- # This gets everything mentioned in /etc/pcmcia/config. We probably
- # want to do some module-info stuff here too
- PCMCIAMODULES=$((perl -e 'while (<>) { s/^.*class.*(network|scsi|ide).*module +"// || next; s/[" ]//g; s/,/\n/g; print }' $KERNELROOT/etc/pcmcia/config | sed 's/\.ko//g') | sort -u)
- fi
-
allmods=$(find $KERNELROOT/lib/modules/$version -name *.ko)
rundepmod "$allmods" $MODDEPS
done
done
+doPostImages
+
# do some clean up before making the cramfs of the second stage
rm -rf $INSTIMGTEMPLATE/usr/lib/anaconda-runtime $INSTIMGTEMPLATE/usr/lib/syslinux $IMGPATH/usr/lib/syslinux
echo "ARCH must be set" >&2
exit 1
fi
- LATEST="latest --arch $ARCH"
fi
PACKAGEDIR=$1
PACKAGEPATH=$1
PACKAGES="$2"
- if [ -n "$LATEST" ]; then
- $LATEST $PACKAGEPATH $PACKAGES
- if [ $? != 0 ]; then
- $LATEST $PACKAGEPATH $PACKAGES >&2
- kill -9 $$
- fi
-
- return
- fi
-
PATTERN=""
PACKAGEFILES=""
for PKG in $PACKAGES; do
[ -d $PKGDEST ] || die "ERROR: directory missing: $PKGDEST"
for n in $RPMS; do
[ -n "$DEBUG" ] && echo -ne "\rExpanding packages..." $(basename $n)
- if [ "$(rpm --nosignature --nodigest -qp --qf '%{NAME}' $n)" = "glibc-misc" ] ; then
+ if [ "$(rpm --nosignature --nodigest -qp --qf '%{NAME}' $n)" = "tzdata" ] ; then
TZDATA=$n
fi
rpm2cpio $n | (cd $PKGDEST; cpio -E $KEEPFILES --quiet -iumd)
mkdir -p $DEST
mkdir -p $DESTGR
-# glibc-misc for timezone data (was tzdata)
-# libtermcap
-
-PACKAGES="acl anaconda anaconda-runtime ash attr
- bash beecrypt bogl bogl-bterm busybox-anaconda bzip2 bzip2-libs
- device-mapper dlm dmapi dosfstools
- e2fsprogs elfutils-libelf expat
- fedora-logos
- glib2 glibc glibc-misc
- hdparm hwdata
- jfsutils
- kudzu
- libgcc libselinux libsepol libstdc++ libxml2 lvm2
- mdadm
- ncurses neon newt
- openssl
- parted pciutils policy policycoreutils popt procps python python-booty python-libs python-libxml2 python-parted python-rhpl python-rpm python-urlgrabber python-xf86config
- readline reiserfsprogs rpm rpm-lib
- sed setup slang sqlite
- util-linux
- xfsdump xfsprogs
- zlib
- X11 X11-tools
- "
-
-if [ $ARCH = i686 -o $ARCH = x86_64 ]; then
- PACKAGES="$PACKAGES pcmcia-cs"
+PACKAGES="glibc glibc-common setup openssl python newt slang libselinux
+ libsepol libtermcap zlib ash e2fsprogs util-linux raidtools popt
+ procps rpm rpm-libs XFree86 Xconfigurator anaconda tzdata
+ anaconda-runtime kudzu hwdata bzip2 beecrypt mdadm libsemanage
+ bzip2-libs dosfstools pciutils reiserfs-utils parted sed
+ busybox-anaconda rpm-python booty hdparm lvm2 beecrypt device-mapper
+ rhpl pyxf86config libxml2 libxml2-python glib2 sqlite neon
+ elfutils-libelf krb5-libs convertdb1 jfsutils
+ xfsprogs xfsdump dmapi libacl libattr attr acl python-urlgrabber
+ policy policycoreutils pyparted xorg-x11 selinux-policy-targeted
+ libstdc++ expat libgcc readline ncurses yum python-sqlite
+ python-elementtree pykickstart e2fsprogs-libs iscsi-initiator-utils
+ db4"
+
+if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
+ PACKAGES="$PACKAGES pcmciautils kernel-utils"
fi
if [ $ARCH = ia64 ]; then
XFree86-libs strace xorg-x11-xauth xorg-x11-libs"
fi
+if [ $ARCH != s390 -a $ARCH != s390x ]; then
+ PACKAGES="$PACKAGES python-pyblock"
+fi
+
if [ $ARCH = ppc -o $ARCH = ppc64 ]; then
- PACKAGES="$PACKAGES kernel-pcmcia-cs pdisk yaboot hfsutils"
+ PACKAGES="$PACKAGES pcmciautils pdisk yaboot hfsutils"
fi
# xpm is missing
#
# Extra stuff we want for rescue mode should go in PACKAGESRESCUE
#
-PACKAGESGR="acl anaconda anaconda-help anaconda-images attr audit-libs
- bash bogl-bterm bogl-devel
- comps-extras coreutils cpio
- dmapi
- e2fsprogs expat
- fedora-logos fontconfig freetype
- gdk-pixbuf glibc glibc-misc gnome-themes gpm gtk+2 gtk2-engines
- libacl libattr libart_lgpl libgcc libglade2 libgnomecanvas libjpeg libpng libstdc++
- pam policy policycoreutils popt prelink procps python-gnome-canvas python-pygtk python-pygtk-libglade python-rhpl
- redhat-artwork reiserfsprogs rpm rpm-libs
- selinux-policy-targeted specspo system-config-keyboard system-config-date
- tcp_wrappers
- util-linux
- vnc-server
- xfsprogs xfsdump
- X11 X11-fonts-100dpi X11-fonts-100dpi-ISO8859-15 X11-fonts-100dpi-ISO8859-2 X11-fonts-100dpi-ISO8859-9 X11-fonts-75dpi X11-fonts-75dpi-ISO8859-15 X11-fonts-75dpi-ISO8859-2 X11-fonts-75dpi-ISO8859-9 X11-fonts-base X11-fonts-ISO8859-15 X11-fonts-ISO8859-2 X11-fonts-ISO8859-9 X11-fonts-KOI8-R X11-libs X11-xfs Xconfigurator
- "
+PACKAGESGR="anaconda XFree86-libs libpng XFree86-75dpi-fonts
+ XFree86-ISO8859-2-75dpi-fonts gtk2 libglade2
+ XFree86-ISO8859-9-75dpi-fonts
+ XFree86-100dpi-fonts fonts-ISO8859-2 fonts-ISO8859-9
+ XFree86-xfs e2fsprogs coreutils glibc glibc-common
+ popt specspo util-linux rpm rpm-libs tzdata
+ procps bash cpio gpm pygtk2-libglade
+ XFree86 Xconfigurator pygtk2 gdk-pixbuf
+ XFree86-KOI8-R XFree86-KOI8-R-75dpi-fonts pam libpixman
+ reiserfs-utils atk pango freetype gnome-python2-canvas cairo
+ libgnomecanvas libart_lgpl libgcc libacl libattr libstdc++ expat
+ anaconda-images anaconda-help XFree86-base-fonts
+ ttfonts-ko taipeifonts XFree86-ISO8859-15-75dpi-fonts rhpl
+ system-config-keyboard Xft fontconfig gtk2-engines gnome-themes
+ gtkhtml2 gnome-python2-gtkhtml2 gail
+ ttfonts-ja ttfonts-zh_TW bitmap-fonts-cjk urw-fonts fonts-arabic
+ comps-extras XFree86-libs-data convertdb1 fonts-bengali
+ vnc-server libjpeg tcp_wrappers system-config-date
+ xfsprogs xfsdump dmapi attr acl policy policycoreutils
+ selinux-policy-targeted ttfonts-zh_CN redhat-artwork audit-libs
+ xorg-x11-libs xorg-x11-ISO8859-2-75dpi-fonts
+ xorg-x11-ISO8859-9-75dpi-fonts xorg-x11-100dpi-fonts
+ xorg-x11-xfs xorg-x11 xorg-x11-KOI8-R xorg-x11-KOI8-R-75dpi-fonts
+ xorg-x11-base-fonts xorg-x11-ISO8859-15-75dpi-fonts
+ fonts-xorg-ISO8859-2-75dpi fonts-xorg-ISO8859-15-75dpi
+ fonts-xorg-ISO8859-9-75dpi fonts-xorg-100dpi
+ fonts-xorg-KOI8-R fonts-xorg-KOI8-R-75dpi fonts-xorg-base
+ xorg-x11-base xorg-x11-ISO8859-15-75dpi system-logos
+ xorg-x11-libs-data xorg-x11-xfs prelink redhat-logos fedora-logos
+ ttfonts-ta ttfonts-bn ttfonts-gu ttfonts-hi ttfonts-pa
+ fonts-japanese fonts-chinese fonts-korean fonts-indic
+ fonts-gujarati fonts-hindi fonts-punjabi fonts-tamil synaptics
+ firstboot rhpxl pycairo pirut bitstream-vera-fonts"
+
#
# stuff ONLY included for rescue mode
#
# these packages are combined with the PACKAGES and PACKAGESGR for big stage 2
#
PACKAGESRESCUE="bzip2 bzip2-libs dump
- findutils ftp gzip iputils joe krb5-libs less man man-config man-pages
+ findutils ftp gzip iputils joe krb5-libs less man
modutils mtools mt-st mtr net-tools open
- openssh openssh-clients pciutils rsh traceroute tar"
+ openssh openssh-clients pciutils rsh traceroute tar rsync"
-if [ $ARCH = i386 ]; then
- PACKAGESRESCUE="$PACKAGESRESCUE"
+if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
+ PACKAGESRESCUE="$PACKAGESRESCUE gpart grub"
fi
# turn off options we dont want, ie. set package list to something harmless
PACKAGESRESCUE="bash"
fi
+# dmraid stuff
+if [ $ARCH != s390 -a $ARCH != s390x ]; then
+ PACKAGESRESCUE="$PACKAGESRESCUE device-mapper dmraid"
+fi
+
#
# add bootloader for particular arch
#
PACKAGESGR="$PACKAGESGR tilo silo"
fi
-if [ $ARCH = i686 -o $ARCH = x86_64 ]; then
+if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
PACKAGESGR="$PACKAGESGR syslinux memtest86+"
fi
PACKAGESGR="$PACKAGESGR fbset yaboot ppc64-utils"
fi
+# dogtail stuff...
+PACKAGESGR="$PACKAGESGR gail at-spi libbonobo ORBit2"
+
+# dmraid stuff
+if [ $ARCH != s390 -a $ARCH != s390x ]; then
+ PACKAGESGR="$PACKAGESGR python-pyblock"
+fi
+
+# modular xorg...
+XORGLIBS="libICE libSM libX11 libXcursor libXext libXfixes libXft libXi libxkbfile libXmu libXpm libXrandr libXrender libXt libXxf86misc libXaw liblbxutil libXfont libfontenc libXau libXdmcp libXfont libXinerama"
+XORGDRIVERS="xorg-x11-drv-acecad xorg-x11-drv-aiptek xorg-x11-drv-apm xorg-x11-drv-ark xorg-x11-drv-ati xorg-x11-drv-calcomp xorg-x11-drv-chips xorg-x11-drv-cirrus xorg-x11-drv-citron xorg-x11-drv-cyrix xorg-x11-drv-digitaledge xorg-x11-drv-dmc xorg-x11-drv-dummy xorg-x11-drv-dynapro xorg-x11-drv-elo2300 xorg-x11-drv-elographics xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-fpit xorg-x11-drv-glint xorg-x11-drv-hyperpen xorg-x11-drv-i128 xorg-x11-drv-i740 xorg-x11-drv-i810 xorg-x11-drv-jamstudio xorg-x11-drv-joystick xorg-x11-drv-keyboard xorg-x11-drv-magellan xorg-x11-drv-magictouch xorg-x11-drv-mga xorg-x11-drv-microtouch xorg-x11-drv-mouse xorg-x11-drv-mutouch xorg-x11-drv-neomagic xorg-x11-drv-nsc xorg-x11-drv-nv xorg-x11-drv-palmax xorg-x11-drv-penmount xorg-x11-drv-rendition xorg-x11-drv-s3 xorg-x11-drv-s3virge xorg-x11-drv-savage xorg-x11-drv-siliconmotion xorg-x11-drv-sis xorg-x11-drv-sisusb xorg-x11-drv-spaceorb xorg-x11-drv-summa xorg-x11-drv-tdfx xorg-x11-drv-tek4957 xorg-x11-drv-trident xorg-x11-drv-tseng xorg-x11-drv-v4l xorg-x11-drv-vesa xorg-x11-drv-vga xorg-x11-drv-via xorg-x11-drv-vmware xorg-x11-drv-void xorg-x11-drv-voodoo"
+XORGFONTS="xorg-x11-fonts-75dpi xorg-x11-fonts-base xorg-x11-fonts-cyrillic xorg-x11-fonts-ISO8859-15-75dpi xorg-x11-fonts-ISO8859-1-75dpi xorg-x11-fonts-ISO8859-2-75dpi xorg-x11-fonts-ISO8859-9-75dpi xorg-x11-fonts-misc xorg-x11-fonts-ethiopic"
+XORG="$XORGLIBS $XORGDRIVERS $XORGFONTS xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-font-utils xorg-x11-xkb-utils xorg-x11-xkbdata xorg-x11-server-utils"
+
+PACKAGESGR="$PACKAGESGR $XORG"
+
+
#
# KEEPFILE is all files to keep from the packages in PACKAGES
#
bin/sed
etc/group
etc/passwd
+etc/iscsid.conf
+etc/pcmcia/*
etc/protocols
etc/services
etc/selinux/targeted/booleans
etc/selinux/targeted/policy/policy.*
-etc/selinux/targeted/contexts/files/file_contexts
+etc/selinux/targeted/contexts/files/*
+etc/selinux/targeted/contexts/*
+etc/selinux/targeted/*
+usr/share/selinux/targeted/*
etc/security/selinux/policy.*
etc/security/selinux/file_contexts
$LIBDIR/libc[-.]*
$LIBDIR/libblkid*
$LIBDIR/libcom_err*
$LIBDIR/libcrypt*
+$LIBDIR/libdb-*
$LIBDIR/libdevmapper*
$LIBDIR/libdl*
$LIBDIR/libe2p*
+$LIBDIR/libexpat*
$LIBDIR/libext2fs*
$LIBDIR/liblvm-10.so*
$LIBDIR/libgcc_s*
$LIBDIR/libnss_files*
$LIBDIR/libresolv*
$LIBDIR/libselinux*
+$LIBDIR/libsemanage*
$LIBDIR/libsepol*
$LIBDIR/libss*
$LIBDIR/libtermcap*
sbin/mkraid
sbin/mkswap
sbin/parted
+sbin/pcmcia-socket-startup
sbin/pdisk
sbin/probe
+sbin/reiserfstune
sbin/resize2fs
sbin/sfdisk
sbin/tune2fs
usr/sbin/xfs_db
usr/sbin/xfs_check
usr/sbin/xfs_copy
-usr/X11R6/share/Xconfigurator/MonitorsDB
+sbin/iscsid
+sbin/iscsiadm
usr/bin/python
usr/bin/python?.?
usr/bin/hmount
usr/lib/anaconda/*
usr/lib/anaconda/installclasses/*
usr/lib/anaconda/textw/*
-usr/$LIBDIR/bogl/font.bgf.gz
usr/lib/booty/*
usr/kerberos/$LIBDIR/libkrb5.so*
usr/kerberos/$LIBDIR/libkrb5support.so*
usr/$LIBDIR/gconv/ISO8859-1.so
usr/$LIBDIR/gconv/gconv-modules
usr/$LIBDIR/libbeecrypt*
-usr/$LIBDIR/libexpat*
usr/$LIBDIR/libglib*
usr/$LIBDIR/libgmodule*
usr/$LIBDIR/libgobject*
usr/$LIBDIR/libstdc++.so.6*
usr/$LIBDIR/libxml2.so*
usr/$LIBDIR/libz.*
-usr/$LIBDIR/libbogl.so*
usr/$LIBDIR/libreadline*
usr/$LIBDIR/python?.?/*
+usr/$LIBDIR/python?.?/email/*
usr/$LIBDIR/python?.?/site-packages/libxml2*
usr/$LIBDIR/python?.?/site-packages/*kudzu*
usr/$LIBDIR/python?.?/site-packages/rpmmodule.so
usr/$LIBDIR/python?.?/site-packages/partedmodule.so
usr/$LIBDIR/python?.?/site-packages/ixf86configmodule.so
usr/$LIBDIR/python?.?/site-packages/xf86config.py
+usr/$LIBDIR/python?.?/site-packages/*sqlite*
usr/$LIBDIR/python?.?/site-packages/rhpl
-usr/share/locale/*
+usr/$LIBDIR/python?.?/site-packages/cElementTree.so
+usr/$LIBDIR/python?.?/site-packages/block
+usr/lib/locale/*
+usr/lib/python?.?/site-packages/elementtree/*
+usr/lib/python?.?/site-packages/rpmUtils/*
usr/lib/python?.?/site-packages/urlgrabber/*
+usr/lib/python?.?/site-packages/yum/*
+usr/lib/python?.?/site-packages/repomd/*
+usr/lib/python?.?/site-packages/pirut/*
+usr/lib/python?.?/site-packages/pykickstart/*
usr/lib/rpm/macros
usr/lib/rpm/rpmpopt
usr/lib/rpm/rpmrc
usr/sbin/ofpath
usr/sbin/ybin
usr/sbin/load_policy
+usr/sbin/semodule
+usr/sbin/genhomedircon
+usr/sbin/setfiles
usr/sbin/lvm
usr/sbin/build-locale-archive
-usr/share/anaconda/locale-list
usr/share/anaconda/anaconda.conf
+usr/share/selinux/targeted/base.pp
usr/share/terminfo/b/bterm
usr/share/terminfo/l/linux
usr/share/terminfo/v/vt100
usr/share/terminfo/v/vt100-nav
-usr/share/hwdata/pcitable
usr/share/hwdata/pci.ids
-usr/share/hwdata/Cards
+usr/share/hwdata/videoaliases
+usr/share/hwdata/videoaliases/*
+usr/share/hwdata/videodrivers
usr/share/hwdata/MonitorsDB
-usr/share/rhpl/extramodes
-usr/share/rhpl/vesamodes
EOF
if [ $ARCH = s390 -o $ARCH = s390x ]; then
lib/security
$LIBDIR/security/pam_*
usr/$LIBDIR/libwrap.so*
-usr/X11R6/$LIBDIR/libXmuu.so*
-usr/X11R6/$LIBDIR/libX11.so*
-usr/X11R6/$LIBDIR/libXext.so*
-usr/X11R6/$LIBDIR/libXxf86misc.so*
-usr/X11R6/bin/xauth
+usr/$LIBDIR/libXmuu.so*
+usr/$LIBDIR/libX11.so*
+usr/$LIBDIR/libXext.so*
+usr/$LIBDIR/libXxf86misc.so*
+usr/bin/xauth
EOF
fi
sbin/e2fsck
sbin/e2label
sbin/reiserfsck
+sbin/reiserfstune
sbin/fsck
sbin/fsck.ext2
sbin/fsck.ext3
sbin/parted
sbin/silo
sbin/tune2fs
-usr/X11R6/bin/XFree86
-usr/X11R6/bin/Xorg
-usr/X11R6/bin/setxkbmap
-usr/X11R6/bin/xsetroot
-usr/X11R6/lib/X11/XKeysymDB
-usr/X11R6/lib/X11/fonts/misc/6x13*
-usr/X11R6/lib/X11/fonts/misc/fonts*
-usr/X11R6/lib/X11/fonts/misc/cursor*
-usr/X11R6/lib/X11/fonts/misc/olcursor*
-usr/X11R6/lib/X11/fonts/Type1/l047013t*
-usr/X11R6/lib/X11/fonts/Type1/*
-usr/X11R6/lib/X11/locale/*
-usr/X11R6/lib/X11/rgb*
-usr/X11R6/lib/X11/xkb/*
-usr/X11R6/lib/X11/xserver/SecurityPolicy
-usr/X11R6/$LIBDIR/libICE*
-usr/X11R6/$LIBDIR/libSM*
-usr/X11R6/$LIBDIR/libXaw.so*
-usr/X11R6/$LIBDIR/libX11*
-usr/X11R6/$LIBDIR/libXcursor*
-usr/X11R6/$LIBDIR/libXext*
-usr/X11R6/$LIBDIR/libXfixes*
-usr/X11R6/$LIBDIR/libXft*
-usr/X11R6/$LIBDIR/libXi*
-usr/X11R6/$LIBDIR/libxkbfile*
-usr/X11R6/$LIBDIR/libXmu*
-usr/X11R6/$LIBDIR/libXpm*
-usr/X11R6/$LIBDIR/libXrandr*
-usr/X11R6/$LIBDIR/libXrender*
-usr/X11R6/$LIBDIR/libXt*
-usr/X11R6/$LIBDIR/libXxf86misc*
-usr/X11R6/$LIBDIR/modules/*
-usr/X11R6/share/Xconfigurator/pixmaps/*
+usr/bin/Xorg
+usr/bin/setxkbmap
+usr/bin/xkbcomp
+usr/share/X11/XKeysymDB
+usr/share/X11/fonts/misc/6x13*
+usr/share/X11/fonts/misc/fonts*
+usr/share/X11/fonts/misc/cursor*
+usr/share/X11/fonts/misc/olcursor*
+usr/share/X11/fonts/Type1/l047013t*
+usr/share/X11/fonts/Type1/*
+usr/share/X11/fonts/TTF/GohaTibebZemen.ttf
+usr/share/X11/locale/*
+usr/share/X11/rgb*
+usr/share/X11/xkb/*
+usr/$LIBDIR/xserver/SecurityPolicy
+usr/$LIBDIR/libICE*
+usr/$LIBDIR/libSM*
+usr/$LIBDIR/libXaw.so*
+usr/$LIBDIR/libX11*
+usr/$LIBDIR/libXcursor*
+usr/$LIBDIR/libXext*
+usr/$LIBDIR/libXfixes*
+usr/$LIBDIR/libXft*
+usr/$LIBDIR/libXi*
+usr/$LIBDIR/libxkbfile*
+usr/$LIBDIR/libXmu*
+usr/$LIBDIR/libXpm*
+usr/$LIBDIR/libXrandr*
+usr/$LIBDIR/libXrender*
+usr/$LIBDIR/libXt*
+usr/$LIBDIR/libXxf86misc*
+usr/$LIBDIR/liblbxutil*
+usr/$LIBDIR/libXfont*
+usr/$LIBDIR/libfontenc*
+usr/$LIBDIR/libXau*
+usr/$LIBDIR/libXdmcp*
+usr/$LIBDIR/xorg/modules/*
+usr/$LIBDIR/xorg/modules/input/*
usr/bin/chattr*
usr/bin/fc-cache
usr/bin/gtk-query*
usr/bin/vncconfig
usr/bin/vncpasswd
usr/bin/reduce-font
-usr/bin/bdftobogl
usr/lib/anaconda/iw
-usr/lib/bogl/font.bdf.gz
usr/$LIBDIR/gconv/*
+usr/$LIBDIR/gdk-pixbuf/loaders/*xpm*
usr/$LIBDIR/gdk-pixbuf/loaders/*png*
usr/$LIBDIR/gdk-pixbuf/loaders/*la*
usr/$LIBDIR/gtk-2.0/*/engines/libclearlooks.so
+usr/$LIBDIR/gtk-2.0/*/loaders/*xpm*
usr/$LIBDIR/gtk-2.0/*/loaders/*png*
usr/$LIBDIR/gtk-2.0/*/loaders/*la*
usr/$LIBDIR/gtk-2.0/immodules/
usr/$LIBDIR/libart*
usr/$LIBDIR/libatk*
usr/$LIBDIR/libaudio*
+usr/$LIBDIR/libpixman*
+usr/$LIBDIR/libcairo*
usr/$LIBDIR/libesd*
usr/$LIBDIR/libfontconfig*
usr/$LIBDIR/libfreetype*
+usr/$LIBDIR/libgailutil*
usr/$LIBDIR/libgdk*
usr/$LIBDIR/libglade*
usr/$LIBDIR/libgnomecanvas*
usr/$LIBDIR/libstdc++.so.*
usr/$LIBDIR/libwrap*
usr/$LIBDIR/pango/*
+usr/$LIBDIR/python?.?/site-packages/cairo/*
usr/$LIBDIR/python?.?/site-packages/gtk*/gtk/*
+usr/$LIBDIR/python?.?/site-packages/gtk*/*
usr/$LIBDIR/rpm/rpmpopt
usr/lib/syslinux/*
usr/lib/yaboot/*
+usr/lib/python?.?/site-packages/rhpxl/*
usr/sbin/chroot
usr/sbin/ddcprobe
usr/sbin/fbset
usr/sbin/prelink
usr/sbin/smartctl
usr/share/anaconda/*
+usr/share/firstboot/firstboot_module_window*
usr/share/icons/default/*
usr/share/icons/gnome/cursors/*
usr/share/icons/gnome/*/stock/*
usr/share/icons/gnome/index.theme
+usr/share/icons/Bluecurve/cursors/*
+usr/share/icons/Bluecurve/*/stock/*
+usr/share/icons/Bluecurve/index.theme
+usr/share/fonts/bitstream-vera/Vera.ttf
+usr/share/fonts/bitstream-vera/VeraBd.ttf
+usr/share/fonts/bitstream-vera/VeraMono.ttf
usr/share/fonts/default/Type1/n019003l*
usr/share/fonts/default/Type1/n019004l*
usr/share/fonts/default/Type1/n019023l*
usr/share/fonts/default/Type1/n021023l*
usr/share/fonts/default/Type1/n021024l*
usr/share/fonts/korean/TrueType/dotum.ttf
-usr/share/fonts/japanese/TrueType/kochi-gothic-subst.ttf
-usr/share/fonts/chinese/TrueType/gbsn00lp.ttf
-usr/share/fonts/chinese/TrueType/bsmi00lp.ttf
+usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
+usr/share/fonts/chinese/TrueType/uming*.ttf
usr/share/fonts/bengali/MuktiNarrow.ttf
usr/share/fonts/arabic/KacstFarsi.ttf
usr/share/fonts/arabic/KacstQura.ttf
usr/share/locale/*/LC_MESSAGES/gtk20.mo
usr/share/locale/*/LC_MESSAGES/libc.mo
usr/share/locale/*/LC_MESSAGES/rhpl.mo
+usr/share/locale/*/LC_MESSAGES/rhpxl.mo
usr/share/locale/*/LC_MESSAGES/parted.mo
+usr/share/locale/*/LC_MESSAGES/pirut.mo
+usr/share/pirut/*
usr/share/pixmaps/comps/*.png
usr/share/pixmaps/gnome-default-dlg.png
usr/share/pixmaps/gnome-error.png
usr/share/pixmaps/gnome-warning.png
usr/share/pixmaps/no.xpm
usr/share/pixmaps/yes.xpm
-usr/share/ppc64-utils/zImage.lds
+usr/share/ppc64-utils/*
usr/share/system-config-keyboard/*
+usr/share/system-config-date/*
usr/share/terminfo/l/linux
usr/share/terminfo/x/xterm
usr/share/terminfo/v/vt100
usr/share/themes/Clearlooks/gtk-2.0/*
usr/share/themes/Clearlooks/index.theme
usr/share/vte/termcap/xterm
+usr/share/xorg/extramodes
+usr/share/xorg/vesamodes
usr/share/zoneinfo/zone.tab
EOF
usr/share/zoneinfo/US
"
-# sparc needs 100dpi fonts as well, otherwise
-# things look ugly
-
-if [ $ARCH = sparc ]; then
- cat >> $KEEPFILEGR <<-EOF
-usr/X11R6/lib/X11/fonts/100dpi/cour*
-usr/X11R6/lib/X11/fonts/100dpi/helv*
-usr/X11R6/lib/X11/fonts/100dpi/tim*
-usr/X11R6/lib/X11/fonts/100dpi/fonts*
-usr/share/fonts/ISO8859-2/100dpi/cour*
-usr/share/fonts/ISO8859-2/100dpi/helv*
-usr/share/fonts/ISO8859-2/100dpi/tim*
-usr/share/fonts/ISO8859-2/100dpi/fonts*
+# more dogtail stuff...
+cat >> $KEEPFILEGR <<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/libORBit*
+usr/$LIBDIR/libbonobo*
+usr/$LIBDIR/libspi*
+usr/$LIBDIR/libcspi*
+usr/$LIBDIR/bonobo/servers/*
+usr/$LIBDIR/libXevie*
EOF
-fi
+
+
#
# KEEPFILERESCUE is all files to keep from the packages in PACKAGESRESCUE
usr/bin/rcp
usr/bin/rlogin
usr/bin/rsh
+usr/bin/rsync
usr/bin/scp
usr/bin/sftp
usr/bin/shred
usr/sbin/traceroute
EOF
+# dmraid stuff
+if [ $ARCH != s390 -a $ARCH != s390x ]; then
+ cat >> $KEEPFILERESCUE <<-EOF
+sbin/dmraid.static
+sbin/dmsetup.static
+EOF
+fi
+
+if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
+ cat >> $KEEPFILERESCUE <<-EOF
+boot/grub
+sbin/grub
+sbin/grub-install
+sbin/grub-md5-crypt
+sbin/grub-set-default
+usr/bin/gpart
+usr/bin/mbchk
+usr/share/grub/*
+EOF
+fi
+
echo "Assembling package list..."
RPMS=$(prunePackageList $PACKAGEDIR "$PACKAGES")
[ -n "$DEBUG" ] && echo "RPMS are $RPMS"
mv $i/bin/sed $i/bin/sed_save
mv $i/bin/sort $i/bin/sort_save
done
+else
+ for i in $DEST $DESTGR; do
+ # there's never a case with only one of these...
+ if [ -f $i/sbin/dmraid.static ]; then
+ mv $i/sbin/dmraid.static $i/sbin/dmraid
+ mv $i/sbin/dmsetup.static $i/sbin/dmsetup
+ fi
+ done
fi
# change mtimes to 0 (to match what happens on the cramfs)
done
# Remove locales unused during the install
-cat $DESTGR/usr/lib/anaconda/lang-table* | gawk '
+cat $DESTGR/usr/lib/anaconda/lang-table* | awk '
{ gsub("-", "", $4);
print $4;
print gensub(/\..*$/,"","",$4);
if (split ($4, a, ".") > 1) {
print gensub(/\..*$/,tolower("." a[2]),"",$4);
};
- gsub("-", "", $7);
- print $7;
- print gensub(/\..*$/,"","",$7);
- print gensub(/_.*$/,"","",$7);
- if (split ($7, a, ".") > 1) {
- print gensub(/\..*$/,tolower("." a[2]),"",$7);
- };
+ print $2;
}
' | LC_ALL=C sort -u > $DESTGR/locales
-# lib not used below
-for p in share; do (
+for p in lib share; do (
cd $DESTGR/usr/$p/locale && {
ls | grep -v locale.alias | LC_ALL=C sort > $DESTGR/locales.list
LC_ALL=C comm -13 $DESTGR/locales $DESTGR/locales.list | xargs rm -rf
# now, create a locale archive and nuke the locale dirs since
# that ends up taking less space
-#for p in $DEST $DESTGR; do
-# echo "Building locale archive"
-# if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
-# runroot $COMPONENT --onlyone --arch $ARCH "/usr/sbin/chroot $p /usr/sbin/build-locale-archive"
-# else
-# /usr/sbin/chroot $p /usr/sbin/build-locale-archive
-# fi
-# mv $p/usr/lib/locale/locale-archive $p/usr/lib/locale-archive
-# rm -rf $p/usr/lib/locale/*
-# rm -f $p/usr/sbin/build-locale-archive
-# mv $p/usr/lib/locale-archive $p/usr/lib/locale/locale-archive
-#done
+for p in $DEST $DESTGR; do
+ echo "Building locale archive"
+ if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
+ runroot $COMPONENT --onlyone --arch $ARCH "/usr/sbin/chroot $p /usr/sbin/build-locale-archive"
+ else
+ /usr/sbin/chroot $p /usr/sbin/build-locale-archive
+ fi
+ mv $p/usr/lib/locale/locale-archive $p/usr/lib/locale-archive
+ rm -rf $p/usr/lib/locale/*
+ rm -f $p/usr/sbin/build-locale-archive
+ mv $p/usr/lib/locale-archive $p/usr/lib/locale/locale-archive
+done
# Remove unneeded XFree86 modules
rm -rf $DESTGR/usr/X11R6/$LIBDIR/modules/dri
# fixup joe links
ln -fs jpicorc $DESTGR/etc/joe/picorc
+ln -fs jpicorc $DESTGR/etc/joe/jnanorc
+ln -fs jpicorc $DESTGR/etc/joe/nanorc
ln -fs jmacsrc $DESTGR/etc/joe/emacsrc
ln -fs jmacs $DESTGR/usr/bin/emacs
ln -fs jpico $DESTGR/usr/bin/pico
+ln -fs jpico $DESTGR/usr/bin/nano
+
+# create selinux config
+if [ -e $DEST/etc/selinux/targeted ]; then
+ cat > $DEST/etc/selinux/config <<EOF
+SELINUX=permissive
+SELINUXTYPE=targeted
+EOF
+ cp $DEST/etc/selinux/config $DESTGR/etc/selinux/config
+fi
+
+cat > $DEST/etc/shells <<EOF
+/bin/sh
+EOF
echo "Creating nsswitch.conf"
cat > $DEST/etc/nsswitch.conf <<EOF
aliases: files
EOF
+cp $DEST/etc/shells $DESTGR/etc/shells
cp $DEST/etc/nsswitch.conf $DESTGR/etc/nsswitch.conf
# fixup man.config to point into /mnt/sysimage for rescue
rm -f $DESTGR/etc/man.config-old
fi
-echo "Creating bogl font..."
-OLDLANG=$LANG
-export LANG=en_US.UTF-8
-zcat $DESTGR/usr/lib/bogl/font.bdf.gz > $DESTGR/usr/lib/bogl/font.bdf
-(cat $DESTGR/usr/lib/anaconda-runtime/loader/unicode-linedraw-chars.txt ; for i in $(find $DESTGR/usr/share/locale -name '*.mo'); do msgunfmt $i 2>/dev/null | msgconv -t utf-8 -o - - ; done) | $DESTGR/usr/bin/reduce-font $DESTGR/usr/lib/bogl/font.bdf > $DESTGR/usr/lib/anaconda-runtime/loader/font-reduced.bdf
-$DESTGR/usr/bin/bdftobogl -b $DESTGR/usr/lib/anaconda-runtime/loader/font-reduced.bdf > $DESTGR/usr/lib/anaconda-runtime/loader/font.bgf
-rm -f $DESTGR/usr/lib/anaconda-runtime/loader/font-reduced.bdf $DESTGR/usr/lib/bogl/font.bdf $DESTGR/usr/bin/reduce-font $DESTGR/usr/bin/bdftobogl $DESTGR/usr/lib/bogl/font.bdf.gz
-gzip -9 -f $DESTGR/usr/lib/anaconda-runtime/loader/font.bgf
-export LANG=$OLDLANG
-
echo "Running mkfontdir..."
if [ -n "$NEEDGR" ]; then
- /usr/X11R6/bin/mkfontdir $DESTGR/usr/X11R6/lib/X11/fonts/*
- rm -f $DESTGR/usr/X11R6/bin/mkfontdir
+ mkfontdir $DESTGR/usr/share/X11/fonts/*
+fi
+
+echo "Creating SELinux policy..."
+if [ -x $DESTGR/usr/sbin/semodule -a -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
+ runroot $COMPONENT --onlyone --arch $ARCH "/usr/sbin/chroot $DESTGR /usr/sbin/semodule -b /usr/share/selinux/targeted/base.pp -n -s targeted"
+else
+ /usr/sbin/chroot $DESTGR /usr/sbin/semodule -b /usr/share/selinux/targeted/base.pp -n -s targeted
fi
+rm -rf $DEST/etc/selinux
+mkdir $DEST/etc/selinux
+cp -r $DESTGR/etc/selinux/* $DEST/etc/selinux/
echo "Getting pango modules"
if [ -n "$NEEDGR" ]; then
fi
# copy bootloader files for i386/x86_64
- if [ $ARCH = i386 -o $ARCH = i686 -o $ARCH = x86_64 ]; then
+ if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
if [ $p = $DESTGR ]; then
mkdir -p $p/usr/lib/anaconda-runtime/boot
cp -af $p/boot/memtest* $p/usr/lib/anaconda-runtime/boot
done
# nuke some python stuff we don't need
- for d in idle distutils email bsddb lib-old hotshot doctest.py pydoc.py site-packages/japanese site-packages/japanese.pth ; do
+ for d in idle distutils bsddb lib-old hotshot doctest.py pydoc.py site-packages/japanese site-packages/japanese.pth ; do
rm -rf $p/$d
done
if [ "$ARCH" != "s390" -a "$ARCH" != "s390x" ]; then
- (cd $p/lib && rm -f libnss_files.so.1 libnss_dns.so.1)
+ (cd $p/lib* && rm -f libnss_files.so.1 libnss_dns.so.1)
fi
if [ -d $DEST/usr/share/zoneinfo ]; then
echo "Creating debug dir"
for p in $DEST $DESTGR ; do
mkdir -p $p/usr/lib/debug
+ mkdir -p $p/usr/src/debug
done
if [ $ARCH = "alpha" ]; then
fi
# some python stuff we don't need for stage2
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/distutils/
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/lib-dynload/japanese
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/encodings/
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/compiler/
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/email/
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/curses/
-rm -f $DESTGR/usr/$LIBDIR/python?.?/site-packages/pydoc.py
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/distutils/
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/lib-dynload/japanese
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/encodings/
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/compiler/
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/email/test/
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/curses/
+rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/pydoc.py
# clean up tzdata
rm -rf $TZDIR
# this is only for the minimal second stage
echo "Cleaning ramdisk install images..."
rm -rf $DEST/usr/lib/anaconda-runtime
-
-if [ "$ARCH" != "s390" -a "$ARCH" != "s390x" ]; then
- if [ $NEEDGR ]; then
- # Xserver needs a place to put the compiled xkb maps.
- rm -rf $DESTGR/usr/X11R6/lib/X11/xkb/compiled
- ln -s /tmp $DESTGR/usr/X11R6/lib/X11/xkb/compiled
- fi
-
- if [ -n "$NEEDGR" ]; then
- cd $ORIGDIR
- $DESTGR/usr/lib/anaconda-runtime/checkcards.py $DESTGR/usr/share/hwdata/pcitable $DESTGR/usr/share/hwdata/Cards
- fi
-fi