h.b.furuseth@usit.uio.no wrote:
Full_Name: Hallvard B Furuseth Version: HEAD OS: URL: Submission from: (NULL) (129.240.6.233) Submitted by: hallvard
slapd.conf(5)'s moduleload description should say which filename a module has: foo.so or foo.la. (Or worse - is that different on different OSes? Windows, anyone?)
"foo.la" will work on all platforms. The actual shared object that the .la file points to may have different naming conventions on different platforms.
It should say where the standard installed modules are found.
Also that is a default modulepath which as far as I can tell from strace includes the standard installation directory and the system loader's standard load path. And again, is it OS-dependent? It uses libtool's lt_dlopenext(), I haven't looked for what it does yet.
I would expect that of course yes, the system loader's standard path is OS-dependent.
slapd.plugin(5) should mention that slapi itself is a module which may need to be loaded. And that it's "slapi.la", not "plugin.la".
The chain and distproc overlays are not found in<overlay>.la but in back_ldap.la. This should be documented. I suggest a "moduleload back_ldap.la" statement before all the other directives, with explanation.
However, even if documented, people will miss that. One does't look for doc about what one already "knows".
The simplest and maybe most informative fix would be to add dummy modules which simply give an error message that the overlays are found in the back_ldap module.
When the software knows exactly what must be done, failing with an error message is just annoying. If we were to do anything here at all, dummy modules would better be replaced by symlinks to the actual module, so that It Just Works. But I think just noting the discrepancy in the documentation is sufficient.
An alternative would be to move them to separate modules which depend on back-ldap - and document their dependency on back-ldap. More correct I guess, but personally I don't see how it's an improvement. That might just be because I have had little to do with maintaining binary distributions though.
I don't think it's an improvement either.
A third would be to store a module registry where module names are mapped to one or more module filenames to load. Overkill? More general, but also more complex.
Yes, overkill. And there are probably more modules out there than we would ever know about for a registry, so ultimately not useful.