From b4fc291a94033c577af278a0b173ec49312ded94 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Thu, 12 Jun 2025 10:31:40 +0300 Subject: [PATCH] Import CS git --- .389-ds-base.metadata | 2 +- .gitignore | 2 +- ...e-concread-to-0.5.4-and-refactor-sta.patch | 894 ------------------ ...-1.4.3.39-2.lock => Cargo-1.4.3.39-3.lock} | 430 ++++----- SOURCES/cargo.patch | 27 - SPECS/389-ds-base.spec | 97 +- 6 files changed, 256 insertions(+), 1196 deletions(-) delete mode 100644 SOURCES/0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch rename SOURCES/{Cargo-1.4.3.39-2.lock => Cargo-1.4.3.39-3.lock} (79%) delete mode 100644 SOURCES/cargo.patch diff --git a/.389-ds-base.metadata b/.389-ds-base.metadata index 03d181f..fcd3114 100644 --- a/.389-ds-base.metadata +++ b/.389-ds-base.metadata @@ -1,3 +1,3 @@ bd9aab32d9cbf9231058d585479813f3420dc872 SOURCES/389-ds-base-1.4.3.39.tar.bz2 1c8f2d0dfbf39fa8cd86363bf3314351ab21f8d4 SOURCES/jemalloc-5.3.0.tar.bz2 -be91d7a64f7abbba6d6e40d8b23d1e3f95ea3949 SOURCES/vendor-1.4.3.39-2.tar.gz +8d3275209f2f8e1a69053340930ad1fb037d61fb SOURCES/vendor-1.4.3.39-3.tar.gz diff --git a/.gitignore b/.gitignore index a73cca6..f182e5a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ SOURCES/389-ds-base-1.4.3.39.tar.bz2 SOURCES/jemalloc-5.3.0.tar.bz2 -SOURCES/vendor-1.4.3.39-2.tar.gz +SOURCES/vendor-1.4.3.39-3.tar.gz diff --git a/SOURCES/0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch b/SOURCES/0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch deleted file mode 100644 index 7b35d50..0000000 --- a/SOURCES/0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch +++ /dev/null @@ -1,894 +0,0 @@ -From c243d7aa593046a7037188f0bf060caa1865a1f8 Mon Sep 17 00:00:00 2001 -From: Simon Pichugin -Date: Wed, 19 Feb 2025 18:56:34 -0800 -Subject: [PATCH] Issue 6553 - Update concread to 0.5.4 and refactor statistics - tracking (#6607) - -Description: Implement new cache statistics tracking with atomic counters -and dedicated stats structs. -Update concread dependency to 0.5.4 for improved cache performance. -Add tests for cache statistics functionality. - -Fixes: https://github.com/389ds/389-ds-base/issues/6553 - -Reviewed by: @firstyear ---- - ldap/servers/slapd/dn.c | 4 +- - src/Cargo.lock | 272 +++++++++++++----------------- - src/librslapd/Cargo.toml | 5 +- - src/librslapd/src/cache.rs | 331 +++++++++++++++++++++++++++++++++---- - 4 files changed, 418 insertions(+), 194 deletions(-) - -diff --git a/ldap/servers/slapd/dn.c b/ldap/servers/slapd/dn.c -index 518e091d5..469ba6a71 100644 ---- a/ldap/servers/slapd/dn.c -+++ b/ldap/servers/slapd/dn.c -@@ -101,7 +101,7 @@ struct ndn_cache { - - /* - * This means we need 1 MB minimum per thread -- * -+ * - */ - #define NDN_CACHE_MINIMUM_CAPACITY 1048576 - /* -@@ -3404,7 +3404,7 @@ ndn_cache_get_stats(uint64_t *hits, uint64_t *tries, uint64_t *size, uint64_t *m - uint64_t freq_evicts; - uint64_t recent_evicts; - uint64_t p_weight; -- cache_char_stats(cache, -+ cache_char_stats(cache, - &reader_hits, - &reader_includes, - &write_hits, -diff --git a/src/Cargo.lock b/src/Cargo.lock -index 4667a17f1..908b5f639 100644 ---- a/src/Cargo.lock -+++ b/src/Cargo.lock -@@ -19,23 +19,28 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - - [[package]] - name = "ahash" --version = "0.7.7" -+version = "0.8.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" - dependencies = [ -- "getrandom", -+ "cfg-if", -+ "getrandom 0.2.15", - "once_cell", - "version_check", -+ "zerocopy", - ] - - [[package]] --name = "ansi_term" --version = "0.12.1" -+name = "allocator-api2" -+version = "0.2.21" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" --dependencies = [ -- "winapi", --] -+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -+ -+[[package]] -+name = "arc-swap" -+version = "1.7.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" - - [[package]] - name = "atty" -@@ -143,51 +148,20 @@ dependencies = [ - - [[package]] - name = "concread" --version = "0.2.21" -+version = "0.5.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcc9816f5ac93ebd51c37f7f9a6bf2b40dfcd42978ad2aea5d542016e9244cf6" -+checksum = "0a06c26e76cd1d7a88a44324d0cf18b11589be552e97af09bee345f7e7334c6d" - dependencies = [ - "ahash", -- "crossbeam", -+ "arc-swap", - "crossbeam-epoch", -+ "crossbeam-queue", - "crossbeam-utils", - "lru", -- "parking_lot", -- "rand", - "smallvec", -+ "sptr", - "tokio", --] -- --[[package]] --name = "crossbeam" --version = "0.8.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" --dependencies = [ -- "crossbeam-channel", -- "crossbeam-deque", -- "crossbeam-epoch", -- "crossbeam-queue", -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-channel" --version = "0.5.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" --dependencies = [ -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-deque" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" --dependencies = [ -- "crossbeam-epoch", -- "crossbeam-utils", -+ "tracing", - ] - - [[package]] -@@ -236,6 +210,12 @@ dependencies = [ - "uuid", - ] - -+[[package]] -+name = "equivalent" -+version = "1.0.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -+ - [[package]] - name = "errno" - version = "0.3.8" -@@ -265,6 +245,12 @@ dependencies = [ - "zeroize", - ] - -+[[package]] -+name = "foldhash" -+version = "0.1.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" -+ - [[package]] - name = "foreign-types" - version = "0.3.2" -@@ -302,8 +288,16 @@ name = "hashbrown" - version = "0.12.3" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -+ -+[[package]] -+name = "hashbrown" -+version = "0.15.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - dependencies = [ -- "ahash", -+ "allocator-api2", -+ "equivalent", -+ "foldhash", - ] - - [[package]] -@@ -316,12 +310,13 @@ dependencies = [ - ] - - [[package]] --name = "instant" --version = "0.1.12" -+name = "indexmap" -+version = "1.9.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" - dependencies = [ -- "cfg-if", -+ "autocfg", -+ "hashbrown 0.12.3", - ] - - [[package]] -@@ -370,16 +365,6 @@ version = "0.4.12" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" - --[[package]] --name = "lock_api" --version = "0.4.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" --dependencies = [ -- "autocfg", -- "scopeguard", --] -- - [[package]] - name = "log" - version = "0.4.20" -@@ -388,11 +373,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - - [[package]] - name = "lru" --version = "0.7.8" -+version = "0.13.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" -+checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" - dependencies = [ -- "hashbrown", -+ "hashbrown 0.15.2", - ] - - [[package]] -@@ -464,29 +449,10 @@ dependencies = [ - ] - - [[package]] --name = "parking_lot" --version = "0.11.2" -+name = "os_str_bytes" -+version = "6.6.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" --dependencies = [ -- "instant", -- "lock_api", -- "parking_lot_core", --] -- --[[package]] --name = "parking_lot_core" --version = "0.8.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" --dependencies = [ -- "cfg-if", -- "instant", -- "libc", -- "redox_syscall 0.2.16", -- "smallvec", -- "winapi", --] -+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - - [[package]] - name = "paste" -@@ -519,12 +485,6 @@ version = "0.3.28" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" - --[[package]] --name = "ppv-lite86" --version = "0.2.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -- - [[package]] - name = "proc-macro-hack" - version = "0.5.20+deprecated" -@@ -562,54 +522,6 @@ dependencies = [ - "proc-macro2", - ] - --[[package]] --name = "rand" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" --dependencies = [ -- "libc", -- "rand_chacha", -- "rand_core", --] -- --[[package]] --name = "rand_chacha" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" --dependencies = [ -- "ppv-lite86", -- "rand_core", --] -- --[[package]] --name = "rand_core" --version = "0.6.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" --dependencies = [ -- "getrandom", --] -- --[[package]] --name = "redox_syscall" --version = "0.2.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" --dependencies = [ -- "bitflags 1.3.2", --] -- --[[package]] --name = "redox_syscall" --version = "0.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" --dependencies = [ -- "bitflags 1.3.2", --] -- - [[package]] - name = "rsds" - version = "0.1.0" -@@ -639,12 +551,6 @@ version = "1.0.16" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" - --[[package]] --name = "scopeguard" --version = "1.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -- - [[package]] - name = "serde" - version = "1.0.195" -@@ -698,6 +604,12 @@ version = "1.12.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e" - -+[[package]] -+name = "sptr" -+version = "0.3.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" -+ - [[package]] - name = "strsim" - version = "0.8.0" -@@ -756,27 +668,46 @@ checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" - dependencies = [ - "backtrace", - "pin-project-lite", -- "tokio-macros", - ] - - [[package]] --name = "tokio-macros" --version = "2.2.0" -+name = "toml" -+version = "0.5.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -+dependencies = [ -+ "serde", -+] -+ -+[[package]] -+name = "tracing" -+version = "0.1.41" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -+dependencies = [ -+ "pin-project-lite", -+ "tracing-attributes", -+ "tracing-core", -+] -+ -+[[package]] -+name = "tracing-attributes" -+version = "0.1.28" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.48", -+ "syn 2.0.98", - ] - - [[package]] --name = "toml" --version = "0.5.11" -+name = "tracing-core" -+version = "0.1.33" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -+checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" - dependencies = [ -- "serde", -+ "once_cell", - ] - - [[package]] -@@ -910,7 +841,36 @@ checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - name = "windows_x86_64_msvc" - version = "0.52.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" -+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -+ -+[[package]] -+name = "wit-bindgen-rt" -+version = "0.33.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -+dependencies = [ -+ "bitflags 2.8.0", -+] -+ -+[[package]] -+name = "zerocopy" -+version = "0.7.35" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -+dependencies = [ -+ "zerocopy-derive", -+] -+ -+[[package]] -+name = "zerocopy-derive" -+version = "0.7.35" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -+dependencies = [ -+ "proc-macro2", -+ "quote", -+ "syn 2.0.98", -+] - - [[package]] - name = "zeroize" -diff --git a/src/librslapd/Cargo.toml b/src/librslapd/Cargo.toml -index fb445c251..6d9b621fc 100644 ---- a/src/librslapd/Cargo.toml -+++ b/src/librslapd/Cargo.toml -@@ -16,8 +16,7 @@ crate-type = ["staticlib", "lib"] - [dependencies] - slapd = { path = "../slapd" } - libc = "0.2" --concread = "^0.2.20" -+concread = "0.5.4" - - [build-dependencies] --cbindgen = "0.9" -- -+cbindgen = "0.26" -diff --git a/src/librslapd/src/cache.rs b/src/librslapd/src/cache.rs -index b025c830a..e3c692865 100644 ---- a/src/librslapd/src/cache.rs -+++ b/src/librslapd/src/cache.rs -@@ -1,38 +1,171 @@ - // This exposes C-FFI capable bindings for the concread concurrently readable cache. -+use concread::arcache::stats::{ARCacheWriteStat, ReadCountStat}; - use concread::arcache::{ARCache, ARCacheBuilder, ARCacheReadTxn, ARCacheWriteTxn}; --use std::convert::TryInto; -+use concread::cowcell::CowCell; - use std::ffi::{CStr, CString}; - use std::os::raw::c_char; - -+#[derive(Clone, Debug, Default)] -+struct CacheStats { -+ reader_hits: u64, // Hits from read transactions (main + local) -+ reader_includes: u64, // Number of includes from read transactions -+ write_hits: u64, // Hits from write transactions -+ write_inc_or_mod: u64, // Number of includes/modifications from write transactions -+ freq_evicts: u64, // Number of evictions from frequent set -+ recent_evicts: u64, // Number of evictions from recent set -+ p_weight: u64, // Current cache weight between recent and frequent. -+ shared_max: u64, // Maximum number of items in the shared cache. -+ freq: u64, // Number of items in the frequent set at this point in time. -+ recent: u64, // Number of items in the recent set at this point in time. -+ all_seen_keys: u64, // Number of total keys seen through the cache's lifetime. -+} -+ -+impl CacheStats { -+ fn new() -> Self { -+ CacheStats::default() -+ } -+ -+ fn update_from_read_stat(&mut self, stat: ReadCountStat) { -+ self.reader_hits += stat.main_hit + stat.local_hit; -+ self.reader_includes += stat.include + stat.local_include; -+ } -+ -+ fn update_from_write_stat(&mut self, stat: &FFIWriteStat) { -+ self.write_hits += stat.read_hits; -+ self.write_inc_or_mod += stat.includes + stat.modifications; -+ self.freq_evicts += stat.freq_evictions; -+ self.recent_evicts += stat.recent_evictions; -+ self.p_weight = stat.p_weight; -+ self.shared_max = stat.shared_max; -+ self.freq = stat.freq; -+ self.recent = stat.recent; -+ self.all_seen_keys = stat.all_seen_keys; -+ } -+} -+ -+#[derive(Debug, Default)] -+pub struct FFIWriteStat { -+ pub read_ops: u64, -+ pub read_hits: u64, -+ pub p_weight: u64, -+ pub shared_max: u64, -+ pub freq: u64, -+ pub recent: u64, -+ pub all_seen_keys: u64, -+ pub includes: u64, -+ pub modifications: u64, -+ pub freq_evictions: u64, -+ pub recent_evictions: u64, -+ pub ghost_freq_revives: u64, -+ pub ghost_rec_revives: u64, -+ pub haunted_includes: u64, -+} -+ -+impl ARCacheWriteStat for FFIWriteStat { -+ fn cache_clear(&mut self) { -+ self.read_ops = 0; -+ self.read_hits = 0; -+ } -+ -+ fn cache_read(&mut self) { -+ self.read_ops += 1; -+ } -+ -+ fn cache_hit(&mut self) { -+ self.read_hits += 1; -+ } -+ -+ fn p_weight(&mut self, p: u64) { -+ self.p_weight = p; -+ } -+ -+ fn shared_max(&mut self, i: u64) { -+ self.shared_max = i; -+ } -+ -+ fn freq(&mut self, i: u64) { -+ self.freq = i; -+ } -+ -+ fn recent(&mut self, i: u64) { -+ self.recent = i; -+ } -+ -+ fn all_seen_keys(&mut self, i: u64) { -+ self.all_seen_keys = i; -+ } -+ -+ fn include(&mut self, _k: &K) { -+ self.includes += 1; -+ } -+ -+ fn include_haunted(&mut self, _k: &K) { -+ self.haunted_includes += 1; -+ } -+ -+ fn modify(&mut self, _k: &K) { -+ self.modifications += 1; -+ } -+ -+ fn ghost_frequent_revive(&mut self, _k: &K) { -+ self.ghost_freq_revives += 1; -+ } -+ -+ fn ghost_recent_revive(&mut self, _k: &K) { -+ self.ghost_rec_revives += 1; -+ } -+ -+ fn evict_from_recent(&mut self, _k: &K) { -+ self.recent_evictions += 1; -+ } -+ -+ fn evict_from_frequent(&mut self, _k: &K) { -+ self.freq_evictions += 1; -+ } -+} -+ - pub struct ARCacheChar { - inner: ARCache, -+ stats: CowCell, - } - - pub struct ARCacheCharRead<'a> { -- inner: ARCacheReadTxn<'a, CString, CString>, -+ inner: ARCacheReadTxn<'a, CString, CString, ReadCountStat>, -+ cache: &'a ARCacheChar, - } - - pub struct ARCacheCharWrite<'a> { -- inner: ARCacheWriteTxn<'a, CString, CString>, -+ inner: ARCacheWriteTxn<'a, CString, CString, FFIWriteStat>, -+ cache: &'a ARCacheChar, -+} -+ -+impl ARCacheChar { -+ fn new(max: usize, read_max: usize) -> Option { -+ ARCacheBuilder::new() -+ .set_size(max, read_max) -+ .set_reader_quiesce(false) -+ .build() -+ .map(|inner| Self { -+ inner, -+ stats: CowCell::new(CacheStats::new()), -+ }) -+ } - } - - #[no_mangle] - pub extern "C" fn cache_char_create(max: usize, read_max: usize) -> *mut ARCacheChar { -- let inner = if let Some(cache) = ARCacheBuilder::new().set_size(max, read_max).build() { -- cache -+ if let Some(cache) = ARCacheChar::new(max, read_max) { -+ Box::into_raw(Box::new(cache)) - } else { -- return std::ptr::null_mut(); -- }; -- let cache: Box = Box::new(ARCacheChar { inner }); -- Box::into_raw(cache) -+ std::ptr::null_mut() -+ } - } - - #[no_mangle] - pub extern "C" fn cache_char_free(cache: *mut ARCacheChar) { -- // Should we be responsible to drain and free everything? - debug_assert!(!cache.is_null()); - unsafe { -- let _drop = Box::from_raw(cache); -+ drop(Box::from_raw(cache)); - } - } - -@@ -53,22 +186,22 @@ pub extern "C" fn cache_char_stats( - ) { - let cache_ref = unsafe { - debug_assert!(!cache.is_null()); -- &(*cache) as &ARCacheChar -+ &(*cache) - }; -- let stats = cache_ref.inner.view_stats(); -- *reader_hits = stats.reader_hits.try_into().unwrap(); -- *reader_includes = stats.reader_includes.try_into().unwrap(); -- *write_hits = stats.write_hits.try_into().unwrap(); -- *write_inc_or_mod = (stats.write_includes + stats.write_modifies) -- .try_into() -- .unwrap(); -- *shared_max = stats.shared_max.try_into().unwrap(); -- *freq = stats.freq.try_into().unwrap(); -- *recent = stats.recent.try_into().unwrap(); -- *freq_evicts = stats.freq_evicts.try_into().unwrap(); -- *recent_evicts = stats.recent_evicts.try_into().unwrap(); -- *p_weight = stats.p_weight.try_into().unwrap(); -- *all_seen_keys = stats.all_seen_keys.try_into().unwrap(); -+ -+ // Get stats snapshot -+ let stats_read = cache_ref.stats.read(); -+ *reader_hits = stats_read.reader_hits; -+ *reader_includes = stats_read.reader_includes; -+ *write_hits = stats_read.write_hits; -+ *write_inc_or_mod = stats_read.write_inc_or_mod; -+ *freq_evicts = stats_read.freq_evicts; -+ *recent_evicts = stats_read.recent_evicts; -+ *p_weight = stats_read.p_weight; -+ *shared_max = stats_read.shared_max; -+ *freq = stats_read.freq; -+ *recent = stats_read.recent; -+ *all_seen_keys = stats_read.all_seen_keys; - } - - // start read -@@ -79,7 +212,8 @@ pub extern "C" fn cache_char_read_begin(cache: *mut ARCacheChar) -> *mut ARCache - &(*cache) as &ARCacheChar - }; - let read_txn = Box::new(ARCacheCharRead { -- inner: cache_ref.inner.read(), -+ inner: cache_ref.inner.read_stats(ReadCountStat::default()), -+ cache: cache_ref, - }); - Box::into_raw(read_txn) - } -@@ -87,8 +221,20 @@ pub extern "C" fn cache_char_read_begin(cache: *mut ARCacheChar) -> *mut ARCache - #[no_mangle] - pub extern "C" fn cache_char_read_complete(read_txn: *mut ARCacheCharRead) { - debug_assert!(!read_txn.is_null()); -+ - unsafe { -- let _drop = Box::from_raw(read_txn); -+ let read_txn_box = Box::from_raw(read_txn); -+ let read_stats = read_txn_box.inner.finish(); -+ let write_stats = read_txn_box -+ .cache -+ .inner -+ .try_quiesce_stats(FFIWriteStat::default()); -+ -+ // Update stats -+ let mut stats_write = read_txn_box.cache.stats.write(); -+ stats_write.update_from_read_stat(read_stats); -+ stats_write.update_from_write_stat(&write_stats); -+ stats_write.commit(); - } - } - -@@ -141,7 +287,8 @@ pub extern "C" fn cache_char_write_begin( - &(*cache) as &ARCacheChar - }; - let write_txn = Box::new(ARCacheCharWrite { -- inner: cache_ref.inner.write(), -+ inner: cache_ref.inner.write_stats(FFIWriteStat::default()), -+ cache: cache_ref, - }); - Box::into_raw(write_txn) - } -@@ -149,15 +296,21 @@ pub extern "C" fn cache_char_write_begin( - #[no_mangle] - pub extern "C" fn cache_char_write_commit(write_txn: *mut ARCacheCharWrite) { - debug_assert!(!write_txn.is_null()); -- let wr = unsafe { Box::from_raw(write_txn) }; -- (*wr).inner.commit(); -+ unsafe { -+ let write_txn_box = Box::from_raw(write_txn); -+ let current_stats = write_txn_box.inner.commit(); -+ -+ let mut stats_write = write_txn_box.cache.stats.write(); -+ stats_write.update_from_write_stat(¤t_stats); -+ stats_write.commit(); -+ } - } - - #[no_mangle] - pub extern "C" fn cache_char_write_rollback(write_txn: *mut ARCacheCharWrite) { - debug_assert!(!write_txn.is_null()); - unsafe { -- let _drop = Box::from_raw(write_txn); -+ drop(Box::from_raw(write_txn)); - } - } - -@@ -182,7 +335,7 @@ pub extern "C" fn cache_char_write_include( - - #[cfg(test)] - mod tests { -- use crate::cache::*; -+ use super::*; - - #[test] - fn test_cache_basic() { -@@ -199,4 +352,116 @@ mod tests { - cache_char_read_complete(read_txn); - cache_char_free(cache_ptr); - } -+ -+ #[test] -+ fn test_cache_stats() { -+ let cache = cache_char_create(100, 8); -+ -+ // Variables to store stats -+ let mut reader_hits = 0; -+ let mut reader_includes = 0; -+ let mut write_hits = 0; -+ let mut write_inc_or_mod = 0; -+ let mut shared_max = 0; -+ let mut freq = 0; -+ let mut recent = 0; -+ let mut freq_evicts = 0; -+ let mut recent_evicts = 0; -+ let mut p_weight = 0; -+ let mut all_seen_keys = 0; -+ -+ // Do some operations -+ let key = CString::new("stats_test").unwrap(); -+ let value = CString::new("value").unwrap(); -+ -+ let write_txn = cache_char_write_begin(cache); -+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr()); -+ cache_char_write_commit(write_txn); -+ -+ let read_txn = cache_char_read_begin(cache); -+ let _ = cache_char_read_get(read_txn, key.as_ptr()); -+ cache_char_read_complete(read_txn); -+ -+ // Get stats -+ cache_char_stats( -+ cache, -+ &mut reader_hits, -+ &mut reader_includes, -+ &mut write_hits, -+ &mut write_inc_or_mod, -+ &mut shared_max, -+ &mut freq, -+ &mut recent, -+ &mut freq_evicts, -+ &mut recent_evicts, -+ &mut p_weight, -+ &mut all_seen_keys, -+ ); -+ -+ // Verify that stats were updated -+ assert!(write_inc_or_mod > 0); -+ assert!(all_seen_keys > 0); -+ -+ cache_char_free(cache); -+ } -+ -+ #[test] -+ fn test_cache_read_write_operations() { -+ let cache = cache_char_create(100, 8); -+ -+ // Create test data -+ let key = CString::new("test_key").unwrap(); -+ let value = CString::new("test_value").unwrap(); -+ -+ // Test write operation -+ let write_txn = cache_char_write_begin(cache); -+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr()); -+ cache_char_write_commit(write_txn); -+ -+ // Test read operation -+ let read_txn = cache_char_read_begin(cache); -+ let result = cache_char_read_get(read_txn, key.as_ptr()); -+ assert!(!result.is_null()); -+ -+ // Verify the value -+ let retrieved_value = unsafe { CStr::from_ptr(result) }; -+ assert_eq!(retrieved_value.to_bytes(), value.as_bytes()); -+ -+ cache_char_read_complete(read_txn); -+ cache_char_free(cache); -+ } -+ -+ #[test] -+ fn test_cache_miss() { -+ let cache = cache_char_create(100, 8); -+ let read_txn = cache_char_read_begin(cache); -+ -+ let missing_key = CString::new("nonexistent").unwrap(); -+ let result = cache_char_read_get(read_txn, missing_key.as_ptr()); -+ assert!(result.is_null()); -+ -+ cache_char_read_complete(read_txn); -+ cache_char_free(cache); -+ } -+ -+ #[test] -+ fn test_write_rollback() { -+ let cache = cache_char_create(100, 8); -+ -+ let key = CString::new("rollback_test").unwrap(); -+ let value = CString::new("value").unwrap(); -+ -+ // Start write transaction and rollback -+ let write_txn = cache_char_write_begin(cache); -+ cache_char_write_include(write_txn, key.as_ptr(), value.as_ptr()); -+ cache_char_write_rollback(write_txn); -+ -+ // Verify key doesn't exist -+ let read_txn = cache_char_read_begin(cache); -+ let result = cache_char_read_get(read_txn, key.as_ptr()); -+ assert!(result.is_null()); -+ -+ cache_char_read_complete(read_txn); -+ cache_char_free(cache); -+ } - } --- -2.48.1 - diff --git a/SOURCES/Cargo-1.4.3.39-2.lock b/SOURCES/Cargo-1.4.3.39-3.lock similarity index 79% rename from SOURCES/Cargo-1.4.3.39-2.lock rename to SOURCES/Cargo-1.4.3.39-3.lock index ecf9916..352ac51 100644 --- a/SOURCES/Cargo-1.4.3.39-2.lock +++ b/SOURCES/Cargo-1.4.3.39-3.lock @@ -19,23 +19,15 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.11" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", - "zerocopy", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "ansi_term" version = "0.12.1" @@ -45,12 +37,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "arc-swap" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" - [[package]] name = "atty" version = "0.2.14" @@ -70,9 +56,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -97,9 +83,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "byteorder" @@ -113,26 +99,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9daec6140ab4dcd38c3dd57e580b59a621172a526ac79f1527af760a55afeafd" dependencies = [ - "clap 2.34.0", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", - "tempfile", - "toml", -] - -[[package]] -name = "cbindgen" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" -dependencies = [ - "clap 3.2.25", - "heck", - "indexmap", + "clap", "log", "proc-macro2", "quote", @@ -145,9 +112,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.17" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "jobserver", "libc", @@ -169,51 +136,59 @@ dependencies = [ "ansi_term", "atty", "bitflags 1.3.2", - "strsim 0.8.0", - "textwrap 0.11.0", + "strsim", + "textwrap", "unicode-width", "vec_map", ] -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_lex", - "indexmap", - "strsim 0.10.0", - "termcolor", - "textwrap 0.16.2", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - [[package]] name = "concread" -version = "0.5.5" -source = "git+https://github.com/389ds/concread?branch=unstable_name_collisions#caae357e1b24dc65fac7320760d4833debf9bc33" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc9816f5ac93ebd51c37f7f9a6bf2b40dfcd42978ad2aea5d542016e9244cf6" dependencies = [ "ahash", - "arc-swap", + "crossbeam", + "crossbeam-epoch", + "crossbeam-utils", + "lru", + "parking_lot", + "rand", + "smallvec", + "tokio", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", "crossbeam-epoch", "crossbeam-queue", "crossbeam-utils", - "lru", - "smallvec", - "sptr", - "tokio", - "tracing", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -262,17 +237,11 @@ dependencies = [ "uuid", ] -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - [[package]] name = "errno" -version = "0.3.10" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", "windows-sys", @@ -292,17 +261,11 @@ checksum = "93804560e638370a8be6d59ce71ed803e55e230abdbf42598e666b41adda9b1f" dependencies = [ "base64", "byteorder", - "getrandom 0.2.15", + "getrandom 0.2.16", "openssl", "zeroize", ] -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "foreign-types" version = "0.3.2" @@ -320,9 +283,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", @@ -331,9 +294,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", @@ -352,24 +315,10 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", + "ahash", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "hermit-abi" version = "0.1.19" @@ -380,13 +329,12 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "1.9.3" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "cfg-if", ] [[package]] @@ -401,21 +349,21 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "librnsslapd" version = "0.1.0" dependencies = [ - "cbindgen 0.9.1", + "cbindgen", "libc", "slapd", ] @@ -424,7 +372,7 @@ dependencies = [ name = "librslapd" version = "0.1.0" dependencies = [ - "cbindgen 0.26.0", + "cbindgen", "concread", "libc", "slapd", @@ -432,9 +380,19 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] [[package]] name = "log" @@ -444,11 +402,11 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" -version = "0.13.0" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -459,9 +417,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -483,11 +441,11 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -504,14 +462,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -520,10 +478,29 @@ dependencies = [ ] [[package]] -name = "os_str_bytes" -version = "6.6.1" +name = "parking_lot" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] [[package]] name = "paste" @@ -556,6 +533,15 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated" @@ -564,9 +550,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -599,6 +585,45 @@ version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "rsds" version = "0.1.0" @@ -611,11 +636,11 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -628,6 +653,12 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "serde" version = "1.0.219" @@ -645,7 +676,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -684,15 +715,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" - -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "strsim" @@ -700,12 +725,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "syn" version = "1.0.109" @@ -719,9 +738,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -730,26 +749,17 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "textwrap" version = "0.11.0" @@ -759,20 +769,26 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "textwrap" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" - [[package]] name = "tokio" -version = "1.44.1" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "pin-project-lite", + "tokio-macros", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -784,37 +800,6 @@ dependencies = [ "serde", ] -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - [[package]] name = "unicode-ident" version = "1.0.18" @@ -833,7 +818,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -885,15 +870,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -979,27 +955,27 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1019,5 +995,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] diff --git a/SOURCES/cargo.patch b/SOURCES/cargo.patch deleted file mode 100644 index f0146be..0000000 --- a/SOURCES/cargo.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/.cargo/config.in b/.cargo/config.in -index d7d8ff4d4..d61993c54 100644 ---- a/.cargo/config.in -+++ b/.cargo/config.in -@@ -2,5 +2,10 @@ - registry = "https://github.com/rust-lang/crates.io-index" - @rust_vendor_sources@ - -+[source."git+https://github.com/389ds/concread?branch=unstable_name_collisions"] -+git = "https://github.com/389ds/concread" -+branch = "unstable_name_collisions" -+replace-with = "vendored-sources" -+ - [source.vendored-sources] - directory = "./vendor" -diff --git a/src/Cargo.toml b/src/Cargo.toml -index 95c1ae3f5..4daf9cf7b 100644 ---- a/src/Cargo.toml -+++ b/src/Cargo.toml -@@ -15,4 +15,6 @@ members = [ - panic = "abort" - lto = true - -+[patch.crates-io] -+concread = { git = "https://github.com/389ds/concread", branch = "unstable_name_collisions" } - - diff --git a/SPECS/389-ds-base.spec b/SPECS/389-ds-base.spec index 648a660..abd9991 100644 --- a/SPECS/389-ds-base.spec +++ b/SPECS/389-ds-base.spec @@ -52,8 +52,8 @@ ExcludeArch: i686 Summary: 389 Directory Server (base) Name: 389-ds-base Version: 1.4.3.39 -Release: %{?relprefix}13%{?prerel}%{?dist} -License: GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib +Release: %{?relprefix}14%{?prerel}%{?dist} +License: GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND BSD-3-Clause AND MIT AND MPL-2.0 URL: https://www.port389.org Group: System Environment/Daemons Conflicts: selinux-policy-base < 3.9.8 @@ -64,80 +64,81 @@ Provides: ldif2ldbm >= 0 ##### Bundled cargo crates list - START ##### Provides: bundled(crate(addr2line)) = 0.24.2 Provides: bundled(crate(adler2)) = 2.0.0 -Provides: bundled(crate(ahash)) = 0.8.11 -Provides: bundled(crate(allocator-api2)) = 0.2.21 +Provides: bundled(crate(ahash)) = 0.7.8 Provides: bundled(crate(ansi_term)) = 0.12.1 -Provides: bundled(crate(arc-swap)) = 1.7.1 Provides: bundled(crate(atty)) = 0.2.14 Provides: bundled(crate(autocfg)) = 1.4.0 -Provides: bundled(crate(backtrace)) = 0.3.74 +Provides: bundled(crate(backtrace)) = 0.3.75 Provides: bundled(crate(base64)) = 0.13.1 -Provides: bundled(crate(bitflags)) = 2.9.0 +Provides: bundled(crate(bitflags)) = 2.9.1 Provides: bundled(crate(byteorder)) = 1.5.0 -Provides: bundled(crate(cbindgen)) = 0.26.0 -Provides: bundled(crate(cc)) = 1.2.17 +Provides: bundled(crate(cbindgen)) = 0.9.1 +Provides: bundled(crate(cc)) = 1.2.25 Provides: bundled(crate(cfg-if)) = 1.0.0 -Provides: bundled(crate(clap)) = 3.2.25 -Provides: bundled(crate(clap_lex)) = 0.2.4 -Provides: bundled(crate(concread)) = 0.5.5 +Provides: bundled(crate(clap)) = 2.34.0 +Provides: bundled(crate(concread)) = 0.2.21 +Provides: bundled(crate(crossbeam)) = 0.8.4 +Provides: bundled(crate(crossbeam-channel)) = 0.5.15 +Provides: bundled(crate(crossbeam-deque)) = 0.8.6 Provides: bundled(crate(crossbeam-epoch)) = 0.9.18 Provides: bundled(crate(crossbeam-queue)) = 0.3.12 Provides: bundled(crate(crossbeam-utils)) = 0.8.21 -Provides: bundled(crate(equivalent)) = 1.0.2 -Provides: bundled(crate(errno)) = 0.3.10 +Provides: bundled(crate(errno)) = 0.3.12 Provides: bundled(crate(fastrand)) = 2.3.0 Provides: bundled(crate(fernet)) = 0.1.4 -Provides: bundled(crate(foldhash)) = 0.1.5 Provides: bundled(crate(foreign-types)) = 0.3.2 Provides: bundled(crate(foreign-types-shared)) = 0.1.1 -Provides: bundled(crate(getrandom)) = 0.3.2 +Provides: bundled(crate(getrandom)) = 0.3.3 Provides: bundled(crate(gimli)) = 0.31.1 -Provides: bundled(crate(hashbrown)) = 0.15.2 -Provides: bundled(crate(heck)) = 0.4.1 +Provides: bundled(crate(hashbrown)) = 0.12.3 Provides: bundled(crate(hermit-abi)) = 0.1.19 -Provides: bundled(crate(indexmap)) = 1.9.3 +Provides: bundled(crate(instant)) = 0.1.13 Provides: bundled(crate(itoa)) = 1.0.15 Provides: bundled(crate(jobserver)) = 0.1.33 -Provides: bundled(crate(libc)) = 0.2.171 -Provides: bundled(crate(linux-raw-sys)) = 0.9.3 +Provides: bundled(crate(libc)) = 0.2.172 +Provides: bundled(crate(linux-raw-sys)) = 0.9.4 +Provides: bundled(crate(lock_api)) = 0.4.13 Provides: bundled(crate(log)) = 0.4.27 -Provides: bundled(crate(lru)) = 0.13.0 +Provides: bundled(crate(lru)) = 0.7.8 Provides: bundled(crate(memchr)) = 2.7.4 -Provides: bundled(crate(miniz_oxide)) = 0.8.5 +Provides: bundled(crate(miniz_oxide)) = 0.8.8 Provides: bundled(crate(object)) = 0.36.7 Provides: bundled(crate(once_cell)) = 1.21.3 -Provides: bundled(crate(openssl)) = 0.10.71 +Provides: bundled(crate(openssl)) = 0.10.73 Provides: bundled(crate(openssl-macros)) = 0.1.1 -Provides: bundled(crate(openssl-sys)) = 0.9.106 -Provides: bundled(crate(os_str_bytes)) = 6.6.1 +Provides: bundled(crate(openssl-sys)) = 0.9.109 +Provides: bundled(crate(parking_lot)) = 0.11.2 +Provides: bundled(crate(parking_lot_core)) = 0.8.6 Provides: bundled(crate(paste)) = 0.1.18 Provides: bundled(crate(paste-impl)) = 0.1.18 Provides: bundled(crate(pin-project-lite)) = 0.2.16 Provides: bundled(crate(pkg-config)) = 0.3.32 +Provides: bundled(crate(ppv-lite86)) = 0.2.21 Provides: bundled(crate(proc-macro-hack)) = 0.5.20+deprecated -Provides: bundled(crate(proc-macro2)) = 1.0.94 +Provides: bundled(crate(proc-macro2)) = 1.0.95 Provides: bundled(crate(quote)) = 1.0.40 Provides: bundled(crate(r-efi)) = 5.2.0 +Provides: bundled(crate(rand)) = 0.8.5 +Provides: bundled(crate(rand_chacha)) = 0.3.1 +Provides: bundled(crate(rand_core)) = 0.6.4 +Provides: bundled(crate(redox_syscall)) = 0.2.16 Provides: bundled(crate(rsds)) = 0.1.0 Provides: bundled(crate(rustc-demangle)) = 0.1.24 -Provides: bundled(crate(rustix)) = 1.0.5 +Provides: bundled(crate(rustix)) = 1.0.7 Provides: bundled(crate(ryu)) = 1.0.20 +Provides: bundled(crate(scopeguard)) = 1.2.0 Provides: bundled(crate(serde)) = 1.0.219 Provides: bundled(crate(serde_derive)) = 1.0.219 Provides: bundled(crate(serde_json)) = 1.0.140 Provides: bundled(crate(shlex)) = 1.3.0 -Provides: bundled(crate(smallvec)) = 1.14.0 -Provides: bundled(crate(sptr)) = 0.3.2 -Provides: bundled(crate(strsim)) = 0.10.0 -Provides: bundled(crate(syn)) = 2.0.100 -Provides: bundled(crate(tempfile)) = 3.19.1 -Provides: bundled(crate(termcolor)) = 1.4.1 -Provides: bundled(crate(textwrap)) = 0.16.2 -Provides: bundled(crate(tokio)) = 1.44.1 +Provides: bundled(crate(smallvec)) = 1.15.0 +Provides: bundled(crate(strsim)) = 0.8.0 +Provides: bundled(crate(syn)) = 2.0.101 +Provides: bundled(crate(tempfile)) = 3.20.0 +Provides: bundled(crate(textwrap)) = 0.11.0 +Provides: bundled(crate(tokio)) = 1.45.1 +Provides: bundled(crate(tokio-macros)) = 2.5.0 Provides: bundled(crate(toml)) = 0.5.11 -Provides: bundled(crate(tracing)) = 0.1.41 -Provides: bundled(crate(tracing-attributes)) = 0.1.28 -Provides: bundled(crate(tracing-core)) = 0.1.33 Provides: bundled(crate(unicode-ident)) = 1.0.18 Provides: bundled(crate(unicode-width)) = 0.1.14 Provides: bundled(crate(uuid)) = 0.8.2 @@ -147,7 +148,6 @@ Provides: bundled(crate(version_check)) = 0.9.5 Provides: bundled(crate(wasi)) = 0.14.2+wasi_0.2.4 Provides: bundled(crate(winapi)) = 0.3.9 Provides: bundled(crate(winapi-i686-pc-windows-gnu)) = 0.4.0 -Provides: bundled(crate(winapi-util)) = 0.1.9 Provides: bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0 Provides: bundled(crate(windows-sys)) = 0.59.0 Provides: bundled(crate(windows-targets)) = 0.52.6 @@ -160,13 +160,14 @@ Provides: bundled(crate(windows_x86_64_gnu)) = 0.52.6 Provides: bundled(crate(windows_x86_64_gnullvm)) = 0.52.6 Provides: bundled(crate(windows_x86_64_msvc)) = 0.52.6 Provides: bundled(crate(wit-bindgen-rt)) = 0.39.0 -Provides: bundled(crate(zerocopy)) = 0.7.35 -Provides: bundled(crate(zerocopy-derive)) = 0.7.35 +Provides: bundled(crate(zerocopy)) = 0.8.25 +Provides: bundled(crate(zerocopy-derive)) = 0.8.25 Provides: bundled(crate(zeroize)) = 1.8.1 Provides: bundled(crate(zeroize_derive)) = 1.4.2 ##### Bundled cargo crates list - END ##### + BuildRequires: nspr-devel BuildRequires: nss-devel BuildRequires: perl-generators @@ -293,8 +294,8 @@ Source2: %{name}-devel.README Source3: https://github.com/jemalloc/%{jemalloc_name}/releases/download/%{jemalloc_ver}/%{jemalloc_name}-%{jemalloc_ver}.tar.bz2 %endif %if %{use_rust} -Source4: vendor-%{version}-2.tar.gz -Source5: Cargo-%{version}-2.lock +Source4: vendor-%{version}-3.tar.gz +Source5: Cargo-%{version}-3.lock %endif Patch01: 0001-issue-5647-covscan-memory-leak-in-audit-log-when-add.patch @@ -325,7 +326,7 @@ Patch25: 0025-Issue-6494-Various-errors-when-using-extended-matchi.patc Patch26: 0026-Issue-6004-idletimeout-may-be-ignored-6005.patch Patch27: 0027-Issue-6004-2nd-idletimeout-may-be-ignored-6569.patch Patch28: 0028-Issue-6485-Fix-double-free-in-USN-cleanup-task.patch -Patch29: 0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch +#Patch29: 0029-Issue-6553-Update-concread-to-0.5.4-and-refactor-sta.patch Patch30: 0030-Issue-5841-dsconf-incorrectly-setting-up-Pass-Throug.patch Patch31: 0031-Issue-6067-Add-hidden-v-and-j-options-to-each-CLI-su.patch Patch32: 0032-Issue-6067-Improve-dsidm-CLI-No-Such-Entry-handling-.patch @@ -346,7 +347,7 @@ Patch46: 0046-Issue-6686-CLI-Re-enabling-user-accounts-that-reache.patc Patch47: 0047-Issue-6302-Allow-to-run-replication-status-without-a.patch -Patch100: cargo.patch +#Patch100: cargo.patch %description 389 Directory Server is an LDAPv3 compliant server. The base package includes @@ -969,6 +970,10 @@ exit 0 %doc README.md %changelog +* Thu Jun 5 2025 Viktor Ashirov - 1.4.3.39-14 +- Reverts: RHEL-80704 - Increased memory consumption caused by NDN cache [rhel-8.10.z] +- Resolves: RHEL-95442 - ns-slapd[xxxx]: segfault at 10d7d0d0 ip 00007ff734050cdb sp 00007ff6de9f1430 error 6 in libslapd.so.0.1.0[7ff733ec0000+1b3000] [rhel-8.10.z] + * Thu May 15 2025 Viktor Ashirov - 1.4.3.39-13 - Resolves: RHEL-89749 - Nested group does not receive memberOf attribute [rhel-8.10.z] - Resolves: RHEL-89758 - dsidm Error: float() argument must be a string or a number, not 'NoneType' [rhel-8.10.z]