mirror of
https://github.com/mirror/wget.git
synced 2026-08-20 01:43:29 +08:00
Compare commits
160 Commits
master
...
parallel-w
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af702340a1 | ||
|
|
6140b1b6e3 | ||
|
|
c22b806ee0 | ||
|
|
ca69294c8a | ||
|
|
87a5922141 | ||
|
|
99ccc492f4 | ||
|
|
825716399c | ||
|
|
21908a4b13 | ||
|
|
ecd69778bf | ||
|
|
d26c8ebb16 | ||
|
|
507383df07 | ||
|
|
195393bf41 | ||
|
|
42e482ad99 | ||
|
|
82f44f303a | ||
|
|
31e5f33b5e | ||
|
|
422171da81 | ||
|
|
df96c81cf3 | ||
|
|
60a95d8393 | ||
|
|
35ab8cdd7a | ||
|
|
9020b71c18 | ||
|
|
b31e6e4674 | ||
|
|
b828a6e4a7 | ||
|
|
7effa90359 | ||
|
|
7e1f4c1abc | ||
|
|
f616192dfd | ||
|
|
31868fed6c | ||
|
|
59a03f15dd | ||
|
|
fa670282ee | ||
|
|
0d58672dc6 | ||
|
|
93597efe7b | ||
|
|
3010d9c281 | ||
|
|
ebfae2c353 | ||
|
|
15d167e264 | ||
|
|
b87cee3763 | ||
|
|
1a48da4cdc | ||
|
|
349cbd0dd5 | ||
|
|
d9f1cd05c1 | ||
|
|
921a23d60c | ||
|
|
7d18fd1025 | ||
|
|
43ca403306 | ||
|
|
93ad38686a | ||
|
|
89024dda4f | ||
|
|
00c93a0625 | ||
|
|
44c821227c | ||
|
|
cb5c287f02 | ||
|
|
3dfba0bec8 | ||
|
|
fd80f6e878 | ||
|
|
db4262d6dd | ||
|
|
7743384820 | ||
|
|
b703633715 | ||
|
|
0758f47954 | ||
|
|
43bb61b4e3 | ||
|
|
d4d0e6378c | ||
|
|
f5785003b1 | ||
|
|
8b1a9b6de7 | ||
|
|
e84192a8d3 | ||
|
|
99659f3295 | ||
|
|
cb94e52d0f | ||
|
|
886ac1a89b | ||
|
|
e74c2ec25e | ||
|
|
48644f174e | ||
|
|
b6f9efe7b5 | ||
|
|
4c9e6b4f71 | ||
|
|
e13bc90211 | ||
|
|
60d1f4d1ad | ||
|
|
738b299419 | ||
|
|
9b9d16b2f3 | ||
|
|
ae958db622 | ||
|
|
50b4f0c72b | ||
|
|
dccc154a0e | ||
|
|
4445d48471 | ||
|
|
f29fded6f4 | ||
|
|
a528894d13 | ||
|
|
7bb672a487 | ||
|
|
747023c476 | ||
|
|
29cf6bb9d1 | ||
|
|
3595b9de52 | ||
|
|
2d1196b116 | ||
|
|
74d5c8bfb7 | ||
|
|
fec5bb9e93 | ||
|
|
5f48ec1500 | ||
|
|
8560182d57 | ||
|
|
8e5038747b | ||
|
|
82126ccb67 | ||
|
|
ced4c1de82 | ||
|
|
04fcd759fd | ||
|
|
e9058befae | ||
|
|
c1a44a16ef | ||
|
|
5a0f05423a | ||
|
|
3217905144 | ||
|
|
e23e8101db | ||
|
|
2dd255596a | ||
|
|
979a485a9a | ||
|
|
617bb37d6e | ||
|
|
0717a886c2 | ||
|
|
2f2483214c | ||
|
|
e6d8e165c5 | ||
|
|
7c8735a6ee | ||
|
|
c24dce1d07 | ||
|
|
e7e869f951 | ||
|
|
bfe30ea754 | ||
|
|
dcc6abee90 | ||
|
|
4cd6292b31 | ||
|
|
6b59fab021 | ||
|
|
1d18db4bac | ||
|
|
ed8335aa76 | ||
|
|
87a2b8dcb6 | ||
|
|
a41525e5c2 | ||
|
|
76790a386a | ||
|
|
c25d01feb7 | ||
|
|
f51826d9d8 | ||
|
|
721697aef6 | ||
|
|
270460da98 | ||
|
|
fa9aaf2ce6 | ||
|
|
eb01e9d442 | ||
|
|
2807c5c56d | ||
|
|
e37ea16957 | ||
|
|
5abb1dc188 | ||
|
|
54e5b5d373 | ||
|
|
768202bf88 | ||
|
|
5e2c6fefe4 | ||
|
|
0ea58b0c31 | ||
|
|
3d19087207 | ||
|
|
dc7e47d4d1 | ||
|
|
b1bc6efc8a | ||
|
|
d65343a57b | ||
|
|
68dbb9ead7 | ||
|
|
98db799759 | ||
|
|
8cfac52713 | ||
|
|
11d09dd001 | ||
|
|
159c371492 | ||
|
|
38b1df95f9 | ||
|
|
f07e0a67b4 | ||
|
|
47bd180ab0 | ||
|
|
198acf4844 | ||
|
|
5090e0c433 | ||
|
|
bb28bda88f | ||
|
|
9fd1e97e40 | ||
|
|
40493a76fe | ||
|
|
6f102902ad | ||
|
|
26ca40970a | ||
|
|
2f6ef8922b | ||
|
|
39aaaf57f8 | ||
|
|
5f4debb6f8 | ||
|
|
2b8e2f8879 | ||
|
|
b5a8d663f7 | ||
|
|
44f75a1955 | ||
|
|
f4c42b94d8 | ||
|
|
1e1054db8a | ||
|
|
5c608df4e1 | ||
|
|
8bc3dbf2d4 | ||
|
|
7ccf4210f6 | ||
|
|
8c66c94989 | ||
|
|
15bfd733f9 | ||
|
|
f63e2230d7 | ||
|
|
693b791082 | ||
|
|
02d225b5ca | ||
|
|
671d681304 | ||
|
|
6ceea0d064 | ||
|
|
fc220632fb |
27
.gitignore
vendored
27
.gitignore
vendored
@@ -1,8 +1,7 @@
|
||||
/ABOUT-NLS~
|
||||
# Project Root
|
||||
/.sc-start-*
|
||||
/.sc-start-sc_bindtextdomain
|
||||
/.sc-start-sc_prohibit_HAVE_MBRTOWC
|
||||
/.version
|
||||
/ABOUT-NLS
|
||||
/GNUmakefile
|
||||
/INSTALL
|
||||
/Makefile
|
||||
@@ -14,27 +13,16 @@
|
||||
/config.status
|
||||
/configure
|
||||
/lib/
|
||||
!/lib/Makefile.am
|
||||
/maint.mk
|
||||
/gnulib_po/
|
||||
/aminclude_static.am
|
||||
# Wildcard Ignores
|
||||
*~
|
||||
po/*.gmo*
|
||||
po/*.po*
|
||||
src/*.o
|
||||
tests/*.log
|
||||
tests/*.trs
|
||||
testenv/*.log
|
||||
testenv/*.trs
|
||||
fuzz/*
|
||||
!fuzz/*.*
|
||||
fuzz/*.o
|
||||
fuzz/*.log
|
||||
fuzz/*.trs
|
||||
# build-aux/
|
||||
build-aux/.gitignore
|
||||
build-aux/ar-lib
|
||||
build-aux/compile
|
||||
build-aux/config.guess
|
||||
build-aux/config.sub
|
||||
@@ -54,7 +42,6 @@ doc/version.texi
|
||||
doc/wget.1
|
||||
doc/wget.info
|
||||
doc/wget.pod
|
||||
doc/.gitignore
|
||||
# m4/
|
||||
m4/.gitignore
|
||||
m4/gnulib-cache.m4
|
||||
@@ -67,8 +54,6 @@ po/Makefile.in
|
||||
po/Makevars
|
||||
po/POTFILES
|
||||
po/wget.pot
|
||||
po/stamp-po
|
||||
po/remove-potcdate.sed
|
||||
# src/
|
||||
src/.deps/
|
||||
src/Makefile
|
||||
@@ -96,17 +81,11 @@ testenv/Makefile.in
|
||||
# tests/
|
||||
tests/Makefile
|
||||
tests/Makefile.in
|
||||
tests/WgetTest.pm
|
||||
tests/unit-tests
|
||||
tests/unit-tests.o
|
||||
tests/.deps/
|
||||
tests/certs/interca.conf
|
||||
tests/certs/rootca.conf
|
||||
# util/
|
||||
util/Makefile
|
||||
util/Makefile.in
|
||||
# fuzz/
|
||||
fuzz/.deps/
|
||||
fuzz/Makefile.in
|
||||
# others
|
||||
/tags
|
||||
/cscope.out
|
||||
|
||||
507
.gitlab-ci.yml
507
.gitlab-ci.yml
@@ -1,507 +0,0 @@
|
||||
# we utilize the images generated by the build-images project, to
|
||||
# speed up CI runs. We also use ccache and store config.cache
|
||||
# to speed up compilation.
|
||||
|
||||
stages:
|
||||
- test-from-git
|
||||
- test-from-tarball
|
||||
- deploy
|
||||
|
||||
cache:
|
||||
key: "$CI_JOB_NAME"
|
||||
paths:
|
||||
- cache/
|
||||
|
||||
before_script:
|
||||
# CCache Config
|
||||
- mkdir -p cache
|
||||
- export CCACHE_BASEDIR=${PWD}
|
||||
- export CCACHE_DIR=${PWD}/cache
|
||||
- echo $CCACHE_DIR
|
||||
- export CC="ccache gcc"
|
||||
|
||||
after_script:
|
||||
# somehow after_script loses environment
|
||||
- export CCACHE_BASEDIR=${PWD}
|
||||
- export CCACHE_DIR=${PWD}/cache
|
||||
- if type -p ccache >/dev/null; then ccache -s; fi
|
||||
|
||||
variables:
|
||||
BUILD_IMAGES_PROJECT: gnuwget/build-images
|
||||
CI_BASE_PATH: $CI_REGISTRY/$BUILD_IMAGES_PROJECT/wget
|
||||
DEBIAN_OLDSTABLE_BUILD: buildenv-debian-oldstable
|
||||
DEBIAN_TESTING_BUILD: buildenv-debian-testing
|
||||
DEBIAN_STABLE_BUILD: buildenv-debian-stable
|
||||
CENTOS_OLDLTS_BUILD: buildenv-centos7
|
||||
FEDORA_BUILD: buildenv-fedora
|
||||
MINGW_BUILD: buildenv-mingw
|
||||
ARCH_BUILD: buildenv-arch
|
||||
GET_SOURCES_ATTEMPTS: "3"
|
||||
GIT_DEPTH: "5"
|
||||
CONFIGURE_BASE_FLAGS: --enable-assert --cache-file cache/config.cache
|
||||
CFLAGS_DEFAULT: -O0 -g -ggdb3
|
||||
|
||||
CommitCheck:
|
||||
stage: test-from-git
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
script:
|
||||
- ./contrib/commit-check
|
||||
allow_failure: true
|
||||
cache:
|
||||
paths:
|
||||
policy: push
|
||||
|
||||
|
||||
# Create the tarball in a separate build directory (VPATH).
|
||||
Build-Tarball:
|
||||
stage: test-from-git
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap
|
||||
- autoreconf -fi
|
||||
- mkdir vpath && cd vpath
|
||||
- ../configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--without-ssl --enable-ipv6 --without-zlib --without-libiconv-prefix
|
||||
--disable-iri --disable-ntlm --disable-pcre --without-libpsl --without-libuuid
|
||||
--without-libintl-prefix
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) syntax-check
|
||||
- make -j$(nproc) dist
|
||||
- mv wget-*.gz ..
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- vpath/*.log
|
||||
- vpath/fuzz/*.log
|
||||
- vpath/tests/*.log
|
||||
- vpath/testenv/*.log
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_success
|
||||
paths:
|
||||
- wget-*.gz
|
||||
|
||||
Valgrind:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Minimal:
|
||||
stage: test-from-tarball
|
||||
image: $CI_BASE_PATH/debian:testing-minimal
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--disable-nls --without-ssl --enable-ipv6 --without-zlib --without-libiconv-prefix
|
||||
--disable-iri --disable-ntlm --disable-pcre --without-libpsl --without-libuuid
|
||||
--without-libintl-prefix
|
||||
- make -j$(nproc) check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Debian-OldStable:
|
||||
stage: test-from-tarball
|
||||
image: $CI_BASE_PATH/debian:oldstable
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Debian-Stable:
|
||||
stage: test-from-tarball
|
||||
image: $CI_BASE_PATH/debian:stable
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
CentOS-OldLTS:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS_OLDLTS_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
# The test suite is currently broken, so a temporary allowance
|
||||
allow_failure: true
|
||||
|
||||
TLS/OpenSSL:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache --with-ssl=openssl
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
TLS/GnuTLS:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache --with-ssl=gnutls
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Sanitizers:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
# - export CFLAGS="$CFLAGS_DEFAULT -Werror"
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- export CC="ccache clang"
|
||||
- export UBSAN_OPTIONS=print_stacktrace=1
|
||||
- export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
|
||||
# - export LSAN_OPTIONS=suppressions="$PWD/tests/clang-asan-suppressions"
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--enable-fsanitize-asan --enable-fsanitize-ubsan
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Scan-Build:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- scan-build ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make -C lib -j$(nproc)
|
||||
- make -C src css_.o
|
||||
- scan-build -v -enable-checker nullability --keep-empty --status-bugs -o ../scan-build make -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- scan-build/
|
||||
# scan-build reports two false positives that we can't suppress
|
||||
allow_failure: true
|
||||
|
||||
CoverageReports:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make -j$(nproc) check-coverage
|
||||
- mv lcov ../test-coverage
|
||||
- make -C doc html
|
||||
- make -j$(nproc) fuzz-coverage
|
||||
- mv lcov ../fuzz-coverage
|
||||
- make dist
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
when: on_success
|
||||
paths:
|
||||
- test-coverage/
|
||||
- fuzz-coverage/
|
||||
only:
|
||||
- master
|
||||
|
||||
MinGW64:
|
||||
stage: test-from-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
- echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
|
||||
- export CC="ccache $PREFIX-gcc"
|
||||
- export GCCLIB=$(dirname $(find /usr/lib/gcc/$PREFIX -name libgcc_s_seh-1.dll|grep posix))
|
||||
- export WINEPATH="$WINEPATH;/usr/$PREFIX/bin;/usr/$PREFIX/lib;$PWD/libwget/.libs;$GCCLIB"
|
||||
- echo "WINEPATH=$WINEPATH"
|
||||
- LIBS="-ldl -lpsapi" ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared
|
||||
- make -j$(nproc)
|
||||
- cp -p src/wget.exe src/wget
|
||||
- make check -j$(nproc) LOG_COMPILER=wine
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./config.h
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
# The MinGW64 build breaks quite often, mostly due to dependencies.
|
||||
allow_failure: true
|
||||
|
||||
# Build from git should work on Arch.
|
||||
ArchLinux:
|
||||
stage: test-from-git
|
||||
image: $CI_BASE_PATH/archlinux
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap
|
||||
- autoreconf -fi
|
||||
- touch .manywarnings
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc)
|
||||
- make check -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
needs: []
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
# Build from git should work on Fedora.
|
||||
Fedora:
|
||||
stage: test-from-git
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap
|
||||
- autoreconf -fi
|
||||
- touch .manywarnings
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
needs: []
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- mkdir -p public
|
||||
- rm -rf public/reference public/coverage public/fuzz-coverage
|
||||
- mv wget-*.gz public/wget-latest.tar.gz
|
||||
- mv test-coverage public/coverage
|
||||
- mv fuzz-coverage public/fuzz-coverage
|
||||
dependencies:
|
||||
- CoverageReports
|
||||
- Build-Tarball
|
||||
artifacts:
|
||||
when: on_success
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "gnulib"]
|
||||
path = gnulib
|
||||
url = https://git.savannah.gnu.org/git/gnulib.git
|
||||
url = git://git.sv.gnu.org/gnulib.git
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
extraction:
|
||||
cpp:
|
||||
prepare:
|
||||
packages:
|
||||
- libgpgme11-dev
|
||||
- autoconf-archive
|
||||
configure:
|
||||
command: ./bootstrap && autoreconf -ivf && ./configure
|
||||
13
.mailmap
13
.mailmap
@@ -1,13 +0,0 @@
|
||||
Tim Rühsen <tim.ruehsen@gmx.de> Tim Ruehsen <tim.ruehsen@gmx.de>
|
||||
Tim Rühsen <tim.ruehsen@gmx.de> rockdaboot <tim.ruehsen@gmx.de>
|
||||
Darshit Shah <darnir@gnu.org> <darnir@gmail.com>
|
||||
Darshit Shah <darnir@gnu.org> <darnir@reniac.com>
|
||||
Ander Juaristi <ajuaristi@gmx.es> <a@juaristi.eus>
|
||||
Ander Juaristi <ajuaristi@gmx.es> Ander Juaristi Alamos <ajuaristi@gmx.es>
|
||||
Micah Cowan <micah@cowan.name> micah <devnull@localhost>
|
||||
Steven Schubiger <stsc@members.fsf.org> Steven Schubiger <stsc@member.fsf.org>
|
||||
Steven Schubiger <stsc@members.fsf.org> <schubiger@gmail.com>
|
||||
Giuseppe Scrivano <gscrivano@gnu.org> <gscrivan@redhat.com>
|
||||
Gisle Vanem <gisle.vanem@gmail.com> <gvanem@yahoo.no>
|
||||
Gisle Vanem <gisle.vanem@gmail.com> <gvanem@broadpark.no>
|
||||
Gisle Vanem <gisle.vanem@gmail.com> <giva@bgnett.no>
|
||||
@@ -1 +0,0 @@
|
||||
1.24.5
|
||||
406
AUTHORS
406
AUTHORS
@@ -1,366 +1,58 @@
|
||||
Authors of GNU Wget.
|
||||
Thank you very much for spending your time !
|
||||
|
||||
[ Note that this file does not attempt to list all the contributors to
|
||||
Wget; look at the ChangeLogs for that. This is a list of people who
|
||||
contributed sizeable amounts of code and assigned the copyright to
|
||||
the FSF. ]
|
||||
|
||||
This list of contributors is maintained in
|
||||
(more or less) the order of date of first commit.
|
||||
Those with the "ASSGN" tag have assigned the copyrights
|
||||
of their patches to the FSF.
|
||||
Hrvoje Niksic. Designed and implemented Wget.
|
||||
|
||||
The list was generated on 14.05.23 by parsing the ChangeLog
|
||||
file until 2014 and the git commit history after that.
|
||||
Gordon Matzigkeit. Wrote netrc.c and netrc.h.
|
||||
|
||||
Current Maintainers:
|
||||
Darko Budor. Wrote initial support for Windows, wrote wsstartup.c,
|
||||
wsstartup.h and windecl.h. (The files were later renamed, but his
|
||||
code and ideas remained present.)
|
||||
|
||||
[ASSGN] Darshit Shah *darnir [at] gnu.org*
|
||||
[ASSGN] Tim Rühsen *tim.ruehsen [at] gmx.de*
|
||||
Junio Hamano. Added support for FTP Opie and HTTP digest
|
||||
authentication.
|
||||
|
||||
Contributors:
|
||||
Dan Harkless. Added --backup-converted, --follow-tags, --html-extension,
|
||||
--ignore-tags, and --page-requisites; improved documentation; etc. Was
|
||||
the principle maintainer of GNU Wget for some time.
|
||||
|
||||
Christian Fraenkel. Initially implemented SSL support.
|
||||
|
||||
[ASSGN] Hrvoje Niksic *hniksic [at] srce.hr*
|
||||
Designed and implemented Wget.
|
||||
[ ] Hrvoje Lacko *hlacko [at] fly.cc.fer.hr*
|
||||
[ ] Antonio Rosella *antonio.rosella [at] agip.it*
|
||||
[ ] Drazen Kacar *dave [at] fly.cc.fer.hr*
|
||||
[ ] Tage Stabell-Kulo *tage [at] acm.org*
|
||||
[ ] Shawn McHorse *riffraff [at] txdirect.net*
|
||||
[ ] Mark Boyns *boyns [at] sdsu.edu*
|
||||
[ ] Dieter Baron *dillo [at] danbala.tuwien.ac.at*
|
||||
[ ] Gregor Hoffleit *flight [at] mathi.uni-heidelberg.DE*
|
||||
[ ] Kaveh R. Ghazi *ghazi [at] caip.rutgers.edu*
|
||||
[ASSGN] Gordon Matzigkeit *gord [at] gnu.ai.mit.edu*
|
||||
Wrote netrc.c and netrc.h.
|
||||
[ASSGN] Darko Budor *dbudor [at] zems.fer.hr*
|
||||
Wrote initial support for Windows, wrote wsstartup.c,
|
||||
wsstartup.h and windecl.h.(The files were later renamed,
|
||||
but his code and ideas remained present.)
|
||||
[ ] Roger Beeman *beeman [at] cisco.com*
|
||||
[ ] Marin Purgar *pmc [at] asgard.hr*
|
||||
[ ] gilles Cedoc *gilles [at] cedocar.fr*
|
||||
[ ] Karl Eichwalder *ke [at] ke.Central.DE*
|
||||
[ ] Fila Kolodny *fila [at] ibi.com*
|
||||
[ ] Andreas Schwab *schwab [at] issan.informatik.uni-dortmund.de*
|
||||
[ ] Mike Thomas *mthomas [at] reality.ctron.com*
|
||||
[ ] Francois Pinard *pinard [at] iro.umontreal.ca*
|
||||
[ ] Jordan Mendelson *jordy [at] wserv.com*
|
||||
[ ] Karl Heuer *kwzh [at] gnu.org*
|
||||
[ ] Andy Eskilsson *andy.eskilsson [at] telelogic.se*
|
||||
[ ] Karl Eichwalder *ke [at] suse.de*
|
||||
[ ] Simon Josefsson *jas [at] pdc.kth.se*
|
||||
[ ] Karl Eichwalder *karl [at] suse.de*
|
||||
[ASSGN] Junio Hamano *junio [at] twinsun.com*
|
||||
Added support for FTP Opie and HTTP digest authentication.
|
||||
[ ] Tim Adam *tma [at] osa.com.au*
|
||||
[ ] Wanderlei Cavassin *cavassin [at] conectiva.com.br*
|
||||
[ASSGN] Jan Prikryl *prikryl [at] cg.tuwien.ac.at*
|
||||
[ ] John *john [at] futuresguide.com*
|
||||
[ ] Tim Charron *tcharron [at] interlog.com*
|
||||
[ ] Robert Schmidt *rsc [at] vingmed.no*
|
||||
[ ] Stefan Hornburg *racke [at] gundel.han.de*
|
||||
[ ] Giovanni Bortolozzo *borto [at] dei.unipd.it*
|
||||
[ ] Gregor Hoffleit *flight [at] mathi.uni-heidelberg.de*
|
||||
[ ] Douglas E. Wegscheid *wegscd [at] whirlpool.com*
|
||||
[ ] Toomas Soome *tsoome [at] ut.ee*
|
||||
[ ] Simos KSenitellis *simos [at] teiath.gr*
|
||||
[ ] Juan Jose Rodriguez *jcnsoft [at] jal1.telmex.net.mx*
|
||||
[ ] Dominique Delamarre *dominique.delamarre [at] hol.fr*
|
||||
[ ] Martin Kraemer *Martin.Kraemer [at] mch.sni.de*
|
||||
[ ] Mathieu Guillaume *mat [at] cythere.com*
|
||||
[ ] Alexander Kourakos *awk [at] bnt.com*
|
||||
[ ] Dave Love *d.love [at] dl.ac.uk*
|
||||
[ ] Heinz Salzmann *heinz.salzmann [at] intermetall.de*
|
||||
[ ] Adam D. Moss *adam [at] foxbox.org*
|
||||
[ ] Howard Gayle *howard [at] fjst.com*
|
||||
[ ] Hans Grobler *grobh [at] conde.ee.sun.ac.za*
|
||||
[ ] Szakacsits Szabolcs *szaka [at] sienet.hu*
|
||||
[ ] Simon Munton *simonm [at] m4data.co.uk*
|
||||
[ ] Edward J. Sabol *sabol [at] alderaan.gsfc.nasa.gov*
|
||||
[ ] "R. K. Owen" *rkowen [at] Nersc.GOV*
|
||||
[ ] Alexander V. Lukyanov *lav [at] yars.free.net*
|
||||
[ ] andrew deryabin *djsf [at] softhome.net*
|
||||
[ ] Heiko Herold *Heiko.Herold [at] previnet.it*
|
||||
[ ] Dan Berger *dberger [at] ix.netcom.com*
|
||||
[ ] Charles G Waldman *cgw [at] fnal.gov*
|
||||
[ ] Damir Dzeko *ddzeko [at] zesoi.fer.hr*
|
||||
[ASSGN] Dan Harkless *wget [at] harkless.org*
|
||||
Added --backup-converted, --follow-tags, --html-extension,
|
||||
--ignore-tags, and --page-requisites;
|
||||
improved documentation; etc. Was the principle maintainer
|
||||
of GNU Wget for some time.
|
||||
[ ] Daniel S. Lewart *d-lewart [at] uiuc.edu*
|
||||
[ ] HIROSE Masaaki *hirose31 [at] t3.rim.or.jp*
|
||||
[ ] Const Kaplinsky *const [at] ce.cctpu.edu.ru*
|
||||
[ ] John Daily *jdaily [at] cyberdude.com*
|
||||
[ ] Adrian Aichner *adrian [at] xemacs.org*
|
||||
[ ] Matthew Seaman *m.seaman [at] inpharmatica.co.uk*
|
||||
[ ] Tyler Riddle *triddle [at] liquidmarket.com*
|
||||
[ ] John Summerfield *summer [at] OS2.ami.com.au*
|
||||
[ ] Csaba Raduly *csaba.raduly [at] sophos.com*
|
||||
[ ] Igor Khristophorov *igor [at] atdot.org*
|
||||
[ ] Adrian Aichner *Adrian.Aichner [at] t-online.de*
|
||||
[ ] Jonas Jensen *bones [at] huleboer.dk*
|
||||
[ ] Tim Mooney *mooney [at] dogbert.cc.ndsu.NoDak.edu*
|
||||
[ ] Hack Kampbjørn *hack [at] hackdata.com*
|
||||
[ ] Philipp Thomas *pthomas [at] suse.de*
|
||||
[ ] Nicolas Lichtmaier *nick [at] debian.org*
|
||||
[ ] KOJIMA Hajime *kjm [at] rins.ryukoku.ac.jp*
|
||||
[ ] Paul Bludov *paul [at] ozero.net*
|
||||
[ ] Trond Eivind Glomsrod *teg [at] redhat.com*
|
||||
[ASSGN] Ian Abbott *abbotti [at] mev.co.uk*
|
||||
Contributed bugfixes, Windows-related fixes, provided a
|
||||
prototype implementation of the new recursive code, and more.
|
||||
Co-maintained Wget during the 1.8 release cycle.
|
||||
[ASSGN] Maciej W. Rozycki *macro [at] ds2.pg.gda.pl*
|
||||
[ ] R.I.P. Deaddog *maddog [at] linuxhall.org*
|
||||
[ ] Adam J. Richter *adam [at] yggdrasil.com*
|
||||
[ ] Dave Turner *dct25 [at] hermes.cam.ac.uk*
|
||||
[ASSGN] Christian Fraenkel *c.fraenkel [at] gmx.net*
|
||||
Initially implemented SSL support.
|
||||
[ ] Daniel BODEA *dali [at] dali-designs.com*
|
||||
[ ] Alan Eldridge *alane [at] geeksrus.net*
|
||||
[ ] Chris Seawood *cls [at] seawood.org*
|
||||
[ ] Peter Farmer *peter.farmer [at] zveno.com*
|
||||
[ ] Jochen Hein *jochen [at] jochen.org*
|
||||
[ ] Lemble Gregory *gregory.lemble [at] st.com*
|
||||
[ ] Ingo T. Storm *tux-sparc [at] computerbild.de*
|
||||
[ ] T. Bharath *TBharath [at] responsenetworks.com*
|
||||
[ ] Andre Majorel *amajorel [at] teaser.fr*
|
||||
[ ] Christian Lackas *delta [at] lackas.net*
|
||||
[ ] Andreas Damm *andreas-sourceforge [at] radab.org*
|
||||
[ ] Chin-yuan Kuo *sr1111111 [at] yahoo.com.tw*
|
||||
[ASSGN] Thomas Lussnig *thomas.lussnig [at] bewegungsmelder.de*
|
||||
Initially implemented IPv6 support.
|
||||
[ ] Bill Richardson *bill [at] riverstonenet.com*
|
||||
[ASSGN] Nicolas Schodet *contact [at] ni.fr.eu.org*
|
||||
Contributed to cookie code and documentation.
|
||||
[ ] Ahmon Dancy *dancy [at] dancysoft.com*
|
||||
[ ] Noel Kothe *noel [at] debian.org*
|
||||
[ ] Aurelien Marchand *artaxerxes [at] users.sf.net*
|
||||
[ ] Aaron S. Hawley *Aaron.Hawley [at] uvm.edu*
|
||||
[ ] Bertrand Demiddelaer *bert [at] b3rt.org*
|
||||
[ ] Matthew J. Mellon *mellon [at] tymenet.com*
|
||||
[ASSGN] Gisle Vanem *giva [at] bgnett.no*
|
||||
Contributed Windows and MS-DOS improvements, including a
|
||||
port of run_with_timeout to Windows, additions to Makefiles,
|
||||
and many bug reports and fixes.
|
||||
[ ] Philip Stadermann *philip.stadermann [at] credativ.de*
|
||||
[ ] Dennis Smit *ds [at] nerds-incorporated.org*
|
||||
[ ] Christian Biere *christianbiere [at] gmx.de*
|
||||
[ ] David Fritz *zeroxdf [at] att.net*
|
||||
[ ] Jens Roesner *jens.roesner [at] gmx.de*
|
||||
[ ] Nico R. *n-roeser [at] gmx.net*
|
||||
[ ] Larry Jones *lawrence.jones [at] ugsplm.com*
|
||||
[ ] YAMAZAKI Makoto *Yamazaki.Makoto [at] fujixerox.co.jp*
|
||||
[ ] Hans-Andreas Engel *engel [at] node.ch*
|
||||
[ ] Leonid Petrov *nouser [at] lpetrov.net*
|
||||
[ ] Ulf Harnhammar *ulf.harnhammar.9485 [at] student.uu.se*
|
||||
[ASSGN] Mauro Tortonesi *mauro [at] ferrara.linux.it*
|
||||
Improved IPv6 support, adding support for dual
|
||||
family systems. Refactored and enhanced FTP IPv6 code.
|
||||
Maintained GNU Wget from 2004-2007.
|
||||
[ ] Marco Colombo *m.colombo [at] ed.ac.uk*
|
||||
[ ] Joseph Caretto *jcaretto [at] pitt.edu*
|
||||
[ ] FUJISHIMA Satsuki *sf [at] FreeBSD.org*
|
||||
[ ] Charles C.Fu *ccwf [at] bacchus.com*
|
||||
[ ] Andreas Beckmann *debian [at] abeckmann.de*
|
||||
[ ] Keith Moore *keithmo [at] exmsft.com*
|
||||
[ ] Benno Schulenberg *benno [at] nietvergeten.nl*
|
||||
[ ] Giuseppe Bonacci *g.bonacci [at] libero.it*
|
||||
[ ] Vasil Dimov *vd [at] datamax.bg*
|
||||
[ ] Albert Chin *wget [at] mlists.thewrittenword.com*
|
||||
[ ] Jeremy Shapiro *jnshapiro [at] gmail.com*
|
||||
[ ] Stepan Kasal *kasal [at] ucw.cz*
|
||||
[ ] Russ Allbery *rra [at] stanford.edu*
|
||||
[ASSGN] Daniel Stenberg *daniel [at] haxx.se*
|
||||
NTLM authentication in http-ntlm.c and http-ntlm.h
|
||||
originally written for curl donated for use in GNU Wget.
|
||||
[ ] Lawrence Jones *lawrence.jones [at] ugs.com*
|
||||
[ ] CHEN Peng *chenpeng [at] alumni.nus.edu.sg*
|
||||
[ASSGN] Tony Lewis *tlewis [at] exelana.com*
|
||||
[ ] KJKHyperion *hackbunny [at] reactos.com*
|
||||
[ ] Daniel Richard G. *skunk [at] iSKUNK.ORG*
|
||||
[ ] Mike Grant *mggr [at] pml.ac.uk*
|
||||
[ASSGN] Micah Cowan *micah [at] cowan.name*
|
||||
Maintained Wget from mid-2007 to mid-2010.
|
||||
[ASSGN] Joshua David Williams *yurimxpxman [at] gmail.com*
|
||||
[ASSGN] Ralf Wildenhues *Ralf.Wildenhues [at] gmx.de*
|
||||
Contributed patches to convert Wget to use Automake as
|
||||
part of its build process, and various bugfixes.
|
||||
[ ] Jochen Roderburg *roderburg [at] uni-koeln.de*
|
||||
[ ] Stephen Gildea *stepheng+wget [at] gildea.com*
|
||||
[ ] Benno Schulenberg *bensberg [at] justemail.net*
|
||||
[ ] Alexander Dergachev *cy6erbr4in [at] gmail.com*
|
||||
[ASSGN] Rabin Vincent *rabin [at] rab.in*
|
||||
[ASSGN] Steven Schubiger *schubiger [at] gmail.com*
|
||||
Many helpful patches, bugfixes and improvements.
|
||||
Notably, conversion of Wget to use the Gnulib quotes and
|
||||
quoteargs modules, and the addition of password prompts
|
||||
at the console, via the Gnulib getpasswd-gnu module.
|
||||
[ ] Alain Guibert *alguibert+bts [at] free.fr*
|
||||
[ ] Jim Paris *jim [at] jtan.com*
|
||||
[ASSGN] Mike Frysinger *vapier [at] gentoo.org*
|
||||
[ ] Pranab Shenoy *pranab.loosinit.shenoy [at] gmail.com*
|
||||
[ASSGN] Ted Mielczarek *ted.mielczarek [at] gmail.com*
|
||||
Support for parsing links from CSS.
|
||||
[ASSGN] Joao Ferreira *joao [at] joaoff.com*
|
||||
[ ] Kenny Parnell *k.parnell [at] gmail.com*
|
||||
[ ] Henri Häkkinen *henux [at] users.sourceforge.net*
|
||||
[ASSGN] Madhusudan Hosaagrahara *com.gmail.hrmadhu*
|
||||
[ASSGN] Xavier Saint *wget [at] sxav.eu*
|
||||
Support for IRIs (RFC 3987).
|
||||
[ ] Michael Kessler *kessler.michael [at] aon.at*
|
||||
[ ] Alexander Drozdov *dzal_mail [at] mtu-net.ru*
|
||||
[ ] Alexander Belopolsky *alexander.belopolsky [at] gmail.com*
|
||||
[ASSGN] Gerardo E. Gidoni *gerel [at] gnu.org*
|
||||
[ ] Benjamin Wolsey *bwy [at] benjaminwolsey.de*
|
||||
[ ] Xin Zou *zouxin2008 [at] gmail.com*
|
||||
[ ] Julien Pichon *julienpichon7 [at] gmail.com*
|
||||
[ ] Phil Pennock *mutt-dev [at] spodhuis.org*
|
||||
[ ] Jay Krell *jay.krell [at] cornell.edu*
|
||||
[ASSGN] Steven Schweda *sms [at] antinode.info*
|
||||
[ASSGN] Petr Pisar *petr.pisar [at] atlas.cz*
|
||||
[ ] Marcel Telka *marcel [at] telka.sk*
|
||||
[ ] Michael Baeuerle *michael.baeuerle [at] gmx.net*
|
||||
[ASSGN] Arvind Jamuna Dixit *ardsrk [at] gmail.com*
|
||||
[ ] Peter Rosin *peda [at] lysator.liu.se*
|
||||
[ ] David Holman *holman.david [at] gmail.com*
|
||||
[ ] Jeremy Olexa *darkside [at] gentoo.org*
|
||||
[ ] Paul Townsend *aab [at] purdue.edu*
|
||||
[ASSGN] Giuseppe Scrivano *gscrivano [at] gnu.org*
|
||||
Added support for HTTP/1.1.
|
||||
Active Wget Maintainer from 2010-2015.
|
||||
[ ] Muthu Subramanian K *muthusuba [at] gmail.com*
|
||||
[ ] Alan Jenkins *alan-jenkins [at] tuffmail.co.uk*
|
||||
[ ] John Trengrove *jtrengrove [at] gmail.com*
|
||||
[ ] Alon Bar-Lev *alon.barlev [at] gmail.com*
|
||||
[ASSGN] Reza Snowdon *vivi [at] mage.me.uk*
|
||||
[ASSGN] Dennis, CHENG Renquan *crquan [at] fedoraproject.org*
|
||||
[ASSGN] Merinov Nikolay *kim.roader [at] gmail.com*
|
||||
[ ] Ivanov Anton *x86mail [at] gmail.com*
|
||||
[ ] Manfred Koizar *mkoi-pg [at] aon.at*
|
||||
[ASSGN] Jessica McKellar *jesstess [at] mit.edu*
|
||||
[ ] Filipe Brandenburger *filbranden [at] gmail.com*
|
||||
[ ] Evgeniy Philippov *egphilippov [at] googlemail.com*
|
||||
[ ] Adrien Nader *adrien [at] notk.org*
|
||||
[ ] Gilles Carry *gilles.carry [at] st.com*
|
||||
[ ] Tomasz Buchert *tomek.buchert [at] gmail.com*
|
||||
[ASSGN] Ray Satiro *raysatiro [at] yahoo.com*
|
||||
[ ] Cristian Rodríguez *crrodriguez [at] opensuse.org*
|
||||
[ASSGN] Daniel Manrique *roadmr [at] tomechangosubanana.com*
|
||||
[ ] Carlos Martín Nieto *carlos [at] cmartin.tk*
|
||||
[ ] Jochen Roderburg *Roderburg [at] Uni-Koeln.DE*
|
||||
[ ] Mojca Miklavec *mojca.miklavec.lists [at] gmail.com*
|
||||
[ ] Alan Hourihane *alanh [at] fairlite.co.uk*
|
||||
[ ] Christian Jullien *eligis [at] orange.fr*
|
||||
[ ] Jakob Matthes *jakob.matthes [at] gmail.com*
|
||||
[ ] Karl Berry *karl [at] freefriends.org*
|
||||
[ ] Henrik Holst *henrik.holst [at] millistream.com*
|
||||
[ASSGN] Gijs van Tulder *gvtulder [at] gmail.com*
|
||||
[ASSGN] Sasikantha Babu *sasikanth.v19 [at] gmail.com*
|
||||
[ ] Ángel González *keisial [at] gmail.com*
|
||||
[ ] Daniel Kahn Gillmor *dkg [at] fifthhorseman.net*
|
||||
[ ] illusionoflife *illusion.of.life92 [at] gmail.com*
|
||||
[ ] mancha *mancha [at] mac.hush.com*
|
||||
[ ] *y-iida [at] secom.co.jp*
|
||||
[ ] Rohit Mathulla *rohit_mathulla [at] yahoo.com*
|
||||
[ ] Nguyễn Thái Ngọc Duy *pclouds [at] gmail.com*
|
||||
[ ] Stefano Lattarini *stefano.lattarini [at] gmail.com*
|
||||
[ ] Michael Stapelberg *michael [at] stapelberg.de*
|
||||
[ ] Pavel Mateja *pavel [at] netsafe.cz*
|
||||
[ASSGN] Darshit Shah *darnir [at] gnu.org*
|
||||
[ ] Tomas Hozza *thozza [at] redhat.com*
|
||||
[ ] mancha *mancha1 [at] hush.com*
|
||||
[ASSGN] Bykov Aleksey *gnfalex [at] rambler.ru*
|
||||
[ ] Dave Reisner *dreisner [at] archlinux.org*
|
||||
[ ] Ciprian Vieru *devel.php [at] gmail.com*
|
||||
[ ] Karsten Hopp *karsten [at] redhat.com*
|
||||
[ ] Will Dietz *w [at] wdtz.org*
|
||||
[ ] Andrea Urbani *matfanjol [at] mail.com*
|
||||
[ ] Håkon Vågsether *hauk142 [at] gmail.com*
|
||||
[ ] Lars Wendler *polynomial-c [at] gentoo.org*
|
||||
[ASSGN] Yousong Zhou *yszhou4tech [at] gmail.com*
|
||||
[ ] Vladimír Pýcha *vpycha [at] gmail.com*
|
||||
[ASSGN] Zihang Chen *chsc4698 [at] gmail.com*
|
||||
[ ] Benjamin Goose *gans+wget [at] tngtech.com*
|
||||
[ ] Nikita Vetrov *admin [at] kanaria.ru*
|
||||
[ ] Nikolay Morozov *n.morozov [at] securitycode.ru*
|
||||
[ ] Matthew Atkinson *mutley456 [at] ntlworld.com*
|
||||
[ ] Peter Meiser *meiser [at] gmx-topmail.de*
|
||||
[ ] Pär Karlsson *feinorgh [at] gmail.com*
|
||||
[ ] Jakub Čajka *jcajka [at] redhat.com*
|
||||
[ ] Witchakorn Kamolpornwijit *witchakk [at] mit.edu*
|
||||
[ ] Tom Li *biergaizi2009 [at] gmail.com*
|
||||
[ ] Jérémie Courrèges-Anglas *jca [at] wxcvbn.org*
|
||||
[ ] Cong Ma *cma [at] pmo.ac.cn*
|
||||
[ ] Yuriy M. Kaminskiy *yumkam [at] gmail.com*
|
||||
[ASSGN] Eli Zaretskii *eliz [at] gnu.org*
|
||||
[ ] Mathieu Parent *math.parent [at] gmail.com*
|
||||
[ ] Dagobert Michelsen *dam [at] opencsw.org*
|
||||
[ ] Gisle Vanem *gvanem [at] yahoo.no*
|
||||
[ ] Anderson Goulart *global [at] kokre.com*
|
||||
[ASSGN] Ander Juaristi Alamos *ajuaristi [at] gmx.es*
|
||||
[ ] Rohan Prinja *rohan.prinja [at] gmail.com*
|
||||
[ASSGN] Hubert Tarasiuk *hubert.tarasiuk [at] gmail.com*
|
||||
[ASSGN] Miquel Llobet *mllobet.cm [at] gmail.com*
|
||||
[ ] Romain Bentz *romain.bentz [at] dataiku.com*
|
||||
[ ] Alex Henrie *alexhenrie24 [at] gmail.com*
|
||||
[ASSGN] Jookia *166291 [at] gmail.com*
|
||||
[ ] Daniele Calore *daniele.calore [at] tin.it*
|
||||
[ ] Christian Neukirchen *chneukirchen [at] gmail.com*
|
||||
[ ] christian fafard *cfaf [at] hotmail.com*
|
||||
[ ] Ikey Doherty *michael.i.doherty [at] intel.com*
|
||||
[ ] Ygal Blum *ygal.blum [at] technicolor.com*
|
||||
[ ] Jernej Simončič *jernej|s-wget [at] eternallybored.org*
|
||||
[ ] Maks Orlovich *morlovich [at] google.com*
|
||||
[ASSGN] moparisthebest *admin [at] moparisthebest.com*
|
||||
[ ] Sergio Gelato *sergio.gelato [at] astro.su.se*
|
||||
[ ] Sean Burford *sburford [at] google.com*
|
||||
[ASSGN] Matthew White *mehw.is.me [at] inventati.org*
|
||||
[ ] Jeffery To *jeffery.to [at] gmail.com*
|
||||
[ ] Tobias Stoeckmann *tobias [at] stoeckmann.org*
|
||||
[ASSGN] Dale R. Worley *worley [at] ariadne.com*
|
||||
[ ] Liam R. Howlett *Liam.Howlett [at] WindRiver.com*
|
||||
[ ] losgrandes *pwajda [at] gmail.net.pl*
|
||||
[ ] Rahul Bedarkar *rahul.bedarkar [at] imgtec.com*
|
||||
[ ] Nikos Mavrogiannopoulos *nmav [at] gnutls.org*
|
||||
[ASSGN] vijeth-aradhya *vijthaaa [at] gmail.com*
|
||||
[ASSGN] Tom Szilagyi *tomszilagyi [at] gmail.com*
|
||||
[ASSGN] YX Hao *lifenjoiner [at] 163.com*
|
||||
[ ] Benjamin Esham *benjamin [at] esham.io*
|
||||
[ ] Christof Horschitz *christof [at] nimbusec.com*
|
||||
[ASSGN] Vijo Cherian *codervijo [at] gmail.com*
|
||||
[ ] klemens *ka7 [at] github.com*
|
||||
[ ] Anton Yuzhaninov *citrin+github [at] citrin.ru*
|
||||
[ASSGN] Tim Schlueter *schlueter.tim [at] linux.com*
|
||||
[ASSGN] Josef Moellers *jmoellers [at] suse.de*
|
||||
[ ] Peter Wu *peter [at] lekensteyn.nl*
|
||||
[ ] Reiji *gey3dr [at] gmail.com*
|
||||
[ ] Loganaden Velvindron *logan [at] hackers.mu*
|
||||
[ ] ethus3h *kolubat [at] gmail.com*
|
||||
[ ] Tomas Korbar *tkorbar [at] redhat.com*
|
||||
[ ] Nikos Mavrogiannopoulos *nmav [at] redhat.com*
|
||||
[ ] Luiz Angelo Daros de Luca *luizluca [at] gmail.com*
|
||||
[ ] Kapus, Timotej *timotej.kapus13 [at] imperial.ac.uk*
|
||||
[ ] Rosen Penev *rosenp [at] gmail.com*
|
||||
[ ] André Wolski *andre [at] dena-design.de*
|
||||
[ ] Leon Klingele *git [at] leonklingele.de*
|
||||
[ASSGN] Jeffrey Walton *noloader [at] gmail.com*
|
||||
[ ] raminfp *ramin.blackhat [at] gmail.com*
|
||||
[ ] Leif Ryge *leif [at] synthesize.us*
|
||||
[ ] Eneas U de Queiroz *cote2004-github [at] yahoo.com*
|
||||
[ ] AviSoomirtee *avi [at] cyberstorm.mu*
|
||||
[ASSGN] sulfastor *torresmoisesa [at] gmail.com*
|
||||
[ ] Lauri Nurmi *lanurmi [at] iki.fi*
|
||||
[ASSGN] Вячеслав Петрищев *vyachemail [at] gmail.com*
|
||||
[ ] Matt Whitlock *gentoo [at] mattwhitlock.name*
|
||||
[ ] Shamil Gumirov *shamil [at] gumirov.com*
|
||||
[ ] Nils *nils [at] nilsand.re*
|
||||
[ ] Nekun *nekokun [at] firemail.cc*
|
||||
[ ] jmoellers *josef.moellers [at] suse.com*
|
||||
[ ] WB *3572564-wadersgeek [at] users.noreply.gitlab.com*
|
||||
[ ] Thomas Niederberger *thomas [at] niederb.ch*
|
||||
[ ] Nik Soggia *wget [at] niksoggia.it*
|
||||
[ ] Aarni Koskela *akx [at] iki.fi*
|
||||
[ ] jinfuchiang *jinfuchiang [at] outlook.com*
|
||||
[ ] Jan-Michael Brummer *jan-michael.brummer1 [at] volkswagen.de*
|
||||
Thomas Lussnig. Initially implemented IPv6 support.
|
||||
|
||||
Ian Abbott. Contributed bugfixes, Windows-related fixes, provided a
|
||||
prototype implementation of the new recursive code, and more.
|
||||
Co-maintained Wget during the 1.8 release cycle.
|
||||
|
||||
Gisle Vanem. Contributed Windows and MS-DOS improvements, including a
|
||||
port of run_with_timeout to Windows, additions to Makefiles, and many
|
||||
bug reports and fixes.
|
||||
|
||||
Mauro Tortonesi. Improved IPv6 support, adding support for dual
|
||||
family systems. Refactored and enhanced FTP IPv6 code. Maintained GNU
|
||||
Wget from 2004-2007.
|
||||
|
||||
Nicolas Schodet. Contributed to cookie code and documentation.
|
||||
|
||||
Daniel Stenberg. NTLM authentication in http-ntlm.c and http-ntlm.h
|
||||
originally written for curl donated for use in GNU Wget.
|
||||
|
||||
Micah Cowan. Maintained Wget from mid-2007 to mid-2010.
|
||||
|
||||
Ralf Wildenhues. Contributed patches to convert Wget to use Automake as
|
||||
part of its build process, and various bugfixes.
|
||||
|
||||
Steven Schubiger. Many helpful patches, bugfixes and improvements.
|
||||
Notably, conversion of Wget to use the Gnulib quotes and quoteargs
|
||||
modules, and the addition of password prompts at the console, via the
|
||||
Gnulib getpasswd-gnu module.
|
||||
|
||||
Ted Mielczarek. Support for parsing links from CSS.
|
||||
|
||||
Saint Xavier. Support for IRIs (RFC 3987).
|
||||
|
||||
Giuseppe Scrivano. Added support for HTTP/1.1. Current Wget maintainer.
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
# Wget Contribution Guidelines
|
||||
|
||||
1. [Guidelines For Patch
|
||||
Submissions](#Guidelines_For_Patch_Submissions)
|
||||
1. [What is a patch ?](#What_is_a_patch.3F)
|
||||
2. [Where to send the patches](#Where_to_send_the_patches)
|
||||
3. [Standards and coding style](#Standards_and_coding_style)
|
||||
|
||||
|
||||
Guidelines For Patch Submissions {#Guidelines_For_Patch_Submissions}
|
||||
================================
|
||||
|
||||
What is a patch ? {#What_is_a_patch.3F}
|
||||
-----------------
|
||||
|
||||
A patch file, also known as a \"diff\", is a textual representation of
|
||||
changes to source code. Patches are readable enough
|
||||
to be reviewed by []{#line-9 .anchor}humans and at the same time regular
|
||||
enough to be processed by programs. The `patch`
|
||||
utility is used to change the source code in the
|
||||
manner that the patch describes, this being called \"applying\" the
|
||||
patch. Patches work even on files that have been
|
||||
modified independently of the modifications in the
|
||||
patch, as long as those other changes do not
|
||||
conflict with the patch.
|
||||
|
||||
Because of these properties, patches are the preferred means of
|
||||
distributing the changes to a free software project.
|
||||
If you have made a change to Wget and would like to
|
||||
contribute it, you will need to create a patch and
|
||||
send it to the developers; please read on.
|
||||
|
||||
Where to send the patches {#Where_to_send_the_patches}
|
||||
-------------------------
|
||||
|
||||
Patches intended to be applied to Wget should be mailed to
|
||||
bug-wget@gnu.org. Each patch will be reviewed by the
|
||||
developers, and will be acked and added to the
|
||||
distribution, or rejected with an explanation.
|
||||
Unfortunately, the developers are often busy with
|
||||
their day jobs, so the review process can take a while.
|
||||
|
||||
*Every* patch should be accompanied by an explanation of what the patch
|
||||
changes, and why the change is desirable or
|
||||
necessary. The explanation need not be long, but
|
||||
please don\'t just send a patch without any
|
||||
accompanying text.
|
||||
|
||||
Please send your patches as email attachments. It is important that the
|
||||
patch survives the travel unchanged so that we can feed it to
|
||||
the `patch` utility or `git am/apply` after or while reviewing it.
|
||||
|
||||
|
||||
Standards and coding style {#Standards_and_coding_style}
|
||||
--------------------------
|
||||
|
||||
Wget abides by the GNU coding standards, available at:
|
||||
|
||||
- https://www.gnu.org/prep/standards.html
|
||||
|
||||
But maybe even better is to stay with the surrounding coding style.
|
||||
|
||||
When working with git: The commit messages needs a certain GNU style
|
||||
format. Please check `git log` for examples. The maintainers might
|
||||
correct small issues here before pushing / applying without asking.
|
||||
8
COPYING
8
COPYING
@@ -1,7 +1,7 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007, 2023 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
21536
ChangeLog-2014-12-10
21536
ChangeLog-2014-12-10
File diff suppressed because it is too large
Load Diff
16
ChangeLog.README
Normal file
16
ChangeLog.README
Normal file
@@ -0,0 +1,16 @@
|
||||
Please note that Wget has more than one ChangeLog file:
|
||||
|
||||
./ChangeLog: documents changes to files in the top-level directory
|
||||
and to files in subdirectories like po/ that don't have
|
||||
their own ChangeLogs
|
||||
|
||||
src/ChangeLog: documents only changes to files in the src directory
|
||||
|
||||
doc/ChangeLog: documents only changes to files in the doc directory
|
||||
|
||||
windows/ChangeLog: documents only changes to files in the windows directory
|
||||
|
||||
msdos/ChangeLog: documents only changes to files in the msdos directory
|
||||
|
||||
When checking to see if a patch you sent in has been applied, please
|
||||
look in the appropriate ChangeLog(s).
|
||||
27
MAILING-LIST
27
MAILING-LIST
@@ -7,14 +7,30 @@ Primary List
|
||||
The primary mailinglist for discussion, bug-reports, or questions about
|
||||
GNU Wget is at <bug-wget@gnu.org>. To subscribe, send an email to
|
||||
<bug-wget-join@gnu.org>, or visit
|
||||
`https://lists.gnu.org/mailman/listinfo/bug-wget'.
|
||||
`http://lists.gnu.org/mailman/listinfo/bug-wget'.
|
||||
|
||||
You do not need to subscribe to send a message to the list; however,
|
||||
please note that unsubscribed messages are moderated, and may take a
|
||||
while before they hit the list--*usually around a day*. If you want
|
||||
your message to show up immediately, please subscribe to the list
|
||||
before posting. Archives for the list may be found at
|
||||
`https://lists.gnu.org/pipermail/bug-wget/'.
|
||||
`http://lists.gnu.org/pipermail/bug-wget/'.
|
||||
|
||||
An NNTP/Usenettish gateway is also available via Gmane
|
||||
(http://gmane.org/about.php). You can see the Gmane archives at
|
||||
`http://news.gmane.org/gmane.comp.web.wget.general'. Note that the
|
||||
Gmane archives conveniently include messages from both the current
|
||||
list, and the previous one. Messages also show up in the Gmane archives
|
||||
sooner than they do at `lists.gnu.org'.
|
||||
|
||||
Bug Notices List
|
||||
----------------
|
||||
|
||||
Additionally, there is the <wget-notify@addictivecode.org> mailing
|
||||
list. This is a non-discussion list that receives bug report
|
||||
notifications from the bug-tracker. To subscribe to this list, send an
|
||||
email to <wget-notify-join@addictivecode.org>, or visit
|
||||
`http://addictivecode.org/mailman/listinfo/wget-notify'.
|
||||
|
||||
Obsolete Lists
|
||||
--------------
|
||||
@@ -24,7 +40,10 @@ discussion list, and another list, <wget-patches@sunsite.dk> was used
|
||||
for submitting and discussing patches to GNU Wget.
|
||||
|
||||
Messages from <wget@sunsite.dk> are archived at
|
||||
`https://www.mail-archive.com/wget%40sunsite.dk/' and at
|
||||
`http://www.mail-archive.com/wget%40sunsite.dk/' and at
|
||||
|
||||
`http://news.gmane.org/gmane.comp.web.wget.general' (which also
|
||||
continues to archive the current list, <bug-wget@gnu.org>).
|
||||
|
||||
Messages from <wget-patches@sunsite.dk> are archived at
|
||||
`https://news.gmane.org/gmane.comp.web.wget.patches'.
|
||||
`http://news.gmane.org/gmane.comp.web.wget.patches'.
|
||||
|
||||
61
Makefile.am
61
Makefile.am
@@ -1,5 +1,6 @@
|
||||
# Makefile for `Wget' utility
|
||||
# Copyright (C) 1995-1997, 2006-2024 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1995, 1996, 1997, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -12,7 +13,7 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Additional permission under GNU GPL version 3 section 7
|
||||
|
||||
@@ -26,7 +27,7 @@
|
||||
# as that of the covered work.
|
||||
|
||||
#
|
||||
# Version: @VERSION@
|
||||
# Version: $(VERSION)
|
||||
#
|
||||
|
||||
|
||||
@@ -40,15 +41,14 @@ distuninstallcheck_listfiles = find . -type f | \
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
# subdirectories in the distribution
|
||||
SUBDIRS = lib src doc po gnulib_po util fuzz tests testenv
|
||||
SUBDIRS = lib src doc po tests util testenv
|
||||
|
||||
EXTRA_DIST = MAILING-LIST \
|
||||
msdos/config.h msdos/Makefile.DJ \
|
||||
EXTRA_DIST = ChangeLog.README MAILING-LIST \
|
||||
msdos/ChangeLog msdos/config.h msdos/Makefile.DJ \
|
||||
msdos/Makefile.WC ABOUT-NLS \
|
||||
build-aux/build_info.pl build-aux/git-version-gen .version
|
||||
|
||||
CLEANFILES = *~ *.bak $(DISTNAME).tar.gz
|
||||
DISTCLEANFILES = po/stamp-po gnulib_po/stamp-po
|
||||
|
||||
BUILT_SOURCES = .version
|
||||
|
||||
@@ -60,50 +60,5 @@ clean-generic:
|
||||
|
||||
# Arrange so that .tarball-version appears only in the distribution
|
||||
# tarball, and never in a checked-out repository.
|
||||
dist-hook: gen-ChangeLog
|
||||
dist-hook:
|
||||
$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
|
||||
|
||||
gen_start_date = 2014-12-10
|
||||
.PHONY: gen-ChangeLog
|
||||
gen-ChangeLog:
|
||||
$(AM_V_GEN)if test -d .git; then \
|
||||
log_fix="$(srcdir)/build-aux/git-log-fix"; \
|
||||
test -e "$$log_fix" \
|
||||
|| amend_git_log=; \
|
||||
$(top_srcdir)/build-aux/gitlog-to-changelog \
|
||||
$$amend_git_log --since=$(gen_start_date) > $(distdir)/cl-t && \
|
||||
echo >> $(distdir)/cl-t && \
|
||||
cat ChangeLog-2014-12-10 >> $(distdir)/cl-t && \
|
||||
{ rm -f $(distdir)/ChangeLog && \
|
||||
mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
|
||||
fi
|
||||
|
||||
check-valgrind:
|
||||
TESTS_ENVIRONMENT="VALGRIND_TESTS=1" $(MAKE) check
|
||||
|
||||
LCOV_INFO=wget.info
|
||||
|
||||
clean-lcov:
|
||||
rm -rf $(LCOV_INFO) */*.gc?? */.libs/*.gc?? lcov/
|
||||
lcov --zerocounters --directory src/
|
||||
|
||||
check-coverage: clean clean-lcov
|
||||
$(MAKE) CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
lcov --capture --initial --directory src/ --output-file $(LCOV_INFO)
|
||||
$(MAKE) CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage" VALGRIND_TESTS=0 check
|
||||
lcov --capture --directory src/ --output-file $(LCOV_INFO)
|
||||
lcov --remove $(LCOV_INFO) --ignore-errors unused '/usr/include/*' '*/lib/*' -o $(LCOV_INFO)
|
||||
genhtml --prefix . --ignore-errors source --ignore-errors unmapped $(LCOV_INFO) --legend --title "Wget" --output-directory=lcov
|
||||
@echo
|
||||
@echo "You can now view the coverage report with 'xdg-open lcov/index.html'"
|
||||
|
||||
fuzz-coverage: clean clean-lcov
|
||||
$(MAKE) -C lib
|
||||
$(MAKE) -C src CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
$(MAKE) -C fuzz check CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
lcov --capture --initial --directory fuzz --directory src --output-file $(LCOV_INFO)
|
||||
lcov --capture --directory fuzz --directory src --output-file $(LCOV_INFO)
|
||||
lcov --remove $(LCOV_INFO) '/usr/include/*' '*/lib/*' -o $(LCOV_INFO)
|
||||
genhtml --prefix . --ignore-errors source $(LCOV_INFO) --legend --title "Wget-fuzz" --output-directory=lcov
|
||||
@echo
|
||||
@echo "You can now view the coverage report with 'xdg-open lcov/index.html'"
|
||||
|
||||
448
NEWS
448
NEWS
@@ -1,377 +1,25 @@
|
||||
GNU Wget NEWS -- history of user-visible changes.
|
||||
|
||||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||||
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
See the end for copying conditions.
|
||||
|
||||
Please send GNU Wget bug reports to <bug-wget@gnu.org>.
|
||||
|
||||
* Changes in Wget X.Y.Z
|
||||
|
||||
* Noteworthy changes in release 1.24.5 (2024-03-10) [stable]
|
||||
** Use libpsl for verifying cookie domains
|
||||
|
||||
** Fix how subdomain matches are checked for HSTS.
|
||||
Fixes a minor issue where cookies may be leaked to the wrong domain
|
||||
** Default progress bar output changed
|
||||
|
||||
** Wget will now also parse the srcset attribute in <source> HTML tags
|
||||
** Introduce --show-progress to force display the progress bar
|
||||
|
||||
** Support reading fetchmail style "user" and "passwd" fields from netrc
|
||||
|
||||
** In some cases, prevent the confusing "Cannot write to... (success)" error messages
|
||||
|
||||
** Support extremely fast download speeds (TB/s).
|
||||
Previously this would cause Wget to crash when printing the speed
|
||||
|
||||
** Improve portability on OpenBSD to run the test suite
|
||||
|
||||
** Ensure that CSS URLs are corectly quoted (Bug: 64082)
|
||||
|
||||
|
||||
* Noteworthy changes in release 1.21.4 (2023-05-11)
|
||||
|
||||
** Document --retry-on-host-error in help text
|
||||
|
||||
** Increase read buffer size to 64k. This should speed up downloads on gigabit and faster connections
|
||||
|
||||
** Update deprecated option '--html-extension' to '--adjust-extension' in documentation
|
||||
|
||||
** Update gnulib compatibility layer.
|
||||
Fixes HSTS test failures on i686. (Thanks to Andreas Enge for ponting it out)
|
||||
|
||||
|
||||
* Noteworthy changes in release 1.21.3 (2022-02-26)
|
||||
|
||||
** Fix computation of total bytes downloaded during FTP trasnfers (#61277)
|
||||
|
||||
** Add option to select TLS 1.3 on the command line
|
||||
|
||||
** Fix HSTS build issues on some 64-bit big-endian systems
|
||||
|
||||
** Hide password during status report in --no-verbose
|
||||
|
||||
** Remove a sprurious print statement that showed up even during --quiet
|
||||
|
||||
** Some more cleanups and bug-fixes
|
||||
|
||||
|
||||
* Noteworthy changes in release 1.21.2 (2021-09-07)
|
||||
|
||||
** Support for autoconf 2.71
|
||||
|
||||
** Fix a double free in FTP when using an absolute path
|
||||
|
||||
** Release tarballs no longer have a dependency on Python.
|
||||
|
||||
** --page-requisites will now also download links marked as "alternate
|
||||
stylesheet" or "icon"
|
||||
|
||||
|
||||
* Noteworthy changes in release 1.21.1 (2021-01-09)
|
||||
|
||||
** Fix compilation on MacOS and Solaris 9
|
||||
|
||||
** Resove bashism from configure.ac
|
||||
|
||||
** Fix a compilation warning on 32-bit systems
|
||||
|
||||
|
||||
* Changes in Wget 1.21
|
||||
|
||||
** Improve the number of translated strings
|
||||
|
||||
** Remove all uses of alloca
|
||||
In some places the length of untrusted strings has been used, e.g.
|
||||
strings from the command line or from remote.
|
||||
|
||||
** Fix buffer overflows in progress bar code in some locales
|
||||
|
||||
** Fix two null pointer accesses
|
||||
|
||||
** Amend cookie file header to be recognized by the 'file' command
|
||||
|
||||
** Post Handshake Authentication for OpenSSL
|
||||
|
||||
** Require gettext version 0.19.3+
|
||||
|
||||
** Add configure flags --enable-fsanitize-ubsan, --enable-fsanitize-asan
|
||||
and --enable-fsanitize-msan for gcc and clang
|
||||
|
||||
** Make several smaller fixes, enhance fuzzing, enhance building
|
||||
|
||||
|
||||
* Changes in Wget 1.20.3
|
||||
|
||||
** Fixed a buffer overflow vulnerability
|
||||
|
||||
|
||||
* Changes in Wget 1.20.2
|
||||
|
||||
** NTLM authentication will retry under certain cases
|
||||
|
||||
|
||||
* Changes in Wget 1.20.1
|
||||
|
||||
** --xattr is no longer default since it introduces privacy issues.
|
||||
|
||||
** --xattr saves the Referer as scheme/host/port, user/pw/path/query/fragment
|
||||
are no longer saved to prevent privacy issues.
|
||||
|
||||
** --xattr saves the Original URL without user/password to prevent
|
||||
privacy issues.
|
||||
|
||||
|
||||
* Changes in Wget 1.20
|
||||
|
||||
** Add new option `--retry-on-host-error` to treat local errors as transient
|
||||
and hence Wget will retry to download the file after a brief waiting period.
|
||||
|
||||
** Fixed multiple potential resource leaks as found by static analysis
|
||||
|
||||
** Wget will now not create an empty wget-log file when running with -q and -b
|
||||
switches together
|
||||
|
||||
** When compiled using the GnuTLS >= 3.6.3, Wget now has support for TLSv1.3
|
||||
|
||||
** Now there is support for using libpcre2 for regex pattern matching
|
||||
|
||||
** When downloading over FTP recursively, one can now use the
|
||||
--{accept,reject}-regex switches to fine-tune the downloaded files
|
||||
|
||||
** Building Wget from the git sources now requires autoconf 2.63 or above.
|
||||
Building from the Tarballs works as it used to.
|
||||
|
||||
|
||||
* Changes in Wget 1.19.5
|
||||
|
||||
* Fix cookie injection (CVE-2018-0494)
|
||||
|
||||
* Enable TLS1.3 with recent OpenSSL environment
|
||||
|
||||
* New option --ciphers to set GnuTLS / OpenSSL ciphers directly
|
||||
|
||||
* Updated CSS grammar to CSS 2.2
|
||||
|
||||
* Fixed several memleaks found by OSS-Fuzz
|
||||
|
||||
* Fixed several buffer overflows found by OSS-Fuzz
|
||||
|
||||
* Fixed several integer overflows found by OSS-Fuzz
|
||||
|
||||
* Several minor bug fixes
|
||||
|
||||
|
||||
* Changes in Wget 1.19.4
|
||||
|
||||
* A major bug that caused GZip'ed pages to never be decompressed has been fixed
|
||||
|
||||
* Support for Content-Encoding and Transfer-Encoding have been marked as
|
||||
experimental and disabled by default
|
||||
|
||||
|
||||
* Changes in Wget 1.19.3
|
||||
|
||||
* Prevent erroneous decompression of .gz and .tgz files with broken servers
|
||||
|
||||
* Added support for HTTP 308 Permanent Redirect response
|
||||
|
||||
* Fix a segfault in some cases where the Content-Type header is not sent
|
||||
|
||||
* Support OpenSSL 1.1 builds without using deprecated features
|
||||
|
||||
* Fix netrc file detection on Windows
|
||||
|
||||
* Several minor bug fixes
|
||||
|
||||
|
||||
* Changes in Wget 1.19.2
|
||||
|
||||
* Fix CVE-2017-13089 (Stack overflow in HTTP protocol handling)
|
||||
|
||||
* Fix CVE-2017-13090 (Heap overflow in HTTP protocol handling)
|
||||
|
||||
* New option --compression for gzip Content-Encoding
|
||||
|
||||
* New option --[no]-netrc to control .netrc parsing
|
||||
|
||||
* Added GNU extensions to .netrc parsing
|
||||
|
||||
* Improved IDNA 2003 compatibility
|
||||
|
||||
* Fix VPATH issues
|
||||
|
||||
* Improved and extended the test suite
|
||||
|
||||
* Support Wayback Machine's X-Archive-Orig-last-modified
|
||||
|
||||
* Several bug fixes
|
||||
|
||||
|
||||
* Changes in Wget 1.19.1
|
||||
|
||||
* Fix bugs, a regression, portability/build issues
|
||||
|
||||
* Add new option --retry-on-http-error
|
||||
|
||||
|
||||
* Changes in Wget 1.19
|
||||
|
||||
* New option --use-askpass=COMMAND. Fetch user/password by calling
|
||||
an external program.
|
||||
|
||||
* Use IDNA2008 (+ TR46 if available) through libidn2
|
||||
|
||||
* When processing a Metalink header, --metalink-index=<number> allows
|
||||
to process the header's application/metalink4+xml files.
|
||||
|
||||
* When processing a Metalink file, --trust-server-names enables the
|
||||
use of the destination file names specified in the Metalink file,
|
||||
otherwise a safe destination file name is computed.
|
||||
|
||||
* When processing a Metalink file, enforce a safe destination path.
|
||||
Remove any drive letter prefix under w32, i.e. 'C:D:file'. Call
|
||||
libmetalink's metalink_check_safe_path() to prevent absolute,
|
||||
relative, or home paths:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.1.2.1
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.8.3
|
||||
|
||||
* When processing a Metalink file, --directory-prefix=<prefix> sets
|
||||
the top of the retrieval tree to prefix for Metalink downloads.
|
||||
|
||||
* When processing a Metalink file, reject downloaded files which don't
|
||||
agree with their own metalink:size value:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.16
|
||||
|
||||
* When processing a Metalink file, with --continue resume partially
|
||||
downloaded files and keep fully downloaded files even if they fail
|
||||
the verification.
|
||||
|
||||
* When processing a Metalink file, create the parent directories of a
|
||||
"path/file" destination file name:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.1.2.1
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.8.3
|
||||
|
||||
* On a recursive download, append a .tmp suffix to temporary files
|
||||
that will be deleted after being parsed, and create them
|
||||
readable/writable only by the owner.
|
||||
|
||||
* New make target 'check-valgrind'
|
||||
|
||||
* Fix several bugs
|
||||
|
||||
* Fix compatibility issues
|
||||
|
||||
* Changes in Wget 1.18
|
||||
|
||||
* By default, on server redirects to a FTP resource, use the original
|
||||
URL to get the local file name. Close CVE-2016-4971. This
|
||||
introduces a backward-incompatibility for HTTP->FTP redirects and
|
||||
any script that relies on the old behaviour must use
|
||||
--trust-server-names.
|
||||
|
||||
* Check the HSTS file is not world-writable before using it.
|
||||
|
||||
* Parse <img srcset> attributes on a recursive download.
|
||||
|
||||
* Fix problem with SNI server names having trailing dot(s)
|
||||
|
||||
* New options --bind-dns-address and --dns-servers.
|
||||
|
||||
* When Wget is built with libiconv, it now converts non-ASCII URIs to
|
||||
the locale's codeset when it creates files. The encoding of the
|
||||
remote files and URIs is taken from --remote-encoding, defaulting to
|
||||
UTF-8. The result is that non-ASCII URIs and files downloaded via
|
||||
HTTP/HTTPS and FTP will have names on the local filesystem that
|
||||
correspond to their remote names.
|
||||
|
||||
* Changes in Wget 1.17.1
|
||||
|
||||
* Fix compile error when IPv6 is disabled or SSL is not present.
|
||||
|
||||
* Fix HSTS memory leak.
|
||||
|
||||
* Fix progress output in non-C locales.
|
||||
|
||||
* Fix SIGSEGV when -N and --content-disposition are used together.
|
||||
|
||||
* Add --check-certificate=quiet to tell wget to not print any warning about
|
||||
invalid certificates.
|
||||
|
||||
* Changes in Wget 1.17
|
||||
|
||||
** Remove FTP passive to active fallback due to privacy concerns.
|
||||
|
||||
** Add support for --if-modified-since.
|
||||
|
||||
** Add support for metalink through --input-metalink and --metalink-over-http.
|
||||
|
||||
** Add support for HSTS through --hsts and --hsts-file.
|
||||
|
||||
** Add option to restrict filenames under VMS.
|
||||
|
||||
** Add support for --rejected-log which logs to a separate file the reasons why
|
||||
URLs are being rejected and some context around it.
|
||||
|
||||
** Add support for FTPS.
|
||||
|
||||
** Do not download/save file on error when --spider enabled
|
||||
|
||||
** Add --convert-file-only option. This option converts only the
|
||||
filename part of the URLs, leaving the rest of the URLs untouched.
|
||||
|
||||
* Changes in Wget 1.16.3
|
||||
|
||||
** Fix a regression introduced by wget 1.16.2 that --quiet is not
|
||||
really quiet anymore.
|
||||
|
||||
* Changes in Wget 1.16.2
|
||||
|
||||
** Native uuid generation on Windows
|
||||
|
||||
** Fix build on Solaris
|
||||
|
||||
** Allow progress bar on stderr when -o is used
|
||||
|
||||
** Accept 5-digit port numbers in FTP EPSV responses.
|
||||
|
||||
** Support older versions of flex.
|
||||
|
||||
** Updated translations.
|
||||
|
||||
* Changes in Wget 1.16.1
|
||||
|
||||
** Add --enable-assert configure option.
|
||||
|
||||
** Use pkg-config to check for libraries presence.
|
||||
|
||||
** Do not limit --secure-protocol=auto|pfs to TLSv1.0.
|
||||
|
||||
** Add --secure-protocol=TLSv1_1|TLSv1_2 .
|
||||
|
||||
** Full C89 source code compliance.
|
||||
|
||||
** Select and use the most secure authentication scheme with HTTP connections.
|
||||
|
||||
** Fix issues with turkish locales.
|
||||
|
||||
** Handle 504 Gateway Timeout.
|
||||
|
||||
** New option --crl-file to load Certificate Revocation Lists.
|
||||
|
||||
** Add valgrind support to tests suite.
|
||||
|
||||
** Fix an off-by-one problem in the progress bar (introduced in 1.16).
|
||||
|
||||
* Changes in Wget 1.16
|
||||
|
||||
** No longer create local symbolic links by default. Closes CVE-2014-4877.
|
||||
|
||||
** Use libpsl for verifying cookie domains.
|
||||
|
||||
** Default progress bar output changed.
|
||||
|
||||
** Introduce --show-progress to force display the progress bar.
|
||||
|
||||
** Introduce --no-config. The wgetrc files will not be read.
|
||||
** Introduce --no-config.
|
||||
|
||||
** Introduce --start-pos to allow starting downloads from a specified position.
|
||||
|
||||
** Fix a problem with ISA Server Proxy and keep-alive connections.
|
||||
|
||||
|
||||
* Changes in Wget 1.15
|
||||
|
||||
** Add support for --method.
|
||||
@@ -403,7 +51,7 @@ Building from the Tarballs works as it used to.
|
||||
** Specify Host with the HTTP CONNECT method.
|
||||
|
||||
** Use the correct HTTP method on a redirection.
|
||||
|
||||
|
||||
* Changes in Wget 1.14
|
||||
|
||||
** Add support for content-on-error. It allows to store the HTTP
|
||||
@@ -425,12 +73,12 @@ Building from the Tarballs works as it used to.
|
||||
|
||||
** Add support for TLS Server Name Indication.
|
||||
|
||||
** Accept the arguments --accept-regex and --reject-regex.
|
||||
** Accept the arguments --accept-reject and --reject-regex.
|
||||
|
||||
** The GNU TLS backend honors correctly the timeout value.
|
||||
|
||||
** Add support for RFC 2617 Digest Access Authentication.
|
||||
|
||||
|
||||
* Changes in Wget 1.13.4
|
||||
|
||||
** Now --version and --help work again.
|
||||
@@ -443,7 +91,7 @@ Building from the Tarballs works as it used to.
|
||||
is specified.
|
||||
|
||||
** Fix a segfault on an incomplete STYLE tag.
|
||||
|
||||
|
||||
* Changes in Wget 1.13.3
|
||||
|
||||
** Support HTTP/1.1
|
||||
@@ -480,7 +128,7 @@ Building from the Tarballs works as it used to.
|
||||
backward-incompatibility; any script that relies on the old
|
||||
behaviour must use --trust-server-names.
|
||||
|
||||
** Fix a problem when -k is used and some URLs are specified through
|
||||
** Fix a problem when -k is used and some URLs are specified trough
|
||||
CSS.
|
||||
|
||||
** Convert correctly URLs that need to be encoded to local files when following
|
||||
@@ -490,7 +138,7 @@ Building from the Tarballs works as it used to.
|
||||
|
||||
** Print the total download time as part of the summary for recursive downloads.
|
||||
|
||||
** Now it is possible to specify a different startup configuration file through
|
||||
** Now it is possible to specify a different startup configuration file trough
|
||||
the --config option.
|
||||
|
||||
** Fix an infinite loop with the error '<filename> has sprung into existence'
|
||||
@@ -509,7 +157,7 @@ Building from the Tarballs works as it used to.
|
||||
|
||||
** Introduce `show_all_dns_entries' to print all IP addresses corresponding to
|
||||
a DNS name when it is resolved.
|
||||
|
||||
|
||||
* Changes in Wget 1.12
|
||||
|
||||
** Mailing list MOVED to bug-wget@gnu.org
|
||||
@@ -563,7 +211,7 @@ forces the percent-encoding of all non-ASCII bytes
|
||||
now documented: save_headers, spider, and user_agent,
|
||||
auth_no_challenge, and keep_session_cookies. Also added documentation
|
||||
for the "lowercase" and "uppercase" values for --restrict-file-names, which had been present since Wget 1.11.
|
||||
|
||||
|
||||
* Changes in Wget 1.11.4
|
||||
|
||||
** Fixed an issue (apparently a regression) where -O would refuse to
|
||||
@@ -577,13 +225,13 @@ locally with content.
|
||||
to a pointer-to-time_t.
|
||||
|
||||
** Translation updates for Catalan.
|
||||
|
||||
|
||||
* Changes in Wget 1.11.3
|
||||
|
||||
** Downgraded -N with -O to a warning, rather than an error.
|
||||
|
||||
** Translation updates
|
||||
|
||||
|
||||
* Changes in Wget 1.11.2
|
||||
|
||||
** Fixed a problem in authenticating over HTTPS through a proxy.
|
||||
@@ -605,7 +253,7 @@ multiple times. This has been fixed in 1.11.2.
|
||||
for improved conformance with RFC 3986. However, this behavior presents
|
||||
problems for some FTP setups, and so they are now preserved again, for
|
||||
FTP URLs only.
|
||||
|
||||
|
||||
* Changes in Wget 1.11.1.
|
||||
|
||||
** Interrupted downloads no longer result in renaming the file
|
||||
@@ -627,7 +275,7 @@ be surprising, and notes that they may change in the future.
|
||||
|
||||
** Documentation of --no-parents now explains how a trailing slash, or
|
||||
lack thereof, in the specified URL, will affect behavior.
|
||||
|
||||
|
||||
* Changes in Wget 1.11.
|
||||
|
||||
** Timestamping now uses the value from the most recent HTTP response,
|
||||
@@ -673,7 +321,7 @@ available at http://hg.addictivecode.org/. Prior to this, the source
|
||||
code was hosted on Subversion (migrated from the original CVS); you can
|
||||
still get access to older tags and branches for Wget in the Subversion
|
||||
repository at http://addictivecode.org/svn/wget/.
|
||||
|
||||
|
||||
* Changes in Wget 1.10.
|
||||
|
||||
** Downloading files larger than 2GB, sometimes referred to as "large
|
||||
@@ -784,9 +432,9 @@ http_password and proxy_password respectively. The login and passwd
|
||||
.wgetrc commands have been deprecated.
|
||||
|
||||
* `wget -b' now works correctly under Windows.
|
||||
|
||||
|
||||
* Wget 1.9.1 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Wget 1.9.
|
||||
|
||||
** It is now possible to specify that POST method be used for HTTP
|
||||
@@ -838,11 +486,11 @@ values "yes" and "no" along with the traditional "on" and "off".
|
||||
** It is now possible to specify decimal values for timeouts, waiting
|
||||
periods, and download rate. For instance, `--wait=0.5' now works as
|
||||
expected, as does `--dns-timeout=0.5' and even `--limit-rate=2.5k'.
|
||||
|
||||
|
||||
* Wget 1.8.2 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Wget 1.8.1 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Wget 1.8.
|
||||
|
||||
** A new progress indicator is now available and used by default.
|
||||
@@ -894,7 +542,7 @@ addresses when accessing the first one fails.
|
||||
non-standard port.
|
||||
|
||||
** Wget now supports the robots.txt directives specified in
|
||||
<http://www.robotstxt.org/norobots-rfc.txt>.
|
||||
<http://www.robotstxt.org/wc/norobots-rfc.txt>.
|
||||
|
||||
** URL parser has been fixed, especially the infamous overzealous
|
||||
quoting. Wget no longer dequotes reserved characters, e.g. `%3F' is
|
||||
@@ -902,9 +550,9 @@ no longer translated to `?', nor `%2B' to `+'. Unsafe characters
|
||||
which are not reserved are still escaped, of course.
|
||||
|
||||
** No more than 20 successive redirections are allowed.
|
||||
|
||||
|
||||
* Wget 1.7.1 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Wget 1.7.
|
||||
|
||||
** SSL (`https') pages now work if you compile Wget with SSL support;
|
||||
@@ -946,7 +594,7 @@ large sites (thousands of documents).
|
||||
documentation. (The last version that shipped with a man page was
|
||||
1.4.5). To get this, you need to have pod2man from the Perl
|
||||
distribution installed on your system.
|
||||
|
||||
|
||||
* Changes in Wget 1.6
|
||||
|
||||
** Administrative changes.
|
||||
@@ -997,13 +645,13 @@ passive_ftp is the only .wgetrc command which takes a lockable Boolean.
|
||||
bound to multiple IP addresses.
|
||||
|
||||
** wget now accepts (illegal per HTTP spec) relative URLs in HTTP redirects.
|
||||
|
||||
|
||||
* Wget 1.5.3 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Wget 1.5.2 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Wget 1.5.1 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Wget 1.5.0
|
||||
|
||||
** Wget speaks many languages!
|
||||
@@ -1049,11 +697,11 @@ download.
|
||||
|
||||
** The manual page, now hopelessly out of date, is no longer
|
||||
distributed with Wget.
|
||||
|
||||
|
||||
* Wget 1.4.5 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Wget 1.4.4 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Wget 1.4.3
|
||||
|
||||
** Wget is now a GNU utility.
|
||||
@@ -1069,7 +717,7 @@ distributed with Wget.
|
||||
** Global wgetrc now goes to /usr/local/etc (i.e. $sysconfdir).
|
||||
|
||||
** Lots of bugfixes.
|
||||
|
||||
|
||||
* Changes in Wget 1.4.2
|
||||
|
||||
** New mirror site at ftp://sunsite.auc.dk/pub/infosystems/wget/,
|
||||
@@ -1087,7 +735,7 @@ files.
|
||||
** --convert-links should work now.
|
||||
|
||||
** Minor bugfixes.
|
||||
|
||||
|
||||
* Changes in Wget 1.4.1
|
||||
|
||||
** Minor bugfixes.
|
||||
@@ -1095,7 +743,7 @@ files.
|
||||
** Added -I (the opposite of -X).
|
||||
|
||||
** Dot tracing is now customizable; try wget --dot-style=binary
|
||||
|
||||
|
||||
* Changes in Wget 1.4.0
|
||||
|
||||
** Wget 1.4.0 [formerly known as Geturl] is an extensive rewrite of
|
||||
@@ -1176,7 +824,7 @@ turn on mirroring options).
|
||||
** Lots of small features I can't remember. :-)
|
||||
|
||||
** A host of bugfixes.
|
||||
|
||||
|
||||
* Changes in Geturl 1.3
|
||||
|
||||
** Added FTP globbing support (ftp://fly.cc.fer.hr/*)
|
||||
@@ -1194,9 +842,9 @@ turn on mirroring options).
|
||||
** Added support for robots.txt
|
||||
|
||||
** Fixed some minor bugs
|
||||
|
||||
|
||||
* Geturl 1.2 is a bugfix release with no user-visible changes.
|
||||
|
||||
|
||||
* Changes in Geturl 1.1
|
||||
|
||||
** REST supported in FTP
|
||||
@@ -1214,11 +862,11 @@ geturl -vo log http://fly.cc.fer.hr/
|
||||
** <base href="xxx"> supported
|
||||
|
||||
** autoconf supported
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Copyright information:
|
||||
|
||||
Copyright (C) 1997-2024 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997-2005 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to anyone to make or distribute verbatim
|
||||
copies of this document as received, in any medium, provided that
|
||||
|
||||
14
README
14
README
@@ -1,7 +1,7 @@
|
||||
-*- text -*-
|
||||
GNU Wget
|
||||
========
|
||||
Current Web home: https://www.gnu.org/software/wget/
|
||||
Current Web home: http://www.gnu.org/software/wget/
|
||||
|
||||
GNU Wget is a free utility for non-interactive download of files from
|
||||
the Web. It supports HTTP, HTTPS, and FTP protocols, as well as
|
||||
@@ -14,7 +14,7 @@ While doing that, Wget respects the Robot Exclusion Standard
|
||||
(/robots.txt). Wget can be instructed to convert the links in
|
||||
downloaded HTML files to the local files for offline viewing.
|
||||
|
||||
Recursive downloading also works with FTP, where Wget can retrieve a
|
||||
Recursive downloading also works with FTP, where Wget can retrieves a
|
||||
hierarchy of directories and files.
|
||||
|
||||
With both HTTP and FTP, Wget can check whether a remote file has
|
||||
@@ -50,20 +50,18 @@ resides at <ftp://ftp.gnu.org/pub/gnu/wget/>.
|
||||
Please report bugs in Wget to <bug-wget@gnu.org>.
|
||||
|
||||
See the file `MAILING-LIST' for information about Wget mailing lists.
|
||||
Wget's home page is at <https://www.gnu.org/software/wget/>.
|
||||
Wget's home page is at <http://www.gnu.org/software/wget/>.
|
||||
|
||||
If you would like to contribute code for Wget, please read
|
||||
CONTRIBUTING.md.
|
||||
|
||||
Wget is offered under the terms of the GNU GPLv3 license. Please see the
|
||||
COPYING file for a full text of the license terms.
|
||||
http://wget.addictivecode.org/PatchGuidelines.
|
||||
|
||||
Wget was originally written and mainained by Hrvoje Niksic. Please see
|
||||
the file AUTHORS for a list of major contributors, and the ChangeLogs
|
||||
for a detailed listing of all contributions.
|
||||
|
||||
|
||||
Copyright (C) 1995-2024 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
179
README.checkout
179
README.checkout
@@ -4,11 +4,10 @@ Compiling From Repository Sources
|
||||
does not contain automatically-generated files, even when these are
|
||||
normally present in the distribution tarballs. Therefore, to build GNU
|
||||
Wget from the sources in the repository, you'll need to have one or
|
||||
more of the following (note that gettext, OpenSSL, GnuTLS, libidn2,
|
||||
libiconv, libpsl, libpcre, pkg-config, libmetalink and GnuPG are not
|
||||
absolutely required):
|
||||
more of the following (note that gettext, OpenSSL, libidn, libiconv,
|
||||
libpsl and libmetalink are not absolutely required):
|
||||
|
||||
* [20]autoconf (currently, GNU Wget requires version 2.64). This is
|
||||
* [20]autoconf (currently, GNU Wget requires version 2.61). This is
|
||||
needed to generate the configure script from configure.in. This is
|
||||
not required when building from a tarball distribution; only when
|
||||
building from repository sources.
|
||||
@@ -24,18 +23,12 @@ Compiling From Repository Sources
|
||||
* [23]Perl, if you wish to generate the wget(1) manpage, or run the
|
||||
tests in the tests/ sub directory. Tarball distributions include an
|
||||
already-generated wget.1 manual. The command "make check" runs the
|
||||
test suite written in perl and python (see below). To execute all the tests
|
||||
you need libwww-perl and libio-socket-ssl-perl perl library.
|
||||
GNU/Linux distros likely have these two libraries packaged.
|
||||
If not, install them directly with "perl -MCPAN -e 'install Bundle::LWP'"[24].
|
||||
If that fails then you most likely don't have the CPAN module installed.
|
||||
First download [25]CPAN and [26]install it, then try again the above command.
|
||||
Now "make check" should pass most of the tests in the test suite.
|
||||
|
||||
* [45]Python3, if you want to run the tests in the testenv/ subdirectory.
|
||||
Keep in mind that "make check" will try to run all the Perl and Python3
|
||||
tests. More information about the test suite below in the section
|
||||
"Testing and development".
|
||||
test suite written in perl. To execute all the tests you need
|
||||
[24]libwww-perl perl library. If "perl -MCPAN -e 'install
|
||||
Bundle::LWP'" fails then you most likely don't have cpan module
|
||||
installed. First download [25]CPAN and [26]install it. Then execute
|
||||
"perl -MCPAN -e 'install Bundle::LWP'". Now "make check" should
|
||||
pass most of the tests in the test suite.
|
||||
|
||||
* [27]texinfo in order to generate Info, PostScript and/or HTML
|
||||
documentation. You don't need texinfo in order to generate the
|
||||
@@ -53,65 +46,37 @@ Compiling From Repository Sources
|
||||
to export M4=<new m4 path>, to be sure that autoconf/automake use
|
||||
it instead of the old one.
|
||||
|
||||
* [29]GnuTLS to allow encrypted data transfer (HTTPS).
|
||||
You need the header files and the library installed.
|
||||
As an alternative, you can use [30]OpenSSL by specifying
|
||||
--with-ssl=openssl to the ./configure script.
|
||||
If you do not want HTTPS support, specify --without-ssl to the
|
||||
./configure script.
|
||||
If you want to compile+link a non-system library version use
|
||||
--with-libgnutls-prefix (or if having pkg-config: see description
|
||||
below).
|
||||
* [29]OpenSSL to handle encrypted web sessions. You almost certainly
|
||||
want this. It is not enough to have the library installed; you need
|
||||
to have the header files available to compile against as well. For
|
||||
GNU/Linux systems, this usually means installing a "developer"
|
||||
package for openssl (for example, [30]Debian systems require
|
||||
installation of the libssl-dev package). Alternatively, you can
|
||||
compile GNU Wget against the [31]GNUTLS library instead, by
|
||||
specifying --with-ssl=gnutls to the ./configure script; however,
|
||||
building against GNUTLS is currently experimental, and not
|
||||
officially supported. If you have OpenSSL and its development
|
||||
headers installed, but don't want to build Wget with it, specify
|
||||
--without-ssl to the ./configure script.
|
||||
|
||||
* [30]OpenSSL to allow encrypted data transfer (HTTPS) an
|
||||
alternative to [31]GnuTLS.
|
||||
You need the header files and the library installed.
|
||||
If you want to compile+link a non-system library version use
|
||||
--with-libssl-prefix (or if having pkg-config: see description below).
|
||||
|
||||
* [31]libidn2 is required for IDN/IRI support (non-ASCII characters
|
||||
* [32]libidn is required for IDN/IRI support (non-ASCII characters
|
||||
within what would otherwise be URLs).
|
||||
|
||||
* [32]libiconv is required on non-GNU systems, for IDN/IRI support.
|
||||
* [33]libiconv is required on non-GNU systems, for IDN/IRI support.
|
||||
On GNU systems, the functionality provided by libiconv is already
|
||||
present in the system libraries.
|
||||
|
||||
* [33]git is used to fetch gnulib files through the bootstrap.sh script.
|
||||
* [34]git is used to fetch gnulib files trough the bootstrap.sh script.
|
||||
|
||||
* [34]libpsl is required for using a public suffix list to check for valid
|
||||
cookie domains. You need the header files and the library installed.
|
||||
|
||||
* [35]libpcre is required for using Perl-compatible regular expressions
|
||||
with --accept-regex and --reject-regex. You need the header files and
|
||||
the library installed to compile and link Wget with PCRE support.
|
||||
|
||||
* [36]pkg-config helps the ./configure script to find installed libraries.
|
||||
Most libraries provide a pkg-config file (.pc extension) with
|
||||
information about dependencies, header file and library locations.
|
||||
Distributions deliver their specific .pc file to each library.
|
||||
If you want to compile+link against your own library version, make a
|
||||
copy of the appropriate .pc file and amend it to your needs (e.g. edit
|
||||
the line starting with prefix=). Before you execute the ./configure
|
||||
script, set (and export) PKG_CONFIG_PATH to the directory where you
|
||||
saved the .pc file. Example:
|
||||
$ PKG_CONFIG_PATH="." ./configure
|
||||
|
||||
* [46]libmetalink is needed to enable Metalink files support.
|
||||
|
||||
* [47]GnuPG with GPGME is used to verify GPG-signed Metalink resources.
|
||||
|
||||
* [48]libcares is needed to bind DNS resolving to a given IP address.
|
||||
The command line options --dns-servers and --bind-dns-address are
|
||||
only available when configured with --with-cares.
|
||||
|
||||
* [49]gperf is required by some gnulib modules, most notably "unicase". You
|
||||
need the application installed on the machine to compile Wget from git.
|
||||
* [45]libmetalink is required for compiling with Metalink support.
|
||||
|
||||
* [35]libpsl is required for using a public suffix list to check for valid
|
||||
cookie domains.
|
||||
|
||||
For those who might be confused as to what to do once they check out
|
||||
the source code, considering configure and Makefile do not yet exist at
|
||||
that point, a shell script called bootstrap has been provided. After
|
||||
calling ./bootstrap you're ready to build GNU Wget in the normal
|
||||
that point, a shell script called bootstrap.sh has been provided. After
|
||||
calling ./bootstrap.sh you're ready to build GNU Wget in the normal
|
||||
fashion, with ./configure and make.
|
||||
|
||||
So, to sum up, after checking out the source code as described above,
|
||||
@@ -120,51 +85,17 @@ Compiling From Repository Sources
|
||||
$ cd wget # assumes you've cloned a repository to "./wget"
|
||||
2. Generate all the automatically-generated files required prior to
|
||||
configuring the package:
|
||||
$ ./bootstrap (or: bash ./bootstrap)
|
||||
$ ./bootstrap.sh
|
||||
3. Configure the package and compile it:
|
||||
$ ./configure --enable-assert [some_parameters]
|
||||
$ ./configure [some_parameters]
|
||||
$ make
|
||||
4. Hack, compile, test, hack, compile, test...
|
||||
$ src/wget --version
|
||||
GNU Wget 1.12-devel (9cb2563197bc)
|
||||
|
||||
Testing and development
|
||||
|
||||
All developers are requested to enable the assertions on their development
|
||||
builds to ensure a stable codebase. Assertions are added to state certain
|
||||
assumptions about the code and its data which all developers should be mindful
|
||||
of. To enable assertions, run the configure command with the --enable-assert
|
||||
option, like this:
|
||||
|
||||
$ ./configure --enable-assert [other configure options]
|
||||
|
||||
Both the Perl and Python test suites (test/ and testenv/) include support for GDB and Valgrind.
|
||||
The environment variables GDB_TESTS and VALGRIND_TESTS are available to
|
||||
enable such wrappers. If specified, Wget would be run through either of them
|
||||
during the test. For example:
|
||||
|
||||
$ cd testenv
|
||||
$ VALGRIND_TESTS=1 ./Test-O.py
|
||||
|
||||
That would execute Test-O.py test case, but running Wget through Valgrind.
|
||||
|
||||
GDB has preference over Valgrind. If both variables have been asserted,
|
||||
Wget would be run through GDB.
|
||||
|
||||
If you run a test case through GDB, please bear in mind that it could give
|
||||
a false negative. This is because some tests that expect Wget to fail
|
||||
rely on Wget's return code. However, when run through GDB, its return code
|
||||
will always be zero, causing the test to claim failure. This wrapper for
|
||||
GDB is, however, very useful to tackle bugs, allowing one to write a test case
|
||||
for some specific bug and then using GDB to fix it more easily. Otherwise,
|
||||
a dedicated server would have to be set up and write a custom CGI just to reproduce
|
||||
that bug, which might be tedious. Tests should only be run through GDB for that purpose.
|
||||
|
||||
|
||||
Copyright (C) 2008, 2010, 2014-2015, 2018-2024 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright © 2008,2010 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later
|
||||
<https://www.gnu.org/licenses/gpl.html>.
|
||||
<http://www.gnu.org/licenses/gpl.html>.
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
@@ -183,38 +114,34 @@ Testing and development
|
||||
* [43]Valid HTML 4.01
|
||||
__________________________________________________________________
|
||||
|
||||
All content (C) 2007 Free Software Foundation. For terms of use,
|
||||
redistribution, and modification, please see the [45]WikiLicense page.
|
||||
All content © 2007 Free Software Foundation. For terms of use,
|
||||
redistribution, and modification, please see the [44]WikiLicense page.
|
||||
|
||||
References
|
||||
|
||||
20. https://www.gnu.org/software/autoconf/
|
||||
21. https://www.gnu.org/software/automake/
|
||||
22. https://github.com/westes/flex
|
||||
23. https://www.perl.org/
|
||||
20. http://www.gnu.org/software/autoconf/
|
||||
21. http://www.gnu.org/software/automake/
|
||||
22. http://flex.sourceforge.net/
|
||||
23. http://www.perl.org/
|
||||
24. http://search.cpan.org/dist/libwww-perl/lib/Bundle/LWP.pm
|
||||
25. http://search.cpan.org/CPAN/authors/id/A/AN/ANDK/CPAN-1.9402.tar.gz
|
||||
26. http://apthorpe.cynistar.net/code/configuring_cpan.html
|
||||
27. https://www.gnu.org/software/texinfo/
|
||||
28. https://www.gnu.org/software/gettext/
|
||||
29. https://www.gnu.org/software/gnutls/
|
||||
30. https://www.openssl.org/
|
||||
31. https://www.gnu.org/software/libidn/#libidn2
|
||||
32. https://www.gnu.org/software/libiconv/
|
||||
33. https://git-scm.com/
|
||||
34. https://github.com/rockdaboot/libpsl
|
||||
35. https://www.pcre.org
|
||||
27. http://www.gnu.org/software/texinfo/
|
||||
28. http://www.gnu.org/software/gettext/
|
||||
29. http://www.openssl.org/
|
||||
30. http://www.debian.org/
|
||||
31. http://www.gnu.org/software/gnutls/
|
||||
32. http://www.gnu.org/software/libidn/
|
||||
33. http://www.gnu.org/software/libiconv/
|
||||
34. http://git-scm.com/
|
||||
35. https://github.com/rockdaboot/libpsl
|
||||
36. http://wget.addictivecode.org/CompilingRepoSources?action=edit&editor=text
|
||||
37. http://wget.addictivecode.org/CompilingRepoSources
|
||||
38. http://wget.addictivecode.org/CompilingRepoSources?action=info
|
||||
39. http://wget.addictivecode.org/CompilingRepoSources?action=AttachFile
|
||||
40. https://moinmo.in/
|
||||
41. https://moinmo.in/Python
|
||||
42. https://moinmo.in/GPL
|
||||
43. https://validator.w3.org/check?uri=referer
|
||||
40. http://moinmo.in/
|
||||
41. http://moinmo.in/Python
|
||||
42. http://moinmo.in/GPL
|
||||
43. http://validator.w3.org/check?uri=referer
|
||||
44. http://wget.addictivecode.org/WikiLicense
|
||||
45. https://www.python.org/
|
||||
46. https://launchpad.net/libmetalink
|
||||
47. https://www.gnupg.org
|
||||
48. https://c-ares.haxx.se/
|
||||
49. https://www.gnu.org/software/gperf/
|
||||
45. https://launchpad.net/libmetalink
|
||||
|
||||
84
SECURITY.md
84
SECURITY.md
@@ -1,84 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
At GNU Wget, we take security seriously and appreciate the efforts of security
|
||||
researchers in identifying and disclosing vulnerabilities responsibly. If you
|
||||
believe you've discovered a security vulnerability in GNU Wget, we encourage you
|
||||
to disclose it to us privately and work with us to ensure it is addressed
|
||||
promptly and appropriately.
|
||||
|
||||
To report a vulnerability, please contact the maintainers directly via email.
|
||||
The names and contact details of the current maintainers is always available via
|
||||
the AUTHORS file in this repository. In order to send an encrypted email,
|
||||
please use the keyring available at the following URL:
|
||||
https://savannah.gnu.org/project/release-gpgkeys.php?group=wget
|
||||
|
||||
|
||||
Please include the following information in your report:
|
||||
|
||||
- A detailed description of the vulnerability
|
||||
- The version(s) of GNU Wget that are affected.
|
||||
- Steps to reproduce the vulnerability.
|
||||
- Any proof-of-concept or exploit code, if applicable.
|
||||
- Your contact information for coordination and follow-up.
|
||||
|
||||
Once we receive your report, we will acknowledge receipt and work with you to
|
||||
investigate the issue. We work on GNU Wget on a volunteer basis and as such may
|
||||
face delays in responding immediately. We aim to respond to initial reports
|
||||
within 5 working days and will keep you informed of our progress throughout the
|
||||
resolution process.
|
||||
|
||||
Please refrain from disclosing the vulnerability publicly until we have had an
|
||||
opportunity to investigate and address it. We appreciate your cooperation in
|
||||
helping to keep GNU Wget and its users secure.
|
||||
|
||||
## Vulnerability Disclosure Policy
|
||||
|
||||
Once a security vulnerability has been identified and confirmed, we will take
|
||||
the following steps:
|
||||
|
||||
1. **Investigation**: We will promptly investigate the reported vulnerability to
|
||||
verify its authenticity and determine its scope and impact.
|
||||
|
||||
2. **Resolution**: Once validated, we will develop and test a fix for the
|
||||
vulnerability. We will strive to address the issue as quickly as possible and
|
||||
prepare a patch for release.
|
||||
|
||||
3. **Coordination**: We will work with the reporter to ensure that the
|
||||
vulnerability is disclosed responsibly and coordinated with the release of
|
||||
the fix.
|
||||
|
||||
4. **Release**: Upon completion of the fix and any necessary testing, we will
|
||||
release a new version of GNU Wget that addresses the vulnerability. We will
|
||||
provide appropriate credit to the reporter in the release notes, unless
|
||||
otherwise requested.
|
||||
|
||||
5. **Public Disclosure**: We will coordinate the public disclosure of the
|
||||
vulnerability with the reporter and other relevant stakeholders. Once the fix
|
||||
is widely available, we will publish an advisory detailing the vulnerability
|
||||
and its resolution.
|
||||
|
||||
We strive to follow these steps in a timely and transparent manner, while
|
||||
prioritizing the security and stability of GNU Wget and its users.
|
||||
|
||||
## Responsible Disclosure Guidelines
|
||||
|
||||
In order to protect our users and systems, we ask that security researchers
|
||||
adhere to the following guidelines when reporting vulnerabilities to GNU Wget:
|
||||
|
||||
- **Responsible Disclosure**: Please disclose vulnerabilities to us privately
|
||||
and allow us a reasonable amount of time to investigate and address them
|
||||
before disclosing them publicly.
|
||||
|
||||
- **Cooperation**: We appreciate your cooperation and collaboration throughout
|
||||
the disclosure process. We will do our best to keep you informed of our
|
||||
progress and coordinate the release of information with you.
|
||||
|
||||
- **Respect**: Please respect our users' privacy and refrain from any actions
|
||||
that could cause harm or disrupt our systems. We ask that you do not exploit
|
||||
or disclose vulnerabilities before they have been resolved.
|
||||
|
||||
By following these guidelines, you can help us maintain the security and
|
||||
integrity of GNU Wget for the benefit of all users. We thank you for your
|
||||
contributions to our project and for helping to make the internet a safer place.
|
||||
122
bootstrap.conf
122
bootstrap.conf
@@ -1,5 +1,6 @@
|
||||
# bootstrap.conf - Bootstrap configuration.
|
||||
# Copyright (C) 2007-2012, 2018-2024 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation,
|
||||
# Inc.
|
||||
#
|
||||
# This file is part of GNU Wget.
|
||||
#
|
||||
@@ -8,161 +9,98 @@
|
||||
# the Free Software Foundation, either version 3 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# GNU Wget is distributed in the hope that it will be useful, but
|
||||
# GNU Wgt is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see `https://www.gnu.org/licenses/'.
|
||||
# along with this program. If not, see `http://www.gnu.org/licenses/'.
|
||||
|
||||
# gnulib library name
|
||||
source_base=lib
|
||||
tests_base=lib/tests
|
||||
gnulib_name=libgnu
|
||||
gnulib_tool_option_extras="--makefile-name=gnulib.mk --po-base=gnulib_po --po-domain=wget"
|
||||
gnulib_tool_option_extras=
|
||||
use_libtool=0
|
||||
checkout_only_file=
|
||||
|
||||
# gnulib modules used by this package.
|
||||
gnulib_modules="
|
||||
accept
|
||||
alloca
|
||||
announce-gen
|
||||
base32
|
||||
bind
|
||||
c-ctype
|
||||
c-strcase
|
||||
c-strcasestr
|
||||
clock-time
|
||||
close
|
||||
connect
|
||||
crypto/md2
|
||||
crypto/md4
|
||||
crypto/md5
|
||||
crypto/sha1
|
||||
crypto/sha256
|
||||
crypto/sha512
|
||||
dirname
|
||||
do-release-commit-and-tag
|
||||
fcntl
|
||||
flock
|
||||
fnmatch-gnu
|
||||
fopen
|
||||
ftello
|
||||
futimens
|
||||
gendocs
|
||||
ftello
|
||||
getaddrinfo
|
||||
getline
|
||||
getopt-gnu
|
||||
getpass-gnu
|
||||
getpeername
|
||||
getsockname
|
||||
gettext-h
|
||||
git-version-gen
|
||||
gitlog-to-changelog
|
||||
gnu-web-doc-update
|
||||
gnupload
|
||||
group-member
|
||||
hostent
|
||||
ioctl
|
||||
iconv
|
||||
iconv-h
|
||||
inet_ntop
|
||||
intprops
|
||||
inttypes
|
||||
ioctl
|
||||
langinfo
|
||||
libunistring-optional
|
||||
limits-h
|
||||
link
|
||||
listen
|
||||
maintainer-makefile
|
||||
mbiter
|
||||
mbtowc
|
||||
memrchr
|
||||
mkdir
|
||||
mkostemp
|
||||
mkstemp
|
||||
nanosleep
|
||||
open
|
||||
pipe-posix
|
||||
posix_spawn
|
||||
mkostemp
|
||||
crypto/md5
|
||||
crypto/sha1
|
||||
crypto/sha256
|
||||
pipe
|
||||
quote
|
||||
quotearg
|
||||
recv
|
||||
regex
|
||||
rename
|
||||
select
|
||||
send
|
||||
setsockopt
|
||||
signal-h
|
||||
sigpipe
|
||||
sigprocmask
|
||||
sigpipe
|
||||
snprintf
|
||||
socket
|
||||
spawn-pipe
|
||||
stat
|
||||
stdbool
|
||||
stdint
|
||||
strcase
|
||||
strcasestr
|
||||
strerror_r-posix
|
||||
strpbrk
|
||||
strptime
|
||||
strtok_r
|
||||
strtol
|
||||
strtoll
|
||||
symlink
|
||||
sys_types
|
||||
timegm
|
||||
tmpdir
|
||||
unicase/u8-tolower
|
||||
unistr/u8-strlen
|
||||
unlink
|
||||
unlocked-io
|
||||
update-copyright
|
||||
utime
|
||||
utimens
|
||||
vasprintf
|
||||
vsnprintf
|
||||
warnings
|
||||
wcwidth
|
||||
write
|
||||
xmemdup0
|
||||
xstrndup
|
||||
"
|
||||
|
||||
gnulib_extra_files="
|
||||
$build_aux/install-sh
|
||||
$build_aux/mdate-sh
|
||||
$build_aux/texinfo.tex
|
||||
$build_aux/depcomp
|
||||
$build_aux/config.guess
|
||||
$build_aux/config.sub
|
||||
$build_aux/config.rpath
|
||||
doc/INSTALL
|
||||
"
|
||||
|
||||
# Build prerequisites
|
||||
buildreq="\
|
||||
autoconf 2.64
|
||||
autoconf 2.62
|
||||
automake 1.11.1
|
||||
autopoint -
|
||||
gettext -
|
||||
gettext 0.17
|
||||
git 1.4.4
|
||||
makeinfo -
|
||||
perl 5.5
|
||||
rsync -
|
||||
tar -
|
||||
gzip -
|
||||
flex -
|
||||
gperf -
|
||||
xz -
|
||||
"
|
||||
|
||||
bootstrap_post_import_hook ()
|
||||
{
|
||||
# We need to patch unicase/special-casing-table.h for gperf < 3.1
|
||||
GPERF_VER=$(gperf --version | {
|
||||
IFS=' .' read x y major minor bugfix _
|
||||
printf "%d%02d%02d" $major $minor $bugfix
|
||||
})
|
||||
|
||||
if [ $GPERF_VER -lt 30100 ]; then
|
||||
echo "Creating lib/unicase/special-casing-table.h for gperf < 3.1"
|
||||
gperf -m 10 lib/unicase/special-casing-table.gperf | \
|
||||
sed -e "s/gl_unicase_special_lookup.*/gl_unicase_special_lookup\ \(const char \*str, size_t len\)/g" \
|
||||
> lib/unicase/special-casing-table.h
|
||||
fi
|
||||
|
||||
# ./bootstrap calls 'autopoint --force' which will overwrite
|
||||
# po/Makevars.template. So here we add what we need for a VPATH
|
||||
# build. ./bootstrap will create po/Makevars from po/Makevars.template
|
||||
# after our change.
|
||||
echo 'PACKAGE_GNU = yes' >> po/Makevars.template
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# Generate build_info.c.
|
||||
|
||||
# Copyright (C) 2009-2011, 2018-2024 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -137,4 +137,3 @@ __DATA__
|
||||
|
||||
#include "wget.h"
|
||||
#include <stdio.h>
|
||||
#include "version.h"
|
||||
|
||||
35
cfg.mk
35
cfg.mk
@@ -1,37 +1,28 @@
|
||||
# Explicit syntax-check exceptions.
|
||||
exclude_file_name_regexp--sc_trailing_blank = ^doc/annou.*$$
|
||||
exclude_file_name_regexp--sc_bindtextdomain = ^fuzz/.*.c$$
|
||||
exclude_file_name_regexp--sc_require_config_h = (fuzz/.*.c|src/decc_ver.c|util/trunc.c)$$
|
||||
exclude_file_name_regexp--sc_require_config_h_first = (fuzz/.*.c|src/decc_ver.c|src/vms.c|util/trunc.c)$$
|
||||
exclude_file_name_regexp--sc_file_system = ^(NEWS|testenv/server/ftp/ftp_server.py)$$
|
||||
|
||||
|
||||
export VC_LIST_EXCEPT_DEFAULT=^(lib/.*|m4/.*|md5/.*|build-aux/.*|src/gettext\.h|.*ChangeLog|tests/certs/.*)$$
|
||||
config_h_header = "wget\.h"
|
||||
export VC_LIST_EXCEPT_DEFAULT=^(lib/.*|m4/.*|md5/.*|build-aux/.*|src/gettext\.h|.*ChangeLog)$$
|
||||
|
||||
local-checks-to-skip = \
|
||||
sc_const_long_option \
|
||||
sc_error_message_uppercase \
|
||||
sc_file_system \
|
||||
sc_immutable_NEWS \
|
||||
sc_copyright_check \
|
||||
sc_makefile_path_separator_check \
|
||||
sc_require_config_h \
|
||||
sc_require_config_h_first \
|
||||
sc_two_space_separator_in_usage \
|
||||
sc_useless_cpp_parens \
|
||||
\
|
||||
sc_prohibit_atoi_atof \
|
||||
sc_prohibit_strcmp \
|
||||
sc_cast_of_alloca_return_value \
|
||||
sc_cast_of_x_alloc_return_value \
|
||||
sc_prohibit_S_IS_definition \
|
||||
\
|
||||
sc_makefile_at_at_check \
|
||||
sc_cast_of_argument_to_free \
|
||||
sc_prohibit_gnu_make_extensions \
|
||||
\
|
||||
sc_indent
|
||||
sc_program_name \
|
||||
|
||||
|
||||
#SHELL=bash -x
|
||||
show-vc-list-except:
|
||||
@$(VC_LIST_EXCEPT)
|
||||
|
||||
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^ABOUT-NLS|((msdos|vms)/.*)|ChangeLog-2014-12-10|/.*\.der|^tests/certs/.*|^fuzz/.*\.(in|repro)/.*$$
|
||||
|
||||
update-copyright-env = UPDATE_COPYRIGHT_USE_INTERVALS=1
|
||||
generated_files =
|
||||
|
||||
old_NEWS_hash = b80dbf02602654e200d7cbce7aeda8d2
|
||||
manual_title = $(VERSION)
|
||||
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^ABOUT-NLS|((msdos|vms)/.*)$$
|
||||
|
||||
983
configure.ac
983
configure.ac
File diff suppressed because it is too large
Load Diff
@@ -1,55 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Do some checking before 'git push'.
|
||||
|
||||
# Set a stricter bash mode
|
||||
set -e
|
||||
set -u
|
||||
|
||||
CORES=$(grep -c ^processor /proc/cpuinfo 2> /dev/null || echo 0)
|
||||
if [ $CORES -lt 1 ]; then CORES=1; fi
|
||||
|
||||
echo "Running: make distclean"
|
||||
make distclean > /dev/null || true
|
||||
|
||||
#CFLAGS="-std=c89 -pedantic -O0 -g -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wwrite-strings -Wshadow -Wformat -Wformat-security -Wunreachable-code -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition"
|
||||
CFLAGS="-Wall -Wextra -O2 -g"
|
||||
|
||||
CACHEFILE=$PWD/config_check.cache
|
||||
|
||||
# measure time consumed and print it at the end of the script
|
||||
START=$(date +%s.%N)
|
||||
|
||||
echo "Running: ./bootstrap"
|
||||
./bootstrap > /dev/null
|
||||
echo
|
||||
|
||||
for CC in gcc clang; do
|
||||
export CC
|
||||
echo "*** Testing with CC=$CC"
|
||||
|
||||
# the compiler changed, so we have to remove the cache file here
|
||||
rm -f $CACHEFILE
|
||||
|
||||
for options in "" "--with-ssl=openssl" "--disable-iri"; do
|
||||
export DISTCHECK_CONFIGURE_FLAGS="-C --cache-file=$CACHEFILE $options"
|
||||
echo " ./configure $DISTCHECK_CONFIGURE_FLAGS"
|
||||
./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS="$CFLAGS" > /dev/null
|
||||
|
||||
for xVALGRIND in 0 1; do
|
||||
for xLCALL in C tr_TR.utf8; do
|
||||
export TESTS_ENVIRONMENT="LC_ALL=$xLCALL VALGRIND_TESTS=$xVALGRIND"
|
||||
echo " TESTS_ENVIRONMENT=\"$TESTS_ENVIRONMENT\"" make check -j$CORES
|
||||
make check -j$CORES > /dev/null
|
||||
done
|
||||
done
|
||||
|
||||
unset TESTS_ENVIRONMENT
|
||||
export TESTS_ENVIRONMENT
|
||||
echo " make distcheck CFLAGS=$CFLAGS -j$CORES"
|
||||
make distcheck CFLAGS="$CFLAGS" -j$CORES > /dev/null
|
||||
done
|
||||
done
|
||||
|
||||
END=$(date +%s.%N)
|
||||
echo "Duration: "$(echo "$END - $START" | bc)
|
||||
@@ -1,48 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Copyright (c) 2018-2022, 2024 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
AUTHOR=$(git log -n1 --format='%aN')
|
||||
EMAIL=$(git log -n1 --format='%aE')
|
||||
DOMAIN=$(echo "$EMAIL" | cut -d'@' -f2)
|
||||
EMAIL_PARSE=$(echo "$EMAIL" | sed 's/@/ \\[at\\] /g')
|
||||
|
||||
retval=0
|
||||
|
||||
echo "The last commit is made by $AUTHOR: $EMAIL_PARSE"
|
||||
|
||||
if git cat-file -p HEAD | grep "^Copyright-paperwork-exempt: Yes"; then
|
||||
echo "This work is copyright paperwork exempt."
|
||||
elif ! grep -E -q "^\\[ASSGN\\] .* \\*($EMAIL_PARSE|$DOMAIN)\\*$" AUTHORS; then
|
||||
if grep -E -q "^\\[ *\\] .* \\*($EMAIL_PARSE|$DOMAIN)\\*$" AUTHORS; then
|
||||
echo "The author is known, but did not yet complete the FSF Copyright Assignment."
|
||||
else
|
||||
echo "The author was not found in the AUTHORS file."
|
||||
echo "Has the author completed the FSF Copyright Assignment?"
|
||||
fi
|
||||
echo
|
||||
echo "If the commit is minor, please add this to the commit message:"
|
||||
echo "Copyright-paperwork-exempt: Yes"
|
||||
retval=1
|
||||
else
|
||||
echo "The author or company was found in the AUTHORS file."
|
||||
echo "This work may be merged into master"
|
||||
fi
|
||||
|
||||
exit $retval
|
||||
@@ -1,123 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# GNU Wget: Make a new release
|
||||
#
|
||||
# This is a helper script to make a new release of GNU Wget
|
||||
#
|
||||
# Author: Darshit Shah <darnir@gnu.org>
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
set -u
|
||||
|
||||
export CFLAGS="-g -O2 -Wall"
|
||||
export LC_ALL=C
|
||||
|
||||
EXTENSIONS="gzip lzip"
|
||||
|
||||
ask_continue() {
|
||||
printf "Continue? [y/N]: "
|
||||
read -r inp
|
||||
[ "$inp" != "y" ] && [ "$inp" != "Y" ] && exit 1
|
||||
# For some completely weird reason, this set +x is required. Else, the test
|
||||
# *ALWAYS* fails
|
||||
set +x
|
||||
}
|
||||
|
||||
REQUIRED_PROGRAMS="ncftpput sponge cvs ssh rsync rsh"
|
||||
for prog in $REQUIRED_PROGRAMS; do
|
||||
if ! command -v "$prog" >/dev/null 2>&1; then
|
||||
2>&1 echo "Required program $prog not found. Please install before proceeding"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -d ".git" ]; then
|
||||
2>&1 echo "Please run this script from the root of the git repository"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
2>&1 echo "Usage: $0 [version] [release-type]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
readonly VERSION="$1" && shift
|
||||
readonly REL_TYPE_IN="$1" && shift
|
||||
REL_TYPE=
|
||||
case $REL_TYPE_IN in
|
||||
a|A|alpha|Alpha) REL_TYPE=alpha;;
|
||||
b|B|beta|Beta) REL_TYPE=beta;;
|
||||
s|S|stable|Stable) REL_TYPE=stable;;
|
||||
esac
|
||||
|
||||
echo "This script will make a new release and upload it to the GNU FTP Servers"
|
||||
echo "Will run git clean -dxf to get a clean dir"
|
||||
ask_continue
|
||||
|
||||
# Make sure we have a clean working directory
|
||||
git clean -dxfq
|
||||
|
||||
echo "=> Bootstrap"
|
||||
./bootstrap > /dev/null 2>&1
|
||||
autoreconf -ivf
|
||||
|
||||
echo "=> Configure"
|
||||
./configure -q
|
||||
|
||||
echo "Building $APP_NAME v$VERSION $REL_TYPE"
|
||||
ask_continue
|
||||
|
||||
LNO_CVER=$(grep -in "Noteworthy changes in release" NEWS | head -1 | tail -1 | cut -f1 -d:)
|
||||
LNO_PVER=$(grep -in "Noteworthy changes in release" NEWS | head -2 | tail -1 | cut -f1 -d:)
|
||||
sed -n "${LNO_CVER},${LNO_PVER}p" NEWS
|
||||
echo "This is the current contents of your NEWS"
|
||||
ask_continue
|
||||
|
||||
export RELEASE="$VERSION $REL_TYPE"
|
||||
|
||||
echo "=> Making release-commit"
|
||||
make -s release-commit
|
||||
|
||||
echo "=> Make release"
|
||||
make -s release
|
||||
|
||||
GPG_KEY=
|
||||
while [ -z $GPG_KEY ]; do
|
||||
printf "Enter GPG Key ID for Signing: "
|
||||
read key
|
||||
gpg --list-keys "$key" || continue
|
||||
printf "Will use this key to sign releases. Continue? [y/N]: "
|
||||
read x
|
||||
[ "$x" = "y" ] || [ "$x" = "Y" ] && GPG_KEY="$key"
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
upload_command=$(make -s emit_upload_commands \
|
||||
| sponge \
|
||||
| head -n3 \
|
||||
| tail -1 \
|
||||
| sed "s/--to/--user $GPG_KEY --symlink-regex --to/g"
|
||||
)
|
||||
|
||||
echo "=> Uploading"
|
||||
echo "Upload tarballs?"
|
||||
echo "$upload_command"
|
||||
ask_continue
|
||||
$upload_command
|
||||
|
||||
if [[ $REL_TYPE == "stable" ]]; then
|
||||
export CVSROOT=:ext:${CVSUSER:-${USER}}@cvs.savannah.gnu.org:/web/wget
|
||||
export CVS_RSH=/usr/bin/ssh
|
||||
export gendocs_options_=-I ../build-aux
|
||||
make web-manual-update
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Remaining Release Checklist:
|
||||
1. Send a mail to coordinator@translationproject.org with the subject
|
||||
\"Requesting Translations for $APP_NAME-$VERSION.POT\"
|
||||
2. Announce email template placed at ~/announce-$APP_NAME-$VERSION
|
||||
Send an announce mail to info-gnu@gnu.org
|
||||
"
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
prev_tag=`git tag --sort=taggerdate|tail -1`
|
||||
|
||||
echo -e "The authors list is autogenerated from the git history; sorted by number of commits\n"
|
||||
|
||||
(
|
||||
if [ -z $prev_tag ]; then
|
||||
git shortlog -sen
|
||||
else
|
||||
git shortlog -sen ${prev_tag}..
|
||||
fi
|
||||
) | cut -f 2 | sed 's/@/ at /g'
|
||||
|
||||
#(
|
||||
#if [ -z $prev_tag ]; then
|
||||
# git log --reverse|grep -i reported|cut -d':' -f2|cut -d'<' -f1|cut -d' ' -f2-|tr -d '"'
|
||||
#else
|
||||
# git log ${prev_tag}.. --reverse|grep -i reported|cut -d':' -f2|cut -d'<' -f1|cut -d' ' -f2-|tr -d '"'
|
||||
#fi
|
||||
#) | sort -u
|
||||
|
||||
echo -e "\n\nThe translators list is autogenerated from po file history\n"
|
||||
|
||||
sed -n 's/.*Last-Translator: *\(.*\) *<.*/\1/p' po/*.po | sort -u
|
||||
123
contrib/release
123
contrib/release
@@ -1,123 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Written 2016 by Tim Ruehsen
|
||||
#
|
||||
# To get the version number right: add a signed tag and
|
||||
# make sure the working dir is clean (git diff).
|
||||
# If that fails, put the version into '.tarball-version'.
|
||||
|
||||
export CFLAGS="-g -O2 -Wall"
|
||||
|
||||
echo
|
||||
echo "* Bootstrap"
|
||||
#./bootstrap >/dev/null
|
||||
|
||||
echo
|
||||
echo "* Configure"
|
||||
#./configure -q
|
||||
|
||||
extensions="gz lz"
|
||||
app_name=$(grep "^PACKAGE_NAME='" configure|cut -d "'" -f2)
|
||||
app_ver=$(grep "^PACKAGE_VERSION='" configure|cut -d "'" -f2)
|
||||
|
||||
echo "Current version of $app_name is $app_ver"
|
||||
echo
|
||||
echo -n "Is that OK ? [y/N] "
|
||||
read x
|
||||
[ "$x" != "y" -a "$x" != "Y" ] && exit 0
|
||||
|
||||
echo
|
||||
grep -i "Changes in $app_name" NEWS|head -1
|
||||
echo -n "Did you edit the NEWS file ? [y/N] "
|
||||
read x
|
||||
[ "$x" != "y" -a "$x" != "Y" ] && exit 0
|
||||
|
||||
echo
|
||||
echo "* Make"
|
||||
#make -s clean
|
||||
#make -s
|
||||
|
||||
echo
|
||||
echo "* Make distcheck"
|
||||
#make -s distcheck >/dev/null
|
||||
|
||||
echo
|
||||
echo "* Make dist"
|
||||
for ext in $extensions; do
|
||||
[[ $ext = 'gz' ]] && ext="gzip"
|
||||
[[ $ext = 'lz' ]] && ext="lzip"
|
||||
make -s dist-$ext >/dev/null
|
||||
done
|
||||
|
||||
while true; do
|
||||
echo "Alpha or Regular release ? [R/A] "
|
||||
read x
|
||||
if test "$x" = "r" || test "$x" = "R"; then
|
||||
directory="/incoming/ftp"
|
||||
break
|
||||
elif test "$x" = "a" || test "$x" = "A"; then
|
||||
directory="/incoming/alpha"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
x=$(gpg --list-secret-keys 2>/dev/null|grep ^sec|awk '{ print $2 }')
|
||||
echo $x
|
||||
if [ "$x" = "" ]; then
|
||||
echo No signing key found - please check with 'gpg --list-secret-keys'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# arrays just work in Bash
|
||||
keys=($x)
|
||||
if [ ${#keys[@]} -eq 1 ]; then
|
||||
IFS='/' arr=($x)
|
||||
signing_key=${arr[1]}
|
||||
else
|
||||
for ((i=0; i < ${#keys[@]}; i++)); do
|
||||
echo "$((i+1))) ${keys[i]}"
|
||||
done
|
||||
while true; do
|
||||
echo -n "Enter 1-${#keys[@]}: "
|
||||
read x
|
||||
|
||||
# check for digits only
|
||||
if [ -n "${i//[0-9]/}" ]; then continue; fi
|
||||
|
||||
if test $x -ge 1 || test $x -le ${#keys[@]}; then
|
||||
IFS='/' arr=(${keys[$((x-1))]})
|
||||
signing_key=${arr[1]}
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
unset IFS
|
||||
|
||||
echo
|
||||
echo -n "Really upload to ftp-upload.gnu.org/$directory ? "
|
||||
read x
|
||||
[ "$x" != "y" -a "$x" != "Y" ] && exit 0
|
||||
|
||||
for ext in $extensions; do
|
||||
app_tarball="${app_name}-${app_ver}.tar.$ext"
|
||||
gpg --default-key $signing_key --yes -b $app_tarball
|
||||
|
||||
echo -e "version: 1.2\nfilename: ${app_tarball}\ndirectory: ${app_name}\n" >${app_tarball}.directive
|
||||
gpg --default-key $signing_key --yes --clearsign ${app_tarball}.directive
|
||||
|
||||
ftp -v -n -i -p ftp-upload.gnu.org <<EOF
|
||||
user anonymous
|
||||
cd $directory
|
||||
put ${app_tarball}
|
||||
put ${app_tarball}.sig
|
||||
put ${app_tarball}.directive.asc
|
||||
EOF
|
||||
|
||||
done
|
||||
|
||||
prev_tag=`git tag|tail -2|head -1`
|
||||
echo "Don't forget to mention the following contributors in the announcement:"
|
||||
(
|
||||
git log ${prev_tag}.. --format="%aN" --reverse
|
||||
git log ${prev_tag}.. --reverse|grep -i reported|cut -d':' -f2|cut -d'<' -f1|cut -d' ' -f2-|tr -d '"'
|
||||
) | sort -u
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# see https://github.com/codespell-project/codespell
|
||||
#
|
||||
# in short:
|
||||
# - pip install codespell
|
||||
# - add ~/.local/bin to PATH
|
||||
|
||||
set -e
|
||||
|
||||
codespell $* -L "tim,gonna,cas,referer,fpr,vas,msdos,ifset,ba,tage,tolen,files',hist,lightening,wither,parm" `git ls-files|\
|
||||
egrep -v '_fuzzer.in|_fuzzer.repro|\.der$|\.pem$|gnulib|ChangeLog|tests/gpg|\.png$|\.dat$|contrib/spell-checker|tests/certs/.*\.crt'`
|
||||
|
||||
#codespell $* -L "tim,gonna,cas,te,referer,ist,fpr,vas" src/wget.c contrib/spell-checker
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script that executes wget using a socks proxy if the environment variable
|
||||
# socks_proxy is set.
|
||||
#
|
||||
# The socks_proxy variable shall have one of the forms:
|
||||
# socks://username:password@host:port
|
||||
# socks4://username:password@host:port
|
||||
# socks5://username:password@host:port
|
||||
# with username, password and port fields being optional
|
||||
#
|
||||
# As socksification applies to the whole process, domains defined in the
|
||||
# no_proxy setting are *not* excluded.
|
||||
#
|
||||
|
||||
# Requisites: bash (version 3.2.3 or later), tsocks and wget
|
||||
|
||||
####################################
|
||||
# Copyright (C) 2014 Ángel González
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
# Binary to be executed. Use an absolute path if installing this script as 'wget'
|
||||
WGET=wget
|
||||
|
||||
if [ -z "${socks_proxy:-}" ]; then
|
||||
exec "$WGET" "$@"
|
||||
fi
|
||||
|
||||
CONFIG=""
|
||||
|
||||
if [[ "${socks_proxy}" =~ ^socks[45]?:// ]]; then
|
||||
if [[ "${socks_proxy:5:1}" != ":" ]]; then
|
||||
CONFIG+="server_type = ${socks_proxy:5:1}"
|
||||
socks_proxy="${socks_proxy:9}"
|
||||
else
|
||||
socks_proxy="${socks_proxy:8}"
|
||||
fi
|
||||
elif [[ "${socks_proxy}" =~ ^[[:alnum:]]*:// ]]; then
|
||||
echo "Bad value specified for socks_proxy: $socks_proxy" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [[ "${socks_proxy}" =~ ^([^@:]*)(:([^@]*))?@ ]]; then
|
||||
unset TSOCKS_USERNAME
|
||||
CONFIG+="
|
||||
default_user = ${BASH_REMATCH[1]}"
|
||||
|
||||
if [ ! -z "${BASH_REMATCH[3]}" ]; then
|
||||
unset TSOCKS_PASSWORD
|
||||
CONFIG+="
|
||||
default_pass = ${BASH_REMATCH[3]}"
|
||||
fi
|
||||
socks_proxy="${socks_proxy:${#BASH_REMATCH[0]}}"
|
||||
fi
|
||||
|
||||
|
||||
# Get rid of trailing slashes
|
||||
if [[ "${socks_proxy}" =~ ^([^/]*)/ ]]; then
|
||||
socks_proxy="${socks_proxy:0:${#BASH_REMATCH[1]}}"
|
||||
fi
|
||||
|
||||
if [[ "${socks_proxy}" =~ :([0-9]+)$ ]]; then
|
||||
CONFIG+="
|
||||
server_port = ${BASH_REMATCH[1]}"
|
||||
socks_proxy=${socks_proxy:0:${#socks_proxy} - ${#BASH_REMATCH[0]}}
|
||||
fi
|
||||
|
||||
CONFIG+="
|
||||
server = ${socks_proxy}"
|
||||
|
||||
TSOCKS_CONF_FILE=<(echo "$CONFIG") exec tsocks "$WGET" --no-proxy "$@"
|
||||
1621
doc/ChangeLog
Normal file
1621
doc/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
# Makefile for `wget' utility
|
||||
# Copyright (C) 1995-1997, 2007-2011, 2015, 2018-2024 Free Software
|
||||
# Foundation, Inc.
|
||||
# Copyright (C) 1995, 1996, 1997, 2007, 2008, 2009, 2010, 2011 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -16,7 +16,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# Version: @VERSION@
|
||||
# Version: $(VERSION)
|
||||
#
|
||||
|
||||
# Program to convert DVI files to PostScript
|
||||
@@ -28,7 +28,6 @@ manext = 1
|
||||
RM = rm -f
|
||||
|
||||
TEXI2POD = $(srcdir)/texi2pod.pl
|
||||
POD2MAN = @POD2MAN@
|
||||
MAN = wget.$(manext)
|
||||
WGETRC = $(sysconfdir)/wgetrc
|
||||
SAMPLERCTEXI = sample.wgetrc.munged_for_texi_inclusion
|
||||
@@ -39,7 +38,7 @@ SAMPLERCTEXI = sample.wgetrc.munged_for_texi_inclusion
|
||||
|
||||
man_MANS = $(MAN)
|
||||
|
||||
all: wget.info @COMMENT_IF_NO_POD2MAN@$(MAN)
|
||||
all: wget.info $(COMMENT_IF_NO_POD2MAN)$(MAN)
|
||||
|
||||
everything: all wget_us.ps wget_a4.ps wget_toc.html
|
||||
|
||||
@@ -57,8 +56,7 @@ wget.pod: $(srcdir)/wget.texi version.texi
|
||||
$(TEXI2POD) -D VERSION="$(VERSION)" $(srcdir)/wget.texi $@
|
||||
|
||||
$(MAN): wget.pod
|
||||
$(POD2MAN) --center="GNU Wget" --release="GNU Wget @VERSION@" --utf8 $? > $@ || \
|
||||
$(POD2MAN) --center="GNU Wget" --release="GNU Wget @VERSION@" $? > $@
|
||||
$(POD2MAN) --center="GNU Wget" --release="GNU Wget $(VERSION)" $? > $@
|
||||
|
||||
#wget.cat: $(MAN)
|
||||
# nroff -man $? > $@
|
||||
@@ -77,10 +75,10 @@ wget_toc.html: $(srcdir)/wget.texi
|
||||
#
|
||||
|
||||
# install all the documentation
|
||||
install-data-local: install.wgetrc @COMMENT_IF_NO_POD2MAN@install.man
|
||||
install-data-local: install.wgetrc $(COMMENT_IF_NO_POD2MAN)install.man
|
||||
|
||||
# uninstall all the documentation
|
||||
uninstall-local: @COMMENT_IF_NO_POD2MAN@uninstall.man
|
||||
uninstall-local: $(COMMENT_IF_NO_POD2MAN)uninstall.man
|
||||
|
||||
|
||||
# install man page, creating install directory if necessary
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
Hello,
|
||||
|
||||
we are pleased to announce the new version of GNU wget 1.19.
|
||||
|
||||
It comes with major improvements for Metalink, IDNA2008 for
|
||||
international domain names, an option to call external tools
|
||||
for fetching user/password, several bugfixes and improvements.
|
||||
|
||||
Many thanks go to all the contributors and list activists !
|
||||
|
||||
Contributors (from the git log):
|
||||
Ander Juaristi
|
||||
Dale R. Worley
|
||||
Eli Zaretskii
|
||||
Gisle Vanem
|
||||
Giuseppe Scrivano
|
||||
Göran Uddeborg
|
||||
Jann Horn
|
||||
Jeffery To
|
||||
Jérémie Courrèges-Anglas
|
||||
Liam R. Howlett
|
||||
losgrandes
|
||||
Matthew White
|
||||
Misra, Deapesh
|
||||
Nikos Mavrogiannopoulos
|
||||
Noël Köthe
|
||||
Piotr Wajda
|
||||
Rahul Bedarkar
|
||||
Sean Burford
|
||||
Tim Rühsen
|
||||
Tobias Stoeckmann
|
||||
vijeth-aradhya
|
||||
|
||||
|
||||
The new version is available for download here:
|
||||
|
||||
https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz
|
||||
https://ftp.gnu.org/gnu/wget/wget-1.19.tar.xz
|
||||
|
||||
and the GPG detached signatures using the key 0x08302DB6A2670428:
|
||||
|
||||
https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz.sig
|
||||
https://ftp.gnu.org/gnu/wget/wget-1.19.tar.xz.sig
|
||||
|
||||
To reduce load on the main server, you can use this redirector service
|
||||
which automatically redirects you to a mirror:
|
||||
|
||||
http://ftpmirror.gnu.org/wget/wget-1.19.tar.gz
|
||||
http://ftpmirror.gnu.org/wget/wget-1.19.tar.xz
|
||||
|
||||
|
||||
Noteworthy changes:
|
||||
|
||||
* New option --use-askpass=COMMAND. Fetch user/password by calling
|
||||
an external program.
|
||||
|
||||
* Use IDNA2008 (+ TR46 if available) through libidn2
|
||||
|
||||
* When processing a Metalink header, --metalink-index=<number> allows
|
||||
to process the header's application/metalink4+xml files.
|
||||
|
||||
* When processing a Metalink file, --trust-server-names enables the
|
||||
use of the destination file names specified in the Metalink file,
|
||||
otherwise a safe destination file name is computed.
|
||||
|
||||
* When processing a Metalink file, enforce a safe destination path.
|
||||
Remove any drive letter prefix under w32, i.e. 'C:D:file'. Call
|
||||
libmetalink's metalink_check_safe_path() to prevent absolute,
|
||||
relative, or home paths:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.1.2.1
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.8.3
|
||||
|
||||
* When processing a Metalink file, --directory-prefix=<prefix> sets
|
||||
the top of the retrieval tree to prefix for Metalink downloads.
|
||||
|
||||
* When processing a Metalink file, reject downloaded files which don't
|
||||
agree with their own metalink:size value:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.16
|
||||
|
||||
* When processing a Metalink file, with --continue resume partially
|
||||
downloaded files and keep fully downloaded files even if they fail
|
||||
the verification.
|
||||
|
||||
* When processing a Metalink file, create the parent directories of a
|
||||
"path/file" destination file name:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.1.2.1
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.8.3
|
||||
|
||||
* On a recursive download, append a .tmp suffix to temporary files
|
||||
that will be deleted after being parsed, and create them
|
||||
readable/writable only by the owner.
|
||||
|
||||
* New make target 'check-valgrind'
|
||||
|
||||
* Fix several bugs
|
||||
|
||||
* Fix compatibility issues
|
||||
|
||||
|
||||
Please report any problem you may experience to the bug-wget@gnu.org
|
||||
mailing list.
|
||||
|
||||
For the maintainers of Wget,
|
||||
Tim
|
||||
@@ -5,8 +5,7 @@
|
||||
@c hence no sectioning command or @node.
|
||||
|
||||
@display
|
||||
Copyright @copyright{} 2000--2002, 2007--2008, 2015, 2018--2024 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{http://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
GNU Wget Metalink recommended behaviour
|
||||
|
||||
Metalink/XML and Metalink/HTTP standard reference
|
||||
|
||||
|
||||
1. Security features
|
||||
********************
|
||||
|
||||
Only metalink:file elements with safe "name" fields shall be accepted
|
||||
[1 #section-4.1.2.1]. If unsafe metalink:file elements are saved, any
|
||||
related test shall fail (see '2. Tests').
|
||||
|
||||
By design, libmetalink rejects unsafe metalink:file elements [3]:
|
||||
* lib/metalink_helper.c (metalink_check_safe_path): Verify path
|
||||
|
||||
1.1 Exceptions
|
||||
==============
|
||||
|
||||
The option --directory-prefix could allow to use an absolute, relative
|
||||
or home path.
|
||||
|
||||
2. Tests
|
||||
********
|
||||
|
||||
Saving a file to an unexpected path poses a security problem. We must
|
||||
ensure that Wget's automated tests never modify the root and the home
|
||||
paths or descend/escalate to a relative path unexpectedly.
|
||||
|
||||
2.1 Metalink/XML implemented tests
|
||||
==================================
|
||||
|
||||
See testenv/Makefile.am (METALINK_TESTS).
|
||||
|
||||
2.2 Metalink/HTTP implemented tests
|
||||
===================================
|
||||
|
||||
See testenv/Makefile.am (METALINK_TESTS).
|
||||
|
||||
3. Download file name
|
||||
*********************
|
||||
|
||||
The download file name shall be decided by precise rules which prevent
|
||||
any naming uncertainty and security issues.
|
||||
|
||||
3.1 Naming rules
|
||||
================
|
||||
|
||||
The final name of downloaded files is computed starting from a trusted
|
||||
name, which is then combined with the "Directory Options". The result
|
||||
is verified and eventually made safer following security rules. If the
|
||||
final name isn't found safe enough, then the file isn't downloaded.
|
||||
|
||||
Depending on the options used, a suffix could be appended to the final
|
||||
name to not overwrite existing files.
|
||||
|
||||
3.1.1 The trusted name
|
||||
======================
|
||||
|
||||
The option --trust-server-names decides what is the trusted name.
|
||||
|
||||
Any Metalink/XML element with an unsafe metalink:file "name" field is
|
||||
ignored, see '1. Security features'.
|
||||
|
||||
3.1.1.1 Without --trust-server-names
|
||||
====================================
|
||||
|
||||
When --trust-server-names is off, the basename of the --input-metalink
|
||||
file, if available, or of the mother URL is trusted. This trusted name
|
||||
is the radix of any subsequent file name.
|
||||
|
||||
When a Metalink/HTTP in encountered, any fetched Metalink/XML file has
|
||||
its own ordinal number appended as suffix to the trusted name. In this
|
||||
case scenario, an unique Metalink/XML file is saved each time applying
|
||||
an additional suffix to the currently computed name when necessary.
|
||||
|
||||
The files described by a Metalink/XML file will be named sequentially
|
||||
applying an additional suffix to the currently trusted/computed name.
|
||||
|
||||
3.1.1.2 With --trust-server-names
|
||||
=================================
|
||||
|
||||
When --trust-server-names is on, the metalink:file "name" field parsed
|
||||
from Metalink/XML files is trusted. When no Metalink/XML is available,
|
||||
the mother URL is trusted.
|
||||
|
||||
Any Metalink/HTTP application/metalink4+xml file is saved using the
|
||||
basename of its own Link header "name" field, if available.
|
||||
|
||||
In conjunction with the option --content-disposition, a 'Content-Type:
|
||||
application/metalink4+xml' file is saved using the basename of its own
|
||||
Content-Disposition header "filename" field, if available.
|
||||
|
||||
3.1.2 The final name
|
||||
====================
|
||||
|
||||
The "Directory Options" are combined with the trusted name. The result
|
||||
is evaluated again by the '1. Security features'. If the path is found
|
||||
unsafe, only the basename of the final name is considered. If this is
|
||||
found unsafe too, the file is not downloaded.
|
||||
|
||||
4. Metalink/XML
|
||||
***************
|
||||
|
||||
4.1 Example files
|
||||
=================
|
||||
|
||||
See [1 #section-1.1].
|
||||
|
||||
cat > bogus.meta4 << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metalink xmlns="urn:ietf:params:xml:ns:metalink">
|
||||
<file name="/dir/A/File1">
|
||||
<size>1617</size>
|
||||
<hash type="sha256">ecb3dff2648667513e31554b3ad054ccd89fce38e33367c9459ac3a285153742</hash>
|
||||
<url>http://another.url/common_name</url>
|
||||
<url>http://ftpmirror.gnu.org/bash/bash-4.3-patches/bash43-001</url>
|
||||
</file>
|
||||
<file name="dir/B/File2">
|
||||
<size>1594</size>
|
||||
<hash type="sha256">eee7cd7062ab29a9e4f02924d9c367264dcb8b162703f74ff6eb8f175a91502b</hash>
|
||||
<url>http://another.url/again/common_name</url>
|
||||
<url>http://ftpmirror.gnu.org/bash/bash-4.3-patches/bash43-002</url>
|
||||
</file>
|
||||
</metalink>
|
||||
EOF
|
||||
|
||||
4.2 Command line example
|
||||
========================
|
||||
|
||||
$ wget --input-metalink=bogus.meta4
|
||||
|
||||
4.3 Metalink/XML file parsing
|
||||
=============================
|
||||
|
||||
The metalink xml file is parsed by one of the following libmetalink's
|
||||
functions [3], depending upon the library configured to use:
|
||||
* lib/libexpat_metalink_parser.c (metalink_parse_file): Expat [4]
|
||||
* lib/libxml2_metalink_parser.c (metalink_parse_file): Libxml2 [5]
|
||||
|
||||
The result returned doesn't include unsafe metalink:file elements, as
|
||||
stated at point '1. Security features'.
|
||||
|
||||
An empty result shall not be considered an error. Parsing errors will
|
||||
be informed to the caller of libmetalink's metalink_parse_file().
|
||||
|
||||
4.4 Saving files
|
||||
================
|
||||
|
||||
Fetched metalink:file elements shall be wrote using the unique "name"
|
||||
field as file name [1 #section-4.1.2.1].
|
||||
|
||||
A metalink:file url's file name shall not substitute the "name" field.
|
||||
|
||||
Security exceptions are explained in '3. Download file name'.
|
||||
|
||||
4.5 Multi-Source download
|
||||
=========================
|
||||
|
||||
Parallel range requests are allowed [1 #section-1].
|
||||
|
||||
5. Metalink/HTTP
|
||||
****************
|
||||
|
||||
5.1 HTTP server
|
||||
===============
|
||||
|
||||
The local server http://127.0.0.1 is used as reference in the course
|
||||
of this chapter. Any server service capable of sending Metalink/HTTP
|
||||
header answers may be used.
|
||||
|
||||
5.2 Command line example
|
||||
========================
|
||||
|
||||
$ wget --metalink-over-http http://127.0.0.1/dir/file.ext
|
||||
|
||||
5.3 Metalink/HTTP header answer
|
||||
===============================
|
||||
|
||||
See [2 #section-1.1].
|
||||
|
||||
Etag: "thvDyvhfIqlvFe+A9MYgxAfm1q5="
|
||||
Link: <http://www2.example.com/example.ext>; rel=duplicate
|
||||
Link: <ftp://ftp.example.com/example.ext>; rel=duplicate
|
||||
Link: <http://example.com/example.ext.torrent>; rel=describedby;
|
||||
type="application/x-bittorrent"
|
||||
Link: <http://example.com/example.ext.meta4>; rel=describedby;
|
||||
type="application/metalink4+xml"
|
||||
Link: <http://example.com/example.ext.asc>; rel=describedby;
|
||||
type="application/pgp-signature"
|
||||
Digest: SHA-256=MWVkMWQxYTRiMzk5MDQ0MzI3NGU5NDEyZTk5OWY1ZGFmNzgyZTJlO
|
||||
DYzYjRjYzFhOTlmNTQwYzI2M2QwM2U2MQ==
|
||||
|
||||
See [2 #section-4].
|
||||
|
||||
Link: <http://example.com/example.ext.torrent>; rel=describedby;
|
||||
type="application/x-bittorrent"; name="differentname.ext"
|
||||
Link: <http://example.com/example.ext.meta4>; rel=describedby;
|
||||
type="application/metalink4+xml"
|
||||
|
||||
5.4 Saving files
|
||||
================
|
||||
|
||||
When none of --output-document and/or --content-disposition is used,
|
||||
the file name to wrote is computed from the cli's url hierarchy. The
|
||||
purpose of the "Directory Options" is as usual, and the file name is
|
||||
the cli's url file name, see wget(1).
|
||||
|
||||
The url followed to download the file shall not substitute the cli's
|
||||
url to compute the file name to wrote, except when it redirects to a
|
||||
Metalink/XML file, following the rules in '3. Download file name'.
|
||||
|
||||
5.5 Multi-Source download
|
||||
=========================
|
||||
|
||||
Parallel range requests are allowed [2 #section-7].
|
||||
|
||||
4. References
|
||||
*************
|
||||
|
||||
[1] The Metalink Download Description Format
|
||||
https://tools.ietf.org/html/rfc5854
|
||||
|
||||
[2] Metalink/HTTP: Mirrors and Hashes
|
||||
https://tools.ietf.org/html/rfc6249
|
||||
|
||||
[3] Libmetalink
|
||||
https://github.com/metalink-dev/libmetalink
|
||||
|
||||
[4] Expat
|
||||
http://www.libexpat.org
|
||||
|
||||
[5] Libxml2
|
||||
http://xmlsoft.org
|
||||
165
doc/metalink.txt
165
doc/metalink.txt
@@ -1,165 +0,0 @@
|
||||
GNU Wget Metalink module
|
||||
|
||||
Evaluation of the Metalink/XML and Metalink/HTTP implementations
|
||||
|
||||
|
||||
1. Introduction
|
||||
***************
|
||||
|
||||
This document, and the results contained in it, is focused over the
|
||||
evaluation of the Metalink/XML and Metalink/HTTP implementations.
|
||||
|
||||
The "Directory Options" mentioned here are used on the command line in
|
||||
conjunction with the option '--input-metalink=file' for Metalink/XML,
|
||||
and '--metalink-over-http' for Metalink/HTTP.
|
||||
|
||||
$ wget --input-metalink=<file> [directory options]
|
||||
$ wget --metalink-over-http [directory options] <url>
|
||||
|
||||
2. Notes
|
||||
********
|
||||
|
||||
Tests for metalink:file names beginning with '/', '~/', './', or '../'
|
||||
(e.g. "/path/file") shall be run manually due to security concerns.
|
||||
|
||||
3. Metalink files used as reference
|
||||
***********************************
|
||||
|
||||
3.1 Test: metalink:file with "path/file" name format
|
||||
====================================================
|
||||
|
||||
cat > test.meta4 << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metalink xmlns="urn:ietf:params:xml:ns:metalink">
|
||||
<file name="path/file">
|
||||
<size>543</size>
|
||||
<hash type="sha256">d37d3965f8e1a7b16504b4273b09c392776b7e4dd17e601256c7b2fd9ce5f56e</hash>
|
||||
<hash type="md5">0f6ff5cdc15603f1b81227b5a296f001</hash>
|
||||
<url>http://wrongurl.really/gnu/wget/wget-1.18.tar.xz.sig</url>
|
||||
<url>http://ftpmirror.gnu.org/wget/wget-1.18.tar.xz.sig</url>
|
||||
<url>http://ftp.gnu.org/gnu/wget/wget-1.18.tar.xz.sig</url>
|
||||
<url>http://nl.mirror.babylon.network/gnu/wget/wget-1.18.tar.xz.sig</url>
|
||||
</file>
|
||||
</metalink>
|
||||
EOF
|
||||
|
||||
4. `wget --input-metalink=test.meta4`
|
||||
*************************************
|
||||
|
||||
4.1 Implemented safety features
|
||||
===============================
|
||||
|
||||
Any metalink:file name containing an absolute, relative, or home path
|
||||
(see '2. Notes') parsed from Metalink/XML files is rejected.
|
||||
|
||||
This is a libmetalink's design decision implemented in the function
|
||||
metalink_check_safe_path(). This feature shall not be modified.
|
||||
|
||||
All the above conform to the RFC5854 standard.
|
||||
|
||||
References:
|
||||
https://tools.ietf.org/html/rfc5854#section-4.1.2.1
|
||||
https://tools.ietf.org/html/rfc5854#section-4.2.8.3
|
||||
|
||||
4.2 File download behaviour
|
||||
===========================
|
||||
|
||||
When a Metalink/XML file is parsed:
|
||||
1. create the metalink:file "path/file" tree;
|
||||
2. download the metalink:url file as "path/file";
|
||||
3. verify the "path/file" size, if declared;
|
||||
4. verify the "path/file" checksum.
|
||||
|
||||
All the above conform to the RFC5854 standard.
|
||||
|
||||
References:
|
||||
https://tools.ietf.org/html/rfc5854
|
||||
|
||||
4.3 Questionable behaviours
|
||||
===========================
|
||||
|
||||
If more metalink:file elements are the same, wget downloads them all.
|
||||
|
||||
5. `wget --metalink-over-http`
|
||||
******************************
|
||||
|
||||
5.1 Implemented safety features
|
||||
===============================
|
||||
|
||||
The function url_file_name() is responsible of parsing the url's file
|
||||
name and mixing in the "Directory Options" wrote on the command line.
|
||||
|
||||
The use of libmetalink's metalink_check_safe_path() shouldn't be
|
||||
necessary (see '4.1 Implemented safety features').
|
||||
|
||||
All the above comform to the usual Wget's download behaviour.
|
||||
|
||||
References:
|
||||
wget(1)
|
||||
|
||||
5.2 File download behaviour
|
||||
===========================
|
||||
|
||||
When a Metalink/HTTP header is parsed:
|
||||
1. extract metalink metadata from the header;
|
||||
2. download the file from the mirror with the highest priority;
|
||||
3. verify the file's size, if declared;
|
||||
4. verify the file's checksum.
|
||||
|
||||
All the above comform to the usual Wget's download behaviour and to
|
||||
the RFC6249 standard.
|
||||
|
||||
References:
|
||||
wget(1)
|
||||
https://tools.ietf.org/html/rfc6249
|
||||
|
||||
6. Directory Options
|
||||
********************
|
||||
|
||||
'-nd'
|
||||
'--no-directories'
|
||||
|
||||
Do not apply to Metalink/XML files (aka --input-metalink=<file>).
|
||||
|
||||
Apply to Metalink/HTTP urls as described in the Wget's manual, see
|
||||
wget(1). The target url is the url wrote on the command line.
|
||||
|
||||
'-x'
|
||||
'--force-directories'
|
||||
|
||||
Do not apply to Metalink/XML files (aka --input-metalink=<file>).
|
||||
|
||||
Apply to Metalink/HTTP urls as described in the Wget's manual, see
|
||||
wget(1). The target url is the url wrote on the command line.
|
||||
|
||||
'-nH'
|
||||
'--no-host-directories'
|
||||
|
||||
Do not apply to Metalink/XML files (aka --input-metalink=<file>).
|
||||
|
||||
Apply to Metalink/HTTP urls as described in the Wget's manual, see
|
||||
wget(1). The target url is the url wrote on the command line.
|
||||
|
||||
'--protocol-directories'
|
||||
|
||||
Do not apply to Metalink/XML files (aka --input-metalink=<file>).
|
||||
|
||||
Apply to Metalink/HTTP urls as described in the Wget's manual, see
|
||||
wget(1). The target url is the url wrote on the command line.
|
||||
|
||||
'--cut-dirs=number'
|
||||
|
||||
Do not apply to Metalink/XML files (aka --input-metalink=<file>).
|
||||
|
||||
Apply to Metalink/HTTP urls as described in the Wget's manual, see
|
||||
wget(1). The target url is the url wrote on the command line.
|
||||
|
||||
'-P prefix'
|
||||
'--directory-prefix=prefix'
|
||||
|
||||
Set the top of the retrieval tree to prefix for both Metalink/XML
|
||||
and Metalink/HTTP downloads, see wget(1).
|
||||
|
||||
If combining the prefix with the file name results in an absolute,
|
||||
relative, or home path, the directory components are stripped and
|
||||
only the basename is used. See '4.1 Implemented safety features'.
|
||||
@@ -16,9 +16,6 @@
|
||||
## To use the settings in this file, you will have to uncomment them,
|
||||
## as well as change them, in most cases, as the values on the
|
||||
## commented-out lines are the default values (e.g. "off").
|
||||
##
|
||||
## Command are case-, underscore- and minus-insensitive.
|
||||
## For example ftp_proxy, ftp-proxy and ftpproxy are the same.
|
||||
|
||||
|
||||
##
|
||||
@@ -125,7 +122,7 @@
|
||||
#iri = off
|
||||
|
||||
# Force the default system encoding
|
||||
#localencoding = UTF-8
|
||||
#locale = UTF-8
|
||||
|
||||
# Force the default remote server encoding
|
||||
#remoteencoding = UTF-8
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env perl
|
||||
|
||||
# Copyright (C) 1999-2001, 2003, 2007, 2009-2011, 2015, 2018-2024 Free
|
||||
# Copyright (C) 1999, 2000, 2001, 2003, 2007, 2009, 2010, 2011 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This file is part of GCC.
|
||||
@@ -315,8 +315,6 @@ die "No filename or title\n" unless defined $fn && defined $tl;
|
||||
$sects{NAME} = "$fn \- $tl\n";
|
||||
$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
|
||||
|
||||
print "=encoding utf-8\n\n";
|
||||
|
||||
for $sect (qw(NAME SYNOPSIS DESCRIPTION OPTIONS ENVIRONMENT EXITSTATUS
|
||||
FILES BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
|
||||
if(exists $sects{$sect}) {
|
||||
|
||||
727
doc/wget.texi
727
doc/wget.texi
File diff suppressed because it is too large
Load Diff
122
fuzz/Makefile.am
122
fuzz/Makefile.am
@@ -1,122 +0,0 @@
|
||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) $(CODE_COVERAGE_CFLAGS)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir) -I$(top_builddir)/lib -I$(top_srcdir)/lib \
|
||||
$(CODE_COVERAGE_CPPFLAGS) \
|
||||
-DSRCDIR=\"$(abs_srcdir)\"
|
||||
LDADD = ../lib/libgnu.a \
|
||||
$(CLOCK_TIME_LIB) \
|
||||
$(GETADDRINFO_LIB) \
|
||||
$(GETRANDOM_LIB) \
|
||||
$(HARD_LOCALE_LIB) \
|
||||
$(HOSTENT_LIB) \
|
||||
$(INET_NTOP_LIB) \
|
||||
$(LIBSOCKET) \
|
||||
$(LIBTHREAD) \
|
||||
$(LIB_CRYPTO) \
|
||||
$(LIBC32CONV) \
|
||||
$(LIBICONV) \
|
||||
$(LIBINTL) \
|
||||
$(LIBUNISTRING) \
|
||||
$(MBRTOWC_LIB) \
|
||||
$(NANOSLEEP_LIB) \
|
||||
$(POSIX_SPAWN_LIB) \
|
||||
$(PTHREAD_SIGMASK_LIB) \
|
||||
$(SELECT_LIB) \
|
||||
$(SERVENT_LIB) \
|
||||
$(SETLOCALE_NULL_LIB) \
|
||||
$(FUZZ_LIBS) $(CODE_COVERAGE_LIBS)
|
||||
|
||||
WGET_TESTS = \
|
||||
wget_cookie_fuzzer$(EXEEXT) \
|
||||
wget_css_fuzzer$(EXEEXT) \
|
||||
wget_ftpls_fuzzer$(EXEEXT) \
|
||||
wget_html_fuzzer$(EXEEXT) \
|
||||
wget_netrc_fuzzer$(EXEEXT) \
|
||||
wget_options_fuzzer$(EXEEXT) \
|
||||
wget_progress_fuzzer$(EXEEXT) \
|
||||
wget_read_hunk_fuzzer$(EXEEXT) \
|
||||
wget_robots_fuzzer$(EXEEXT) \
|
||||
wget_url_fuzzer$(EXEEXT)
|
||||
|
||||
EXTRA_DIST = test-runner.sh
|
||||
|
||||
if WITH_NTLM
|
||||
WGET_TESTS += wget_ntlm_fuzzer$(EXEEXT)
|
||||
endif
|
||||
|
||||
if FUZZING
|
||||
bin_PROGRAMS = $(WGET_TESTS)
|
||||
LDADD += $(LIB_FUZZING_ENGINE)
|
||||
MAIN = fuzzer.h
|
||||
# AM_LDFLAGS = -no-install -all-static
|
||||
else
|
||||
AM_CPPFLAGS += -DTEST_RUN
|
||||
AM_TESTS_ENVIRONMENT = export VALGRIND_TESTS"=@VALGRIND_TESTS@";
|
||||
LOG_COMPILER = $(top_srcdir)/fuzz/test-runner.sh
|
||||
TESTS = $(WGET_TESTS)
|
||||
check_PROGRAMS = $(WGET_TESTS)
|
||||
MAIN = main.c fuzzer.h
|
||||
endif
|
||||
|
||||
# Make libunittest "PHONY" so we're always sure we're up-to-date.
|
||||
.PHONY: ../src/libunittest.a
|
||||
../src/libunittest.a:
|
||||
$(MAKE) $(AM_MAKEFLAGS) -C ../src libunittest.a
|
||||
|
||||
wget_cookie_fuzzer_SOURCES = wget_cookie_fuzzer.c $(MAIN)
|
||||
wget_cookie_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_css_fuzzer_SOURCES = wget_css_fuzzer.c $(MAIN)
|
||||
wget_css_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_ftpls_fuzzer_SOURCES = wget_ftpls_fuzzer.c $(MAIN)
|
||||
wget_ftpls_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_html_fuzzer_SOURCES = wget_html_fuzzer.c $(MAIN)
|
||||
wget_html_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_netrc_fuzzer_SOURCES = wget_netrc_fuzzer.c $(MAIN)
|
||||
wget_netrc_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_ntlm_fuzzer_SOURCES = wget_ntlm_fuzzer.c $(MAIN)
|
||||
wget_ntlm_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_options_fuzzer_SOURCES = wget_options_fuzzer.c $(MAIN)
|
||||
wget_options_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_progress_fuzzer_SOURCES = wget_progress_fuzzer.c $(MAIN)
|
||||
wget_progress_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_read_hunk_fuzzer_SOURCES = wget_read_hunk_fuzzer.c $(MAIN)
|
||||
wget_read_hunk_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_robots_fuzzer_SOURCES = wget_robots_fuzzer.c $(MAIN)
|
||||
wget_robots_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
wget_url_fuzzer_SOURCES = wget_url_fuzzer.c $(MAIN)
|
||||
wget_url_fuzzer_LDADD = ../src/libunittest.a $(LDADD)
|
||||
|
||||
#EXTRA_DIST = $(wildcard *.options) $(wildcard *.dict) \
|
||||
# $(wildcard *.in) $(wildcard *.repro)
|
||||
|
||||
dist-hook:
|
||||
find $(srcdir) -name '*.options' -exec cp -v '{}' $(distdir) ';'
|
||||
find $(srcdir) -name '*.dict' -exec cp -v '{}' $(distdir) ';'
|
||||
# find $(srcdir) -name '*.in' -exec cp -vr '{}' $(distdir) ';'
|
||||
find $(srcdir) -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
|
||||
|
||||
clean-local:
|
||||
rm -rf *.gc?? *.log lcov
|
||||
|
||||
oss-fuzz:
|
||||
if test "$$OUT" != ""; then \
|
||||
XLIBS="-lpsl -lgnutls -lhogweed -lnettle -lgmp -lidn2 -lunistring -lz"; \
|
||||
for ccfile in wget*_fuzzer.c; do \
|
||||
fuzzer=$$(basename $$ccfile .c); \
|
||||
$$CC $$CFLAGS -I$(top_srcdir)/src -I$(top_srcdir) -I$(top_srcdir)/lib \
|
||||
"$${fuzzer}.c" -o "$${fuzzer}" \
|
||||
../src/libunittest.a ../lib/libgnu.a $${LIB_FUZZING_ENGINE} \
|
||||
-Wl,-Bstatic $${XLIBS} -Wl,-Bdynamic; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
.PHONY: oss-fuzz
|
||||
@@ -1,83 +0,0 @@
|
||||
# Fuzzers
|
||||
|
||||
These are fuzzers designed for use with `libFuzzer` or `afl`. They can
|
||||
be used to run on Google's OSS-Fuzz (https://github.com/google/oss-fuzz/).
|
||||
|
||||
The convention used here is that the initial values for each parser fuzzer
|
||||
are taken from the $NAME.in directory.
|
||||
|
||||
Crash reproducers from OSS-Fuzz are put into $NAME.repro directory for
|
||||
regression testing with top dir 'make check' or 'make check-valgrind'.
|
||||
|
||||
|
||||
# Running a fuzzer using clang
|
||||
|
||||
Use the following commands on top dir:
|
||||
```
|
||||
export CC=clang
|
||||
# address sanitizer:
|
||||
#export CFLAGS="-O1 -g -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined,integer,nullability -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
|
||||
export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link"
|
||||
# undefined sanitizer;
|
||||
export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=bool,array-bounds,float-divide-by-zero,function,integer-divide-by-zero,return,shift,signed-integer-overflow,vla-bound,vptr -fno-sanitize-recover=bool,array-bounds,float-divide-by-zero,function,integer-divide-by-zero,return,shift,signed-integer-overflow,vla-bound,vptr -fsanitize=fuzzer-no-link"
|
||||
export LIB_FUZZING_ENGINE="-lFuzzer -lstdc++"
|
||||
./configure --enable-fuzzing --without-metalink --without-zlib --disable-pcre --without-libuuid --enable-assert
|
||||
make clean
|
||||
make -j$(nproc)
|
||||
cd fuzz
|
||||
|
||||
# run wget_options_fuzzer
|
||||
UBSAN_OPTIONS=print_stacktrace=1 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer \
|
||||
./run-clang.sh wget_options_fuzzer
|
||||
```
|
||||
|
||||
If you see a crash, then a crash corpora is written that can be used for further
|
||||
investigation. E.g.
|
||||
```
|
||||
==2410==ERROR: AddressSanitizer: heap-use-after-free on address 0x602000004e90 at pc 0x00000049cf9c bp 0x7fffb5543f70 sp 0x7fffb5543720
|
||||
...
|
||||
Test unit written to ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
|
||||
```
|
||||
|
||||
To reproduce the crash:
|
||||
```
|
||||
./wget_options_fuzzer < ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
|
||||
```
|
||||
|
||||
You can also copy/move that file into wget_options_fuzzer.repro/
|
||||
and re-build the project without fuzzing for a valgrind run, if you like that better.
|
||||
Just a `./configure` and a `make check-valgrind` should reproduce it.
|
||||
|
||||
|
||||
# Running a fuzzer using AFL
|
||||
|
||||
Use the following commands on top dir:
|
||||
|
||||
```
|
||||
$ export LIB_FUZZING_ENGINE=""
|
||||
$ CC=afl-clang-fast ./configure --enable-fuzzing
|
||||
$ make -j$(nproc) clean all
|
||||
$ cd fuzz
|
||||
$ ./run-afl.sh wget_options_fuzzer
|
||||
```
|
||||
|
||||
# Fuzz code coverage using the corpus directories *.in/
|
||||
|
||||
Code coverage reports currently work best with gcc+lcov+genhtml.
|
||||
|
||||
In the top directory:
|
||||
```
|
||||
CC=gcc CFLAGS="-O0 -g" ./configure
|
||||
make fuzz-coverage
|
||||
xdg-open lcov/index.html
|
||||
```
|
||||
|
||||
To work on corpora for better coverage, `cd fuzz` and use e.g.
|
||||
`./view-coverage.sh wget_options_fuzzer`.
|
||||
|
||||
|
||||
# Creating wget_options_fuzzer.dict
|
||||
|
||||
```
|
||||
for i in `../src/wget --help|tr ' ' '\n'|grep ^--|cut -c 3-|sort`;do echo \"$i\"; done >wget_options_fuzzer.dict
|
||||
```
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2024 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNU Wget.
|
||||
*
|
||||
* GNU Wget is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GNU Wget is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stddef.h> // size_t
|
||||
#include <stdint.h> // uint8_t
|
||||
|
||||
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||
#pragma GCC diagnostic ignored "-Wunused"
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
#endif
|
||||
|
||||
#define CLOSE_STDERR \
|
||||
int bak = dup(STDERR_FILENO); \
|
||||
int fd = open("/dev/null", O_WRONLY); \
|
||||
dup2(fd, STDERR_FILENO); \
|
||||
close(fd);
|
||||
|
||||
#define RESTORE_STDERR \
|
||||
dup2(bak, STDERR_FILENO); \
|
||||
close(bak);
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
if ! grep FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile >/dev/null; then
|
||||
echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
|
||||
echo "Please built regarding README.md and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for fuzzer in *_fuzzer.c; do
|
||||
./get_ossfuzz_corpora $(basename $fuzzer .c)
|
||||
done
|
||||
@@ -1,46 +0,0 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
# As a first step see README.md and follow the steps under "Running a fuzzer using clang".
|
||||
|
||||
# You might need 'gsutil' to download new corpora from the Google cloud:
|
||||
# Read the docs at https://github.com/google/oss-fuzz/blob/master/docs/corpora.md
|
||||
# then install 'google-cloud-sdk' and execute 'gcloud init'.
|
||||
# Now 'gsutil' should be ready to use.
|
||||
|
||||
if test -z "$1"; then
|
||||
echo "Usage: $0 <fuzzer target>"
|
||||
echo "Example: $0 wget_options_fuzzer"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile >/dev/null; then
|
||||
echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
|
||||
echo "Please built regarding README.md and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fuzzer=$1
|
||||
project=wget
|
||||
|
||||
# sync/copy the OSS-Fuzz corpora into the .new directory
|
||||
mkdir -p ${fuzzer}.in ${fuzzer}.new
|
||||
cp -fp ${fuzzer}.in/* ${fuzzer}.new 2>/dev/null || true
|
||||
gsutil cp $(gsutil ls gs://${project}-backup.clusterfuzz-external.appspot.com/corpus/libFuzzer/${fuzzer}|tail -n 1) ${fuzzer}.new/
|
||||
(cd ${fuzzer}.new && unzip -q -o *.zip && rm *.zip)
|
||||
|
||||
# create fuzzer target
|
||||
BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
|
||||
|
||||
# merge the corpora into the .in directory
|
||||
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
||||
|
||||
# now clear .new dir and put all corpora there
|
||||
rm -rf ${fuzzer}.new
|
||||
mv ${fuzzer}.in ${fuzzer}.new
|
||||
mkdir ${fuzzer}.in
|
||||
|
||||
# now merge again (optimizes number of corpora)
|
||||
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
||||
|
||||
echo
|
||||
echo "If new files have been added, 'git add' and 'git commit' them."
|
||||
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2024 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNU Wget.
|
||||
*
|
||||
* GNU Wget is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GNU Wget is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
* Created 19.10.2017 by Tim Rühsen
|
||||
*
|
||||
* Call glob() using data from fuzzer crash file
|
||||
*
|
||||
* Build and execute with instrumented gnulib (amend -I paths as needed):
|
||||
*
|
||||
* clang build (spills out WRITE heap buffer overflow)
|
||||
* export CC=clang-6.0
|
||||
* export CFLAGS="-O1 -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope"
|
||||
* $CC $CFLAGS -I.. -I../lib glob_crash.c -o glob_crash ../lib/.libs/libgnu.a
|
||||
* ./glob_crash
|
||||
*
|
||||
* gcc build (spills out READ heap buffer overflow):
|
||||
* export CC=gcc
|
||||
* export CFLAGS="-O1 -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope"
|
||||
* $CC $CFLAGS -I.. -I../lib glob_crash.c -o glob_crash ../lib/.libs/libgnu.a
|
||||
* ./glob_crash
|
||||
*/
|
||||
|
||||
#include <glob.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
static unsigned char data[] = "1e";
|
||||
|
||||
glob_t pglob;
|
||||
if (glob(data, GLOB_TILDE|GLOB_ONLYDIR|GLOB_NOCHECK, NULL, &pglob) == 0)
|
||||
globfree(&pglob);
|
||||
|
||||
return 0;
|
||||
}
|
||||
140
fuzz/main.c
140
fuzz/main.c
@@ -1,140 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2024 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNU Wget.
|
||||
*
|
||||
* GNU Wget is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GNU Wget is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "fuzzer.h"
|
||||
#include "utils.h"
|
||||
|
||||
#ifdef TEST_RUN
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# define SLASH '\\'
|
||||
#else
|
||||
# define SLASH '/'
|
||||
#endif
|
||||
|
||||
static int test_all_from(const char *dirname)
|
||||
{
|
||||
DIR *dirp;
|
||||
|
||||
if ((dirp = opendir(dirname))) {
|
||||
struct dirent *dp;
|
||||
|
||||
while ((dp = readdir(dirp))) {
|
||||
if (*dp->d_name == '.') continue;
|
||||
|
||||
char fname[strlen(dirname) + strlen(dp->d_name) + 2];
|
||||
snprintf(fname, sizeof(fname), "%s/%s", dirname, dp->d_name);
|
||||
|
||||
struct file_memory *fmem;
|
||||
if ((fmem = wget_read_file(fname))) {
|
||||
printf("testing %ld bytes from '%s'\n", fmem->length, fname);
|
||||
fflush(stdout);
|
||||
LLVMFuzzerTestOneInput((uint8_t *)fmem->content, fmem->length);
|
||||
wget_read_file_free(fmem);
|
||||
}
|
||||
}
|
||||
closedir(dirp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *target;
|
||||
size_t target_len;
|
||||
|
||||
if ((target = strrchr(argv[0], SLASH))) {
|
||||
if (strrchr(target, '/'))
|
||||
target = strrchr(target, '/');
|
||||
} else
|
||||
target = strrchr(argv[0], '/');
|
||||
|
||||
target = target ? target + 1 : argv[0];
|
||||
|
||||
if (strncmp(target, "lt-", 3) == 0)
|
||||
target += 3;
|
||||
|
||||
target_len = strlen(target);
|
||||
|
||||
#ifdef _WIN32
|
||||
target_len -= 4; // ignore .exe
|
||||
#endif
|
||||
|
||||
{
|
||||
int rc;
|
||||
char corporadir[sizeof(SRCDIR) + 1 + target_len + 8];
|
||||
snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.in", (int) target_len, target);
|
||||
|
||||
rc = test_all_from(corporadir);
|
||||
if (rc)
|
||||
fprintf(stderr, "Failed to find %s\n", corporadir);
|
||||
|
||||
snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.repro", (int) target_len, target);
|
||||
if (test_all_from(corporadir) && rc)
|
||||
return 77; // SKIP
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#ifndef __AFL_LOOP
|
||||
static int __AFL_LOOP(int n)
|
||||
{
|
||||
static int first = 1;
|
||||
|
||||
if (first) {
|
||||
first = 0;
|
||||
return n && --n > 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
unsigned char buf[64 * 1024];
|
||||
|
||||
while (__AFL_LOOP(10000)) { // only works with clang - we have to use 1 because static/global vars in wget
|
||||
ret = fread(buf, 1, sizeof(buf), stdin);
|
||||
if (ret < 0)
|
||||
return 0;
|
||||
|
||||
LLVMFuzzerTestOneInput(buf, ret);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* #ifdef TEST_RUN */
|
||||
@@ -1,59 +0,0 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
# Copyright (c) 2017, 2019-2024 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Wget.
|
||||
#
|
||||
# GNU Wget is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GNU Wget is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with GNU Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
if ! grep '^CC=.afl-clang-fast' ../config.log >/dev/null; then
|
||||
echo "compile first library as:"
|
||||
echo "CC=afl-clang-fast ./configure"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$1"; then
|
||||
echo "Usage: $0 test-case"
|
||||
echo "Example: $0 wget_options_fuzzer"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fuzzer=$1
|
||||
#rm -f $fuzzer
|
||||
#afl-clang-fast -O2 -g -I.. main.c "${fuzzer}.c" -o "${fuzzer}"
|
||||
|
||||
### minimize test corpora
|
||||
if test -d ${fuzzer}.in; then
|
||||
mkdir -p ${fuzzer}.min
|
||||
for i in `ls ${fuzzer}.in`; do
|
||||
fin="${fuzzer}.in/$i"
|
||||
fmin="${fuzzer}.min/$i"
|
||||
if ! test -e $fmin || test $fin -nt $fmin; then
|
||||
afl-tmin -m 500 -i $fin -o $fmin -- ./${fuzzer}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
TMPOUT=${fuzzer}.out
|
||||
mkdir -p ${TMPOUT}
|
||||
|
||||
if test -f ${fuzzer}.dict; then
|
||||
afl-fuzz -m 500 -i ${fuzzer}.min -o ${TMPOUT} -x ${fuzzer}.dict -- ./${fuzzer}
|
||||
else
|
||||
afl-fuzz -m 500 -i ${fuzzer}.min -o ${TMPOUT} -- ./${fuzzer}
|
||||
fi
|
||||
|
||||
echo "output was stored in $TMPOUT"
|
||||
|
||||
exit 0
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright (c) 2017, 2019-2024 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Wget.
|
||||
#
|
||||
# GNU Wget is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GNU Wget is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with GNU Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
trap ctrl_c INT
|
||||
|
||||
ctrl_c() {
|
||||
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
||||
rm -rf ${fuzzer}.new
|
||||
}
|
||||
|
||||
if test -z "$1"; then
|
||||
echo "Usage: $0 <fuzzer target>"
|
||||
echo "Example: $0 wget_options_fuzzer"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile >/dev/null; then
|
||||
echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
|
||||
echo "Please built regarding README.md and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# you'll need ~2GB free memory per worker !
|
||||
fuzzer=$1
|
||||
workers=$(($(nproc) - 0))
|
||||
jobs=$workers
|
||||
|
||||
if test -n "$BUILD_ONLY"; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# create directory for NEW test corpora (covering new areas of code)
|
||||
mkdir -p ${fuzzer}.new
|
||||
|
||||
if test -f ${fuzzer}.dict; then
|
||||
./${fuzzer} -dict=${fuzzer}.dict ${fuzzer}.new ${fuzzer}.in -jobs=$jobs -workers=$workers
|
||||
else
|
||||
./${fuzzer} ${fuzzer}.new ${fuzzer}.in -jobs=$jobs -workers=$workers
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
WRAPPER=""
|
||||
|
||||
if [ -n "$VALGRIND_TESTS" ]; then
|
||||
WRAPPER="valgrind --error-exitcode=301 --leak-check=yes --show-reachable=yes --track-origins=yes"
|
||||
fi
|
||||
|
||||
exec $WRAPPER "$@"
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/bin/bash -eu
|
||||
#
|
||||
# (C)2017 Tim Ruehsen tim.ruehsen@gmx.de
|
||||
#
|
||||
# View the coverage report for one or more fuzzers.
|
||||
|
||||
# 1. execute 'make fuzz-coverage' in the top directory
|
||||
# 2. execute './view-coverage.sh <fuzz target(s)>
|
||||
|
||||
# Example with single fuzzer:
|
||||
# ./view-coverage.sh wget_options_fuzzer
|
||||
|
||||
# Example with two fuzzers:
|
||||
# ./view-coverage.sh wget_options_fuzzer wget_html_parse_fuzzer
|
||||
|
||||
if test -z "$1"; then
|
||||
echo "Usage: $0 <fuzz target(s)>"
|
||||
echo "Example: $0 wget_options_fuzzer"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#fuzzer="./"$1
|
||||
LCOV_INFO=coverage.info
|
||||
#./coverage.sh $fuzzer
|
||||
#lcov --capture --initial --directory ../src/.libs --directory . --output-file $LCOV_INFO
|
||||
#lcov --capture --directory ../src/.libs --output-file $LCOV_INFO
|
||||
#lcov --remove $LCOV_INFO '*/test_linking.c' '*/css_tokenizer.lex' '*/<stdout>' '*/*.h' -o $LCOV_INFO
|
||||
#genhtml --prefix . --ignore-errors source $LCOV_INFO --legend --title "$1" --output-directory=lcov
|
||||
|
||||
lcov --zerocounters --directory ../src/
|
||||
lcov --capture --initial --directory ../src/.libs --directory . --output-file $LCOV_INFO
|
||||
make check TESTS="$*" CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
lcov --capture --directory ../src/.libs --output-file $LCOV_INFO
|
||||
lcov --remove $LCOV_INFO '*/css_tokenizer.lex' '*/*.h' -o $LCOV_INFO
|
||||
genhtml --prefix . --ignore-errors source $LCOV_INFO --legend --title "$*" --output-directory=lcov
|
||||
|
||||
xdg-open lcov/index.html
|
||||
@@ -1,92 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2024 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNU Wget.
|
||||
*
|
||||
* GNU Wget is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GNU Wget is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Wget. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h> // opendir, readdir
|
||||
#include <stdint.h> // uint8_t
|
||||
#include <stdio.h> // fmemopen
|
||||
#include <string.h> // strncmp
|
||||
#include <stdlib.h> // free
|
||||
#include <fcntl.h> // open flags
|
||||
#include <unistd.h> // close
|
||||
|
||||
#include "wget.h"
|
||||
#undef fopen_wgetrc
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "cookies.h"
|
||||
|
||||
// declarations for wget internal functions
|
||||
int main_wget(int argc, const char **argv);
|
||||
void cleanup(void);
|
||||
FILE *fopen_wget(const char *pathname, const char *mode);
|
||||
FILE *fopen_wgetrc(const char *pathname, const char *mode);
|
||||
void exit_wget(int status);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "fuzzer.h"
|
||||
|
||||
FILE *fopen_wget(const char *pathname, const char *mode)
|
||||
{
|
||||
return fopen("/dev/null", mode);
|
||||
}
|
||||
|
||||
FILE *fopen_wgetrc(const char *pathname, const char *mode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef FUZZING
|
||||
void exit_wget(int status)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||
{
|
||||
struct cookie_jar *cookie_jar;
|
||||
char *set_cookie;
|
||||
|
||||
if (size > 1024) // same as max_len = ... in .options file
|
||||
return 0;
|
||||
|
||||
set_cookie = (char *) malloc(size + 1);
|
||||
memcpy(set_cookie, data, size);
|
||||
set_cookie[size] = 0;
|
||||
|
||||
CLOSE_STDERR
|
||||
|
||||
cookie_jar = cookie_jar_new();
|
||||
cookie_handle_set_cookie(cookie_jar, "x", 81, "p", set_cookie);
|
||||
cookie_handle_set_cookie(cookie_jar, "x", 81, "p", set_cookie);
|
||||
cookie_handle_set_cookie(cookie_jar, "x", 80, "p/d/", set_cookie);
|
||||
cookie_jar_delete(cookie_jar);
|
||||
|
||||
RESTORE_STDERR
|
||||
|
||||
free(set_cookie);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
tag1="expires="
|
||||
tag2="path="
|
||||
tag3="domain="
|
||||
tag4="httponly"
|
||||
tag5="secure"
|
||||
tag6="max-age"
|
||||
@@ -1 +0,0 @@
|
||||
??????
|
||||
@@ -1 +0,0 @@
|
||||
AAAAAAAAAAA
|
||||
@@ -1 +0,0 @@
|
||||
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
|
||||
@@ -1 +0,0 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -1 +0,0 @@
|
||||
¦=;e;x;Õ;e;e;r;s;„;A;r;y
|
||||
@@ -1 +0,0 @@
|
||||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
@@ -1 +0,0 @@
|
||||
]=;max-age=3;max-age=4;max-age=8;max-age=3;max-age=4;max-age=8
|
||||
@@ -1 +0,0 @@
|
||||
xxxxxx
|
||||
@@ -1 +0,0 @@
|
||||
```````````````````````````````````````````
|
||||
@@ -1 +0,0 @@
|
||||
***************************************************************************************************************************************************************************
|
||||
@@ -1 +0,0 @@
|
||||
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
@@ -1 +0,0 @@
|
||||
*=;*=;*!=;*#=;*_=;*_=;*!=;*#=;*_=;*ヒ=;*_=;*_=;*ヒ=;*ェ=;*_=;*!=;*#=;*#=;*_=;*=;*ヒ=;*_=;*!=;*#=;*_=;*@=;*W=;*!=;*#=;*_=;*ヒ=;*_=;*_=;*p=;*_=;*レ=;*@=;*_=;*!=;*#=;*_=;*ヒ=;*_=;*_=;*p=;*_=;*レ=;*_=;*!=;*#=;*_=;*ヒ=;*_=;*_=;*p=;*_=;*_=;*ヒ=;*_=;*p=;*_=;*_=;*ヒ=;*_=;*ヒ=;*_=;*!=;*_=;*ヒ=;*_=;*!=;*#=;*_=;*レ=;*_=;*!=;*#=;*_=;*ヒ=;*_=;*_=;*p=;*_=;*_=;*#=;*ス=
|
||||
@@ -1 +0,0 @@
|
||||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
@@ -1 +0,0 @@
|
||||
S
|
||||
@@ -1 +0,0 @@
|
||||
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||
@@ -1 +0,0 @@
|
||||
oo
|
||||
@@ -1 +0,0 @@
|
||||
(=;expires==;expires=i;expires=M;expires=*;expires=*;expires==;expires=M;expires=M;expires=3;expires==;expires=M;expires=*;expires=*;expires==;expires=M;expires=M;expires=MonFeB1 7:4:83¹;expires==;expires=M;expires=*;expires=*;expires=x;expires=M;expires=ª;expires=*;expires==;expires=M;expires=M;expires=3;expires==;expires=M;expires=*;expires=*;expires==;expires=*;expires=M;expires=M;expires=4;expires=<;expires=M;expires=M;expires=E;expires=e
|
||||
@@ -1 +0,0 @@
|
||||
i
|
||||
@@ -1 +0,0 @@
|
||||
PPP
|
||||
@@ -1 +0,0 @@
|
||||
4444444444444444444444444444444444444444444
|
||||
@@ -1 +0,0 @@
|
||||
^^
|
||||
@@ -1 +0,0 @@
|
||||
22222222222222222222222222222222222222222222222222222222222222222222222222222222222222
|
||||
@@ -1 +0,0 @@
|
||||
:=;domain=';path=/p/
|
||||
@@ -1 +0,0 @@
|
||||
RRRRRRRRRRR
|
||||
@@ -1 +0,0 @@
|
||||
:
|
||||
@@ -1 +0,0 @@
|
||||
R
|
||||
@@ -1 +0,0 @@
|
||||
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
@@ -1 +0,0 @@
|
||||
.=;max-age=˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙=-˛
|
||||
@@ -1,24 +0,0 @@
|
||||
J="/ path=pires=
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Jpath=
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
™
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
|
||||
@@ -1 +0,0 @@
|
||||
nn
|
||||
@@ -1 +0,0 @@
|
||||
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
|
||||
@@ -1 +0,0 @@
|
||||
l
|
||||
@@ -1 +0,0 @@
|
||||
ggg
|
||||
@@ -1 +0,0 @@
|
||||
\
|
||||
@@ -1 +0,0 @@
|
||||
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
|
||||
@@ -1 +0,0 @@
|
||||
O
|
||||
@@ -1 +0,0 @@
|
||||
>
|
||||
@@ -1 +0,0 @@
|
||||
@=;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-5 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-5 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-;expireS=Mon,2-FeB-0 7:4:9-
|
||||
@@ -1 +0,0 @@
|
||||
{{
|
||||
@@ -1 +0,0 @@
|
||||
ggggggggggg
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user