Skip to content

Commit a975021

Browse files
committed
Merge branch 'master' of https://git.savannah.gnu.org/git/wget.git into mydev
# Conflicts: # configure.ac # src/Makefile.am
2 parents 34368f8 + 9f93ffb commit a975021

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+467
-330
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/ABOUT-NLS~
22
# Project Root
3-
/.sc-start-sc_bindtextdomain
4-
/.sc-start-sc_prohibit_HAVE_MBRTOWC
3+
/.sc-start-*
54
/.version
65
/ABOUT-NLS
76
/aminclude_static.am
@@ -55,6 +54,7 @@ doc/version.texi
5554
doc/wget.1
5655
doc/wget.info
5756
doc/wget.pod
57+
doc/.gitignore
5858
# m4/
5959
m4/.gitignore
6060
m4/gnulib-cache.m4

.gitlab-ci.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ Sanitizers:
300300
- export CFLAGS="$CFLAGS_DEFAULT"
301301
- export CC="ccache clang"
302302
- export UBSAN_OPTIONS=print_stacktrace=1
303-
- export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-8/bin/llvm-symbolizer
303+
- export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
304304
# - export LSAN_OPTIONS=suppressions="$PWD/tests/clang-asan-suppressions"
305305
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
306306
--enable-fsanitize-asan --enable-fsanitize-ubsan
@@ -348,7 +348,9 @@ Scan-Build:
348348
expire_in: 2 weeks
349349
when: on_failure
350350
paths:
351-
- wget-*/scan-build/
351+
- scan-build/
352+
# scan-build reports two false positives that we can't suppress
353+
allow_failure: true
352354

353355
CoverageReports:
354356
stage: test-from-tarball

