summaryrefslogtreecommitdiff
path: root/geneticone/backend/portage_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'geneticone/backend/portage_helper.py')
-rw-r--r--geneticone/backend/portage_helper.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/geneticone/backend/portage_helper.py b/geneticone/backend/portage_helper.py
index 572d954..27f5a41 100644
--- a/geneticone/backend/portage_helper.py
+++ b/geneticone/backend/portage_helper.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
#
# File: geneticone/backend/portage_helper.py
# This file is part of the Genetic/One-Project, a graphical portage-frontend.
@@ -278,22 +279,36 @@ def update_world (newuse = False, deep = False):
checked = []
updating = []
raw_checked = []
- def check (p, deep = False):
+ def check (p):
"""Checks whether a package is updated or not."""
if p.get_cp() in checked: return
else: checked.append(p.get_cp())
+ appended = False
+ tempDeep = False
+
if not p.is_installed():
- old = find_installed_packages(p.get_cp())
- if old:
- old = old[0] # assume we have only one there; FIXME: slotted packages
+ oldList = find_installed_packages(p.get_cp())
+ if oldList:
+ old = oldList[0] # assume we have only one there; FIXME: slotted packages
else:
debug("Bug? Not found installed one:",p.get_cp())
return
updating.append((p, old))
+ appended = True
p = old
- if deep:
+ if newuse:
+ old = p.get_installed_use_flags()
+ new = p.get_settings("USE").split()
+
+ for u in p.get_all_use_flags():
+ if (u in new) != (u in old):
+ if not appended:
+ updating.append((p,p))
+ tempDeep = True
+
+ if deep or tempDeep:
for i in p.get_matched_dep_packages():
if i not in raw_checked:
raw_checked.append(i)
@@ -301,11 +316,11 @@ def update_world (newuse = False, deep = False):
if not bm:
debug("Bug? No best match could be found:",i)
else:
- check(bm, deep)
+ check(bm)
for p in packages:
if not p: continue # if a masked package is installed we have "None" here
- check(p, deep)
+ check(p)
return updating
pan> 2014-05-10edit: Quote editor so tests work in spaced directories.Jason A. Donenfeld1-1/+1 2014-05-10reencryption: Properly escape input to sedJason A. Donenfeld1-1/+1 2014-05-10git: use secure tmp directoryJason A. Donenfeld1-4/+11 2014-05-10configure git to decrypt gpg files automaticallySamuel Le Thiec1-0/+5 2014-05-08completion: add new generate flagsJason A. Donenfeld3-2/+7 2014-05-08inplace: mutually exclusive with forceJason A. Donenfeld2-3/+3 2014-05-08usage: tab to spacesJason A. Donenfeld1-1/+1 2014-05-08generate: use nice ansi colors instead.Jason A. Donenfeld1-3/+2 2014-05-08zsh: posix compatible sed fix for zsh-completionJason A. Donenfeld1-1/+1 2014-05-07Implement interactive init functionSvend Sorensen1-0/+8 2014-05-07Implement interactive rename functionSvend Sorensen1-0/+7 2014-05-07Reorder interactive function to match order of helper functionsSvend Sorensen1-13/+13 2014-05-07Make edit helper function name consistent with other helpersSvend Sorensen1-1/+1 2014-05-07Factor out password completing-read functionSvend Sorensen1-4/+8 2014-05-07Add dash to Package-RequiresSvend Sorensen1-1/+1 2014-05-06Force sane sort order.Jason A. Donenfeld1-2/+2 2014-05-06generate: add --in-place optionJason A. Donenfeld4-9/+33