diff options
author | Volker Grabsch <vog@notjusthosting.com> | 2009-10-09 14:01:46 (GMT) |
---|---|---|
committer | Volker Grabsch <vog@notjusthosting.com> | 2009-10-09 14:01:46 (GMT) |
commit | b2fb222ec11807992efccb70e242abba0433c8dd (patch) | |
tree | b5e8f631e96db33db7fd89737b8f421bf35e1f8b /src/vmime-1-win32.patch | |
parent | 1bafae2e8f5a869597147221e7cfc649358282d1 (diff) | |
download | mxe-b2fb222ec11807992efccb70e242abba0433c8dd.zip mxe-b2fb222ec11807992efccb70e242abba0433c8dd.tar.gz mxe-b2fb222ec11807992efccb70e242abba0433c8dd.tar.bz2 |
new package: vmime (by Mark Brand)
Diffstat (limited to 'src/vmime-1-win32.patch')
-rw-r--r-- | src/vmime-1-win32.patch | 387 |
1 files changed, 387 insertions, 0 deletions
diff --git a/src/vmime-1-win32.patch b/src/vmime-1-win32.patch new file mode 100644 index 0000000..88b0b26 --- /dev/null +++ b/src/vmime-1-win32.patch @@ -0,0 +1,387 @@ +Copyright (C) 2009 Mark Brand + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject +to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +diff -urN libvmime-0.9.0/configure.in libvmime-0.9.0.mod/configure.in +--- libvmime-0.9.0/configure.in 2008-10-19 14:36:08.000000000 +0200 ++++ libvmime-0.9.0.mod/configure.in 2009-10-08 01:08:19.000000000 +0200 +@@ -369,7 +369,7 @@ + + if test "x$conf_tls" = "xyes"; then + # -- GNU TLS Library (http://www.gnu.org/software/gnutls/) +- AM_PATH_LIBGNUTLS(1.2.0, have_gnutls=yes, have_gnutls=no) ++ PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0], have_gnutls=yes, have_gnutls=no) + + if test "x$have_gnutls" = "xyes"; then + AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, true) +@@ -524,7 +524,7 @@ + + # -- pthreads (POSIX) + +-ACX_PTHREAD([VMIME_ADDITIONAL_DEFINES="$VMIME_ADDITIONAL_DEFINES HAVE_PTHREAD"]) ++AX_PTHREAD([VMIME_ADDITIONAL_DEFINES="$VMIME_ADDITIONAL_DEFINES HAVE_PTHREAD"]) + + + if test "x$VMIME_DETECT_PLATFORM" = "xwindows"; then +@@ -654,10 +654,10 @@ + AC_TRY_COMPILE(,,echo yes,echo no; EXTRA_CFLAGS="$OLD_EXTRA_CFLAGS") + + # -ansi +-OLD_EXTRA_CFLAGS="$EXTRA_CFLAGS" +-EXTRA_CFLAGS="$EXTRA_CFLAGS -ansi" +-AC_MSG_CHECKING(whether cc accepts -ansi) +-AC_TRY_COMPILE(,,echo yes,echo no; EXTRA_CFLAGS="$OLD_EXTRA_CFLAGS") ++#OLD_EXTRA_CFLAGS="$EXTRA_CFLAGS" ++#EXTRA_CFLAGS="$EXTRA_CFLAGS -ansi" ++#AC_MSG_CHECKING(whether cc accepts -ansi) ++#AC_TRY_COMPILE(,,echo yes,echo no; EXTRA_CFLAGS="$OLD_EXTRA_CFLAGS") + + # -pedantic + OLD_EXTRA_CFLAGS="$EXTRA_CFLAGS" +diff -urN libvmime-0.9.0/m4/m4_ax_pthread.m4 libvmime-0.9.0.mod/m4/m4_ax_pthread.m4 +--- libvmime-0.9.0/m4/m4_ax_pthread.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libvmime-0.9.0.mod/m4/m4_ax_pthread.m4 2009-10-08 01:08:19.000000000 +0200 +@@ -0,0 +1,272 @@ ++# =========================================================================== ++# http://www.nongnu.org/autoconf-archive/ax_pthread.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) ++# ++# DESCRIPTION ++# ++# This macro figures out how to build C programs using POSIX threads. It ++# sets the PTHREAD_LIBS output variable to the threads library and linker ++# flags, and the PTHREAD_CFLAGS output variable to any special C compiler ++# flags that are needed. (The user can also force certain compiler ++# flags/libs to be tested by setting these environment variables.) ++# ++# Also sets PTHREAD_CC to any special C compiler that is needed for ++# multi-threaded programs (defaults to the value of CC otherwise). (This ++# is necessary on AIX to use the special cc_r compiler alias.) ++# ++# NOTE: You are assumed to not only compile your program with these flags, ++# but also link it with them as well. e.g. you should link with ++# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS ++# ++# If you are only building threads programs, you may wish to use these ++# variables in your default LIBS, CFLAGS, and CC: ++# ++# LIBS="$PTHREAD_LIBS $LIBS" ++# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++# CC="$PTHREAD_CC" ++# ++# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant ++# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name ++# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). ++# ++# ACTION-IF-FOUND is a list of shell commands to run if a threads library ++# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it ++# is not found. If ACTION-IF-FOUND is not specified, the default action ++# will define HAVE_PTHREAD. ++# ++# Please let the authors know if this macro fails on any platform, or if ++# you have any other suggestions or comments. This macro was based on work ++# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help ++# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by ++# Alejandro Forero Cuervo to the autoconf macro repository. We are also ++# grateful for the helpful feedback of numerous users. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu> ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see <http://www.gnu.org/licenses/>. ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) ++AC_DEFUN([AX_PTHREAD], [ ++AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_LANG_SAVE ++AC_LANG_C ++ax_pthread_ok=no ++ ++# We used to check for pthread.h first, but this fails if pthread.h ++# requires special compiler flags (e.g. on True64 or Sequent). ++# It gets checked for in the link test anyway. ++ ++# First of all, check if the user has set any of the PTHREAD_LIBS, ++# etcetera environment variables, and if threads linking works using ++# them: ++if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) ++ AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) ++ AC_MSG_RESULT($ax_pthread_ok) ++ if test x"$ax_pthread_ok" = xno; then ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++fi ++ ++# We must check for the threads library under a number of different ++# names; the ordering is very important because some systems ++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the ++# libraries is broken (non-POSIX). ++ ++# Create a list of thread flags to try. Items starting with a "-" are ++# C compiler flags, and other items are library names, except for "none" ++# which indicates that we try without any flags at all, and "pthread-config" ++# which is a program returning the flags for the Pth emulation library. ++ ++ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ++ ++# The ordering *is* (sometimes) important. Some notes on the ++# individual items follow: ++ ++# pthreads: AIX (must check this before -lpthread) ++# none: in case threads are in libc; should be tried before -Kthread and ++# other compiler flags to prevent continual compiler warnings ++# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) ++# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) ++# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) ++# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) ++# -pthreads: Solaris/gcc ++# -mthreads: Mingw32/gcc, Lynx/gcc ++# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it ++# doesn't hurt to check since this sometimes defines pthreads too; ++# also defines -D_REENTRANT) ++# ... -mt is also the pthreads flag for HP/aCC ++# pthread: Linux, etcetera ++# --thread-safe: KAI C++ ++# pthread-config: use pthread-config program (for GNU Pth library) ++ ++case "${host_cpu}-${host_os}" in ++ *solaris*) ++ ++ # On Solaris (at least, for some versions), libc contains stubbed ++ # (non-functional) versions of the pthreads routines, so link-based ++ # tests will erroneously succeed. (We need to link with -pthreads/-mt/ ++ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather ++ # a function called by this macro, so we could check for that, but ++ # who knows whether they'll stub that too in a future libc.) So, ++ # we'll just look for -pthreads and -lpthread first: ++ ++ ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" ++ ;; ++esac ++ ++if test x"$ax_pthread_ok" = xno; then ++for flag in $ax_pthread_flags; do ++ ++ case $flag in ++ none) ++ AC_MSG_CHECKING([whether pthreads work without any flags]) ++ ;; ++ ++ -*) ++ AC_MSG_CHECKING([whether pthreads work with $flag]) ++ PTHREAD_CFLAGS="$flag" ++ ;; ++ ++ pthread-config) ++ AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) ++ if test x"$ax_pthread_config" = xno; then continue; fi ++ PTHREAD_CFLAGS="`pthread-config --cflags`" ++ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ++ ;; ++ ++ *) ++ AC_MSG_CHECKING([for the pthreads library -l$flag]) ++ PTHREAD_LIBS="-l$flag" ++ ;; ++ esac ++ ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Check for various functions. We must include pthread.h, ++ # since some functions may be macros. (On the Sequent, we ++ # need a special flag -Kthread to make this header compile.) ++ # We check for pthread_join because it is in -lpthread on IRIX ++ # while pthread_create is in libc. We check for pthread_attr_init ++ # due to DEC craziness with -lpthreads. We check for ++ # pthread_cleanup_push because it is one of the few pthread ++ # functions on Solaris that doesn't have a non-functional libc stub. ++ # We try pthread_create on general principles. ++ AC_TRY_LINK([#include <pthread.h>], ++ [pthread_t th; pthread_join(th, 0); ++ pthread_attr_init(0); pthread_cleanup_push(0, 0); ++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], ++ [ax_pthread_ok=yes]) ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ AC_MSG_RESULT($ax_pthread_ok) ++ if test "x$ax_pthread_ok" = xyes; then ++ break; ++ fi ++ ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++done ++fi ++ ++# Various other checks: ++if test "x$ax_pthread_ok" = xyes; then ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. ++ AC_MSG_CHECKING([for joinable pthread attribute]) ++ attr_name=unknown ++ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do ++ AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], ++ [attr_name=$attr; break]) ++ done ++ AC_MSG_RESULT($attr_name) ++ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then ++ AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, ++ [Define to necessary symbol if this constant ++ uses a non-standard name on your system.]) ++ fi ++ ++ AC_MSG_CHECKING([if more special flags are required for pthreads]) ++ flag=no ++ case "${host_cpu}-${host_os}" in ++ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; ++ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; ++ esac ++ AC_MSG_RESULT(${flag}) ++ if test "x$flag" != xno; then ++ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" ++ fi ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ # More AIX lossage: must compile with xlc_r or cc_r ++ if test x"$GCC" != xyes; then ++ AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) ++ else ++ PTHREAD_CC=$CC ++ fi ++else ++ PTHREAD_CC="$CC" ++fi ++ ++AC_SUBST(PTHREAD_LIBS) ++AC_SUBST(PTHREAD_CFLAGS) ++AC_SUBST(PTHREAD_CC) ++ ++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ++if test x"$ax_pthread_ok" = xyes; then ++ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) ++ : ++else ++ ax_pthread_ok=no ++ $2 ++fi ++AC_LANG_RESTORE ++])dnl AX_PTHREAD +diff -urN libvmime-0.9.0/SConstruct libvmime-0.9.0.mod/SConstruct +--- libvmime-0.9.0/SConstruct 2008-10-19 14:27:32.000000000 +0200 ++++ libvmime-0.9.0.mod/SConstruct 2009-10-08 01:08:19.000000000 +0200 +@@ -1620,7 +1620,7 @@ + + if test "x$conf_tls" = "xyes"; then + # -- GNU TLS Library (http://www.gnu.org/software/gnutls/) +- AM_PATH_LIBGNUTLS(1.2.0, have_gnutls=yes, have_gnutls=no) ++ PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0], have_gnutls=yes, have_gnutls=no) + + if test "x$have_gnutls" = "xyes"; then + AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, true) +diff -urN libvmime-0.9.0/src/platforms/windows/windowsFile.cpp libvmime-0.9.0.mod/src/platforms/windows/windowsFile.cpp +--- libvmime-0.9.0/src/platforms/windows/windowsFile.cpp 2008-10-12 10:54:31.000000000 +0200 ++++ libvmime-0.9.0.mod/src/platforms/windows/windowsFile.cpp 2009-10-08 01:08:19.000000000 +0200 +@@ -268,7 +268,7 @@ + return true; + } + +-const windowsFile::length_type windowsFile::getLength() ++windowsFile::length_type windowsFile::getLength() + { + HANDLE hFile = CreateFile( + m_nativePath.c_str(), +@@ -464,7 +464,7 @@ + SetFilePointer(m_hFile, 0, NULL, FILE_BEGIN); + } + +-const vmime::utility::stream::size_type windowsFileReaderInputStream::read(value_type* const data, const size_type count) ++vmime::utility::stream::size_type windowsFileReaderInputStream::read(value_type* const data, const size_type count) + { + DWORD dwBytesRead; + if (!ReadFile(m_hFile, (LPVOID)data, (DWORD)count, &dwBytesRead, NULL)) +@@ -472,7 +472,7 @@ + return dwBytesRead; + } + +-const vmime::utility::stream::size_type windowsFileReaderInputStream::skip(const size_type count) ++vmime::utility::stream::size_type windowsFileReaderInputStream::skip(const size_type count) + { + DWORD dwCurPos = SetFilePointer(m_hFile, 0, NULL, FILE_CURRENT); + DWORD dwNewPos = SetFilePointer(m_hFile, (LONG)count, NULL, FILE_CURRENT); +diff -urN libvmime-0.9.0/vmime/platforms/windows/windowsFile.hpp libvmime-0.9.0.mod/vmime/platforms/windows/windowsFile.hpp +--- libvmime-0.9.0/vmime/platforms/windows/windowsFile.hpp 2008-10-12 10:54:33.000000000 +0200 ++++ libvmime-0.9.0.mod/vmime/platforms/windows/windowsFile.hpp 2009-10-08 01:08:19.000000000 +0200 +@@ -73,7 +73,7 @@ + bool canRead() const; + bool canWrite() const; + +- const length_type getLength(); ++ length_type getLength(); + + const path& getFullPath() const; + |