#! /bin/bash -x : ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { echo "Can not find util-vserver installation; aborting..." exit 1 } . "$UTIL_VSERVER_VARS" lib=$_RPM_FAKE_SO function getSyscallParams { set -- `grep '^__NR_new_s_context:' /proc/self/status` scall_nr=$2 test "$3" && scall_rev=${3##rev} } need_cfg= case "$CUR_VSERVER" in /*) vdir=$CUR_VSERVER;; *) vdir=$CONFDIR/$CUR_VSERVER/vdir need_cfg=1;; esac test "$CUR_VSERVER" -a -d "$vdir" || { echo "No or invalid vserver-name given" exit 1 } ctxfile=/var/run/vservers/${CUR_VSERVER}.ctx if test -f "$ctxfile"; then . "$ctxfile" else S_CONTEXT= fi for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpmi ""; do ldd "$bin" &>/dev/null && break done test "$bin" || { echo "No dynamically linked rpm binary found; exiting..." exit 1 } getSyscallParams RPM_FAKE_S_CONTEXT_REV=$scall_rev \ RPM_FAKE_S_CONTEXT_NR=$scall_nr \ RPM_FAKE_CTX=$S_CONTEXT \ RPM_FAKE_CAP=$[ ~0x3404040f ] \ LD_PRELOAD=$lib${LD_PRELOAD:+:$LD_PRELOAD} \ exec $bin "$@"