On 2026/07/06 12:39, Matt Klein wrote:
> Hello,
>    Please find Attached, a new port archivers/mkz that I published at:
> https://github.com/gitspoked/mz called `mkz` and also in rust/crates.rio.
> I am looking to push to ports.
> 
> TLDR: `mkz` is a tar-style archiver whose backend is a reversible, schema-free
> auto-columnar transform (autocol) followed by zstd. It is not a new
> compressor: the transform reshapes line-oriented data (logs, CSV, JSONL)
> so zstd sees per-column-homogeneous streams. Its product is measurably
> smaller on that kind of data, and behind a per-block never-worse gate.
> Provably never larger than zstd alone. Archives carry an end-to-end SHA-256,
> verified on extract.
> 
> This is a pure-C upstream build: six C files, depends on libzstd only;
> we have vendored SHA-256 and base-95. It is byte-compatible in both
> directions with the Rust reference implementation, and the wire format
> is specified: https://github.com/gitspoked/mkz/blob/main/FORMAT.md
> 
> Tested on 7.9/arm64: distinfo reproduces from the hosted release
> tarball via the the framework fetch; make / make fake / make package /
> make test  upstream's three test programs --
> port-lib-depends-check all clean; portcheck clean.
>     - attached: mkz-obsd-port.tgz.  digest 9a7fe784…
>     - exact tarball was revalidated
> 
> The C port was made from the Rust implementation with an OpenBSD first-target
> I know how vigorously accountable you hold security standards to
> within this circle.
> I figured, before I submitted to any other ports trees, why not see if
> we can break it
> apart here first, to be sure.
> 
> I am upstream and listed on MAINTAINER; I am happy to take feedback and
> keep the port current. Please let me know if you have any questions. Thx
> 
> Thank you,
> Matt Klein
> [email protected]
> [email protected]

: # mkz is dual-licensed MIT OR Apache-2.0.
: PERMIT_PACKAGE =      Yes

ports Makefiles aren't meant to be chatty; just use

# MIT OR Apache-2.0
PERMIT_PACKAGE =        Yes

: # Links libc and libzstd only (SHA-256 and base-95 are vendored).

I'd drop that too

: WANTLIB =             c zstd
: 
: SITES =               
https://github.com/gitspoked/mkz/releases/download/v${V}/
: 
: # The release tarball extracts to mkz-c/ (the pure-C tree), not ${DISTNAME}/.
: WRKSRC =              ${WRKDIR}/mkz-c

should be WRKDIST not WRKSRC

also needs FIX_EXTRACT_PERMISSIONS = Yes due to restrictive file modes
in the tar

: LIB_DEPENDS =         archivers/zstd
: 
: # Plain handful of C files - no configure, and no GNU make needed
: # for the port build.

it's simpler for upgrades if you use the standard project's build/test/
install infrastructure, which isn't hard to do, and needs no additional
deps.

PLIST should be generated with "make plist" (which adds annotations to
binaries, amongst other things).

not a big fan of the asciified em-dashes in DESCR.

suggested alternative tgz attached.

Attachment: mkz.tgz
Description: application/tar-gz

Reply via email to