git: 1d53e772ca84 - main - www/elinks: update to 0.15.1

From: Fernando Apesteguía <fernape_at_FreeBSD.org>
Date: Mon, 19 Sep 2022 10:57:17 UTC
The branch main has been updated by fernape:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1d53e772ca84748e5eb98efa9cfa84b5788e20ec

commit 1d53e772ca84748e5eb98efa9cfa84b5788e20ec
Author:     Dustin Marquess <jailbird@fdf.net>
AuthorDate: 2022-09-17 11:09:22 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2022-09-19 10:53:46 +0000

    www/elinks: update to 0.15.1
    
    ChangeLog: https://github.com/rkd77/elinks/releases/tag/v0.15.1
    
     * about:config
     * option --always-load-config
     * compilation fixes on Windows
     * added ui.background_char
     * sample build scripts and docker files
     * experimental DGI support
     * DOS port based on links code
     * configurable Accept-Header
     * minor compilation fixes
    
    PR:             266305
    Reported by:    jailbird@fdf.net (maintainer)
---
 www/elinks/Makefile                               | 90 +++++++++++++----------
 www/elinks/distinfo                               |  6 +-
 www/elinks/files/patch-configure.ac               | 19 -----
 www/elinks/files/patch-meson.build                | 13 ++++
 www/elinks/files/patch-src_config_options.c       | 28 +++++++
 www/elinks/files/patch-src_intl_gettext_libintl.h | 11 +++
 6 files changed, 107 insertions(+), 60 deletions(-)

diff --git a/www/elinks/Makefile b/www/elinks/Makefile
index 415717d681c4..30b5c821a985 100644
--- a/www/elinks/Makefile
+++ b/www/elinks/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	elinks
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.15.0
+DISTVERSION=	0.15.1
 CATEGORIES=	www
 
 MAINTAINER=	jailbird@fdf.net
@@ -10,24 +10,27 @@ WWW=		https://github.com/rkd77/elinks/
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-GNU_CONFIGURE=	yes
-USES=		autoreconf bison:alias cpe gmake iconv pkgconfig ssl
+USES=		bison:alias cpe gmake iconv meson perl5 pkgconfig python:3.7+ ssl
+BUILD_DEPENDS=	xmlto:textproc/xmlto
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	rkd77
 
 LIBS+=		-lexecinfo
+CONIGURE_ENV=	PYTHON_PATH="${PYTHON_CMD}"
+MESON_ARGS=	-Dgpm=false -Dperl=true
 
-OPTIONS_DEFINE=		256COLORS 88COLORS BITTORRENT BROTLI EXMODE \
+OPTIONS_DEFINE=		256COLORS 88COLORS TRUECOLORS BITTORRENT BROTLI EXMODE \
 			FASTMEM FINGER FSP FTP GOPHER GUILE HIGHLIGHT \
 			IDN LOCAL_CGI LUA LZMA MOUSE NLS NNTP NOROOT \
-			PERL SMB SPIDERMONKEY XBELMARKS ZSTD
+			SMB SPIDERMONKEY TRE XBELMARKS ZSTD
 OPTIONS_DEFAULT=	256COLORS 88COLORS BROTLI EXMODE FASTMEM FTP \
 			HIGHLIGHT LZMA MOUSE
 OPTIONS_SUB=		yes
 
 88COLORS_DESC=		88 color support
 256COLORS_DESC=		256 color support
+TRUECOLORS_DESC=	True color support
 SPIDERMONKEY_DESC=	ECMAScript support (via SpiderMonkey)
 XBELMARKS_DESC=		XBEL bookmarks (via expat)
 LOCAL_CGI_DESC=		Local CGI support
@@ -36,75 +39,86 @@ EXMODE_DESC=		Exmode (CLI) support
 HIGHLIGHT_DESC=		HTML highlighting using DOM engine
 NOROOT_DESC=		Prevention of usage by root
 FASTMEM_DESC=		Fast memory allocation functions
