git: 59aa70699b91 - main - lang/zig014: copy from lang/zig

From: Rodrigo Osorio <rodrigo_at_FreeBSD.org>
Date: Thu, 18 Dec 2025 10:56:13 UTC
The branch main has been updated by rodrigo:

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

commit 59aa70699b9159514b2706a9189655d29b4b9c0a
Author:     Rodrigo Osorio <rodrigo@FreeBSD.org>
AuthorDate: 2025-11-30 09:28:37 +0000
Commit:     Rodrigo Osorio <rodrigo@FreeBSD.org>
CommitDate: 2025-12-18 10:47:45 +0000

    lang/zig014: copy from lang/zig
    
    Zig is making lots of breaking changes from 0.14
    to 0.15 consumers aren't necessarily keeping up.
    
    Create the lang/zig014 as a tempoirary solution
    for ports depending on zig 0.14
    
    PR:             289011
    Approved by:    Pero Oršolić <bsd@orsolic.org> (maintainer)
---
 lang/Makefile         |  1 +
 lang/zig014/Makefile  | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++
 lang/zig014/distinfo  |  3 ++
 lang/zig014/pkg-descr |  2 ++
 4 files changed, 87 insertions(+)

diff --git a/lang/Makefile b/lang/Makefile
index 1f8fd5864650..7b6e62938235 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -402,5 +402,6 @@
     SUBDIR += ypsilon
     SUBDIR += zephir
     SUBDIR += zig
+    SUBDIR += zig014
 
 .include <bsd.port.subdir.mk>
diff --git a/lang/zig014/Makefile b/lang/zig014/Makefile
new file mode 100644
index 000000000000..d3f5e7ec8d81
--- /dev/null
+++ b/lang/zig014/Makefile
@@ -0,0 +1,81 @@
+PORTNAME=	zig
+DISTVERSION=	0.14.0
+CATEGORIES=	lang
+MASTER_SITES=	https://ziglang.org/download/${DISTVERSION}/ \
+		https://ziglang.org/builds/
+PKGNAMESUFFIX=	014
+
+PATCH_SITES=	https://github.com/ziglang/${PORTNAME}/commit/
+
+MAINTAINER=	bsd@orsolic.org
+COMMENT=	Language designed for robustness, optimality, and maintainability
+WWW=		https://ziglang.org/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+ONLY_FOR_ARCHS=	aarch64 amd64
+ONLY_FOR_ARCHS_REASON=	not yet supported
+
+BUILD_DEPENDS=	icu>=71:devel/icu \
+		llvm${_LLVM_VER}>=0:devel/llvm${_LLVM_VER}
+
+LIB_DEPENDS=	libzstd.so:archivers/zstd
+
+USES=		cmake compiler:c++11-lang localbase:ldflags tar:xz
+CMAKE_ARGS+=	-DZIG_TARGET_MCPU=baseline # ensure we run everywhere
+CMAKE_ON=	THREADS_PREFER_PTHREAD_FLAG
+
+CONFLICTS_INSTALL=	zig*
+PORTSCOUT=	limit:^0\.14\.
+
+OPTIONS_DEFINE=		DOCS STATIC
+OPTIONS_DEFAULT=	DOCS
+
+STATIC_DESC=	sets ZIG_STATIC to avoid 800MiB LLVM runtime dependency
+
+STATIC_RUN_DEPENDS_OFF=	llvm${_LLVM_VER}>=0:devel/llvm${_LLVM_VER}
+STATIC_CMAKE_BOOL=	ZIG_STATIC
+STATIC_LDFLAGS=		-licudata -licuuc -llzma -lm -lmd -lxml2 -lz -lzstd
+STATIC_LIB_DEPENDS+=	libxml2.so:textproc/libxml2
+
+_LLVM_VER=	19
+_ZIG_BIN=	${STAGEDIR}${PREFIX}/bin/zig
+
+post-configure-STATIC-on:
+	@${REINPLACE_CMD} 's/-Wl,-Bdynamic//' \
+		${BUILD_WRKSRC}/build.ninja
+
+post-install:
+	@${RM} -rf ${WRKDIR}/.build
+	@${RM} -rf ${STAGEDIR}/wrkdirs
+	# Automatically create the PLIST file
+	@${FIND} -s ${_ZIG_BIN} -not -type d | ${SORT} | \
+		${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+	@${FIND} -s ${STAGEDIR}${PREFIX}/lib/${PORTNAME} -not -type d | ${SORT} | \
+		${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/compress/flate/testdata/block_writer" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/compress/flate/testdata/fuzz" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/compress/lzma/testdata" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/compress/testdata" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/compress/xz/testdata" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/tar/testdata" >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir lib/zig/std/tz" >> ${TMPPLIST}
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}/std
+.for f in index.html main.js
+	${INSTALL_MAN} ${WRKSRC}/lib/docs/${f} \
+		${STAGEDIR}${DOCSDIR}/${f}
+.endfor
+	@cd ${STAGEDIR}; ${FIND} ${DOCSDIR:C@^/@@} -type f | ${SED} -e 's@^@/@' | ${SORT} | \
+		${SED} -e 's#^${PREFIX}/##' >> ${TMPPLIST}
+	@${ECHO_CMD} "@dir share/doc/zig/std" >> ${TMPPLIST}
+
+do-test:
+	mkdir ${WRKDIR}/cache
+	(cd ${WRKSRC} && \
+		${_ZIG_BIN} build test-behavior --cache-dir ${WRKDIR}/cache \
+		--global-cache-dir ${WRKDIR}/cache --zig-lib-dir ${WRKSRC}/lib)
+
+.include <bsd.port.mk>
diff --git a/lang/zig014/distinfo b/lang/zig014/distinfo
new file mode 100644
index 000000000000..9e8edfca8f10
--- /dev/null
+++ b/lang/zig014/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1744681910
+SHA256 (zig-0.14.0.tar.xz) = c76638c03eb204c4432ae092f6fa07c208567e110fbd4d862d131a7332584046
+SIZE (zig-0.14.0.tar.xz) = 17772188
diff --git a/lang/zig014/pkg-descr b/lang/zig014/pkg-descr
new file mode 100644
index 000000000000..e3bd0df79986
--- /dev/null
+++ b/lang/zig014/pkg-descr
@@ -0,0 +1,2 @@
+Zig is a general purpose programming language designed for robustness,
+optimality, and maintainability.