feat: ports - libhubbub, libcss, libdom

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018Ae69wJS7sueQMUwNxV3nX
This commit is contained in:
2026-08-07 20:11:55 +02:00
co-authored by Claude Opus 5
parent acb169e2c4
commit f1d17b62c1
13 changed files with 225 additions and 4 deletions
+34
View File
@@ -0,0 +1,34 @@
# libcss for MontaukOS
#
# Upstream: https://github.com/netsurf-browser/libcss (official mirror of
# git.netsurf-browser.org; submodule at upstream/, pinned, no local patches).
#
# CSS parser and selection engine. Depends on libparserutils and
# libwapcaplet, both of which must already be in the ports sysroot.
#
# Needs perl AND python3 on the BUILD host: it generates its property
# parser/computed-style tables at build time. mk/port.mk forces PYTHON=python3
# because the codegen invokes $(PYTHON) and Debian has no bare `python`.
UPSTREAM := upstream
PORT_NAME := libcss
PORT_LIB := 1
PORT_DEPENDS := libparserutils libwapcaplet
PORT_ARCHIVE := libcss.a
PORT_PC_IN := $(UPSTREAM)/libcss.pc.in
PORT_PC_VERSION := 0.9.2
PORT_HEADER_ROOT := $(UPSTREAM)/include
PORT_HEADERS := $(shell find $(UPSTREAM)/include -name '*.h' 2>/dev/null)
include ../../mk/port.mk
.PHONY: all clean
all: install-lib
$(PORT_ARCHIVE): $(shell find $(UPSTREAM)/src $(UPSTREAM)/include -name '*.c' -o -name '*.h' 2>/dev/null)
$(call ns_build,$(UPSTREAM),css)
clean: clean-lib
@$(call ns_clean,$(UPSTREAM))
rm -rf $(UPSTREAM)/$(NS_BUILDDIR)
+50
View File
@@ -0,0 +1,50 @@
# libdom for MontaukOS
#
# Upstream: https://github.com/netsurf-browser/libdom (official mirror of
# git.netsurf-browser.org; submodule at upstream/, pinned, no local patches).
#
# DOM implementation. Depends on libparserutils, libwapcaplet and libhubbub,
# all of which must already be in the ports sysroot -- libdom finds the latter
# two through pkg-config (REQUIRED_PKGS), which is why the library ports
# publish .pc files into sysroot/lib/pkgconfig.
#
# Bindings come from libdom's checked-in Makefile.config, which defaults the
# expat AND hubbub bindings to yes. Those are plain `:=` assignments, so
# passing the variables on the sub-make command line overrides them without
# patching upstream or dropping a Makefile.config.override into the submodule:
# WITH_HUBBUB_BINDING=yes how NetSurf feeds HTML into the DOM; required.
# WITH_EXPAT_BINDING=no defaults to YES upstream and must be turned off
# -- it needs <expat.h>, which MontaukOS has no
# port of, and NetSurf does not use it.
# WITH_LIBXML_BINDING already no in their config; set explicitly so a
# future upstream flip cannot surprise us.
#
# Needs perl on the BUILD host.
UPSTREAM := upstream
PORT_NAME := libdom
PORT_LIB := 1
PORT_DEPENDS := libparserutils libwapcaplet libhubbub
PORT_ARCHIVE := libdom.a
PORT_PC_IN := $(UPSTREAM)/libdom.pc.in
PORT_PC_VERSION := 0.4.2
PORT_HEADER_ROOT := $(UPSTREAM)/include
PORT_HEADERS := $(shell find $(UPSTREAM)/include -name '*.h' 2>/dev/null)
include ../../mk/port.mk
NS_MAKE_ARGS_EXTRA := \
WITH_HUBBUB_BINDING=yes \
WITH_EXPAT_BINDING=no \
WITH_LIBXML_BINDING=no
.PHONY: all clean
all: install-lib
$(PORT_ARCHIVE): $(shell find $(UPSTREAM)/src $(UPSTREAM)/bindings $(UPSTREAM)/include -name '*.c' -o -name '*.h' 2>/dev/null)
$(call ns_build,$(UPSTREAM),dom)
clean: clean-lib
@$(call ns_clean,$(UPSTREAM))
rm -rf $(UPSTREAM)/$(NS_BUILDDIR)
+34
View File
@@ -0,0 +1,34 @@
# libhubbub for MontaukOS
#
# Upstream: https://github.com/netsurf-browser/libhubbub (official mirror of
# git.netsurf-browser.org; submodule at upstream/, pinned, no local patches).
#
# HTML5 tokeniser and tree construction. Depends on libparserutils and
# libwapcaplet, both of which must already be in the ports sysroot.
#
# Needs perl on the BUILD host: src/tokeniser/entities.inc is generated from
# build/Entities by build/make-entities.pl. That is a host tool, not a target
# dependency.
UPSTREAM := upstream
PORT_NAME := libhubbub
PORT_LIB := 1
PORT_DEPENDS := libparserutils libwapcaplet
PORT_ARCHIVE := libhubbub.a
PORT_PC_IN := $(UPSTREAM)/libhubbub.pc.in
PORT_PC_VERSION := 0.3.8
PORT_HEADER_ROOT := $(UPSTREAM)/include
PORT_HEADERS := $(shell find $(UPSTREAM)/include -name '*.h' 2>/dev/null)
include ../../mk/port.mk
.PHONY: all clean
all: install-lib
$(PORT_ARCHIVE): $(shell find $(UPSTREAM)/src $(UPSTREAM)/include -name '*.c' -o -name '*.h' 2>/dev/null)
$(call ns_build,$(UPSTREAM),hubbub)
clean: clean-lib
@$(call ns_clean,$(UPSTREAM))
rm -rf $(UPSTREAM)/$(NS_BUILDDIR)