From 1fd3a4061fd8409812003d73f1947d3e2ba3f020 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Thu, 12 Dec 2024 18:47:23 +0100 Subject: [PATCH] add support for `tar.xz` tarballs (#4974) * tar.xz * add magic bytes for `tar.xz` --- platformio/package/meta.py | 2 +- platformio/package/unpack.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/platformio/package/meta.py b/platformio/package/meta.py index d7fdfdfa..e4398cff 100644 --- a/platformio/package/meta.py +++ b/platformio/package/meta.py @@ -396,7 +396,7 @@ class PackageSpec: # pylint: disable=too-many-instance-attributes parts.path.endswith(".git"), # Handle GitHub URL (https://github.com/user/package) parts.netloc in ("github.com", "gitlab.com", "bitbucket.com") - and not parts.path.endswith((".zip", ".tar.gz")), + and not parts.path.endswith((".zip", ".tar.gz", ".tar.xz")), ] hg_conditions = [ # Handle Developer Mbed URL diff --git a/platformio/package/unpack.py b/platformio/package/unpack.py index f819fd2f..ea140ae9 100644 --- a/platformio/package/unpack.py +++ b/platformio/package/unpack.py @@ -152,6 +152,7 @@ class FileUnpacker: magic_map = { b"\x1f\x8b\x08": TARArchiver, b"\x42\x5a\x68": TARArchiver, + b"\xfd\x37\x7a\x58\x5a\x00": TARArchiver, b"\x50\x4b\x03\x04": ZIPArchiver, } magic_len = max(len(k) for k in magic_map)