From 76a321d68479730835041c288cdec7fcc327fbab Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@cd1c1023-2f26-0410-ae45-c471fc1f0318> Date: Wed, 9 Jan 2008 20:46:52 +0000 Subject: [PATCH] - moved system packages check to EquoInterface under validatePackageRemoval() git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1028 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- client/text_ui.py | 16 ++++------------ libraries/entropy.py | 19 +++++++++++++++++++ spritz/src/spritz.glade | 4 ++-- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/client/text_ui.py b/client/text_ui.py index 537ac958a..1dc66ecee 100644 --- a/client/text_ui.py +++ b/client/text_ui.py @@ -682,25 +682,17 @@ def removePackages(packages = [], atomsdata = [], deps = True, deep = False, sys for atomInfo in foundAtoms: atomscounter += 1 idpackage = atomInfo[0] - systemPackage = Equo.clientDbconn.isSystemPackage(idpackage) # get needed info pkgatom = Equo.clientDbconn.retrieveAtom(idpackage) installedfrom = Equo.clientDbconn.retrievePackageFromInstalledTable(idpackage) - if (systemPackage) and (systemPackagesCheck): - # check if the package is slotted and exist more than one installed first - sysresults = Equo.clientDbconn.atomMatch(Equo.entropyTools.dep_getkey(pkgatom), multiMatch = True) - slots = set() - if sysresults[1] == 0: - for x in sysresults[0]: - slots.add(Equo.clientDbconn.retrieveSlot(x)) - if len(slots) < 2: - print_warning(darkred(" # !!! ")+red("(")+brown(str(atomscounter))+"/"+blue(str(totalatoms))+red(")")+" "+enlightenatom(pkgatom)+red(" is a vital package. Removal forbidden.")) - continue - else: + if (systemPackagesCheck): + valid = Equo.validatePackageRemoval(idpackage) + if not valid: print_warning(darkred(" # !!! ")+red("(")+brown(str(atomscounter))+"/"+blue(str(totalatoms))+red(")")+" "+enlightenatom(pkgatom)+red(" is a vital package. Removal forbidden.")) continue + plainRemovalQueue.append(idpackage) print_info(" # "+red("(")+brown(str(atomscounter))+"/"+blue(str(totalatoms))+red(")")+" "+enlightenatom(pkgatom)+" | Installed from: "+red(installedfrom)) diff --git a/libraries/entropy.py b/libraries/entropy.py index c344f6c22..8218654a4 100644 --- a/libraries/entropy.py +++ b/libraries/entropy.py @@ -1471,6 +1471,25 @@ class EquoInterface(TextInterface): data['removalQueue'] += removal return data,status + def validatePackageRemoval(self, idpackage): + system_pkg = self.clientDbconn.isSystemPackage(idpackage) + if not system_pkg: + return True # valid + + pkgatom = self.clientDbconn.retrieveAtom(idpackage) + # check if the package is slotted and exist more than one installed first + sysresults = self.clientDbconn.atomMatch(self.entropyTools.dep_getkey(pkgatom), multiMatch = True) + slots = set() + if sysresults[1] == 0: + for x in sysresults[0]: + slots.add(self.clientDbconn.retrieveSlot(x)) + if len(slots) < 2: + return False + return True # valid + else: + return False + + def retrieveRemovalQueue(self, idpackages, deep = False): queue = [] treeview = self.generate_depends_tree(idpackages, deep = deep) diff --git a/spritz/src/spritz.glade b/spritz/src/spritz.glade index d3689ac23..ebc65657f 100644 --- a/spritz/src/spritz.glade +++ b/spritz/src/spritz.glade @@ -938,8 +938,8 @@ True True - GTK_POLICY_ALWAYS - GTK_POLICY_ALWAYS + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC GTK_SHADOW_IN GTK_CORNER_TOP_LEFT