www/elinks: Update to 0.18.0

Drop the libCSS/libdom patch as it's not needed anymore.
Removes options that don't require a library installed from a package
(except for EXMODE/LOCAL_CGI/NOROOT)
Wire in the test suite.
Add MUJS, PYTHON, and SIXEL options.

PR:		281909
Approved by:	submitter is maintainer
This commit is contained in:
Dustin Marquess 2025-01-12 21:10:25 +01:00 committed by Zsolt Udvari
parent afbfb653af
commit c8b37a8387
7 changed files with 135 additions and 82 deletions

View file

@ -1,7 +1,6 @@
PORTNAME= elinks PORTNAME= elinks
DISTVERSIONPREFIX= v DISTVERSIONPREFIX= v
DISTVERSION= 0.17.0 DISTVERSION= 0.18.0
PORTREVISION= 2
CATEGORIES= www CATEGORIES= www
MAINTAINER= jailbird@fdf.net MAINTAINER= jailbird@fdf.net
@ -12,44 +11,57 @@ LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= xmlto:textproc/xmlto BUILD_DEPENDS= xmlto:textproc/xmlto
LIB_DEPENDS= libidn2.so:dns/libidn2
USES= bison:alias cpe gmake iconv meson perl5 pkgconfig python ssl USES= bison:alias cpe gettext-runtime:build gmake iconv localbase \
meson perl5 pkgconfig python:build shebangfix ssl
TEST_USES= gettext-tools:build
USE_GITHUB= yes USE_GITHUB= yes
GH_ACCOUNT= rkd77 GH_ACCOUNT= rkd77
LDFLAGS+= -lexecinfo LDFLAGS+= -L${LOCALBASE}/lib -lexecinfo -lintl
MESON_ARGS= -Dgpm=false -Dperl=true TEST_TARGET= test
SHEBANG_FILES= doc/tools/help2xml doc/tools/asciidoc/asciidoc.py \
src/protocol/ftp/test-ftp-parser
MESON_ARGS= -D256-colors=true \
-D88-colors=true \
-Dapidoc=false \
-Dbzlib=true \
-Dcodepoint=false \
-Dfastmem=true \
-Dfinger=true \
-Dfsp2=true \
-Dgemini=true \
-Dgopher=true \
-Dgpm=false \
-Dhtmldoc=true \
-Didn=true \
-Dlzma=true \
-Dnntp=true \
-Dpdfdoc=false \
-Dperl=true \
-Dsysmouse=true \
-Dtest=true \
-Dtrue-color=true
OPTIONS_DEFINE= 256COLORS 88COLORS TRUECOLORS BITTORRENT BROTLI CSS \ OPTIONS_DEFINE= BROTLI CSS CURL EXMODE GUILE HIGHLIGHT LIBEVENT \
CURL EXMODE FASTMEM FINGER FSP FTP GOPHER GUILE \ LOCAL_CGI LUA MUJS NLS NOROOT PYTHON SIXEL SMB \
HIGHLIGHT IDN LOCAL_CGI LUA LZMA MOUSE NLS NNTP NOROOT \ SPIDERMONKEY TRE XBELMARKS ZSTD
SMB SPIDERMONKEY TRE XBELMARKS ZSTD OPTIONS_DEFAULT= BROTLI EXMODE HIGHLIGHT
OPTIONS_DEFAULT= 256COLORS 88COLORS BROTLI EXMODE FASTMEM FTP \
HIGHLIGHT LZMA MOUSE
OPTIONS_SUB= yes OPTIONS_SUB= yes
88COLORS_DESC= 88 color support
256COLORS_DESC= 256 color support
TRUECOLORS_DESC= True color support
CSS_DESC= Cascading Style Sheets support (via libcss & libdom) CSS_DESC= Cascading Style Sheets support (via libcss & libdom)
EXMODE_DESC= Exmode (CLI) support EXMODE_DESC= Exmode (CLI) support
FASTMEM_DESC= Fast memory allocation functions
FSP_DESC= FSP protocol support (via fsplib)
HIGHLIGHT_DESC= HTML highlighting using DOM engine HIGHLIGHT_DESC= HTML highlighting using DOM engine
LIBEVENT_DESC= Use libevent as event handler
LOCAL_CGI_DESC= Local CGI support LOCAL_CGI_DESC= Local CGI support
MUJS_DESC= ECMAscript support (via MuJS)
NOROOT_DESC= Prevention of usage by root NOROOT_DESC= Prevention of usage by root
SIXEL_DESC= Show images on sixel compatible terminals
SPIDERMONKEY_DESC= ECMAScript support (via SpiderMonkey) SPIDERMONKEY_DESC= ECMAScript support (via SpiderMonkey)
TRE_DESC= TRE regex search support TRE_DESC= TRE regex search support
XBELMARKS_DESC= XBEL bookmarks (via expat) XBELMARKS_DESC= XBEL bookmarks (via expat)
256COLORS_MESON_TRUE= 256-colors
88COLORS_MESON_TRUE= 88-colors
TRUECOLORS_MESON_TRUE= true-color
BITTORRENT_MESON_TRUE= bittorrent
BROTLI_LIB_DEPENDS= libbrotlidec.so:archivers/brotli BROTLI_LIB_DEPENDS= libbrotlidec.so:archivers/brotli
BROTLI_MESON_TRUE= brotli BROTLI_MESON_TRUE= brotli
@ -57,63 +69,53 @@ CSS_LIB_DEPENDS= libcss.so:textproc/libcss \
libdom.so:www/libdom \ libdom.so:www/libdom \
libwapcaplet.so:textproc/libwapcaplet libwapcaplet.so:textproc/libwapcaplet
CSS_MESON_TRUE= libcss CSS_MESON_TRUE= libcss
# support libcss 0.9.2, libdom 0.4.2 for elinks 0.17.0 CSS_IMPLIES= HIGHLIGHT
CSS_PATCHFILES= 2fdb04a6ab5523b94c4bd5c0062b0701686e127f.patch:-p1
CSS_PATCH_SITES= https://github.com/${GH_ACCOUNT}/${PORTNAME}/commit/
CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_LIB_DEPENDS= libcurl.so:ftp/curl
CURL_MESON_TRUE= libcurl CURL_MESON_TRUE= libcurl
EXMODE_MESON_TRUE= exmode EXMODE_MESON_TRUE= exmode
FASTMEM_MESON_TRUE= fastmem
FINGER_MESON_TRUE= finger
FSP_RUN_DEPENDS= ${LOCALBASE}/lib/libfsplib.a:net/fsplib
FSP_BUILD_DEPENDS= ${LOCALBASE}/lib/libfsplib.a:net/fsplib
FSP_MESON_TRUE= fsp
FTP_MESON_TRUE= ftp
GOPHER_MESON_TRUE= gopher
GUILE_USES= guile:3.0 GUILE_USES= guile:3.0
GUILE_MESON_TRUE= guile GUILE_MESON_TRUE= guile
HIGHLIGHT_LIB_DEPENDS= libdom.so:www/libdom
HIGHLIGHT_MESON_TRUE= html-highlight HIGHLIGHT_MESON_TRUE= html-highlight
IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 LIBEVENT_LIB_DEPENDS= libevent.so:devel/libevent
IDN_USES= localbase LIBEVENT_MESON_TRUE= libevent
IDN_MESON_TRUE= idn
LOCAL_CGI_MESON_TRUE= cgi LOCAL_CGI_MESON_TRUE= cgi
LUA_USES= lua:52-53 LUA_USES= lua:52-53
LUA_MESON_ON= -Dluapkg=lua-${LUA_VER} LUA_MESON_ON= -Dluapkg=lua-${LUA_VER}
LZMA_MESON_TRUE= lzma MUJS_LIB_DEPENDS= libmujs.so:lang/mujs
MUJS_MESON_TRUE= mujs
MOUSE_MESON_TRUE= mouse NLS_USES= gettext-tools
NLS_BUILD_DEPENDS= xxd:sysutils/xxd
NLS_USES= gettext-runtime:build gettext-tools NLS_MESON_TRUE= gettext nls
NLS_MESON_TRUE= nls
NNTP_MESON_TRUE= nntp
NOROOT_MESON_TRUE= no-root NOROOT_MESON_TRUE= no-root
SMB_USES= samba # smbclient PYTHON_USES= python:run
SMB_MESON_TRUE= smb PYTHON_MESON_TRUE= python
SIXEL_LIB_DEPENDS= libsixel.so:graphics/libsixel
SIXEL_MESON_TRUE= libsixel
SMB_USES= samba # smbclient
SMB_MESON_TRUE= smb
SPIDERMONKEY_USES= compiler:c++17-lang sqlite SPIDERMONKEY_USES= compiler:c++17-lang sqlite
SPIDERMONKEY_BUILD_DEPENDS= ${LOCALBASE}/lib/libmozjs-102.so:lang/spidermonkey102 SPIDERMONKEY_BUILD_DEPENDS= ${LOCALBASE}/lib/libmozjs-128.so:lang/spidermonkey128
SPIDERMONKEY_LIB_DEPENDS= libmozjs-102.so:lang/spidermonkey102 SPIDERMONKEY_LIB_DEPENDS= libmozjs-128.so:lang/spidermonkey128
SPIDERMONKEY_CFLAGS= -I${LOCALBASE}/include/js-102 SPIDERMONKEY_CFLAGS= -I${LOCALBASE}/include/js-128
SPIDERMONKEY_CXXFLAGS= -I${LOCALBASE}/include/js-102 SPIDERMONKEY_CXXFLAGS= -I${LOCALBASE}/include/js-128
SPIDERMONKEY_LDFLAGS= -L${LOCALBASE}/lib -lpthread -lm SPIDERMONKEY_LDFLAGS= -lpthread -lm
SPIDERMONKEY_MESON_ON= -Dsm-scripting=true -Dspidermonkey=true SPIDERMONKEY_MESON_TRUE= sm-scripting spidermonkey
SPIDERMONKEY_IMPLIES= CSS CURL SPIDERMONKEY_IMPLIES= CSS CURL HIGHLIGHT
TRE_LIB_DEPENDS= libtre.so:textproc/libtre TRE_LIB_DEPENDS= libtre.so:textproc/libtre
TRE_MESON_TRUE= tre TRE_MESON_TRUE= tre
@ -122,11 +124,6 @@ XBELMARKS_LIB_DEPENDS= libexpat.so:textproc/expat2
XBELMARKS_MESON_TRUE= xbel XBELMARKS_MESON_TRUE= xbel
ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd
ZSTD_USES= localbase
ZSTD_MESON_TRUE= 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> .include <bsd.port.mk>

