aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Marakasov <amdmi3@FreeBSD.org>2021-11-18 00:03:54 +0000
committerDmitry Marakasov <amdmi3@FreeBSD.org>2021-11-18 11:48:16 +0000
commit33aebe34eab97c1ddfb436bee73f23584f706e5e (patch)
tree8c97a9f9bc43ae0321f963fba0123f5bca55bd94
parentfa046e6f5bbb71dd413a1da61a158c079b48c4d4 (diff)
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.
-rw-r--r--www/Makefile1
-rw-r--r--www/wget2/Makefile100
-rw-r--r--www/wget2/distinfo3
-rw-r--r--www/wget2/files/patch-Makefile.am11
-rw-r--r--www/wget2/files/patch-configure.ac12
-rw-r--r--www/wget2/files/patch-docs_Makefile.am12
-rw-r--r--www/wget2/pkg-descr14
-rw-r--r--www/wget2/pkg-plist153
8 files changed, 306 insertions, 0 deletions
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