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