View file

@ -1,5 +1,3 @@
TIMESTAMP = 1725369974 TIMESTAMP = 1735211040
SHA256 (rkd77-elinks-v0.17.0_GH0.tar.gz) = 250a55198bb3e16a49a52fde85ffc54f1e654b7615369467725a3d74bc469f22 SHA256 (rkd77-elinks-v0.18.0_GH0.tar.gz) = b4200c17dfe5574daddeceda69a42ef8f2459fc43e92cac73dcf30c3343c95a5
SIZE (rkd77-elinks-v0.17.0_GH0.tar.gz) = 4006073 SIZE (rkd77-elinks-v0.18.0_GH0.tar.gz) = 4165154
SHA256 (2fdb04a6ab5523b94c4bd5c0062b0701686e127f.patch) = 9aa25bdcadf99d8c43a7cce932b24a33f0c8eda448e5f132f1010d1ba9c667d0
SIZE (2fdb04a6ab5523b94c4bd5c0062b0701686e127f.patch) = 5932

View file

@ -1,17 +1,33 @@
--- meson.build.orig 2023-12-25 11:25:27 UTC --- meson.build.orig 2024-12-26 11:02:09 UTC
+++ meson.build +++ meson.build
@@ -211,6 +211,10 @@ endif @@ -519,7 +519,7 @@ conf_data.set('CONFIG_LIBCURL', false)
conf_data.set('HAVE_FCNTL_H', 1)
endif endif
+if compiler.has_header('execinfo.h') conf_data.set('CONFIG_LIBCURL', false)
+ conf_data.set('HAVE_EXECINFO_H', 1) -curldeps = false
+endif +curldeps = []
+ if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS')
if compiler.has_header('libgen.h') curldeps = dependency('libcurl', static: st, version: '>=7.66.0', required: false)
conf_data.set('HAVE_LIBGEN_H', 1) if not curldeps.found()
@@ -543,7 +543,7 @@ conf_data.set('CONFIG_LIBCSS', false)
endif endif
@@ -959,7 +964,7 @@ endif
conf_data.set('CONFIG_LIBCSS', false)
-cssdeps = false
+cssdeps = []
if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS')
cssdeps = dependency('libcss', static: st, version: '>=0.9.2', required: false)
@@ -555,7 +555,7 @@ conf_data.set('CONFIG_LIBDOM', false)
endif
conf_data.set('CONFIG_LIBDOM', false)
-libdomdeps = false
+libdomdeps = []
if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS')
libdomdeps = dependency('libdom', static: st, version: '>=0.4.2', required: false)
@@ -1088,7 +1088,7 @@ endif
conf_data.set('HAVE_ICONV', 1) conf_data.set('HAVE_ICONV', 1)
endif endif
@ -20,7 +36,7 @@
conf_data.set('HAVE_ALLOCA', 1) conf_data.set('HAVE_ALLOCA', 1)
endif endif
@@ -975,7 +980,7 @@ endif @@ -1104,7 +1104,7 @@ endif
conf_data.set('HAVE_GNUTLS_CERTIFICATE_SET_X509_SYSTEM_TRUST', 1) conf_data.set('HAVE_GNUTLS_CERTIFICATE_SET_X509_SYSTEM_TRUST', 1)
endif endif

