[exim] FreeBSD exim spf question

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: B. Cook
Ημερομηνία:  
Προς: Exim users list
Αντικείμενο: [exim] FreeBSD exim spf question
I originally posted this message back in march..
http://www.exim.org/mailman/htdig/exim-users/Week-of-Mon-20050228/msg00198.html

and I got some private responses with steps to remedy the problem,
something about the FreeBSD port not being correct w/ spf.

I tried following the same steps on 4.52 (again freebsd port) and
I'm coming up w/ different results.

exim -bV
Exim version 4.50 #0 (FreeBSD 5.3) built 11-Mar-2005 15:21:48
Copyright (c) University of Cambridge 2004
Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() OpenSSL Content_Scanning Old_Demime
Experimental_SPF
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz
dnsdb dsearch mysql
Authenticators: plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: pipe smtp
Fixed never_users: 0
Configuration file is /usr/local/etc/exim/configure

Doing a standard make with WITH_SPF=YES defined in /etc/make.conf
gets me this:

===> Building for exim-mysql-4.52
`Makefile' is up to date.
(etc)

cc spf.c
spf.c: In function `spf_open':
spf.c:36: error: `SPF_server_t' undeclared (first use in this function)
(etc..)
spf.c:54: error: `spf_response' undeclared (first use in this function)
*** Error code 1

Stop in
/usr/ports/mail/exim-mysql/work/exim-4.52/build-FreeBSD-i386/lookups.
*** Error code 1

(this tells me that the FreeBSD port w/ spf enabled isn't working as
far as exim is concerned)

so I look at the error..
[/usr/ports/mail/exim-mysql/work/exim-4.52/build-FreeBSD-i386/lookups]# 
18 > cc spf.c
In file included from ../exim.h:437,
                  from spf.c:20:
../spf.h:17:22: spf2/spf.h: No such file or directory
../spf.h:19:33: spf2/spf_dns_resolv.h: No such file or directory
../spf.h:20:32: spf2/spf_dns_cache.h: No such file or directory


Like before I edit the work/exim-4.52/Local/Makefile

Uncomment to match this:
     EXPERIMENTAL_SPF=yes
     CFLAGS  += -I/usr/local/include
     LDFLAGS += -lspf2


(doing a locate spf.h tells me that /usr/local/include/spf2/spf.h is
there.. and pkg_info -W tells me that it's part of the libspf2-1.0.4
package)

Then go back to work/exim-4.52 and do a make clean then cd ../../
and make again only to have the same thing happen again..

...
cc passwd.c
cc pgsql.c
cc spf.c
spf.c: In function `spf_open':
spf.c:36: error: `SPF_server_t' undeclared (first use in this function)
spf.c:36: error: (Each undeclared identifier is reported only once
(etc)

[/usr/ports/mail/exim-mysql/work/exim-4.52/build-FreeBSD-i386/lookups]# 
31 > cc spf.c
In file included from ../exim.h:437,
                  from spf.c:20:
../spf.h:17:22: spf2/spf.h: No such file or directory
../spf.h:19:33: spf2/spf_dns_resolv.h: No such file or directory
../spf.h:20:32: spf2/spf_dns_cache.h: No such file or directory
In file included from spf.c:20:
../exim.h:450:19: iconv.h: No such file or directory



I see that other people were talking about devel libspf2, freebsd
has libspf2-1.0.4 is that the problem? Or am I leaving out a step?

(current uname -r is 5.4-RELEASE-p6)

lines 565 - 567 in doc/experimental-spec.txt says:

565 EXPERIMENTAL_SPF=yes
566 CFLAGS=-DSPF -I/usr/local/include
567 EXTRALIBS_EXIM=-L/usr/local/lib -lspf2

below is what is in the work/exim-4.52/Local/Makefile:

> egrep -v "#" Local/Makefile | sort

AUTH_PLAINTEXT=yes
BIN_DIRECTORY=/usr/local/sbin
CFLAGS += -I/usr/local/include
CFLAGS=-O2 -pipe -march=pentium2 -DSPF
COMPRESS_COMMAND=/usr/bin/gzip
COMPRESS_SUFFIX=gz
CONFIGURE_FILE=/usr/local/etc/exim/configure
EXICYCLOG_MAX=10
EXIM_GROUP=mail
EXIM_USER=ref:mailnull
EXPERIMENTAL_SPF=yes
EXTRALIBS= -L/usr/local/lib -liconv -lspf2
FIXED_NEVER_USERS=root
HAVE_ICONV=yes
HAVE_ICONV=yes
HEADERS_CHARSET="ISO-8859-1"
INCLUDE=-I/usr/local/include
INFO_DIRECTORY=/usr/local/info
LDFLAGS += -lspf2
LOG_FILE_PATH=/var/log/exim/%slog
LOOKUP_CDB=yes
LOOKUP_DBM=yes
LOOKUP_DNSDB=yes
LOOKUP_DSEARCH=yes
LOOKUP_INCLUDE=-I/usr/local/include/mysql
LOOKUP_LIBS=-L/usr/local/lib/mysql -lmysqlclient
LOOKUP_LSEARCH=yes
LOOKUP_MYSQL=yes
PID_FILE_PATH=/var/run/exim.pid
ROUTER_ACCEPT=yes
ROUTER_DNSLOOKUP=yes
ROUTER_IPLITERAL=yes
ROUTER_MANUALROUTE=yes
ROUTER_QUERYPROGRAM=yes
ROUTER_REDIRECT=yes
SPOOL_DIRECTORY=/var/spool/exim
SUPPORT_TLS=yes
SYSLOG_LOG_PID=yes
SYSTEM_ALIASES_FILE=/etc/aliases
TLS_LIBS=-lssl -lcrypto
TMPDIR="/tmp"
TRANSPORT_APPENDFILE=yes
TRANSPORT_AUTOREPLY=yes
TRANSPORT_PIPE=yes
TRANSPORT_SMTP=yes
WITH_CONTENT_SCAN=yes
WITH_OLD_DEMIME=yes
ZCAT_COMMAND=/usr/bin/zcat

I'm sure I'm just missing something small.. but I can't seem to
figure out what it is..