As I am working on making the Gnus-GSS support ready for general consumption, I need to know how this thing should be distributed.
Right now there are two separate issues, with the second dependent on the first:
The first issue is that I have no idea how to actually distribute the native GSSAPI module. It's just a single, reasonably small, C file that needs to be compiled with the libgssapi_krb5.so library. If this is bundled in Emacs proper, making it a part of the build system isn't too complicated, although I don't believe this has been done before.
If it is to be shipped as part of ELPA, then a different question emerges: Should I simply add code to the Elisp files that checks if it can find the native library and if not, compile it on the fly? It's doable, but I'd hard to reinvent several wheels to do so. Essentially I'd have to rebuild part of autoconf in Elisp.
The second issue is how to ship my changes to Gnus. My changes are limited to a changes to nnimap.el, but this new feature will now try to require the ‘gss’ feature when gssapi authentication is enabled. If the gssapi library is shipped as part of ELPA, then we end up with the interesting situation where the packaged version of Gnus depends on a package in ELPA.
How should I continue with this?