git: c6d8fb35db81 - main - textproc/libxmlb: New port - Library to help create and query binary XML blobs

From: Tobias C. Berner <tcberner_at_FreeBSD.org>
Date: Fri, 04 Mar 2022 05:18:02 UTC
The branch main has been updated by tcberner:

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

commit c6d8fb35db81eaa939c3354462ce16171f8ffb98
Author:     Tobias C. Berner <tcberner@FreeBSD.org>
AuthorDate: 2022-03-04 05:09:04 +0000
Commit:     Tobias C. Berner <tcberner@FreeBSD.org>
CommitDate: 2022-03-04 05:16:56 +0000

    textproc/libxmlb: New port - Library to help create and query binary XML blobs
    
    XML is slow to parse and strings inside the document cannot be memory mapped as
    they do not have a trailing NUL char. The libxmlb library takes XML source, and
    converts it to a structured binary representation with a deduplicated string
    table -- where the strings have the NULs included.
    
    This allows an application to mmap the binary XML file, do an XPath query and
    return some strings without actually parsing the entire document. This is all
    done using (almost) zero allocations and no actual copying of the binary data.
    
    WWW:    https://github.com/hughsie/libxmlb
    
    PR:             258541
---
 textproc/Makefile          |  1 +
 textproc/libxmlb/Makefile  | 20 +++++++++++++++
 textproc/libxmlb/distinfo  |  3 +++
 textproc/libxmlb/pkg-descr | 10 ++++++++
 textproc/libxmlb/pkg-plist | 62 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 96 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 1df606532a40..4061d74103a3 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -409,6 +409,7 @@
     SUBDIR += libxdiff
     SUBDIR += libxml++26
     SUBDIR += libxml2
+    SUBDIR += libxmlb
     SUBDIR += libxmlbird
     SUBDIR += libxode
     SUBDIR += libxslt
