A script written for upstream that requires vnd.stalwart.expressions or vnd.stalwart.while keeps running after a move to INBUXA, since scripts are stored compiled. But it can't be saved again once edited: the old name parses as an unknown extension, and let or eval then fails with "Undeclared capability 'vnd.inbuxa.expressions'". Both spellings now parse to the same capability. Only the INBUXA names are advertised.
1.9 KiB
sieve-rs, vendored
The published sieve-rs 0.7.3, taken
from crates.io under AGPL-3.0-only, with the upstream project's name taken
out of the identifiers it spells into the Sieve language (docs/spec/SPEC.md
§2.4). The root Cargo.toml patches it in with [patch.crates-io].
Changes
Every changed file carries the AGPL 5(a) notice in its header.
src/compiler/grammar/mod.rs: the extensions scriptsrequireand ManageSieve advertises arevnd.inbuxa.whileandvnd.inbuxa.expressions. The pre-renamevnd.stalwart.*spellings are still accepted, never advertised, so a script written for upstream compiles when it's edited. Without them, the name is treated as an unknown extension andletorevalfails with "Undeclared capability". Thelegacy_extension_namestests cover both.src/runtime/mod.rs: the defaultenvironment "name"isinbuxa Sieve(the server sets its own name on both of its runtimes anyway), and the test-only capability isvnd.inbuxa.testsuite.src/lib.rs: the test-suite environment variables arevnd.inbuxa.*.Cargo.toml: the example target is dropped, with the top-levelexamples/andtests/, which the server never builds. (src/keeps its owntestsmodules: the crate declares them.)
Updating
When the server's Cargo.lock moves sieve-rs to a new version, Cargo stops
using this copy and only warns that the patch went unused. The unit test
sieve_extensions_carry_the_fork_name in crates/common fails when that
happens. Re-vendor the new version from ~/.cargo/registry/src/*/sieve-rs-*,
dropping the top-level tests/ and examples/ (only those: rsync --exclude /tests --exclude /examples), Cargo.lock and Cargo.toml.orig, repeat
the changes above, and update the version here and in the root Cargo.toml
comment. tools/fork/name-check.py covers vendor/ too, so a rename missed
in a new version fails CI.