diff --git a/pkgs/servers/mail/dspam/default.nix b/pkgs/servers/mail/dspam/default.nix index e2388e6a9491..31f149f1dd42 100644 --- a/pkgs/servers/mail/dspam/default.nix +++ b/pkgs/servers/mail/dspam/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, makeWrapper , gawk, gnused, gnugrep, coreutils, which , perlPackages -, withMySQL ? false, zlib, mysql57 +, withMySQL ? false, zlib, mariadb-connector-c , withPgSQL ? false, postgresql , withSQLite ? false, sqlite , withDB ? false, db @@ -25,13 +25,21 @@ in stdenv.mkDerivation rec { url = "mirror://sourceforge/dspam/dspam/${pname}-${version}/${pname}-${version}.tar.gz"; sha256 = "1acklnxn1wvc7abn31l3qdj8q6k13s51k5gv86vka7q20jb5cxmf"; }; + patches = [ + # https://gist.github.com/WhiteAnthrax/613136c76882e0ead3cb3bdad6b3d551 + ./mariadb.patch + ]; buildInputs = [ perlPackages.perl ] - ++ lib.optionals withMySQL [ zlib mysql57.connector-c ] + ++ lib.optionals withMySQL [ zlib mariadb-connector-c.out ] ++ lib.optional withPgSQL postgresql ++ lib.optional withSQLite sqlite ++ lib.optional withDB db; nativeBuildInputs = [ makeWrapper ]; + # patch out libmysql >= 5 check, since mariadb-connector is at 3.x + postPatch = '' + sed -i 's/atoi(m) >= 5/1/g' configure m4/mysql_drv.m4 + ''; configureFlags = [ "--with-storage-driver=${drivers}" @@ -50,7 +58,10 @@ in stdenv.mkDerivation rec { "--enable-preferences-extension" "--enable-long-usernames" "--enable-external-lookup" - ] ++ lib.optional withMySQL "--with-mysql-includes=${mysql57.connector-c}/include/mysql" + ] ++ lib.optionals withMySQL [ + "--with-mysql-includes=${mariadb-connector-c.dev}/include/mysql" + "--with-mysql-libraries=${mariadb-connector-c.out}/lib/mysql" + ] ++ lib.optional withPgSQL "--with-pgsql-libraries=${postgresql.lib}/lib"; # Workaround build failure on -fno-common toolchains like upstream diff --git a/pkgs/servers/mail/dspam/mariadb.patch b/pkgs/servers/mail/dspam/mariadb.patch new file mode 100644 index 000000000000..5f3d8277d943 --- /dev/null +++ b/pkgs/servers/mail/dspam/mariadb.patch @@ -0,0 +1,42 @@ +diff -ur dspam-3.10.2.orig/configure dspam-3.10.2/configure +--- dspam-3.10.2.orig/configure 2012-04-24 02:53:49.000000000 +0900 ++++ dspam-3.10.2/configure 2019-05-24 01:59:06.557890494 +0900 +@@ -13280,7 +13280,7 @@ + #include + #include + #include +- #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_ERROR_FIRST) ++ #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_MIN_ERROR) + /* Success */ + #else + #error Unsupported version of MySQL +@@ -13293,7 +13293,7 @@ + + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_ERROR_FIRST defined) ++as_fn_error $? "Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_MIN_ERROR defined) + See \`config.log' for more details" "$LINENO" 5; } + mysql_headers_success=no + +diff -ur dspam-3.10.2.orig/m4/mysql_drv.m4 dspam-3.10.2/m4/mysql_drv.m4 +--- dspam-3.10.2.orig/m4/mysql_drv.m4 2011-08-17 07:38:30.000000000 +0900 ++++ dspam-3.10.2/m4/mysql_drv.m4 2019-05-24 02:00:08.301217506 +0900 +@@ -80,7 +80,7 @@ + #include + #include + #include +- #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_ERROR_FIRST) ++ #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_MIN_ERROR) + /* Success */ + #else + #error Unsupported version of MySQL +@@ -88,7 +88,7 @@ + ]])], + [], + [ +- AC_MSG_FAILURE([Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_ERROR_FIRST defined)]) ++ AC_MSG_FAILURE([Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_MIN_ERROR defined)]) + mysql_headers_success=no + ]) + fi