[elbe-devel] [PATCH v2 14/22] virtapt: add apt_pkg.DepCache member and mathods using it

Torben Hohn torben.hohn at linutronix.de
Tue Jul 2 12:55:36 CEST 2019


make virtapt more similar to how RPCAptCache works.

the only user "elbe check_updates" has the DepCache as private variable
currently. But, for downloading of packages, the DepCache is also needed.

Create self.depcache and read the pinning file, which is already generated
by the VirtApt constructor.
Then add methods, taking pkgnames as parameters.

Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
---
 elbepack/virtapt.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/elbepack/virtapt.py b/elbepack/virtapt.py
index ae7fe94fc..71d7d54c0 100644
--- a/elbepack/virtapt.py
+++ b/elbepack/virtapt.py
@@ -140,6 +140,13 @@ class VirtApt(object):
         except BaseException as e:
             print(e)
 
+        try:
+            self.depcache = apt_pkg.DepCache(self.cache)
+            prefs_name = self.basefs.fname("/etc/apt/preferences")
+            self.depcache.read_pinfile(prefs_name)
+        except BaseException as e:
+            print(e)
+
     def add_key(self, key):
         cmd = 'echo "%s" > %s' % (key, self.basefs.fname("tmp/key.pub"))
         clean = 'rm -f %s' % self.basefs.fname("tmp/key.pub")
@@ -198,6 +205,17 @@ class VirtApt(object):
                    key,
                    ring_path + '.d'))
 
+    def mark_install(self, pkgname):
+        self.depcache.mark_install(self.cache[pkgname])
+
+    def marked_install(self, pkgname):
+        return self.depcache.marked_install(self.cache[pkgname])
+
+    def get_candidate_ver(self, pkgname):
+        return self.depcache.get_candidate_ver(self.cache[pkgname]).ver_str
+
+    def has_pkg(self, pkgname):
+        return pkgname in self.cache
 
     def get_uri(self, target_pkg, incl_deps=False):
 
-- 
2.11.0




More information about the elbe-devel mailing list