.prev-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.21.2
1+
1.21.3

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Makefile for `Wget' utility
2-
# Copyright (C) 1995-1997, 2006-2021 Free Software Foundation, Inc.
2+
# Copyright (C) 1995-1997, 2006-2022 Free Software Foundation, Inc.
33

44
# This program is free software; you can redistribute it and/or modify
55
# it under the terms of the GNU General Public License as published by

NEWS

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@ GNU Wget NEWS -- history of user-visible changes.
33
* Noteworthy changes in release ?.? (????-??-??) [?]
44

55

6+
* Noteworthy changes in release 1.21.3 (2022-02-26)
7+
8+
** Fix computation of total bytes downloaded during FTP trasnfers (#61277)
9+
10+
** Add option to select TLS 1.3 on the command line
11+
12+
** Fix HSTS build issues on some 64-bit big-endian systems
13+
14+
** Hide password during status report in --no-verbose
15+
16+
** Remove a sprurious print statement that showed up even during --quiet
17+
18+
** Some more cleanups and bug-fixes
19+
20+
621
* Noteworthy changes in release 1.21.2 (2021-09-07)
722

823
** Support for autoconf 2.71
@@ -1172,7 +1187,7 @@ geturl -vo log http://fly.cc.fer.hr/
11721187
----------------------------------------------------------------------
11731188
Copyright information:
11741189

1175-
Copyright (C) 1997-2021 Free Software Foundation, Inc.
1190+
Copyright (C) 1997-2022 Free Software Foundation, Inc.
11761191

11771192
Permission is granted to anyone to make or distribute verbatim
11781193
copies of this document as received, in any medium, provided that

README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ the file AUTHORS for a list of major contributors, and the ChangeLogs
6060
for a detailed listing of all contributions.
6161

6262

63-
Copyright (C) 1995-2021 Free Software Foundation, Inc.
63+
Copyright (C) 1995-2022 Free Software Foundation, Inc.
6464

6565
This program is free software; you can redistribute it and/or modify
6666
it under the terms of the GNU General Public License as published by

README.checkout

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Testing and development
161161
that bug, which might be tedious. Tests should only be run through GDB for that purpose.
162162

163163

164-
Copyright (C) 2008, 2010, 2014-2015, 2018-2021 Free Software
164+
Copyright (C) 2008, 2010, 2014-2015, 2018-2022 Free Software
165165
Foundation, Inc.
166166
License GPLv3+: GNU GPL version 3 or later
167167
<https://www.gnu.org/licenses/gpl.html>.

bootstrap

Lines changed: 131 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#! /bin/sh
22
# Print a version string.
3-
scriptversion=2021-04-11.09; # UTC
3+
scriptversion=2022-01-26.05; # UTC
44

55
# Bootstrap this package from checked-out sources.
66

7-
# Copyright (C) 2003-2021 Free Software Foundation, Inc.
7+
# Copyright (C) 2003-2022 Free Software Foundation, Inc.
88

99
# This program is free software: you can redistribute it and/or modify
1010
# it under the terms of the GNU General Public License as published by
@@ -313,6 +313,116 @@ find_tool ()
313313
eval "export $find_tool_envvar"
314314
}
315315

316+
# Strip blank and comment lines to leave significant entries.
317+
gitignore_entries() {
318+
sed '/^#/d; /^$/d' "$@"
319+
}
320+
321+
# If $STR is not already on a line by itself in $FILE, insert it at the start.
322+
# Entries are inserted at the start of the ignore list to ensure existing
323+
# entries starting with ! are not overridden. Such entries support
324+
# whitelisting exceptions after a more generic blacklist pattern.
325+
insert_if_absent() {
326+
file=$1
327+
str=$2
328+
test -f $file || touch $file
329+
test -r $file || die "Error: failed to read ignore file: $file"
330+
duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
331+
if [ "$duplicate_entries" ] ; then
332+
die "Error: Duplicate entries in $file: " $duplicate_entries
333+
fi
334+
linesold=$(gitignore_entries $file | wc -l)
335+
linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
336+
if [ $linesold != $linesnew ] ; then
337+
{ echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
338+
|| die "insert_if_absent $file $str: failed"
339+
fi
340+
}
341+
342+
# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
343+
# insert_if_absent.
344+
insert_vc_ignore() {
345+
vc_ignore_file="$1"
346+
pattern="$2"
347+
case $vc_ignore_file in
348+
*.gitignore)
349+
# A .gitignore entry that does not start with '/' applies
350+
# recursively to subdirectories, so prepend '/' to every
351+
# .gitignore entry.
352+
pattern=$(echo "$pattern" | sed s,^,/,);;
353+
esac
354+
insert_if_absent "$vc_ignore_file" "$pattern"
355+
}
356+
357+
symlink_to_dir()
358+
{
359+
src=$1/$2
360+
dst=${3-$2}
361+
362+
test -f "$src" && {
363+
364+
# If the destination directory doesn't exist, create it.
365+
# This is required at least for "lib/uniwidth/cjk.h".
366+
dst_dir=$(dirname "$dst")
367+
if ! test -d "$dst_dir"; then
368+
mkdir -p "$dst_dir"
369+
370+
# If we've just created a directory like lib/uniwidth,
371+
# tell version control system(s) it's ignorable.
372+
# FIXME: for now, this does only one level
373+
parent=$(dirname "$dst_dir")
374+
for dot_ig in x $vc_ignore; do
375+
test $dot_ig = x && continue
376+
ig=$parent/$dot_ig
377+
insert_vc_ignore $ig "${dst_dir##*/}"
378+
done
379+
fi
380+
381+
if $copy; then
382+
{
383+
test ! -h "$dst" || {
384+
echo "$me: rm -f $dst" &&
385+
rm -f "$dst"
386+
}
387+
} &&
388+
test -f "$dst" &&
389+
cmp -s "$src" "$dst" || {
390+
echo "$me: cp -fp $src $dst" &&
391+
cp -fp "$src" "$dst"
392+
}
393+
else
394+
# Leave any existing symlink alone, if it already points to the source,
395+
# so that broken build tools that care about symlink times
396+
# aren't confused into doing unnecessary builds. Conversely, if the
397+
# existing symlink's timestamp is older than the source, make it afresh,
398+
# so that broken tools aren't confused into skipping needed builds. See
399+
# <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
400+
test -h "$dst" &&
401+
src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
402+
dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
403+
test "$src_i" = "$dst_i" &&
404+
both_ls=$(ls -dt "$src" "$dst") &&
405+
test "X$both_ls" = "X$dst$nl$src" || {
406+
dot_dots=
407+
case $src in
408+
/*) ;;
409+
*)
410+
case /$dst/ in
411+
*//* | */../* | */./* | /*/*/*/*/*/)
412+
die "invalid symlink calculation: $src -> $dst";;
413+
/*/*/*/*/) dot_dots=../../../;;
414+
/*/*/*/) dot_dots=../../;;
415+
/*/*/) dot_dots=../;;
416+
esac;;
417+
esac
418+
419+
echo "$me: ln -fs $dot_dots$src $dst" &&
420+
ln -fs "$dot_dots$src" "$dst"
421+
}
422+
fi
423+
}
424+
}
425+
316426
# Override the default configuration, if necessary.
317427
# Make sure that bootstrap.conf is sourced from the current directory
318428
# if we were invoked as "sh bootstrap".
@@ -375,47 +485,6 @@ if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
375485
die "Bootstrapping from a non-checked-out distribution is risky."
376486
fi
377487

378-
# Strip blank and comment lines to leave significant entries.
379-
gitignore_entries() {
380-
sed '/^#/d; /^$/d' "$@"
381-
}
382-
383-
# If $STR is not already on a line by itself in $FILE, insert it at the start.
384-
# Entries are inserted at the start of the ignore list to ensure existing
385-
# entries starting with ! are not overridden. Such entries support
386-
# whitelisting exceptions after a more generic blacklist pattern.
387-
insert_if_absent() {
388-
file=$1
389-
str=$2
390-
test -f $file || touch $file
391-
test -r $file || die "Error: failed to read ignore file: $file"
392-
duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
393-
if [ "$duplicate_entries" ] ; then
394-
die "Error: Duplicate entries in $file: " $duplicate_entries
395-
fi
396-
linesold=$(gitignore_entries $file | wc -l)
397-
linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
398-
if [ $linesold != $linesnew ] ; then
399-
{ echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
400-
|| die "insert_if_absent $file $str: failed"
401-
fi
402-
}
403-
404-
# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
405-
# insert_if_absent.
406-
insert_vc_ignore() {
407-
vc_ignore_file="$1"
408-
pattern="$2"
409-
case $vc_ignore_file in
410-
*.gitignore)
411-
# A .gitignore entry that does not start with '/' applies
412-
# recursively to subdirectories, so prepend '/' to every
413-
# .gitignore entry.
414-
pattern=$(echo "$pattern" | sed s,^,/,);;
415-
esac
416-
insert_if_absent "$vc_ignore_file" "$pattern"
417-
}
418-
419488
# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
420489
found_aux_dir=no
421490
grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
@@ -694,9 +763,25 @@ if $use_gnulib; then
694763
shallow=
695764
if test -z "$GNULIB_REVISION"; then
696765
git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
766+
git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
767+
|| cleanup_gnulib
768+
else
769+
git fetch -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
770+
mkdir -p "$gnulib_path"
771+
# Only want a shallow checkout of $GNULIB_REVISION, but git does not
772+
# support cloning by commit hash. So attempt a shallow fetch by commit
773+
# hash to minimize the amount of data downloaded and changes needed to
774+
# be processed, which can drastically reduce download and processing
775+
# time for checkout. If the fetch by commit fails, a shallow fetch can
776+
# not be performed because we do not know what the depth of the commit
777+
# is without fetching all commits. So fallback to fetching all commits.
778+
git -C "$gnulib_path" init
779+
git -C "$gnulib_path" remote add origin ${GNULIB_URL:-$default_gnulib_url}
780+
git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
781+
|| git -C "$gnulib_path" fetch origin \
782+
|| cleanup_gnulib
783+
git -C "$gnulib_path" reset --hard FETCH_HEAD
697784
fi
698-
git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
699-
|| cleanup_gnulib
700785

701786
trap - 1 2 13 15
702787
fi
@@ -813,75 +898,6 @@ case $SKIP_PO in
813898
fi;;
814899
esac
815900

816-
symlink_to_dir()
817-
{
818-
src=$1/$2
819-
dst=${3-$2}
820-
821-
test -f "$src" && {
822-
823-
# If the destination directory doesn't exist, create it.
824-
# This is required at least for "lib/uniwidth/cjk.h".
825-
dst_dir=$(dirname "$dst")
826-
if ! test -d "$dst_dir"; then
827-
mkdir -p "$dst_dir"
828-
829-
# If we've just created a directory like lib/uniwidth,
830-
# tell version control system(s) it's ignorable.
831-
# FIXME: for now, this does only one level
832-
parent=$(dirname "$dst_dir")
833-
for dot_ig in x $vc_ignore; do
834-
test $dot_ig = x && continue
835-
ig=$parent/$dot_ig
836-
insert_vc_ignore $ig "${dst_dir##*/}"
837-
done
838-
fi
839-
840-
if $copy; then
841-
{
842-
test ! -h "$dst" || {
843-
echo "$me: rm -f $dst" &&
844-
rm -f "$dst"
845-
}
846-
} &&
847-
test -f "$dst" &&
848-
cmp -s "$src" "$dst" || {
849-
echo "$me: cp -fp $src $dst" &&
850-
cp -fp "$src" "$dst"
851-
}
852-
else
853-
# Leave any existing symlink alone, if it already points to the source,
854-
# so that broken build tools that care about symlink times
855-
# aren't confused into doing unnecessary builds. Conversely, if the
856-
# existing symlink's timestamp is older than the source, make it afresh,
857-
# so that broken tools aren't confused into skipping needed builds. See
858-
# <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
859-
test -h "$dst" &&
860-
src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
861-
dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
862-
test "$src_i" = "$dst_i" &&
863-
both_ls=$(ls -dt "$src" "$dst") &&
864-
test "X$both_ls" = "X$dst$nl$src" || {
865-
dot_dots=
866-
case $src in
867-
/*) ;;
868-
*)
869-
case /$dst/ in
870-
*//* | */../* | */./* | /*/*/*/*/*/)
871-
die "invalid symlink calculation: $src -> $dst";;
872-
/*/*/*/*/) dot_dots=../../../;;
873-
/*/*/*/) dot_dots=../../;;
874-
/*/*/) dot_dots=../;;
875-
esac;;
876-
esac
877-
878-
echo "$me: ln -fs $dot_dots$src $dst" &&
879-
ln -fs "$dot_dots$src" "$dst"
880-
}
881-
fi
882-
}
883-
}
884-
885901
version_controlled_file() {
886902
parent=$1
887903
file=$2
@@ -1093,7 +1109,7 @@ bootstrap_epilogue
10931109

10941110
echo "$0: done. Now you can run './configure'."
10951111

1096-
# Local variables:
1112+
# Local Variables:
10971113
# eval: (add-hook 'before-save-hook 'time-stamp)
10981114
# time-stamp-start: "scriptversion="
10991115
# time-stamp-format: "%:y-%02m-%02d.%02H"

bootstrap.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# bootstrap.conf - Bootstrap configuration.
2-
# Copyright (C) 2007-2012, 2018-2021 Free Software Foundation, Inc.
2+
# Copyright (C) 2007-2012, 2018-2022 Free Software Foundation, Inc.
33
#
44
# This file is part of GNU Wget.
55
#

0 commit comments

Comments
 (0)