diff --git a/textproc/libxmlb/Makefile b/textproc/libxmlb/Makefile
new file mode 100644
index 000000000000..1c546add1dc1
--- /dev/null
+++ b/textproc/libxmlb/Makefile
@@ -0,0 +1,20 @@
+PORTNAME=	libxmlb
+DISTVERSION=	0.3.6
+CATEGORIES=	textproc
+
+MAINTAINER=	desktop@FreeBSD.org
+COMMENT=	Library to help create and query binary XML blobs
+
+LICENSE=	LGPL21
+
+BUILD_DEPENDS=	gtkdoc-scan:textproc/gtk-doc
+LIB_DEPENDS=	libstemmer.so:textproc/snowballstemmer
+
+USES=		gnome meson pkgconfig localbase:ldflags
+USE_GITHUB=	yes
+GH_ACCOUNT=	hughsie
+USE_GNOME=	glib20 introspection:build
+
+MESON_ARGS=	-Dstemmer=true
+
+.include <bsd.port.mk>
diff --git a/textproc/libxmlb/distinfo b/textproc/libxmlb/distinfo
new file mode 100644
index 000000000000..ff2d6125997b
--- /dev/null
+++ b/textproc/libxmlb/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1646369692
+SHA256 (hughsie-libxmlb-0.3.6_GH0.tar.gz) = cb529d055c63d705bafd17b5fab8e36153292533668a0aba853514ed0e42862c
+SIZE (hughsie-libxmlb-0.3.6_GH0.tar.gz) = 118521
diff --git a/textproc/libxmlb/pkg-descr b/textproc/libxmlb/pkg-descr
new file mode 100644
index 000000000000..b9b3b9fb6d21
--- /dev/null
+++ b/textproc/libxmlb/pkg-descr
@@ -0,0 +1,10 @@
+XML is slow to parse and strings inside the document cannot be memory mapped as
+they do not have a trailing NUL char. The libxmlb library takes XML source, and
+converts it to a structured binary representation with a deduplicated string
+table -- where the strings have the NULs included.
+
+This allows an application to mmap the binary XML file, do an XPath query and
+return some strings without actually parsing the entire document. This is all
+done using (almost) zero allocations and no actual copying of the binary data.
+
+WWW:	https://github.com/hughsie/libxmlb
diff --git a/textproc/libxmlb/pkg-plist b/textproc/libxmlb/pkg-plist
new file mode 100644
index 000000000000..690ff7416eab
--- /dev/null
+++ b/textproc/libxmlb/pkg-plist
@@ -0,0 +1,62 @@
+include/libxmlb-2/libxmlb/xb-builder-fixup.h
+include/libxmlb-2/libxmlb/xb-builder-node.h
+include/libxmlb-2/libxmlb/xb-builder-source-ctx.h
+include/libxmlb-2/libxmlb/xb-builder-source.h
+include/libxmlb-2/libxmlb/xb-builder.h
+include/libxmlb-2/libxmlb/xb-machine.h
+include/libxmlb-2/libxmlb/xb-node-query.h
+include/libxmlb-2/libxmlb/xb-node-silo.h
+include/libxmlb-2/libxmlb/xb-node.h
+include/libxmlb-2/libxmlb/xb-opcode.h
+include/libxmlb-2/libxmlb/xb-query-context.h
+include/libxmlb-2/libxmlb/xb-query.h
+include/libxmlb-2/libxmlb/xb-silo-export.h
+include/libxmlb-2/libxmlb/xb-silo-query.h
+include/libxmlb-2/libxmlb/xb-silo.h
+include/libxmlb-2/libxmlb/xb-stack.h
+include/libxmlb-2/libxmlb/xb-string.h
+include/libxmlb-2/libxmlb/xb-value-bindings.h
+include/libxmlb-2/libxmlb/xb-version.h
+include/libxmlb-2/xmlb.h
+lib/girepository-1.0/Xmlb-2.0.typelib
+lib/libxmlb.so
+lib/libxmlb.so.2
+lib/libxmlb.so.2.0.0
+libdata/pkgconfig/xmlb.pc
+libexec/installed-tests/libxmlb/test.xml.gz.gz.gz
+libexec/installed-tests/libxmlb/xb-self-test
+libexec/xb-tool
+share/gir-1.0/Xmlb-2.0.gir
+share/gtk-doc/html/libxmlb/annotation-glossary.html
+share/gtk-doc/html/libxmlb/api-index-full.html
+share/gtk-doc/html/libxmlb/deprecated-api-index.html
+share/gtk-doc/html/libxmlb/home.png
+share/gtk-doc/html/libxmlb/index.html
+share/gtk-doc/html/libxmlb/intro.html
+share/gtk-doc/html/libxmlb/left-insensitive.png
+share/gtk-doc/html/libxmlb/left.png
+share/gtk-doc/html/libxmlb/libxmlb-XbBuilder.html
+share/gtk-doc/html/libxmlb/libxmlb-XbBuilderFixup.html
+share/gtk-doc/html/libxmlb/libxmlb-XbBuilderNode.html
+share/gtk-doc/html/libxmlb/libxmlb-XbBuilderSource.html
+share/gtk-doc/html/libxmlb/libxmlb-XbBuilderSourceCtx.html
+share/gtk-doc/html/libxmlb/libxmlb-XbMachine.html
+share/gtk-doc/html/libxmlb/libxmlb-XbNode.html
+share/gtk-doc/html/libxmlb/libxmlb-XbQuery.html
+share/gtk-doc/html/libxmlb/libxmlb-XbSilo.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-node-query.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-opcode.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-query-context.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-silo-export.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-silo-query.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-stack.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-string.html
+share/gtk-doc/html/libxmlb/libxmlb-xb-value-bindings.html
+share/gtk-doc/html/libxmlb/libxmlb.devhelp2
+share/gtk-doc/html/libxmlb/libxmlb.html
+share/gtk-doc/html/libxmlb/right-insensitive.png
+share/gtk-doc/html/libxmlb/right.png
+share/gtk-doc/html/libxmlb/style.css
+share/gtk-doc/html/libxmlb/up-insensitive.png
+share/gtk-doc/html/libxmlb/up.png
+share/installed-tests/libxmlb/libxmlb.test