diff --git a/cyrus-sasl-2.1.27-Migration-from-BerkeleyDB.patch b/cyrus-sasl-2.1.27-Migration-from-BerkeleyDB.patch index dc4a5eb..cc999e5 100644 --- a/cyrus-sasl-2.1.27-Migration-from-BerkeleyDB.patch +++ b/cyrus-sasl-2.1.27-Migration-from-BerkeleyDB.patch @@ -1,6 +1,6 @@ diff -up cyrus-sasl-2.1.27/configure.ac.frombdb cyrus-sasl-2.1.27/configure.ac ---- cyrus-sasl-2.1.27/configure.ac.frombdb 2021-04-28 15:36:37.313675329 +0200 -+++ cyrus-sasl-2.1.27/configure.ac 2021-04-28 15:36:37.320675385 +0200 +--- cyrus-sasl-2.1.27/configure.ac.frombdb 2021-06-04 13:02:07.790112263 +0200 ++++ cyrus-sasl-2.1.27/configure.ac 2021-06-04 13:02:07.798112327 +0200 @@ -1091,6 +1091,9 @@ AC_SUBST(SASL_STATIC_SRCS) AC_SUBST(SASL_STATIC_OBJS) AC_SUBST(SASL_STATIC_LIBS) @@ -13,7 +13,7 @@ diff -up cyrus-sasl-2.1.27/configure.ac.frombdb cyrus-sasl-2.1.27/configure.ac plugindir=$withval, diff -up cyrus-sasl-2.1.27/m4/berkdb.m4.frombdb cyrus-sasl-2.1.27/m4/berkdb.m4 --- cyrus-sasl-2.1.27/m4/berkdb.m4.frombdb 2016-01-29 18:35:35.000000000 +0100 -+++ cyrus-sasl-2.1.27/m4/berkdb.m4 2021-05-04 15:58:12.266748283 +0200 ++++ cyrus-sasl-2.1.27/m4/berkdb.m4 2021-06-04 13:02:07.798112327 +0200 @@ -286,3 +286,10 @@ AC_DEFUN([CYRUS_BERKELEY_DB_CHK], CPPFLAGS=$cmu_save_CPPFLAGS @@ -27,7 +27,7 @@ diff -up cyrus-sasl-2.1.27/m4/berkdb.m4.frombdb cyrus-sasl-2.1.27/m4/berkdb.m4 +]) diff -up cyrus-sasl-2.1.27/m4/sasldb.m4.frombdb cyrus-sasl-2.1.27/m4/sasldb.m4 --- cyrus-sasl-2.1.27/m4/sasldb.m4.frombdb 2017-07-13 20:45:19.000000000 +0200 -+++ cyrus-sasl-2.1.27/m4/sasldb.m4 2021-04-28 15:36:37.321675394 +0200 ++++ cyrus-sasl-2.1.27/m4/sasldb.m4 2021-06-04 13:02:07.798112327 +0200 @@ -111,7 +111,7 @@ AC_MSG_RESULT($dblib) SASL_DB_BACKEND="db_${dblib}.lo" SASL_DB_BACKEND_STATIC="db_${dblib}.o allockey.o" @@ -38,9 +38,17 @@ diff -up cyrus-sasl-2.1.27/m4/sasldb.m4.frombdb cyrus-sasl-2.1.27/m4/sasldb.m4 case "$dblib" in diff -up cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb cyrus-sasl-2.1.27/sasldb/db_gdbm.c ---- cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb 2021-04-28 15:49:23.729883976 +0200 -+++ cyrus-sasl-2.1.27/sasldb/db_gdbm.c 2021-04-28 15:51:52.107086685 +0200 -@@ -99,6 +99,9 @@ int _sasldb_getdata(const sasl_utils_t * +--- cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb 2017-07-13 14:34:03.000000000 +0200 ++++ cyrus-sasl-2.1.27/sasldb/db_gdbm.c 2021-06-04 13:04:24.098206887 +0200 +@@ -67,6 +67,7 @@ int _sasldb_getdata(const sasl_utils_t * + void *cntxt; + sasl_getopt_t *getopt; + const char *path = SASL_DB_PATH; ++ int fetch_errno = 0; + + if (!utils) return SASL_BADPARAM; + if (!authid || !propName || !realm || !out || !max_out) { +@@ -99,6 +100,9 @@ int _sasldb_getdata(const sasl_utils_t * } db = gdbm_open((char *)path, 0, GDBM_READER, S_IRUSR | S_IWUSR, NULL); if (! db) { @@ -50,7 +58,19 @@ diff -up cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb cyrus-sasl-2.1.27/sasldb/db_ utils->seterror(cntxt, 0, "Could not open %s: gdbm_errno=%d", path, gdbm_errno); result = SASL_FAIL; -@@ -186,7 +189,8 @@ int _sasldb_putdata(const sasl_utils_t * +@@ -107,9 +111,10 @@ int _sasldb_getdata(const sasl_utils_t * + gkey.dptr = key; + gkey.dsize = key_len; + gvalue = gdbm_fetch(db, gkey); ++ fetch_errno = gdbm_errno; + gdbm_close(db); + if (! gvalue.dptr) { +- if (gdbm_errno == GDBM_ITEM_NOT_FOUND) { ++ if (fetch_errno == GDBM_ITEM_NOT_FOUND) { + utils->seterror(conn, SASL_NOLOG, + "user: %s@%s property: %s not found in %s", + authid, realm, propName, path); +@@ -186,7 +191,8 @@ int _sasldb_putdata(const sasl_utils_t * if (! db) { utils->log(conn, SASL_LOG_ERR, "SASL error opening password file. " @@ -60,7 +80,7 @@ diff -up cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb cyrus-sasl-2.1.27/sasldb/db_ utils->seterror(conn, 0, "Could not open %s for write: gdbm_errno=%d", path, gdbm_errno); result = SASL_FAIL; -@@ -298,6 +302,9 @@ sasldb_handle _sasldb_getkeyhandle(const +@@ -298,6 +304,9 @@ sasldb_handle _sasldb_getkeyhandle(const db = gdbm_open((char *)path, 0, GDBM_READER, S_IRUSR | S_IWUSR, NULL); if(!db) { @@ -71,8 +91,8 @@ diff -up cyrus-sasl-2.1.27/sasldb/db_gdbm.c.frombdb cyrus-sasl-2.1.27/sasldb/db_ path, gdbm_errno); return NULL; diff -up cyrus-sasl-2.1.27/utils/cyrusbdb2current.8.frombdb cyrus-sasl-2.1.27/utils/cyrusbdb2current.8 ---- cyrus-sasl-2.1.27/utils/cyrusbdb2current.8.frombdb 2021-04-28 15:36:37.321675394 +0200 -+++ cyrus-sasl-2.1.27/utils/cyrusbdb2current.8 2021-04-28 15:36:37.321675394 +0200 +--- cyrus-sasl-2.1.27/utils/cyrusbdb2current.8.frombdb 2021-06-04 13:02:07.798112327 +0200 ++++ cyrus-sasl-2.1.27/utils/cyrusbdb2current.8 2021-06-04 13:02:07.798112327 +0200 @@ -0,0 +1,159 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" @@ -234,8 +254,8 @@ diff -up cyrus-sasl-2.1.27/utils/cyrusbdb2current.8.frombdb cyrus-sasl-2.1.27/ut +.PP +rfc4422 \- Simple Authentication and Security Layer (\s-1SASL\s0) diff -up cyrus-sasl-2.1.27/utils/cyrusbdb2current.c.frombdb cyrus-sasl-2.1.27/utils/cyrusbdb2current.c ---- cyrus-sasl-2.1.27/utils/cyrusbdb2current.c.frombdb 2021-04-28 15:36:37.321675394 +0200 -+++ cyrus-sasl-2.1.27/utils/cyrusbdb2current.c 2021-04-28 15:36:37.321675394 +0200 +--- cyrus-sasl-2.1.27/utils/cyrusbdb2current.c.frombdb 2021-06-04 13:02:07.798112327 +0200 ++++ cyrus-sasl-2.1.27/utils/cyrusbdb2current.c 2021-06-04 13:02:07.798112327 +0200 @@ -0,0 +1,282 @@ +#include + @@ -521,7 +541,7 @@ diff -up cyrus-sasl-2.1.27/utils/cyrusbdb2current.c.frombdb cyrus-sasl-2.1.27/ut +} diff -up cyrus-sasl-2.1.27/utils/Makefile.am.frombdb cyrus-sasl-2.1.27/utils/Makefile.am --- cyrus-sasl-2.1.27/utils/Makefile.am.frombdb 2018-10-05 16:40:16.000000000 +0200 -+++ cyrus-sasl-2.1.27/utils/Makefile.am 2021-04-28 15:36:37.321675394 +0200 ++++ cyrus-sasl-2.1.27/utils/Makefile.am 2021-06-04 13:02:07.798112327 +0200 @@ -46,14 +46,14 @@ all_sasl_libs = ../lib/libsasl2.la $(SAS all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) diff --git a/cyrus-sasl.spec b/cyrus-sasl.spec index fd3a48e..19d3df7 100644 --- a/cyrus-sasl.spec +++ b/cyrus-sasl.spec @@ -9,7 +9,7 @@ Summary: The Cyrus SASL library Name: cyrus-sasl Version: 2.1.27 -Release: 11%{?dist} +Release: 12%{?dist} License: BSD with advertising URL: https://www.cyrusimap.org/sasl/ @@ -389,6 +389,11 @@ getent passwd %{username} >/dev/null || useradd -r -g %{username} -d %{homedir} %{_sbindir}/sasl2-shared-mechlist %changelog +* Fri Jun 04 2021 Dmitry Belyavskiy - 2.1.27-12 +- Incorporate the upstream gdbm specific patch from + https://github.com/cyrusimap/cyrus-sasl/pull/554 +- Resolves rhbz#1947971 + * Wed Apr 28 2021 Dmitry Belyavskiy - 2.1.27-11 - Set default sasldb database to GDBM instead of BerkeleyDB - Add the migration tool from BerkeleyDB