From: David Laight <david.laight.linux@gmail.com>
To: Romain Naour via buildroot <buildroot@buildroot.org>
Cc: Romain Naour <romain.naour@smile.fr>, Julien Olivain <ju.o@free.fr>
Subject: Re: [Buildroot] [PATCH] support/dependencies/dependencies.sh: ensure wget2 is > 2.2.0 for metalink support with -O
Date: Sat, 11 Jan 2025 17:18:43 +0000 [thread overview]
Message-ID: <20250111171843.35dff62f@pumpkin> (raw)
In-Reply-To: <20250111162841.3456137-1-romain.naour@smile.fr>
On Sat, 11 Jan 2025 17:28:41 +0100
Romain Naour via buildroot <buildroot@buildroot.org> wrote:
> As reported by Julien Olivain, in some cases the "wget -O output ..."
> does not get honored when GNU Wget2 is used as drop-in replacement for
> GNU Wget.
>
> For example, qt6* packages archives are failing (due to multipart
> downloads: HTTP response 206):
>
> [Files: 1 Bytes: 46.00M [388.39KB/s] Redirects: 1 Todo: 0 Errors: 184
>
> sha256sum: [...]/build/.qtbase-everywhere-src-6.8.1.tar.xz.bFXkzc/output: No such file or directory
> ERROR: while checking hashes from package/qt6/qt6base/qt6base.hash
> ERROR: qtbase-everywhere-src-6.8.1.tar.xz has wrong sha256 hash:
> ERROR: expected: 40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf
> ERROR: got :
> ERROR: Incomplete download, or man-in-the-middle (MITM) attack
>
> Fedora 40 is one of the first Linux distribution providing GNU Wget2 as
> wget [1]. Some incompatibility issues with Wget1.x are discovered with
> early Wget2 versions.
>
> This is the case here with Wget2 2.2.0 and Metalink handling that
> ignore -O option [2][3].
>
> The issue was not noticed until now since the download infrastructure
> uses a mirror (s.b.o) as fallback.
>
> Since wget -O is part of our download infrastructure since 2012.05 [4],
> ensure wget2 is at least 2.2.1 or any newer version that contains the
> -O fix [5].
>
> [1] https://fedoraproject.org/wiki/Changes/Wget2asWget
> [2] https://gitlab.com/gnuwget/wget2/-/issues/685
> [3] https://gitlab.com/gnuwget/wget2/-/blob/0651b0a447e4d6dd3f100800d0d93db90f2bd2fb/docs/wget2.md#-o---output-documentfile
> [4] https://gitlab.com/buildroot.org/buildroot/-/commit/cf2486bf317e4bbf88c801fb96183ba62be78cc8
> [5] https://gitlab.com/gnuwget/wget2/-/commit/15c06c2f2a5f5eaa962893beec97a5211743ec05
>
> Reported-by: Julien Olivain <ju.o@free.fr>
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
> ---
> support/dependencies/dependencies.sh | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index fb0defd0c9..e49831a3fd 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -184,6 +184,21 @@ for prog in perl tar wget cpio unzip rsync bc cmp find xargs ${DL_TOOLS} ; do
> exit 1
> fi
> fi
> +
> + if test $prog = "wget" ; then
> + WGET_VERSION="$(wget --version | head -n1 | cut -d ' ' -f3)"
> + WGET_MAJOR="$(echo "${WGET_VERSION}" | cut -d . -f 1)"
> + WGET_MINOR="$(echo "${WGET_VERSION}" | cut -d . -f 2)"
> + WGET_PATCH="$(echo "${WGET_VERSION}" | cut -d . -f 3)"
How about:
IFS=".$IFS"
set $(wget --version)
WGET_MAJOR=$3
WGET_MINOR=$4
WGET_PATCH=$5
IFS="${IFS#.}"
Saves all those fork+exec.
> +
> + # Wget2 <= 2.2.0 issue with -O : https://gitlab.com/gnuwget/wget2/-/issues/685
> + if [ "${WGET_MAJOR}" -eq 2 ] && \
> + ! [ "${WGET_MAJOR}" -eq 2 -a "${WGET_MINOR}" -ge 2 -a "${WGET_PATCH}" -gt 0 ] ; then
Doesn't that also fail for 2.3.0 ?
I think this is ok:
if [ $WGET_MAJOR = 2 && $WGET_MINOR$WGET_PATCH -le 20 ] ; then
any two digit minor/patch will fail the test.
(And there can't be an separators - so quotes aren't needed.)
David
> + echo
> + echo "You have GNU Wget2 '${WGET_VERSION}' installed. GNU Wget2 > 2.2.0 is is required"
> + exit 1;
> + fi
> + fi
> done
>
> if test "${missing_progs}" = "yes" ; then
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2025-01-11 17:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-11 16:28 [Buildroot] [PATCH] support/dependencies/dependencies.sh: ensure wget2 is > 2.2.0 for metalink support with -O Romain Naour via buildroot
2025-01-11 17:18 ` David Laight [this message]
2025-01-13 13:18 ` Romain Naour via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250111171843.35dff62f@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=buildroot@buildroot.org \
--cc=ju.o@free.fr \
--cc=romain.naour@smile.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.