From dbbe3e62df584a9cc8c5bbc808e83f453302cf5a Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@cd1c1023-2f26-0410-ae45-c471fc1f0318> Date: Mon, 4 Feb 2008 19:50:31 +0000 Subject: [PATCH] - updated TODO - extra flatten for horrible DEPEND strings git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1127 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- TODO | 1 + libraries/entropyTools.py | 23 ++++++++++++++++++----- libraries/portageTools.py | 5 ++++- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/TODO b/TODO index fbab29815..00e51964f 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,7 @@ TODO list: - glsa utility (*) - migrate server code to ServerInterface + [] write a tool that helps keeping packages updated (also supporting injected ones) - Community repositories - split RDEPEND and PDEPEND - find a way to better handle real smartapps deps (need split PDEPEND?) diff --git a/libraries/entropyTools.py b/libraries/entropyTools.py index 75e5b51ef..32a19b419 100644 --- a/libraries/entropyTools.py +++ b/libraries/entropyTools.py @@ -1433,12 +1433,25 @@ def umountProc(): # check if it's already mounted procfiles = os.listdir("/proc") if len(procfiles) > 2: - spawnCommand("umount /proc", " &> /dev/null") - spawnCommand("umount /proc", " &> /dev/null") - spawnCommand("umount /proc", " &> /dev/null") - return True + spawnCommand("umount /proc", " &> /dev/null") + spawnCommand("umount /proc", " &> /dev/null") + spawnCommand("umount /proc", " &> /dev/null") + return True else: - return True + return True + +def flatten(l, ltypes=(list, tuple)): + i = 0 + while i < len(l): + while isinstance(l[i], ltypes): + if not l[i]: + l.pop(i) + if not len(l): + break + else: + l[i:i+1] = list(l[i]) + i += 1 + return l class lifobuffer: diff --git a/libraries/portageTools.py b/libraries/portageTools.py index d7983ab48..ec5db8fb9 100644 --- a/libraries/portageTools.py +++ b/libraries/portageTools.py @@ -360,6 +360,8 @@ def calculate_dependencies(my_iuse, my_use, my_license, my_depend, my_rdepend, m deps = paren_license_choose(deps) else: deps = paren_choose(deps) + # flatten out + deps = entropyTools.flatten(deps) deps = ' '.join(deps) except exceptionTools.InvalidDependString, e: print_error("%s: %s\n" % (k, str(e))) @@ -384,7 +386,8 @@ def paren_choose(dep_list): if not matched and item: # no match, append the first one # and let reagent fuck up - newlist.append(item[0]) + for x in item: + newlist.append(x) else: if item not in ["||"]: newlist.append(item)