diff --git a/bind-9.16-pthread-dlz-threaded.patch b/bind-9.16-pthread-dlz-threaded.patch deleted file mode 100644 index a5a1312..0000000 --- a/bind-9.16-pthread-dlz-threaded.patch +++ /dev/null @@ -1,486 +0,0 @@ -From 053886b260204e399a33a6b95c6ee95f6161b451 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= -Date: Fri, 21 Jan 2022 18:52:45 +0100 -Subject: [PATCH] Remove remains of #if PTHREADS - -Always use only threaded version. Single thread version does not exist -anymore. ---- - contrib/dlz/modules/ldap/dlz_ldap_dynamic.c | 59 ------------------- - contrib/dlz/modules/mysql/dlz_mysql_dynamic.c | 37 ------------ - .../dlz/modules/sqlite3/dlz_sqlite3_dynamic.c | 37 ------------ - 3 files changed, 133 deletions(-) - -diff --git a/contrib/dlz/modules/ldap/dlz_ldap_dynamic.c b/contrib/dlz/modules/ldap/dlz_ldap_dynamic.c -index 7f9231244a..25a7837b67 100644 ---- a/contrib/dlz/modules/ldap/dlz_ldap_dynamic.c -+++ b/contrib/dlz/modules/ldap/dlz_ldap_dynamic.c -@@ -69,11 +69,7 @@ - * many separate instances. - */ - typedef struct { --#if PTHREADS - db_list_t *db; /*%< handle to a list of DB */ --#else /* if PTHREADS */ -- dbinstance_t *db; /*%< handle to db */ --#endif /* if PTHREADS */ - int method; /*%< security authentication - * method */ - char *user; /*%< who is authenticating */ -@@ -227,7 +223,6 @@ cleanup: - return (result); - } - --#if PTHREADS - /*% - * Properly cleans up a list of database instances. - * This function is only used when the driver is compiled for -@@ -298,7 +293,6 @@ dlz_ldap_find_avail_conn(ldap_instance_t *ldap) { - count); - return (NULL); - } --#endif /* PTHREADS */ - - static isc_result_t - dlz_ldap_process_results(ldap_instance_t *db, LDAP *dbc, LDAPMessage *msg, -@@ -542,16 +536,8 @@ dlz_ldap_get_results(const char *zone, const char *record, const char *client, - int entries; - - /* get db instance / connection */ --#if PTHREADS - /* find an available DBI from the list */ - dbi = dlz_ldap_find_avail_conn(db); --#else /* PTHREADS */ -- /* -- * only 1 DBI - no need to lock instance lock either -- * only 1 thread in the whole process, no possible contention. -- */ -- dbi = (dbinstance_t *)(db->db); --#endif /* PTHREADS */ - - /* if DBI is null, can't do anything else */ - if (dbi == NULL) { -@@ -907,11 +893,9 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - const char *helper_name; - int protocol; - int method; --#if PTHREADS - int dbcount; - char *endp; - int i; --#endif /* PTHREADS */ - va_list ap; - - UNUSED(dlzname); -@@ -930,13 +914,8 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - } - va_end(ap); - --#if PTHREADS - /* if debugging, let user know we are multithreaded. */ - ldap->log(ISC_LOG_DEBUG(1), "LDAP driver running multithreaded"); --#else /* PTHREADS */ -- /* if debugging, let user know we are single threaded. */ -- ldap->log(ISC_LOG_DEBUG(1), "LDAP driver running single threaded"); --#endif /* PTHREADS */ - - if (argc < 9) { - ldap->log(ISC_LOG_ERROR, "LDAP driver requires at least " -@@ -979,7 +958,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - } - - /* multithreaded build can have multiple DB connections */ --#if PTHREADS - /* check how many db connections we should create */ - dbcount = strtol(argv[1], &endp, 10); - if (*endp != '\0' || dbcount < 0) { -@@ -988,7 +966,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - "must be positive."); - goto cleanup; - } --#endif /* if PTHREADS */ - - /* check that LDAP URL parameters make sense */ - switch (argc) { -@@ -1045,7 +1022,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* allocate memory for database connection list */ - ldap->db = calloc(1, sizeof(db_list_t)); - if (ldap->db == NULL) { -@@ -1061,7 +1037,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - * append each new DBI to the end of the list - */ - for (i = 0; i < dbcount; i++) { --#endif /* PTHREADS */ - /* how many queries were passed in from config file? */ - switch (argc) { - case 9: -@@ -1099,17 +1074,9 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* when multithreaded, build a list of DBI's */ - DLZ_LINK_INIT(dbi, link); - DLZ_LIST_APPEND(*(ldap->db), dbi, link); --#else /* if PTHREADS */ -- /* -- * when single threaded, hold onto the one connection -- * instance. -- */ -- ldap->db = dbi; --#endif /* if PTHREADS */ - /* attempt to connect */ - result = dlz_ldap_connect(ldap, dbi); - -@@ -1126,16 +1093,10 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - * allocate memory - */ - case ISC_R_NOMEMORY: --#if PTHREADS - ldap->log(ISC_LOG_ERROR, - "LDAP driver could not allocate memory " - "for connection number %u", - i + 1); --#else /* if PTHREADS */ -- ldap->log(ISC_LOG_ERROR, "LDAP driver could not allocate " -- "memory " -- "for connection"); --#endif /* if PTHREADS */ - goto cleanup; - /* - * no perm means ldap_set_option could not set -@@ -1148,15 +1109,10 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - /* failure means couldn't connect to ldap server */ - case ISC_R_FAILURE: --#if PTHREADS - ldap->log(ISC_LOG_ERROR, - "LDAP driver could not bind " - "connection number %u to server.", - i + 1); --#else /* if PTHREADS */ -- ldap->log(ISC_LOG_ERROR, "LDAP driver could not " -- "bind connection to server."); --#endif /* if PTHREADS */ - goto cleanup; - /* - * default should never happen. If it does, -@@ -1169,11 +1125,9 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* set DBI = null for next loop through. */ - dbi = NULL; - } --#endif /* PTHREADS */ - - /* set dbdata to the ldap_instance we created. */ - *dbdata = ldap; -@@ -1190,19 +1144,10 @@ void - dlz_destroy(void *dbdata) { - if (dbdata != NULL) { - ldap_instance_t *db = (ldap_instance_t *)dbdata; --#if PTHREADS - /* cleanup the list of DBI's */ - if (db->db != NULL) { - dlz_ldap_destroy_dblist((db_list_t *)(db->db)); - } --#else /* PTHREADS */ -- if (db->db->dbconn != NULL) { -- ldap_unbind_s((LDAP *)(db->db->dbconn)); -- } -- -- /* destroy single DB instance */ -- destroy_dbinstance(db->db); --#endif /* PTHREADS */ - - if (db->hosts != NULL) { - free(db->hosts); -@@ -1223,11 +1168,7 @@ dlz_destroy(void *dbdata) { - int - dlz_version(unsigned int *flags) { - *flags |= DNS_SDLZFLAG_RELATIVERDATA; --#if PTHREADS - *flags |= DNS_SDLZFLAG_THREADSAFE; --#else /* if PTHREADS */ -- *flags &= ~DNS_SDLZFLAG_THREADSAFE; --#endif /* if PTHREADS */ - return (DLZ_DLOPEN_VERSION); - } - -diff --git a/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c b/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c -index 81b46aa79e..0b8be40112 100644 ---- a/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c -+++ b/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c -@@ -64,12 +64,8 @@ typedef bool my_bool; - * many separate instances. - */ - typedef struct { --#if PTHREADS - db_list_t *db; /*%< handle to a list of DB */ - int dbcount; --#else /* if PTHREADS */ -- dbinstance_t *db; /*%< handle to DB */ --#endif /* if PTHREADS */ - - unsigned int flags; - char *dbname; -@@ -112,7 +108,6 @@ mysql_destroy(dbinstance_t *db) { - destroy_dbinstance(db); - } - --#if PTHREADS - /*% - * Properly cleans up a list of database instances. - * This function is only used when the module is compiled for -@@ -175,7 +170,6 @@ mysql_find_avail_conn(mysql_instance_t *mysql) { - count); - return (NULL); - } --#endif /* PTHREADS */ - - /*% - * Allocates memory for a new string, and then constructs the new -@@ -224,16 +218,8 @@ mysql_get_resultset(const char *zone, const char *record, const char *client, - unsigned int j = 0; - int qres = 0; - --#if PTHREADS - /* find an available DBI from the list */ - dbi = mysql_find_avail_conn(db); --#else /* PTHREADS */ -- /* -- * only 1 DBI - no need to lock instance lock either -- * only 1 thread in the whole process, no possible contention. -- */ -- dbi = (dbinstance_t *)(db->db); --#endif /* PTHREADS */ - - if (dbi == NULL) { - return (ISC_R_FAILURE); -@@ -801,10 +787,8 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - char *endp; - int j; - const char *helper_name; --#if PTHREADS - int dbcount; - int i; --#endif /* PTHREADS */ - va_list ap; - - UNUSED(dlzname); -@@ -823,13 +807,8 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - } - va_end(ap); - --#if PTHREADS - /* if debugging, let user know we are multithreaded. */ - mysql->log(ISC_LOG_DEBUG(1), "MySQL module running multithreaded"); --#else /* PTHREADS */ -- /* if debugging, let user know we are single threaded. */ -- mysql->log(ISC_LOG_DEBUG(1), "MySQL module running single threaded"); --#endif /* PTHREADS */ - - /* verify we have at least 4 arg's passed to the module */ - if (argc < 4) { -@@ -901,7 +880,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - free(tmp); - } - --#if PTHREADS - /* multithreaded build can have multiple DB connections */ - tmp = get_parameter_value(argv[1], "threads="); - if (tmp == NULL) { -@@ -934,7 +912,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - * append each new DBI to the end of the list - */ - for (i = 0; i < dbcount; i++) { --#endif /* PTHREADS */ - switch (argc) { - case 4: - result = build_dbinstance(NULL, NULL, NULL, argv[2], -@@ -973,17 +950,9 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* when multithreaded, build a list of DBI's */ - DLZ_LINK_INIT(dbi, link); - DLZ_LIST_APPEND(*(mysql->db), dbi, link); --#else /* if PTHREADS */ -- /* -- * when single threaded, hold onto the one connection -- * instance. -- */ -- mysql->db = dbi; --#endif /* if PTHREADS */ - - /* create and set db connection */ - dbi->dbconn = mysql_init(NULL); -@@ -1029,11 +998,9 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* set DBI = null for next loop through. */ - dbi = NULL; - } --#endif /* PTHREADS */ - - *dbdata = mysql; - -@@ -1051,14 +1018,10 @@ cleanup: - void - dlz_destroy(void *dbdata) { - mysql_instance_t *db = (mysql_instance_t *)dbdata; --#if PTHREADS - /* cleanup the list of DBI's */ - if (db->db != NULL) { - mysql_destroy_dblist((db_list_t *)(db->db)); - } --#else /* PTHREADS */ -- mysql_destroy(db); --#endif /* PTHREADS */ - - if (db->dbname != NULL) { - free(db->dbname); -diff --git a/contrib/dlz/modules/sqlite3/dlz_sqlite3_dynamic.c b/contrib/dlz/modules/sqlite3/dlz_sqlite3_dynamic.c -index c2a8958d6a..459ae7f68d 100644 ---- a/contrib/dlz/modules/sqlite3/dlz_sqlite3_dynamic.c -+++ b/contrib/dlz/modules/sqlite3/dlz_sqlite3_dynamic.c -@@ -59,12 +59,8 @@ - * many separate instances. - */ - typedef struct { --#if PTHREADS - db_list_t *db; /*%< handle to a list of DB */ - int dbcount; --#else /* if PTHREADS */ -- dbinstance_t *db; /*%< handle to DB */ --#endif /* if PTHREADS */ - - char *dbname; - -@@ -113,7 +109,6 @@ sqlite3_destroy(dbinstance_t *db) { - destroy_dbinstance(db); - } - --#if PTHREADS - /*% - * Properly cleans up a list of database instances. - * This function is only used when the module is compiled for -@@ -176,7 +171,6 @@ sqlite3_find_avail(sqlite3_instance_t *sqlite3) { - count); - return (NULL); - } --#endif /* PTHREADS */ - - /*% - * Allocates memory for a new string, and then constructs the new -@@ -252,16 +246,8 @@ sqlite3_get_resultset(const char *zone, const char *record, const char *client, - goto cleanup; - } - --#if PTHREADS - /* find an available DBI from the list */ - dbi = sqlite3_find_avail(db); --#else /* PTHREADS */ -- /* -- * only 1 DBI - no need to lock instance lock either -- * only 1 thread in the whole process, no possible contention. -- */ -- dbi = (dbinstance_t *)(db->db); --#endif /* PTHREADS */ - - if (dbi == NULL) { - return (ISC_R_FAILURE); -@@ -872,10 +858,8 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - char *tmp = NULL; - char *endp; - const char *helper_name; --#if PTHREADS - int dbcount; - int i, ret; --#endif /* PTHREADS */ - va_list ap; - - UNUSED(dlzname); -@@ -894,13 +878,8 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - } - va_end(ap); - --#if PTHREADS - /* if debugging, let user know we are multithreaded. */ - s3->log(ISC_LOG_DEBUG(1), "SQLite3 module: running multithreaded"); --#else /* PTHREADS */ -- /* if debugging, let user know we are single threaded. */ -- s3->log(ISC_LOG_DEBUG(1), "SQLite3 module: running single threaded"); --#endif /* PTHREADS */ - - /* verify we have at least 4 arg's passed to the module */ - if (argc < 4) { -@@ -925,7 +904,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* multithreaded build can have multiple DB connections */ - tmp = get_parameter_value(argv[1], "threads="); - if (tmp == NULL) { -@@ -958,7 +936,6 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - * append each new DBI to the end of the list - */ - for (i = 0; i < dbcount; i++) { --#endif /* PTHREADS */ - switch (argc) { - case 4: - result = build_dbinstance(NULL, NULL, NULL, argv[2], -@@ -1014,25 +991,15 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, - goto cleanup; - } - --#if PTHREADS - /* when multithreaded, build a list of DBI's */ - DLZ_LINK_INIT(dbi, link); - DLZ_LIST_APPEND(*(s3->db), dbi, link); --#else /* if PTHREADS */ -- /* -- * when single threaded, hold onto the one connection -- * instance. -- */ -- s3->db = dbi; --#endif /* if PTHREADS */ - - dbi->dbconn = dbc; - dbc = NULL; --#if PTHREADS - /* set DBI = null for next loop through. */ - dbi = NULL; - } --#endif /* PTHREADS */ - - *dbdata = s3; - return (ISC_R_SUCCESS); -@@ -1049,14 +1016,10 @@ cleanup: - void - dlz_destroy(void *dbdata) { - sqlite3_instance_t *db = (sqlite3_instance_t *)dbdata; --#if PTHREADS - /* cleanup the list of DBI's */ - if (db->db != NULL) { - sqlite3_destroy_dblist((db_list_t *)(db->db)); - } --#else /* PTHREADS */ -- sqlite3_destroy(db); --#endif /* PTHREADS */ - - if (db->dbname != NULL) { - free(db->dbname); --- -2.31.1 - diff --git a/bind-9.16-pthread-dlz.patch b/bind-9.16-pthread-dlz.patch index f78488b..627d235 100644 --- a/bind-9.16-pthread-dlz.patch +++ b/bind-9.16-pthread-dlz.patch @@ -1,33 +1,30 @@ -From ed812b09c091ba31c0c14b597ddbcfab47ce1cf3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= -Date: Fri, 21 Jan 2022 18:19:04 +0100 -Subject: [PATCH] Correct #ifdef broken by pthread removal +From 5996c73516ad1a21eff008145f4643d9eded2c80 Mon Sep 17 00:00:00 2001 +From: Evan Hunt +Date: Tue, 25 Jan 2022 12:28:48 -0800 +Subject: [PATCH] restore missing lines in dlz_pthread.h -Commit 2bf7921c7e93d43fa32fcfc9cd8e20d26c5f2084 has broken building of -ldap module. Initial #ifdef PTHREADS were removed without removing also -else and endif parts. DLZ modules do not compile anymore. +some lines were accidentally deleted during a backport that +made it imposisble to build DLZ modules. --- - contrib/dlz/modules/include/dlz_pthread.h | 8 -------- - 1 file changed, 8 deletions(-) + contrib/dlz/modules/include/dlz_pthread.h | 5 +++++ + 1 file changed, 5 insertions(+) diff --git a/contrib/dlz/modules/include/dlz_pthread.h b/contrib/dlz/modules/include/dlz_pthread.h -index c1b6db637e..10619d39b9 100644 +index c1b6db637e..4479f836c0 100644 --- a/contrib/dlz/modules/include/dlz_pthread.h +++ b/contrib/dlz/modules/include/dlz_pthread.h -@@ -26,13 +26,5 @@ - #define dlz_mutex_lock pthread_mutex_lock - #define dlz_mutex_trylock pthread_mutex_trylock - #define dlz_mutex_unlock pthread_mutex_unlock --#else /* !PTHREADS */ --#define dlz_mutex_t void --#define dlz_mutex_init(a, b) (0) --#define dlz_mutex_destroy(a) (0) --#define dlz_mutex_lock(a) (0) --#define dlz_mutex_trylock(a) (0) --#define dlz_mutex_unlock(a) (0) --#endif /* ifdef PTHREADS */ +@@ -19,6 +19,11 @@ + #ifndef DLZ_PTHREAD_H + #define DLZ_PTHREAD_H 1 - #endif /* DLZ_PTHREAD_H */ ++#ifndef PTHREADS ++#define PTHREADS 1 ++#endif /* ifndef PTHREADS */ ++ ++#ifdef PTHREADS + #include + #define dlz_mutex_t pthread_mutex_t + #define dlz_mutex_init pthread_mutex_init -- -2.31.1 +2.34.1 diff --git a/bind.spec b/bind.spec index 3cc6589..2627b6f 100644 --- a/bind.spec +++ b/bind.spec @@ -102,9 +102,8 @@ Patch149:bind-9.11-kyua-pkcs11.patch Patch157:bind-9.11-fips-tests.patch # https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2689 Patch164:bind-9.11-rh1666814.patch -# https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/5747 +# https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/5757 Patch165:bind-9.16-pthread-dlz.patch -Patch166:bind-9.16-pthread-dlz-threaded.patch %{?systemd_ordering} Requires: coreutils @@ -404,7 +403,6 @@ in HTML and PDF format. %patch157 -p1 -b .fips-tests %patch164 -p1 -b .rh1666814 %patch165 -p1 -b .pthread-dlz -%patch166 -p1 -b .pthreaded-dlz %if %{with PKCS11} %patch135 -p1 -b .config-pkcs11