libmilter-sendmail: the sendmail mail filter API library

The sendmail Mail Filter API (Milter) is designed to allow third-party
programs access to mail messages as they are being processed in order to
filter meta-information and content.

This library is a prerequisite for the OpenDKIM package.

The proposed Makefile also contains sections for building Sendmail. These
sections are commented out because more work is necessary to properly
complete porting of Sendmail to LEDE/OpenWrt. The notes in Makefile
provide details on what is required to complete the port.

It has been verified that Sendmail executables compile and run properly
on the target system when the commented sections in Makefile are
uncommented.

Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
This commit is contained in:
Val Kulkov
2017-05-19 00:51:35 -04:00
parent 84a8a67552
commit 0790b54ed1
11 changed files with 513 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
define(`confDEPEND_TYPE', `CC-M')
define(`confCCOPTS_SO', `-fPIC')
define(`confSM_OS_HEADER', `sm_os_linux')
define(`confLIBS', `-ldl')
define(`confEBINDIR', `/usr/sbin')
define(`confMKDIR', `mkdir')
APPENDDEF(`confLIBSEARCH', `crypt nsl')
define(`confMTCCOPTS', `-D_REENTRANT')
define(`confMTLDOPTS', `-lpthread')
define(`confLDOPTS_SO', `-shared')
define(`confSONAME',`-soname')
define(`currentuser', esyscmd(`id -nu'))
define(`currentgroup', esyscmd(`id -ng'))
define(`confDONT_INSTALL_CATMAN',)
define(`confNO_MAN_BUILD',)
define(`confINCOWN', currentuser)
define(`confINCGRP', currentgroup)
define(`confINCMODE', `644')
define(`confLIBOWN', currentuser)
define(`confLIBGRP', currentgroup)
define(`confLIBMODE', `644')
define(`confMBINOWN', currentuser)
define(`confMBINGRP', currentgroup)
define(`confMBINMODE', `750')
define(`confSBINOWN', currentuser)
define(`confSBINGRP', currentgroup)
define(`confSBINMODE', `755')
define(`confUBINOWN', currentuser)
define(`confUBINGRP', currentgroup)
define(`confUBINMODE', `755')
define(`confGBINOWN', currentuser)
define(`confGBINGRP', currentgroup)
define(`confGBINMODE', `755')
define(`confMSPQOWN', currentuser)
ifelse(confBLDVARIANT, `DEBUG',
dnl Debug build
`
define(`confOPTIMIZE',`-g -Wall')
',
dnl Optimized build
confBLDVARIANT, `OPTIMIZED',
`
define(`confOPTIMIZE',`-O2')
',
dnl Purify build
confBLDVARIANT, `PURIFY',
`
define(`confOPTIMIZE',`-g')
',
dnl default
`
define(`confOPTIMIZE',`-O2')
')
+9
View File
@@ -0,0 +1,9 @@
#include <stdio.h>
#include "libmilter/mfapi.h"
int main() {
printf("%d.%d.%d",
SM_LM_VRS_MAJOR(SMFI_VERSION),
SM_LM_VRS_MINOR(SMFI_VERSION),
SM_LM_VRS_PLVL(SMFI_VERSION)
);
}
+25
View File
@@ -0,0 +1,25 @@
divert(0)dnl
include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
bldPUSH_TARGET(bldCURRENT_PRODUCT.so.confSOVER)dnl
bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
divert(bldTARGETS_SECTION)
bldCURRENT_PRODUCT.so.confSOVER: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
${LD} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so.confSOVER confSONAME bldCURRENT_PRODUCT.so.confSOVER ${bldCURRENT_PRODUCT`OBJS'}
ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so.confSOVER
ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${LIBDIR} ]; then confMKDIR -p ${DESTDIR}${LIBDIR}; else :; fi ')
${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.confSOVER ${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so
${INSTALL} -c -m 644 bldCURRENT_PRODUCT.so.confSOVER ${DESTDIR}${LIBDIR}')
bldCURRENT_PRODUCT-clean:
rm -f ${OBJS} bldCURRENT_PRODUCT.so* ${MANPAGES}
divert(0)
COPTS+= confCCOPTS_SO
+5
View File
@@ -0,0 +1,5 @@
define(`confCC', `TARGET_CC')
define(`confCCOPTS', `TARGET_CFLAGS')
APPENDDEF(`confENVDEF',`-DSTARTTLS')
APPENDDEF(`confLIBS', `-lssl -lcrypto')