# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../libdkim/enable-linux.patch # Copyright (C) 2009 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- This patch modifies Alt-N's libdkim package to compile on Linux. This has only been tested on Gentoo linux. Installation instructions: % wget http://downloads.sourceforge.net/libdkim/libdkim-1.0.19.zip % wget http://www.bltweb.net/qmail/libdkim-1.0.19-linux.patch % unzip libdkim-1.0.19 % cd libdkim/src % patch -p2 < ../../libdkim-1.0.19-linux.patch diff -Naur libdkim.orig/src/Makefile libdkim/src/Makefile --- ./Makefile 2009-03-24 08:38:48.000000000 -0500 +++ ./Makefile 2009-03-24 08:39:55.000000000 -0500 @@ -1,15 +1,10 @@ # libdkim makefile for UNIX # -#ifdef LINUX -CFLAGS = -c -LFLAGS = +DESTDIR ?= / + +CFLAGS += -fPIC LIBS = -lcrypto -lresolv -#else -CFLAGS = -c -LFLAGS = -LIBS = -lcrypto -#endif INCL = -I /usr/include/openssl/ @@ -19,23 +14,35 @@ HDRS = dkim.h dns.h dkimbase.h dkimsign.h dkimverify.h -all: libdkim.a libdkimtest +all: libdkim.so.1 libdkimtest libdkim.a: $(OBJS) rm -f libdkim.a ar cr libdkim.a $(OBJS) ranlib libdkim.a -libdkimtest : libdkim.a libdkimtest.o - g++ -olibdkimtest $(LFLAGS) \ - -L . libdkimtest.o $(LIBS) -ldkim +libdkim.so.1: $(OBJS) + $(CXX) -shared -Wl,-soname,$@.1 $(LDFLAGS) $(OBJS) -o $@ $(LIBS) + ln -s $@ libdkim.so + +.cpp.o: + $(CXX) $(CFLAGS) -c $< + +libdkimtest : libdkim.so.1 libdkimtest.o + $(CXX) -o$@ $(LDFLAGS) \ + -L. libdkimtest.o $(LIBS) -ldkim libdkimtest.o: libdkimtest.cpp $(HDRS) -.cpp.o: - g++ $(CFLAGS) -c $< clean: - rm *.o libdkim.lib libdkimtest + rm -f *.o libdkim.{a,so,so.1} libdkimtest + +install: all + install -D -m 0755 libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so.1 + ln -s libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so + ln -s libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so.1.1 + install -D -m 0644 dkim.h $(DESTDIR)/usr/include/dkim.h + install -D -m 0755 libdkimtest $(DESTDIR)/usr/bin/libdkimtest diff -Naur libdkim.orig/src/dkim.h libdkim/src/dkim.h --- ./dkim.h 2009-03-24 08:38:48.000000000 -0500 +++ ./dkim.h 2009-03-24 08:39:20.000000000 -0500 @@ -22,7 +22,6 @@ #define DKIM_CALL WINAPI #else #define DKIM_CALL -#define MAKELONG(a,b) ((long)(((unsigned)(a) & 0xffff) | (((unsigned)(b) & 0xffff) << 16))) #endif @@ -162,6 +161,32 @@ char *DKIM_CALL DKIMGetErrorString( int ErrorCode ); +#ifndef _WIN32 +/* + * macros.h: Useful macros + * + * Author: + * Dick Porter (dick@ximian.com) + * + * (C) 2002 Ximian, Inc. + */ +#ifndef _WAPI_MACROS_H_ +#define _WAPI_MACROS_H_ + +#include + +#define MAKEWORD(low, high) ((__uint16_t)(((__uint8_t)(low)) | \ + ((__uint16_t)((__uint8_t)(high))) << 8)) +#define MAKELONG(low, high) ((__uint32_t)(((__uint16_t)(low)) | \ + ((__uint32_t)((__uint16_t)(high))) << 16)) +#define LOWORD(i32) ((__uint16_t)((i32) & 0xFFFF)) +#define HIWORD(i32) ((__uint16_t)(((__uint32_t)(i32) >> 16) & 0xFFFF)) +#define LOBYTE(i16) ((__uint8_t)((i16) & 0xFF)) +#define HIBYTE(i16) ((__uint8_t)(((__uint16_t)(i16) >> 8) & 0xFF)) + +#endif /* _WAPI_MACROS_H_ */ +#endif + #ifdef __cplusplus } #endif diff -Naur libdkim.orig/src/dkimsign.cpp libdkim/src/dkimsign.cpp --- ./dkimsign.cpp 2009-03-24 08:38:48.000000000 -0500 +++ ./dkimsign.cpp 2009-03-24 08:39:20.000000000 -0500 @@ -25,8 +25,6 @@ #else #define _strnicmp strncasecmp #define _stricmp strcasecmp -#define LOWORD(l) ((unsigned)(l) & 0xffff) -#define HIWORD(l) ((unsigned)(l) >> 16) #endif #include