за то, что для прикручивания её к Exim, оного требуется пересобрать.
Однако, путем курения плагина от спамассасина был выработан метод борьбы, который и представляется на ваше конструктивное обозрение.
Все нижеследующее подразумевает дистрибутив Debian Lenny и спамооборону 3.2.1
Итак: в отдельном каталоге создаем Makefile
Код: Выделить всё
VERSION=3.2.1 # Здесь ставим версию спамообороны
CC=gcc
CFLAGS=-O2 -Wall -fPIC
LDFLAGS=-shared -rdynamic -ldl
EXIM_SRC= /usr/include/exim4
SUFF=-$(VERSION)
BUILDCFLAGS=-I$(EXIM_SRC) -DDLOPEN_LOCAL_SCAN $(SAFLAGS) $(CFLAGS)
SONAME=$(subst .so,$(SUFF).so,so-exim.so)
OBJECTS=$(SONAME)
all: $(OBJECTS)
$(SONAME) : so-exim.c
@echo "Building $@"
$(CC) $(BUILDCFLAGS) $(LDFLAGS) -o $@ $<
chmod a+rx $(SONAME)
clean:
@-rm -rf $(OBJECTS)
устанавливаем пакеты build-essential и exim4-dev
в файл local_scan.c поставляемый со спамообороной добавляем в конец следующие строки:
Код: Выделить всё
/* Return the verion of the local_scan ABI, if being compiled as a .so */
int local_scan_version_major(void)
{
return LOCAL_SCAN_ABI_VERSION_MAJOR;
}
int local_scan_version_minor(void)
{
return LOCAL_SCAN_ABI_VERSION_MINOR;
}
/* Left over for compatilibility with old patched exims that didn't have
a version number with minor an major. Keep in mind that it will not work
with older exim4s (I think 4.11 is required) */
#ifdef DLOPEN_LOCAL_SCAN_OLD_API
int local_scan_version(void)
{
return 1;
}
#endif
make
в результате получаем файл so-exim-3.2.1.so
strip so-exim-3.2.1.so
cp so-exim-3.2.1.so /usr/lib/exim4/local_scan
cd /usr/lib/exim4/local_scan
ln -s so-exim-3.2.1.so so-exim.so
/etc/exim4/conf.d/main/15_so-exim_plugin_path
Код: Выделить всё
local_scan_path = /usr/lib/exim4/local_scan/so-exim.so