+TRE_DESC=		TRE regex search support
 
 BROTLI_LIB_DEPENDS=	libbrotlidec.so:archivers/brotli
-BROTLI_CONFIGURE_ON=	--with-brotli
+BROTLI_MESON_TRUE=	brotli
 
 NLS_USES=		gettext
-NLS_CONFIGURE_OFF=	--disable-nls
+NLS_MESON_TRUE=		nls
 
 GUILE_LIB_DEPENDS=	libguile-3.0.so:lang/guile
-GUILE_CONFIGURE_WITH=	guile
+GUILE_MESON_TRUE=	guile
 
-LUA_USES=		lua
-LUA_CONFIGURE_ON=	--with-luapkg=lua-${LUA_VER}
+LUA_USES=		lua:52-53
+LUA_MESON_ON=		-Dluapkg=lua-${LUA_VER}
 
-LZMA_CONFIGURE_ON=	--with-lzma
+LZMA_MESON_TRUE=	lzma
 
-PERL_USES=		perl5
-PERL_CONFIGURE_WITH=	perl
-
-FASTMEM_CONFIGURE_ON=	--enable-fastmem
+FASTMEM_MESON_TRUE=	fastmem
 
 IDN_LIB_DEPENDS=	libidn.so:dns/libidn
 IDN_USES=		localbase
-IDN_CONFIGURE_WITH=	idn
+IDN_MESON_TRUE=		idn
 
-NOROOT_CONFIGURE_ON=	--enable-no-root
+NOROOT_MESON_TRUE=	no-root
 
-HIGHLIGHT_CONFIGURE_ON=	--enable-html-highlight
+HIGHLIGHT_MESON_TRUE=	html-highlight
 
-EXMODE_CONFIGURE_ON=	--enable-exmode
+EXMODE_MESON_TRUE=	exmode
 
 SMB_USES=		samba # smbclient
-SMB_CONFIGURE_ENABLE=	smb
+SMB_MESON_TRUE=		smb
 
 FSP_RUN_DEPENDS=	${LOCALBASE}/lib/libfsplib.a:net/fsplib
 FSP_BUILD_DEPENDS=	${LOCALBASE}/lib/libfsplib.a:net/fsplib
-FSP_CONFIGURE_ENABLE=	fsp
+FSP_MESON_TRUE=		fsp
 
-FTP_CONFIGURE_ENABLE=	ftp
+FTP_MESON_TRUE=		ftp
 
-NNTP_CONFIGURE_ENABLE=	nntp
+NNTP_MESON_TRUE=	nntp
 
-BITTORRENT_CONFIGURE_ENABLE=	bittorrent
+BITTORRENT_MESON_TRUE=	bittorrent
 
-GOPHER_CONFIGURE_ENABLE=	gopher
+GOPHER_MESON_TRUE=	gopher
 
-MOUSE_CONFIGURE_ENABLE=	mouse
+MOUSE_MESON_TRUE=	mouse
 
-FINGER_CONFIGURE_ENABLE=	finger
+FINGER_MESON_TRUE=	finger
 
-LOCAL_CGI_CONFIGURE_ENABLE=	cgi
+LOCAL_CGI_MESON_TRUE=	cgi
 
 XBELMARKS_LIB_DEPENDS=	libexpat.so:textproc/expat2
-XBELMARKS_CONFIGURE_OFF=--disable-xbel
+XBELMARKS_MESON_TRUE=	xbel
+
+256COLORS_MESON_TRUE=	256-colors
 
-256COLORS_CONFIGURE_ON=	--enable-256-colors
+88COLORS_MESON_TRUE=	88-colors
 
-88COLORS_CONFIGURE_ON=	--enable-88-colors
+TRUECOLORS_MESON_TRUE=	true-color
 
