Well that's embarrassing. I made a change to the pkgsrc check-shlibs scripts last November, and only today realised that the change to the macOS script was incomplete, and has since then been returning success for all checks.

https://github.com/NetBSD/pkgsrc/commit/c42c4487ad4731a83d164a5bc1066759940499e3

A good reminder to thoroughly test changes when writing in non-strict languages!

In related news, the latest mktool implements a check-shlibs replacement and runs up to 30x faster than the awk version.

#pkgsrc #mktool #rust #rustlang #oops

mk: Fix previous change to check-shlibs-macho.awk. · NetBSD/pkgsrc@c42c448

Last November I made a change to improve the failure output from both scripts, but while I correctly updated the function arguments in the ELF version, I somehow missed doing so in the Mach-O versi...

GitHub

@plluksie Also just a brief note about #pkgsrc integration.

Despite loving Rust, I do still firmly believe that it should never become a mandatory part of the pkgsrc infrastructure.

I'm one of the most vocal advocates for the continued emphasis on portability in pkgsrc, and Rust simply does not support all of the platforms that pkgsrc does.

That's why #mktool will always be an optional alternative. I will of course though use it across all of my hosts, and will be adding more to it over time!

@plluksie I think my recent post to pkgsrc-users sums up my thoughts on Rust:

https://mail-index.netbsd.org/pkgsrc-users/2024/08/25/msg040053.html

I don't see it integrating into #NetBSD, there is just too much developer velocity against it. That's not a criticism FWIW, different projects have different goals and ideals.

I understand, but am disappointed, that there were objections to integrating my #mktool patches into #pkgsrc, so for now they have to be applied separately.

I definitely see it happening at some point in #illumos.

Re: mktool support for fetch

New cargo-style output for "mktool fetch" that I hacked up last night. Much happier with this compared to the initial multibar implementation I wrote.

Bonus points for all error messages and other output now correctly suspending the progress bar, so everything should print cleanly.

Think it's nearly time for an initial version 1.0.0 release, the #pkgsrc bulk builds using mktool that I've been running are looking good.

#mktool #pkgsrc #rust #rustlang

Latest #mktool adds support for the install-ctf target in #pkgsrc.

Unfortunately the #illumos CTF tooling has some performance issues (https://github.com/jperkin/notes/tree/main/ctfconvert-quadratic) that means converting qemu binaries takes around 3 minutes each. With 31 binaries that makes the install phase take over 90 minutes alone.

"mktool ctfconvert" doesn't speed up each ctfconvert process, but does allow them to be run in parallel, significantly reducing the build time for qemu and others.

It also simplifies some mk logic.

notes/ctfconvert-quadratic at main · jperkin/notes

Notes of various things I am working on. Contribute to jperkin/notes development by creating an account on GitHub.

GitHub

Just performed an initial test of a new feature for #pkgsrc #mktool, a parallel fetch client.

Testing against localhost, so no download speed interference, in wip/grafana, after distclean:

# using single-threaded curl
$ time bmake fetch
real 47m58.062s
user 13m35.410s
sys 33m43.399s

# using mktool
$ time bmake fetch
real 0m4.865s
user 0m5.087s
sys 0m7.445s

Absolutely astonishing performance (yes I had to check it actually did anything!), and currently only just over 200 lines of #rust.

Appreciate any testing from #pkgsrc folks of my proposed checksum patch:

https://mail-index.netbsd.org/tech-pkg/2024/08/06/msg029724.html

With the large number of source distfiles now used by Go packages, we're hitting maximum command line limits (e.g. on NetBSD it is 256K) when verifying checksums.

Also #mktool 0.1.8 now supports checksum, with a nice 4x speedup (would have been bigger but I already optimised checksum.awk a few years ago).

checksum argmax fix

First working release of #mktool, a #Rust utility for replacing various parts of #pkgsrc mk/ infrastructure.

https://github.com/jperkin/mktool

The first command to be implemented is "distinfo", a replacement for pkgsrc's distinfo.awk that improves performance by over 100x on my test host.

Hoping to have support for integrating this into pkgsrc soon, but for now you have to apply this trivial patch manually:

https://github.com/TritonDataCenter/pkgsrc/commit/18c7342525f6a6ab23531ec48be98936984d312b

Obvious next candidate is a replacement for checksum.awk.

GitHub - jperkin/mktool: pkgsrc mk helper tool

pkgsrc mk helper tool. Contribute to jperkin/mktool development by creating an account on GitHub.

GitHub