nspluginwrapper/utils/mkruntime.sh

85 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
#
# mkruntime.sh - prepare QEMU runtime from Mandriva Linux 2006.0
#
# nspluginwrapper (C) 2005-2009 Gwenole Beauchesne
#
# Usage: mkruntime <MDV2006-RPMS>
# unpacks RPMs to /usr/gnemul/qemu-i386/
#
# Notes:
# - Check acroread5, something is missing while loading a PDF
# - Enough for Flash Player & PluginSDK npsimple.so
error() {
echo ${1+"$@"} > /dev/stderr
}
status() {
echo ${1+"$@"} > /dev/stderr
}
run() {
status " " ${1+"$@"}
${1+"$@"}
}
RPMS=$1
[[ -d "$RPMS" ]] || { error "unspecified RPMs dir"; exit 1; }
ARCH=$2
[[ -n "$ARCH" ]] || ARCH="i386"
ROOT=$3
[[ -d "$ROOT" ]] || ROOT="/usr/gnemul/qemu-$ARCH"
QEMU="qemu-$ARCH"
[[ -x "`which $QEMU`" ]] || { error "inexistent QEMU for $ARCH in PATH"; exit 1; }
QEMU="$QEMU -L $ROOT"
files="$files glibc-[0-9]* ldconfig-[0-9]*"
files="$files zlib1-[0-9]* libbzip2_[0-9]-[0-9]*"
files="$files bash-[0-9]* libtermcap2-[0-9]* libslang1-[0-9]*"
files="$files libstdc++5-[0-9]*"
files="$files libxorg-x11-[0-9]*"
files="$files fontconfig-[0-9]* libfontconfig1-[0-9]* libfreetype6-[0-9]*"
files="$files libxml2-[0-9]* libexpat0-[0-9]* libxslt1-[0-9]*"
files="$files libjpeg62-[0-9]* libpng3-[0-9]*"
files="$files libaudiofile0-[0-9]* libesound0-[0-9]*"
files="$files libglib2.0_0-[0-9]* libgtk+2.0_0-[0-9]* libgtk+-x11-2.0_0-[0-9]*"
files="$files libgdk_pixbuf2.0_0-[0-9]*"
files="$files libatk1.0_0-[0-9]* libcairo2-[0-9]*"
files="$files pango-[0-9]* libpango1.0_0-[0-9]* libpango1.0_0-modules-[0-9]*"
mkdir -p $ROOT
pushd $ROOT >& /dev/null
for file in $(cd $RPMS && echo $files); do
echo "Processing $file" > /dev/stderr
rpm2cpio $RPMS/$file | cpio -id >& /dev/null
done
popd $ROOT >& /dev/null
find $ROOT -type d -name tls | xargs rm -rf
echo "Regenerating ld.so.cache"
echo "/usr/X11R6/lib" >> $ROOT/etc/ld.so.conf
run touch $ROOT/etc/ld.so.cache
run $QEMU $ROOT/sbin/ldconfig -C $ROOT/etc/ld.so.cache
echo "Regenerating fontconfig cache"
run $QEMU $ROOT/usr/bin/fc-cache -f
echo "Regenerating pango cache"
for file in $ROOT/usr/lib/pango/*/modules/*.so; do
case $file in
*/pango-basic*.so);;
*) run rm -f $file;;
esac
done
if [[ "$ARCH" = "i386" ]]; then
run $QEMU $ROOT/usr/bin/pango-querymodules-32 > $ROOT/etc/pango/i386/pango.modules
else
run $QEMU $ROOT/usr/bin/pango-querymodules > $ROOT/etc/pango/pango.modules
fi