Dovecot: build with GSSAPI support (package change only) #290
Labels
No labels
bug
enhancement
in-progress
needs-info
needs-triage
p0
ready-for-agent
ready-for-human
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/nixos#290
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #266. Build Dovecot with GSSAPI support on
mail. Package change only — no configuration change, no behaviour change. Enabling the mechanism is the follow-up issue, and it cannot start until this is verified.Why it is split this way
auth_mechanisms = plain gssapiwith GSSAPI not compiled in is a fatal Dovecot startup error — that is mail down, not degraded. So the build lands and is proven first, entirely inert, before any config references the mechanism.Confirmed starting state
dovecot-2.3.19.1's auth binary links no krb5:nixpkgs'
pkgs/by-name/do/dovecot/generic.nixonnixos-26.05— the channelhosts/mail/channelpins — has no kerberos inbuildInputs, no--with-gssapiinconfigureFlags, and exposes nowithGSSAPIargument..overridetherefore cannot help; the derivation's attributes have to be extended.Scope
Add
krb5tobuildInputsand--with-gssapi=yestoconfigureFlagson the dovecot 2.3 packagemailruns. Use=yes(linked into the auth binary, which is what the verification below checks) rather than=plugin.Nothing else changes.
auth_mechanisms, the LDAP passdb,auth_bindand every other Dovecot setting stay exactly as they are.The pigeonhole trap — this is how this change breaks mail
hosts/mail/modules/dovecot.nix:263installsconfig.services.dovecot2.package.dovecot_pigeonhole, and the comment directly above it records that a dovecot/pigeonhole version mismatch already broke sieve/managesieve on this host once.A naive
overrideAttrscan leave apassthrustill pointing at the un-overridden dovecot, which would install sieve modules built against a different binary. Establish which mechanism actually propagates rather than assuming: an overlay replacingdovecot_2_3is more likely to than an inlineoverrideAttrsat theservices.dovecot2.packagesite.mailcurrently defines nonixpkgs.overlays;hosts/nbandhosts/web-armshow the in-repo pattern for adding one.Cost, for context
One C autotools project — roughly 5–10 minutes on this host, no JVM, no Node, no Python. Nix rebuilds it only when the derivation changes, i.e. when the channel moves dovecot: a few times a year on 26.05, not on every bento rebuild. If the build ever fails after an upstream bump,
mailstays on its previous generation — stale rather than down — so leave a comment explaining the override for whoever hits that.Out of scope — all of it belongs to the follow-up
imap/imap.cloonar.comservice principal and its keytabauth_mechanisms,auth_krb5_keytab,auth_username_formatnbor in ThunderbirdVerification
scripts/pre-commitdry-buildsmail.Human, after deploy — the first two are the gate for starting the follow-up:
readlink -f $(command -v sieve-test)must resolve under the same dovecot store path as above.systemctl status dovecot2clean; send and receive mail normally.Rollback is reverting the commit.
Dovecot GSSAPI: build with kerberos and accept Kerberos tickets for IMAP (experiment)to Dovecot: build with GSSAPI support (package change only)