-SPIDERMONKEY_BUILD_DEPENDS=	${LOCALBASE}/lib/libjs.so:lang/spidermonkey17
-SPIDERMONKEY_RUN_DEPENDS=	js:lang/spidermonkey17
-SPIDERMONKEY_LIB_DEPENDS=	libnspr4.so:devel/nspr
+SPIDERMONKEY_USES=		compiler:c++17-lang sqlite
+SPIDERMONKEY_BUILD_DEPENDS=	${LOCALBASE}/lib/libmozjs-78.so:lang/spidermonkey78 \
+				${LOCALBASE}/lib/libxml++-5.0.so:textproc/libxml++
+SPIDERMONKEY_RUN_DEPENDS=	js78:lang/spidermonkey78
+SPIDERMONKEY_LIB_DEPENDS=	libnspr4.so:devel/nspr \
+				libxml++-5.0.so:textproc/libxml++
 SPIDERMONKEY_CFLAGS=		-I${LOCALBASE}/include/nspr \
-				-I${LOCALBASE}/include/js-1.7
+				-I${LOCALBASE}/include/js-78
+SPIDERMONKEY_CXXFLAGS=		-I${LOCALBASE}/include/nspr \
+				-I${LOCALBASE}/include/js-78
 SPIDERMONKEY_LDFLAGS=		-L${LOCALBASE}/lib -lnspr4 -lpthread -lm
-SPIDERMONKEY_CONFIGURE_ON=	--enable-sm-scripting --with-spidermonkey
-SPIDERMONKEY_CONFIGURE_OFF=	--disable-sm-scripting --without-spidermonkey
+SPIDERMONKEY_MESON_ON=		-Dsm-scripting=true -Dspidermonkey=true
+
+TRE_LIB_DEPENDS=	libtre.so:textproc/libtre
+TRE_MESON_TRUE=		tre
 
 ZSTD_LIB_DEPENDS=	libzstd.so:archivers/zstd
 ZSTD_USES=		localbase
-ZSTD_CONFIGURE_ON=	--with-zstd
+ZSTD_MESON_TRUE=	zstd
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|/usr/bin/perl|${PERL}|g' ${WRKSRC}/doc/tools/help2xml
+	@${REINPLACE_CMD} -e 's|/usr/bin/env python3|${PYTHON_CMD}|g' ${WRKSRC}/doc/tools/asciidoc/asciidoc.py
 
 .include <bsd.port.mk>
