Re: [exim] [exim-dev] DKIM support

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: snowcrash+exim-users
Ημερομηνία:  
Προς: Tom Kistner
Υ/ο: exim-users
Αντικείμενο: Re: [exim] [exim-dev] DKIM support
hi tom,

getting it built on osx 10.4.10 w/ an external openssl ...

cd /build/libdkim-1.0.15-tk/src

perl -pi -e 's/^LIBS.*=.*$/LIBS    = -L\/usr\/local\/ssl\/lib
-lcrypto/g' Makefile
perl -pi -e 's/^INCL.*=.*$/INCL    = -I\/usr\/local\/ssl\/include/g'
   Makefile


make clean
make
    g++ -c -c dkim.cpp
    g++ -c -c dns.cpp
    dns.cpp: In function 'int _DNSGetPolicy(const char*, char*, int)':
    dns.cpp:56: error: 'PACKETSZ' was not declared in this scope
    dns.cpp:66: error: 'C_IN' was not declared in this scope
    dns.cpp:66: error: 'T_TXT' was not declared in this scope
    dns.cpp:66: error: 'answer' was not declared in this scope
    dns.cpp:81: error: 'HFIXEDSZ' was not declared in this scope
    dns.cpp:89: error: 'QFIXEDSZ' was not declared in this scope
    dns.cpp:101: error: 'RRFIXEDSZ' was not declared in this scope
    dns.cpp:105: error: 'RRFIXEDSZ' was not declared in this scope
    dns.cpp: In function 'int _DNSGetKey(const char*, char*, int)':
    dns.cpp:143: error: 'PACKETSZ' was not declared in this scope
    dns.cpp:154: error: 'C_IN' was not declared in this scope
    dns.cpp:154: error: 'T_TXT' was not declared in this scope
    dns.cpp:154: error: 'answer' was not declared in this scope
    dns.cpp:169: error: 'HFIXEDSZ' was not declared in this scope
    dns.cpp:177: error: 'QFIXEDSZ' was not declared in this scope
    dns.cpp:189: error: 'RRFIXEDSZ' was not declared in this scope
    dns.cpp:193: error: 'RRFIXEDSZ' was not declared in this scope
    make: *** [dns.o] Error 1


# cref: http://en.wikipedia.org/wiki/OpenSSL#FIPS_140-2_compliance
perl -pi -e 's/^CFLAGS.*=.*$/CFLAGS = -c -DBIND_8_COMPAT
-DOPENSSL_FIPS/g' Makefile

make clean
make
    g++ -c -DBIND_8_COMPAT -DOPENSSL_FIPS -c dkim.cpp
    g++ -c -DBIND_8_COMPAT -DOPENSSL_FIPS -c dns.cpp
    g++ -c -DBIND_8_COMPAT -DOPENSSL_FIPS -c dkimbase.cpp
    g++ -c -DBIND_8_COMPAT -DOPENSSL_FIPS -c dkimsign.cpp
    g++ -c -DBIND_8_COMPAT -DOPENSSL_FIPS -c dkimverify.cpp
    dkimverify.cpp: In member function 'int SelectorInfo::Parse(char*)':
    dkimverify.cpp:1202: error: invalid conversion from 'const unsigned
char**' to 'unsigned char**'
    dkimverify.cpp:1202: error:   initializing argument 2 of 'EVP_PKEY*
d2i_PUBKEY(EVP_PKEY**, unsigned char**, long int)'
    make: *** [dkimverify.o] Error 1


hm? aha ...

perl -pi -e 's/^.*g\+\+.*\$\(CFLAGS\).*$/\tg\+\+ \$\(CFLAGS\)
\$\(INCL\) -c \$\</g' Makefile

make clean
make
make install
ls -al ../lib/libdkim.a ../include/dkim.h
    -rw-r--r-- 1 root 1000   7762 Sep 28 08:09 ../include/dkim.h
    -rw-r--r-- 1 root 1000 360804 Sep 28 08:09 ../lib/libdkim.a



so, in summary,

diff -ur MakefileORIG Makefile
    ===================================================================
    --- MakefileORIG    2007-09-28 08:11:01.000000000 -0700
    +++ Makefile    2007-09-28 08:11:23.000000000 -0700
    @@ -1,11 +1,11 @@
     # libdkim makefile for UNIX

    
     #

    
    
    
    -CFLAGS  = -c

    
    +CFLAGS  = -c -DBIND_8_COMPAT -DOPENSSL_FIPS
     LFLAGS  =

    
    -LIBS    = -lcrypto -lresolv

    
    +LIBS    = -L/usr/local/ssl/lib -lcrypto

    
    
    -INCL    = -I /usr/include/openssl/

    
    +INCL    = -I/usr/local/ssl/include

    
    
     SRCS = dkim.cpp dns.cpp dkimbase.cpp dkimsign.cpp dkimverify.cpp

    
    
    
    @@ -21,7 +21,7 @@
        ranlib libdkim.a

    
    
    
     .cpp.o:

    
    -    g++ $(CFLAGS) -c $<

    
    +    g++ $(CFLAGS) $(INCL) -c $<

    
    
     clean:

    
        rm  *.o libdkim.a
    ===================================================================