Changeset 2765

Show
Ignore:
Timestamp:
08/22/08 23:41:47 (3 months ago)
Author:
dhozac
Message:

Workaround rpm-fake brokenness by setting up a persistent context.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/scripts/vserver-build.functions

    r2760 r2765  
    241241} 
    242242 
     243declare -a __BASE_CLEANUP 
     244function base.pushCleanup 
     245{ 
     246    __BASE_CLEANUP=( "${__BASE_CLEANUP[@]}" "$*" ) 
     247} 
     248 
     249function base.popCleanup 
     250{ 
     251    unset __BASE_CLEANUP[$((${#__BASE_CLEANUP[@]} - 1))] 
     252} 
     253 
    243254function base.__cleanup 
    244255{ 
     256    for cmd in "${__BASE_CLEANUP[@]}"; do 
     257        $cmd 
     258    done 
     259     
     260    test -z "$__BASE_SUCCESS" || return 0 
    245261    test -z "$OPTION_KEEP"    || return 0 
    246     test -z "$__BASE_SUCCESS" || return 0 
    247      
    248262    rm -rf "${__BASE_GENERATED_FILES[@]}" 
    249263} 
  • trunk/scripts/vserver-build.yum

    r2576 r2765  
    5454 
    5555test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS" 
     56 
     57if $_VSERVER_INFO - FEATURE persistent; then 
     58    $_VSPACE --new --mount --fs -- \ 
     59        $_VCONTEXT --create ${SETUP_CONTEXT:+--xid "$SETUP_CONTEXT"} --silent -- \ 
     60        $_VUNAME --set --xid self -t context="rpm-fake $SETUP_CONFDIR" -- \ 
     61        $_VSPACE --set --mount --fs -- \ 
     62        $_SAVE_CTXINFO "$SETUP_CONFDIR" \ 
     63        $_VATTRIBUTE --set --xid self --secure --flag persistent -- \ 
     64        $_VCONTEXT --xid self --migrate-self --endsetup -- \ 
     65        /bin/true 
     66    RPM_FAKE_CTX=`cat $SETUP_CONFDIR/run` 
     67    export RPM_FAKE_CTX 
     68    base.pushCleanup $_VATTRIBUTE --xid "$RPM_FAKE_CTX" --flag '!persistent' 
     69fi 
     70 
    5671rpm.initDB           "$SETUP_CONFDIR" 
    5772rpm.importGPGPubKeys "$SETUP_CONFDIR" \ 
     
    6176yum.installBasePackages "$SETUP_CONFDIR" "$PKGINSTALLDIR" 
    6277$_VYUM "$SETUP_CONFDIR" -- clean all 
     78 
     79if $_VSERVER_INFO - FEATURE persistent; then 
     80    base.popCleanup 
     81    $_VATTRIBUTE --xid "$RPM_FAKE_CTX" --flag '!persistent' 
     82fi 
     83 
    6384test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" 
    6485