git: 33aebe34eab9 - main - www/wget2: add port: File and recursive website downloader

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Thu, 18 Nov 2021 11:49:32 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=33aebe34eab97c1ddfb436bee73f23584f706e5e

commit 33aebe34eab97c1ddfb436bee73f23584f706e5e
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2021-11-18 00:03:54 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2021-11-18 11:48:16 +0000

    www/wget2: add port: File and recursive website downloader
    
        GNU Wget2 is the successor of GNU Wget, a file and recursive website
        downloader.
    
        Designed and written from scratch it wraps around libwget, that
        provides the basic functions needed by a web client.
    
        Wget2 works multi-threaded and uses many features to allow fast
        operation.
    
        In many cases Wget2 downloads much faster than Wget1.x due to HTTP2,
        HTTP compression, parallel connections and use of If-Modified-Since
        HTTP header.
    
        WWW: https://gitlab.com/gnuwget/wget2
    
    Unlike wget, this was placed into www category as it does no longer
    support ftp.
---
 www/Makefile                           |   1 +
 www/wget2/Makefile                     | 100 +++++++++++++++++++++
 www/wget2/distinfo                     |   3 +
 www/wget2/files/patch-Makefile.am      |  11 +++
 www/wget2/files/patch-configure.ac     |  12 +++
 www/wget2/files/patch-docs_Makefile.am |  12 +++
 www/wget2/pkg-descr                    |  14 +++
 www/wget2/pkg-plist                    | 153 +++++++++++++++++++++++++++++++++
 8 files changed, 306 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index c150a8ecab8e..f2d84caaefe9 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -2344,6 +2344,7 @@
     SUBDIR += webstone-ssl
     SUBDIR += webtrees
     SUBDIR += webtrees20
+    SUBDIR += wget2
     SUBDIR += wgetpaste
     SUBDIR += wikicalc
     SUBDIR += wordpress
