1120 lines
28 KiB
Plaintext
1120 lines
28 KiB
Plaintext
|
#!/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
|
||
|
}
|
||
|
|
||
|
PACKAGES="GConf2 NetworkManager ORBit2 acl anaconda
|
||
|
anaconda-yum-plugins at-spi atk attr audit-libs bash 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 dejavu-sans-fonts
|
||
|
dcbd 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 gpm grep gtk2 gtk2-engines
|
||
|
hdparm hwdata initscripts iproute iputils iscsi-initiator-utils
|
||
|
jfsutils 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 libcurl libfontenc libidn libgcc
|
||
|
libglade2 libgnomecanvas libgcrypt libgpg-error libjpeg libnl
|
||
|
libpng libselinux libselinux-python libsemanage
|
||
|
libsemanage-python libsepol libssh2 libstdc++ libthai libtirpc libuser
|
||
|
libuser-python libvolume_id libxcb libxkbfile libxml2 lklug-fonts
|
||
|
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 lvm2 madan-fonts mdadm
|
||
|
mesa-dri-drivers module-init-tools ncurses neon net-tools
|
||
|
newt newt-python nfs-utils nspr nss nss-softokn ntfs-3g
|
||
|
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 readline redhat-artwork
|
||
|
reiserfs-utils rpm rpm-libs rpm-python rsyslog sed selinux-policy-targeted
|
||
|
setup slang smc-meera-fonts specspo sqlite strace synaptics system-config-date
|
||
|
system-config-keyboard ${brandpkgname}-logos ${brandpkgname}-release
|
||
|
sysvinit-tools taipeifonts tcp_wrappers tcp_wrappers-libs telnet
|
||
|
tigervnc-server tigervnc-server-module tzdata
|
||
|
udev un-core-dotum-fonts urw-fonts usbutils util-linux-ng
|
||
|
vlgothic-fonts vim-minimal
|
||
|
wget wpa_supplicant 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 joe krb5-libs less man
|
||
|
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-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/libmultipath.so*
|
||
|
$LIBDIR/libnss_dns*
|
||
|
$LIBDIR/libnss_files*
|
||
|
$LIBDIR/libnssdbm3.so
|
||
|
$LIBDIR/libsoftokn3.so
|
||
|
$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/vi
|
||
|
boot/*.b
|
||
|
boot/bootlx
|
||
|
boot/efi/EFI/redhat/elilo.efi
|
||
|
boot/efi/EFI/redhat/grub.efi
|
||
|
boot/efika.forth
|
||
|
boot/memtest86*
|
||
|
etc/NetworkManager/nm-system-settings.conf
|
||
|
etc/NetworkManager/dispatcher.d
|
||
|
etc/dbus-1/*
|
||
|
etc/dbus-1/system.d/*
|
||
|
etc/dcbd
|
||
|
etc/fb.modes
|
||
|
etc/fcoe
|
||
|
etc/fonts
|
||
|
etc/group
|
||
|
etc/gtk-2.0/gtkrc*
|
||
|
etc/hosts
|
||
|
etc/im_palette.pal
|
||
|
etc/imrc
|
||
|
etc/iscsid.conf
|
||
|
etc/man.config
|
||
|
etc/mke2fs.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/rpm/macros.prelink
|
||
|
etc/security/limits.conf
|
||
|
etc/security/pam_env.conf
|
||
|
etc/selinux/targeted
|
||
|
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/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/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.nfs*
|
||
|
sbin/mount.ntfs*
|
||
|
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/route
|
||
|
sbin/rsyslogd
|
||
|
sbin/setfiles
|
||
|
sbin/sfdisk
|
||
|
sbin/silo
|
||
|
sbin/swapoff
|
||
|
sbin/swapon
|
||
|
sbin/tune2fs
|
||
|
sbin/udev*
|
||
|
sbin/umount.nfs*
|
||
|
sbin/xfs_repair
|
||
|
sbin/xfsrestore
|
||
|
sbin/ybin
|
||
|
usr/$LIBDIR/NetworkManager
|
||
|
usr/$LIBDIR/dri
|
||
|
usr/$LIBDIR/gconv
|
||
|
usr/$LIBDIR/gdk-pixbuf/loaders/*la*
|
||
|
usr/$LIBDIR/gdk-pixbuf/loaders/*png*
|
||
|
usr/$LIBDIR/gdk-pixbuf/loaders/*xpm*
|
||
|
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/kernel-wrapper/*
|
||
|
usr/$LIBDIR/libuser/*
|
||
|
usr/$LIBDIR/pango
|
||
|
usr/$LIBDIR/python?.?
|
||
|
usr/$LIBDIR/rpm/rpmpopt
|
||
|
usr/$LIBDIR/libiscsi.so*
|
||
|
usr/$LIBDIR/libsqlite3.so*
|
||
|
usr/$LIBDIR/xorg/modules
|
||
|
usr/$LIBDIR/xserver/SecurityPolicy
|
||
|
usr/$LIBDIR/libfreebl3.so
|
||
|
usr/$LIBDIR/libnss3.so
|
||
|
usr/$LIBDIR/libnssckbi.so
|
||
|
usr/$LIBDIR/libnssdbm3.so
|
||
|
usr/$LIBDIR/libnsspem.so
|
||
|
usr/$LIBDIR/libsmime3.so
|
||
|
usr/$LIBDIR/libsoftokn3.so
|
||
|
usr/$LIBDIR/libssl3.so
|
||
|
usr/bin/[
|
||
|
usr/bin/Xorg
|
||
|
usr/bin/Xvnc
|
||
|
usr/bin/chattr*
|
||
|
usr/bin/du
|
||
|
usr/bin/expr
|
||
|
usr/bin/gdb-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/mini-wm
|
||
|
usr/bin/mkzimage
|
||
|
usr/bin/pango*
|
||
|
usr/bin/python
|
||
|
usr/bin/python?.?
|
||
|
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/telnet
|
||
|
usr/bin/tilo
|
||
|
usr/bin/top
|
||
|
usr/bin/wc
|
||
|
usr/bin/udev*
|
||
|
usr/bin/uniq
|
||
|
usr/bin/vncconfig
|
||
|
usr/bin/vncpasswd
|
||
|
usr/bin/wget
|
||
|
usr/bin/xkbcomp
|
||
|
usr/bin/zenity
|
||
|
usr/lib/anaconda
|
||
|
usr/lib/anaconda-runtime
|
||
|
usr/lib/anaconda/installclasses
|
||
|
usr/lib/anaconda/iw
|
||
|
usr/lib/anaconda/textw
|
||
|
usr/lib/anaconda/booty
|
||
|
usr/lib/anaconda/storage
|
||
|
usr/lib/anaconda/storage/devicelibs
|
||
|
usr/lib/anaconda/storage/formats
|
||
|
usr/lib/kernel-wrapper
|
||
|
usr/lib/locale
|
||
|
usr/lib/python?.?
|
||
|
usr/lib/python?.?/site-packages/epdb/*.py
|
||
|
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/convertdb1
|
||
|
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/chroot
|
||
|
usr/sbin/dcbd
|
||
|
usr/sbin/dcbtool
|
||
|
usr/sbin/ddcprobe
|
||
|
usr/sbin/dmidecode
|
||
|
usr/sbin/efibootmgr
|
||
|
usr/sbin/fcoemon
|
||
|
usr/sbin/fbset
|
||
|
usr/sbin/genhomedircon
|
||
|
usr/sbin/gptsync
|
||
|
usr/sbin/lvm
|
||
|
usr/sbin/prelink
|
||
|
usr/sbin/semodule
|
||
|
usr/sbin/showpart
|
||
|
usr/sbin/smartctl
|
||
|
usr/sbin/sshd
|
||
|
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/KacstQura.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/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/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/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/l/linux
|
||
|
usr/share/terminfo/v/vt100
|
||
|
usr/share/terminfo/v/vt100-nav
|
||
|
usr/share/terminfo/v/vt320
|
||
|
usr/share/terminfo/v/vt320-w
|
||
|
usr/share/terminfo/x/xterm
|
||
|
usr/share/xorg/extramodes
|
||
|
usr/share/xorg/vesamodes
|
||
|
usr/share/zenity
|
||
|
usr/share/zoneinfo
|
||
|
var/lib/polkit-1
|
||
|
var/lib/dbus
|
||
|
var/run/dbus
|
||
|
EOF
|
||
|
|
||
|
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/uname
|
||
|
bin/vi
|
||
|
lib/modules/ibm
|
||
|
lib/s390-tools/lsznet.raw
|
||
|
lib/s390-tools/znetcontrolunits
|
||
|
lib/security
|
||
|
sbin/arp
|
||
|
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/scp
|
||
|
usr/bin/strace
|
||
|
usr/bin/tr
|
||
|
usr/bin/wc
|
||
|
usr/bin/xauth
|
||
|
usr/sbin/glibc_post_upgrade
|
||
|
usr/sbin/lsreipl
|
||
|
usr/share/terminfo/a/ansi
|
||
|
usr/share/terminfo/d/dumb
|
||
|
usr/share/terminfo/k/kterm
|
||
|
usr/share/terminfo/s/screen
|
||
|
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
|
||
|
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
|
||
|
usr/$LIBDIR/python?.?/site-packages/gtk-2.0/atk.so
|
||
|
usr/$LIBDIR/python?.?/site-packages/gtk-2.0/gconf.so
|
||
|
usr/$LIBDIR/python?.?/site-packages/atspi.so
|
||
|
usr/lib/python?.?/site-packages/dogtail/*.py
|
||
|
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
|
||
|
etc/joe
|
||
|
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/rmmod
|
||
|
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/jmacs
|
||
|
usr/bin/joe
|
||
|
usr/bin/jpico
|
||
|
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/lib/python?.?/site-packages/pyfirstaidkit/
|
||
|
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; mkdir -p $DEST/usr/sbin $DEST/var/lib $DEST/boot
|
||
|
ln -s /tmp $DEST/var/lib/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..."
|
||
|
|
||
|
# 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
|
||
|
|
||
|
rm -rf $YUMDIR
|
||
|
|
||
|
chown -R root:root $DEST
|
||
|
chmod -R a+rX-w $DEST
|
||
|
|
||
|
# Remove locales unused during the install
|
||
|
cat $DEST/usr/lib/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;
|
||
|
}
|
||
|
' | 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
|
||
|
|
||
|
rm -f $DEST/locales $DEST/locales.list
|
||
|
|
||
|
# fixup joe links
|
||
|
if [ -d "$DESTDIR"/etc/joe ]; then
|
||
|
ln -fs jpicorc $DEST/etc/joe/picorc
|
||
|
ln -fs jpicorc $DEST/etc/joe/jnanorc
|
||
|
ln -fs jpicorc $DEST/etc/joe/nanorc
|
||
|
ln -fs jmacsrc $DEST/etc/joe/emacsrc
|
||
|
ln -fs jmacs $DEST/usr/bin/emacs
|
||
|
ln -fs jpico $DEST/usr/bin/pico
|
||
|
ln -fs jpico $DEST/usr/bin/nano
|
||
|
fi
|
||
|
|
||
|
# 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 libuser.conf"
|
||
|
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
|
||
|
|
||
|
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.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.config 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.config
|
||
|
|
||
|
#
|
||
|
# 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.config
|
||
|
|
||
|
echo "Scrubbing tree..." "$DEST"
|
||
|
mkdir -p $DEST/lib
|
||
|
mkdir -p $DEST/firmware
|
||
|
ln -snf /modules $DEST/lib/modules
|
||
|
ln -snf /firmware $DEST/lib/firmware
|
||
|
cp $DEST/usr/lib/anaconda/raidstart-stub $DEST/usr/bin/raidstart
|
||
|
cp $DEST/usr/lib/anaconda/raidstop-stub $DEST/usr/bin/raidstop
|
||
|
cp $DEST/usr/lib/anaconda/losetup-stub $DEST/usr/bin/losetup
|
||
|
cp $DEST/usr/lib/anaconda/list-harddrives-stub $DEST/usr/bin/list-harddrives
|
||
|
cp $DEST/usr/lib/anaconda/loadkeys-stub $DEST/usr/bin/loadkeys
|
||
|
cp $DEST/usr/lib/anaconda/mknod-stub $DEST/usr/bin/mknod
|
||
|
mv $DEST/usr/sbin/anaconda $DEST/usr/bin/anaconda
|
||
|
mv $DEST/usr/lib/anaconda-runtime/lib* $DEST/usr/$LIBDIR 2>/dev/null
|
||
|
mv $DEST/usr/lib/anaconda/sitecustomize.py $DEST/usr/$LIBDIR/python?.?/site-packages
|
||
|
|
||
|
mv $DEST/etc/yum.repos.d $DEST/etc/anaconda.repos.d
|
||
|
|
||
|
rm -f $DEST/usr/$LIBDIR/libunicode-lite*
|
||
|
|
||
|
find $DEST -type d | xargs chmod 755
|
||
|
|
||
|
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
|
||
|
|
||
|
[ -d $DEST/bin ] || die "ERROR: directory missing: $DEST/bin"
|
||
|
[ -d $DEST/sbin ] || die "ERROR: directory missing: $DEST/sbin"
|
||
|
(cd $DEST/bin; find) | (cd $DEST/bin; /bin/cpio --quiet -pdmu $DEST/usr/bin)
|
||
|
(cd $DEST/sbin; find) | (cd $DEST/sbin; /bin/cpio --quiet -pdmu $DEST/usr/sbin)
|
||
|
rm -rf $DEST/bin
|
||
|
rm -rf $DEST/sbin
|
||
|
|
||
|
# Fix relative links like /usr/bin/udevinfo -> ../../sbin/udevadm
|
||
|
for brokenlink in $(find $DEST/usr/{bin,sbin} -follow -lname '*') ; do
|
||
|
target="$(readlink $brokenlink)"
|
||
|
for pathbit in bin sbin; do
|
||
|
# if it starts with "../../sbin/", remove that
|
||
|
newtarget="${target##../../$pathbit/}"
|
||
|
# if we removed something, replace it with the proper path
|
||
|
if [ "$newtarget" != "$target" ]; then
|
||
|
# make it ../sbin/ instead
|
||
|
ln -sf "../$pathbit/$newtarget" "$brokenlink"
|
||
|
fi
|
||
|
done
|
||
|
done
|
||
|
|
||
|
# copy bootloader files for sparc
|
||
|
if [ $ARCH = sparc -o $ARCH = sparcv9 -o $ARCH = sparc64 ]; then
|
||
|
mkdir -p $DEST/usr/lib/anaconda-runtime/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/lib/anaconda-runtime/boot)
|
||
|
fi
|
||
|
|
||
|
# copy bootloader file for ppc
|
||
|
if [ $ARCH = ppc -o $ARCH = ppc64 ]; then
|
||
|
mkdir -p $DEST/usr/lib/anaconda-runtime/boot
|
||
|
cp -af $DEST/boot/efika.forth $DEST/usr/lib/anaconda-runtime/boot
|
||
|
fi
|
||
|
|
||
|
# copy bootloader file for alpha
|
||
|
if [ $ARCH = alpha ]; then
|
||
|
mkdir -p $DEST/usr/lib/anaconda-runtime/boot
|
||
|
cp -af $DEST/boot/bootlx $DEST/usr/lib/anaconda-runtime/boot
|
||
|
fi
|
||
|
|
||
|
# copy bootloader files for ia64
|
||
|
if [ $ARCH = ia64 ]; then
|
||
|
mkdir -p $DEST/usr/lib/anaconda-runtime/boot
|
||
|
cp -af $DEST/boot/efi/EFI/redhat//* $DEST/usr/lib/anaconda-runtime/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/lib/anaconda-runtime/boot
|
||
|
cp -af $DEST/boot/memtest* $DEST/usr/lib/anaconda-runtime/boot
|
||
|
fi
|
||
|
|
||
|
rm -rf $DEST/boot $DEST/home $DEST/root $DEST/tmp
|
||
|
|
||
|
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
|
||
|
|
||
|
# 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/lib/anaconda-runtime/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
|