summaryrefslogtreecommitdiff
path: root/mail-mta/exim
diff options
context:
space:
mode:
Diffstat (limited to 'mail-mta/exim')
-rw-r--r--mail-mta/exim/exim-scm.ebuild2
-rw-r--r--mail-mta/exim/files/revert_bdb6_strict_check.patch220
2 files changed, 222 insertions, 0 deletions
diff --git a/mail-mta/exim/exim-scm.ebuild b/mail-mta/exim/exim-scm.ebuild
index 140b828..b1baa80 100644
--- a/mail-mta/exim/exim-scm.ebuild
+++ b/mail-mta/exim/exim-scm.ebuild
@@ -98,6 +98,8 @@ src_prepare() {
epatch "${FILESDIR}"/exim-4.89-as-needed-ldflags.patch # 352265, 391279
epatch "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
+ epatch "${FILESDIR}/revert_bdb6_strict_check.patch"
+
if use maildir ; then
epatch "${FILESDIR}"/exim-4.20-maildir.patch
else
diff --git a/mail-mta/exim/files/revert_bdb6_strict_check.patch b/mail-mta/exim/files/revert_bdb6_strict_check.patch
new file mode 100644
index 0000000..bd55333
--- /dev/null
+++ b/mail-mta/exim/files/revert_bdb6_strict_check.patch
@@ -0,0 +1,220 @@
+diff --git a/src/src/dbstuff.h b/src/src/dbstuff.h
+index a18b288e..adb36244 100644
+--- a/src/src/dbstuff.h
++++ b/src/src/dbstuff.h
+@@ -106,10 +106,6 @@ definition of DB_VERSION_STRING, which is present in versions 2.x onwards. */
+
+ #ifdef DB_VERSION_STRING
+
+-# if DB_VERSION_MAJOR >= 6
+-# error Version 6 and later BDB API is not supported
+-# endif
+-
+ /* The API changed (again!) between the 2.x and 3.x versions */
+
+ #if DB_VERSION_MAJOR >= 3
+@@ -117,21 +113,21 @@ definition of DB_VERSION_STRING, which is present in versions 2.x onwards. */
+ /***************** Berkeley db 3.x/4.x native definitions ******************/
+
+ /* Basic DB type */
+-# if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+-# define EXIM_DB DB_ENV
++#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
++# define EXIM_DB DB_ENV
+ /* Cursor type, for scanning */
+-# define EXIM_CURSOR DBC
++# define EXIM_CURSOR DBC
+
+ /* The datum type used for queries */
+-# define EXIM_DATUM DBT
++# define EXIM_DATUM DBT
+
+ /* Some text for messages */
+-# define EXIM_DBTYPE "db (v4.1+)"
++# define EXIM_DBTYPE "db (v4.1+)"
+
+ /* Only more-recent versions. 5+ ? */
+-# ifndef DB_FORCESYNC
+-# define DB_FORCESYNC 0
+-# endif
++# ifndef DB_FORCESYNC
++# define DB_FORCESYNC 0
++# endif
+
+
+ /* Access functions */
+@@ -140,9 +136,9 @@ definition of DB_VERSION_STRING, which is present in versions 2.x onwards. */
+ API changed for DB 4.1. - and we also starting using the "env" with a
+ specified working dir, to avoid the DBCONFIG file trap. */
+
+-# define ENV_TO_DB(env) ((DB *)((env)->app_private))
++# define ENV_TO_DB(env) ((DB *)((env)->app_private))
+
+-# define EXIM_DBOPEN__(name, dirname, flags, mode, dbpp) \
++# define EXIM_DBOPEN__(name, dirname, flags, mode, dbpp) \
+ if ( db_env_create(dbpp, 0) != 0 \
+ || ((*dbpp)->set_errcall(*dbpp, dbfn_bdb_error_callback), 0) \
+ || (*dbpp)->open(*dbpp, CS dirname, DB_CREATE|DB_INIT_MPOOL|DB_PRIVATE, 0) != 0\
+@@ -165,72 +161,72 @@ specified working dir, to avoid the DBCONFIG file trap. */
+ }
+
+ /* EXIM_DBGET - returns TRUE if successful, FALSE otherwise */
+-# define EXIM_DBGET(db, key, data) \
++# define EXIM_DBGET(db, key, data) \
+ (ENV_TO_DB(db)->get(ENV_TO_DB(db), NULL, &key, &data, 0) == 0)
+
+ /* EXIM_DBPUT - returns nothing useful, assumes replace mode */
+-# define EXIM_DBPUT(db, key, data) \
++# define EXIM_DBPUT(db, key, data) \
+ ENV_TO_DB(db)->put(ENV_TO_DB(db), NULL, &key, &data, 0)
+
+ /* EXIM_DBPUTB - non-overwriting for use by dbmbuild */
+-# define EXIM_DBPUTB(db, key, data) \
++# define EXIM_DBPUTB(db, key, data) \
+ ENV_TO_DB(db)->put(ENV_TO_DB(db), NULL, &key, &data, DB_NOOVERWRITE)
+
+ /* Return values from EXIM_DBPUTB */
+
+-# define EXIM_DBPUTB_OK 0
+-# define EXIM_DBPUTB_DUP DB_KEYEXIST
++# define EXIM_DBPUTB_OK 0
++# define EXIM_DBPUTB_DUP DB_KEYEXIST
+
+ /* EXIM_DBDEL */
+-# define EXIM_DBDEL(db, key) ENV_TO_DB(db)->del(ENV_TO_DB(db), NULL, &key, 0)
++# define EXIM_DBDEL(db, key) ENV_TO_DB(db)->del(ENV_TO_DB(db), NULL, &key, 0)
+
+ /* EXIM_DBCREATE_CURSOR - initialize for scanning operation */
+
+-# define EXIM_DBCREATE_CURSOR(db, cursor) \
++# define EXIM_DBCREATE_CURSOR(db, cursor) \
+ ENV_TO_DB(db)->cursor(ENV_TO_DB(db), NULL, cursor, 0)
+
+ /* EXIM_DBSCAN - returns TRUE if data is returned, FALSE at end */
+-# define EXIM_DBSCAN(db, key, data, first, cursor) \
++# define EXIM_DBSCAN(db, key, data, first, cursor) \
+ ((cursor)->c_get(cursor, &key, &data, \
+ (first? DB_FIRST : DB_NEXT)) == 0)
+
+ /* EXIM_DBDELETE_CURSOR - terminate scanning operation */
+-# define EXIM_DBDELETE_CURSOR(cursor) \
++# define EXIM_DBDELETE_CURSOR(cursor) \
+ (cursor)->c_close(cursor)
+
+ /* EXIM_DBCLOSE */
+-# define EXIM_DBCLOSE__(db) \
++# define EXIM_DBCLOSE__(db) \
+ (ENV_TO_DB(db)->close(ENV_TO_DB(db), 0) , ((DB_ENV *)(db))->close((DB_ENV *)(db), DB_FORCESYNC))
+
+ /* Datum access types - these are intended to be assignable. */
+
+-# define EXIM_DATUM_SIZE(datum) (datum).size
+-# define EXIM_DATUM_DATA(datum) (datum).data
++# define EXIM_DATUM_SIZE(datum) (datum).size
++# define EXIM_DATUM_DATA(datum) (datum).data
+
+ /* The whole datum structure contains other fields that must be cleared
+ before use, but we don't have to free anything after reading data. */
+
+-# define EXIM_DATUM_INIT(datum) memset(&datum, 0, sizeof(datum))
+-# define EXIM_DATUM_FREE(datum)
++# define EXIM_DATUM_INIT(datum) memset(&datum, 0, sizeof(datum))
++# define EXIM_DATUM_FREE(datum)
+
+-# else /* pre- 4.1 */
++#else /* pre- 4.1 */
+
+-# define EXIM_DB DB
++# define EXIM_DB DB
+
+ /* Cursor type, for scanning */
+-# define EXIM_CURSOR DBC
++# define EXIM_CURSOR DBC
+
+ /* The datum type used for queries */
+-# define EXIM_DATUM DBT
++# define EXIM_DATUM DBT
+
+ /* Some text for messages */
+-# define EXIM_DBTYPE "db (v3/4)"
++# define EXIM_DBTYPE "db (v3/4)"
+
+ /* Access functions */
+
+ /* EXIM_DBOPEN - sets *dbpp to point to an EXIM_DB, NULL if failed. */
+
+-# define EXIM_DBOPEN__(name, dirname, flags, mode, dbpp) \
++# define EXIM_DBOPEN__(name, dirname, flags, mode, dbpp) \
+ if (db_create(dbpp, NULL, 0) != 0 || \
+ ((*dbpp)->set_errcall(*dbpp, dbfn_bdb_error_callback), \
+ ((*dbpp)->open)(*dbpp, CS name, NULL, \
+@@ -239,54 +235,54 @@ before use, but we don't have to free anything after reading data. */
+ mode)) != 0) *(dbpp) = NULL
+
+ /* EXIM_DBGET - returns TRUE if successful, FALSE otherwise */
+-# define EXIM_DBGET(db, key, data) \
++# define EXIM_DBGET(db, key, data) \
+ ((db)->get(db, NULL, &key, &data, 0) == 0)
+
+ /* EXIM_DBPUT - returns nothing useful, assumes replace mode */
+-# define EXIM_DBPUT(db, key, data) \
++# define EXIM_DBPUT(db, key, data) \
+ (db)->put(db, NULL, &key, &data, 0)
+
+ /* EXIM_DBPUTB - non-overwriting for use by dbmbuild */
+-# define EXIM_DBPUTB(db, key, data) \
++# define EXIM_DBPUTB(db, key, data) \
+ (db)->put(db, NULL, &key, &data, DB_NOOVERWRITE)
+
+ /* Return values from EXIM_DBPUTB */
+
+-# define EXIM_DBPUTB_OK 0
+-# define EXIM_DBPUTB_DUP DB_KEYEXIST
++# define EXIM_DBPUTB_OK 0
++# define EXIM_DBPUTB_DUP DB_KEYEXIST
+
+ /* EXIM_DBDEL */
+-# define EXIM_DBDEL(db, key) (db)->del(db, NULL, &key, 0)
++# define EXIM_DBDEL(db, key) (db)->del(db, NULL, &key, 0)
+
+ /* EXIM_DBCREATE_CURSOR - initialize for scanning operation */
+
+-# define EXIM_DBCREATE_CURSOR(db, cursor) \
++# define EXIM_DBCREATE_CURSOR(db, cursor) \
+ (db)->cursor(db, NULL, cursor, 0)
+
+ /* EXIM_DBSCAN - returns TRUE if data is returned, FALSE at end */
+-# define EXIM_DBSCAN(db, key, data, first, cursor) \
++# define EXIM_DBSCAN(db, key, data, first, cursor) \
+ ((cursor)->c_get(cursor, &key, &data, \
+ (first? DB_FIRST : DB_NEXT)) == 0)
+
+ /* EXIM_DBDELETE_CURSOR - terminate scanning operation */
+-# define EXIM_DBDELETE_CURSOR(cursor) \
++# define EXIM_DBDELETE_CURSOR(cursor) \
+ (cursor)->c_close(cursor)
+
+ /* EXIM_DBCLOSE */
+-# define EXIM_DBCLOSE__(db) (db)->close(db, 0)
++# define EXIM_DBCLOSE__(db) (db)->close(db, 0)
+
+ /* Datum access types - these are intended to be assignable. */
+
+-# define EXIM_DATUM_SIZE(datum) (datum).size
+-# define EXIM_DATUM_DATA(datum) (datum).data
++# define EXIM_DATUM_SIZE(datum) (datum).size
++# define EXIM_DATUM_DATA(datum) (datum).data
+
+ /* The whole datum structure contains other fields that must be cleared
+ before use, but we don't have to free anything after reading data. */
+
+-# define EXIM_DATUM_INIT(datum) memset(&datum, 0, sizeof(datum))
+-# define EXIM_DATUM_FREE(datum)
++# define EXIM_DATUM_INIT(datum) memset(&datum, 0, sizeof(datum))
++# define EXIM_DATUM_FREE(datum)
+
+-# endif
++#endif
+
+
+ #else /* DB_VERSION_MAJOR >= 3 */