Changeset 140540


Ignore:
Timestamp:
Sep 22, 2015, 3:01:49 AM (5 years ago)
Author:
jmr@…
Message:

fix some cases where mportexec could return without cleaning up first

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/macports1.0/macports.tcl

    r140488 r140540  
    20062006    }
    20072007    set portname [_mportkey $mport subport]
     2008    set log_needs_pop no
    20082009    if {$target ne "clean"} {
    20092010        macports::push_log $mport
     2011        set log_needs_pop yes
    20102012    }
    20112013
     
    20162018        # possibly warn or error out depending on how old xcode is
    20172019        if {[$workername eval _check_xcode_version] != 0} {
     2020            if {$log_needs_pop} {
     2021                macports::pop_log
     2022            }
    20182023            return 1
    20192024        }
    20202025        # error out if selected arch(s) not supported by this port
    20212026        if {[$workername eval check_supported_archs] != 0} {
     2027            if {$log_needs_pop} {
     2028                macports::pop_log
     2029            }
    20222030            return 1
    20232031        }
     
    20442052        }
    20452053        if {[mportdepends $mport $target] != 0} {
     2054            if {$log_needs_pop} {
     2055                macports::pop_log
     2056            }
    20462057            return 1
    20472058        }
     
    20682079                set retvalue [$macports::ui_options(questions_yesno) "The following dependencies will be installed: " "TestCase#2" [lsort $deplist] {y} 0]
    20692080                if {$retvalue == 1} {
     2081                    if {$log_needs_pop} {
     2082                        macports::pop_log
     2083                    }
     2084                    foreach ditem $dlist {
     2085                        mportclose $ditem
     2086                    }
    20702087                    return 0
    20712088                }
     
    20782095            }
    20792096        }
    2080                
     2097
    20812098        # install them
    20822099        set result [dlist_eval $dlist _mportactive [list _mportexec activate]]
     
    20982115                catch {mportclose $ditem}
    20992116            }
     2117            if {$log_needs_pop} {
     2118                macports::pop_log
     2119            }
    21002120            return 1
    21012121        }
     
    21082128        # No dependencies, but we still need to check for conflicts.
    21092129        if {$target eq "" || $target eq "install" || $target eq "activate"} {
    2110             _mporterrorifconflictsinstalled $mport
     2130            if {[catch {_mporterrorifconflictsinstalled $mport}]} {
     2131                if {$log_needs_pop} {
     2132                    macports::pop_log
     2133                }
     2134                return 1
     2135            }
    21112136        }
    21122137    }
     
    21302155
    21312156    global ::logenabled ::debuglogname
    2132     if {[info exists ::logenabled] && $::logenabled && [info exists ::debuglogname]} {
    2133         if {$result != 0} {
    2134             ui_error "See $::debuglogname for details."
    2135         }
     2157    if {$result != 0 && [info exists ::logenabled] && $::logenabled && [info exists ::debuglogname]} {
     2158        ui_error "See $::debuglogname for details."
     2159    }
     2160
     2161    if {$log_needs_pop} {
    21362162        macports::pop_log
    21372163    }
     
    31343160
    31353161    if {$target in {{} install activate}} {
    3136         _mporterrorifconflictsinstalled $mport
     3162        if {[catch {_mporterrorifconflictsinstalled $mport}]} {
     3163            return 1
     3164        }
    31373165    }
    31383166
     
    32693297                if {$arch_mismatch} {
    32703298                    macports::_explain_arch_mismatch [_mportkey $mport subport] $dep_portname $required_archs $supported_archs $has_universal
    3271                     return -code error "architecture mismatch"
     3299                    return 1
    32723300                }
    32733301            }
Note: See TracChangeset for help on using the changeset viewer.