diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches/Improve-cross-compile-support.patch | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/debian/patches/Improve-cross-compile-support.patch b/debian/patches/Improve-cross-compile-support.patch new file mode 100644 index 0000000..708336f --- /dev/null +++ b/debian/patches/Improve-cross-compile-support.patch @@ -0,0 +1,116 @@ +From: Helmut Grohne <helmut@subdivi.de> +Date: Tue, 5 Jan 2021 22:25:00 +0100 +Subject: Improve cross-compile support + +The check for the signedness of size_t really doesn't have to be run as +that is a compile time property. + +Beyond that, dovecot uses mysql_config. I've looked into that and +mysql_config is unfixably broken during cross builds. It will not be +fixed. Instead, please use pkg-config. My patch implements that with a +fallback to mysql_config to avoid breaking other users. + +Last but not least, src/lib-lua/Makefile.am adds $(LUA_LIBS) to +libdovecot_lua_la_DEPENDENCIES. As it happens, LUA_LIBS contains a -L +flag and when that flag shows up in a dependency, make gives up. I have +no clue why one would add LUA_LIBS to DEPENDENCIES as it already is +being correctly added to LIBADD. My patch suggests to quite simply drop +that. +--- + m4/want_mysql.m4 | 54 ++++++++++++++++++++++++------------------------- + src/lib-lua/Makefile.am | 4 +--- + 2 files changed, 27 insertions(+), 31 deletions(-) + +diff --git a/m4/want_mysql.m4 b/m4/want_mysql.m4 +index 98e6f93..425bcdd 100644 +--- a/m4/want_mysql.m4 ++++ b/m4/want_mysql.m4 +@@ -1,26 +1,28 @@ + AC_DEFUN([DOVECOT_WANT_MYSQL], [ + have_mysql=no +- if test $want_mysql != no; then +- AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, mysql_config, NO) +- if test $MYSQL_CONFIG = NO; then +- # based on code from PHP +- MYSQL_LIBS="-lmysqlclient -lz -lm" +- for i in /usr /usr/local /usr/local/mysql; do +- for j in include include/mysql ""; do +- if test -r "$i/$j/mysql.h"; then +- MYSQL_INCLUDE="-I$i/$j" +- fi +- done +- for j in lib lib/mysql lib64 lib64/mysql ""; do +- if test -f "$i/$j/libmysqlclient.so" || test -f "$i/$j/libmysqlclient.a"; then +- MYSQL_LIBS="-L$i/$j -lmysqlclient -lz -lm" +- fi +- done +- done +- else +- MYSQL_INCLUDE="`$MYSQL_CONFIG --include`" +- MYSQL_LIBS="`$MYSQL_CONFIG --libs`" +- fi ++ AS_IF([test $want_mysql != no],[ ++ PKG_CHECK_MODULES([MYSQL],[mysqlclient],,[ ++ AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, mysql_config, NO) ++ if test $MYSQL_CONFIG = NO; then ++ # based on code from PHP ++ MYSQL_LIBS="-lmysqlclient -lz -lm" ++ for i in /usr /usr/local /usr/local/mysql; do ++ for j in include include/mysql ""; do ++ if test -r "$i/$j/mysql.h"; then ++ MYSQL_CFLAGS="-I$i/$j" ++ fi ++ done ++ for j in lib lib/mysql lib64 lib64/mysql ""; do ++ if test -f "$i/$j/libmysqlclient.so" || test -f "$i/$j/libmysqlclient.a"; then ++ MYSQL_LIBS="-L$i/$j -lmysqlclient -lz -lm" ++ fi ++ done ++ done ++ else ++ MYSQL_CFLAGS="`$MYSQL_CONFIG --include`" ++ MYSQL_LIBS="`$MYSQL_CONFIG --libs`" ++ fi ++ ]) + + old_LIBS=$LIBS + if test "$MYSQL_LIBS" != ""; then +@@ -31,14 +33,10 @@ AC_DEFUN([DOVECOT_WANT_MYSQL], [ + LIBS="$LIBS -lz -lm" + AC_CHECK_LIB(mysqlclient, mysql_init, [ + old_CPPFLAGS=$CPPFLAGS +- if test "$MYSQL_INCLUDE" != ""; then +- CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE" ++ if test "$MYSQL_CFLAGS" != ""; then ++ CPPFLAGS="$CPPFLAGS $MYSQL_CFLAGS" + fi + AC_CHECK_HEADER(mysql.h, [ +- if test "$MYSQL_INCLUDE" != ""; then +- MYSQL_CFLAGS="$MYSQL_CFLAGS $MYSQL_INCLUDE" +- fi +- + AC_CHECK_LIB(mysqlclient, mysql_ssl_set, [ + AC_DEFINE(HAVE_MYSQL_SSL,, [Define if your MySQL library has SSL functions]) + if test "x$have_openssl" = "yes"; then +@@ -85,5 +83,5 @@ AC_DEFUN([DOVECOT_WANT_MYSQL], [ + MYSQL_CFLAGS= + fi + LIBS=$old_LIBS +- fi ++ ]) + ]) +diff --git a/src/lib-lua/Makefile.am b/src/lib-lua/Makefile.am +index 20ce311..7d44e89 100644 +--- a/src/lib-lua/Makefile.am ++++ b/src/lib-lua/Makefile.am +@@ -24,9 +24,7 @@ test_programs += test-dict-lua + endif + + # Note: the only things this lib should depend on are libdovecot and lua. +-libdovecot_lua_la_DEPENDENCIES = \ +- ../lib-dovecot/libdovecot.la \ +- $(LIBDICT_LUA) ++libdovecot_lua_la_DEPENDENCIES = ../lib-dovecot/libdovecot.la + libdovecot_lua_la_LIBADD = \ + ../lib-dovecot/libdovecot.la \ + $(LIBDICT_LUA) \ |