From b8d7d0ed50f8532fdae81343d1f648c213d40fbd Mon Sep 17 00:00:00 2001 From: Thierry Bordaz Date: Wed, 19 May 2021 15:04:22 +0200 Subject: [PATCH] Issue 4765 - database suffix unexpectdly changed from .db to .db4 (#4766) --- ...-Issue-4765-database-suffix-on-2-0-4.patch | 182 ++++++++++++++++++ 389-ds-base.spec | 55 +++--- sources | 2 +- 3 files changed, 212 insertions(+), 27 deletions(-) create mode 100644 0000-Issue-4765-database-suffix-on-2-0-4.patch diff --git a/0000-Issue-4765-database-suffix-on-2-0-4.patch b/0000-Issue-4765-database-suffix-on-2-0-4.patch new file mode 100644 index 0000000..19f3c10 --- /dev/null +++ b/0000-Issue-4765-database-suffix-on-2-0-4.patch @@ -0,0 +1,182 @@ +From bbdf47a9252040a5e42e015cb636380b88e9caa8 Mon Sep 17 00:00:00 2001 +From: Thierry Bordaz +Date: Tue, 18 May 2021 19:16:30 +0200 +Subject: [PATCH] Issue 4765 - database suffix unexpectdly changed from .db to + .db4 (#4766) + +* Issue 4765 - database suffix unexpectdly changed from .db to .db4 + +* Issue 4765 - database suffix unexpectdly changed from .db to .db4 - fix some compilation warnings +--- + ldap/servers/slapd/back-ldbm/back-ldbm.h | 9 --------- + ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c | 1 + + ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c | 5 +++++ + ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h | 11 +++++++++++ + ldap/servers/slapd/back-ldbm/dblayer.c | 9 +++++++++ + ldap/servers/slapd/back-ldbm/dblayer.h | 3 +++ + ldap/servers/slapd/back-ldbm/proto-back-ldbm.h | 2 ++ + ldap/servers/slapd/back-ldbm/vlv_srch.c | 2 +- + 8 files changed, 32 insertions(+), 10 deletions(-) + +diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h +index ddac99541..50b0996cb 100644 +--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h ++++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h +@@ -66,14 +66,6 @@ typedef unsigned short u_int16_t; + + #define ID2ENTRY "id2entry" /* main db file name: ID2ENTRY+LDBM_SUFFIX */ + +-#if 1000 * DB_VERSION_MAJOR + 100 * DB_VERSION_MINOR >= 5000 +-#define LDBM_SUFFIX_OLD ".db4" +-#define LDBM_SUFFIX ".db" +-#else +-#define LDBM_SUFFIX_OLD ".db3" +-#define LDBM_SUFFIX ".db4" +-#endif +- + #define MEGABYTE (1024 * 1024) + #define GIGABYTE (1024 * MEGABYTE) + +@@ -143,7 +135,6 @@ typedef unsigned short u_int16_t; + #define LDBM_VERSION_40 "Netscape-ldbm/4.0" + #define LDBM_VERSION_30 "Netscape-ldbm/3.0" + #define LDBM_VERSION_31 "Netscape-ldbm/3.1" +-#define LDBM_FILENAME_SUFFIX LDBM_SUFFIX + #define DBVERSION_FILENAME "DBVERSION" + /* 0 here means to let the autotuning reset the value on first run */ + /* cache can't get any smaller than this (in bytes) */ +diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c +index 65a2405d8..11a65e806 100644 +--- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c ++++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c +@@ -125,6 +125,7 @@ int bdb_init(struct ldbminfo *li, config_info *config_array) + priv->dblayer_dbi_txn_abort_fn = &bdb_dbi_txn_abort; + priv->dblayer_get_entries_count_fn = &bdb_get_entries_count; + priv->dblayer_cursor_get_count_fn = &bdb_public_cursor_get_count; ++ priv->dblayer_get_db_suffix_fn = &bdb_public_get_db_suffix; + + bdb_fake_priv = *priv; /* Copy the callbaks for bdb_be() */ + return 0; +diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c +index 186c11cc3..455596a92 100644 +--- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c ++++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c +@@ -6713,3 +6713,8 @@ bdb_public_cursor_get_count(dbi_cursor_t *cursor, dbi_recno_t *count) + int rc = cur->c_count(cur, count, 0); + return bdb_map_error(__FUNCTION__, rc); + } ++ ++const char *bdb_public_get_db_suffix(void) ++{ ++ return LDBM_FILENAME_SUFFIX; ++} +diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h +index 32430e2af..924656998 100644 +--- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h ++++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h +@@ -13,6 +13,16 @@ + + #define BDB_CONFIG(li) ((bdb_config *)(li)->li_dblayer_config) + ++#if 1000 * DB_VERSION_MAJOR + 100 * DB_VERSION_MINOR >= 5000 ++#define LDBM_SUFFIX_OLD ".db4" ++#define LDBM_SUFFIX ".db" ++#else ++#define LDBM_SUFFIX_OLD ".db3" ++#define LDBM_SUFFIX ".db4" ++#endif ++ ++#define LDBM_FILENAME_SUFFIX LDBM_SUFFIX ++ + typedef struct bdb_db_env + { + DB_ENV *bdb_DB_ENV; +@@ -133,6 +143,7 @@ dblayer_dbi_txn_commit_fn_t bdb_dbi_txn_commit; + dblayer_dbi_txn_abort_fn_t bdb_dbi_txn_abort; + dblayer_get_entries_count_fn_t bdb_get_entries_count; + dblayer_cursor_get_count_fn_t bdb_public_cursor_get_count; ++dblayer_get_db_suffix_fn_t bdb_public_get_db_suffix; + + /* instance functions */ + int bdb_instance_cleanup(struct ldbm_instance *inst); +diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c +index c5ff6cba9..bf56df42a 100644 +--- a/ldap/servers/slapd/back-ldbm/dblayer.c ++++ b/ldap/servers/slapd/back-ldbm/dblayer.c +@@ -1370,3 +1370,12 @@ dblayer_pop_pvt_txn(void) + } + return; + } ++ ++const char * ++dblayer_get_db_suffix(Slapi_Backend *be) ++{ ++ struct ldbminfo *li = be ? (struct ldbminfo *)be->be_database->plg_private : NULL; ++ dblayer_private *prv = li ? (dblayer_private *)li->li_dblayer_private : NULL; ++ ++ return prv ? prv->dblayer_get_db_suffix_fn() : NULL; ++} +diff --git a/ldap/servers/slapd/back-ldbm/dblayer.h b/ldap/servers/slapd/back-ldbm/dblayer.h +index 99acfd1ab..051035f3f 100644 +--- a/ldap/servers/slapd/back-ldbm/dblayer.h ++++ b/ldap/servers/slapd/back-ldbm/dblayer.h +@@ -109,6 +109,7 @@ typedef int dblayer_dbi_txn_commit_fn_t(dbi_txn_t *txn); + typedef int dblayer_dbi_txn_abort_fn_t(dbi_txn_t *txn); + typedef int dblayer_get_entries_count_fn_t(dbi_db_t *db, int *count); + typedef int dblayer_cursor_get_count_fn_t(dbi_cursor_t *cursor, dbi_recno_t *count); ++typedef const char *dblayer_get_db_suffix_fn_t(void); + + struct dblayer_private + { +@@ -178,6 +179,7 @@ struct dblayer_private + dblayer_dbi_txn_abort_fn_t *dblayer_dbi_txn_abort_fn; + dblayer_get_entries_count_fn_t *dblayer_get_entries_count_fn; + dblayer_cursor_get_count_fn_t *dblayer_cursor_get_count_fn; ++ dblayer_get_db_suffix_fn_t *dblayer_get_db_suffix_fn; + }; + + #define DBLAYER_PRIV_SET_DATA_DIR 0x1 +@@ -188,6 +190,7 @@ back_txn *dblayer_get_pvt_txn(void); + void dblayer_pop_pvt_txn(void); + + int dblayer_delete_indices(ldbm_instance *inst); ++const char *dblayer_get_db_suffix(Slapi_Backend *be); + + + /* Return the last four characters of a string; used for comparing extensions. */ +diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h +index 22f2d1103..dbe5dca73 100644 +--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h ++++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h +@@ -142,6 +142,8 @@ void dblayer_restore_file_update(struct ldbminfo *li, char *directory); + int dblayer_import_file_init(ldbm_instance *inst); + void dblayer_import_file_update(ldbm_instance *inst); + int dblayer_import_file_check(ldbm_instance *inst); ++const char *dblayer_get_db_suffix(Slapi_Backend *be); ++ + + /* + * dn2entry.c +diff --git a/ldap/servers/slapd/back-ldbm/vlv_srch.c b/ldap/servers/slapd/back-ldbm/vlv_srch.c +index 4dd3804c9..6fd1b3880 100644 +--- a/ldap/servers/slapd/back-ldbm/vlv_srch.c ++++ b/ldap/servers/slapd/back-ldbm/vlv_srch.c +@@ -30,7 +30,6 @@ char *const type_vlvEnabled = "vlvEnabled"; + char *const type_vlvUses = "vlvUses"; + + static const char *file_prefix = "vlv#"; /* '#' used to avoid collision with real attributes */ +-static const char *file_suffix = LDBM_FILENAME_SUFFIX; + + static int vlvIndex_createfilename(struct vlvIndex *pIndex, char **ppc); + +@@ -514,6 +513,7 @@ void + vlvIndex_init(struct vlvIndex *p, backend *be, struct vlvSearch *pSearch, const Slapi_Entry *e) + { + struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private; ++ const char *file_suffix = dblayer_get_db_suffix(be); + char *filename = NULL; + + if (NULL == p) +-- +2.30.2 + diff --git a/389-ds-base.spec b/389-ds-base.spec index f1a8bb2..5a791ca 100644 --- a/389-ds-base.spec +++ b/389-ds-base.spec @@ -62,6 +62,7 @@ Provides: bundled(crate(ahash)) = 0.7.2 Provides: bundled(crate(ansi_term)) = 0.11.0 Provides: bundled(crate(atty)) = 0.2.14 Provides: bundled(crate(autocfg)) = 1.0.1 +Provides: bundled(crate(base64)) = 0.10.1 Provides: bundled(crate(base64)) = 0.13.0 Provides: bundled(crate(bitflags)) = 1.2.1 Provides: bundled(crate(byteorder)) = 1.4.3 @@ -69,78 +70,81 @@ Provides: bundled(crate(cbindgen)) = 0.9.1 Provides: bundled(crate(cc)) = 1.0.67 Provides: bundled(crate(cfg-if)) = 1.0.0 Provides: bundled(crate(clap)) = 2.33.3 -Provides: bundled(crate(concread)) = 0.2.12 +Provides: bundled(crate(concread)) = 0.2.8 Provides: bundled(crate(crossbeam)) = 0.8.0 -Provides: bundled(crate(crossbeam-channel)) = 0.5.1 +Provides: bundled(crate(crossbeam-channel)) = 0.5.0 Provides: bundled(crate(crossbeam-deque)) = 0.8.0 -Provides: bundled(crate(crossbeam-epoch)) = 0.9.4 +Provides: bundled(crate(crossbeam-epoch)) = 0.9.3 Provides: bundled(crate(crossbeam-queue)) = 0.3.1 -Provides: bundled(crate(crossbeam-utils)) = 0.8.4 +Provides: bundled(crate(crossbeam-utils)) = 0.8.3 Provides: bundled(crate(entryuuid)) = 0.1.0 Provides: bundled(crate(entryuuid_syntax)) = 0.1.0 -Provides: bundled(crate(fernet)) = 0.1.4 +Provides: bundled(crate(fernet)) = 0.1.3 Provides: bundled(crate(foreign-types)) = 0.3.2 Provides: bundled(crate(foreign-types-shared)) = 0.1.1 +Provides: bundled(crate(getrandom)) = 0.1.16 Provides: bundled(crate(getrandom)) = 0.2.2 Provides: bundled(crate(hermit-abi)) = 0.1.18 Provides: bundled(crate(instant)) = 0.1.9 Provides: bundled(crate(itoa)) = 0.4.7 -Provides: bundled(crate(jobserver)) = 0.1.22 +Provides: bundled(crate(jobserver)) = 0.1.21 Provides: bundled(crate(lazy_static)) = 1.4.0 -Provides: bundled(crate(libc)) = 0.2.94 +Provides: bundled(crate(libc)) = 0.2.89 Provides: bundled(crate(librnsslapd)) = 0.1.0 Provides: bundled(crate(librslapd)) = 0.1.0 -Provides: bundled(crate(lock_api)) = 0.4.4 +Provides: bundled(crate(lock_api)) = 0.4.2 Provides: bundled(crate(log)) = 0.4.14 -Provides: bundled(crate(memoffset)) = 0.6.3 +Provides: bundled(crate(memoffset)) = 0.6.1 +Provides: bundled(crate(num)) = 0.3.1 +Provides: bundled(crate(num-bigint)) = 0.3.2 +Provides: bundled(crate(num-complex)) = 0.3.1 +Provides: bundled(crate(num-integer)) = 0.1.44 +Provides: bundled(crate(num-iter)) = 0.1.42 +Provides: bundled(crate(num-rational)) = 0.3.2 +Provides: bundled(crate(num-traits)) = 0.2.14 Provides: bundled(crate(once_cell)) = 1.7.2 -Provides: bundled(crate(openssl)) = 0.10.34 -Provides: bundled(crate(openssl-sys)) = 0.9.63 +Provides: bundled(crate(openssl)) = 0.10.33 +Provides: bundled(crate(openssl-sys)) = 0.9.61 Provides: bundled(crate(parking_lot)) = 0.11.1 Provides: bundled(crate(parking_lot_core)) = 0.8.3 Provides: bundled(crate(paste)) = 0.1.18 Provides: bundled(crate(paste-impl)) = 0.1.18 -Provides: bundled(crate(pin-project-lite)) = 0.2.6 Provides: bundled(crate(pkg-config)) = 0.3.19 Provides: bundled(crate(ppv-lite86)) = 0.2.10 Provides: bundled(crate(proc-macro-hack)) = 0.5.19 -Provides: bundled(crate(proc-macro2)) = 1.0.26 +Provides: bundled(crate(proc-macro2)) = 1.0.24 Provides: bundled(crate(pwdchan)) = 0.1.0 Provides: bundled(crate(quote)) = 1.0.9 Provides: bundled(crate(rand)) = 0.8.3 Provides: bundled(crate(rand_chacha)) = 0.3.0 Provides: bundled(crate(rand_core)) = 0.6.2 Provides: bundled(crate(rand_hc)) = 0.3.0 -Provides: bundled(crate(redox_syscall)) = 0.2.8 +Provides: bundled(crate(redox_syscall)) = 0.2.5 Provides: bundled(crate(remove_dir_all)) = 0.5.3 Provides: bundled(crate(ryu)) = 1.0.5 Provides: bundled(crate(scopeguard)) = 1.1.0 -Provides: bundled(crate(serde)) = 1.0.126 -Provides: bundled(crate(serde_derive)) = 1.0.126 +Provides: bundled(crate(serde)) = 1.0.124 +Provides: bundled(crate(serde_derive)) = 1.0.124 Provides: bundled(crate(serde_json)) = 1.0.64 Provides: bundled(crate(slapd)) = 0.1.0 Provides: bundled(crate(slapi_r_plugin)) = 0.1.0 Provides: bundled(crate(smallvec)) = 1.6.1 Provides: bundled(crate(strsim)) = 0.8.0 -Provides: bundled(crate(syn)) = 1.0.72 -Provides: bundled(crate(synstructure)) = 0.12.4 +Provides: bundled(crate(syn)) = 1.0.64 Provides: bundled(crate(tempfile)) = 3.2.0 Provides: bundled(crate(textwrap)) = 0.11.0 -Provides: bundled(crate(tokio)) = 1.6.0 -Provides: bundled(crate(tokio-macros)) = 1.2.0 Provides: bundled(crate(toml)) = 0.5.8 Provides: bundled(crate(unicode-width)) = 0.1.8 -Provides: bundled(crate(unicode-xid)) = 0.2.2 +Provides: bundled(crate(unicode-xid)) = 0.2.1 Provides: bundled(crate(uuid)) = 0.8.2 -Provides: bundled(crate(vcpkg)) = 0.2.12 +Provides: bundled(crate(vcpkg)) = 0.2.11 Provides: bundled(crate(vec_map)) = 0.8.2 Provides: bundled(crate(version_check)) = 0.9.3 Provides: bundled(crate(wasi)) = 0.10.2+wasi_snapshot_preview1 +Provides: bundled(crate(wasi)) = 0.9.0+wasi_snapshot_preview1 Provides: bundled(crate(winapi)) = 0.3.9 Provides: bundled(crate(winapi-i686-pc-windows-gnu)) = 0.4.0 Provides: bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0 -Provides: bundled(crate(zeroize)) = 1.3.0 -Provides: bundled(crate(zeroize_derive)) = 1.1.0 ##### Bundled cargo crates list - END ##### BuildRequires: nspr-devel @@ -250,6 +254,7 @@ Requires: perl-Archive-Tar Obsoletes: %{name} <= 1.3.5.4 Source0: https://releases.pagure.org/389-ds-base/%{name}-%{version}%{?prerel}.tar.bz2 +Patch0: 0000-Issue-4765-database-suffix-on-2-0-4.patch # 389-ds-git.sh should be used to generate the source tarball from git Source1: %{name}-git.sh Source2: %{name}-devel.README @@ -355,7 +360,6 @@ A cockpit UI Plugin for configuring and administering the 389 Directory Server %prep %autosetup -p1 -v -n %{name}-%{version}%{?prerel} -%setup -q -n %{name}-%{version}%{?prerel} %if %{bundle_jemalloc} %setup -q -n %{name}-%{version}%{?prerel} -T -D -b 3 @@ -701,7 +705,6 @@ exit 0 %changelog * Wed May 19 2021 Thierry Bordaz - 2.0.4-3 -- Bump version to 2.0.4.3 - Issue 4765 - database suffix unexpectdly changed from .db to .db4 (#4766) * Fri May 07 2021 Viktor Ashirov - 2.0.4-2 diff --git a/sources b/sources index 145b639..a7c9b26 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (jemalloc-5.2.1.tar.bz2) = 0bbb77564d767cef0c6fe1b97b705d368ddb360d55596945aea8c3ba5889fbce10479d85ad492c91d987caacdbbdccc706aa3688e321460069f00c05814fae02 -SHA512 (389-ds-base-2.0.4.3.tar.bz2) = f7d4f3d9d6a74fd63c0267dd8d2d16e33890d02cb94148411d79f3ab3ff599fad7d8dc19adcab6edf9a29a966a2de76767eb184211eac787455e889cf14c5da3 +SHA512 (389-ds-base-2.0.4.tar.bz2) = accf7bbcd36c2ff52cca6f4ab3a58b5842938766981ff321b03d2e6adaab9c328253bee5b57cd9f43d0f047aca50f9aea880508ae4ca5d836c65ba7dc67b142a