From 0a3d24c86ace57bebc258569f0d00b7d7dd88bc9 Mon Sep 17 00:00:00 2001 From: Miro HronĨok Date: Jan 12 2026 13:24:09 +0000 Subject: source-lookaside: Use Accept: */* to get the sources tarballs Otherwise, the Fedora URL returns an Anubis HTML page. Which in turn leads to: STDERR: + umask 022 + cd /var/str//source + cd /var/str/source + rm -rf urllib3-1.24.2 + /usr/bin/tar -xof /var/str/urllib3-1.24.2.tar.gz gzip: stdin: not in gzip format /usr/bin/tar: Child returned status 1 /usr/bin/tar: Error is not recoverable: exiting now error: Bad exit status from /var/tmp/rpm-tmp.6cjM3o (%prep) Bad exit status from /var/tmp/rpm-tmp.6cjM3o (%prep) Consider: >>> retrieve('https://src.fedoraproject.org/repo/pkgs/rpms/python-urllib3/urllib3-1.24.2.tar.gz/sha512/08e8d896f57eb9af5511d07002859f87f2a7bddbd5e66468908188dfe13d2e3985a8cdd2da12d06d0b337945ca8314c1f026d4e82badf23a09bf686fa121e863/urllib3-1.24.2.tar.gz', '.') './urllib3-1.24.2.tar.gz' Before: $ file urllib3-1.24.2.tar.gz urllib3-1.24.2.tar.gz: HTML document, Unicode text, UTF-8 text, with very long lines (2388) $ head urllib3-1.24.2.tar.gz Making sure you're not a bot!... After: $ file urllib3-1.24.2.tar.gz urllib3-1.24.2.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 962560 --- diff --git a/roles/standard-test-source/library/source-lookaside.py b/roles/standard-test-source/library/source-lookaside.py index 286d9d2..57d36a5 100644 --- a/roles/standard-test-source/library/source-lookaside.py +++ b/roles/standard-test-source/library/source-lookaside.py @@ -34,11 +34,11 @@ import os import shutil try: - from urllib.request import urlopen + from urllib.request import urlopen, Request from urllib.error import URLError from configparser import ConfigParser except ImportError: - from urllib2 import urlopen, URLError + from urllib2 import urlopen, URLError, Request from ConfigParser import ConfigParser ANSIBLE_METADATA = { @@ -165,7 +165,8 @@ def retrieve(url, target): try: with open(dest, 'wb') as fp: - shutil.copyfileobj(urlopen(url), fp) + req = Request(url, headers={'accept': '*/*'}) + shutil.copyfileobj(urlopen(req), fp) except URLError as ex: if not hasattr(ex, "code") or ex.code != 404: logger.error("{0}: {1} {2}".format(name, url, str(ex)))