diff --git a/www/wget2/Makefile b/www/wget2/Makefile
new file mode 100644
index 000000000000..850d6c6a68f7
--- /dev/null
+++ b/www/wget2/Makefile
@@ -0,0 +1,100 @@
+PORTNAME=	wget2
+DISTVERSION=	2.0.0
+CATEGORIES=	www
+MASTER_SITES=	GNU/wget
+
+MAINTAINER=	amdmi3@FreeBSD.org
+COMMENT=	File and recursive website downloader
+
+LICENSE=	GPLv3+ LGPL3+
+LICENSE_COMB=	multi
+LICENSE_FILE_GPLv3+ =	${WRKSRC}/COPYING
+LICENSE_FILE_LGPL3+ =	${WRKSRC}/COPYING.LESSER
+
+USES=		autoreconf charsetfix cpe iconv libtool:build localbase pkgconfig tar:lz
+CPE_VENDOR=	gnu
+GNU_CONFIGURE=	yes
+CONFIGURE_ARGS=	--without-lzip  # not in ports yet
+INSTALL_TARGET=	install-strip
+USE_LDCONFIG=	yes
+
+OPTIONS_DEFINE=	IDN MANPAGES DOXYGEN NLS PSL NGHTTP2 BROTLI ZSTD GPGME TEST HSTS
+OPTIONS_RADIO=	SSL PCRE
+OPTIONS_RADIO_SSL=GNUTLS OPENSSL # WOLFSSL
+OPTIONS_RADIO_PCRE=PCRE1 PCRE2
+OPTIONS_DEFAULT=IDN MANPAGES OPENSSL NLS PSL NGHTTP2 BROTLI ZSTD GPGME TEST HSTS
+OPTIONS_SUB=	yes
+
+IDN_LIB_DEPENDS=	libidn2.so:dns/libidn2
+IDN_CONFIGURE_WITH=	libidn2
+
+MANPAGES_BUILD_DEPENDS=	pandoc:textproc/hs-pandoc
+
+DOXYGEN_BUILD_DEPENDS=	doxygen:devel/doxygen
+
+NLS_USES=		gettext
+NLS_USES_OFF=		gettext-tools
+NLS_CONFIGURE_ENABLE=	nls
+
+PCRE_DESC=		Support Perl regular expressions in addition to POSIX
+
+PCRE1_DESC=		Support PCRE style regular expressions
+PCRE1_LIB_DEPENDS=	libpcre.so:devel/pcre
+PCRE1_CONFIGURE_WITH=	libpcre
+
+PCRE2_DESC=		Support PCRE2 style regular expressions
+PCRE2_LIB_DEPENDS=	libpcre2-8.so:devel/pcre2
+PCRE2_CONFIGURE_WITH=	libpcre2
+
+PSL_CONFIGURE_WITH=	libpsl
+PSL_LIB_DEPENDS=	libpsl.so:dns/libpsl
+
+HSTS_DESC=		Support HSTS preload lists
+HSTS_CONFIGURE_WITH=	libhsts
+HSTS_LIB_DEPENDS=	libhsts.so:www/libhsts
+
+NGHTTP2_DESC=		Support HTTP/2.0 through libnghttp2
+NGHTTP2_CONFIGURE_WITH=	libnghttp2
+NGHTTP2_LIB_DEPENDS=	libnghttp2.so:www/libnghttp2
+
+BROTLI_CONFIGURE_WITH=	brotlidec
+BROTLI_LIB_DEPENDS=	libbrotlidec.so:archivers/brotli
+
+ZSTD_CONFIGURE_WITH=	zstd
+ZSTD_LIB_DEPENDS=	libzstd.so:archivers/zstd
+
+GPGME_DESC=		Support signature verification with gpgme
+GPGME_CONFIGURE_WITH=	gpgme
+GPGME_LIB_DEPENDS=	libgpgme.so:security/gpgme
+
+TEST_TEST_TARGET=	check
+TEST_CONFIGURE_WITH=	libmicrohttpd
+TEST_LIB_DEPENDS=	libmicrohttpd.so:www/libmicrohttpd
+TEST_TEST_DEPENDS=	p5-HTTP-Daemon>=0:www/p5-HTTP-Daemon \
+			p5-IO-Socket-SSL>=0:security/p5-IO-Socket-SSL
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MOPENSSL}
+USES+=		ssl
+CONFIGURE_ARGS+=--with-ssl=openssl --with-openssl
+CPPFLAGS+=	-I${OPENSSLINC}
+LDFLAGS+=	-L${OPENSSLLIB}
+.elif ${PORT_OPTIONS:MGNUTLS}
+LIB_DEPENDS+=	libgnutls.so:security/gnutls
+CONFIGURE_ARGS+=--with-ssl=gnutls
+.elif ${PORT_OPTIONS:MWOLFSSL}
+BROKEN=		does not build: use of undeclared identifier WOLFSSL_ALPN_CONTINUE_ON_MISMATCH
+LIB_DEPENDS+=	libwolfssl.so:security/wolfssl
+CONFIGURE_ARGS+=--with-ssl=wolfssl
+.else
+CONFIGURE_ARGS+=--with-ssl=none
+.endif
+
+post-patch-MANPAGES-off:
+	@${REINPLACE_CMD} -e '/AC_CHECK_PROGS/ s|pandoc|&-not-found|' ${WRKSRC}/configure.ac
+
+post-patch-DOXYGEN-off:
+	@${REINPLACE_CMD} -e '/AC_CHECK_PROGS/ s|doxygen|&-not-found|' ${WRKSRC}/configure.ac
+
+.include <bsd.port.mk>
diff --git a/www/wget2/distinfo b/www/wget2/distinfo
new file mode 100644
index 000000000000..4ebdf8646f48
--- /dev/null
+++ b/www/wget2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1637155143
+SHA256 (wget2-2.0.0.tar.lz) = da95b1477fa4ede1ac712f179c1354d9624fbc91e778d89cf8d2ae46aa15e3d2
+SIZE (wget2-2.0.0.tar.lz) = 1956207
diff --git a/www/wget2/files/patch-Makefile.am b/www/wget2/files/patch-Makefile.am
new file mode 100644
index 000000000000..8311bf5c46eb
--- /dev/null
+++ b/www/wget2/files/patch-Makefile.am
@@ -0,0 +1,11 @@
+Don't try run non-existing target during testing
+--- Makefile.am.orig	2021-08-21 17:47:39 UTC
++++ Makefile.am
+@@ -89,7 +89,6 @@ fuzz-coverage: clean clean-lcov
+ 	@echo "You can now view the coverage report with 'xdg-open lcov/index.html'"
+ 
+ check-local:
+-	$(AM_V_at)$(MAKE) -s syntax-check >/dev/null
+ 	$(AM_V_at)$(srcdir)/contrib/check_options $(srcdir)/docs/wget2.md $(builddir)/src/wget2$(EXEEXT)
+ 
+ # ppl often forget to run ldconfig after an install, so let's do it here
diff --git a/www/wget2/files/patch-configure.ac b/www/wget2/files/patch-configure.ac
new file mode 100644
index 000000000000..9a61f1d8b26f
--- /dev/null
+++ b/www/wget2/files/patch-configure.ac
@@ -0,0 +1,12 @@
+Fix openssl library name
+--- configure.ac.orig	2021-09-12 11:12:41 UTC
++++ configure.ac
+@@ -503,7 +502,7 @@ AS_IF([test "$with_ssl" = "openssl" || (test "$with_ss
+     CFLAGS="$OPENSSL_CFLAGS $CFLAGS"
+     AC_DEFINE([WITH_OPENSSL], [1], [Use OpenSSL])
+   ], [
+-    AC_SEARCH_LIBS(SSL_CTX_new, openssl,
++    AC_SEARCH_LIBS(SSL_CTX_new, ssl,
+       [with_openssl=yes; AC_DEFINE([WITH_OPENSSL], [1], [Use OpenSSL])],
+       [AC_MSG_WARN(*** OpenSSL was not found.)
+     ])
diff --git a/www/wget2/files/patch-docs_Makefile.am b/www/wget2/files/patch-docs_Makefile.am
new file mode 100644
index 000000000000..45d2dda8022d
--- /dev/null
+++ b/www/wget2/files/patch-docs_Makefile.am
@@ -0,0 +1,12 @@
+Don't build the info page which is not installed anyway
+--- docs/Makefile.am.orig	2021-08-21 17:47:39 UTC
++++ docs/Makefile.am
+@@ -49,8 +49,6 @@ $(man1_MANS): wget2.stamp
+ wget2.stamp:
+ 	mkdir -p $(builddir)/man/man1
+ 	PANDOC=$(PANDOC) sh $(builddir)/wget2_md2man.sh $(srcdir)/wget2.md $(builddir)/man/man1/wget2.1
+-	$(PANDOC) -s -f markdown -t texinfo -o $(builddir)/wget2.texi $(srcdir)/wget2.md
+-	$(MAKEINFO) --force -o $(builddir)/wget2.info $(builddir)/wget2.texi
+ 	echo > wget2.stamp
+ 
+ DISTCLEANFILES += wget2.texi wget2.info
diff --git a/www/wget2/pkg-descr b/www/wget2/pkg-descr
new file mode 100644
index 000000000000..7b3d706bda87
--- /dev/null
+++ b/www/wget2/pkg-descr
@@ -0,0 +1,14 @@
+GNU Wget2 is the successor of GNU Wget, a file and recursive website
+downloader.
+
+Designed and written from scratch it wraps around libwget, that
+provides the basic functions needed by a web client.
+
+Wget2 works multi-threaded and uses many features to allow fast
+operation.
+
+In many cases Wget2 downloads much faster than Wget1.x due to HTTP2,
+HTTP compression, parallel connections and use of If-Modified-Since
+HTTP header.
+
+WWW: https://gitlab.com/gnuwget/wget2
diff --git a/www/wget2/pkg-plist b/www/wget2/pkg-plist
new file mode 100644
index 000000000000..84151eddd13b
--- /dev/null
+++ b/www/wget2/pkg-plist
@@ -0,0 +1,153 @@
+bin/wget2
+bin/wget2_noinstall
+include/wget.h
+include/wgetver.h
+lib/libwget.a
+lib/libwget.so
+lib/libwget.so.1
+lib/libwget.so.1.0.0
+lib/libwget_alloc.a
+lib/libwget_alloc.so
+lib/libwget_alloc.so.1
+lib/libwget_alloc.so.1.0.0
+lib/libwget_common.a
+lib/libwget_common.so
+lib/libwget_common.so.1
+lib/libwget_common.so.1.0.0
+lib/libwget_css.a
+lib/libwget_css.so
+lib/libwget_css.so.1
+lib/libwget_css.so.1.0.0
+lib/libwget_decompress.a
+lib/libwget_decompress.so
+lib/libwget_decompress.so.1
+lib/libwget_decompress.so.1.0.0
+lib/libwget_dns.a
+lib/libwget_dns.so
+lib/libwget_dns.so.1
+lib/libwget_dns.so.1.0.0
+lib/libwget_dnscache.a
+lib/libwget_dnscache.so
+lib/libwget_dnscache.so.1
+lib/libwget_dnscache.so.1.0.0
+lib/libwget_encoding.a
+lib/libwget_encoding.so
+lib/libwget_encoding.so.1
+lib/libwget_encoding.so.1.0.0
+lib/libwget_hashfile.a
+lib/libwget_hashfile.so
+lib/libwget_hashfile.so.1
+lib/libwget_hashfile.so.1.0.0
+lib/libwget_hpkp_db.a
+lib/libwget_hpkp_db.so
+lib/libwget_hpkp_db.so.1
+lib/libwget_hpkp_db.so.1.0.0
+lib/libwget_hsts.a
+lib/libwget_hsts.so
+lib/libwget_hsts.so.1
+lib/libwget_hsts.so.1.0.0
+lib/libwget_http_parse.a
+lib/libwget_http_parse.so
+lib/libwget_http_parse.so.1
+lib/libwget_http_parse.so.1.0.0
+lib/libwget_io.a
+lib/libwget_io.so
+lib/libwget_io.so.1
+lib/libwget_io.so.1.0.0
+lib/libwget_ip.a
+lib/libwget_ip.so
+lib/libwget_ip.so.1
+lib/libwget_ip.so.1.0.0
+lib/libwget_iri.a
+lib/libwget_iri.so
+lib/libwget_iri.so.1
+lib/libwget_iri.so.1.0.0
+lib/libwget_logger.a
+lib/libwget_logger.so
+lib/libwget_logger.so.1
+lib/libwget_logger.so.1.0.0
+lib/libwget_metalink.a
+lib/libwget_metalink.so
+lib/libwget_metalink.so.1
+lib/libwget_metalink.so.1.0.0
+lib/libwget_netrc.a
+lib/libwget_netrc.so
+lib/libwget_netrc.so.1
+lib/libwget_netrc.so.1.0.0
+lib/libwget_ocsp.a
+lib/libwget_ocsp.so
+lib/libwget_ocsp.so.1
+lib/libwget_ocsp.so.1.0.0
+lib/libwget_progress.a
+lib/libwget_progress.so
+lib/libwget_progress.so.1
+lib/libwget_progress.so.1.0.0
+lib/libwget_robots.a
+lib/libwget_robots.so
+lib/libwget_robots.so.1
+lib/libwget_robots.so.1.0.0
+lib/libwget_thread.a
+lib/libwget_thread.so
+lib/libwget_thread.so.1
+lib/libwget_thread.so.1.0.0
+lib/libwget_tls_session.a
+lib/libwget_tls_session.so
+lib/libwget_tls_session.so.1
+lib/libwget_tls_session.so.1.0.0
+lib/libwget_xml.a
+lib/libwget_xml.so
+lib/libwget_xml.so.1
+lib/libwget_xml.so.1.0.0
+libdata/pkgconfig/libwget.pc
+%%MANPAGES%%man/man1/wget2.1.gz
+%%DOXYGEN%%man/man3/libwget-base64.3.gz
+%%DOXYGEN%%man/man3/libwget-bitmap.3.gz
+%%DOXYGEN%%man/man3/libwget-console.3.gz
+%%DOXYGEN%%man/man3/libwget-dns-caching.3.gz
+%%DOXYGEN%%man/man3/libwget-dns.3.gz
+%%DOXYGEN%%man/man3/libwget-error.3.gz
+%%DOXYGEN%%man/man3/libwget-hash.3.gz
+%%DOXYGEN%%man/man3/libwget-hashmap.3.gz
+%%DOXYGEN%%man/man3/libwget-io.3.gz
+%%DOXYGEN%%man/man3/libwget-ip.3.gz
+%%DOXYGEN%%man/man3/libwget-list.3.gz
+%%DOXYGEN%%man/man3/libwget-mem.3.gz
+%%DOXYGEN%%man/man3/libwget-net.3.gz
+%%DOXYGEN%%man/man3/libwget-parse_atom.3.gz
+%%DOXYGEN%%man/man3/libwget-parse_sitemap.3.gz
+%%DOXYGEN%%man/man3/libwget-printf.3.gz
+%%DOXYGEN%%man/man3/libwget-random.3.gz
+%%DOXYGEN%%man/man3/libwget-robots.3.gz
+%%DOXYGEN%%man/man3/libwget-stringmap.3.gz
+%%DOXYGEN%%man/man3/libwget-thread.3.gz
+%%DOXYGEN%%man/man3/libwget-utils.3.gz
+%%DOXYGEN%%man/man3/libwget-vector.3.gz
+%%DOXYGEN%%man/man3/libwget-xalloc.3.gz
+%%DOXYGEN%%man/man3/libwget-xml.3.gz
+%%NLS%%share/locale/ca/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/cs/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/de/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/eo/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/es/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/et/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/fi/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/fr/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/ga/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/hr/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/hu/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/id/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/it/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/ja/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/nb/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/nl/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/pl/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/pt_BR/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/ro/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/ru/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/sk/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/sr/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/sv/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/tr/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/uk/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/vi/LC_MESSAGES/wget2.mo
+%%NLS%%share/locale/zh_CN/LC_MESSAGES/wget2.mo