diff options
Diffstat (limited to 'mail-mta/exim')
-rw-r--r-- | mail-mta/exim/exim-scm.ebuild | 2 | ||||
-rw-r--r-- | mail-mta/exim/files/revert_bdb6_strict_check.patch | 220 |
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 */ |