Date: Fri, 27 Mar 2026 19:49:33 +0000 From: Adam Weinberger <adamw@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Dave Marker <dave@freedave.net> Subject: git: e93d209b4fac - main - www/zine-ssg: Add port Message-ID: <69c6df4d.203a3.3bafb3bb@gitrepo.freebsd.org>
index | next in thread | raw e-mail
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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69c6df4d.203a3.3bafb3bb>
