git: e93d209b4fac - main - www/zine-ssg: Add port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 27 Mar 2026 19:49:33 UTC
The branch main has been updated by adamw:
URL: https://cgit.FreeBSD.org/ports/commit/?id=e93d209b4fac2663214a3a3f9866c9917fe3061e
commit e93d209b4fac2663214a3a3f9866c9917fe3061e
Author: Dave Marker <dave@freedave.net>
AuthorDate: 2026-03-27 19:42:49 +0000
Commit: Adam Weinberger <adamw@FreeBSD.org>
CommitDate: 2026-03-27 19:49:13 +0000
www/zine-ssg: Add port
Zine is a static site generator similar in concept to www/gohugo.
Zine turns your content into HTML, styles it using your layouts, and finally
copies the result into an output directory that you can then publish on static
hosting services like GitHub Pages.
Zine has a companion port, devel/superhtml which acts as an LSP for the markdown
content and HTML layouts.
Differential Revision: https://reviews.freebsd.org/D55877
---
www/Makefile | 1 +
www/zine-ssg/Makefile | 44 +++++++++++++++++++++++++++
www/zine-ssg/Makefile.zig | 24 +++++++++++++++
www/zine-ssg/distinfo | 49 ++++++++++++++++++++++++++++++
www/zine-ssg/files/patch-build.zig | 36 ++++++++++++++++++++++
www/zine-ssg/files/patch-build.zig.zon | 13 ++++++++
www/zine-ssg/files/patch-src_cli_serve.zig | 10 ++++++
www/zine-ssg/pkg-descr | 8 +++++
8 files changed, 185 insertions(+)
diff --git a/www/Makefile b/www/Makefile
index e04b64aaf7cc..f8c1d45deb72 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -2741,6 +2741,7 @@
SUBDIR += yuicompressor
SUBDIR += zenphoto
SUBDIR += zerowait-httpd
+ SUBDIR += zine-ssg
SUBDIR += zgrab2
SUBDIR += zola
diff --git a/www/zine-ssg/Makefile b/www/zine-ssg/Makefile
new file mode 100644
index 000000000000..6f23c6b1ba97
--- /dev/null
+++ b/www/zine-ssg/Makefile
@@ -0,0 +1,44 @@
+PORTNAME= zine-ssg
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.11.2
+CATEGORIES= www
+
+MAINTAINER= dave@freedave.net
+COMMENT= Fast and Flexible Static Site Generator
+WWW= https://zine-ssg.io
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+# This is needed to run `make test`.
+TEST_DEPENDS= git:devel/git
+
+USES= inotify zig
+
+USE_GITHUB= yes
+GH_ACCOUNT= kristoff-it
+GH_PROJECT= zine
+
+CONFLICTS_INSTALL= zine
+
+PLIST_FILES= bin/zine
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+.if defined(INOTIFY_PORT)
+ ${REINPLACE_CMD} -e 's|%INOTIFY_GUARD%||' ${WRKSRC}/build.zig
+.else
+ # comment out of builds for FreeBSD15+
+ ${REINPLACE_CMD} -e 's|%INOTIFY_GUARD%|// |' ${WRKSRC}/build.zig
+.endif
+
+# zine needs to test with a git repo which the ports build system goes out of
+# its way to *not* use. So step 1 is to create the git repo... its just for the test
+# Also we have to remove the -D... and --release... flags. zine is using "snapshot"
+# testing and changing args breaks that.
+do-test:
+ cd ${BUILD_WRKSRC} && ${RM} -r .git && git init . && git add tests && git commit -m 'tests'
+ cd ${BUILD_WRKSRC} && ${DO_MAKE_BUILD:N-D*:N--release=*:S/build/build test --summary all/}
+
+.include <bsd.port.post.mk>
diff --git a/www/zine-ssg/Makefile.zig b/www/zine-ssg/Makefile.zig
new file mode 100644
index 000000000000..38a6d74b1610
--- /dev/null
+++ b/www/zine-ssg/Makefile.zig
@@ -0,0 +1,24 @@
+# had to advance afl_kit for zig 0.15.2
+ZIG_TUPLE= AFLplusplus:github.com/AFLplusplus/AFLplusplus/archive/v4.21c.tar.gz:N-V-__8AAKE4uAAJZgEcPdaXnWqoj-IwYf3G2h9YSm-x92gg \
+ AFLplusplus:github.com/allyourcodebase/AFLplusplus/archive/7e65eb4262688a120bf830d145060aac0.tar.gz:AFLplusplus-4.21.0-aA1y4dZxAAAhqDy_JoRw3zwNSg8MenEGP7uJI_xNcYuV \
+ afl_kit:github.com/kristoff-it/zig-afl-kit/archive/395c39d5b33d999f6871a90bd731ec112.tar.gz:afl_kit-0.1.0-NdJ3ch8eAABQkd1wk2W-JDCvvX5Jmnu3uJulS3lPepG7 \
+ cbor:github.com/neurocyte/cbor/archive/7d2eeb68c8a2fb3f4d6baad6cc04c521b.tar.gz:cbor-1.0.0-RcQE_AswAQAPlqBCZXYQf9DZXn-0Ubt8Mk03ZcJWcsAG \
+ flow_syntax:github.com/neurocyte/flow-syntax/archive/6992eddeb9a4a013886db0cbca2156686.tar.gz:flow_syntax-0.6.0-X8jOoWgVAQBBTuGGE9r1ECSDFzi8z6_XNCW1oF5B4fL8 \
+ frameworks:github.com/hexops/xcode-frameworks/archive/8a1cfb373587ea4c9bb1468b7c986462d.tar.gz:N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ \
+ gfm:github.com/kristoff-it/cmark-gfm/archive/b96c27a5152b9124d657dee7fb1186d0a.tar.gz:cmark_gfm-0.1.0-uQgTK6WZFwCG9y7_Z0IkCINtmMTwvEZTyVh_6nsaMVPq \
+ known_folders:github.com/ziglibs/known-folders/archive/aa24df42183ad415d10bc0a33e6238c43.tar.gz:known_folders-0.0.0-Fy-PJtLDAADGDOwYwMkVydMSTp_aN-nfjCZw6qPQ2ECL \
+ known_folders:github.com/ziglibs/known-folders/archive/ab5cf5feb936fa3b72c95d3ad0c0c6779.tar.gz:known_folders-0.0.0-Fy-PJtTTAADUOhGKM0sxzG4eMkNQxRvx9e5dfHVyaeA3 \
+ lsp_kit:github.com/kristoff-it/lsp-kit/archive/01c14e592d25dc57dfebba27b8bd2b4aa.tar.gz:lsp_kit-0.1.0-bi_PL5YyCgA2QFEza6llr2Uy08QUQsWBu2wKvtr8tbLx \
+ lsp_kit:github.com/zigtools/lsp-kit/archive/4835b9d3d3cf732fe1830189d81f331c6.tar.gz:lsp_kit-0.1.0-bi_PL18tCgAMyrZ0tgn_0PXnGEvxGWeNkkRygfe9pX9u \
+ lsp_kit:github.com/zigtools/lsp-kit/archive/c46ac866dda11ab58e4ba71ed0d8ba21f.tar.gz:lsp_kit-0.1.0-bi_PL98yCgBfW3T4iLkfV5VOXc__pOpOsQsX1tRmpqAG \
+ lsp_kit:github.com/zigtools/lsp-kit/archive/fe98e895ca3bd1b39965ab30f0f252f7b.tar.gz:lsp_kit-0.1.0-bi_PLzAyCgClDh8_M0U9Q50ysdsQBuRuBTZfwg6rZPd6 \
+ mime:github.com/kristoff-it/mime/archive/a2ed0cba3b1463217168034ffed8c1604.tar.gz:mime-3.0.0-zwmL--0gAAByELrj57sRm2EFBRzjKLFrMgHQcs7sFZev \
+ scripty:github.com/kristoff-it/scripty/archive/50dbab8945440089384f26ec165d870c2.tar.gz:scripty-0.1.0-LKK5O7v4AADWWXuFcTJky_5sY12tmw3kRi3k2wkpfxAX \
+ superhtml:github.com/kristoff-it/superhtml/archive/8cb16babb0c66b6512d6aeb4cbc37ed90.tar.gz:superhtml-0.4.0-Y7MdPJTWDQBJJoaCLlBYLGrjhAnmWAtVhVGelveq3O-s \
+ supermd:github.com/kristoff-it/supermd/archive/530ac6c337c9a9511560fba3181db10d1.tar.gz:supermd-0.1.0-3Mco3GyYWACe4ptEKIrZUhizWGwXhbmtKtjNopG8f76y \
+ tracy:github.com/kristoff-it/tracy/archive/67d2d89e351048c76fc6d161e0ac09d8a.tar.gz:tracy-0.0.0-4Xw-1pwwAABTfMgoDP1unCbZDZhJEfict7XCBGF6IdIn \
+ tree_sitter:github.com/neurocyte/tree-sitter/releases/download/master-6e2827ee231e220467bf04d2a2746faff5cb204a/source.tar.gz:tree_sitter-0.22.4-150-g7e3f5726-z0LhyGeG1y67PeOltaplVkxRNT2jMMexQhbUlrh0vdxM \
+ wuffs:github.com/allyourcodebase/wuffs/archive/5822dc06c75b30d53082debf68c90193c.tar.gz:wuffs-0.4.0-alpha.9+3837.20240914-3CHJgcMFAACyPvxsC7b48pJv9dPkPa4pSrB2VFbCXTfK \
+ wuffs:github.com/google/wuffs-mirror-release-c/archive/90e4d81a6a8b7b601e8e568da32a105d7f7705e5.tar.gz:N-V-__8AANEmUgA6aZZZKbfNMv6DSs5In7CDFU6nInu_Y6aY \
+ zeit:github.com/sam701/zeit/archive/46583c4695bade6841a558c0ce5648426.tar.gz:zeit-0.6.0-5I6bk0J9AgCVa0nnyL0lNY9Xa9F68hHq-ZarhuXNV-Jb \
+ ziggy:github.com/kristoff-it/ziggy/archive/4353b20ef2ac750e35c6d68e4eb2a07c2.tar.gz:ziggy-0.1.0-kTg8v5pABgDztlefWHceH-Sh8tVveguFC61QkmLkIRaA
diff --git a/www/zine-ssg/distinfo b/www/zine-ssg/distinfo
new file mode 100644
index 000000000000..e9651c529ab7
--- /dev/null
+++ b/www/zine-ssg/distinfo
@@ -0,0 +1,49 @@
+TIMESTAMP = 1773684398
+SHA256 (zig/v4.21c.tar.gz) = 11f7c77d37cff6e7f65ac7cc55bab7901e0c6208e845a38764394d04ed567b30
+SIZE (zig/v4.21c.tar.gz) = 3004235
+SHA256 (zig/7e65eb4262688a120bf830d145060aac0.tar.gz) = ed670033d925563091323622e465665540abedce999552b7bf04ffd0e2bc050f
+SIZE (zig/7e65eb4262688a120bf830d145060aac0.tar.gz) = 7271
+SHA256 (zig/395c39d5b33d999f6871a90bd731ec112.tar.gz) = 573ce3455468311df43ffa573d6049593d558076b74e8203327eabeca10fca1c
+SIZE (zig/395c39d5b33d999f6871a90bd731ec112.tar.gz) = 6165
+SHA256 (zig/7d2eeb68c8a2fb3f4d6baad6cc04c521b.tar.gz) = 89b234098ebefc8472d8b1e7eda21938c11bc6577f83d58dd62ec941ae68fcd7
+SIZE (zig/7d2eeb68c8a2fb3f4d6baad6cc04c521b.tar.gz) = 13775
+SHA256 (zig/6992eddeb9a4a013886db0cbca2156686.tar.gz) = 442bb2c07ba6cd281a8f5c4863c1211a64a88b44ec928c2d6c6ca2f122ce9beb
+SIZE (zig/6992eddeb9a4a013886db0cbca2156686.tar.gz) = 14688
+SHA256 (zig/8a1cfb373587ea4c9bb1468b7c986462d.tar.gz) = 8ed818e25f2ed3bb77dc8202d003ecd0efa2be198962eca1452e545cbe17aac8
+SIZE (zig/8a1cfb373587ea4c9bb1468b7c986462d.tar.gz) = 16433930
+SHA256 (zig/b96c27a5152b9124d657dee7fb1186d0a.tar.gz) = 7a9bb97d6a5ad6c7d34f29760e1eae9bf0283932fefef51a7b0a60e6e57cb8d1
+SIZE (zig/b96c27a5152b9124d657dee7fb1186d0a.tar.gz) = 301431
+SHA256 (zig/aa24df42183ad415d10bc0a33e6238c43.tar.gz) = 500d9df2df8b44060dac523b0402126c0341e01d77f59101e1335654b8ae25a1
+SIZE (zig/aa24df42183ad415d10bc0a33e6238c43.tar.gz) = 11946
+SHA256 (zig/ab5cf5feb936fa3b72c95d3ad0c0c6779.tar.gz) = 55a2380907da5e30a3a9991d73d5b4a1372a2c2bd508da4dad96c127a10625e9
+SIZE (zig/ab5cf5feb936fa3b72c95d3ad0c0c6779.tar.gz) = 12569
+SHA256 (zig/01c14e592d25dc57dfebba27b8bd2b4aa.tar.gz) = b4fbe30a998c4e112703eb6376bf29c9667f76721fd579e2dde59f0479189a81
+SIZE (zig/01c14e592d25dc57dfebba27b8bd2b4aa.tar.gz) = 100623
+SHA256 (zig/4835b9d3d3cf732fe1830189d81f331c6.tar.gz) = 3bc515f43df0c81404ab27833a8ac08f372c5d8752750efabf0f21a9fa60b781
+SIZE (zig/4835b9d3d3cf732fe1830189d81f331c6.tar.gz) = 100191
+SHA256 (zig/c46ac866dda11ab58e4ba71ed0d8ba21f.tar.gz) = e9ddd03a2cc9eed59e6115de8a5e2d044b2b8e58196fb681e33c8c90ed338a0c
+SIZE (zig/c46ac866dda11ab58e4ba71ed0d8ba21f.tar.gz) = 100880
+SHA256 (zig/fe98e895ca3bd1b39965ab30f0f252f7b.tar.gz) = 46c57bad1922899bfae68e2d30a363061242dc2e808d6f27fc92ea8fe74c92db
+SIZE (zig/fe98e895ca3bd1b39965ab30f0f252f7b.tar.gz) = 100656
+SHA256 (zig/a2ed0cba3b1463217168034ffed8c1604.tar.gz) = fba12453efe9e788644cc3e6fe5c04be25ef4d4f21c4f82e995b9640b71bb383
+SIZE (zig/a2ed0cba3b1463217168034ffed8c1604.tar.gz) = 2926
+SHA256 (zig/50dbab8945440089384f26ec165d870c2.tar.gz) = 18325156728c48236270812947b4a1d24f9767899c771ddd21bfdb99b581fd30
+SIZE (zig/50dbab8945440089384f26ec165d870c2.tar.gz) = 12473
+SHA256 (zig/8cb16babb0c66b6512d6aeb4cbc37ed90.tar.gz) = e1b1846ab9310e406497228578bcbd320ad9ebb760ac95ee6aeb7d540200ad66
+SIZE (zig/8cb16babb0c66b6512d6aeb4cbc37ed90.tar.gz) = 2235403
+SHA256 (zig/530ac6c337c9a9511560fba3181db10d1.tar.gz) = 630b0a5e0afccd5b86b9dff8603629ce24c2802767aba779338c92a93c9a0e9a
+SIZE (zig/530ac6c337c9a9511560fba3181db10d1.tar.gz) = 490017
+SHA256 (zig/67d2d89e351048c76fc6d161e0ac09d8a.tar.gz) = a54d405e7ffadcc5f2e441b361226666e61df1acf3ac18045f2771df0cf26b3f
+SIZE (zig/67d2d89e351048c76fc6d161e0ac09d8a.tar.gz) = 3933
+SHA256 (zig/source.tar.gz) = 93c78e5ae9f600dcd624e6bc5c06a45cde1595d830ce5cb7144498025b1b555c
+SIZE (zig/source.tar.gz) = 42884192
+SHA256 (zig/5822dc06c75b30d53082debf68c90193c.tar.gz) = 2746628447433f64793928fe1a88dcf89d4ac14561af67783fe8fc03115e6645
+SIZE (zig/5822dc06c75b30d53082debf68c90193c.tar.gz) = 2233
+SHA256 (zig/90e4d81a6a8b7b601e8e568da32a105d7f7705e5.tar.gz) = ddbebc8fb7405e7a9177efdfbdf0df18ad02b607311d9e604959c7c0f6236af4
+SIZE (zig/90e4d81a6a8b7b601e8e568da32a105d7f7705e5.tar.gz) = 721379
+SHA256 (zig/46583c4695bade6841a558c0ce5648426.tar.gz) = d7e6ac2d5b6e45f3af073bed1032fb52f773440bf7e3fc4effca4005af6b3c82
+SIZE (zig/46583c4695bade6841a558c0ce5648426.tar.gz) = 39731
+SHA256 (zig/4353b20ef2ac750e35c6d68e4eb2a07c2.tar.gz) = 18e6c8a159abd6b2819e7089a3b01ee346c99ce784cdac9f8ed694923c0eb392
+SIZE (zig/4353b20ef2ac750e35c6d68e4eb2a07c2.tar.gz) = 173775
+SHA256 (zig/kristoff-it-zine-v0.11.2_GH0.tar.gz) = 551e9953b5b07473b66b128f20678aa4a18bf3447a5ab3c7c54d6a203d3a7ae4
+SIZE (zig/kristoff-it-zine-v0.11.2_GH0.tar.gz) = 824759
diff --git a/www/zine-ssg/files/patch-build.zig b/www/zine-ssg/files/patch-build.zig
new file mode 100644
index 000000000000..690f6783a19c
--- /dev/null
+++ b/www/zine-ssg/files/patch-build.zig
@@ -0,0 +1,36 @@
+--- build.zig.orig 2025-11-21 13:41:48 UTC
++++ build.zig
+@@ -309,6 +309,11 @@ pub fn build(b: *std.Build) !void {
+ else => @panic("target must be added to build.zig"),
+ .linux => {},
+
++ .freebsd => {
++ // only added for FreeBSD < 15
++ %INOTIFY_GUARD%zine_exe.linkSystemLibrary("inotify");
++ },
++
+ .windows => {
+ zine_exe.linkSystemLibrary("ws2_32");
+ },
+@@ -519,8 +524,10 @@ fn setupReleaseStep(
+ const targets: []const std.Target.Query = &.{
+ .{ .cpu_arch = .aarch64, .os_tag = .macos },
+ .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl },
++ .{ .cpu_arch = .aarch64, .os_tag = .freebsd },
+ .{ .cpu_arch = .x86_64, .os_tag = .macos },
+ .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .musl },
++ .{ .cpu_arch = .x86_64, .os_tag = .freebsd },
+ .{ .cpu_arch = .x86_64, .os_tag = .windows },
+ .{ .cpu_arch = .aarch64, .os_tag = .windows },
+ };
+@@ -626,6 +633,10 @@ fn setupReleaseStep(
+ switch (target.result.os.tag) {
+ else => @panic("target must be added to build.zig"),
+ .linux => {},
++ .freebsd => {
++ // only added for FreeBSD < 15
++ %INOTIFY_GUARD%zine_exe_release.linkSystemLibrary("inotify");
++ },
+ .windows => {
+ zine_exe_release.linkSystemLibrary("ws2_32");
+ },
diff --git a/www/zine-ssg/files/patch-build.zig.zon b/www/zine-ssg/files/patch-build.zig.zon
new file mode 100644
index 000000000000..e348e5769faf
--- /dev/null
+++ b/www/zine-ssg/files/patch-build.zig.zon
@@ -0,0 +1,13 @@
+--- build.zig.zon.orig 2025-11-21 13:41:48 UTC
++++ build.zig.zon
+@@ -5,8 +5,8 @@
+ .minimum_zig_version = "0.15.0",
+ .dependencies = .{
+ .afl_kit = .{
+- .url = "git+https://github.com/kristoff-it/zig-afl-kit#8ef04d1db48650345dca68da1e1b8f2615125c40",
+- .hash = "afl_kit-0.1.0-NdJ3cvscAACLEvjZTB017IAks_Uq5ux1qpA-klDe384Y",
++ .url = "git+https://github.com/kristoff-it/zig-afl-kit#395c39d5b33d999f6871a90bd731ec112d3995ca",
++ .hash = "afl_kit-0.1.0-NdJ3ch8eAABQkd1wk2W-JDCvvX5Jmnu3uJulS3lPepG7",
+ .lazy = true,
+ },
+ .lsp_kit = .{
diff --git a/www/zine-ssg/files/patch-src_cli_serve.zig b/www/zine-ssg/files/patch-src_cli_serve.zig
new file mode 100644
index 000000000000..ba09a8bb83c0
--- /dev/null
+++ b/www/zine-ssg/files/patch-src_cli_serve.zig
@@ -0,0 +1,10 @@
+--- src/cli/serve.zig.orig 2026-03-13 17:52:18 UTC
++++ src/cli/serve.zig
+@@ -24,6 +24,7 @@ const Watcher = switch (builtin.target.os.tag) {
+ const outside_html = @embedFile("serve/outside.html");
+ const Watcher = switch (builtin.target.os.tag) {
+ .linux => @import("serve/watcher/LinuxWatcher.zig"),
++ .freebsd => @import("serve/watcher/LinuxWatcher.zig"),
+ .macos => @import("serve/watcher/MacosWatcher.zig"),
+ .windows => @import("serve/watcher/WindowsWatcher.zig"),
+ else => @compileError("unsupported platform"),
diff --git a/www/zine-ssg/pkg-descr b/www/zine-ssg/pkg-descr
new file mode 100644
index 000000000000..4c05ac41bcaa
--- /dev/null
+++ b/www/zine-ssg/pkg-descr
@@ -0,0 +1,8 @@
+Zine is a static site generator similar in concept to www/gohugo.
+
+Zine turns your content into HTML, styles it using your layouts, and finally
+copies the result into an output directory that you can then publish on static
+hosting services like GitHub Pages.
+
+Zine has a companion port, devel/superhtml which acts as an LSP for the markdown
+content and HTML layouts.