[Uludag-commits] r14662 - branches/pisi-1.1/pisi
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
2 Tem 2007 Pzt 22:06:12 EEST
Author: faik
Date: Mon Jul 2 22:06:12 2007
New Revision: 14662
Modified:
branches/pisi-1.1/pisi/index.py
branches/pisi-1.1/pisi/operations.py
branches/pisi-1.1/pisi/packagedb.py
Log:
- Remove Obsoletes
Modified: branches/pisi-1.1/pisi/index.py
=================================================================
--- branches/pisi-1.1/pisi/index.py (original)
+++ branches/pisi-1.1/pisi/index.py Mon Jul 2 22:06:12 2007
@@ -126,6 +126,7 @@
for comp in self.components:
ctx.componentdb.update_component(comp, repo, txn)
ctx.packagedb.remove_repo(repo, txn=txn)
+ ctx.packagedb.add_obsoletes(self.distribution.obsoletes, repo, txn=txn)
for pkg in self.packages:
ctx.packagedb.add_package(pkg, repo, txn=txn)
update_progress()
Modified: branches/pisi-1.1/pisi/operations.py
=================================================================
--- branches/pisi-1.1/pisi/operations.py (original)
+++ branches/pisi-1.1/pisi/operations.py Mon Jul 2 22:06:12 2007
@@ -226,6 +226,12 @@
if remove(conflicts, ignore_dep=True, ignore_safety=True):
raise Error(_("Conflicts remain"))
+def remove_obsoleted_packages():
+ obsoletes = filter(ctx.installdb.is_installed, ctx.packagedb.get_obsoletes())
+ if obsoletes:
+ if remove(obsoletes, ignore_dep=True, ignore_safety=True):
+ raise Error(_("Obsoleted packages remaining"))
+
def check_conflicts(order, packagedb):
"""check if upgrading to the latest versions will cause havoc
done in a simple minded way without regard for dependencies of
@@ -498,6 +504,8 @@
if replaces:
remove_replaced_packages(order, replaces)
+
+ remove_obsoleted_packages()
for path in paths:
ctx.ui.info(util.colorize(_("Installing %d / %d") % (paths.index(path)+1, len(paths)), "yellow"))
Modified: branches/pisi-1.1/pisi/packagedb.py
=================================================================
--- branches/pisi-1.1/pisi/packagedb.py (original)
+++ branches/pisi-1.1/pisi/packagedb.py Mon Jul 2 22:06:12 2007
@@ -40,16 +40,19 @@
def __init__(self):
self.d = pisi.itembyrepodb.ItemByRepoDB('package')
self.dr = pisi.itembyrepodb.ItemByRepoDB('revdep')
+ self.do = pisi.itembyrepodb.ItemByRepoDB('obsoleted')
self.drp = pisi.itembyrepodb.ItemByRepoDB('replaces')
def close(self):
self.d.close()
self.dr.close()
+ self.do.close()
self.drp.close()
def destroy(self):
self.d.destroy()
self.dr.destroy()
+ self.do.destroy()
self.drp.destroy()
def has_package(self, name, repo=None, txn = None):
@@ -67,6 +70,14 @@
def which_repo(self, name, txn = None):
return self.d.which_repo(name, txn=txn)
+ def get_obsoletes(self, repo=None):
+ obsoletes = []
+ for r in self.do.list(repo):
+ obsoletes.extend(self.do.get_item(r, repo))
+
+ replaces = self.get_replaces(repo)
+ return set(str(o) for o in obsoletes) - set(replaces.keys())
+
# replacesdb holds the info about the replaced packages (ex. gaim -> pidgin)
def get_replaces(self, repo = None):
pairs = {}
@@ -94,6 +105,11 @@
def list_packages(self, repo=None):
return self.d.list(repo)
+ def add_obsoletes(self, obsoletes, repo, txn = None):
+ def proc(txn):
+ self.do.add_item(repo, obsoletes, repo, txn)
+ ctx.txn_proc(proc, txn)
+
def add_package(self, package_info, repo, txn = None):
name = str(package_info.name)
@@ -120,6 +136,7 @@
def clear(self, txn = None):
self.d.clear()
self.dr.clear()
+ self.do.clear()
self.drp.clear()
def remove_package(self, name, repo = None, txn = None):
@@ -151,6 +168,7 @@
def proc(txn):
self.d.remove_repo(repo, txn=txn)
self.dr.remove_repo(repo, txn=txn)
+ self.do.remove_repo(repo, txn=txn)
self.drp.remove_repo(repo, txn=txn)
self.d.txn_proc(proc, txn)
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi