aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/portage/binpkg.py')
-rw-r--r--lib/portage/binpkg.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/portage/binpkg.py b/lib/portage/binpkg.py
index ed2fda827..f3f149b14 100644
--- a/lib/portage/binpkg.py
+++ b/lib/portage/binpkg.py
@@ -17,8 +17,8 @@ def get_binpkg_format(binpkg_path):
try:
with open(binpkg_path, "rb") as binpkg_file:
- header = binpkg_file.read(6)
- if header == b"gpkg-1":
+ header = binpkg_file.read(100)
+ if b"/gpkg-1\x00" in header:
file_format = "gpkg"
else:
binpkg_file.seek(-16, 2)
@@ -32,7 +32,9 @@ def get_binpkg_format(binpkg_path):
if file_format is None:
try:
with tarfile.open(binpkg_path) as gpkg_tar:
- if "gpkg-1" in gpkg_tar.getnames():
+ if "gpkg-1" in [
+ f.split("/", maxsplit=1)[-1] for f in gpkg_tar.getnames()
+ ]:
file_format = "gpkg"
except tarfile.TarError:
pass