git: 28d3626197fd - main - sysutils/tarbsd-builder: [NEW PORT] Minimal FreeBSD image builder

From: Älven <alven_at_FreeBSD.org>
Date: Mon, 18 Aug 2025 12:16:27 UTC
The branch main has been updated by alven:

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

commit 28d3626197fddd69f1d9e06af9ce0fb2c68f1ce6
Author:     Paavo-Einari Kaipila <pave@freebsd.org>
AuthorDate: 2025-08-07 18:36:17 +0000
Commit:     Älven <alven@FreeBSD.org>
CommitDate: 2025-08-18 12:16:00 +0000

    sysutils/tarbsd-builder: [NEW PORT] Minimal FreeBSD image builder
    
    Signed-off-by: Paavo-Einari Kaipila <pave@freebsd.org>
    
    PR:             288720
    Approved by:    yuri@ (Mentor)
---
 sysutils/Makefile                 |  1 +
 sysutils/tarbsd-builder/Makefile  | 55 +++++++++++++++++++++++++++++++++++++++
 sysutils/tarbsd-builder/distinfo  |  3 +++
 sysutils/tarbsd-builder/pkg-descr |  2 ++
 4 files changed, 61 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index dab4f227e9dc..ce10c9dcb0df 100755
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1362,6 +1362,7 @@
     SUBDIR += szyszka
     SUBDIR += tai64nfrac
     SUBDIR += tailspin
+    SUBDIR += tarbsd-builder
     SUBDIR += tarsnap
     SUBDIR += tarsnap-gui
     SUBDIR += tarsnap-periodic
diff --git a/sysutils/tarbsd-builder/Makefile b/sysutils/tarbsd-builder/Makefile
new file mode 100644
index 000000000000..282268542d22
--- /dev/null
+++ b/sysutils/tarbsd-builder/Makefile
@@ -0,0 +1,55 @@
+PORTNAME=	tarbsd-builder
+DISTVERSION=	25.08.17
+CATEGORIES=	sysutils
+PKGNAMESUFFIX=	${PHP_PKGNAMESUFFIX}
+DIST_SUBDIR=	${DISTNAME}-${DISTVERSION}
+
+MAINTAINER=	pkaipila@gmail.com
+COMMENT=	Minimal FreeBSD image builder
+WWW=		https://github.com/pavetheway91/tarbsd
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		php:flavors,build
+USE_GITHUB=	yes
+GH_ACCOUNT=	pavetheway91
+GH_PROJECT=	tarbsd
+USE_PHP=	pcntl phar zlib
+
+IGNORE_WITH_PHP=	81
+NO_ARCH=	yes
+
+_TARBSD_COMPILE_ARGS=--ports --version-tag=${DISTVERSION}
+
+PLIST_FILES=	bin/tarbsd
+
+OPTIONS_DEFINE=		INTL MBSTRING QEMU_TOOLS ZOPFLI
+OPTIONS_DEFAULT=	MBSTRING ZOPFLI
+
+INTL_DESC=	Intl extension instead of a polyfill
+MBSTRING_DESC=	Mbstring extension instead of a polyfill
+QEMU_TOOLS_DESC=	Export image to hypervisor formats
+ZOPFLI_DESC=	Better kernel compression
+
+INTL_USE=		PHP=intl
+MBSTRING_USE=		PHP=mbstring
+QEMU_TOOLS_RUN_DEPENDS=	qemu-img:emulators/qemu@tools
+ZOPFLI_RUN_DEPENDS=	zopfli:archivers/zopfli
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MMBSTRING}
+_TARBSD_COMPILE_ARGS+=	--np-iconv
+.endif
+
+do-build:
+	${LOCALBASE}/bin/php \
+		-d phar.readonly=0 \
+		${WRKSRC}/stubs/compile.php ${_TARBSD_COMPILE_ARGS}
+
+do-install:
+	${INSTALL_SCRIPT} ${WRKSRC}/out/tarbsd \
+		${STAGEDIR}${PREFIX}/bin/
+
+.include <bsd.port.mk>
diff --git a/sysutils/tarbsd-builder/distinfo b/sysutils/tarbsd-builder/distinfo
new file mode 100644
index 000000000000..44cab58e14b4
--- /dev/null
+++ b/sysutils/tarbsd-builder/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1755399698
+SHA256 (pavetheway91-tarbsd-25.08.17_GH0-25.08.17/pavetheway91-tarbsd-25.08.17_GH0.tar.gz) = 26e528f72530cbd86202eaddfc64bb0cfe4cf8883d4058ce95c0e24a30d96ca2
+SIZE (pavetheway91-tarbsd-25.08.17_GH0-25.08.17/pavetheway91-tarbsd-25.08.17_GH0.tar.gz) = 1025094
diff --git a/sysutils/tarbsd-builder/pkg-descr b/sysutils/tarbsd-builder/pkg-descr
new file mode 100644
index 000000000000..1cf3075c99d0
--- /dev/null
+++ b/sysutils/tarbsd-builder/pkg-descr
@@ -0,0 +1,2 @@
+tarBSD builder builds FreeBSD images that boot to memory. Depending on
+installed packages, the image can be even less than 40 megabytes.