Sunday, October 08, 2023

NEW mail/himalaya (after unlock)

Hi ports,

I wanted to try out Himalaya [0], so I ported it. I didn't find it much
usable for myself, but might be useful for some of you, so here it is.
Given it isn't something I'll be using, I won't take MAINTAINER for it.

It's my first time dealing with a Rust port. The docs for the module are
a bit rough around the edges. I don't know why I had to define

MODCARGO_CRATES_KEEP += libsqlite3-sys

but it wouldn't make it compile without it. I copied it over from
another port after noticing that it's a somewhat common pattern in the
ports that use Rust and SQLite. There are also some undocumented
variables; one that particularly standed out is
MODCARGO_NO_DEFAULT_FEATURES, while the "counterpart" MODCARGO_FEATURES
is documented.

The workflow for getting crates.inc properly set up is a bit sketchy.
If anybody is looking for hints, I *believe* I went with

1. make makesum
2. make extract
3. make modcargo-gen-crates | sed 1d >crates.inc
# the first line is a reminder to run modcargo-gen-crates-licenses
# afterwards.
4. make makesum # again, because now it needs to fetch the crates
5. make extract # again, because new things downloaded
6. make modcargo-gen-crates-licenses >tmp && mv tmp crates.inc

Also, I'm not super sure if I'm missing a LDEP on sqlite3. Didn't hear
any complain from make port-lib-depends-check.

Lucas

No comments:

Post a Comment