X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvrpm-preload;h=e6cbc708aa134f9905a12c4b84db0e7c17d32181;hb=95cf3519da76f335389cd7a18d0090b59f81f2e7;hp=d9316d85a3d13a8c471b4a520ee18781a3065ef5;hpb=6674fb1a4c28bbe146b80c7e79d3223d080644e2;p=util-vserver.git diff --git a/util-vserver/scripts/vrpm-preload b/util-vserver/scripts/vrpm-preload index d9316d8..e6cbc70 100755 --- a/util-vserver/scripts/vrpm-preload +++ b/util-vserver/scripts/vrpm-preload @@ -18,55 +18,37 @@ set -e -: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars} +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { - echo "Can not find util-vserver installation; aborting..." + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 exit 1 } . "$UTIL_VSERVER_VARS" lib=$_RPM_FAKE_SO -function getSyscallParams -{ - set -- `grep '^__NR_new_s_context:' /proc/self/status` - scall_nr=$2 - test -z "$3" || scall_rev=${3##rev} -} - -need_cfg= -case "$CUR_VSERVER" in - /*) vdir=$CUR_VSERVER;; - *) vdir=$CONFDIR/$CUR_VSERVER/vdir - need_cfg=1;; -esac +#scall_nr=$($_VSERVER_INFO x SYSCALL_NEW_S_CONTEXT_NR 2>/dev/null) +#scall_rev=$($_VSERVER_INFO x SYSCALL_NEW_S_CONTEXT_REV 2>/dev/null) +vdir=$($_VSERVER_INFO "$CUR_VSERVER" VDIR) || vdir="$CUR_VSERVER" +ctx=$($_VSERVER_INFO "$CUR_VSERVER" CONTEXT) || ctx= -test "$CUR_VSERVER" -a -d "$vdir" || { - echo "No or invalid vserver-name given" +test -d "$vdir" || { + echo $"Can not find chroot environment at '$vdir' for '$CUR_VSERVER'" >&2 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 +for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpm${RPM_FLAVOR:-i} ""; do ldd "$bin" &>/dev/null && break done test "$bin" || { - echo "No dynamically linked rpm binary found; exiting..." + echo $"No dynamically linked rpm binary found; exiting..." >&2 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 ] \ +#RPM_FAKE_S_CONTEXT_REV=$scall_rev \ +#RPM_FAKE_S_CONTEXT_NR=$scall_nr \ +RPM_FAKE_CHROOT=$vdir \ +RPM_FAKE_CTX=$ctx \ +RPM_FAKE_CAP=$[ ~0xd40c04ff ] \ LD_PRELOAD=$lib${LD_PRELOAD:+:$LD_PRELOAD} \ exec $bin "$@"