[openwrt/openwrt] scripts/download.pl: fix downloads with wget

LEDE Commits lede-commits at lists.infradead.org
Wed Sep 21 02:53:22 PDT 2022


ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/c07c565ea671e9929b99fbd28c58bde5f5e50070

commit c07c565ea671e9929b99fbd28c58bde5f5e50070
Author: Petr Štetiar <ynezz at true.cz>
AuthorDate: Tue Sep 13 07:40:37 2022 +0200

    scripts/download.pl: fix downloads with wget
    
    Several users of wget for downloads (curl is not available in the
    system) have reported broken download functionality:
    
     wget --tries=5 --timeout=20 --output-document=-  https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.142.tar.xz
     http://: Invalid host name.
    
    Thats all happening due to '' was passed as an argument, which got later
    expanded to http://.
    
    In the context of a list constructor '' is not nothing, it is an empty
    string element.  So fix it by using () as it will yield "nothing" and
    thus not introduce an empty string element.
    
    Fixes: #10692
    Fixes: 90c6e3aedf16 ("scripts: always check certificates")
    Signed-off-by: Jo-Philipp Wich <jo at mein.io> [shellwords() -> ()]
    Signed-off-by: Petr Štetiar <ynezz at true.cz>
    (cherry picked from commit 50a48faa1b8424e6b4b436b7118fffa2cba14b18)
---
 scripts/download.pl | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/scripts/download.pl b/scripts/download.pl
index 16f808da09..bfee84762d 100755
--- a/scripts/download.pl
+++ b/scripts/download.pl
@@ -84,8 +84,14 @@ sub download_cmd($) {
 	}
 
 	return $have_curl
-		? (qw(curl -f --connect-timeout 20 --retry 5 --location), $check_certificate ? '' : '--insecure', shellwords($ENV{CURL_OPTIONS} || ''), $url)
-		: (qw(wget --tries=5 --timeout=20 --output-document=-), $check_certificate ? '' : '--no-check-certificate', shellwords($ENV{WGET_OPTIONS} || ''), $url)
+		? (qw(curl -f --connect-timeout 20 --retry 5 --location),
+			$check_certificate ? () : '--insecure',
+			shellwords($ENV{CURL_OPTIONS} || ''),
+			$url)
+		: (qw(wget --tries=5 --timeout=20 --output-document=-),
+			$check_certificate ? () : '--no-check-certificate',
+			shellwords($ENV{WGET_OPTIONS} || ''),
+			$url)
 	;
 }
 




More information about the lede-commits mailing list