git: ae4d160b5caf - main - www/lexbor: Modular web engine (HTML/CSS parser, renderer, ...)

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Mon, 02 Dec 2024 14:28:15 UTC
The branch main has been updated by fuz:

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

commit ae4d160b5cafadf82f2a20a3c3686b89dffc25a4
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2024-11-22 13:50:35 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-12-02 14:27:28 +0000

    www/lexbor: Modular web engine (HTML/CSS parser, renderer, ...)
---
 www/Makefile         |   1 +
 www/lexbor/Makefile  |  33 +++++++
 www/lexbor/distinfo  |   3 +
 www/lexbor/pkg-descr |  24 +++++
 www/lexbor/pkg-plist | 270 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 331 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index 7a3e7024c099..526e920c3252 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -297,6 +297,7 @@
     SUBDIR += kiwix-tools
     SUBDIR += ladybird
     SUBDIR += lagrange
+    SUBDIR += lexbor
     SUBDIR += libapreq2
     SUBDIR += libdatachannel
     SUBDIR += libdom
diff --git a/www/lexbor/Makefile b/www/lexbor/Makefile
new file mode 100644
index 000000000000..a923ee2bc2ec
--- /dev/null
+++ b/www/lexbor/Makefile
@@ -0,0 +1,33 @@
+PORTNAME=	lexbor
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.4.0
+CATEGORIES=	www
+
+MAINTAINER=	alster@vinterdalen.se
+COMMENT=	Modular web engine (HTML/CSS parser, renderer, ...)
+WWW=		https://lexbor.com/ \
+		https://github.com/lexbor/lexbor/
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake:testing
+USE_GITHUB=	yes
+USE_LDCONFIG=	yes
+
+CMAKE_TESTING_ON=	BUILD_TESTING
+
+OPTIONS_DEFINE=		ASAN HEADERS SHARED STATIC
+OPTIONS_DEFAULT=	HEADERS SHARED STATIC
+OPTIONS_SUB=	yes
+
+ASAN_DESC=	Enable Address Sanitizer if possible
+HEADERS_DESC=	Install library headers (.h files)
+SHARED_DESC=	Create a shared library
+
+ASAN_CMAKE_BOOL=	LEXBOR_BUILD_WITH_ASAN
+HEADERS_CMAKE_BOOL=	LEXBOR_INSTALL_HEADERS
+SHARED_CMAKE_BOOL=	LEXBOR_BUILD_SHARED
+STATIC_CMAKE_BOOL=	LEXBOR_BUILD_STATIC
+
+.include <bsd.port.mk>
diff --git a/www/lexbor/distinfo b/www/lexbor/distinfo
new file mode 100644
index 000000000000..ff34096ae56b
--- /dev/null
+++ b/www/lexbor/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1732283398
+SHA256 (lexbor-lexbor-v2.4.0_GH0.tar.gz) = 8949744d425743828891de6d80327ccb64b5146f71ff6c992644e6234e63930e
+SIZE (lexbor-lexbor-v2.4.0_GH0.tar.gz) = 4245007
diff --git a/www/lexbor/pkg-descr b/www/lexbor/pkg-descr
new file mode 100644
index 000000000000..f9aef46735ca
--- /dev/null
+++ b/www/lexbor/pkg-descr
@@ -0,0 +1,24 @@
+Lexbor's core requirements rose from the ashes of these challenges:
+* Portability
+Lexbor aims to adapt to different platforms and integrate into various
+programming languages. It's not yet another library full of quirks and
+idiosyncrasies; Lexbor aims to offer developers flexibility to incorporate it
+into their work directly, regardless of the programming language they chose.
+* Modularity
+Lexbor wants to keep things simple: Developers should be able to use only the
+parts they need. Whether it's an HTML or URL parser, the engine's code should be
+straightforward and easy to navigate, promoting rapid development.
+* Speed
+In a nutshell, Lexbor wants things to happen real fast. It's not just about
+making a browser engine; it's about making sure that everything, even the most
+resource-intensive tasks such as HTML parsing, occur swiftly to meet the
+real-time demands of modern web applications.
+* Independence
+Lexbor empowers developers by giving them full control over algorithms,
+resources, and dimensions. By eliminating on external dependencies, we let
+developers customize the engine without sacrificing performance or features.
+* Compliance
+Lexbor commits to industry standards. Developers need to be sure that
+the code aligns with widely established specifications. The output of Lexbor's
+modules, be it HTML, CSS, URLs, or others, should match that of modern browsers,
+meeting industry specifications.
diff --git a/www/lexbor/pkg-plist b/www/lexbor/pkg-plist
new file mode 100644
index 000000000000..cc079486c1b1
--- /dev/null
+++ b/www/lexbor/pkg-plist
@@ -0,0 +1,270 @@
+%%HEADERS%%include/lexbor/core/array.h
+%%HEADERS%%include/lexbor/core/array_obj.h
+%%HEADERS%%include/lexbor/core/avl.h
+%%HEADERS%%include/lexbor/core/base.h
+%%HEADERS%%include/lexbor/core/bst.h
+%%HEADERS%%include/lexbor/core/bst_map.h
+%%HEADERS%%include/lexbor/core/conv.h
+%%HEADERS%%include/lexbor/core/core.h
+%%HEADERS%%include/lexbor/core/def.h
+%%HEADERS%%include/lexbor/core/diyfp.h
+%%HEADERS%%include/lexbor/core/dobject.h
+%%HEADERS%%include/lexbor/core/dtoa.h
+%%HEADERS%%include/lexbor/core/fs.h
+%%HEADERS%%include/lexbor/core/hash.h
+%%HEADERS%%include/lexbor/core/in.h
+%%HEADERS%%include/lexbor/core/lexbor.h
+%%HEADERS%%include/lexbor/core/mem.h
+%%HEADERS%%include/lexbor/core/mraw.h
+%%HEADERS%%include/lexbor/core/perf.h
+%%HEADERS%%include/lexbor/core/plog.h
+%%HEADERS%%include/lexbor/core/print.h
+%%HEADERS%%include/lexbor/core/sbst.h
+%%HEADERS%%include/lexbor/core/serialize.h
+%%HEADERS%%include/lexbor/core/shs.h
+%%HEADERS%%include/lexbor/core/str.h
+%%HEADERS%%include/lexbor/core/str_res.h
+%%HEADERS%%include/lexbor/core/strtod.h
+%%HEADERS%%include/lexbor/core/swar.h
+%%HEADERS%%include/lexbor/core/types.h
+%%HEADERS%%include/lexbor/core/utils.h
+%%HEADERS%%include/lexbor/css/at_rule.h
+%%HEADERS%%include/lexbor/css/at_rule/const.h
+%%HEADERS%%include/lexbor/css/at_rule/res.h
+%%HEADERS%%include/lexbor/css/at_rule/state.h
+%%HEADERS%%include/lexbor/css/base.h
+%%HEADERS%%include/lexbor/css/css.h
+%%HEADERS%%include/lexbor/css/declaration.h
+%%HEADERS%%include/lexbor/css/log.h
+%%HEADERS%%include/lexbor/css/parser.h
+%%HEADERS%%include/lexbor/css/property.h
+%%HEADERS%%include/lexbor/css/property/const.h
+%%HEADERS%%include/lexbor/css/property/res.h
+%%HEADERS%%include/lexbor/css/property/state.h
+%%HEADERS%%include/lexbor/css/rule.h
+%%HEADERS%%include/lexbor/css/selectors/base.h
+%%HEADERS%%include/lexbor/css/selectors/pseudo.h
+%%HEADERS%%include/lexbor/css/selectors/pseudo_const.h
+%%HEADERS%%include/lexbor/css/selectors/pseudo_res.h
+%%HEADERS%%include/lexbor/css/selectors/pseudo_state.h
+%%HEADERS%%include/lexbor/css/selectors/selector.h
+%%HEADERS%%include/lexbor/css/selectors/selectors.h
+%%HEADERS%%include/lexbor/css/selectors/state.h
+%%HEADERS%%include/lexbor/css/state.h
+%%HEADERS%%include/lexbor/css/stylesheet.h
+%%HEADERS%%include/lexbor/css/syntax/anb.h
+%%HEADERS%%include/lexbor/css/syntax/base.h
+%%HEADERS%%include/lexbor/css/syntax/parser.h
+%%HEADERS%%include/lexbor/css/syntax/res.h
+%%HEADERS%%include/lexbor/css/syntax/state.h
+%%HEADERS%%include/lexbor/css/syntax/state_res.h
+%%HEADERS%%include/lexbor/css/syntax/syntax.h
+%%HEADERS%%include/lexbor/css/syntax/token.h
+%%HEADERS%%include/lexbor/css/syntax/token_res.h
+%%HEADERS%%include/lexbor/css/syntax/tokenizer.h
+%%HEADERS%%include/lexbor/css/syntax/tokenizer/error.h
+%%HEADERS%%include/lexbor/css/unit.h
+%%HEADERS%%include/lexbor/css/unit/const.h
+%%HEADERS%%include/lexbor/css/unit/res.h
+%%HEADERS%%include/lexbor/css/value.h
+%%HEADERS%%include/lexbor/css/value/const.h
+%%HEADERS%%include/lexbor/css/value/res.h
+%%HEADERS%%include/lexbor/dom/base.h
+%%HEADERS%%include/lexbor/dom/collection.h
+%%HEADERS%%include/lexbor/dom/dom.h
+%%HEADERS%%include/lexbor/dom/exception.h
+%%HEADERS%%include/lexbor/dom/interface.h
+%%HEADERS%%include/lexbor/dom/interfaces/attr.h
+%%HEADERS%%include/lexbor/dom/interfaces/attr_const.h
+%%HEADERS%%include/lexbor/dom/interfaces/attr_res.h
+%%HEADERS%%include/lexbor/dom/interfaces/cdata_section.h
+%%HEADERS%%include/lexbor/dom/interfaces/character_data.h
+%%HEADERS%%include/lexbor/dom/interfaces/comment.h
+%%HEADERS%%include/lexbor/dom/interfaces/document.h
+%%HEADERS%%include/lexbor/dom/interfaces/document_fragment.h
+%%HEADERS%%include/lexbor/dom/interfaces/document_type.h
+%%HEADERS%%include/lexbor/dom/interfaces/element.h
+%%HEADERS%%include/lexbor/dom/interfaces/event_target.h
+%%HEADERS%%include/lexbor/dom/interfaces/node.h
+%%HEADERS%%include/lexbor/dom/interfaces/processing_instruction.h
+%%HEADERS%%include/lexbor/dom/interfaces/shadow_root.h
+%%HEADERS%%include/lexbor/dom/interfaces/text.h
+%%HEADERS%%include/lexbor/encoding/base.h
+%%HEADERS%%include/lexbor/encoding/const.h
+%%HEADERS%%include/lexbor/encoding/decode.h
+%%HEADERS%%include/lexbor/encoding/encode.h
+%%HEADERS%%include/lexbor/encoding/encoding.h
+%%HEADERS%%include/lexbor/encoding/multi.h
+%%HEADERS%%include/lexbor/encoding/range.h
+%%HEADERS%%include/lexbor/encoding/res.h
+%%HEADERS%%include/lexbor/encoding/single.h
+%%HEADERS%%include/lexbor/html/base.h
+%%HEADERS%%include/lexbor/html/encoding.h
+%%HEADERS%%include/lexbor/html/html.h
+%%HEADERS%%include/lexbor/html/interface.h
+%%HEADERS%%include/lexbor/html/interface_res.h
+%%HEADERS%%include/lexbor/html/interfaces/anchor_element.h
+%%HEADERS%%include/lexbor/html/interfaces/area_element.h
+%%HEADERS%%include/lexbor/html/interfaces/audio_element.h
+%%HEADERS%%include/lexbor/html/interfaces/base_element.h
+%%HEADERS%%include/lexbor/html/interfaces/body_element.h
+%%HEADERS%%include/lexbor/html/interfaces/br_element.h
+%%HEADERS%%include/lexbor/html/interfaces/button_element.h
+%%HEADERS%%include/lexbor/html/interfaces/canvas_element.h
+%%HEADERS%%include/lexbor/html/interfaces/d_list_element.h
+%%HEADERS%%include/lexbor/html/interfaces/data_element.h
+%%HEADERS%%include/lexbor/html/interfaces/data_list_element.h
+%%HEADERS%%include/lexbor/html/interfaces/details_element.h
+%%HEADERS%%include/lexbor/html/interfaces/dialog_element.h
+%%HEADERS%%include/lexbor/html/interfaces/directory_element.h
+%%HEADERS%%include/lexbor/html/interfaces/div_element.h
+%%HEADERS%%include/lexbor/html/interfaces/document.h
+%%HEADERS%%include/lexbor/html/interfaces/element.h
+%%HEADERS%%include/lexbor/html/interfaces/embed_element.h
+%%HEADERS%%include/lexbor/html/interfaces/field_set_element.h
+%%HEADERS%%include/lexbor/html/interfaces/font_element.h
+%%HEADERS%%include/lexbor/html/interfaces/form_element.h
+%%HEADERS%%include/lexbor/html/interfaces/frame_element.h
+%%HEADERS%%include/lexbor/html/interfaces/frame_set_element.h
+%%HEADERS%%include/lexbor/html/interfaces/head_element.h
+%%HEADERS%%include/lexbor/html/interfaces/heading_element.h
+%%HEADERS%%include/lexbor/html/interfaces/hr_element.h
+%%HEADERS%%include/lexbor/html/interfaces/html_element.h
+%%HEADERS%%include/lexbor/html/interfaces/iframe_element.h
+%%HEADERS%%include/lexbor/html/interfaces/image_element.h
+%%HEADERS%%include/lexbor/html/interfaces/input_element.h
+%%HEADERS%%include/lexbor/html/interfaces/label_element.h
+%%HEADERS%%include/lexbor/html/interfaces/legend_element.h
+%%HEADERS%%include/lexbor/html/interfaces/li_element.h
+%%HEADERS%%include/lexbor/html/interfaces/link_element.h
+%%HEADERS%%include/lexbor/html/interfaces/map_element.h
+%%HEADERS%%include/lexbor/html/interfaces/marquee_element.h
+%%HEADERS%%include/lexbor/html/interfaces/media_element.h
+%%HEADERS%%include/lexbor/html/interfaces/menu_element.h
+%%HEADERS%%include/lexbor/html/interfaces/meta_element.h
+%%HEADERS%%include/lexbor/html/interfaces/meter_element.h
+%%HEADERS%%include/lexbor/html/interfaces/mod_element.h
+%%HEADERS%%include/lexbor/html/interfaces/o_list_element.h
+%%HEADERS%%include/lexbor/html/interfaces/object_element.h
+%%HEADERS%%include/lexbor/html/interfaces/opt_group_element.h
+%%HEADERS%%include/lexbor/html/interfaces/option_element.h
+%%HEADERS%%include/lexbor/html/interfaces/output_element.h
+%%HEADERS%%include/lexbor/html/interfaces/paragraph_element.h
+%%HEADERS%%include/lexbor/html/interfaces/param_element.h
+%%HEADERS%%include/lexbor/html/interfaces/picture_element.h
+%%HEADERS%%include/lexbor/html/interfaces/pre_element.h
+%%HEADERS%%include/lexbor/html/interfaces/progress_element.h
+%%HEADERS%%include/lexbor/html/interfaces/quote_element.h
+%%HEADERS%%include/lexbor/html/interfaces/script_element.h
+%%HEADERS%%include/lexbor/html/interfaces/select_element.h
+%%HEADERS%%include/lexbor/html/interfaces/slot_element.h
+%%HEADERS%%include/lexbor/html/interfaces/source_element.h
+%%HEADERS%%include/lexbor/html/interfaces/span_element.h
+%%HEADERS%%include/lexbor/html/interfaces/style_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_caption_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_cell_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_col_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_row_element.h
+%%HEADERS%%include/lexbor/html/interfaces/table_section_element.h
+%%HEADERS%%include/lexbor/html/interfaces/template_element.h
+%%HEADERS%%include/lexbor/html/interfaces/text_area_element.h
+%%HEADERS%%include/lexbor/html/interfaces/time_element.h
+%%HEADERS%%include/lexbor/html/interfaces/title_element.h
+%%HEADERS%%include/lexbor/html/interfaces/track_element.h
+%%HEADERS%%include/lexbor/html/interfaces/u_list_element.h
+%%HEADERS%%include/lexbor/html/interfaces/unknown_element.h
+%%HEADERS%%include/lexbor/html/interfaces/video_element.h
+%%HEADERS%%include/lexbor/html/interfaces/window.h
+%%HEADERS%%include/lexbor/html/node.h
+%%HEADERS%%include/lexbor/html/parser.h
+%%HEADERS%%include/lexbor/html/serialize.h
+%%HEADERS%%include/lexbor/html/style.h
+%%HEADERS%%include/lexbor/html/tag.h
+%%HEADERS%%include/lexbor/html/tag_res.h
+%%HEADERS%%include/lexbor/html/token.h
+%%HEADERS%%include/lexbor/html/token_attr.h
+%%HEADERS%%include/lexbor/html/tokenizer.h
+%%HEADERS%%include/lexbor/html/tokenizer/error.h
+%%HEADERS%%include/lexbor/html/tokenizer/res.h
+%%HEADERS%%include/lexbor/html/tokenizer/state.h
+%%HEADERS%%include/lexbor/html/tokenizer/state_comment.h
+%%HEADERS%%include/lexbor/html/tokenizer/state_doctype.h
+%%HEADERS%%include/lexbor/html/tokenizer/state_rawtext.h
+%%HEADERS%%include/lexbor/html/tokenizer/state_rcdata.h
+%%HEADERS%%include/lexbor/html/tokenizer/state_script.h
+%%HEADERS%%include/lexbor/html/tree.h
+%%HEADERS%%include/lexbor/html/tree/active_formatting.h
+%%HEADERS%%include/lexbor/html/tree/error.h
+%%HEADERS%%include/lexbor/html/tree/insertion_mode.h
+%%HEADERS%%include/lexbor/html/tree/open_elements.h
+%%HEADERS%%include/lexbor/html/tree/template_insertion.h
+%%HEADERS%%include/lexbor/html/tree_res.h
+%%HEADERS%%include/lexbor/ns/base.h
+%%HEADERS%%include/lexbor/ns/const.h
+%%HEADERS%%include/lexbor/ns/ns.h
+%%HEADERS%%include/lexbor/ns/res.h
+%%HEADERS%%include/lexbor/punycode/base.h
+%%HEADERS%%include/lexbor/punycode/punycode.h
+%%HEADERS%%include/lexbor/selectors/base.h
+%%HEADERS%%include/lexbor/selectors/selectors.h
+%%HEADERS%%include/lexbor/tag/base.h
+%%HEADERS%%include/lexbor/tag/const.h
+%%HEADERS%%include/lexbor/tag/res.h
+%%HEADERS%%include/lexbor/tag/tag.h
+%%HEADERS%%include/lexbor/unicode/base.h
+%%HEADERS%%include/lexbor/unicode/idna.h
+%%HEADERS%%include/lexbor/unicode/table_0.h
+%%HEADERS%%include/lexbor/unicode/table_1.h
+%%HEADERS%%include/lexbor/unicode/table_10.h
+%%HEADERS%%include/lexbor/unicode/table_11.h
+%%HEADERS%%include/lexbor/unicode/table_12.h
+%%HEADERS%%include/lexbor/unicode/table_13.h
+%%HEADERS%%include/lexbor/unicode/table_14.h
+%%HEADERS%%include/lexbor/unicode/table_15.h
+%%HEADERS%%include/lexbor/unicode/table_16.h
+%%HEADERS%%include/lexbor/unicode/table_17.h
+%%HEADERS%%include/lexbor/unicode/table_18.h
+%%HEADERS%%include/lexbor/unicode/table_19.h
+%%HEADERS%%include/lexbor/unicode/table_2.h
+%%HEADERS%%include/lexbor/unicode/table_20.h
+%%HEADERS%%include/lexbor/unicode/table_21.h
+%%HEADERS%%include/lexbor/unicode/table_22.h
+%%HEADERS%%include/lexbor/unicode/table_23.h
+%%HEADERS%%include/lexbor/unicode/table_24.h
+%%HEADERS%%include/lexbor/unicode/table_25.h
+%%HEADERS%%include/lexbor/unicode/table_26.h
+%%HEADERS%%include/lexbor/unicode/table_27.h
+%%HEADERS%%include/lexbor/unicode/table_28.h
+%%HEADERS%%include/lexbor/unicode/table_29.h
+%%HEADERS%%include/lexbor/unicode/table_3.h
+%%HEADERS%%include/lexbor/unicode/table_30.h
+%%HEADERS%%include/lexbor/unicode/table_31.h
+%%HEADERS%%include/lexbor/unicode/table_32.h
+%%HEADERS%%include/lexbor/unicode/table_33.h
+%%HEADERS%%include/lexbor/unicode/table_34.h
+%%HEADERS%%include/lexbor/unicode/table_35.h
+%%HEADERS%%include/lexbor/unicode/table_36.h
+%%HEADERS%%include/lexbor/unicode/table_37.h
+%%HEADERS%%include/lexbor/unicode/table_38.h
+%%HEADERS%%include/lexbor/unicode/table_39.h
+%%HEADERS%%include/lexbor/unicode/table_4.h
+%%HEADERS%%include/lexbor/unicode/table_5.h
+%%HEADERS%%include/lexbor/unicode/table_6.h
+%%HEADERS%%include/lexbor/unicode/table_7.h
+%%HEADERS%%include/lexbor/unicode/table_8.h
+%%HEADERS%%include/lexbor/unicode/table_9.h
+%%HEADERS%%include/lexbor/unicode/table_compose.h
+%%HEADERS%%include/lexbor/unicode/table_idna_types.h
+%%HEADERS%%include/lexbor/unicode/unicode.h
+%%HEADERS%%include/lexbor/url/base.h
+%%HEADERS%%include/lexbor/url/url.h
+%%HEADERS%%include/lexbor/utils/base.h
+%%HEADERS%%include/lexbor/utils/http.h
+%%HEADERS%%include/lexbor/utils/utils.h
+%%HEADERS%%include/lexbor/utils/warc.h
+%%SHARED%%lib/liblexbor.so
+%%SHARED%%lib/liblexbor.so.2
+%%SHARED%%lib/liblexbor.so.2.4.0
+%%STATIC%%lib/liblexbor_static.a
+%%HEADERS%%@dir include/lexbor/html/tree/insertion_mode