Skip to content

Skip virtual packages when parsing APKINDEX

postmarketOS Bot requested to merge fix/1273-missing-key-timestamp into master

Created by: ollieparanoid

Since PR #1247 we are using the virtual package .pmbootstrap to mark packages as not explcitly installed. In case pmbootstrap doesn't finish the installation because of a bug, the .pmbootstrap virtual package may not get uninstalled.

As virtual packages don't have the "timestamp" attribute set in the package database (which indicates when the package was built), the APKINDEX parser fails to parse them.

Changes:

  • pmb.parse.apkindex.parse_next_block(): don't require the "timestamp" attribute to be set (but the arch attribute instead, which is always present)
  • pmb.parse.apkindex.parse(): when a block does not have a timestamp attribute, skip it, because it must be a virtual package.
  • add test cases for both functions with a package database that contains a virtual package.

Fixes #1273 (closed).

Merge request reports