From 27c318542f68fb9094d95f91424dba8ded90463b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= Date: Thu, 15 Jan 2015 16:51:58 -0600 Subject: [PATCH] scripts/rrs_update/__init__.py: Improve remove old recipes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now if recipe have two differente versions there are compared using bb.utils.vercmp_string in order to delete the old one. Signed-off-by: Aníbal Limón --- scripts/rrs_update/__init__.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/scripts/rrs_update/__init__.py b/scripts/rrs_update/__init__.py index a8ff9af..95146ee 100644 --- a/scripts/rrs_update/__init__.py +++ b/scripts/rrs_update/__init__.py @@ -112,17 +112,23 @@ class RrsUpdater: recipe.delete() self._logger.debug('_remove_native_recipes: %s delete' % (recipe.pn)) - def _remove_older_recipes(self, cmp_recipe): - pname = cmp_recipe.pn - pversion = cmp_recipe.pv - recipes = Recipe.objects.filter(pn__iexact = pname).filter(pv__lt = pversion) - if recipes.count(): - # Remove git recipes with no versioning if tarballs exist - if pversion == 'git': - Recipe.objects.filter(pn__exact = pname).filter(pv__exact = - pversion).delete() - else: - recipes.delete() + def _remove_older_recipes(self, recipe): + # get recipes with the same pn + recipes = Recipe.objects.filter(pn__iexact = recipe.pn) + + if recipes.count() == 1: + return + + if 'git' in recipe.pv: + recipe.delete() + else: + # remove recipes that have minor version + for r in recipes: + if r.id == recipe.id: + continue + + if bb.utils.vercmp_string(r.pv, recipe.pv) == -1: + r.delete() """ Get configuration data required by tinfoil for poky layer.