diff --git a/www/elinks/distinfo b/www/elinks/distinfo
index 554e1bfa4a6b..1d11b36105a2 100644
--- a/www/elinks/distinfo
+++ b/www/elinks/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1644995066
-SHA256 (rkd77-elinks-v0.15.0_GH0.tar.gz) = 49e261fb7a6b061b51ca38b7152712caba90c8eaa6996bcf4c00fe2867a7f366
-SIZE (rkd77-elinks-v0.15.0_GH0.tar.gz) = 3783388
+TIMESTAMP = 1659262740
+SHA256 (rkd77-elinks-v0.15.1_GH0.tar.gz) = a3ebb14e179fcf97f93874b7771b4b05c1b7fdc704807334e865273d9de8428f
+SIZE (rkd77-elinks-v0.15.1_GH0.tar.gz) = 3860003
diff --git a/www/elinks/files/patch-configure.ac b/www/elinks/files/patch-configure.ac
deleted file mode 100644
index 3c9bfe209491..000000000000
--- a/www/elinks/files/patch-configure.ac
+++ /dev/null
@@ -1,19 +0,0 @@
---- configure.ac.orig	2021-12-24 19:53:43 UTC
-+++ configure.ac
-@@ -531,6 +531,7 @@ else
- 	if $PKG_CONFIG $pkg_config_static libbrotlidec; then
- 		BROTLI_CFLAGS=`$PKG_CONFIG $pkg_config_static --cflags libbrotlidec`
- 		BROTLI_LIBS=`$PKG_CONFIG $pkg_config_static --libs libbrotlidec`
-+		CFLAGS="$BROTLI_CFLAGS $CFLAGS"
- 		LIBS="$BROTLI_LIBS $LIBS"
- 		CONFIG_BROTLI=yes
- 		AC_DEFINE([CONFIG_BROTLI], [1], [Define as 1 to use the libbrotli library.])
-@@ -1861,7 +1862,7 @@ if test "x$ac_cv_c_compiler_gnu" = "xyes"; then
-       ;;
-     10|10.*|11|11.*)
-       # gettext
--      CFLAGS="$CFLAGS -fno-strict-aliasing -Wno-builtin-declaration-mismatch -Wno-array-bounds"
-+      CFLAGS="$CFLAGS -fno-strict-aliasing -Wno-array-bounds"
-       ;;
-     *)
-       # These should be ok using -Werror
diff --git a/www/elinks/files/patch-meson.build b/www/elinks/files/patch-meson.build
new file mode 100644
index 000000000000..dd8549a15b67
--- /dev/null
+++ b/www/elinks/files/patch-meson.build
@@ -0,0 +1,13 @@
+--- meson.build.orig	2022-07-31 10:16:29 UTC
++++ meson.build
+@@ -3,9 +3,7 @@ srcdir = meson.source_root()
+ 
+ srcdir = meson.source_root()
+ 
+-txt = run_command('git', '--git-dir=' + srcdir + '/.git', 'rev-parse', 'HEAD').stdout().strip()
+-dirty = run_command(srcdir + '/git-dirty.sh').stdout().strip()
+-add_global_arguments('-DBUILD_ID="' + txt + dirty + '"', language : 'c')
++add_global_arguments('-DBUILD_ID="\\0"', language : 'c')
+ 
+ conf_data = configuration_data()
+ conf_data.set('VERSION', meson.project_version())
diff --git a/www/elinks/files/patch-src_config_options.c b/www/elinks/files/patch-src_config_options.c
new file mode 100644
index 000000000000..b59ebc61f415
--- /dev/null
+++ b/www/elinks/files/patch-src_config_options.c
@@ -0,0 +1,28 @@
+--- src/config/options.c.orig	2022-07-31 10:16:29 UTC
++++ src/config/options.c
+@@ -892,6 +892,7 @@ change_hook_ui_double_esc(struct session *ses, struct 
+ 	return 0;
+ }
+ 
++#ifdef CONFIG_MOUSE
+ static int
+ change_hook_ui_mouse_disable(struct session *ses, struct option *current, struct option *changed)
+ {
+@@ -907,6 +908,7 @@ change_hook_ui_mouse_disable(struct session *ses, stru
+ 	}
+ 	return 0;
+ }
++#endif
+ 
+ 
+ /** Make option templates visible or invisible in the option manager.
+@@ -984,7 +986,9 @@ static const struct change_hook_info change_hooks[] = 
+ 	{ "ui.colors",			change_hook_ui_colors },
+ 	{ "ui.double_esc",		change_hook_ui_double_esc },
+ 	{ "ui.language",		change_hook_language },
++#ifdef CONFIG_MOUSE
+ 	{ "ui.mouse_disable",	change_hook_ui_mouse_disable },
++#endif
+ 	{ "ui",				change_hook_ui },
+ 	{ NULL,				NULL },
+ };
diff --git a/www/elinks/files/patch-src_intl_gettext_libintl.h b/www/elinks/files/patch-src_intl_gettext_libintl.h
new file mode 100644
index 000000000000..827752d8ad8f
--- /dev/null
+++ b/www/elinks/files/patch-src_intl_gettext_libintl.h
@@ -0,0 +1,11 @@
+--- src/intl/gettext/libintl.h.orig	2022-07-31 10:16:29 UTC
++++ src/intl/gettext/libintl.h
+@@ -44,7 +44,7 @@ _(const char *msg, struct terminal *term)
+ 	return (char *)gettext_noop(msg);
+ }
+ 
+-static inline char *
++static inline const char *
+ n_(const char *msg1, const char *msg2, unsigned long int n, struct terminal *term)
+ {
+ 	return gettext_noop(msg1);