X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvrpm-preload;h=db99902902c2b023696597b1b7a42b45147bda31;hb=7bd540af89c36e0fc25d167f6c4893451b3331a3;hp=ec735037b81011f23d25ed1379932c0b9bc03cae;hpb=e3e0c98fbdfc024566c0f5d45bcf5c4bd91e19f8;p=util-vserver.git diff --git a/util-vserver/scripts/vrpm-preload b/util-vserver/scripts/vrpm-preload index ec73503..db99902 100755 --- a/util-vserver/scripts/vrpm-preload +++ b/util-vserver/scripts/vrpm-preload @@ -24,57 +24,14 @@ test -e "$UTIL_VSERVER_VARS" || { exit 1 } . "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" -function getCapFlags -{ - local ctx=$1 - - if test "$ctx" && ! $_VSERVER_INFO - FEATURE migrate; then - set -- $($_CHCONTEXT_COMPAT --xid 1 \ - $_SH -c "$_CAT /proc/[0-9]*/status | $_EGREP '^(CapBset|s_context|ctxflags)'" | \ - $_GREP -B 1 -A 1 "^s_context: $ctx " | \ - $_SED -e '1,3p;d' | $_AWK '{ print $2 }') - else - set -- - fi - - if test "$3"; then - RPM_FAKE_CAP=$[ ~0x$1 ] - RPM_FAKE_FLAGS=$3 - else - RPM_FAKE_CAP=$[ ~0xd40c04ff ] - RPM_FAKE_FLAGS=4 - fi -} - -lib=$_RPM_FAKE_SO - -#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 -d "$vdir" || { - echo $"Can not find chroot environment at '$vdir' for '$CUR_VSERVER'" >&2 - exit 1 -} 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..." >&2 - exit 1 -} - - -getCapFlags "$ctx" - -export RPM_FAKE_CAP RPM_FAKE_FLAGS +test -x "$bin" || + panic $"No dynamically linked rpm binary found; exiting..." -#RPM_FAKE_S_CONTEXT_REV=$scall_rev \ -#RPM_FAKE_S_CONTEXT_NR=$scall_nr \ -RPM_FAKE_CHROOT=$vdir \ -RPM_FAKE_CTX=$ctx \ -LD_PRELOAD=$lib${LD_PRELOAD:+:$LD_PRELOAD} \ -exec $bin "$@" +rpmFake.init "$CUR_VSERVER" +rpmFake.exec "$bin" "$@"