From: Jeremy Harris Date: Sun, 18 Aug 2024 14:28:38 +0000 (+0100) Subject: auth_spa and plainext as dynamic modules X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/747736dc83324875bd6339f97f492747a3ad7fe5 auth_spa and plainext as dynamic modules --- diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 3abf799dc..a5a8bd5f3 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -14,9 +14,8 @@ Version 4.98 3. Events smtp:fail:protocol and smtp:fail:syntax - 4. JSON lookup support, all the router drivers, all the - transport drivers except smtp, and all the authenticator drivers except - plaintext, gsasl and spa can now be built as loadable modules + 4. JSON lookup support, all the router and authenticator drivers, and all the + transport drivers except smtp, can now be built as loadable modules Version 4.98 ------------ diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base index d80adf37f..05979f6cb 100644 --- a/src/OS/Makefile-Base +++ b/src/OS/Makefile-Base @@ -514,6 +514,9 @@ OBJ_ROUTERS = routers/rf_change_domain.o routers/rf_expand_data.o \ routers/rf_get_munge_headers.o routers/rf_get_transport.o \ routers/rf_get_ugid.o routers/rf_lookup_hostlist.o \ routers/rf_queue_add.o routers/rf_self_action.o routers/rf_set_ugid.o +OBJ_AUTHS = auths/auth-spa.o auths/call_pam.o auths/call_pwcheck.o \ + auths/call_radius.o auths/check_serv_cond.o auths/get_data.o \ + auths/get_no64_data.o auths/pwcheck.o OBJ_EXIM = acl.o base64.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \ directory.o dns.o drtables.o enq.o exim.o expand.o filter.o \ @@ -524,7 +527,7 @@ OBJ_EXIM = acl.o base64.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \ route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o \ std-crypto.o store.o string.o tls.o tod.o transport.o tree.o verify.o \ xtextencode.o environment.o macro.o \ - $(OBJ_LOOKUPS) $(OBJ_ROUTERS) \ + $(OBJ_LOOKUPS) $(OBJ_ROUTERS) $(OBJ_AUTHS) \ local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \ $(OBJ_EXPERIMENTAL) @@ -924,6 +927,7 @@ drtables.o: $(HDRS) drtables.c $(OBJ_LOOKUPS): buildlookups $(OBJ_ROUTERS): buildrouters +$(OBJ_AUTHS): buildauths # The exim monitor's private modules - the sources live in a private # subdirectory. The final binary combines the private modules with some diff --git a/src/src/EDITME b/src/src/EDITME index b930f00a7..3353a4239 100644 --- a/src/src/EDITME +++ b/src/src/EDITME @@ -321,7 +321,6 @@ SPOOL_DIRECTORY=/var/spool/exim # add -ldl to EXTRALIBS so that dlopen() is available to Exim. You need to # define CFLAGS_DYNAIC and LOOKUP_MODULE_DIR below so the builds are done right, # and so the exim binary actually loads dynamic lookup modules. -# MANUALROUTE cannot currently be built as a module. ROUTER_ACCEPT=yes ROUTER_DNSLOOKUP=yes @@ -838,9 +837,8 @@ FIXED_NEVER_USERS=root # # Libraries being built as modules should be added to respective # LOOKUP_*_INCLUDE and LOOKUP_*_LIBS rather than the the ones for the -# core exim build. This gets them linked with the module instead -# Only the cram_md5, cyrus_sasl, dovecot, external and tls builds for modules -# are known to work. The heimdal does build, but we have no test coverage. +# core exim build. This gets them linked with the module instead. +# The heimdal does build but we have no test coverage so it is not know to work. # AUTH_CRAM_MD5=yes # AUTH_CYRUS_SASL=yes diff --git a/src/src/auths/Makefile b/src/src/auths/Makefile index fa60acba9..5d8c8a001 100644 --- a/src/src/auths/Makefile +++ b/src/src/auths/Makefile @@ -14,10 +14,10 @@ # MAGIC-TAG-MODS-OBJ-RULES-GO-HERE -OBJ += auth-spa.o call_pam.o call_pwcheck.o call_radius.o check_serv_cond.o \ +AF_OBJ = auth-spa.o call_pam.o call_pwcheck.o call_radius.o check_serv_cond.o \ get_data.o get_no64_data.o pwcheck.o -all: auths.a $(MODS) +all: $(AF_OBJ) auths.a $(MODS) auths.a: $(OBJ) @$(RM_COMMAND) -f auths.a