From 898294d0f27d062fe9e86bc99b41868fe4927afe Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Tue, 24 Jan 2012 20:47:54 +0100 Subject: [PATCH] [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. --- client/text_rescue.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/client/text_rescue.py b/client/text_rescue.py index e905ee6a9..4942a2de7 100644 --- a/client/text_rescue.py +++ b/client/text_rescue.py @@ -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,