aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/portage/dbapi/bintree.py')
-rw-r--r--lib/portage/dbapi/bintree.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py
index 6446fde95..a6e1f9773 100644
--- a/lib/portage/dbapi/bintree.py
+++ b/lib/portage/dbapi/bintree.py
@@ -291,6 +291,24 @@ class bindbapi(fakedbapi):
elif binpkg_format == "gpkg":
mybinpkg = portage.gpkg.gpkg(self.settings, cpv_str, binpkg_path)
mydata = mybinpkg.get_metadata()
+ if mybinpkg.signature_exist:
+ writemsg(
+ colorize(
+ "WARN",
+ f"Binpkg update ignored for signed package: {binpkg_path}, "
+ "the file will be removed.",
+ )
+ )
+ try:
+ os.remove(binpkg_path)
+ except OSError as err:
+ writemsg(
+ colorize(
+ "WARN",
+ f"Failed to remove moved signed package: {binpkg_path} {str(err)}",
+ )
+ )
+ return
encoding_key = False
else:
raise InvalidBinaryPackageFormat(
@@ -687,7 +705,6 @@ class binarytree:
)
continue
- moves += 1
binpkg_format = get_binpkg_format(binpkg_path)
if binpkg_format == "xpak":
mytbz2 = portage.xpak.tbz2(binpkg_path)
@@ -708,6 +725,8 @@ class binarytree:
else:
continue
+ moves += 1
+
updated_items = update_dbentries([mylist], mydata, parent=mycpv)
mydata.update(updated_items)
if decode_metadata_name: