From 31e2c6934be25c49eda90f7271eee79fa42737a5 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 16 Dec 2006 23:25:03 +0000 Subject: Make use_reduce raise an InvalidDependString exception for use? conditionals that aren't followed by parenthesis and add appropriate exception handling in dep_check. svn path=/main/trunk/; revision=5305 --- pym/portage.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'pym/portage.py') diff --git a/pym/portage.py b/pym/portage.py index 0f1ba998f..7688b5aba 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -3884,26 +3884,27 @@ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None, #convert parenthesis to sublists mysplit = portage_dep.paren_reduce(depstring) - if mysettings: - mymasks = set() - useforce = set([mysettings["ARCH"]]) - if use == "all": - # These masks are only for repoman. In other cases, relevant masks - # should have already been applied via config.regenerate(). Also, - # binary or installed packages may have been built with flags that - # are now masked, and it would be inconsistent to mask them now. - # Additionally, myuse may consist of flags from a parent package - # that is being merged to a $ROOT that is different from the one - # that mysettings represents. - mymasks.update(mysettings.usemask) - mymasks.update(mysettings.archlist()) - mymasks.discard(mysettings["ARCH"]) - useforce.update(mysettings.useforce) - useforce.difference_update(mymasks) + mymasks = set() + useforce = set() + useforce.add(mysettings["ARCH"]) + if use == "all": + # This masking/forcing is only for repoman. In other cases, relevant + # masking/forcing should have already been applied via + # config.regenerate(). Also, binary or installed packages may have + # been built with flags that are now masked, and it would be + # inconsistent to mask them now. Additionally, myuse may consist of + # flags from a parent package that is being merged to a $ROOT that is + # different from the one that mysettings represents. + mymasks.update(mysettings.usemask) + mymasks.update(mysettings.archlist()) + mymasks.discard(mysettings["ARCH"]) + useforce.update(mysettings.useforce) + useforce.difference_update(mymasks) + try: mysplit = portage_dep.use_reduce(mysplit, uselist=myusesplit, masklist=mymasks, matchall=(use=="all"), excludeall=useforce) - else: - mysplit = portage_dep.use_reduce(mysplit,uselist=myusesplit,matchall=(use=="all")) + except portage_exception.InvalidDependString, e: + return [0, str(e)] # Do the || conversions mysplit=portage_dep.dep_opconvert(mysplit) -- cgit v1.2.3-1-g7c22