timplement checking if a package with a lower priority is newer - amprolla - devuan's apt repo merger (HTM) git clone git://parazyd.org/amprolla.git (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit fd7239cebe21187c34ff7b4c56bd70ebf32716e2 (DIR) parent 6dd25d4218ae3536eaffd1eee3dd05f8836ee49d (HTM) Author: parazyd <parazyd@dyne.org> Date: Mon, 12 Jun 2017 14:07:46 +0200 implement checking if a package with a lower priority is newer Diffstat: M lib/package.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+), 0 deletions(-) --- (DIR) diff --git a/lib/package.py b/lib/package.py t@@ -92,6 +92,20 @@ def package_banned(pkg, banned_pkgs): return bool(deps.intersection(banned_pkgs)) +def package_newer(pkg1, pkg2): + """ + Checks whether the package of a lower priority is newer than the package + of the higher priority and returns True if so. + """ + higher_prio = pkg1.get('Version').split('+') + lower_prio = pkg2.get('Version').split('+') + + if lower_prio[0] > higher_prio[0]: + return True + + return False + + def merge_packages(pkg1, pkg2, name1, name2, banned_packages=set(), rewriter=None): """ t@@ -110,6 +124,12 @@ def merge_packages(pkg1, pkg2, name1, name2, banned_packages=set(), if rewriter: pkg1_pkg = rewriter(pkg1_pkg, name1) new_pkgs[pkg] = pkg1_pkg + if package_newer(pkg1_pkg, pkg2_pkg): + # TODO: proper logfile + print('There is a newer version of "%s"' % + pkg1_pkg.get('Package')) + print('Old version: %s' % pkg1_pkg.get('Version')) + print('New version: %s' % pkg2_pkg.get('Version')) elif pkg1_pkg: if not package_banned(pkg1_pkg, banned_packages): if rewriter: