From 168d7921dbdbc1fd5f51ca180156b0ff9f182e77 Mon Sep 17 00:00:00 2001 From: nrb <freifunk@nicoboehr.de> Date: Wed, 30 Dec 2020 12:55:14 +0100 Subject: [PATCH] fix symlinks in zip archives not being extracted correctly --- download-latest-firmware-build.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/download-latest-firmware-build.py b/download-latest-firmware-build.py index 29cdacd..409e02c 100755 --- a/download-latest-firmware-build.py +++ b/download-latest-firmware-build.py @@ -10,6 +10,7 @@ import os.path import re import tempfile import sys +import subprocess GITLAB_API_BASE = "https://gitlab.freifunk-stuttgart.de/api/v4" PROJECT_ID = 1 @@ -34,7 +35,9 @@ def extract_zip(artifact_zipfile): with zipfile.ZipFile(artifact_zipfile) as artifact_zip: version = find_version_from_archive(artifact_zip.infolist()) with tempfile.TemporaryDirectory(dir=os.getcwd()) as tempdir: - artifact_zip.extractall(tempdir) + # Python ZipFile doesn't support symlinks + # https://bugs.python.org/issue27318 + subprocess.check_call(['unzip', artifact_zipfile.name, '-d{}'.format(tempdir)], stdin=artifact_zipfile) outputdir = os.path.join(tempdir, "gluon", "output") os.rename(outputdir, version) return version -- GitLab