[equo] force digest = "0" when regenerating packages

During installed packages repository generation, try to use older
digest value (from previous repo db) or force it to "0".
This way, packages with invalid digest will not be considered
during dependency calculation if they're already up-to-date.
This commit is contained in:
Fabio Erculiani
2012-01-24 20:47:54 +01:00
parent 45bd00aff9
commit 898294d0f2

View File

@@ -614,14 +614,18 @@ def _database_generate(entropy_client):
# clean caches
entropy_client.clear_cache()
inst_repo = entropy_client.installed_repository()
# try to collect current installed revisions if possible
# and do the same for digest
revisions_match = {}
digest_match = {}
try:
myids = entropy_client.installed_repository().listAllPackageIds()
myids = inst_repo.listAllPackageIds()
for myid in myids:
myatom = entropy_client.installed_repository().retrieveAtom(myid)
myrevision = entropy_client.installed_repository().retrieveRevision(myid)
revisions_match[myatom] = myrevision
myatom = inst_repo.retrieveAtom(myid)
revisions_match[myatom] = inst_repo.retrieveRevision(myid)
digest_match[myatom] = inst_repo.retrieveDigest(myid)
except:
pass
@@ -699,6 +703,12 @@ def _database_generate(entropy_client):
saved_rev = saved_rev
mydata['revision'] = saved_rev
# set digest to "0" to disable entropy dependencies
# calculation check that forces the pkg to
# be pulled in if digest differs from the one on the repo
saved_digest = digest_match.get(myatom, "0")
mydata['digest'] = saved_digest
idpk = entropy_client.installed_repository().addPackage(mydata,
revision = mydata['revision'], do_commit = False)
entropy_client.installed_repository().storeInstalledPackage(idpk,