Revision: 83144 http://trac.macports.org/changeset/83144 Author: jmr@macports.org Date: 2011-08-26 05:38:42 -0700 (Fri, 26 Aug 2011) Log Message: ----------- merge r82947 from trunk: uninstall and deactivate dependents before their dependencies (#8431) Revision Links: -------------- http://trac.macports.org/changeset/82947 Modified Paths: -------------- branches/release_2_0/base/src/port/port.tcl Property Changed: ---------------- branches/release_2_0/ branches/release_2_0/base/ branches/release_2_0/base/portmgr/fedora/macports.spec branches/release_2_0/base/src/pextlib1.0/sha2.c branches/release_2_0/base/src/pextlib1.0/sha2.h branches/release_2_0/base/src/pextlib1.0/sha256cmd.c branches/release_2_0/base/src/pextlib1.0/sha256cmd.h branches/release_2_0/base/src/registry2.0/receipt_sqlite.tcl Property changes on: branches/release_2_0 ___________________________________________________________________ Modified: svn:mergeinfo - /trunk:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 + /trunk:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 Property changes on: branches/release_2_0/base ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 + /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 Property changes on: branches/release_2_0/base/portmgr/fedora/macports.spec ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/portmgr/fedora/macports.spec:37343-46937 /branches/universal-sanity/base/portmgr/fedora/macports.spec:51872-52323 /branches/variant-descs-14482/base/portmgr/fedora/macports.spec:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/portmgr/fedora/macports.spec:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /trunk/base/portmgr/fedora/macports.spec.in:30388-57826 /users/perry/base-bugs_and_notes/portmgr/fedora/macports.spec:45682-46060 /users/perry/base-select/portmgr/fedora/macports.spec:44044-44692 + /branches/gsoc08-privileges/base/portmgr/fedora/macports.spec:37343-46937 /branches/universal-sanity/base/portmgr/fedora/macports.spec:51872-52323 /branches/variant-descs-14482/base/portmgr/fedora/macports.spec:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/portmgr/fedora/macports.spec:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /trunk/base/portmgr/fedora/macports.spec.in:30388-57826 /users/perry/base-bugs_and_notes/portmgr/fedora/macports.spec:45682-46060 /users/perry/base-select/portmgr/fedora/macports.spec:44044-44692 Property changes on: branches/release_2_0/base/src/pextlib1.0/sha2.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/pextlib1.0/sha2.c:37343-46937 /branches/universal-sanity/base/src/pextlib1.0/sha2.c:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/sha2.c:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha2.c:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /users/perry/base-bugs_and_notes/src/pextlib1.0/sha2.c:45682-46060 /users/perry/base-select/src/pextlib1.0/sha2.c:44044-44692 + /branches/gsoc08-privileges/base/src/pextlib1.0/sha2.c:37343-46937 /branches/universal-sanity/base/src/pextlib1.0/sha2.c:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/sha2.c:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha2.c:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /users/perry/base-bugs_and_notes/src/pextlib1.0/sha2.c:45682-46060 /users/perry/base-select/src/pextlib1.0/sha2.c:44044-44692 Property changes on: branches/release_2_0/base/src/pextlib1.0/sha2.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/pextlib1.0/sha2.h:37343-46937 /branches/universal-sanity/base/src/pextlib1.0/sha2.h:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/sha2.h:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha2.h:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /users/perry/base-bugs_and_notes/src/pextlib1.0/sha2.h:45682-46060 /users/perry/base-select/src/pextlib1.0/sha2.h:44044-44692 + /branches/gsoc08-privileges/base/src/pextlib1.0/sha2.h:37343-46937 /branches/universal-sanity/base/src/pextlib1.0/sha2.h:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/sha2.h:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha2.h:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /users/perry/base-bugs_and_notes/src/pextlib1.0/sha2.h:45682-46060 /users/perry/base-select/src/pextlib1.0/sha2.h:44044-44692 Property changes on: branches/release_2_0/base/src/pextlib1.0/sha256cmd.c ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/pextlib1.0/rmd160cmd.c:37343-46937 /branches/gsoc09-logging/base/src/pextlib1.0/sha256cmd.c:51231-60371 /branches/universal-sanity/base/src/pextlib1.0/rmd160cmd.c:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/rmd160cmd.c:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha256cmd.c:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /users/perry/base-bugs_and_notes/src/pextlib1.0/rmd160cmd.c:45682-46060 /users/perry/base-select/src/pextlib1.0/rmd160cmd.c:44044-44692 + /branches/gsoc08-privileges/base/src/pextlib1.0/rmd160cmd.c:37343-46937 /branches/gsoc09-logging/base/src/pextlib1.0/sha256cmd.c:51231-60371 /branches/universal-sanity/base/src/pextlib1.0/rmd160cmd.c:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/rmd160cmd.c:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha256cmd.c:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /users/perry/base-bugs_and_notes/src/pextlib1.0/rmd160cmd.c:45682-46060 /users/perry/base-select/src/pextlib1.0/rmd160cmd.c:44044-44692 Property changes on: branches/release_2_0/base/src/pextlib1.0/sha256cmd.h ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/pextlib1.0/rmd160cmd.h:37343-46937 /branches/gsoc09-logging/base/src/pextlib1.0/sha256cmd.h:51231-60371 /branches/universal-sanity/base/src/pextlib1.0/rmd160cmd.h:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/rmd160cmd.h:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha256cmd.h:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /users/perry/base-bugs_and_notes/src/pextlib1.0/rmd160cmd.h:45682-46060 /users/perry/base-select/src/pextlib1.0/rmd160cmd.h:44044-44692 + /branches/gsoc08-privileges/base/src/pextlib1.0/rmd160cmd.h:37343-46937 /branches/gsoc09-logging/base/src/pextlib1.0/sha256cmd.h:51231-60371 /branches/universal-sanity/base/src/pextlib1.0/rmd160cmd.h:51872-52323 /branches/variant-descs-14482/base/src/pextlib1.0/rmd160cmd.h:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/pextlib1.0/sha256cmd.h:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /users/perry/base-bugs_and_notes/src/pextlib1.0/rmd160cmd.h:45682-46060 /users/perry/base-select/src/pextlib1.0/rmd160cmd.h:44044-44692 Modified: branches/release_2_0/base/src/port/port.tcl =================================================================== --- branches/release_2_0/base/src/port/port.tcl 2011-08-26 12:35:59 UTC (rev 83143) +++ branches/release_2_0/base/src/port/port.tcl 2011-08-26 12:38:42 UTC (rev 83144) @@ -511,6 +511,43 @@ return [lsort -command portlist_compareint $list] } +# sort portlist so dependents come before their dependencies +proc portlist_sortdependents { portlist } { + foreach p $portlist { + array set pvals $p + lappend entries($pvals(name)) $p + if {![info exists dependents($pvals(name))]} { + set dependents($pvals(name)) {} + foreach result [registry::list_dependents $pvals(name)] { + lappend dependents($pvals(name)) [lindex $result 2] + } + } + array unset pvals + } + set ret {} + foreach p $portlist { + portlist_sortdependents_helper $p entries dependents seen ret + } + return $ret +} + +proc portlist_sortdependents_helper {p up_entries up_dependents up_seen up_retlist} { + upvar $up_seen seen + if {![info exists seen($p)]} { + set seen($p) 1 + upvar $up_entries entries $up_dependents dependents $up_retlist retlist + array set pvals $p + foreach dependent $dependents($pvals(name)) { + if {[info exists entries($dependent)]} { + foreach entry $entries($dependent) { + portlist_sortdependents_helper $entry entries dependents seen retlist + } + } + } + lappend retlist $p + } +} + proc regex_pat_sanitize { s } { set sanitized [regsub -all {[\\(){}+$.^]} $s {\\&}] return $sanitized @@ -2334,6 +2371,7 @@ if {[require_portlist portlist] || [prefix_unwritable]} { return 1 } + set portlist [portlist_sortdependents $portlist] foreachport $portlist { set composite_version [composite_version $portversion [array get variations]] if {![info exists options(ports_deactivate_no-exec)] @@ -2897,6 +2935,8 @@ return 1 } + set portlist [portlist_sortdependents $portlist] + foreachport $portlist { if {![registry::entry_exists_for_name $portname]} { ui_info "$portname is already uninstalled" Property changes on: branches/release_2_0/base/src/registry2.0/receipt_sqlite.tcl ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/registry1.0/receipt_sqlite.tcl:37343-46937 /branches/gsoc09-logging/base/src/registry1.0/receipt_sqlite.tcl:51231-60371 /branches/universal-sanity/base/src/registry1.0/receipt_sqlite.tcl:51872-52323 /branches/variant-descs-14482/base/src/registry1.0/receipt_sqlite.tcl:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/registry2.0/receipt_sqlite.tcl:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924 /users/perry/base-bugs_and_notes/src/registry1.0/receipt_sqlite.tcl:45682-46060 /users/perry/base-select/src/registry1.0/receipt_sqlite.tcl:44044-44692 + /branches/gsoc08-privileges/base/src/registry1.0/receipt_sqlite.tcl:37343-46937 /branches/gsoc09-logging/base/src/registry1.0/receipt_sqlite.tcl:51231-60371 /branches/universal-sanity/base/src/registry1.0/receipt_sqlite.tcl:51872-52323 /branches/variant-descs-14482/base/src/registry1.0/receipt_sqlite.tcl:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/registry2.0/receipt_sqlite.tcl:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947 /users/perry/base-bugs_and_notes/src/registry1.0/receipt_sqlite.tcl:45682-46060 /users/perry/base-select/src/registry1.0/receipt_sqlite.tcl:44044-44692
participants (1)
-
jmr@macports.org