View file

@ -1,4 +1,4 @@
--- src/document/renderer.c.orig 2023-12-27 03:03:28 UTC --- src/document/renderer.c.orig 2024-12-26 11:02:09 UTC
+++ src/document/renderer.c +++ src/document/renderer.c
@@ -415,11 +415,11 @@ struct conv_table * @@ -415,11 +415,11 @@ struct conv_table *
} }

View file

@ -0,0 +1,11 @@
--- src/dom/test/meson.build.orig 2024-10-05 06:29:15 UTC
+++ src/dom/test/meson.build
@@ -45,6 +45,6 @@ test('sgml-parser-incomplete', t5, depends:[exe2], env
test('sgml-parser-basic', t3, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)
test('sgml-parser-error', t4, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)
test('sgml-parser-incomplete', t5, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)
-test('sgml-parser-incremental', t6, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false, should_fail:true)
+test('sgml-parser-incremental', t6, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)
test('sgml-parser-lines', t7, depends:[exe2], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)
-test('sgml-parser-random', t8, depends:[exe1], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false, should_fail:true)
+test('sgml-parser-random', t8, depends:[exe1], env:test_lib, workdir:meson.current_build_dir(), is_parallel:false)

View file

@ -0,0 +1,11 @@
--- src/js/spidermonkey/fragment.cpp.orig 2024-12-26 11:02:09 UTC
+++ src/js/spidermonkey/fragment.cpp
@@ -2290,7 +2290,7 @@ DocumentFragment_constructor(JSContext *ctx, unsigned
}
JS::Realm *comp = js::GetContextRealm(ctx);
struct ecmascript_interpreter *interpreter = (struct ecmascript_interpreter *)JS::GetRealmPrivate(comp);
- JS::RootedObject r_doc(ctx, interpreter->document_obj);
+ JS::RootedObject r_doc(ctx, (JSObject *)interpreter->document_obj);
dom_document *doc = JS::GetMaybePtrFromReservedSlot<dom_document>(r_doc, 0);
if (!doc) {

View file

@ -0,0 +1,20 @@
--- src/terminal/sixel.c.orig 2024-10-05 06:29:15 UTC
+++ src/terminal/sixel.c
@@ -83,7 +83,7 @@ struct sixel_encoder {
int macro_number;
int penetrate_multiplexer;
int encode_policy;
- int ormode;
+// int ormode;
int pipe_mode;
int verbose;
int has_gri_arg_limit;
@@ -733,7 +733,7 @@ sixel_encoder_encode_frame(
sixel_output_set_penetrate_multiplexer(
output, encoder->penetrate_multiplexer);
sixel_output_set_encode_policy(output, encoder->encode_policy);
- sixel_output_set_ormode(output, encoder->ormode);
+// sixel_output_set_ormode(output, encoder->ormode);
#if 0
if (sixel_frame_get_multiframe(frame) && !encoder->fstatic) {